SlideShare une entreprise Scribd logo
1  sur  30
Télécharger pour lire hors ligne
Transform Services & Repository
Transform Services & Repository
Components
• Transform Core (AIO)
• Single-step transformations via HTTP
• Individual T-Engines can be also deployed independently
• Transform Router
• Multi-step transformations with pipelines and failover mechanism
via Messaging (ActiveMQ)
• Shared File Store
• Filesystem repository via HTTP
Transform Services & Repository
Community
Transform Core AIO
LibreOffice
ImageMagick
PDF Renderer
Tika Misc
Alfresco
Repository
Transform Service
SYNC
Custom
local.transform.service.enabled=true
Transform Services & Repository
Transform Core AIO (Community)
• Spring Boot App
• HTTP services
• Configuration GET transform/config
• Transform POST /
• Test Page GET /
• Log GET /log
• Live GET /live
• Ready GET /ready
• Synchronous
• Unique option for Alfresco Community deployments
Transform Core AIO
Transform Services & Repository
Enterprise
Shared File Store
Transform Router
Transform Core AIO
ActiveMQ
Alfresco
Repository
Transform Service
SYNC
ASYNC
ASYNC LibreOffice
ImageMagick
PDF Renderer
Tika Misc
Custom DTE AIS
SYNC
(config)
SYNC
ASYNC
SYNC
transform.service.enabled=true
Transform Services & Repository
Transform Core AIO (Enterprise)
• Spring Boot App
• HTTP services
• Synchronous
• Configuration, some Share actions and Text extraction (Solr)
• Messaging services (ActiveMQ)
• Asynchronous
• Requests queue: org.alfresco.transform.t-request.acs
• Replies queue: org.alfresco.transform.engine.t-reply.acs
Transform Core AIO
Transform Services & Repository
Transform Engines
• LibreOffice Office Documents including Microsoft formats
• ImageMagick Images and thumbnails
• PDF Renderer Generate PNG of first page from a PDF document
• Tika Compressed files and metadata extraction
• Misc HTML, iWorks, EML, XML, Markdown, source code…
• DTE (Document Transformation Engine): Word, Excel and PowerPoint
• AIS (Alfresco Intelligence Services): Enrichment of content metadata
• Custom Transformation and enrichment for additional formats
Transform Core AIO
Out of
the Box
Paid
Modules
Dev
Transform Router
Transform Services & Repository
Transform Router
• Spring Boot App
• Retrying policy
• Max retries (3 by default)
• Timeout (10 secs by default)
• Types of Transformers
• Single-step
• Pipeline
• Error handling
• 400 BAD REQUEST
• Invalid JSON
• Invalid values
• Unsupported transformation
• 403 FORBIDDEN
• mTLS fails due to wrong client certificate
• 500 INTERNAL SERVER ERROR
Shared File Store
Transform Services & Repository
Shared File Store
• Spring Boot App
• HTTP service wrapping a shared filesystem
• A place to store and retrieve files from different services (like ACS and ATS)
• Configuration
• scheduler.content.age.millis 86400000 Content retention period
• scheduler.cleanup.interval 86400000 Cleanup Scheduler interval
Transform Services & Repository
Configuration
Described in T-Engines as JSON files
• libreoffice_engine_config.json
• imagemagick_engine_config.json
• misc_engine_config.json
• pdfrenderer_engine_config.json
• tika_engine_config.json
{
"transformOptions": {
"metadataOptions": [
{"value": {"name": "extractMapping"}}
]
},
"transformers": [
{
"transformerName": "Tika",
"supportedSourceAndTargetList": [
{ "sourceMediaType": "application/pdf",
"maxSourceSizeBytes": 26214400,
"priority": 55,
"targetMediaType": "text/plain"},
],
"transformOptions": [
"metadataOptions"
]
}
]
}
Transform Services & Repository
Configuration changes
External JSON file configured as environment variable
TRANSFORM_CONFIG_FILE_<NAME>
• Add
• Override
• Removal
• Default values modification
{
"addSupported": [
{
"transformerName": "Archive",
"sourceMediaType": "application/zip",
"targetMediaType": "text/csv",
"priority": 60,
"maxSourceSizeBytes": 18874368
}
]
}
https://github.com/aborroy/alfresco-transform-service-3.0.0#changing-default-configuration
Transform Services & Repository
Creating a new T-Engine
• Maven
<parent>
<groupId>org.alfresco</groupId>
<artifactId>alfresco-transform-core</artifactId>
<version>3.0.0</version>
</parent>
<dependencies>
<dependency>
<groupId>org.alfresco</groupId>
<artifactId>alfresco-base-t-engine</artifactId>
<version>3.0.0</version>
</dependency>
</dependencies>
• Java
• org.alfresco.transform.base.TransformEngine to provide basic information about the Engine
and the Transform pipelines
• org.alfresco.transform.base.CustomTransformer to implement the transformation operation
https://github.com/aborroy/alfresco-transform-service-3.0.0/tree/main/pandoc-t-engine
Transform Services & Repository
Creating a new T-Engine
• Define pipelines
{
"transformers":
[
{
"transformerName": "markdown",
"supportedSourceAndTargetList":
[
{"sourceMediaType": "text/markdown", "targetMediaType": "application/pdf" },
{"sourceMediaType": "text/x-markdown", "targetMediaType": "application/pdf" }
]
},
{
"transformerName": "latex",
"supportedSourceAndTargetList":
[
{"sourceMediaType": "application/x-tex", "targetMediaType": "application/pdf" }
]
}
]
}
Transform Services & Repository
Creating a new T-Engine
• Create the Dockerfile
FROM pandoc/core:latest-ubuntu
COPY target/pandoc-t-engine.jar /usr/bin
EXPOSE 8090
USER ${USERNAME}
ENTRYPOINT java $JAVA_OPTS -jar /usr/bin/pandoc-t-engine.jar
Transform Services & Repository
Creating a new T-Engine
• Deployment in Docker Compose
services:
alfresco:
image: alfresco/alfresco-content-repository-community:7.4.0
environment:
JAVA_OPTS: >-
-DlocalTransform.pandoc.url=http://transform-pandoc:8090/
transform-pandoc:
image: alfresco/pandoc-t-engine:latest
ports:
- 8096:8090
Transform Services & Repository
Resources usage and logging level
transform-core-aio:
image: alfresco/alfresco-transform-core-aio:3.0.0
environment:
JAVA_OPTS: "
-Dserver.tomcat.threads.min=4
-Dserver.tomcat.threads.max=12
-Dlogging.level.org.alfresco.transform.common.TransformerDebug=ERROR
"
Transform Services & Repository
Scaling up
https://github.com/aborroy/acs-transform-cluster
Community
Enterprise
Secure Communications & Settings
Secure Communications & Settings
• From ACS 7.4, mTLS communication between Transform Service
and Repository is supported
• Alfresco SSL Generator tool has been updated to produce required
keystore and truststore files
• Generate a self-signed CA*
• Generate certificates, keystores and truststores for Repository & Transform
$ ./run_additional.sh -servicename transform-core-aio -rootcapass kT9X6oe68t -keysize 2048 
-keystoretype PKCS12 -keystorepass kT9X6oe68t -truststoretype PKCS12 -truststorepass kT9X6oe68t 
-certdname "/C=GB/ST=UK/L=Maidenhead/O=Alfresco Software Ltd./OU=Unknown/CN=Transform Core AIO" 
-servername transform-core-aio -alfrescoformat current
• Apply configuration settings for properties and keystores
* You may use your own software or PKI infrastructure to create CA and certificates, but configuration
related to keystore type and certificate alias should be followed as described by Alfresco SSL Generator
Secure Communications & Settings
https://github.com/aborroy/alfresco-secure-connection
Community
Community – Repository
alfresco:
environment:
JAVA_TOOL_OPTIONS: >-
-Dencryption.ssl.keystore.type=PKCS12
-Dencryption.ssl.keystore.location=/usr/local/tomcat/alfresco.keystore
-Dssl-keystore.password=kT9X6oe68t
-Dencryption.ssl.truststore.type=PKCS12
-Dencryption.ssl.truststore.location=/usr/local/tomcat/alfresco.truststore
-Dssl-truststore.password=kT9X6oe68t
JAVA_OPTS: >-
-DlocalTransform.core-aio.url=https://transform-core-aio:8090/
-Dhttpclient.config.transform.mTLSEnabled=true
-Dhttpclient.config.transform.hostnameVerificationDisabled=true
-Djdk.tls.client.protocols=TLSv1.2
volumes:
- ./keystore/alfresco/alfresco.keystore:/usr/local/tomcat/alfresco.keystore
- ./keystore/alfresco/alfresco.truststore:/usr/local/tomcat/alfresco.truststore
Secure Communications & Settings
Alfresco SSL
Generator
Secure Communications & Settings
Community – Transform Service
transform-core-aio:
environment:
SERVER_SSL_ENABLED: "true"
SERVER_SSL_CLIENT_AUTH: "need"
SERVER_SSL_ENABLED_PROTOCOLS: "TLSv1.2"
SERVER_SSL_KEY_PASSWORD: "kT9X6oe68t"
SERVER_SSL_KEY_STORE: "file:/transform-core-aio.keystore"
SERVER_SSL_KEY_STORE_PASSWORD: "kT9X6oe68t"
SERVER_SSL_KEY_STORE_TYPE: "PKCS12"
SERVER_SSL_TRUST_STORE: "file:/transform-core-aio.truststore"
SERVER_SSL_TRUST_STORE_PASSWORD: "kT9X6oe68t"
SERVER_SSL_TRUST_STORE_TYPE: "PKCS12"
volumes:
- ./keystore/tengineAIO/transform-core-aio.keystore:/transform-core-aio.keystore
- ./keystore/tengineAIO/transform-core-aio.truststore:/transform-core-aio.truststore
Alfresco SSL
Generator
Secure Communications & Settings
Enterprise
Shared File Store
Transform Router
Transform Core AIO
Alfresco
Repository
Transform Service
mTLS
LibreOffice
ImageMagick
PDF Renderer
Tika Misc
Custom DTE AIS
mTLS
mTLS
mTLS
mTLS
Enterprise – Repository
alfresco:
environment:
JAVA_TOOL_OPTIONS: >-
-Dencryption.ssl.keystore.type=PKCS12
-Dencryption.ssl.keystore.location=/usr/local/tomcat/alfresco.keystore
-Dssl-keystore.password=kT9X6oe68t
-Dencryption.ssl.truststore.type=PKCS12
-Dencryption.ssl.truststore.location=/usr/local/tomcat/alfresco.truststore
-Dssl-truststore.password=kT9X6oe68t
JAVA_OPTS: >-
-Dtransform.service.enabled=true
-Dtransform.service.url=https://transform-router:8095
-DlocalTransform.core-aio.url=https://transform-core-aio:8090/
-Dsfs.url=https://shared-file-store:8099/
-Dhttpclient.config.transform.mTLSEnabled=true
-Dhttpclient.config.transform.hostnameVerificationDisabled=true
-Djdk.tls.client.protocols=TLSv1.2
volumes:
- ./keystore/alfresco/alfresco.keystore:/usr/local/tomcat/alfresco.keystore
- ./keystore/alfresco/alfresco.truststore:/usr/local/tomcat/alfresco.truststore
Secure Communications & Settings
Alfresco SSL
Generator
Secure Communications & Settings
Enterprise – Transform Router
transform-router:
environment:
CORE_AIO_URL: https://transform-core-aio:8090
FILE_STORE_URL: https://shared-file-store:8099/alfresco/api/-default-/private/sfs/versions/1/file
SERVER_SSL_ENABLED: "true"
SERVER_SSL_CLIENT_AUTH: "need"
SERVER_SSL_ENABLED_PROTOCOLS: "TLSv1.2"
SERVER_SSL_KEY_PASSWORD: "password"
SERVER_SSL_KEY_STORE: "file:/transformRouter.keystore"
SERVER_SSL_KEY_STORE_PASSWORD: "password"
SERVER_SSL_KEY_STORE_TYPE: "PKCS12"
SERVER_SSL_TRUST_STORE: "file:/transformRouter.truststore"
SERVER_SSL_TRUST_STORE_PASSWORD: "password"
SERVER_SSL_TRUST_STORE_TYPE: "PKCS12"
CLIENT_SSL_KEY_STORE: "file:/transformRouter.keystore"
CLIENT_SSL_KEY_STORE_PASSWORD: "password"
CLIENT_SSL_KEY_STORE_TYPE: "PKCS12"
CLIENT_SSL_TRUST_STORE: "file:/transformRouter.truststore"
CLIENT_SSL_TRUST_STORE_PASSWORD: "password"
CLIENT_SSL_TRUST_STORE_TYPE: "PKCS12"
CLIENT_SSL_HOSTNAME_VERIFICATION_DISABLED: true
volumes:
- ./keystore/transformRouter/transformRouter.truststore:/transformRouter.truststore
- ./keystore/transformRouter/transformRouter.keystore:/transformRouter.keystore
Alfresco SSL
Generator
Secure Communications & Settings
Enterprise – Transform Core
transform-core-aio:
environment:
FILE_STORE_URL: >-
https://shared-file-store:8099/alfresco/api/-default-/private/sfs/versions/1/file
SERVER_SSL_ENABLED: "true"
SERVER_SSL_CLIENT_AUTH: "need"
SERVER_SSL_ENABLED_PROTOCOLS: "TLSv1.2"
SERVER_SSL_KEY_PASSWORD: "password"
SERVER_SSL_KEY_STORE: "file:/tengineAIO.keystore"
SERVER_SSL_KEY_STORE_PASSWORD: "password"
SERVER_SSL_KEY_STORE_TYPE: "PKCS12"
SERVER_SSL_TRUST_STORE: "file:/tengineAIO.truststore"
SERVER_SSL_TRUST_STORE_PASSWORD: "password"
SERVER_SSL_TRUST_STORE_TYPE: "PKCS12"
CLIENT_SSL_KEY_STORE: "file:/tengineAIO.keystore"
CLIENT_SSL_KEY_STORE_PASSWORD: "password"
CLIENT_SSL_KEY_STORE_TYPE: "PKCS12"
CLIENT_SSL_TRUST_STORE: "file:/tengineAIO.truststore"
CLIENT_SSL_TRUST_STORE_PASSWORD: "password"
CLIENT_SSL_TRUST_STORE_TYPE: "PKCS12"
CLIENT_SSL_HOSTNAME_VERIFICATION_DISABLED: true
volumes:
- ./keystore/tengineAIO/tengineAIO.truststore:/tengineAIO.truststore
- ./keystore/tengineAIO/tengineAIO.keystore:/tengineAIO.keystore
Alfresco SSL
Generator
Secure Communications & Settings
Enterprise – Shared File Store
shared-file-store:
environment:
SERVER_SSL_ENABLED: "true"
SERVER_SSL_CLIENT_AUTH: "need"
SERVER_SSL_ENABLED_PROTOCOLS: "TLSv1.2"
SERVER_SSL_KEY_PASSWORD: "password"
SERVER_SSL_KEY_STORE: "file:/sharedFileStore.keystore"
SERVER_SSL_KEY_STORE_PASSWORD: "password"
SERVER_SSL_KEY_STORE_TYPE: "PKCS12"
SERVER_SSL_TRUST_STORE: "file:/sharedFileStore.truststore"
SERVER_SSL_TRUST_STORE_PASSWORD: "password"
SERVER_SSL_TRUST_STORE_TYPE: "PKCS12"
CLIENT_SSL_KEY_STORE: "file:/sharedFileStore.keystore"
CLIENT_SSL_KEY_STORE_PASSWORD: "password"
CLIENT_SSL_KEY_STORE_TYPE: "PKCS12"
CLIENT_SSL_TRUST_STORE: "file:/sharedFileStore.truststore"
CLIENT_SSL_TRUST_STORE_PASSWORD: "password"
CLIENT_SSL_TRUST_STORE_TYPE: "PKCS12"
CLIENT_SSL_HOSTNAME_VERIFICATION_DISABLED: true
volumes:
- ./keystore/sharedFileStore/sharedFileStore.truststore:/sharedFileStore.truststore
- ./keystore/sharedFileStore/sharedFileStore.keystore:/sharedFileStore.keystore
Alfresco SSL
Generator
Tips & Tricks
Tips & Tricks
TLS
• Use TLSv1.3 where available
• When using TLSv1.2, restrict accepted algorithms to
• AES-128 with SHA-256
• AES-256 with SHA-384
• The use of SSL, TLSv1.0 and TLSv1.1 is severely discouraged
Keystores
• Use PKCS#12 keystore and truststore types
• P#12 keystores built with OpenSSL don’t work with Java, using keytool is required *
Keys
• Use at least 2048 bits for RSA keys
* https://angelborroy.wordpress.com/2022/08/12/building-a-custom-pkcs12-truststore-for-java/
Alfresco Transform Services 4.0.0

