Alfresco Content Services 23.1 is a major software update release with improvements to Alfresco Content Services to accelerate use and development for customer solutions for deployment. With Alfresco Content Services 23.1, Alfresco continues to enable open source communities, customers and partners to deliver a highly reliable Content Store upon which to build applications and solutions.
Alfresco Content Services 23.1 delivers functionality to enable customers and developers to install Alfresco created solutions and to customise the product through integrations, APIs and SDKs.
Additionally, customers can purchase an upgrade from Alfresco Community Edition to Alfresco Content Services 23.1 to enable advanced features and purchase Alfresco applications, connectivity and solutions.
This release contains enhancements completed for the release of Alfresco Content Services 23.1. In addition, this release contains an updated stack of supported databases, operating systems and platforms providing up to date support.
Alfresco’s release readiness testing team have successfully completed their regression and upgrade testing cycles to help give you confidence to upgrade to the release. Alfresco Community Edition 23.1 shares much of its code with Alfresco Content Services which adds significant functionality in the release.
Goals for this Release
The main goal of this release is to enable customers, partners and experimenters to create solutions built on top of Alfresco’s content repository. As Alfresco and Hyland have a continuing commitment to Open Source, we value your feedback on the Hyland Community Hub.
New Version Format
Benefits for You:
Highlights
Toggle for more reliable events
A toggle has been introduced in Alfresco Repository to increase the reliability of events on the event queue. If the toggle is set, events are sent right after the database transaction closes, rather than through a separate thread. This increases the chance the events are correctly delivered to the queue, at a small performance cost.
By default this feature is disabled:
# Specifies if messages should be enqueued in in-memory queue or sent directly to the topic repo.event2.queue.skip=false
ARM64 containers for developers
Our developer experience is strongly built on Docker containers. Containers for the ARM64 architecture are now available on DockerHub, allowing developers using hardware with ARM64 chips (such as Apple’s M1/M2 chips) to use a containerized Alfresco without any extra steps.
Modularized Helm charts
The Helm charts have been broken up into multiple, separate charts. This allows for more customization in deployments, where only part of the configuration can be easily adapted without affecting other parts.
Jakarta EE 10 and Spring 6 support
As part of Jakarta Migration Alfresco Content Services is using now Spring 6 and Jakarta EE 10 instead of javax.
Tomcat 10 support
Alfresco now requires Tomcat 10. Earlier versions of Alfresco supported Tomcat 9. Tomcat 10 is not backwards compatible with Tomcat 9, so changes in existing deployments are required to move to Tomcat 10 and upgrade to Alfresco 23.1.
Additional details can be found in https://tomcat.apache.org/migration-10.html
Ensure to review your mTLS configuration for Repository. Note that Apache Tomcat 10 requires a new notation for secure connector configuration in server.xml file.
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" connectionTimeout="20000" maxThreads="150" SSLEnabled="true" scheme="https" secure="true" defaultSSLHostConfigName="localhost"> <SSLHostConfig hostName="localhost" protocols="TLSv1.2" certificateVerification="required" truststoreFile="/usr/local/tomcat/keystore/ssl.truststore" truststorePassword="truststore" truststoreType="JCEKS"> <Certificate certificateKeystoreFile="/usr/local/tomcat/keystore/ssl.keystore" certificateKeyAlias="ssl.repo" type="RSA" certificateKeystorePassword="keystore" certificateKeystoreType="JCEKS"/> </SSLHostConfig> </Connector>
Aditional details are available in: https://github.com/Alfresco/alfresco-docker-installer
Please report issues with this Alfresco Community Edition 23.1 using GitHub Issues or by using the discussion tools in the Alfresco Hub for Alfresco Community Edition.
Installation
Alfresco Community Edition 23.1 is available as a distribution zip file for manual installation, or it can be installed using an Ansible playbook (Linux only) for non-containerized environments. It is also available as a set of Docker images that can be deployed in containerized environments using docker-compose or Helm charts (for Kubernetes).
You can find a summary of these options here:
https://www.alfresco.com/products/community/download
ZIP Distribution files
Ansible
Deployment resources available in Alfresco/alfresco-ansible-deployment
Docker Compose
Reference Docker Compose template is available in community-docker-compose.yml
Additional Docker Compose deployment methods:
Kubernetes
Helm charts are available in https://github.com/Alfresco/acs-deployment/tree/master/helm/alfresco-content-services
Upgrading from previous releases
Care should be taken when upgrading from any previous releases of Alfresco Community Edition 23.1. There are some steps that should be reviewed and planned before you upgrade. Please take the time to familiarize yourself with the guidance below and plan your upgrade.
Please refer to the detailed Upgrading documentation, including Alfresco Content Services upgrade paths.
In particular, please ensure that the following steps are completed before you start your upgrade process:
Specific Release Components
REST API
Updated (Nodes)
GET /nodes/{nodeId}/targets GET /nodes/{nodeId}/sources
Added parameters skipCountParam and maxItemsParam to enable pagination for these endpoints
Added favorites entity (People)
GET /people/{personId}/favorites POST /people/{personId}/favorites GET /people/{personId}/favorites/{favoriteId}
Updated (Search)
POST /search
Added isFavorite as a possible value to include (if included, response will be enhanced with isFavorite indicator)
REST API Explorer
This release includes an updated of the REST API Explorer to navigate the new REST APIs.
Alfresco Share
The latest release of Share is 23.1. For further details please consult the list of issues fixed in this release at the bottom of the page under Issues Addressed.
Search Services
Search Services 2.0.8 with Solr is the legacy search solution for Alfresco Content Services 23.1.
Alfresco Governance Services
AGS 23.1 is the latest release and is compatible with Alfresco Content Services 23.1.
Alfresco Mobile
The latest release of Alfresco Mobile Workspace is 1.8 and is compatible with Alfresco Content Services 23.1. Alfresco Mobile Workspace now allows end users to capture single images with the native camera interaction and end users to capture multiple images and then review them before uploading in bulk.
We have deprecated support for Alfresco Content Services Mobile App.
SDK
The latest release of the Alfresco in-process SDK is SDK 4.7, which is compatible with Alfresco Content Services 23.1.
The latest release of the Alfresco out-of-process SDK is SDK 6.0, which is compatible with Alfresco Content Services 23.1 and the new SDK Event Gateway.
Alfresco Extension Inspector
This utility helps partners and customers better understand the customisations in their existing deployments. The Alfresco Extension Inspector is a utility for AMP inspection for Alfresco Community Edition and Alfresco Content Services 23.x releases. The inspector is recommended for use before installing new integrations of our product to help expose any issues that might impeded success.
The alfresco-extension-inspector is a tool that scans and validates an Alfresco extension (amp or jar) against an alfresco.war file. The tool parses an extension and generates a report on possible overrides, discouraged usage of nonpublic API, Alfresco's 3rd-party libraries and incompatible libraries.
To download Alfresco Extension Inspector from Nexus click here or from GitHub.
Alfresco Transform Service
Alfresco Transform Service in 4.0 was migrated to SpringBoot 3.
Documentation
The documentation has been refreshed for this release: https://docs.alfresco.com/content-services/community/
Localization
The Content Repository supports the following languages: French, German, Italian, Spanish, Japanese, Dutch, Norwegian (Bokmål), Russian, Brazilian Portuguese, Polish, Czech, Danish, Swedish, Finnish and Simplified Chinese.
Share supports the following languages: French, German, Italian, Spanish, Japanese, Dutch, Norwegian (Bokmål), Russian, Brazilian Portuguese and Simplified Chinese.
Alfresco Content Application supports the following languages: French, German, Italian, Spanish, Japanese, Dutch, Norwegian (Bokmål), Russian, Brazilian Portuguese, Polish, Czech, Danish, Swedish, Finnish and Simplified Chinese.
Contents
Images are available on Docker Hub
AMD64 + ARCH64
AMD64 only
The source code for the packaging project that is used to create and run Docker images and build the distribution zip can be found here.
3rd Party Components installed in the docker containers
Library changes
A number of underlying libraries have been updated in both the Repository and Share.
Removed libraries
gytheio: 0.18 Apache taglibs: 1.2.5 Jakarta RPC: 1.1.4 commons-fileupload: 1.5 json-schema-validator (com.github.fge): 2.2.6
Added libraries
AspectJ: 1.9.20.1 Guava: 32.1.2-jre Apache httpclient5: 5.2.1 Apache httpcore5: 5.2.3 pooled-jms: 3.1.2 Jakarta JAXB-IMPL: 4.0.3 Jakarta activation: 2.0.1 Javax activation: 1.2.0 Jakarta JSON-IMPL: 1.1.4 Apache Chemistry OpenCMIS: 1.0.0-jakarta-1 commons-fileupload2-jakarta: 2.0.0-M1 commons-net: 3.9.0 json-schema-validator (com.networknt): 1.0.86
Libraries upgraded between 7.4.0 and 23.1
alfresco-spring-encryptor: 8.17 to 8.96 alfresco-authorised-users: 6.1 to 6.2 alfresco-enterprise-crypto: 6.4 to 7.0 acs-enterprise-event-model: 0.0.56 to 0.0.62 surf-webscripts: 8.47 to 9.0 Spring: 5.3.27 to 6.0.12 Spring security: 5.8.3 to 6.1.4 OJDBC driver: 12.2.0.1 to 21.3.0 Hazelcast: 3.12.13 to 5.31 Jackson: 2.15.0-rc1 to 2.15.2 CXF: 3.5.5 to 4.0.2 BouncyCastle: 1.70 to 1.76 org-json: 20230227 to 20231013 commons-io 2.11.0 to 2.14.0 GSON: 2.8.9 to 2.10.1 Apache http-core: 4.4.15 to 4.4.16 Apache http-client: 4.5.13 to 4.5.14 SLF4J: 2.0.3 to 2.0.9 LOG4J: 2.19.0 to 2.20.0 Groovy: 3.0.16 to 3.0.19 Apache Camel: 3.20.2 to 4.0.0 Netty: 4.1.87.Final to 4.1.96.Final ActiveMQ: 5.17.4 to 5.18.2 Apache compress: 1.22 to 1.24.0 Swagger parser: 1.0.63 to 1.0.67 Jakarta JAXB-API: 2.3.3 to 4.0.0 Jakarta WS-API: 2.3.3 to 3.0.1 Jakarta SOAP-API: 1.4.2 to 2.0.1 Jakarta transaction-api: 1.3.3 to 2.0.1 Jakarta JWS-API: 2.1.0 to 3.0.0 Jakarta mail-api: 1.6.5 to 2.0.1 Jakarta activation-api: 1.2.2 to 2.0.1 Jakarta JSON-API: 1.1.6 to 2.1.2 Jakarta JSON-SMART: 2.4.10 to 2.5.0 PostgreSQL driver: 42.5.2 to 42.6.0 Commons-codec: 1.15 to 1.16.0 SnakeYAML: 2.0 to 2.2 jsoup: 1.15.3 to 1.16.1 joda-time: 2.12. to 2.12.5
If you’re upgrading from ACS 6.x to ACS 7.x, check out the Migration Guide to find out if your integrations need refactoring actions.
Jakarta Migration
As a part of Jakarta Migration number of javax API used by Alfresco Content Services was replaced by Jakarta EE equivalents.
Table below shown list of changes:
javax.xml.bind:jaxb-api > jakarta.xml.bind-api com.sun.xml.bind:jaxb-impl > org.glassfish.jaxb:jaxb-runtime com.sun.xml.bind:jaxb-core > org.glassfish.jaxb:jaxb-core javax.xml.soap:saaj-api. > jakarta.xml.soap-api javax.transaction > jakarta.transaction-api javax.mail > jakarta.mail-api javax.activation-api > jakarta.activation-api javax.jms-api > jakarta.jms-api javax.json > jakarta.json-api org.glassfish:jakarta.json > org.eclipse.parsson:parsson javax.servlet:servlet-api > jakarta.servlet-api javax.xml.ws:jaxws-api > jakarta.xml.ws-api javax.annotation-api > jakarta.annotation-api
Issues Addressed
Known Issues
None