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.