Release Notes FirstSpirit™ 2023.8

Release Notes

FirstSpirit™ 2023.8

1 Administration

Default compression mode: Zstandard

With the current FirstSpirit version, the Zstandard compression mode is the default value for FirstSpirit protocol compression.

This applies to new API connections, client connection settings, and servlets (web.xml).

If the connection parameters have already been defined differently, the settings are not affected.

2 Administration / Modules

Announcement: Migration to Jakarta EE 6.0

The migration to Jakarta EE 6.0 is an essential step to ensure the security of web applications.

Support and current timeline

Here is the current plan:

  • 2023-06 Beta-version of the FirstSpirit JakartaEE Edition is available for testing (available via Support)
  • 2023-08 Stable release (2023.9) with support for automatic migration
  • 2024-08 Support for automatic migration is removed with FirstSpirit 2024.9

We strongly recommend testing the used modules and instances as soon as possible to ensure a smooth transition.

The FirstSpirit installation may be affected if any of the following conditions apply:

  • The FirstSpirit installation is not maintained in the Crownpeak Cloud and deploys web-applications to an application server like Apache Tomcat.
  • A custom module is used that contains a WebApp component with code that uses the legacy JavaEE API, such as the Servlet API.
  • A custom module is used that contains a WebApp component with dependencies that use the old JavaEE API, e.g., Spring Boot 2.x.

The module used could be affected if at least one of the following conditions applies:

  • The module contains a WebApp component with code that uses the old JavaEE API, e.g., the Servlet API.
  • The module contains a WebApp component with dependencies which use the old JavaEE API, e.g., Spring Boot 2.x.

If FirstSpirit is run in an on-premises scenario, the Tomcat version must be updated when migrating to the FirstSpirit JakartaEE edition. Since the servlet version will be updated to 6.0, a 10.1.x version of Tomcat is required.

More information and updates can be found in the Crownpeak Community and the detailed Jakarta FAQ.

Contact Customer Support Team if you have questions or feedback regarding the migration.

3 FirstSpirit Content Experience Tools (CXT)

Latest module versions

FirstSpirit 2023.8 supports the following module versions for FirstSpirit Content Experience Tools.

Module / file nameVersion number
FirstSpirit CXT Plattform
platform-[version].fsm
4.0.0
FirstSpirit CXT DAP Bridge
dataservice-[version].fsm
1.44.13
FirstSpirit CXT FragmentCreator
fragment-creator-[version].fsm
4.0.8
FirstSpirit Fragment DAP
fragmentdap-[version].fsm
1.40.21
FirstSpirit Media DAP
mediadap-[version].fsm
1.31.12
FirstSpirit PageRef DAP
pagerefdap-[version].fsm
1.9.12
FirstSpirit Markdown Editor
markdown-editor-[version].fsm
1.29.11
FirstSpirit Tagging Editor
tagging-editor-[version].fsm
1.29.11
FirstSpirit CXT FragmentCreator - CaaS Integration
caas-integration-[version].fsm
1.31.11

4 Module Development, Scripts, API

Events for SEO URL Storage changes

With the current FirstSpirit version it is possible to get corresponding events via SEO URL changes (class de.espirit.firstspirit.event.UrlEvent) using the EventBusAgent (FirstSpirit Developer API, Package de.espirit.firstspirit.agency).

Example script:

import de.espirit.firstspirit.agency.BrokerAgent;
import de.espirit.firstspirit.event.UrlEvent;
import de.espirit.firstspirit.agency.EventBusAgent;
import java.util.function.Consumer;

eventListener = new Consumer<UrlEvent>() {
void accept(event) {
...
}
};

brokerAgent = context.requireSpecialist(BrokerAgent.TYPE);
specialistsBroker = brokerAgent.getBrokerByProjectName("<Projectname>");
eventBusAgent = specialistsBroker.requireSpecialist(EventBusAgent.TYPE);
eventBusAgent.register(UrlEvent.BUS_IDENTIFIER, eventListener);

// optional
Thread.sleep(<time>);
eventBusAgent.unregister(UrlEvent.BUS_IDENTIFIER, eventListener);

The last two lines are optional and are only needed if the events are not to be listened to permanently.

5 Security

CSP header configurable for the FirstSpirit Root WebApp

By setting a Content Security Policy via the CSP header, the allowed sources of content such as scripts, stylesheets, images, fonts, and more can be defined.

