Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Note

This article is not about classic OSGi plugin tia Proxy. For this, please see: KGS Proxy /wiki/spaces/WIKI/pages/2582118405

About

This article is about the tia core proxy functionality.

Content

Table of Contents
minLevel1
maxLevel7

Introduction

In contrast to the OSGi plugin, tia Proxy, which is a real archive link proxy, the described functionality just acting like a proxy while it is embedded inside the tia core and configures protocol proxy. It is embeeded in tia embedded in tia core, proxies the archive link request and connects to content store backends.

The proxy plugin is used , when a customer had in a past a kgs classic content server in the past or is using uses a classic content server in parallel.

tia core is able to interact with storages former formerly configured for kgs classic content server.

Inc drawio
zoom1
simple0
inComment0
pageId2630975491
custContentId2633072643
lbox1
diagramDisplayNameProxy-sceenario.drawio
hiResPreview0
contentVer2
revision3
baseUrlhttps://kgs-software.atlassian.net/wiki
diagramNameProxy-sceenario.drawio
pCenter1
aspecteV0zACSvcjeWjbksX7lI 1
width871
linksauto
tbstyletop
isUpload1
height671.5

The picture abobe depicts the situation.

Before, the customer had a classic CS 5 with e.g. an FS storage.

Then he could replace the classic CS using tia core with the backend kgsstore and the specific shape SAPHTTP. It act like an archive link CS but using the tia core. (AD)

The config of SAPHttp can be used with the shape CMISApp as well. Then he could access via CMIS the old AL data.

A typical proxy sceenario it depicted in the picture on top. The customer uses CMIS, the proxy configuration and kgsstore as secondary. Now he can archive via CMIS zu a new storage like SFS or Azure (primary) Image Added

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.

Availability

Please make sure you are using at least tia core version 2.4.2.

Configuration

The configuration has to be made in is done within the already known repository.cfg.

The content server type is now proxy, now.

Please respect, that keep in mind that for this configuration you need to setup the meta services are effected, as well.

Pay attention to the secondary meta type!

For performance reasons you van try to set usefallback = false, but then it can lead to documents that are no longer found. 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)

Configuration example

...

Excerpt of repository.cfg for proxy configuration of example repository T1.

Code Block
# the repository list for the default repositoryfactory.class
repositoryfactory.repositorylist = T1

#----------------------  T1 sample configuration (proxy) ----------------------------------

#===== T1 repository configuration 
T1.contentservice.type     = proxy
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 
FIconfiguration (filesystem|azureblobstore|s3blobstore|kgsstore)
T1.contentservice.proxy.primary.type=azureblobstore
FI.splitfilesystemv2.root          = /temp/tiacore_data/
T1.contentservice.proxy.primary.azureblobstoresplitfilesystemv2.connectionstring=...
FIcontrepinpath = true
T1.contentservice.proxy.primary.type                            = splitfilesystemv2
T1.contentservice.proxy.primary.azureblobstore.invalidcharacters=uFFFE\uFFF9\uFFF0\u0081\u008d

FIaccessmode                      = rcud

T1.contentservice.proxy.secondary.type                          =kgsstore
FI kgsstore
T1.contentservice.proxy.secondary.accessmode                    = r
T1.contentservice.proxy.secondary.kgsstore.configfile=C:/Program Files/Tomcat 9.0/conf/Storage-SRC-CS-conf.txt
FI           = /temp/proxy/legacy-storage.cfg
T1.contentservice.proxy.secondary.kgsstore.context              = default
FI.contentservice.proxy.secondary.kgsstore.usefallback = true


FI.metaservice.type = proxy

FI.metaservice.proxy.primary.type= database
FI.metaservice.proxy.primary.database.driver = org.h2.Driver
FI.metaservice.proxy.primary.database.url = jdbc:h2:C:/Users/m.wodarz/Documents/AutoDigit/configs/configSFS/h2metadata;FILE_LOCK=FS;TRACE_LEVEL_SYSTEM_OUT=1
FI.metaservice.proxy.primary.database.user = sa
FI.metaservice.proxy.primary.database.password =

FI.metaservice.proxy.secondary.type=kgsstore

#===== 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