...
See SLING-4386 for an initial prototype that uses these ideas. It's not exactly like described below, that issue has the details.
Overview
This is an early 2015 brainstorm for a content model that fosters the following features for Sling-based applications:
...
Not that we are that ambitious, and compromising other things to reach that exotic goal wouldn't be right, but why not aim high?
Open Questions
- Should the tenant-specific content move under /tenants? Why not, although in terms of content repository maintenance it might be useful to have all the "big things" in a single subtree.
Tree structure
/content
This is the publishable content, what's meant to appear in HTTP responses.
...
/tenants/T/assemblies
- the list of active assemblies (see below) for this tenant/tenants/T/conf
- configuration overrides for this tenant/tenants/T/state
- tenant-specific state like workflows, jobs etc./tenants/T/home
- tenant identity, list of user groups that belong to the tenant, etc.
/assemblies
Note that as of February 5th, 2015 this is not used in the SLING-4386 prototype - the tenants point directly to the modules instead of pointing to named assemblies. Easy to add if needed. A good reason might be to make it easy to make changes to a group of related tenants, by just changing properties on a assembly that they share.
Resolving scripts to process requests is only possible via assemblies that define which modules are active for a given tenant.
...