Cloud Service Configurations
Configurations are designed to provide the logic and structure for storing service configurations.
You can extend the existing instances to create your own configurations.
The principles used in developing the configurations have been based on the following concepts:
- Services/Adapters are used to retrieve the configuration(s).
- Configurations (e.g. properties/paragraphs) are inherited from the parent(s).
- Referenced from analytics node(s) by path.
- Easily extensible.
- Has the flexibility to cater for more complex configurations, such as Adobe Analytics .
The base path of the configurations is:
For each type of configuration a template and a component will be provided.This makes it possible to have configuration templates that can fulfil most needs after being customized.
To provide a configuration for a new services you need to:
- create a servicepage in/etc/cloudservices
- under this:
- a configuration template
- a configuration component
The template and component must inherit the sling:resourceSuperType from the base template:
or base component respectively
The service provider should also provide the service page:
Your template will extend the base template:
and define a resourceType that points to the custom component.
/libs/cq/analytics/templates/sitecatalyst sling:resourceSuperType = cq/cloudserviceconfigs/templates/configpage allowedChildren = /libs/cq/analytics/templates/sitecatalyst allowedPaths = /etc/cloudservices/analytics/*, /etc/cloudservices/analytics/.* componentReference = cq/analytics/components/sitecatalyst jcr:content/ cq:designPath = /etc/designs/cloudservices sling:resourceType = cq/analytics/components/sitecatalystpage /libs/cq/analytics/templates/generictracker sling:resourceSuperType = cq/cloudservices/templates/configpage allowedChildren = /libs/cq/analytics/templates/generictracker allowedPaths = /etc/cloudservices/analytics/*, /etc/cloudservices/analytics/.* jcr:content/ cq:designPath = /etc/designs/cloudservices sling:resourceType = cq/analytics/components/generictrackerpage
Your component should extend the base component:
After setting up your template and component you can add your configuration by adding subpages under:
The content model is stored as cq:Page under:
/etc/cloudservices /etc/cloudservices/service-name /etc/cloudservices/service-name/config /etc/cloudservices/service-name/config/inherited-config
The configurations are stored under the subnode jcr:content .
- Fixed properties, defined in a dialog should be stored on the jcr:node directly.
- Dynamic elements (using parsys or iparsys ) use a subnode to store the component data.
/etc/cloudservices/service/config/jcr:content as nt:unstructured propertyname * par/component/ as cq:Component propertyname *
For reference documentation on the API see com.day.cq.wcm.webservicesupport .
Available services are listed in the Cloud Services tab of the Page Properties dialog (of any page that inherits from foundation/components/page or wcm/mobile/components/page ).
The tab also provides:
- a link to the location where you can enable the service
- choose a configuration (subnode of the service) from a path field
When storing user credentials for the service, all passwords should be encrypted.
You can achieve this by adding a hidden form field. This field should have the annotation @Encrypted in the property name; i.e. for the password field the name would be written as:
The property will then be automatically encrypted (using the CryptoSupport service) by the EncryptionPostProcessor .
This is similar to the standard [SlingPostServlet](https://sling.apache.org/site/manipulating-content-the-slingpostservlet-servletspost.html) annotations.
By default the EcryptionPostProcessor only encrypts POST requests made to /etc/cloudservices .
Additional Properties for Service Page jcr:content Nodes
|description||Short description of the service.|
|descriptionExtended||Extended description of the service.|
|ranking||Service ranking for use in listings.|
|selectableChildren||Filter for displaying configurations in page properties dialog.|
|serviceUrl||URL to service website.|
|serviceUrlLabel||Label for service URL.|
|thumbnailPath||Path to thumbnail for service.|
|visible||Visibility in page properties dialog; visible by default (optional)|