4.2.1 backend.properties

The backend.properties file controls the configuration of the backend server. How many and which M&C systems are controlled by the backend, how to authenticate at the backend and some debugging options are defined in this file. The backend.properties file is read once by the software on startup, so any changes to this file become effective with the next start of the backend. The backend installation package contains a backend.properties.default file which can be used as a template to setup a new properties file from scatch

Controlled M&C systems

For every M&C system controlled by the backend, at least two parameters must be set: The M&C system's IP address (backend.mnc.*.ip) and it's name (backend.mnc.*.name). Example for the first M&C:

backend.mnc.1.ip=127.0.0.1
backend.mnc.1.name=MNC

M&Cs are numbered 1,2 ... n, number 1 is called the primary M&C. It must always exist, the backend uses it to get screens, driver definitions and to authenticate users during the login. The name of each M&C should match the name which is set at the M&C server itself. This ensures that the M&C name presented at the UI frontend matches the M&C name appearing in event log messages.

The backend supports redundant M&C pairs, monitors and control the switchover. To define a redundant M&C pair, some more parameters are required. They are the IP address of the backup M&C and some timing parameter controlling the switchover process.

backend.mnc.2.ip=192.168.2.229
backend.mnc.2.name=MNC-2
backend.mnc.2.backup.ip=192.168.2.227 
backend.mnc.2.backup.retries=3
backend.mnc.2.backup.delay=15

As soon as backend.mnc.*.backup.ip is defined for a M&C, this is considered to be a redundant pair. The backend.mnc.*.backup.retries parameter defined how many reconnect attempts to the primary M&C shall be made until a switch over is done. backend.mnc.*.backup.delay specifies the wait time between connection attempts.

EventDB server

The backend needs to know where the event database is hosted. The IP address is specified with:

eventdb.server=127.0.0.1

For small installations this is typically the same machine as the backend

SQL database access

The backend stores information about satellites, satellite channels and antenna pointings in SQL a database. The setings below specify how to access this database. Again in a small installation the database will run on the same host as the backend itself.

db.satlist.host=127.0.0.1
db.satlist.user=satnms
db.satlist.password=satnms
db.satlist.usessl=false

The backend may use a redundant database configuration where the primary database server is configured r/w and the backup server is r/o. For such a configuration the db.satlist.host parameter defines the primary and backup server addresses separated by a comma. The first address denotes the primary database server.

db.satlist.host=192.168.0.100,192.168.0.101
db.satlist.keep=300

The db.satlist.keep parameter defines the time (secs) after which the backend cuts a connetion to the backup server in order to try if the primary one is available again.

Inventory database

The inventory database is part of the SQL database which also stores satellite channels etc. The inventory feature must be enabled explicitly by setting the parameter below to true:

db.inventory.enabled=false
db.inventory.debug=false

The db.satlist.* parameters shown in the section above this must also be setup properly to enable the inventory database. Setting the debug flag true lets the software print out all SQL traffic regarding the inventory into the .panic.log file. This causes huge log files, therefore shouls be used only investigating problems, not during normal operation.

OAuth2 authentication

The backend uses OAuth2 to authenticate API calls. it provides a local authority which issues tokens for local logins. The parameters below configure the behavior of this feature

oauth2.access.token.valid.time=3600

Specifies the time a token is valid (seconds). default is 3600

oauth2.refresh.token.valid.time=7200

Specifies the time the refresh token is valid (seconds). default is 7200

max.sessions.total=0

Specifieds the max. number of session which totally may be open at the same time (default 0, means don't care)

max.sessions.user=0

Specified the max. number of session which may be open at the same time for the same user (default 0, means don't care)

The backend accepts JWT tokens from an external authentication authority if the following parameters are set URL to access the JWKS from this authority. default is empty.

oauth2.jwk.provider=

The parameter below secifies IP address of an HTTP(s) proxy if the JWKS provider shall be accessed thru this proxy. default is empty (no proxy)

oauth2.jwk.proxy=

The parameter below specifies the AD group name to privilege level look up list. It consists of group-name:privilege-level pairs, separated by comma characters. default is an empty list.

oauth2.groups=SATNMS-ADM:150,SATNMS-OP:110

Beside from the "Authentication" header the backend may read the JWT token from a cookie coming with the API call. default is mpty (don't accept JWT from a cookie)

oauth2.cookie.name=

LDAP local login

For local logins the backend may look up the credentials of a user at an LDAP directory server instead of parsing the .users file from the primary M&C. The settings below are used to specify how to access the LDAP server and how to interprets the data read from there:

ldap.enable=yes
ldap.url=ldaps://ad.mydomain:636
ldap.default.domain=ad.mydomain
ldap.search.user=searchsatnms
ldap.search.password=searchsatnms
ldap.groups=SATNMS-ADM:150,SATNMS-OP:110
ldap.keystore.name=ldap.p12
ldap.keystore.password=satnms

Debug settings

The backend offers a number of parameters which enable extensive logging of certain events, internal messages of parameter updates for debugging purposes. For normal operation you should keep the disabled all because log files can become very large with debuggin enabled. Debugging also may reduce the performance of the backend.

The parameter/status communication to a specific M&C may be logged by setting this parameter true (replace '*' with the index of the M&C to switch to verbose.

backend.mnc.*.verbose=true

Setting this true logs every message sent over a websocket. Creates a huge amount of log data, logs are better to interpret if only one single frontend with one window is connected to the backend

websocket.verbose=false

Setting the parameter blow to true logs m&c connect/disconnect events.

websocket.logConnected=false

Setting the parameter below to true logs the oauth2 authentication process for every API call in detail.

oauth2.verbose=false

The parameter below controls logging for LDAP logins. Please note that this setting expects 'yes' to be activated.

ldap.verbose=no