Disclaimer

This document is only collection of author’s notes, experiences and point of views. It is not, in any meaning, either complete description of the topic nor official RTB documentation. It may be inaccurate, incomplete, obsolete, misleading or completely wrong. It may even cause loss of data or damage system integrity. It may not comply with company codex, values, presentation style or economic interests or may reveal company secrets.

As such, it is absolutely prohibited to distribute this document outside of RTB & Co. GmbH. Such an action may result into legal acts against both the sender and the company. It is only intended, after review of technical and presentational correctness and accuracy, to be used as an information source for official documentation.

Always contact documentation department for information about current presentation style and allowed formats before creating customer’s documentation.

1. Introduction

Following parameters can be used to control application behavior. They have to be stored in file or provided as environment variables.

1.1. Files

File must have extension based on data format. It can be either yaml or .properties. Yaml is preferred. If a properties is used, it content must be encoded in US-ASCII. Use either Oracle’s Native-to-ASCII Converter or convert online.

Example of properties
spring.datasource.url=myURL
spring.datasource.username=myUserName
spring.datasource.password=myPassword
Example of yaml
spring:
    datasource:
        url: myURL
        username: myUserName
        password: myPassword

File must be located in directory . or ./config (see Application Property Files) and named (see Profile-specific Properties)

  • application.<ext> - used in all profiles

  • application-<profile>.<ext> - used only in specific profile.

1.2. Environment variables

Application properties can be also passed by environment variables. Please note that all . must be replaced by _ and all letters are capital.

Example of properties
export SPRING_DATASOURCE_URL=myURL
export SPRING_DATASOURCE_USERNAME=myUserName
export SPRING_DATASOURCE_PASSWORD=myPassword

1.3. Active profiles

Profiles in which application starts may be defined by property spring.profiles.active as comma separated list of profile names. Order matters.

2. List of properties

2.1. Compulsory

Those variables must be set in order to application starts. An error will be thrown otherwise.

Database

  • spring.datasource.url

  • spring.datasource.username

  • spring.datasource.password

PDM.control

  • pcon.wan.ip

  • pcon.app.url

3. List of properties

3.1. Spring

pcon.alive-monitor.check-delay

Name

pcon.alive-monitor.check-delay

Description

Defines how oft PDM check the alive status of PDMs

Default value

5

Type

java.time.Duration

pcon.alive-monitor.default-alive

Name

pcon.alive-monitor.default-alive

Description

This value will be use as keep alive duration if PDM doesn’t indicate it (e.g. PDM 5, or PDM 7 with very old firmware).

Default value

12

Type

java.time.Duration

pcon.alive-monitor.notify-after-missing-count

Name

pcon.alive-monitor.notify-after-missing-count

Description

Create status message if specified number of keep alive messages is missing.

Default value

3

Type

java.lang.Integer

pcon.api.export.max-page-size

Name

pcon.api.export.max-page-size

Description

Maximal number of entries returned by one request.

Type

java.lang.Integer

pcon.app.name

Name

pcon.app.name

Type

java.lang.String

pcon.app.url

Name

pcon.app.url

Description

URL (and port) were the application is accessible from wan side. E.g. https://my-domain.com:8443.

Type

java.net.URL

pcon.compatibility.exit-on-exception

Name

pcon.compatibility.exit-on-exception

Description

Terminate application on certain exception. Cloud orchestrator should re-start / re-deploy application automatically.

Default value

true

Type

java.lang.Boolean

pcon.compatibility.mute-pdm5-errors

Name

pcon.compatibility.mute-pdm5-errors

Description

Report PDM5 problems on DEBUG level. <p> Mute errors form PDM 5, which cannot be fixed anyway. PDM 5 are able to repeat wrong message every minute for many weeks, which completely pollutes log file.

Default value

true

Type

java.lang.Boolean

pcon.development.cpu-count

Name

pcon.development.cpu-count

Description

Overwrite number automatically detected number of CPU to this number. <ul> <li><0 - number of CPU will be detected.</li> <li>0 - Use minimal possible resources.</li> <li>>0 - set number of CPUs.</li> </ul> It must be >= 0. Number 0 uses minimal possible resources.

Default value

-1

Type

java.lang.Integer

pcon.development.disable-csrf

Name

pcon.development.disable-csrf

Description

Disable CSRF (Cross-Site Request Forgery).

Default value

false

Type

java.lang.Boolean

pcon.development.disable-trc-check

Name

pcon.development.disable-trc-check

Description

Accept also messages with TRC which has been already received.

Default value

false

Type

java.lang.Boolean

pcon.development.filter-emails

Name