Contenu connexe

Tendances

Tendances (20)

Secure Salesforce: External App Integrations
Secure Salesforce: External App IntegrationsSecure Salesforce: External App Integrations
Secure Salesforce: External App Integrations
 
Cloud Architecture - Multi Cloud, Edge, On-Premise
Cloud Architecture - Multi Cloud, Edge, On-PremiseCloud Architecture - Multi Cloud, Edge, On-Premise
Cloud Architecture - Multi Cloud, Edge, On-Premise
 
Moving From Actions & Behaviors to Microservices
Moving From Actions & Behaviors to MicroservicesMoving From Actions & Behaviors to Microservices
Moving From Actions & Behaviors to Microservices
 
(Re)Indexing Large Repositories in Alfresco
(Re)Indexing Large Repositories in Alfresco(Re)Indexing Large Repositories in Alfresco
(Re)Indexing Large Repositories in Alfresco
 
Two-Way Integration with Writable External Objects
Two-Way Integration with Writable External ObjectsTwo-Way Integration with Writable External Objects
Two-Way Integration with Writable External Objects
 
Moving Gigantic Files Into and Out of the Alfresco Repository
Moving Gigantic Files Into and Out of the Alfresco RepositoryMoving Gigantic Files Into and Out of the Alfresco Repository
Moving Gigantic Files Into and Out of the Alfresco Repository
 
