AMT Help Files

AMT Application Config File

The amt-config.yaml file is used to configure AMT applications. Each key and setting found in this file is described below.

Base Configuration

Settings Description Accepted Values Examples
version The version of this configuration file. <version> version: v1
name The name of the AMT environment. <name> name: AMT Java
environment The description for this AMT environment. <description> environment: prod
basePath The base path (root) folder of the environment. <root folder path> basePath: "C:\\AMT"
applicationName The name of the application. This name is also used to define the application database and must therefore be exactly the same. <application name> applicationName: CUSTOMER_MANAGEMENT
applicationPackage The domain, followed by company or organization name, and application name. <app domain> applicationPackage: com.helloword.company
remoteApplicationPackages The domain, followed by company or organization name, and application name. On startup, all programs from the specified remote packges are loaded in order, and duplicates are skipped. <X app package>
<Y app package>
remoteApplicationPackage: com.helloword.company
  appXX: com.helloword.company.package1
  appXX: com.helloword.company.package1

Secure Storage

The settings for the Secure Storage provider, which relate to the database settings further down.

Settings Description Accepted Values Examples
vaultType The vault type used to secure credentials. It is possible to add multiple Secure Storage configurations and use them simultaneously.
  • Azure: Makes use of the Microsoft Azure Key Vault.
  • GCP: Makes use of the Secret Manager of the Google Cloud Platform.
  • HashiCorp: Makes use of the HashiCorp Vault.
  • Custom: Use any vault implementation of your choice.
  • Simple: This type of key vault makes use of a text file with encrypted credentials. Not recommended for use in production.
Azure
GCP
HashiCorp
Custom
Simple
vaultType: Azure
azureCredentialType (only for Microsoft Azure) Only used if 'vaultType' is set to 'Azure'. Set the Azure credential type. Environment
...
azureCredentialType: Environment
azureVaultName (only for Microsoft Azure) Only used if 'vaultType' is set to 'Azure'. Enter the name of the Azure vault. <key vault name> azureVaultName: app-keyvault
gcpProjectId (only for Google Cloud Platform) Only used if 'vaultType' is set to 'GCP'. Set the GCP vault ID. <GCP vault ID> gcpProjectId: vault-33
securePath (only for HashiCorp) Only used if 'vaultType' is set to 'HashiCorp'. Set this to the folder path containing the secrets for the HashiCorp Vault. <folder path> securePath: "C:\\AMT\HashiCorp"
engineVersion (only for HashiCorp)
Only used if 'vaultType' is set to 'HashiCorp'. '2' is the default value if the engine version is not specified. 1
2
engineVersion: 2
vaultClass (custom) Optional. Used when vaultType is set to "Custom" to use a custom impelementation. <vault class>
vaultFilePath Only used if 'vaultType' is set to 'Simple'. Set this to the file path of the file containing the credentials of the application database. Not recommended for use in production. Also see page: File: Key Vault. <folder path> vaultConfiguration:
  securePath: "C:\\AMT\SimpleVault\\cc-secrets.txt"

Authentication

In the sample config file, the client name is "rest" – this can be named anything, as long as it is unique when defining multiple clients.

Settings Description Available Options Examples
type The type of authentication used. OpenID Connect (OIDC) is the only available option. OIDC type: OIDC
issuerURL The URL of the OpenID provider. <provider url> issuerURL: https://login.microsoftonline.com/<ID>/v2.0
clientID The ID of the application registered at the OpenID provider to identify the application when authentication requests are made. <client ID> clientID: <client ID>
claimUserName Set the username. This must match the claimUserName provided in the oidcconfig.json file. If no value is given, it is set to preferred_username <username> preferred_username
claimUserRoles Optional, but must be set when using OAuth. amt (default)
<user roles>
claimUserRoles: amt
claimRolesKey Must be set when claimUserRoles is set. <roles key> claimRolesKey: <key>

Runtime Configuration