pcon.development.filter-emails

Description

Allows only to send e-mails to {@code*@rtb-bl.de} addresses. It protects the customers to receive spam if customer database is used for debugging.

Default value

false

Type

java.lang.Boolean

pcon.gdpr.eviction.lpn

Name

pcon.gdpr.eviction.lpn

Description

How long License Plate Number must be kept.

Default value

28d

Type

java.time.Duration

pcon.gdpr.protect

Name

pcon.gdpr.protect

Description

Protection is on. GDPR related data will be hidden.

Default value

false

Type

java.lang.Boolean

pcon.lan.tcp-port

Name

pcon.lan.tcp-port

Description

TCP port number which PDM.control opens for incoming connections.

Type

java.lang.Integer

pcon.lan.udp-port

Name

pcon.lan.udp-port

Description

UDP port number which PDM.control opens for incoming connections.

Type

java.lang.Integer

pcon.mail.from

Name

pcon.mail.from

Description

A text which is used in 'From' field of an e-mail message. Some e-mail servers or SPAN filters require to put real e-mail address of the mail box from which the message has been sent.

Type

java.lang.String

pcon.mail.notification.max-attachment-size

Name

pcon.mail.notification.max-attachment-size

Description

Maximal e-mail attachment size.

Type

org.springframework.util.unit.DataSize

pcon.mail.notification.template-path

Name

pcon.mail.notification.template-path

Description

Path to user’s templates.

Type

java.lang.String

pcon.mail.reply-to

Name

pcon.mail.reply-to

Description

A text which is used in 'Replay to' field of an e-mail message.

Type

java.lang.String

pcon.pdm.active-download-notification.initial-delay

Name

pcon.pdm.active-download-notification.initial-delay

Description

A delay after server start in which the the first active notification will be done.

Type

java.time.Duration

pcon.pdm.active-download-notification.max-downloads

Name

pcon.pdm.active-download-notification.max-downloads

Type

java.lang.Integer

pcon.pdm.active-download-notification.poling-delay

Name

pcon.pdm.active-download-notification.poling-delay

Description

A delay between two calls in which the PDM 5 updates will be checked.

Type

java.time.Duration

pcon.sms-gateway.human-type

Name

pcon.sms-gateway.human-type

Description

Usually the service provider offers different price and reliabilities plans. This plan will be used for communication with human.

Type

java.lang.String

pcon.sms-gateway.machine-type

Name

pcon.sms-gateway.machine-type

Description

Usually the service provider offers different price and reliabilities plans. This plan will be used for communication with machine.

Type

java.lang.String

pcon.sms-gateway.password

Name

pcon.sms-gateway.password

Description

Password to log in to the service

Type

java.lang.String

pcon.sms-gateway.type

Name

pcon.sms-gateway.type

Description

SMS gateway provider. May be 'Lox24' or 'SmsExpert'

Type

java.lang.String

pcon.sms-gateway.username

Name

pcon.sms-gateway.username

Description

User name to log in to the service

Type

java.lang.String

pcon.wan.ip

Name

pcon.wan.ip

Description

IP address of WAN side of NAT. If you do not use NAT set just server IP here.

Type

java.lang.String

pcon.wan.tcp-port

Name

pcon.wan.tcp-port

Description

TCP port of WAN side of NAT.

Type

java.lang.Integer

pcon.wan.udp-port

Name

pcon.wan.udp-port

Description

UDP port of WAN side of NAT.

Type

java.lang.Integer

3.2. Application specific

server.port

Name

server.port

Description

Port for PDM.control’s Web GUI

Default value

8080

Type

java.lang.Integer

spring.datasource.name

Name

spring.datasource.name

Description

Datasource name to use if "generate-unique-name" is false. Defaults to "testdb" when using an embedded database, otherwise null.

Type

java.lang.String

spring.datasource.password

Name

spring.datasource.password

Description

Login password of the database.

Type

java.lang.String

spring.datasource.url

Name

spring.datasource.url

Description

JDBC URL of the database.

Type

java.lang.String

spring.mail.host

Name

spring.mail.host

Description

SMTP server host. For instance, 'smtp.example.com'.

Type

java.lang.String

spring.mail.password

Name

spring.mail.password

Description

Login password of the SMTP server.

Type

java.lang.String

spring.mail.port

Name

spring.mail.port

Description

SMTP server port.

Type

java.lang.String

spring.mail.properties.*

Name

spring.mail.properties.*

Description

Additional JavaMail Session properties.

Type

java.lang.String

spring.mail.username

Name

spring.mail.username

Description

Login user of the SMTP server.

Type

java.lang.String