Alfresco tuning part1
Alfresco tuning part1Alfresco tuning part1
Alfresco tuning part1
 
Introduction to lightning web component
Introduction to lightning web component Introduction to lightning web component
Introduction to lightning web component
 
Eventing Things - A Netflix Original! (Nitin Sharma, Netflix) Kafka Summit SF...
Eventing Things - A Netflix Original! (Nitin Sharma, Netflix) Kafka Summit SF...Eventing Things - A Netflix Original! (Nitin Sharma, Netflix) Kafka Summit SF...
Eventing Things - A Netflix Original! (Nitin Sharma, Netflix) Kafka Summit SF...
 
Using Personas for Salesforce Accessibility and Security
Using Personas for Salesforce Accessibility and SecurityUsing Personas for Salesforce Accessibility and Security
Using Personas for Salesforce Accessibility and Security
 
Integrating with Einstein Analytics
Integrating with Einstein AnalyticsIntegrating with Einstein Analytics
Integrating with Einstein Analytics
 
Discover deep insights with Salesforce Einstein Analytics and Discovery
Discover deep insights with Salesforce Einstein Analytics and DiscoveryDiscover deep insights with Salesforce Einstein Analytics and Discovery
Discover deep insights with Salesforce Einstein Analytics and Discovery
 
Hashicorp Vault - OPEN Public Sector
Hashicorp Vault - OPEN Public SectorHashicorp Vault - OPEN Public Sector
Hashicorp Vault - OPEN Public Sector
 