The CSP header can be configured via the SecurityFilter using the ContentSecurityPolicyHeader parameter.

The ContentSecurityPolicyHeader parameter can be configured in the following files and is evaluated with the following priority:

  • web.xml of the WebApp [highest priority]
  • fs-server.conf
  • Java System-Property
  • OS Environment Property [lowest priority]

Default value of the CSP header:

default-src 'self'; object-src 'none'; style-src 'self'; form-action 'self'; 
script-src 'self' 'nonce-$NONCE' $UPGRADE_INSECURE $FRAME_ANCESTORS

The following placeholders can be used in the configuration:

  • $NONCE - the nonce value valid for the current HTTP request
  • $FRAME_ANCESTORS - allowed frame embedding according to the frameOptionsHeader property from fs-server.conf.
    The replacement with default settings: ; frame-ancestors 'self'
    If ALLOW_ALL is set, the replacement is an empty string.
  • $UPGRADE_INSECURE - upgrade-insecure-requests according to what is set for the SecurityFilter in the TransportSecurity parameter or its default value.
    The default value is KEEP_SECURE.
    The replacement with default settings:
    • for an HTTPS request: ; upgrade-insecure-requests
    • for an HTTP request the substitution is an empty string

web.xml of the WebApp

Default configuration:

<filter>
<filter-name>SecurityFilter</filter-name>
<filter-class>de.espirit.firstspirit.io.servlet.SecurityFilter</filter-class>
<init-param>
<param-name>ContentSecurityPolicyHeader</param-name>
<param-value>default-src 'self'; object-src 'none'; style-src 'self';
form-action 'self';
script-src 'self' 'nonce-$NONCE' $UPGRADE_INSECURE $FRAME_ANCESTORS
</param-value>
</init-param>
</filter>

An empty value disables the CSP header:

<filter>
<filter-name>SecurityFilter</filter-name>
<filter-class>de.espirit.firstspirit.io.servlet.SecurityFilter</filter-class>
<init-param>
<param-name>ContentSecurityPolicyHeader</param-name>
<param-value></param-value>
</init-param>
</filter>

fs-server.conf

Default configuration:

securityFilter.ContentSecurityPolicyHeader=default-src 'self'; object-src 'none'; 
style-src 'self'; form-action 'self';
script-src 'self' 'nonce-$NONCE' $UPGRADE_INSECURE $FRAME_ANCESTORS

An empty value disables the CSP header:

securityFilter.ContentSecurityPolicyHeader=

Java System-Property

  • fs-wrapper.isolated.conf
  • setenv.sh file of Tomcat

The value can be set using the parameter
wrapper.java.additional.##=-DsecurityFilter.ContentSecurityPolicyHeader, where ## is the number of a previously unused entry.

OS Environment Property

The value can be defined using the variable named
SecurityFilter_ContentSecurityPolicyHeader.

6 System

Updates to integrated third-party software

As of the current release, the following internally used software has been updated:

  • Spring Boot
    Update from version 2.7.0 to version 2.7.13

Overview

ID Description Categories
CORE-10636

When using NULL parameter values in output channels, template references could be recognized incompletely.

Template Development
CORE-15193

The storage duration of FirstSpirit jar files on server side (directory <FirstSpiritROOT>/work/storage/jars) and client side (directory /home/<fsuser>/.firstspirit_<version>/jars) has been reduced from 90 to 45 days.

FirstSpirit Administrator
CORE-15252

The new event with the class de.espirit.firstspirit.event.UrlEvent is now generated when saved URLs are (re)set. The EventBusAgent can be used to react to such an event.

Further information can be found in chapter “Module Development, Scripts, API: Events for SEO URL Storage changes”.

Developer, Module development
CORE-15377

Fixed a bug in SiteArchitect that in rare cases prevented the initial display of submenus in the context menu.

SiteArchitect
CORE-15378

With the current FirstSpirit version, the Zstandard compression mode is the default value for FirstSpirit protocol compression.

Further information can be found in chapter “Administration: Default compression mode: Zstandard”.

Server Administrator
CORE-15402

With the current FirstSpirit version, the CSP header can be configured.

Further information can be found in chapter “Security: CSP header configurable for the FirstSpirit Root WebApp”.

FirstSpirit Administrator, FirstSpirit home page, Server Administrator
CORE-15417

