Opencast currently does not support multi-tenancy when it comes to workflow definitions: All workflow definitions are available for all tenants.
We would like to change this with the following approach:
- A workflow definition might specify an organization
- If a workflow definition does not specify an organization, it is available to all tenants
- If a workflow definition does specify an organization, it is available to that organization (tenant) only
- A workflow definition can only be instantiated on a tenant when it is available to that tenant
- APIs (External API, Admin UI Facade, REST APIs) will only list workflow definitions available to the tenant that is being requested
- If is possible to have multiple workflow definitions with the same workflow definition ID but available to different tenants. One of that workflow definition might be the one available to all tenants
- Tenant-specific workflow definitions take precedence over non-tenant-specific workflow definitions, i.e. if both a tenant-specific workflow definition and a non-tenant-specific workflow definition is available, only the tenant-specific workflow definition counts on the respective tenant (it overrides the more generic workflow definition).
Note: The motivation to allow multiple workflow definitions with the same workflow definition ID is to allow Adopters to use tenant-specific partial workflow definitions (partial = included in another workflow definition). The invariant to only have one workflow definition per workflow definition ID still holds as the tenant-specific WD overrides the generic WD.