Integration using Salesforce Canvas
Integration using Salesforce CanvasIntegration using Salesforce Canvas
Integration using Salesforce Canvas
 
Performance Analysis of Apache Spark and Presto in Cloud Environments
Performance Analysis of Apache Spark and Presto in Cloud EnvironmentsPerformance Analysis of Apache Spark and Presto in Cloud Environments
Performance Analysis of Apache Spark and Presto in Cloud Environments
 
Salesforce Training For Beginners | Salesforce Tutorial | Salesforce Training...
Salesforce Training For Beginners | Salesforce Tutorial | Salesforce Training...Salesforce Training For Beginners | Salesforce Tutorial | Salesforce Training...
Salesforce Training For Beginners | Salesforce Tutorial | Salesforce Training...
 
Introduction to the Container Network Interface (CNI)
Introduction to the Container Network Interface (CNI)Introduction to the Container Network Interface (CNI)
Introduction to the Container Network Interface (CNI)
 
Introduction to the Salesforce Security Model
Introduction to the Salesforce Security ModelIntroduction to the Salesforce Security Model
Introduction to the Salesforce Security Model
 
Salesforce Tableau CRM - Quick Overview
Salesforce Tableau CRM - Quick OverviewSalesforce Tableau CRM - Quick Overview
Salesforce Tableau CRM - Quick Overview
 
The Payer of the Future: Modernizing Health Insurance with API-led Connectivity
The Payer of the Future: Modernizing Health Insurance with API-led ConnectivityThe Payer of the Future: Modernizing Health Insurance with API-led Connectivity
The Payer of the Future: Modernizing Health Insurance with API-led Connectivity
 

Similaire à Alfresco Transform Services 4.0.0

Rails Request & Middlewares
Rails Request & MiddlewaresRails Request & Middlewares
Rails Request & Middlewares
Santosh Wadghule
 

Similaire à Alfresco Transform Services 4.0.0 (20)

Otimizando servidores web
Otimizando servidores webOtimizando servidores web
Otimizando servidores web
 
Introduction of Tomcat
Introduction of TomcatIntroduction of Tomcat
Introduction of Tomcat
 
Year in Review: Perforce 2014 Product Updates
Year in Review: Perforce 2014 Product UpdatesYear in Review: Perforce 2014 Product Updates
Year in Review: Perforce 2014 Product Updates
 
Rails Request & Middlewares
Rails Request & MiddlewaresRails Request & Middlewares
Rails Request & Middlewares
 
StackMate - CloudFormation for CloudStack
StackMate - CloudFormation for CloudStackStackMate - CloudFormation for CloudStack
StackMate - CloudFormation for CloudStack
 
Mule overview
Mule overviewMule overview
Mule overview
 
App fabric introduction
App fabric introductionApp fabric introduction
App fabric introduction
 
Deploying and Managing PowerPivot for SharePoint
Deploying and Managing PowerPivot for SharePointDeploying and Managing PowerPivot for SharePoint
Deploying and Managing PowerPivot for SharePoint
 