Fixed a class loading error in the “FirstSpirit Portal” module (“SAP Business Package for FirstSpirit”, fs-portal.fsm) when executing the schedule task action “GeneratePortalXML”.

Modules
CORE-15450

FirstSpirit Content Experience Tools: Latest module versions

Further information can be found in chapter “FirstSpirit Content Experience Tools (CXT): Latest module versions”.

FirstSpirit Content Experience Tools (CXT)
CORE-15459

The dialog for editing the “Message of the Day” has been adjusted to avoid display errors even with a large number of language templates.

ServerManager
CORE-15465

Schedule with actions based on modules that are no longer installed on the server caused display problems in ServerMonitoring. This has been fixed.

Server Administrator, ServerMonitoring
CORE-15466

Fixed a missing admin status about a group membership for external users logging in to a server for the first time.

Server Administrator
CORE-15507

Fixed a bug that in very rare cases could cause the import of valid XML files to fail when using “External Synchronization”. (Error message: de.espirit.common.xml.XmlParsingError: unexpected EOF)

External synchronization
CORE-15508

Announcement: Migration to Jakarta EE 6.0

Further information can be found in chapter “Administration / Modules: Announcement: Migration to Jakarta EE 6.0”.

FirstSpirit Administrator, Module development, Modules, Server Administrator
CXT-2935

Updates to integrated third-party software

Further information can be found in chapter “System: Updates to integrated third-party software”.

ContentCreator
CXT-2936

The preview of datasets could not be opened in the data source management.

ContentCreator
CXT-2946

Some editors in nested language-dependent forms could not be edited in the preview in all cases.

ContentCreator
DEVEX-618

Errors of type java.lang.Error are now also written to the configured log file.

FSDevTools

Deprecations

Functionality Deprecated as of Will be removed / Was removed as of
Input component CMS_INPUT_CONTENTAREALIST 5.2R3
Input component CMS_INPUT_CONTENTLIST 5.2R3
Input component CMS_INPUT_FILE 5.2R3
Input component CMS_INPUT_LINKLIST 5.2R3
Input component CMS_INPUT_OBJECTCHOOSER 5.2R3
Input component CMS_INPUT_PAGEREF 5.2R3
Input component CMS_INPUT_PICTURE 5.2R3
Input component CMS_INPUT_TABLIST 5.2R3
FirstSpirit Access API: de.espirit.firstspirit.agency.GroupsAgent 5.2R15
FirstSpirit Access API: delete (de.espirit.firstspirit.access.AccessUtil) 5.2R18
FirstSpirit Access API: release (de.espirit.firstspirit.access.AccessUtil) 2018-06
FirstSpirit Access API: getLastLoginAsDate (de.espirit.firstspirit.agency.UserStatisticsAgent) 2018-07
FirstSpirit Access API: remainingDurationOfCurrentStageInMillis (de.espirit.firstspirit.server.MaintenanceModeInfo) 2018-07 2025-13
FirstSpirit Access API: getStartingTimeOfStageAsDate (de.espirit.firstspirit.server.MaintenanceModeInfo) 2018-07 2025-13
FirstSpirit Access API: getSelectedWebserverConfiguration (de.espirit.firstspirit.access.serverConfiguration) 2018-10 2025-13
FirstSpirit Access API: setSelectedWebserverConfiguration (de.espirit.firstspirit.access.serverConfiguration) 2018-10 2025-13
FirstSpirit Access API: getSelectedWebServer (de.espirit.firstspirit.access.project.Project) 2018-10 2025-13
FirstSpirit Access API: setSelectedWebServer (de.espirit.firstspirit.access.project.Project) 2018-10 2025-13
FirstSpirit Access API: getLostAndFoundStoreNodes(); (de.espirit.firstspirit.feature.FeatureInstallResult) 2018-10
FirstSpirit Access API: getDeletedStoreNodes(); (de.espirit.firstspirit.feature.FeatureInstallResult) 2018-10
FirstSpirit Access API: de.espirit.firstspirit.access.store.Previewable 2019-01
WebSphere Application Server support for FirstSpirit 2019-05
Database layer for Oracle Database 11g/12c 2020-12 2025-05
FirstSpirit Access API: redirectTemplateLogToDefaultLog() (Interface RenderingAgent.Renderer) 2021-05
Support for Log4j 1 2022-05 2024-06