Runtime Properties
To configure your runtime instance there is a properties file available in the data folder of your runtime installation.
The properties file is located at <Runtime Data Folder>/conf/runtime.properties
.
The properties described in this document are all required to be present in the runtime.properties file unless specified otherwise.
Server Configuration
Server properties can be changed to change the behaviour of the runtime server.
# ----------------------------------------
# SERVER PROPERTIES
# ----------------------------------------
server.port=7070
server.thread-pool.size=5
Database Configuration
Properties prefixed with db should not be changed when runtime is already up and running, they are only made available to configure the initial database settings.
Warning: Editing these settings is considered an advanced feature and regular users should not have to do this.
# ----------------------------------------
# DATABASE PROPERTIES
# ----------------------------------------
# Database properties for the Runtime service database
# Username that should be used to access the runtime database.
db.username= {username}
# Password used to access the runtime database, can be empty to prevent access from outside sources.
db.password= {password}
# Port that the runtime database should use
db.port= {port number}
# Connection string used to connect to the runtime database (ex. jdbc:hsqldb:hsql://localhost/runtime)
db.url= {connection string}
# Dialect used by hibernate to construct queries (ex. org.hibernate.dialect.HSQLDialect)
db.dialect= {hibernate dialect}
# Database driver class (ex. org.hsqldb.jdbcDriver )
db.driver= {driver class name}
Security Configuration
These settings are used to configure the token-based security options for accessing the runtime API and web application.
These properties are optional and defaults will be used when they are not present.
# ----------------------------------------
# SECURITY PROPERTIES
# ----------------------------------------
# The time it takes before access tokens are invalidated in minutes.
#service.access-token.expiration_min={expiration}
# The time it takes before refresh tokens are invalidated in minutes.
# The expiration time of refresh tokens should be longer than the expiration time of access tokens.
#service.refresh-token.expiration_min={expiration}
Agent Configuration
Settings concerning agent startup and communication settings.
Warning: properties prefixed with 'broker.' should only be changed when a runtime agent is not running on the same machine as the runtime service. This feature is currently unsupported.
# ----------------------------------------
# AGENT PROPERTIES
# ----------------------------------------
# Agent communication settings.
broker.stomp.port=61613
broker.stomp.host=localhost
broker.jms.port=61616
broker.jms.host=localhost
# Automatically start agents when the service starts, defaults to true.
agents.autostart=true
agents.scheduler.interval_ms=100
Database encryption
The Runtime server supports encryption for its embedded database, which stores information about environments, projects, and connections.
Warning: Encryption must be enabled during the initial setup of a new Runtime instance. Existing instances that are already configured cannot be encrypted retroactively.
# First a key must be created for the desired cipher and
# configuration using an external tool, such as openssl, or by calling the
# HyperSQL function CRYPT_KEY(<cipher spec>, <provider>).
db.cryptKey = {key} REQUIRED
# Some modes of operations require an initialization vector (IV) to be passed in as a hex string.
# This hex can be generated using an external tool, such as openssl, or randomly generated by the user.
db.cryptIv = {iv} OPTIONAL
# The type of cryptography used to generate the key.
db.cryptType = {type} OPTIONAL
Examples
db.cryptkey=604a6105889da65326bf35790a923932
db.cryptIv=9AB7A109507CD27BEADA2AE59BCEEF08
db.cryptType=AES/CBC/PKCS5Padding
Examples
Using OpenSSL:
openssl enc -aes-128-cbc -k RANDOM_PASSPHRASE -P -md sha256
Using external tool
Documentation
For a more extensive description of the encryption functionality, you can refer to the HSQLDB documentation at
http://hsqldb.org/doc/2.0/guide/management-chapt.html#mtc_encrypted_database*
SSL
Runtime supports SSL configuration to secure communications. The following settings can be modified in the runtime.properties
file:
# ----------------------------------------
# SSL PROPERTIES
# ----------------------------------------
#server.ssl.enabled=true
# The format used for the keystore. It could be set to JKS in case it is a JKS file
#server.ssl.key-store-type=PKCS12
# The path to the keystore containing the certificate
#server.ssl.key-store=path-to-keystore
# The password to access the keystore
#server.ssl.key-store-password=xxx
# The alias mapped to the certificate in the keystore
#server.ssl.key-alias=
Application Verification
In addition to Database Encryption, Runtime also includes support for Application Verification as an added layer of security. This feature ensures the integrity of uploaded applications by verifying their authenticity and detecting unauthorized modifications.
# ----------------------------------------
# Application verification PROPERTIES
# ----------------------------------------
# The application verification mode. Possible values are:
# - none: No verification is done.
# - restricted: Only signed application are allowed to be uploaded and deployed.
# - warning: Packages are verified but only a warning is given when verification fails.
app.application-verification-mode=none