This is a page to collect a shared list of use cases for context-specific configuration in Sling-based applications, see discussion on mailing list.
From Stefan
A collection of use cases for what we need context-specific configuration per site, country, region etc. in our projects. According to the term definitions in Multitenancy scenarios and use cases we have always "Massive Multi Site" scenarios.
- Separate Site URLs (external domain names) for HTTP, HTTPs and Author (HTTP and HTTPs often have different domain names due to CDN in front of the webservers)
- Configure different styles of navigation layout depending on preference of the market
- Tweak some frontend-settings for the site, e.g. include JavaScript/CSS snippts or external files like Psyma
- Configure different webfonts to be used based on the markets language and charset
- Configure regexp patterns for browsers in the market for that a "use a newer browser version" should be shown
- Configure Search Integration with a Google Search Appliance or other external Search engines with an market-specific index which could contain CMS-external content as well
- Configure a list of news or event categories for the site
- Switch on/off social sharing integration like addthis.com and configure services to be shown
- Configure user tracking
- Configure links to external systems integrated centrally in the site
- Configure Google Maps integration specific for the country
- Choose between preconfigured SSO systems to activate for a specific site
In general no security-sensitive stuff is stored in the context-specific configuration. If this is needed they are stored in OSGi configurations and referenced from there (e.g. by a named factory configuration).
1 Comment
Dominik Süß
Ok here my additions as comment since I have no write permissions here:
Configuration Reading vs Editing
The following requirements partially also target the configuration editing and therefore corresponding constraints. This is to acknoledge the fact that a new API must not leak implementation details in a way that makes consumers rely on implementation details (especially persistence structures) while taking into account that there is a need to be able to write configuration back in various cases. The requirements are not driven by UI but should only reflect some logical constraints comming from the editing flow (such as preconditions for multistep wizards where steps build on data entered in previous steps).
Requirements (collected from two implementations dealing with configurations mostly for integrations)