The Futurae API relies on the creation of an Organization, a Service, and Collaborators that manage that Organization and its Services, via the Futurae Admin dashboard. When referring to "Collaborators" , we talk about users that have access to the Futurae Admin Dashboard, in order to explicitly distinguish them from your application's end users, who are enrolled in Futurae, and which we call Futurae users, who are the people that use Futurae to authenticate securely to your application.
The following image visualizes the relationship between Organizations, Services, and Collaborators, and acts as a summary for the rest of this Article.
Note that "Collaborator 3" is a member of both Organizations, and can access only for "Service 3" (in Organization A), and "Service 2" (in Organization B). In this example Collaborator 3 has the support role for both Organization memberships, but it is also possible to have different roles for different Organizations.
An Organization represents an entity (e.g., a legal entity) and is associated with billing information, Services, and Collaborators. Organizations are created and managed in Futurae Admin. When an Organization is created, a "owner" collaborator is created and a first "test" service is created.
Separate Organizations have separate billing information, separate Services (i.e., a Service belonging to Organization A will be available only within Organization A, while a Service belonging to Organization B will be available only within Organization B), but potentially overlapping sets of Collaborators (i.e., a collaborator can have access to multiple Organizations, such as Collaborator 3 in the image above).
A Futurae Collaborator is a user (typically an employee or external partner of your company), identified by an e-mail address, and assigned a specific role. Collaborators manage an Organization and its Services in Futurae Admin. Collaborators can belong to multiple Organizations, with different roles. There currently exist three collaborator roles:
- Owner collaborators can change an Organization billing setup, create new Services, manage collaborator membership, as well as do everything that an Admin and Support collaborator can.
- Admin collaborators can manage Services (eg access API credentials) as well as do everything that a Support collaborator can.
- Support collaborators can manage Futurae Users (end users) and Devices of the Services to which they have access.
An Owner will always see all Services associated within the Organization. Admin and Support collaborators can be restricted to see and manage only specific Services.
A Futurae Service represents an end-user application (or a set of applications, if they are all using the same user Identity Database) and is composed of a name, icon, Service ID and API credentials, settings and a flag to mark it as a test or live service. The main difference between test and live services is that live services have SLA guarantees attached to them (replication, backup, uptime, ...).
Within each Service there will also be the Futurae users (end users) that are enrolled for this Service and their devices (aka authenticators), and of course separate Services guarantee end user separation (at the logical or physical level).
In the following example we showcase an Organization ("CaffeineApps Labs"), with two Services ("Coffee Lab", a development Service and "Coffee Shop", the live Service), and two Collaborators ("Claudio Marforio", the owner of the Organization, and "Nikos Karapanos", acting as a support engineer for only a specific service).
Notice that Claudio Marforio (the owner of "CaffeineApps Labs") is also a member of the "Futurae" Organization, and can switch between managing the two organizations by selecting it in the dropdown menu.
Nikos, meanwhile, has been setup to have only access (as Support) to the live Service: "Coffee Shop".
Nikos' view, when logged in: only the "Coffee Shop" Service is visible and Nikos cannot create new Services, or even see the settings (which contain the authentication and admin keys) of the "Coffee Shop" Service.