Tenancy
finoOS provides a multi-tenant architecture that allows you to manage different groups of users and their data separately. This is particularly useful when building applications for multiple applications, use cases, or customer segments.
Tenants are managed using the TenantID request header.
If the TenantID header is omitted, a default tenant with the name of your client identifier is used automatically.
Additional tenants are created automatically when a new TenantID value is provided in a request.
It is important to note that the TenantID used when creating a user must also be used for all subsequent requests related to that user.
Naming Tenants
When choosing a TenantID, ensure that it is prefixed with your client identifier, followed by a hyphen (-).
Example
A client with the client identifier example-client starts using the finoOS API.
If no TenantID header is provided, a tenant named example-client is created automatically, and all users are stored within this tenant.
Later, the client introduces a new use case that requires a separate group of users.
In this case, it is recommended to use a different tenant identifier, for example example-client-awesome-app.
This approach simplifies user and data management, improves separation of concerns, and makes potential support cases easier to handle.
Note:
A user created under the tenant example-client cannot be accessed using the tenant example-client-awesome-app, and vice versa.