Changelog (tC)
Overview
When Updating from a version < 3.4.0 to a version >= 3.4.0, it must be ensured that when using a database metaservice that there are not multiple content servers using the same database.
With version 3.4.0 a change in the database structure was made, which is not compatible with prior versions. The database change is done automatically upon first start. The parallel usage of the same database with multiple tia core server instances with version < 3.4.0 and version >= 3.4.0 is therefor not possible.
3.11.0
tba
Features
Added feature to combine single file tiff components to one multipage tiff. This can be basically enabled by adding
<repo>.rendition.multipagetiff.mode=on_demand
.CMIS: The rendition is triggered by using the stream-ID
multipagetiff
. It then combines all tiff-files in the current directory to one multipagetiff.SAPHTTP: In case a compGET is executed for compIDs data, data1, DATA or DATA1 and it is a tiff-file, all tiff components are combined to one multipagetiff and returned.
Improvements
Added a fallback when feting ArchiveLink components: if the original request fails with a “Not found”, it tries again with all “+” in the compID replaced by “ “ (space). Similar to how classic worked.
Fixes
Fixed an issue with s3 contentService and configdata.type=storage with an error message.
Fixed when sending no compID on compGET to return either data or data1 component if it exists.
Fixed when creating an object and this fails and the rollback in delete produces and error, the original create error was discarded. The delete error is no logged and the original error is thrown.
Fixed when using proxy with kgsstore with s3 failing on startup.
3.10.0
06.11.2024
Features
CMIS: Implemented support for secKey usage in CMIS with new option
.authentication.cmis.type = tokenseckey
.
Fixes
Certificates were not shown in UI and SAP when using keystore.type storage and pkcs12_storage after restart.
Fixed an issue with using Custom VirusScan and RetentionService was not possible.
Added a fallback behavior for ArchiveLink getComponent: When the first attempt fails with a “Component not found” alternative encodings for the same component id are also tested.
3.9.0
11.10.2024
Fixes
Within type definitions, the setting
required=true
for properties is no longer be ignored. Any property with this setting and no value provided, the operation will fail.Fixed an issue with missing protocol entries when using elastic or opensearch protocol service with fallback active.
Fixed an issue when using sfsv3 or netappv3 with wrong storage introduced with version 3.7.2. Existing objects may require manual work if errors occur on object update.
Features
A new option for custom virusscan
scangetrequests
was added. Defaults to false, when set totrue
every get-Request leads to a virusscan.The result of the virusscan is also available in the protocol as property
virusscan
.
Improvements
Added support for logging via SMTPAppender (https://logback.qos.ch/manual/appenders.html#SMTPAppender )
3.8.2
04.10.2024
Fixes
Fixed an issue with ArchiveLink when fetching an encrypted document
3.8.1
13.09.2024
Fixes
Fixed an issue with Content-Disposition header and special characters in ArchiveLink when using war deployment or container deployment with version before 3.7.0
3.8.0
09.09.2024
Features
Added option to set destructionDate using retentionService with
destructionperiod =
which now allowedexpirationperiod
to be0 0 0 0 0
Added option to use ManagedIdentity for blob store and database
Fixes
Fixed using Splitfilesystemv3 (and variants in icas and netapp) as proxy primary.
Fixed using tia encryption with s3 (and variants).
Fixed error with retention inheritance when using
<repo>.hardwarelock.mode=nolock
.Added new tia link endpoint for storage (customv2) to solve issue with / in object ids. Usage requires the implementation of the v2 endpoint for the tia link api.
Fixed visibility of volume counter test button.
Increased time between sending volume data.
3.7.2
15.08.2024
Fixes
Fixed using password for OpenSearch Serverless in AWS as alias in KeyStore
Fixed handling of iCAS storage for both icas and icasV3. All files are now archived. Existing files will not be changed until update happens
3.7.1
02.08.2024
Fixes
add Parameter in repository.cfg to support OpenSearch Serverless in AWS (see OpenSearch (tC) | AWS Serverless Configuration (supported from tia ContentServer 3.7.1 and newer) )
3.7.0
30.07.2024
Fixes
Swagger UI (OpenAPI) is using the servlet path and can be used in war deployments
OSGI: fix an issue that prevent starting the application
Elastic Search Meta-/Protocolservice: Fix a thread issue when Fallback is used
Status Webapp: Fix a wrong display of the features, when the license is refresh during runtime
Improvements
Elastic Search Meta-/Protocolservice: Improve offline recognition of indexes
3.6.1
08.07.2024
Fixes
fix an issue when retention is expired and the file is getting deleted for iCAS Storages
3.6.0
08.07.2024
Improvements
new ContentService SplitFileSystemV3 available (V2 and V1 are still supported but in maintenance mode) see Splitfilesystem
small performance improvement on delete for s3managedbucket
Default trace header is now W3C instead of B3
Fixes
ArchiveLink:
return 403 instead of 500 as return code for documents under retention.
fixed wrong content length header for some rare viewer scenarios
the metrik general_license_days_left now sends the correct value in days instead of NaN
A thread Id is now in all log entries visible to follow a request over all threads in tia core log.
Fixed an error with $ in component or document id.
3.5.0
28.05.2024
Fixes
Proxy can be used with http and https proxies. Connection check works correct with proxies.
fix wrong date in ArchiveLink info requests
fix volume usage
Improvements
support for update type functionality
keystore type “storage “ also supported in CMIS and ILM for easier even configuration, there is no functionality behind
support for federation credentials in aks
update libraries
improve performance of metaservice with Microsoft SQL Databases
3.4.3
15.05.2024
Fixes
ILM
Fixed broken Legal hold update, i.e. it was not possible to add another case to an existing legal hold
DB Protocol and Metaservice
The parameter transactionIsolation can be specified (e.g. config_all_REPO.metaservice.databasev2.transactionIsolation=TRANSACTION_READ_UNCOMMITTED) to specify the behavior of reads. When using MS-SQL with either database or databasev2 metaservice setting this value to TRANSACTION_READ_UNCOMMITTED is recommended for SapHTTP and CMIS.
3.4.2
25.04.2024
Features
ArchiveLink
added the parameter
<repo>.saphttp.contentdispositioninline
(default: false). When set to true, the Content-Disposition-Header is sent as inline instead of attachment.
3.4.1
11.04.2024
Fixes
ArchiveLink
Fixes two issues with non readable KPRO Documents
3.4.0
05.04.2024
Improvements
General
add JSON Log format for e.g. Azure Log analyser (not active by default) see
LOGGING_CONFIG
in Deployment using Container (tC) | Configuration: for detailstia®ContentServer Core Version is now available as metric
it is now possible to add description for the server or individual repositories
“tia.server.description” in application.yml (see tia® Status User-Interface | Configure descriptions )
“<repo>.description“ in repository.cfg (see tia® Status User-Interface | Configure descriptions )
Volume Usage uses now GB and shows error messages when the server is not available
Volume data are only send for last 90 days in default configuration
add a Button to test the Volume Measurement connection in test installations
default log level is now INFO in container environments
DB Protocol and Metaservice
fix a thread issue with database usage that causes deadlocks when all connections are used
Elastic search
update elastic driver to 8.12.2 to prevent a thread leak in driver
OpenSearch
add support for open search 2.X
3.3.3
13.03.2024
Fixes
When using ArchiveLink directly (SapHTTP) the DocumentID now can contain a /. This will be converted to %2F. Get request and similar will return the document on both / and %2F. Since the slash could also be used with Classic content server, when using kgsstore, the %2F is converted back to / in that case.
3.3.2
29.02.2024
Fixes
Fixed an issue introduced in 3.2.0 with missing MD5-hashes when using S3 backend. All documents stored since then will not have a hash value. If this is required, manual work is needed.
Fixed missing success values for newly added cmis protocol operations added in 3.1.0.
2.7.2
16.02.2024
Fixes
Fixed an issue with responding with success upon creation, but actually the write (either data or metadata) was not successful.
3.3.1
15.02.2024
Features
Added a fallback for ArchiveLink when using KgsStore: If the field Mtime for a component is invalid, then the Mtime from the document will be used.
Fixes
Fixed an issue with responding with success upon creation, but actually the write (either data or metadata) was not successful.
Fixed ThreadLeaks in when using Elastic.
Fixed issues regarding volume counter.
3.3.0
17.01.2024
Features
Added metrics for basic CMIS operations (
general_cmis_document_createTime_ms
,general_cmis_object_readTime_ms
andgeneral_cmis_object_deleteTime_ms
)Implemented connection to kgs to show used colume in status webapp when automatic volume data sending is active
3.2.0
19.12.2023
Features
Add improved support for NetApp S3 implementation with
s3netappblobstore
ands3netappmanagedbucketsblobstore
. Using the identical set of config keys as the regular content services.
3.1.2
16.12.2023
Fixes
Fixes some issues with metering in cloud environment.
3.1.1
13.12.2023
Fixes
Fixed issues with accessing config when not using repository.cfg.
3.1.0
06.12.2023
Features
A new repo specific setting
<repo>.hardwarelock.mode
was added. The default valueaskbackend
lets the backend decide whether to set a hardwarelock. With the settingnolock
the backend is not asked and no hardwarelock is set.A new setting
<repo>.protocolservice.deleteafterdays
was added which defines after how many days protocolentries are deleted. The default is empty, meaning no entries are deleted.Support for Basic ACL in CMIS with three roles admin, writer and reader. When using OpenID, a mapping can be defined what roles match the internal roles, using
<repo>.authentication.cmis.openid.roles.[admin|writer|reader]=admin|writer|reader
Fixes
Fixed error with missing metrics in the Status Webapp.
Improvements
Protocol-Entries for CMIS now also include the following operations:
getFolderParent, getObjectByPath, getChildren, getObjectParents, getAllVersions, getAllowableActions, getObject, getRelationships, query, createType, deleteType, getProperties, setContentStream, appendContentStream, deleteContentStream
3.0.2
27.11.2023
Fixes
Fixed an error with contentservice.type=proxy when trying to delete objects or listing the contents of folders.
3.0.1
15.11.2023
Fixes
Fixed error in Oracle based metaservicev2 scripts
Fixed OpenAPI CMIS specification (added missing X-TiaClientId-Header)
Fixed OSGI startup
3.0.0
07.11.2023
There are several breaking changes within this release:
requires Java 17+ and, when using the WAR version, Tomcat 10+
elastic (V1) for both metaservice and protocolservice was removed
Using other database vendors than H2, Oracle or SQL-Server require custom sql scripts before first start, see Flyway
existing H2 databases cannot be used
Logging framework changes to logback, when using custom logging config file, changes are required
The default for parameter <repo>.saphttp.component.ignorelist has changed to
^.+\\.tsr$
Features
General
Upgrade to Spring boot 3/ Spring 6 requires Java 17+ and, when using WAR deployment, Tomcat 10+
CMIS
Support for is null and is not null in queries
Improvements
Database based services (metaservice and protocolservice) are using a schema manager (flyway), allowing complex migrations directly within the code
When upgrading directly from before 2.7.0 to any version 3.0.0+ no manual sql update (as defined for 2.7.0) is required.
When using another database vendor then H2, SQL-Server or Oracle, custom scripts must be provided, see Flyway for details
Elastic (v1) support was removed for both protocol and metaservice
Requires Elastic server version 7.16(+) or 8
Protocolservice can be switched without changes
Due to some changes, switching from elastic to elasticv2 requires a downtime and changes to the index. Namely, the custom analyzer “
kgs_path_analyzer
" is missing a type. Which seems to be valid, but the API-Client fails to correctly process that result when checking the index.
The following commands can be used to check and fix this issue:Checking the settings
GET /<index>
The command returns all the settings. If the block for the kgs_path_analyzer already contains the type “custom”, then no changes are required.
... "analyzer": { "kgs_path_analyzer": { "type": "custom", "tokenizer": "path_hierarchy" }, "kgs_path_length_analyzer": { ...
Updating the index
-- Close the index POST /<index>/_close -- Update the settings PUT /<index>/_settings { "analysis": { "analyzer": { "kgs_path_analyzer": { "type": "custom", "tokenizer": "path_hierarchy" } } } } --Open the index POST /<index>/_open
Fixes
Updated several dependencies
Due to a change in the H2 library, existing H2 databases created with version before 3.0.0 cannot be used.
CMIS query using fields
cmis:description
andcmis:path
now works.Using
<repo>.configdata.type = storage
and having encryption enabled, now works.The default for parameter
<repo>.saphttp.component.ignorelist
has changed to^.+\\.tsr$
. This is now identical to Classic cs. Was before:^note$;^kgsannotation$;^descr$;^pagelist$;^.+\\.tsr$
2.7.1
09.10.2023
Fixes
OSGI
fix missing log entries in logger.txt in combination with DocumentRouter
fix crash with DocumentRouter when using metaservice database or databasev2 or protocolservice database or fallback for elastic metaservice or protocolservice
MetaService Fallback and Protocolservice Fallback
fix an crash during transfering data back to elastic
elastic Service
fix an issue with repositories that stay offline
General
Removed misleading warn message with autofill=true fields which have required=false
2.7.0
21.09.2023
With existing systems, when using database for meta or protocol, executing a sql script is required before first start of 2.7.0+ version,
Fixes
MetaService - Elastic and ElasticV2
Fixed handling with Index access using alias. No error will be thrown any more on deletion if the object is found in multiple indices. An error is still thrown on update and the object is multiple times present.
Upon creation an async task is created, which removes any existent copies and only keeps the newest added object.Fix an issue with not starting health check when no fallback is used
OSGI
Fixed Logger initialization
CustomContentService (tia link)
Fixed an error when using configdata type
storage
with custom content service, the server was unable to start.
StatusWebbAPP
Fixed an error with SAP HTTP certificate management when using the default for security
Improvements
Volumeexport and license
add contractid in import and export
add test flag in import and export
Protocolreader
swagger-ui add select option protocol reader
Custom EncryptionService and CustomVirusScan
The multipart header for the data-part now has a filled value for filename which is also always data.
MetaService - Database and DatabaseV2 and ProtocolService - Database
Upon first start of this version on an exisiting system, each used schema requires the execution of the following sql script:
There are new properties for tuning the connection pool, the previously used options are no longer valid (read-connections.max, read-connections.min, read-connections.shared, write-connections.max, write-connections.min, cache-statements, cache-statements.size). The new options are minimumIdle, maximumPoolSize, connectionTimeout, idleTimeout, keepaliveTime, maxLifetime
Logging of database statements can now be activated using
-D"logging.level.org.hibernate.SQL"=DEBUG
, which logs the statements, and-D"logging.level.org.hibernate.type.descriptor.sql"=TRACE
which logs the parameters used in the statements.Easier support for adding custom JDBC-Drivers, e.g. Oracle, for Container with using the Env-Variable
LOADER_PATH
to specify a path with additionals jars.
AzureV2
removed one remote call when creating new objects
ILM
add support for empty XML tag
repositories that doen’t exists return nowe 400 - with an error message instead of 500 - unknown error
CMIS,SAPHTTP,ILM
Support for setting
org.apache.cxf.attachment-max-header-size
via context.xml and ENV-Variable. Additionally the default was changed from 300 to 1000.
CMIS
Queries support now multiple dateformates, all date formates are supported by all metaservice types
2.6.0
04.08.2023
Features
General
Added new configdata type
storage
which stores the supplementaries in the configured storage instead of filesystem. This type does not work withcontentservice.type=noop
. Additionally, using the mechanism to copy the keystore from the jar to config dir does not work with typestorage
.Added two new types for keystoreservices
storage
andpkcs12_storage
. Both must not be used withcontentservice.type=noop
.storage
does not have parameters, it uses the default location in the storage and, if there is no keystore present, loads the one from the jar.pkcs12_storage
uses the same parameters and mechanisms aspkcs12
, but the local configured is only used for retrieving the password alias, the saphttp certificate management happens in the storage.
new service introduced: Protocolreader Service. This new Service exposes a simple REST-Interface in order to retrieve Protocol-Entries that were stored previously by the existing protocol service. See Documentation:ProtocolAccess Service (not available for OSGI)
new ContentService iCAS see iCAS Windows-based via SMB
add OAUTH Support for ConfigService
CMIS
Add support for customized queries
Specifying an alias (e.g.
SELECT cmis:name AS name from cmis:document
) now only renders the alias column and not the base column, if not specified additionallyQuerying sub types (e.g.
SELECT * from cmis:rm_hold
) now returns all columns defined for the type and its parent (if having mixed types, e.g. cmis:rm_hold which returns both folders and documents, all common columns plus the columns of the first result are returned)The columns returned can now be limited, e.g.
SELECT cmis:name from cmis:document
now only returns one column.When specifying specific columns, e.g.
SELECT cmis:rm_expirationDate,cmis:name from cmis:document
returns the non-document column for all result objects and fills them, if the object has it. When using a combination of * and specific columns, only the * is respected. Combining * and alias does extend the result columns.
ArchiveLink
All ArchiveLink functionalities allow performance logging on INFO level.
Statuswebapp supports Certification Management
Improvements
ArchiveLink
When working with security mode 1 or 2 and no certificate is found, the keystore is reloaded and the lookup for the certificate is repeated. This allows having multiple instance of tia core running and serving the same set of repositories and sharing the identical keystore for the certificates.
Default Repository is no longer “repo1“ it is replaced by “T1“ to allow SAP Conections without modifying default configuration
ArchiveLink,CMIS,ILM
disable x-content-type-options, x-frame-option, x-XSS-protection header to allow iframe usage by default (similar to the changes in 2.4.3 and 2.4.5)
added switch
webapp.security.frameheaders.enabled
to enable those headers if desired (defaults to false, set to true to enable the headers)
General
Optimized default logging configurations
Default configuration in WAR-Deployment logs to file
Default configuration in Container-Deployment logs to console
Using Spring options logging.level.<package> is fully supported for all packages.
Volumecounter export will no longer fail when on repository is offline
2.5.2
30.06.2023
Improvements
ArchiveLink
Added switch to disable Content-Disposition header:
saphttp.disablecontentdisposition
defaults to false (to send the header), set to true to disable the headerDisable x-content-type-options, x-frame-option, x-XSS-protection header to allow iframe usage
2.5.1
26.06.2023
Improvements
TimeStamp Service
Ignores the .kgs folder
OSGI
Remove license service from OSGI
Fixes
TimeStamp Service
Saving TSR in Azure has failed
WAR-Deployment
Thread executor was prevented from shutdown
OSGI
Thread executor was prevented from shutdown during stop of the webapp
Protocol Service
elastic search: Fix an issue that leads to missing protocol entries
2.5.0
21.06.2023
Features
Volume Counter
Added file based Volume Counter to be used for licensing
MultiTenant Support
Added support for tenant specific repositories
New instance wide config property named
repositoryfactory.tenant-support
addedWhen enabled, the internal repository names are <tenant>__<repo> and the tenant must be in a header named
X-TiaClientId
The tenant support is available for SAPHTTP, ILM and CMIS. Not available for OSGI.
Tenant support is disabled by default
Support for REST based configs
Added support for retrieving configs using tia config service
Enabled with
configservice.class=rest
No changes when using file based config
Added support for trusted timestamping (using TSA)
Improvements
WAR-Deployment
Removed the settings configDirectory and configFile from default web.xml. The defaults used in code remain the same (/config and repository.cfg) but now override using context.xml, Environment variables or -D is possible for those two.
Protocol Service
elastic search: Improve fallback handling
Content Service
AzureBlobStorageV2: Fill “bucket”-Field with
<accountName>:<containerName>
for new objects
Status App now shows repositories alphabetically
ArchiveLink
Support for ignorelists for docGet and docInfo
Encryption Service
Is now included in OSGI releases
Fixes
Encryption Service
Fix an URL validation that doesn’t allow “.“ in Domains
2.4.5
27.06.2023
Improvements
ArchiveLink
Disable x-content-type-options, x-frame-option, x-XSS-protection header to allow iframe usage
2.4.4
23.06.2023
Improvements
ArchiveLink
Added switch to disable Content-Disposition header:
saphttp.disablecontentdisposition
defaults to false (to send the header), set to true to disable the header
2.4.3
26.05.2023
Improvements
CMIS
Disable x-content-type-options, x-frame-option, x-XSS-protection header to allow iframe usage
2.4.2
11.05.2023
Fixes
Content Service
Proxy: Fix an issue with “document not found exception” even when trying to write to primary storage
2.4.1
10.05.2023
Improvements
Custom Content Service, Custom Encryption Service, Custom Virusscan
Added parameter maxconnections with default set to 200 to set the maximum number of parallel connections
ILM
Ignoring unknown properties (only those properties defined in the ILM spec are stored)
CMIS
OpenAPI definition is now available
Content Service
Proxy: documents read from secondary proxy are now stored together and not splitted over primary/secondary proxy
Fixes
Meta Service
JPA-MetaServiceV2: Fixed a NullPointer when adding retention supplementaries
ArchiveLink
Fix an issue with wrong file names for browser downloads
Remove some error messages that are written to console (stderr) and replace them with log messages
2.4.0
18.04.2023
Improvements
ServerInfo is now also reachable over IP “127.0.0.1”
UI style of Status App adjusted to Corporate Identity
application.yml loggin configuration was removed
Latest tag is now supported in container repository
Status App is now always password protected
There is no default password, it is generated after each start unless password is configured
Content Service
Default content service is not anymore Noop. Noop content service needs to be defines explicit now.
KGSStore: Improve compatibility for compontents with special characters
KGSStore: Imporved proxy support for “non migration“ scenarios
KGSStore: Support for Query
select * from sapbo:basedocument where sapbo:basedocument:Document = '<docId>'
in CMIS environmentsAzureV2: Optimized access, e.g. removed some unnecessary blob storage access calls
Config Service
Added Service to be used to read repository.cfg as preparation for Cloud. No need for changes, defaults work exactly as before without the service
Fixes
Fixed an issue when backend call fails that shows not existing repositories
Content Service
KGSStore: Fix an issue with KGSStore “java.lang.NoSuchMethodError: com.KGS.Tool.Logger2”
CMIS
Fixed an issue limiting upload to 4 GB
tia Core productname and version is now correct in CMIS workbench
Meta Service, Protocol Service
elasticsearch, elasticsearchV2: Fixed an issue with newly added types and fields unavailable for search
ArchiveLink
Fix an issue that shows a 404 in serverinfo
Fixed Handling of encoded component Ids and added parameter
fallback-encoding
to repo to define a charset which is used when trying to decode component IDs and UTF-8 does not work. Defaults to ISO-8859-15.
2.3.1
06.03.2023
Improvements
OSGI Bundle
Change default sort order of components from created date to alphabetically ascending
2.3.0
28.02.2023
Improvements
Custom Encryption Service
Support for SDK version 1.0.4 (older SDK versions are no longer supported)
Meta Service
Kafka: removed due to CVE-2023-25194
JPA: added a new version databasev2 which uses an optimized storage of attributes. For new projects, that version is recommended, switching from the old version to v2 requires a migration using a custom sql script.
elasticsearch: Added new service elasticv2, using new API-Client with support for elasticsearch 8.X
elasticv2 also works with 7.16+ and should be used for new projects
Due to some changes, switching from elastic to elasticv2 requires a downtime and changes to the index. Namely, the custom analyzer “
kgs_path_analyzer
" is missing a type. Which seems to be valid, but the API-Client fails to correctly process that result when checking the index.
The following commands can be used to check and fix this issue:Checking the settings
The command returns all the settings. If the block for the kgs_path_analyzer already contains the type “custom”, then no changes are required.
Updating the index
For both elastic and elasticv2: when the elastic connection is lost and the check task is running, it will reset the entire connection for that check.
Protocol Service
elasticsearch: Added new service elasticv2, using new API-Client with support for elasticsearch 8.X. Please check the changelog for Meta Service for this version!
ArchiveLink
optimize backend acces
Fixes
Content Service
Azure: when trying to delete the last supplementary-type of a document, that type will not vanish. This is fixed, existing documents with a leftover type are left untouched.
ArchiveLink
Fix an rare nullpointer in serverInfo command
OSGI:
Fixed permanent logging to stdout
Features
Content Service
NetApp: iCAS Windows-based via SMB supported by storage type netapp
Status App (ArchiveLink, ILM, CMIS)
New status app with integrated metrics
Only accessible after authentification
Basic + OAuth2 authentication
2.2.2
01.02.2023
Fixes
OSGI
Fix an issue that starts tia core twice
Container (ArchiveLink, ILM, CMIS)
remove log-file by configuration see tia Core - Installation using Container
2.2.1
7.01.2023
Fixes
Container (ArchiveLink, ILM, CMIS)
Fix container build problem