Release Notes / Version 11.2307
Table Of ContentsNew ExtensionPoint PluginRestController
Starting with CM11, plugins may implement a Spring rest controller by implementing the new extension point PluginRestController. Controllers will accessible via the url prefix pattern '
/plugins/plugin-id/request-mapping
'
(CMS-20361)
Add plugin extension point for custom scalar types
Add a new extension point for scalar types. This enables headless server plugins to introduce custom scalar types.
(CMS-20274)
New Config Option: caas.stax.maxAliasesForCollections
The maximum number of allowed aliases in a YAML file to define a rich text view was statically bound to 50. When the actual number of aliases exceeded 50, an error while startup of headless was thrown:
Number of aliases for non-scalar nodes exceeds the specified max=50
The number of allowed aliases can now be configured using the new config option, e.g.
caas.stax.maxAliasesForCollections=100
Along with the change, the snakeyaml library was updated to the latest version
org.yaml:snakeyaml:1.29
(was 1.26)
(CMS-19959)
New Extension Point for Plugins: WiringFactory
The
CaasWiringFactory
is a new extension point for custom
WiringFactory
implementations in plugins. See documentation for details.
(CMS-19926)
Add fullyQualifiedUrl field to CMDownload type
Add the fullyQualifiedUrl-field to the CMDownload type in the content schema.
(CMS-19859)
New Fields for Localized Content
The GraphQL interface CMLocalized in the content schema now contains these two additional fields to ease up the handling of localized variants of a content object:
master: The direct master content object from which the current object was derived from.
localizationRoot: The topmost content object of the localization hierarchy.
(CMS-19832)
New Plugin Extension Point: PluginSchemaAdapterFactory
The new ExtensionPoint PluginSchemaAdapterFactory enables developers to provide their own schema adapters to be used in a GraphQL schema extension via a plugin. Please see the headless manual for details.
(CMS-19792)
GraphQL Library Updated
GraphQL Java Library updated from 16.1 to Version 16.2
(CMS-19643)
Adds New Endpoint to Support Filename and Extension in Media URL
Extend the Headless Server schema to provide a new URL for Blobs including the filename and extension and provide a new endpoint for those URLs.
(CMS-19572)
Provide Generic Field for Retrieving in Linked Contents in Structs or Settings
Add the option to the SettingsAdapter and the StructAdapter to retrieve multiple values at ones, without wrapping them in their Structure. This supports using the GraphQL schema to build up the structure of the Setting or Struct. Furthermore it enables a generic field to retrieve contents which are linked in Structs or Settings
(CMS-19480)
Additional Headless Augmentation Calls without Commerce Connection
Augmentation data for products and categories can now be retrieved from the Headless Server without an underlying commerce connection. The former augmentation queries still exist, but the new ones are preferable since there is less risk of performance issues due to a slow commerce connection. In order to get inherited augmentation data along the commerce hierarchy, the new Augmentation API requires the caller to pass in the hierarchy/breadcrumb.
The new Augmentation API can be found below the ContentRoot:
ContentRoot.categoryAugmentationBySite
ContentRoot.categoryAugmentationBySegment
ContentRoot.productAugmentationBySite
ContentRoot.productAugmentationBySegment
If you want to use the new API, make sure your Livecontext Settings contain the following information: commerce.storeConfig.id commerce.catalogConfig.id commerce.vendor
In case of multi catalog projects a fallback commerce connection may still be necessary since catalog alias mapping needs to be resolved by the connected commerce system.
(CMS-19468)
Query for Taxonomies by path
It is now possible to query for taxonomies by path. More details can be found in the Headless Server Manual.
(CMS-19193)
GraphQL Type PageGrid now Offers Name Property for Page Grid
GraphQL type PageGrid missed to offer the name of the page grid.
(CMS-18889)
MediaController Supports Conversion of Image Formats
The MediaController supports the conversion of images into supported image formats (jpeg, png and gif) by specifying the corresponding file extension with the file name. The conversion ist also reflected in the content-schema. It is now possible, to specifiy an optional image format when querying for uri templates.
(CMS-18878)
New Fields Contain Lists of Content Objects Embedded in Richtexts
Starting with version 2104.1, the content schema offers complementing fields for all rich text fields. For GraphQL type CMTeasable
detailTextReferencedContent
teaserTextReferencedContent
For GraphQL type CMMedia
captionReferencedContent
(CMS-18844)
Custom Filter Queries
Custom Filter Queries are available for Search and Dynamic Query Lists now. Consult the Headless Server Manual for details.
(CMS-18826)
Loading of JSLT and REST Mappings From Plugins
Headless Server supports loading resource files containing JSLT and REST mapping definitions from the content of plugins.
By loading these kind of resources from plugins rather than from within the Headless Server Docker image, the build, deployment and release management of the core application is decoupled from the development of these resource files.
Loading from plugins is optional. The deployment within the Headless Server App remains unchanged.
(CMS-18486)
Pagination for collections
Pagination for collections has been introduced for a set of fields, that return a collection. The new fields with pagination support are:
Banner: mediaPaged, picturesPaged
CMChannel: headerPaged, footerPaged
CMCollection: itemsPaged, teasableItemsPaged
CMGallery: mediaItemsPaged
CMLinkable: contentInSettingPaged, contentInStructPaged, subjectTaxonomyPaged, locationTaxonomyPaged
CMLocTaxonomy: locChildrenPaged
CMNavigation: childrenPaged
CMTaxonomy: childrenPaged
CMTeasable: authorsPaged, relatedPaged, teaserTargetsPaged, videosPaged, spinnersPaged
See documentation for details.
Some fields, for which pagination was already implemented, have been deprecated in favor of the new mechanism: CMQueryList#pagedItems, CMQueryList#filteredPagedItems. Also some methods of QueryListAdapterFactory and QueryListAdapter have been deprecated for that reason, see javadoc for details.
(CMS-17909)
New Plugin Extension Point: CopyToContextParameter
With the new extension point CopyToContextParameter it is possible to declare additional parameters (http request parameters and headers) to be copied in the graphql context programmatically.
(CMS-17512)