Release Notes / Version 10.2101
Table Of ContentsAdded CMExternalLink type to the Headless schema
CMExternalLink can now be queried as for example a teaser target. An example query can be found in "External Link Query" section in documentation.
(CMS-18590)
Commerce Headless Schema Deprecation
The Blueprint contains multiple commerce-related schema extensions to the CoreMedia Headless Server that primarily serve pure ecommerce data like product or category details. The affected schema extensions (entities, queries and fields) are marked as deprecated with 2101.1 and will be removed in a future AEP (probably 2104.1).
The reason for this deprecation is: CoreMedia wants to encourage projects to not use the CoreMedia Headless Server as a GraphQL endpoint for the ecommerce system but rather use the API of the commerce system directly to get details on the commerce objects. The CoreMedia Headless Server should primarily serve content from the content repository and not from other systems. Otherwise latency for remote calls might sum up and delay the response of the Headless Server. Additionally, in a headless integration, the client (e.g. a JavaScript frontend) will need to talk to the commerce system, anyways (e.g. to render category landing pages, product detail pages or shopping cart items, etc). Serving the same entities a second time and through the CoreMedia Headless Server will impede caching and might lead to inconsistent data when the Headless Server has a different cached state than the commerce system.
Nevertheless, CoreMedia will soon provide a CoreMedia labs based version of the commerce data related headless endpoint for demo purposes (e.g. Spark). This roughly will correspond to the now deprecated schema extensions. Additionally, CoreMedia will add dedicated augmentation query roots to retrieve content augmentation data for commerce objects but without pulling the commerce object detail data from the commerce system.
In order to use CoreMedia Headless Server in ecommerce projects with GraphQL, projects should use a stitching proxy server to combine both schemas (CoreMedia Headless Server and commerce system) to one combined graph. It is also possible to let a client talk to both backends in parallel, depending on the degree of integration needed for the project needs. Apollo Federation would also be an option but needs further adaptions to both schemas and code.
CoreMedia will provide an example Stitching server that works with our demo client Spark in the near future.
(CMS-18490)
Customization of RichtextTransformerReader
For the
RichtextTransformerReader
, custom output handlers, attribute and element transformers can be configured. Custom implementations can be passed to the
RichtextTransformerReader
in parameter
customTypeDescriptions
.
(CMS-18448)
Customization of richtext transformation
The richtext transformation can now be replaced by a custom implementation that may use a different grammar. The custom implementation can use the underlying architecture (yml based configuration, markup parsing and transformation), but does not have to. See the documentation for details.
(CMS-18398)
Added "excludeNames" parameter to filter placements
In addition to "names" the placement can now also receive "excludeNames" argument and filter out specific placements from the returned list.
(CMS-18222)
Localized variants via site filtered endpoints are configurable
The concept of a site filtered GraphQL endpoint prevents, that related content objects of a filtered content, not belonging to that site, can be retrieved over that endpoint. This behaviour may become unhandy for some special cases, e.g. localized variants or derived sites.
In order to overcome this limitation, the new configuration property '
caas.site-filter-config-properties.excluded-field-names
' was introduced. The property takes a collection of field names and defaults to "
localizedVariant
", "
localizedVariants
" and "
derivedSites
".
The default configuration now permits, that localized contents belonging to a related site can be retrieved, although a site filter is used. If neccessary, additional fields, e.g. 'pictures' can be added, if linked pictures belong to another site.
See the Deployment Manual for details.
(CMS-18221)
Image uriTemplate consists of filename.ext as well
CMPicture uriTemplate now ends with filename.ext if a blob is present. The old URLs for images without a filename can still be used to retrieve image crops in addition to new URLs including the filename. The added filename is only for SEO purpose.
(CMS-18013)