Configuration

Location to config file

Docker

Note

This file needs to be edited before running the make commands.

<path to source root>/docker/engine.conf.inc

Manual

Note

Need to restart each scoring engine service once the config is modified.

/home/engine/scoring_engine/src/engine.conf

Configuration Keys

Note

Each of these config keys can be expressed via environment variables (and take precendence over the values defined in the file). IE: To define target_round_time, I’d set SCORINGENGINE_TARGET_ROUND_TIME=3.

Key Name

Description

checks_location

Local path to directory of checks

target_round_time

Length of time (seconds) the engine should target per round

agent_psk

The pre-shared key used for encryption between BTA and the Scoring Engine

agent_show_flag_early_mins

The length of time in minutes before a flag becomes active that BTA can grab the flag details

worker_refresh_time

Amount of time (seconds) the engine will sleep for in-between polls of worker status

worker_num_concurrent_tasks

The number of concurrent tasks the worker will run. Set to -1 to default to number of processors.

worker_queue

The queue name for a worker to pull tasks from. This can be used to control which workers get which service checks. Default is ‘main’

blue_team_update_hostname

A boolean indicating if blue teams should be allowed to update the hostnames associated for scored checks

blue_team_update_port

A boolean indicating if blue teams should be allowed to update the port associated for scored checks

blue_team_update_account_usernames

A boolean indicating if blue teams should be allowed to change usernames associated with scored checks

blue_team_update_account_passwords

A boolean indicating if blue teams should be allowed to change passwords of scored users

blue_team_view_check_output

A boolean indicating if blue teams should be allowed to view verbose output from checks

timezone

Local timezone of the competition

debug

Determines wether or not the engine should be run in debug mode (useful for development). The worker will also display output from all checks.

db_uri

Database connection URI

cache_type

The type of storage for the cache. Set to null to disable caching

redis_host

The hostname/ip of the redis server

redis_port

The port of the redis server

redis_password

The password used to connect to redis (if no password, leave empty)

sla_enabled

A boolean to enable/disable SLA penalties for consecutive service failures

sla_penalty_threshold

Number of consecutive failures before penalties begin (default: 5)

sla_penalty_percent

Penalty percentage per failure after threshold (default: 10)

sla_penalty_max_percent

Maximum total penalty percentage cap (default: 50)

sla_penalty_mode

Penalty calculation mode: additive, flat, exponential, or next_check_reduction

sla_allow_negative

A boolean to allow scores to go negative from penalties

dynamic_scoring_enabled

A boolean to enable/disable time-based scoring multipliers

dynamic_scoring_early_rounds

Number of rounds in the early phase (default: 10)

dynamic_scoring_early_multiplier

Points multiplier for early phase (default: 2.0)

dynamic_scoring_late_start_round

Round number when late phase begins (default: 50)

dynamic_scoring_late_multiplier

Points multiplier for late phase (default: 0.5)