KFS Externalized Runtime Configuration

Externalized runtime configuration

UCONN's KFS environment has been customized to configure differently than the OOB version.

In "vanilla" KFS the configuration is performed during build time, which means the build and deployment are tied and creates limited flexibility. It creates a situation where any configuration changes to the KFS application would require a re-build and re-deployment.

To solve this, UCONN employs a feature in KFS 5 known as "externalized runtime configuration".

The file /srv/uconn_configs/kfs-external-config.properties contains a list of customized configuration items that are picked up by the application at runtime and can easily customize each individual environment.

Example below:

external runtime properties
## Application Environment Configurations
build.environment=prd
environment=prd
production.environment.code=prd
env.display.text=UCONN KFS - PRD1

## Scheduler Configurations
job.status.directory=/home/kfsctmuser

# Directories
logs.directory=/srv/uconn_configs/kfs-config/logs/prd/kfs
attachments.directory=/srv/uconn_configs/kfs-config/work/prd/kfs/attachments
attachments.pending.directory=/srv/uconn_configs/kfs-config/work/prd/kfs/attachments/pending
reports.directory=/srv/uconn_configs/kfs-config/work/prd/kfs/reports
staging.directory=/srv/uconn_configs/kfs-config/work/prd/kfs/staging
temp.directory=/srv/uconn_configs/kfs-config/work/prd/kfs/temp
batch.file.lookup.root.directories=/srv/uconn_configs/kfs-config/work/prd/kfs/staging;/srv/uconn_configs/kfs-config/work/prd/kfs/reports
attachment.dir.location=/srv/uconn_configs/kfs-config/work/prd/kfs/attachments
data.xml.root.location=/srv/uconn_configs/kfs-config/work/prd/kfs/staging/workflow
data.xml.pending.location=/srv/uconn_configs/kfs-config/work/prd/kfs/staging/workflow/pending
data.xml.loaded.location=/srv/uconn_configs/kfs-config/work/prd/kfs/staging/workflow/loaded
data.xml.problem.location=/srv/uconn_configs/kfs-config/work/prd/kfs/staging/workflow/problem

# Rice Properties
keystore.file=/srv/uconn_configs/kfs-config/sa_forms/java/prd/kfs/rice.keystore

 

 

Only certain config items are RUNTIME properties. If you attempt to configure a BUILDTIME property into one of these files, it won't work. BUILDTIME properties need to be set either in the kfs-build.properties file on the Jenkins server if they are generic, or explicitly in the Jenkins jobs if they are environment-specific.

 

Â