• log out

Just some of Qbix's major features:

More features for advanced users:

There is much more to Qbix...

Standardized access control

One of the main goals of Qbix is to enable developers to deliver experiences that not only delight and engage users, but empower them to have control over their own data.

That is why the Streams plugin contains very powerful and expressive ways to control access. We built it all for you — so users can have a standard interface they expect for managing their streams, and you can focus on building your application.

access control

What users can do

Whether it's their name, relationship status, age, location, or something else, users of Qbix apps can expect to have a standard way to control who can access the streams they publish. There are three different aspects, each with their own levels:

  • Read level - This determines who can see the messages posted to the stream. Those with the lowest read level (namely 0) can't even see the stream exists.
  • Write level - This determines who can edit the stream. Those with the lowest write level can't affect the stream. Higher levels allow posting messages, voting for relations to other streams, and more.
  • Admin level - The publisher of the stream can assign admins to manage the stream, especially useful if allows multiple writers. Certain levels allow granting higher access to other users or admins using invitations.
  • Permissions - This is for custom permissions, such as registerForMe and highlight.

Publishers and contacts

Besides assigning access levels to individual users, the Streams plugin also supports assigning access to entire contact labels. So Qbix apps can support roles and permissions out of the box, except the roles are actually contact labels assigned by the stream's publisher.

A single app can have thousands or millions of users publishing streams of information, while others subscribe to this information, or join/leave and interact with the streams and with each other, in real time.

In Qbix, users can represent either people or communities. Thus, a person can set access for contact labels such as "friends" or "family", while an organization could set access for "project managers" or "clients".

When user X accesses a stream published by user Y, the system checks whether X is in Y's contacts. The access levels and permissions are aggregated from all the Streams_Access rows with ofContactLabel corresponding to all the labels. However, if X has saved specific access information for Y, through ofUserId, then it overrides any of the aggregated access levels they would have otherwise had.