tia Proxy
tia® Proxy Core acts as a standard content service to tia® Content Server Core by forwarding storage requests to either a content service configured as primary for new documents being archived, or a secondary contant service accessing already existing storage.
By this flexible approach, tia® Proxy Core enables the access to archive storage created by tia® Content Server Classic using content service kgsstore with tia® Content Server Core without migration, while writing new documents into a fresh storage by the content service of choice.
tia® Proxy Core is embeeded in tia® Content Manager.
Architecture
In contrast to the OSGi plugin, tia® Proxy is a real archive link protocol proxy.
The proxy plugin is used when a customer had a kgs classic content server in the past or uses a classic content server in parallel.
tia® Content Server Core is able to interact with storages formerly configured for tia® Content Server Classic.
Let's outline the following scenario:
Historically, the customer has used a kgs Classic ContentServer in conjunction with a filesystem storage.
By switching to the latest kgs architecture "tia Core - saphttp", the new integrated proxy service has a decisive advantage.
The historical storage configuration of the former “kgsstore” is still used, which means that no data migration has to take place. At the same time, you address your new storage device (S3, Azure etc.) via tia Core.
It is also possible to access historical ArchiveLink documents via the new proxy service using the newly propagated CMIS interface.
A typical proxy scenario is designed in the picture above. The customer uses the tia Core CMIS interface, the proxy configuration uses e.g azure blob storage as primary and kgs store as secondary storage type.
That means you archive your data via the CMIS Interface in your new storage as your primary device and access legacy data (read only) via secondary and kgs store.
Configuration
The configuration is done within the repository.cfg file.
The content server type is now proxy.
When using a meta service for the repository, the meta service must be configured for both primary and secondary storage. This is always the case with the exception that the repository is using ArchiveLink protocol.
usefallback setting is
Examples are documents that are decoded only once (on storage like data%37), documents that contains a plus (a+b.pdf is stored as a b.pdf) or documents with wrong encoding (stored like � � �+�.pdf)
Setting usefallback to false, may increase performance, while side effect may be that some documenta are no longer found.
If you configure a repository with accessmode=r, which does not exist in the primary:
The repository must be started once with accessmode=rucd and a GET request must be performed on a document. The repository can then be restarted with accessmode=r.
Likewise, configdata and keystore should be operated in filesystem mode.
Configuration example
Excerpt of repository.cfg for proxy configuration of example repository T1.
# the repository list for the default repositoryfactory.class
repositoryfactory.repositorylist = T1
#---------------------- T1 sample configuration (proxy) ----------------------------------
#===== T1 repository configuration
T1.contentservice.type = proxy
T1.contentservice.proxy.isFillBucketField=false # fills bucket field in azure or S3 when setting is true
T1.accessmode = rucd
T1.description = T1 Proxy-Repository
T1.saphttp.security = 1
T1.authentication.cmis.type = basic
T1.authentication.cmis.idprovider = config
T1.authentication.cmis.config.login1.user = admin:admin
T1.authentication.cmis.config.login1.role = admin
T1.configdata.filesystem.root = /temp/meta/
#===== T1 content service configuration (filesystem|azureblobstore|s3blobstore|kgsstore)
T1.contentservice.proxy.primary.splitfilesystemv2.root = /temp/tiacore_data/
T1.contentservice.proxy.primary.splitfilesystemv2.contrepinpath = true
T1.contentservice.proxy.primary.type = splitfilesystemv2
T1.contentservice.proxy.secondary.type = kgsstore
T1.contentservice.proxy.secondary.kgsstore.configfile = /temp/proxy/legacy-storage.cfg
T1.contentservice.proxy.secondary.kgsstore.context = default
#===== T1 keystore service configuration (none|pkcs12)
T1.keystoreservice.type = pkcs12
T1.keystoreservice.pkcs12.name = tiacore
T1.keystoreservice.pkcs12.path = /temp/
#===== T1 meta service configuration (none|elastic|database|kafka)
T1.metaservice.type = elastic
T1.metaservice.elastic.host = http://elasticsearch:9200
T1.metaservice.elastic.index.write = tiacore-meta
T1.metaservice.elastic.index.search = tiacore-meta
T1.metaservice.elastic.index.update = tiacore-meta
T1.metaservice.elastic.index.delete = tiacore-meta
T1.metaservice.elastic.authentication.type = none
#===== T1 meta service configuration (none|elastic|database|kafka)
T1.protocolservice.type = none