Deep Dive: Alfresco Core Repository (... embedded in a micro-services style a...
Deep Dive: Alfresco Core Repository (... embedded in a micro-services style a...Deep Dive: Alfresco Core Repository (... embedded in a micro-services style a...
Deep Dive: Alfresco Core Repository (... embedded in a micro-services style a...
 
DEVNET-1128 Cisco Intercloud Fabric NB Api's for Business & Providers
DEVNET-1128	Cisco Intercloud Fabric NB Api's for Business & ProvidersDEVNET-1128	Cisco Intercloud Fabric NB Api's for Business & Providers
DEVNET-1128 Cisco Intercloud Fabric NB Api's for Business & Providers
 
Developer’s intro to the alfresco platform
Developer’s intro to the alfresco platformDeveloper’s intro to the alfresco platform
Developer’s intro to the alfresco platform
 
Migrate from Oracle to Aurora PostgreSQL: Best Practices, Design Patterns, & ...
Migrate from Oracle to Aurora PostgreSQL: Best Practices, Design Patterns, & ...Migrate from Oracle to Aurora PostgreSQL: Best Practices, Design Patterns, & ...
Migrate from Oracle to Aurora PostgreSQL: Best Practices, Design Patterns, & ...
 
Migrating from Pivotal tc Server on-prem to IBM Liberty in the cloud
Migrating from Pivotal tc Server on-prem to IBM Liberty in the cloudMigrating from Pivotal tc Server on-prem to IBM Liberty in the cloud
Migrating from Pivotal tc Server on-prem to IBM Liberty in the cloud
 
(ATS6-PLAT04) Query service
(ATS6-PLAT04) Query service (ATS6-PLAT04) Query service
(ATS6-PLAT04) Query service
 
TOMCAT WEB SERVER TECHNICAL BY SAIKIRAN PANJALA
TOMCAT WEB SERVER TECHNICAL BY SAIKIRAN PANJALATOMCAT WEB SERVER TECHNICAL BY SAIKIRAN PANJALA
TOMCAT WEB SERVER TECHNICAL BY SAIKIRAN PANJALA
 
WAF deployment
WAF deploymentWAF deployment
WAF deployment
 
Coherence sig-nfr-web-tier-scaling-using-coherence-web
Coherence sig-nfr-web-tier-scaling-using-coherence-webCoherence sig-nfr-web-tier-scaling-using-coherence-web
Coherence sig-nfr-web-tier-scaling-using-coherence-web
 
(DVO308) Docker & ECS in Production: How We Migrated Our Infrastructure from ...
(DVO308) Docker & ECS in Production: How We Migrated Our Infrastructure from ...(DVO308) Docker & ECS in Production: How We Migrated Our Infrastructure from ...
(DVO308) Docker & ECS in Production: How We Migrated Our Infrastructure from ...
 
Java-Web-Applications.pdf
Java-Web-Applications.pdfJava-Web-Applications.pdf
Java-Web-Applications.pdf
 
Angular - Chapter 7 - HTTP Services
Angular - Chapter 7 - HTTP ServicesAngular - Chapter 7 - HTTP Services
Angular - Chapter 7 - HTTP Services
 

Plus de Angel Borroy López

Before & After Docker Init
Before & After Docker InitBefore & After Docker Init
Before & After Docker Init
Angel Borroy López
 
Alfresco search services: Now and Then
Alfresco search services: Now and ThenAlfresco search services: Now and Then
Alfresco search services: Now and Then
Angel Borroy López
 

Plus de Angel Borroy López (20)

Transitioning from Customized Solr to Out-of-the-Box OpenSearch
Transitioning from Customized Solr to Out-of-the-Box OpenSearchTransitioning from Customized Solr to Out-of-the-Box OpenSearch
Transitioning from Customized Solr to Out-of-the-Box OpenSearch
 
Alfresco integration with OpenSearch - OpenSearchCon 2024 Europe
Alfresco integration with OpenSearch - OpenSearchCon 2024 EuropeAlfresco integration with OpenSearch - OpenSearchCon 2024 Europe
Alfresco integration with OpenSearch - OpenSearchCon 2024 Europe
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
 
Using Generative AI and Content Service Platforms together
Using Generative AI and Content Service Platforms togetherUsing Generative AI and Content Service Platforms together
Using Generative AI and Content Service Platforms together
 
Enhancing Document-Centric Features with On-Premise Generative AI for Alfresc...
Enhancing Document-Centric Features with On-Premise Generative AI for Alfresc...Enhancing Document-Centric Features with On-Premise Generative AI for Alfresc...
Enhancing Document-Centric Features with On-Premise Generative AI for Alfresc...
 
La Guía Definitiva para una Actualización Exitosa a Alfresco 23.1
La Guía Definitiva para una Actualización Exitosa a Alfresco 23.1La Guía Definitiva para una Actualización Exitosa a Alfresco 23.1
La Guía Definitiva para una Actualización Exitosa a Alfresco 23.1
 
Docker Init with Templates for Alfresco
Docker Init with Templates for AlfrescoDocker Init with Templates for Alfresco
Docker Init with Templates for Alfresco
 
Before & After Docker Init
Before & After Docker InitBefore & After Docker Init
Before & After Docker Init
 
How to migrate from Alfresco Search Services to Alfresco SearchEnterprise
How to migrate from Alfresco Search Services to Alfresco SearchEnterpriseHow to migrate from Alfresco Search Services to Alfresco SearchEnterprise
How to migrate from Alfresco Search Services to Alfresco SearchEnterprise
 
Using Podman with Alfresco
Using Podman with AlfrescoUsing Podman with Alfresco
Using Podman with Alfresco
 
CSP: Evolución de servicios de código abierto en un mundo Cloud Native
CSP: Evolución de servicios de código abierto en un mundo Cloud NativeCSP: Evolución de servicios de código abierto en un mundo Cloud Native
CSP: Evolución de servicios de código abierto en un mundo Cloud Native
 
Alfresco Embedded Activiti Engine
Alfresco Embedded Activiti EngineAlfresco Embedded Activiti Engine
Alfresco Embedded Activiti Engine
 
Alfresco Transform Core 3.0.0
Alfresco Transform Core 3.0.0Alfresco Transform Core 3.0.0
Alfresco Transform Core 3.0.0
 
Collaborative Editing Tools for Alfresco
Collaborative Editing Tools for AlfrescoCollaborative Editing Tools for Alfresco
Collaborative Editing Tools for Alfresco
 
Desarrollando una Extensión para Docker
Desarrollando una Extensión para DockerDesarrollando una Extensión para Docker
Desarrollando una Extensión para Docker
 
DockerCon 2022 Spanish Room-ONBOARDING.pdf
DockerCon 2022 Spanish Room-ONBOARDING.pdfDockerCon 2022 Spanish Room-ONBOARDING.pdf
DockerCon 2022 Spanish Room-ONBOARDING.pdf
 
Deploying Containerised Open-Source CSP Platforms
Deploying Containerised Open-Source CSP PlatformsDeploying Containerised Open-Source CSP Platforms
Deploying Containerised Open-Source CSP Platforms
 
Introduction to AWS
Introduction to AWSIntroduction to AWS
Introduction to AWS
 
A Practical Introduction to Apache Solr
A Practical Introduction to Apache SolrA Practical Introduction to Apache Solr
A Practical Introduction to Apache Solr
 
Alfresco search services: Now and Then
Alfresco search services: Now and ThenAlfresco search services: Now and Then
Alfresco search services: Now and Then
 

Dernier

Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...
Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...
Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...
Lisi Hocke
 
Jax, FL Admin Community Group 05.14.2024 Combined Deck
Jax, FL Admin Community Group 05.14.2024 Combined DeckJax, FL Admin Community Group 05.14.2024 Combined Deck
Jax, FL Admin Community Group 05.14.2024 Combined Deck
Marc Lester
 

Dernier (20)

The Evolution of Web App Testing_ An Ultimate Guide to Future Trends.pdf
The Evolution of Web App Testing_ An Ultimate Guide to Future Trends.pdfThe Evolution of Web App Testing_ An Ultimate Guide to Future Trends.pdf
The Evolution of Web App Testing_ An Ultimate Guide to Future Trends.pdf
 
Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)
Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)
Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)
 
The mythical technical debt. (Brooke, please, forgive me)
The mythical technical debt. (Brooke, please, forgive me)The mythical technical debt. (Brooke, please, forgive me)
The mythical technical debt. (Brooke, please, forgive me)
 
how-to-download-files-safely-from-the-internet.pdf
how-to-download-files-safely-from-the-internet.pdfhow-to-download-files-safely-from-the-internet.pdf
how-to-download-files-safely-from-the-internet.pdf
 
Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...
Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...
Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...
 
Secure Software Ecosystem Teqnation 2024
Secure Software Ecosystem Teqnation 2024Secure Software Ecosystem Teqnation 2024
Secure Software Ecosystem Teqnation 2024
 
Abortion Clinic In Polokwane ](+27832195400*)[ 🏥 Safe Abortion Pills in Polok...
Abortion Clinic In Polokwane ](+27832195400*)[ 🏥 Safe Abortion Pills in Polok...Abortion Clinic In Polokwane ](+27832195400*)[ 🏥 Safe Abortion Pills in Polok...
Abortion Clinic In Polokwane ](+27832195400*)[ 🏥 Safe Abortion Pills in Polok...
 
Entropy, Software Quality, and Innovation (presented at Princeton Plasma Phys...
Entropy, Software Quality, and Innovation (presented at Princeton Plasma Phys...Entropy, Software Quality, and Innovation (presented at Princeton Plasma Phys...
Entropy, Software Quality, and Innovation (presented at Princeton Plasma Phys...
 
Automate your OpenSIPS config tests - OpenSIPS Summit 2024
Automate your OpenSIPS config tests - OpenSIPS Summit 2024Automate your OpenSIPS config tests - OpenSIPS Summit 2024
Automate your OpenSIPS config tests - OpenSIPS Summit 2024
 
Evolving Data Governance for the Real-time Streaming and AI Era
Evolving Data Governance for the Real-time Streaming and AI EraEvolving Data Governance for the Real-time Streaming and AI Era
Evolving Data Governance for the Real-time Streaming and AI Era
 
Salesforce Introduced Zero Copy Partner Network to Simplify the Process of In...
Salesforce Introduced Zero Copy Partner Network to Simplify the Process of In...Salesforce Introduced Zero Copy Partner Network to Simplify the Process of In...
Salesforce Introduced Zero Copy Partner Network to Simplify the Process of In...
 
[GeeCON2024] How I learned to stop worrying and love the dark silicon apocalypse
[GeeCON2024] How I learned to stop worrying and love the dark silicon apocalypse[GeeCON2024] How I learned to stop worrying and love the dark silicon apocalypse
[GeeCON2024] How I learned to stop worrying and love the dark silicon apocalypse
 
Software Engineering - Introduction + Process Models + Requirements Engineering
Software Engineering - Introduction + Process Models + Requirements EngineeringSoftware Engineering - Introduction + Process Models + Requirements Engineering
Software Engineering - Introduction + Process Models + Requirements Engineering
 
architecting-ai-in-the-enterprise-apis-and-applications.pdf
architecting-ai-in-the-enterprise-apis-and-applications.pdfarchitecting-ai-in-the-enterprise-apis-and-applications.pdf
architecting-ai-in-the-enterprise-apis-and-applications.pdf
 
Modern binary build systems - PyCon 2024
Modern binary build systems - PyCon 2024Modern binary build systems - PyCon 2024
Modern binary build systems - PyCon 2024
 
Transformer Neural Network Use Cases with Links
Transformer Neural Network Use Cases with LinksTransformer Neural Network Use Cases with Links
Transformer Neural Network Use Cases with Links
 
Abortion Clinic In Johannesburg ](+27832195400*)[ 🏥 Safe Abortion Pills in Jo...
Abortion Clinic In Johannesburg ](+27832195400*)[ 🏥 Safe Abortion Pills in Jo...Abortion Clinic In Johannesburg ](+27832195400*)[ 🏥 Safe Abortion Pills in Jo...
Abortion Clinic In Johannesburg ](+27832195400*)[ 🏥 Safe Abortion Pills in Jo...
 
Abortion Clinic In Pretoria ](+27832195400*)[ 🏥 Safe Abortion Pills in Pretor...
Abortion Clinic In Pretoria ](+27832195400*)[ 🏥 Safe Abortion Pills in Pretor...Abortion Clinic In Pretoria ](+27832195400*)[ 🏥 Safe Abortion Pills in Pretor...
Abortion Clinic In Pretoria ](+27832195400*)[ 🏥 Safe Abortion Pills in Pretor...
 
Spring into AI presented by Dan Vega 5/14
Spring into AI presented by Dan Vega 5/14Spring into AI presented by Dan Vega 5/14
Spring into AI presented by Dan Vega 5/14
 
Jax, FL Admin Community Group 05.14.2024 Combined Deck
Jax, FL Admin Community Group 05.14.2024 Combined DeckJax, FL Admin Community Group 05.14.2024 Combined Deck
Jax, FL Admin Community Group 05.14.2024 Combined Deck
 

Alfresco Transform Services 4.0.0

  • 1. Transform Services & Repository
  • 2. Transform Services & Repository Components • Transform Core (AIO) • Single-step transformations via HTTP • Individual T-Engines can be also deployed independently • Transform Router • Multi-step transformations with pipelines and failover mechanism via Messaging (ActiveMQ) • Shared File Store • Filesystem repository via HTTP
  • 3. Transform Services & Repository Community Transform Core AIO LibreOffice ImageMagick PDF Renderer Tika Misc Alfresco Repository Transform Service SYNC Custom local.transform.service.enabled=true
  • 4. Transform Services & Repository Transform Core AIO (Community) • Spring Boot App • HTTP services • Configuration GET transform/config • Transform POST / • Test Page GET / • Log GET /log • Live GET /live • Ready GET /ready • Synchronous • Unique option for Alfresco Community deployments Transform Core AIO
  • 5. Transform Services & Repository Enterprise Shared File Store Transform Router Transform Core AIO ActiveMQ Alfresco Repository Transform Service SYNC ASYNC ASYNC LibreOffice ImageMagick PDF Renderer Tika Misc Custom DTE AIS SYNC (config) SYNC ASYNC SYNC transform.service.enabled=true
  • 6. Transform Services & Repository Transform Core AIO (Enterprise) • Spring Boot App • HTTP services • Synchronous • Configuration, some Share actions and Text extraction (Solr) • Messaging services (ActiveMQ) • Asynchronous • Requests queue: org.alfresco.transform.t-request.acs • Replies queue: org.alfresco.transform.engine.t-reply.acs Transform Core AIO
  • 7. Transform Services & Repository Transform Engines • LibreOffice Office Documents including Microsoft formats • ImageMagick Images and thumbnails • PDF Renderer Generate PNG of first page from a PDF document • Tika Compressed files and metadata extraction • Misc HTML, iWorks, EML, XML, Markdown, source code… • DTE (Document Transformation Engine): Word, Excel and PowerPoint • AIS (Alfresco Intelligence Services): Enrichment of content metadata • Custom Transformation and enrichment for additional formats Transform Core AIO Out of the Box Paid Modules Dev
  • 8. Transform Router Transform Services & Repository Transform Router • Spring Boot App • Retrying policy • Max retries (3 by default) • Timeout (10 secs by default) • Types of Transformers • Single-step • Pipeline • Error handling • 400 BAD REQUEST • Invalid JSON • Invalid values • Unsupported transformation • 403 FORBIDDEN • mTLS fails due to wrong client certificate • 500 INTERNAL SERVER ERROR
  • 9. Shared File Store Transform Services & Repository Shared File Store • Spring Boot App • HTTP service wrapping a shared filesystem • A place to store and retrieve files from different services (like ACS and ATS) • Configuration • scheduler.content.age.millis 86400000 Content retention period • scheduler.cleanup.interval 86400000 Cleanup Scheduler interval
  • 10. Transform Services & Repository Configuration Described in T-Engines as JSON files • libreoffice_engine_config.json • imagemagick_engine_config.json • misc_engine_config.json • pdfrenderer_engine_config.json • tika_engine_config.json { "transformOptions": { "metadataOptions": [ {"value": {"name": "extractMapping"}} ] }, "transformers": [ { "transformerName": "Tika", "supportedSourceAndTargetList": [ { "sourceMediaType": "application/pdf", "maxSourceSizeBytes": 26214400, "priority": 55, "targetMediaType": "text/plain"}, ], "transformOptions": [ "metadataOptions" ] } ] }
  • 11. Transform Services & Repository Configuration changes External JSON file configured as environment variable TRANSFORM_CONFIG_FILE_<NAME> • Add • Override • Removal • Default values modification { "addSupported": [ { "transformerName": "Archive", "sourceMediaType": "application/zip", "targetMediaType": "text/csv", "priority": 60, "maxSourceSizeBytes": 18874368 } ] } https://github.com/aborroy/alfresco-transform-service-3.0.0#changing-default-configuration
  • 12. Transform Services & Repository Creating a new T-Engine • Maven <parent> <groupId>org.alfresco</groupId> <artifactId>alfresco-transform-core</artifactId> <version>3.0.0</version> </parent> <dependencies> <dependency> <groupId>org.alfresco</groupId> <artifactId>alfresco-base-t-engine</artifactId> <version>3.0.0</version> </dependency> </dependencies> • Java • org.alfresco.transform.base.TransformEngine to provide basic information about the Engine and the Transform pipelines • org.alfresco.transform.base.CustomTransformer to implement the transformation operation https://github.com/aborroy/alfresco-transform-service-3.0.0/tree/main/pandoc-t-engine
  • 13. Transform Services & Repository Creating a new T-Engine • Define pipelines { "transformers": [ { "transformerName": "markdown", "supportedSourceAndTargetList": [ {"sourceMediaType": "text/markdown", "targetMediaType": "application/pdf" }, {"sourceMediaType": "text/x-markdown", "targetMediaType": "application/pdf" } ] }, { "transformerName": "latex", "supportedSourceAndTargetList": [ {"sourceMediaType": "application/x-tex", "targetMediaType": "application/pdf" } ] } ] }
  • 14. Transform Services & Repository Creating a new T-Engine • Create the Dockerfile FROM pandoc/core:latest-ubuntu COPY target/pandoc-t-engine.jar /usr/bin EXPOSE 8090 USER ${USERNAME} ENTRYPOINT java $JAVA_OPTS -jar /usr/bin/pandoc-t-engine.jar
  • 15. Transform Services & Repository Creating a new T-Engine • Deployment in Docker Compose services: alfresco: image: alfresco/alfresco-content-repository-community:7.4.0 environment: JAVA_OPTS: >- -DlocalTransform.pandoc.url=http://transform-pandoc:8090/ transform-pandoc: image: alfresco/pandoc-t-engine:latest ports: - 8096:8090
  • 16. Transform Services & Repository Resources usage and logging level transform-core-aio: image: alfresco/alfresco-transform-core-aio:3.0.0 environment: JAVA_OPTS: " -Dserver.tomcat.threads.min=4 -Dserver.tomcat.threads.max=12 -Dlogging.level.org.alfresco.transform.common.TransformerDebug=ERROR "
  • 17. Transform Services & Repository Scaling up https://github.com/aborroy/acs-transform-cluster Community Enterprise
  • 19. Secure Communications & Settings • From ACS 7.4, mTLS communication between Transform Service and Repository is supported • Alfresco SSL Generator tool has been updated to produce required keystore and truststore files • Generate a self-signed CA* • Generate certificates, keystores and truststores for Repository & Transform $ ./run_additional.sh -servicename transform-core-aio -rootcapass kT9X6oe68t -keysize 2048 -keystoretype PKCS12 -keystorepass kT9X6oe68t -truststoretype PKCS12 -truststorepass kT9X6oe68t -certdname "/C=GB/ST=UK/L=Maidenhead/O=Alfresco Software Ltd./OU=Unknown/CN=Transform Core AIO" -servername transform-core-aio -alfrescoformat current • Apply configuration settings for properties and keystores * You may use your own software or PKI infrastructure to create CA and certificates, but configuration related to keystore type and certificate alias should be followed as described by Alfresco SSL Generator
  • 20. Secure Communications & Settings https://github.com/aborroy/alfresco-secure-connection Community
  • 21. Community – Repository alfresco: environment: JAVA_TOOL_OPTIONS: >- -Dencryption.ssl.keystore.type=PKCS12 -Dencryption.ssl.keystore.location=/usr/local/tomcat/alfresco.keystore -Dssl-keystore.password=kT9X6oe68t -Dencryption.ssl.truststore.type=PKCS12 -Dencryption.ssl.truststore.location=/usr/local/tomcat/alfresco.truststore -Dssl-truststore.password=kT9X6oe68t JAVA_OPTS: >- -DlocalTransform.core-aio.url=https://transform-core-aio:8090/ -Dhttpclient.config.transform.mTLSEnabled=true -Dhttpclient.config.transform.hostnameVerificationDisabled=true -Djdk.tls.client.protocols=TLSv1.2 volumes: - ./keystore/alfresco/alfresco.keystore:/usr/local/tomcat/alfresco.keystore - ./keystore/alfresco/alfresco.truststore:/usr/local/tomcat/alfresco.truststore Secure Communications & Settings Alfresco SSL Generator
  • 22. Secure Communications & Settings Community – Transform Service transform-core-aio: environment: SERVER_SSL_ENABLED: "true" SERVER_SSL_CLIENT_AUTH: "need" SERVER_SSL_ENABLED_PROTOCOLS: "TLSv1.2" SERVER_SSL_KEY_PASSWORD: "kT9X6oe68t" SERVER_SSL_KEY_STORE: "file:/transform-core-aio.keystore" SERVER_SSL_KEY_STORE_PASSWORD: "kT9X6oe68t" SERVER_SSL_KEY_STORE_TYPE: "PKCS12" SERVER_SSL_TRUST_STORE: "file:/transform-core-aio.truststore" SERVER_SSL_TRUST_STORE_PASSWORD: "kT9X6oe68t" SERVER_SSL_TRUST_STORE_TYPE: "PKCS12" volumes: - ./keystore/tengineAIO/transform-core-aio.keystore:/transform-core-aio.keystore - ./keystore/tengineAIO/transform-core-aio.truststore:/transform-core-aio.truststore Alfresco SSL Generator
  • 23. Secure Communications & Settings Enterprise Shared File Store Transform Router Transform Core AIO Alfresco Repository Transform Service mTLS LibreOffice ImageMagick PDF Renderer Tika Misc Custom DTE AIS mTLS mTLS mTLS mTLS
  • 24. Enterprise – Repository alfresco: environment: JAVA_TOOL_OPTIONS: >- -Dencryption.ssl.keystore.type=PKCS12 -Dencryption.ssl.keystore.location=/usr/local/tomcat/alfresco.keystore -Dssl-keystore.password=kT9X6oe68t -Dencryption.ssl.truststore.type=PKCS12 -Dencryption.ssl.truststore.location=/usr/local/tomcat/alfresco.truststore -Dssl-truststore.password=kT9X6oe68t JAVA_OPTS: >- -Dtransform.service.enabled=true -Dtransform.service.url=https://transform-router:8095 -DlocalTransform.core-aio.url=https://transform-core-aio:8090/ -Dsfs.url=https://shared-file-store:8099/ -Dhttpclient.config.transform.mTLSEnabled=true -Dhttpclient.config.transform.hostnameVerificationDisabled=true -Djdk.tls.client.protocols=TLSv1.2 volumes: - ./keystore/alfresco/alfresco.keystore:/usr/local/tomcat/alfresco.keystore - ./keystore/alfresco/alfresco.truststore:/usr/local/tomcat/alfresco.truststore Secure Communications & Settings Alfresco SSL Generator
  • 25. Secure Communications & Settings Enterprise – Transform Router transform-router: environment: CORE_AIO_URL: https://transform-core-aio:8090 FILE_STORE_URL: https://shared-file-store:8099/alfresco/api/-default-/private/sfs/versions/1/file SERVER_SSL_ENABLED: "true" SERVER_SSL_CLIENT_AUTH: "need" SERVER_SSL_ENABLED_PROTOCOLS: "TLSv1.2" SERVER_SSL_KEY_PASSWORD: "password" SERVER_SSL_KEY_STORE: "file:/transformRouter.keystore" SERVER_SSL_KEY_STORE_PASSWORD: "password" SERVER_SSL_KEY_STORE_TYPE: "PKCS12" SERVER_SSL_TRUST_STORE: "file:/transformRouter.truststore" SERVER_SSL_TRUST_STORE_PASSWORD: "password" SERVER_SSL_TRUST_STORE_TYPE: "PKCS12" CLIENT_SSL_KEY_STORE: "file:/transformRouter.keystore" CLIENT_SSL_KEY_STORE_PASSWORD: "password" CLIENT_SSL_KEY_STORE_TYPE: "PKCS12" CLIENT_SSL_TRUST_STORE: "file:/transformRouter.truststore" CLIENT_SSL_TRUST_STORE_PASSWORD: "password" CLIENT_SSL_TRUST_STORE_TYPE: "PKCS12" CLIENT_SSL_HOSTNAME_VERIFICATION_DISABLED: true volumes: - ./keystore/transformRouter/transformRouter.truststore:/transformRouter.truststore - ./keystore/transformRouter/transformRouter.keystore:/transformRouter.keystore Alfresco SSL Generator
  • 26. Secure Communications & Settings Enterprise – Transform Core transform-core-aio: environment: FILE_STORE_URL: >- https://shared-file-store:8099/alfresco/api/-default-/private/sfs/versions/1/file SERVER_SSL_ENABLED: "true" SERVER_SSL_CLIENT_AUTH: "need" SERVER_SSL_ENABLED_PROTOCOLS: "TLSv1.2" SERVER_SSL_KEY_PASSWORD: "password" SERVER_SSL_KEY_STORE: "file:/tengineAIO.keystore" SERVER_SSL_KEY_STORE_PASSWORD: "password" SERVER_SSL_KEY_STORE_TYPE: "PKCS12" SERVER_SSL_TRUST_STORE: "file:/tengineAIO.truststore" SERVER_SSL_TRUST_STORE_PASSWORD: "password" SERVER_SSL_TRUST_STORE_TYPE: "PKCS12" CLIENT_SSL_KEY_STORE: "file:/tengineAIO.keystore" CLIENT_SSL_KEY_STORE_PASSWORD: "password" CLIENT_SSL_KEY_STORE_TYPE: "PKCS12" CLIENT_SSL_TRUST_STORE: "file:/tengineAIO.truststore" CLIENT_SSL_TRUST_STORE_PASSWORD: "password" CLIENT_SSL_TRUST_STORE_TYPE: "PKCS12" CLIENT_SSL_HOSTNAME_VERIFICATION_DISABLED: true volumes: - ./keystore/tengineAIO/tengineAIO.truststore:/tengineAIO.truststore - ./keystore/tengineAIO/tengineAIO.keystore:/tengineAIO.keystore Alfresco SSL Generator
  • 27. Secure Communications & Settings Enterprise – Shared File Store shared-file-store: environment: SERVER_SSL_ENABLED: "true" SERVER_SSL_CLIENT_AUTH: "need" SERVER_SSL_ENABLED_PROTOCOLS: "TLSv1.2" SERVER_SSL_KEY_PASSWORD: "password" SERVER_SSL_KEY_STORE: "file:/sharedFileStore.keystore" SERVER_SSL_KEY_STORE_PASSWORD: "password" SERVER_SSL_KEY_STORE_TYPE: "PKCS12" SERVER_SSL_TRUST_STORE: "file:/sharedFileStore.truststore" SERVER_SSL_TRUST_STORE_PASSWORD: "password" SERVER_SSL_TRUST_STORE_TYPE: "PKCS12" CLIENT_SSL_KEY_STORE: "file:/sharedFileStore.keystore" CLIENT_SSL_KEY_STORE_PASSWORD: "password" CLIENT_SSL_KEY_STORE_TYPE: "PKCS12" CLIENT_SSL_TRUST_STORE: "file:/sharedFileStore.truststore" CLIENT_SSL_TRUST_STORE_PASSWORD: "password" CLIENT_SSL_TRUST_STORE_TYPE: "PKCS12" CLIENT_SSL_HOSTNAME_VERIFICATION_DISABLED: true volumes: - ./keystore/sharedFileStore/sharedFileStore.truststore:/sharedFileStore.truststore - ./keystore/sharedFileStore/sharedFileStore.keystore:/sharedFileStore.keystore Alfresco SSL Generator
  • 29. Tips & Tricks TLS • Use TLSv1.3 where available • When using TLSv1.2, restrict accepted algorithms to • AES-128 with SHA-256 • AES-256 with SHA-384 • The use of SSL, TLSv1.0 and TLSv1.1 is severely discouraged Keystores • Use PKCS#12 keystore and truststore types • P#12 keystores built with OpenSSL don’t work with Java, using keytool is required * Keys • Use at least 2048 bits for RSA keys * https://angelborroy.wordpress.com/2022/08/12/building-a-custom-pkcs12-truststore-for-java/