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