Template

Your template extends the base template:

cq/cloudserviceconfigs/templates/configpage

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

Components

Your component should extend the base component:

cq/cloudserviceconfigs/templates/configpage

/libs/cq/analytics/components/sitecatalystpage

/libs/cq/analytics/components/generictrackerpage

After setting up your template and component, you can add your configuration by adding subpages under:

/etc/cloudservices/<service-name>

Content Model

The content model is stored as cq:Page under:

/etc/cloudservices/<service-name>(/*)

/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
*

API

For reference documentation on the API, see com.day.cq.wcm.webservicesupport.

AEM Integration

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

Password Encryption

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; that is, for the password field the name would be written as:

password@Encrypted

The property will then be automatically encrypted (using the CryptoSupport service) by the EncryptionPostProcessor.

NOTE
This is similar to the standard [SlingPostServlet](https://sling.apache.org/site/manipulating-content-the-slingpostservlet-servletspost.html) annotations.
NOTE
By default the EcryptionPostProcessor only encrypts POST requests made to /etc/cloudservices.

Additional Properties for Service Page jcr:content Nodes

PropertyDescription
componentReferenceReference path to a component to be automatically included in the page.
This is used for additional functionality and JS inclusions.
This includes the component on the page where
cq/cloudserviceconfigs/components/servicecomponents
is included (normally before the body tag).
In case the of Adobe Analytics and Adobe Target, we use this to include additional functionality, such as JavaScript calls to track visitor behavior.
descriptionShort description of the service.
descriptionExtendedExtended description of the service.
rankingService ranking for use in listings.
selectableChildrenFilter for displaying configurations in page properties dialog.
serviceUrlURL to service website.
serviceUrlLabelLabel for service URL.
thumbnailPathPath to thumbnail for service.
visibleVisibility in page properties dialog; visible by default (optional)

Use Cases

These services are provided by default:

Experience Manager


Elevate and Empower Teams with Agentic AI for Exceptional Experiences

Online | Strategy Keynote | General Audience

Elevate and empower your CX teams with AI that transforms creativity, personalization, and productivity. Discover how Adobe is...

Tue, Mar 18, 1:00 PM PDT (8:00 PM UTC)

Register

How EY Enhanced Regulatory Knowledge Management with Adobe Solutions

Online | Session | General Audience

Delve into how EY leverages Adobe solutions to enhance regulatory knowledge management. EY leverages search analytics and personalization...

Wed, Mar 19, 4:00 PM PDT (11:00 PM UTC)

Register

Connect with Experience League at Summit!

Get front-row access to top sessions, hands-on activities, and networking—wherever you are!

Learn more