Settings Description Accepted Values Examples
customSignEncoding Define a custom sign encoding. This must be a string of 20 unique characters, corresponding with the sign encoding digits -9 to -0, followed by +0 to +9. In the example, the custom sign encoding uses the same characters as the EBCDIC numeric sign encoding type. <sign encoding> customSignEncoding: RQPONMLKJ}{ABCDEFGHI
cacheWorkingStorage true
false (default)
cacheWorkingStorage: false
storeCompInASCII true (default)
false
storeCompInASCII: true
translationFileEBCDIC The file path to the translation file. <translation file path> translationFileEBCDIC: "C:\\AMT\translationFileEBCDIC"
useAmtCursor true
false (default)
useAmtCursor: false
clientTimeout Set a timeout in milliseconds. <integer> clientTimeout: 3000
transactionTimeout Set a timeout for transactions in milliseconds. <integer> transactionTimeout: 3000
expiredFileTaskTimeout Set a timeout for file tasks in seconds. <integer> expiredFileTaskTimeout: 60
grpcIdleTimeout This is the timeout (in seconds) for idle channels before it is closed by the server. This could be useful while debugging to prevent channels getting closed during long gRPC calls. <integer> grpcIdleTimeout: 60
fileMessageSize Set the (maximum) message size in MB. <MegaBytes> fileMessageSize: 2
gdgMaxCycleNumber Set the maximum number of cycles. <integer> gdgMaxCycleNumber: 9999
urimap Enter the filepath\filename containing the URIMAP configuration. This is only required if CICS statements use URIMAP. <urimap folder path> urimap: "urimap.yaml"
pythonInterpreter This setting is optional. Specify the full path to the binary that the system should use as the python interpreter. <path to interpreter> pythonInterpreter: python
pythonInterpreter: "C:\\path\\to\\Python\\Executable.exe"
useDate This setting is optional. Set a date to be used for testing purposes in yyyyMMdd format. The application uses this date instead of the system date. <yyMMdd> useDate: 20250123
addAppNameToForm If enabled, the application name is added to forms. true (default)
false
addAppNameToForm: true

Database Configuration

The Database configuration section. First, the database kind needs to be defined. Use 'applicationDatabase' for applications. See the Control Center Config File to configure the System and Transaction databases.

All of the database settings can be stored in the key vault. A dollar sign $ prefixing a value denotes the use of a key stored in the key vault file.

Settings Description Accepted Values Examples
aliases Enter aliases to applications. <comma separated strings> type: al1, al2
type Set the type of database. POSTGRES (default)
ORACLE
MSSQL
DB2
type: POSTGRES
name Enter the name of the Application Database. <application database> name: CUSTOMER_MANAGEMENT
name: $appDb
schema Enter the name of the Schema of the Application Database. The Schema name must be exactly the same as the Database name. <application database schema> schema: CUSTOMER_MANAGEMENT
schema: $appDbSchema
username Set the name of the user authorized to access the Application Database. <username> username: amtuser
username: $appDbUser
password Set the Password of the user. <password> password: amtpassword
password: $appDbPassword
driverClassname Set the driver for the database.
  • For PostgreSQL: driverClassname: org.postgresql.Driver.
  • For Oracle: driverClassname: oracle.jdbc.driver.
  • For DB2: driverClassname: com.ibm.db2.jcc.DB2Driver.
org.postgresql.Driver
oracle.jdbc.driver
com.ibm.db2.jcc.DB2Driver
<custom>
driverClassname: org.postgresql.Driver
url Set the server database URL. This must be configured according to the type of database used:
  • For PostgreSQL: jdbc:postgresql://<Server>:<Port>/<Database>.
  • For Oracle: jdbc:oracle://<Server>:<Port>/<TNS>.
  • For DB2:
    jdbc:db2://<Server>:<Port>/amtsys
jdbc:postgresql://<Server>:<Port>/<Database>
jdbc:oracle://<Server>:<Port>/<TNS>
jdbc:db2://<Server>:<Port>/amtsys
url: jdbc:postgresql://<Server>:<Port>/<Database>
hibernateDialect Set the database dialect for the Hibernate framework.
  • For PostgreSQL: org.hibernate.dialect.PostgreSQLDialect
  • For DB2: org.hibernate.dialect.DB2Dialect.
org.hibernate.dialect.PostgreSQLDialect
org.hibernate.dialect.DB2Dialect
hibernateDialect: org.hibernate.dialect.PostgreSQLDialect
hibernateShowSql If set to true, this enables the logging of all the generated SQL statements to the console and a log file. true
false
hibernateShowSQL: false
queryCacheSize Set the query cache size in MegaBytes. <integer> queryCacheSize: 2
connectionPoolSize Set the maximum number of connections. <integer> connectionPoolSize: 200
encryptConnection If set to true, this enables SSL for the database connection. Supported databases include MSSQL, PostgreSQL, and DB2. true
false (default)
encryptConnection: true
stringParametersAsUnicode true
false (default)
stringParametersAsUnicode: false
statementCachePoolSize Set the statement cache pool size in MegaBytes. <integer> statementCachePoolSize: false
newConnection true
false (default)
newConnection: false
lockTimeoutSeconds The number of seconds before a database is unlocked. <integer> lockTimeoutSeconds: 20
lockTimeoutReportsProgramsSeconds The number of seconds before a database is unlocked. If the lock is not released after the timeout, the report or program will retry several times. <integer> lockTimeoutReportsProgramsSeconds: 5
sqlCommandTimeout The number of seconds for a screen or report to wait for a SQL command to be performed. <integer> sqlCommandTimeout: 30
nlsLanguage (Oracle databases only) Set the language for an Oracle client connection. <language> nlsLanguage: AMERICAN

Clusters

The Cluster and Remote Cluster sections. A cluster configuration allows the bundling or separation of applications, and controllers. A cluster consists of a single node or multiple nodes (optional), including remote clusters. A remote cluster allows for starting transactions on a remote application.

Settings Description Accepted Values Examples
type The type of cluster used. PEKKO is the only available option. PEKKO type: PEKKO
mode Set the node mode to single or cluster. SINGLE_NODE
CLUSTER_NODE
mode: SINGLE_NODE
host The server address of the host of the application. <ip address or server name> mode: SINGLE_NODE
gRPCPort Set the gRPC port of the host. <port number> gRPCPort: SINGLE_NODE
restPort Set the REST port of the host. <port number> restPort: 9000
httpOnly If set to True, the system only uses the HTTP protocol for communication between nodes in the cluster. true
false
httpOnly: false
jobQueues Sets the default job queue for this node. <job queue name> jobQueues: default

COBOL Configuration

The COBOL Configuration section, cobolConfig, for AMT applications.

Settings Description Accepted Values Examples
cwaSize The size of the Common Work Area in bytes. <integer> cwaSize: 0

Sample amt-config.yaml

---
####################################################################################################
#
# APPLICATION CONFIGURATION
# General application related configuration items.
#
####################################################################################################
version: v1
name: AMT GO Java Application Configuration Template
environment: DEV
basePath: "C:\\Amt"
applicationName: smoketest
applicationPackage: com.avanade.ltcoe.smoketest
remoteApplicationPackages: # Optional, all remote packages need to be part of the allinone-jar
  XX: com.avanade.ltcoe.package1
  YY: com.avanade.ltcoe.package2
####################################################################################################
#
# SECURE STORAGE SECTION
# Settings related to the secure storage provider. This ties into the database settings later on.
#
####################################################################################################
secureStorage:
  # Secure Storage can be configured in a couple of different ways.
  # See the Secure Storage Wiki page for more information.
  vaultType: Simple
  vaultConfiguration:
    vaultFilePath: "C:\\Amt\\smoketest-secrets.txt"
####################################################################################################
#
# AUTHENTICATION CONFIGURATION SECTION
# Settings related to the external authentication provider.
# Defaults are added for a simple KeyCloak setup, if another authentication provider is required,
# then you need to add the correct issuerURL & clientID.
#
####################################################################################################
authentication:
  type: OIDC
  clients:
    rest:
      settings:
        issuerURL: http://localhost:8080/realms/AMTRealm
        clientID: AMT
        claimUserName: preferred_username
        claimUserRoles: amt # "oauth". When using OAuth, claimRolesKey and rolemapping needs to be configured
          #claimRolesKey: # Key to roles in OAth token. For Azure e.g. it is "groups",
          # where for keycloak it is "resource_access;AMT;roles", it is 3 layers deep, using ; separates the keys.
      #roleMapping:
      #role1: amt_role1
####################################################################################################
#
# SERVER CERTIFICATE CONFIGURATION
# Paths to the server key and certificate (file or classpath resource).
# If not set, the default key and certificate will be loaded from the classpath (/certs/server1.key and /certs/server1.pem)
#
####################################################################################################
serverCertificate:
  # Can be a file path or classpath resource.
####################################################################################################
#
# RUNTIME CONFIGURATION SECTION
# Settings related to the runtime behavior of the application.
#
####################################################################################################
runtime:
  settings:
    customSignEncoding: ""
    cacheWorkingStorage: false
    storeCompInASCII: true
    translationFileEBCDIC: "C:\\Amt\\translationFileEBCDIC"
    useAmtCursor: false
    clientTimeout: 3000 # milliseconds
    transactionTimeout: 3000 # milliseconds
    expiredFileTaskTimeout: 60 # seconds
    grpcIdleTimeout: 60 # seconds
    fileMessageSize: 2 # MB
    gdgMaxCycleNumber: 9999
    #urimap field is an optional, it required when the CICS statement uses URIMAP
    #urimap: "urimap.yaml"
    # Optional, set specific path to python interpreter if it's not the default version on the OS.
    # Applies only to the application runtime configuration.
    #pythonInterpreter: "C:\\Path\\To\\Python\\Executable.exe"
    # Optional, set a date to be used for testing purposes.
    # Application uses this date instead of the system date. Format is yyyyMMdd
    #useDate: 20250123
    #addAppNameToForm: true
####################################################################################################
#
# SYSTEM DATABASE CONFIGURATION SECTION FOR POSTGRESQL
# Settings related to the system database. Values can be keys for the configured key vault
# from the Secure Storage section up above.
#
####################################################################################################
systemDatabase:
  type: POSTGRES
  settings:
    name: amtsystem
    schema: amtsystem
    username: amtsystem
    password: amtsystem
    driverClassname: org.postgresql.Driver
    url: jdbc:postgresql://localhost/amtsystem
    hibernateDialect: org.hibernate.dialect.PostgreSQLDialect
    # Uncomment these if you want to override the default values.
    #hibernateShowSql: false
    #connectionPoolSize: 200
    #lockTimeoutSeconds: 20
    #lockTimeoutReportsProgramsSeconds: 5
    #sqlCommandTimeout: 30
####################################################################################################
#
# SYSTEM DATABASE CONFIGURATION SECTION FOR DB2
# For DB2 use same settings as for PostgreSql except for the ones below
#
####################################################################################################
#systemDatabase:
  #type: DB2
  #settings:
    #driverClassname: com.ibm.db2.jcc.DB2Driver
    #url: jdbc:db2://localhost:25000/dbname
    #hibernateDialect: org.hibernate.dialect.DB2Dialect
####################################################################################################
#
# TRANSACTION DATABASE CONFIGURATION SECTION (ENABLE & USE WHEN CONFIGURING A TRANSACTION DATABASE)
# Settings related to the transaction database. Values can be keys for the configured key vault
# from the Secure Storage section up above.
#
####################################################################################################
#transactionDatabase:
#  type: POSTGRES
#  settings:
#    name: amtsystransaction              <Create name>
#    schema: amtsystransaction            <Create schema>
#    username: amtsystransactionUser      <username from secrets file>
#    password: amtsystransactionPassword  <password from secrets file>
#    driverClassname: org.postgresql.Driver
#    url: jdbc:postgresql://localhost/amtsystransaction
#    hibernateDialect: org.hibernate.dialect.PostgreSQLDialect
#    # Uncomment these if you want to override the default values.
#    #hibernateShowSql: false
#    #connectionPoolSize: 200
#    #lockTimeoutSeconds: 20
#    #lockTimeoutReportsProgramsSeconds: 5
#    #sqlCommandTimeout: 30
####################################################################################################
#
# TRANSACTION DATABASE CONFIGURATION SECTION FOR DB2
# For DB2 use same settings as for PostgreSql except for the ones below
#
####################################################################################################
#transactionDatabase:
#type: DB2
  #settings:
    #driverClassname: com.ibm.db2.jcc.DB2Driver
    #url: jdbc:db2://localhost:25000/dbname
    #hibernateDialect: org.hibernate.dialect.DB2Dialect
####################################################################################################
#
# APPLICATION DATABASE CONFIGURATION SECTION FOR POSTGRESQL
# Settings related to the application database. Values can be keys for the configured key vault
# from the Secure Storage section up above.
#
####################################################################################################
smoketest:
  aliases: al1, al2
  type: POSTGRES
  settings:
    name: smoketest
    schema: smoketest
    username: smoketest
    password: smoketest
    driverClassname: org.postgresql.Driver
    url: jdbc:postgresql://localhost/smoketest
    # Uncomment these if you want to override the default values.
    #queryCacheSize: 2 # MB
    #connectionPoolSize: 200
    #encryptConnection: false
    #stringParametersAsUnicode: false
    #statementCachePoolSize: 10 # When set to 0 statement caching is disabled
    #newConnection: false
    #nlsLanguage: AMERICAN
 ####################################################################################################
 #
 # APPLICATION DATABASE CONFIGURATION SECTION FOR DB2
 # For DB2 use same settings as for PostgreSql except for the ones below
 #
 ####################################################################################################
#smoketest:
  #type: DB2
  #settings:
     #driverClassname: com.ibm.db2.jcc.DB2Driver
     #url: jdbc:db2://localhost:25000/dbname
     #hibernateDialect: org.hibernate.dialect.DB2Dialect
####################################################################################################
#
# CLUSTER CONFIGURATION (SINGLE-NODE EXAMPLE)
# Settings related to the cluster configuration. A cluster can be single node (as configured below)
# or multi-node (as shown in the commented out example further down).
#
####################################################################################################
cluster:
  type: PEKKO
  mode: SINGLE_NODE
  nodes:
    single-node-amt:
      settings:
        host: 0.0.0.0
        gRPCPort: 8080
        restPort: 9000
        httpOnly: false
        jobQueues: default
remoteCluster:
  nodes:
    remote-node:
      settings:
        host: 0.0.0.0
        gRPCPort: 9090
####################################################################################################
#
# CLUSTER CONFIGURATION (MULTI-NODE EXAMPLE)
# Multi-node settings for a cluster configuration.
#
####################################################################################################
#cluster:
#  type: PEKKO
#  mode: CLUSTER_NODE
#  nodes:
#    node-1:
#      settings:
#        host: 0.0.0.0
#        port: 25251
#        seedNodes: localhost:25251,localhost:25252
#        gRPCPort: 8080
#        restPort: 9000
#        httpOnly: false
#        roles: job,file,program
#        jobQueues: Default
#    node-2:
#      settings:
#        host: 0.0.0.0
#        port: 25252
#        seedNodes: localhost:25251,localhost:25252
#        gRPCPort: 8081
#        restPort: 9001
#        httpOnly: false
#        roles: job,file,program
#        jobQueues: Default
#    node-3:
#      settings:
#        host: 0.0.0.0
#        port: 0
#        seedNodes: localhost:25251,localhost:25252
#        gRPCPort: 8082
#        restPort: 9002
#        httpOnly: false
#        roles: transaction,file
#    node-4:
#      settings:
#        host: 0.0.0.0
#        port: 0
#        seedNodes: localhost:25251,localhost:25252
#        gRPCPort: 8083
#        restPort: 9003
#        httpOnly: false
#        roles: transaction,file,print
####################################################################################################
#
# COBOL CONFIGURATION
#
####################################################################################################
cobolConfig:
  cwaSize: 0
...