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.12.0

tba

Feature

  • Added compression service available as <repo>.compressionservice.type with values no_compression (default), gzip or bzip2.

    • Added support for storing compressed files using GZIP or BZIP2

    • Support for extracting compressed files with kgsstore

Fixes

  • Fixed RenditionService in combination with AzureBlobStore (both versions)

  • Fixed multiple inconsistent included libraries.

3.11.3

16.12.2024

Fixes

  • Fixed Azure Managed Identity with Database.

  • FIxed error with MultiPageTiffRendition whensource files already have multiple pages

  • CMIS: Fixed error with out of memory when using cmis putCert

3.11.2

06.12.2024

Fixes

  • Fixed issues with contentservicetype s3hcpblobstore.

Features

  • Added the setting versioningstatus for all S3-Based ContentServices, with values auto (default)/enabled/disabled. With enabled/disabled, the call to ask the bucket whether it supports versioning is skipped and the defined state is used.

3.11.1

26.11.2024

Fixes

  • Fixed an issue with getting content with no or invalid mimetype in content-disposition.

3.11.0

19.11.2024

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 fetching 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 scangetrequestswas added. Defaults to false, when set to true every get-Request leads to a virusscan.

  • The result of the virusscan is also available in the protocol as property virusscan.

Improvements

 

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 allowed expirationperiod to be 0 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

 

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

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

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 and general_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 and s3netappmanagedbucketsblobstore. 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 value askbackend lets the backend decide whether to set a hardwarelock. With the setting nolock 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 https://kgs-software.atlassian.net/wiki/spaces/DOCUEN/pages/2774302818

  • 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

  • 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:

      1. 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": { ...
      2. 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 and cmis: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

  • 2022-09-23

  • 2022-09-23+01:00

  • 2011-12-03T10:15

  • 2011-12-03T10:15:30

  • 2011-12-03 10:15:30

  • 2011-12-03 10:15

  • 2011-12-03 10:15:30 Z

  • 2011-12-03 10:15:30 +0100

  • 2011-12-03 10:15:30.000

  • 2011-12-03 10:15:30.000 +0000

  • 2011-12-03T10:15:30.000

  • 2011-07-03T10:15:30

  • 2011-07-03T10:15:30.000

  • 2011-12-03T10:15:30Z

  • 2011-12-03T10:15:30.000Z

  • 2011-12-03T10:15:30+01:00

  • 2011-12-03T10:15:30.000+01:00

2.6.0

04.08.2023

Features

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 header

    • Disable 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 added

    • When 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 environments

    • AzureV2: 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:

        1. 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.

        2. 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

2.2.1

7.01.2023

Fixes

  • Container (ArchiveLink, ILM, CMIS)

    • Fix container build problem