- I use multiple tenants in Camunda or I have multiple engines each treated as a separate tenant
- I start Optimize
- The data is imported
- I use Optimize
- I can select for which tenant I want to create a report for
- I can only see the data for the tenant I'm authorized for
- On multiple tenants selected for a report I can only see the result if I'm authorized to all tenants selected
- such that:
- I can use Optimize with multi-tenancy
- when I create a report and we have multiple tenants in Optimize, then I see an additional dropdown in the process definition selection where I can select the tenant as well.
- the order of the process definition selection inputs is [key, version, tenant]
- the tenant dropdown provides a list of tenants to select/deselect individually
- for shared definitions (no tenant set on the definition itself), I'm presented all tenants I'm authorized to access in the tenant dropdown
- for shared definitions, there is always a default tenant value named None available as last option in the tenant dropdown
- the default tenant None is treated as any other tenant option and can be selected in conjunction with others
- by default all tenants are pre-selected in the tenant dropdown (this includes the default None tenant)
- there is a way to quickly select/deselect all tenants (similar to select/deselect visible columns in table reports)
- for tenant specific definitions I'm presented only the tenants the currently selected definition key & version pair is available for and that I'm authorized to see
- if a particular definition key & version pair is available for multiple tenants a warning is displayed in the "Process/Decision Definition Selection"-Popover to inform the user that we only pick one xml for displaying the process and that if the definitions differ the results may be inconsistent
- the engine configuration is extended by an defaultTenantId field, which allows to add a tenant to the data even if there is no explicit tenant set in the engine.
- Once the defaultTenantId is set and there is no tenant set in the engine, Optimize will automatically set the default tenant to the data. In particular, the tenant from the engine has higher priority than the tenant identifier configured in Optimize.
- the descriptions of the engines.'engine alias', engines.'engine alias'.engines and enignes.'engine alias'.defaultTenantId are adjusted so that it's clear what the difference between those three fields is.
- the new configuration is added to configuration documentation in the technical guide
- it is also documented that the scenario with having multiple engines without any tenant defined and also no default tenant in Optimize configured, but then several engines have the same process definition (same key+version) is not supported
- the scenarios described below are supported and documented in the technical guide.
- Permissions related to tenants are being used by Optimize to define what data a user can see.
- the tenant id that is persisted to Optimize should be available in the variable plugin as well
- migration guide contains note on the necessity of a reimport in order for tenant specific authorizations to work
- there is one engine with multiple tenants
- there are multiple engines, each one has its own tenant configured
- there are multiple engiens, none of them has any tenant configured, but those engines should be treated as different tenants
- there are multiple engine, none of them has any tenant configured, but the user does not care about analyzing the different engine separately
|Optional default tenantId per engine||Done||Unassigned|
|Tenant import and listing||Done||Unassigned|
|Tenant information on process/decision definitions||Done||Unassigned|
|Report Definition with tenant filter||Done||Unassigned|
|Enforce Tenant Authorizations||Done||Unassigned|
|Tenant selection in Report Builder||Done||Unassigned|
|Tenant selection on Branch analysis||Done||Unassigned|
|Multi-Tenancy Setup and Configuration is documented||Done||Unassigned|
|Handling of tenant deletion||Done||Unassigned|