Configuration reference
XTM Composer uses a layered configuration system with support for YAML files and environment variables. Environment variables override file-based configuration.
Configuration priority
Environment variables (highest priority)
Environment-specific config file (e.g., production.yaml
)
Default config file (default.yaml
)
All environment variables use double underscores (__
) to separate nested configuration levels.
Example: manager.logger.level
becomes MANAGER__LOGGER__LEVEL
Manager
Basic parameters
Parameter
Environment variable
Default value
Description
manager:id
MANAGER__ID
default-manager-id
Unique identifier for this manager instance
manager:name
MANAGER__NAME
Filigran integration manager
Human-readable name for the manager
manager:execute_schedule
MANAGER__EXECUTE_SCHEDULE
10
Interval in seconds between execution cycles
manager:ping_alive_schedule
MANAGER__PING_ALIVE_SCHEDULE
60
Interval in seconds between alive ping messages
manager:credentials_key
MANAGER__CREDENTIALS_KEY
RSA private key content (4096-bit recommended). Use for direct key embedding. One of credentials_key
or credentials_key_filepath
is required
manager:credentials_key_filepath
MANAGER__CREDENTIALS_KEY_FILEPATH
Path to RSA private key file. Takes priority over credentials_key
if both are set. One of credentials_key
or credentials_key_filepath
is required
Logging
Parameter
Environment variable
Default value
Description
manager:logger:level
MANAGER__LOGGER__LEVEL
info
Logging verbosity level (trace
, debug
, info
, warn
, error
)
manager:logger:format
MANAGER__LOGGER__FORMAT
json
Log output format (json
, pretty
)
manager:logger:directory
MANAGER__LOGGER__DIRECTORY
true
Enable logging to directory/file
manager:logger:console
MANAGER__LOGGER__CONSOLE
true
Enable logging to console/stdout
Debug
Parameter
Environment variable
Default value
Description
manager:debug:show_env_vars
MANAGER__DEBUG__SHOW_ENV_VARS
false
Display environment variables at startup (excludes sensitive data)
manager:debug:show_sensitive_env_vars
MANAGER__DEBUG__SHOW_SENSITIVE_ENV_VARS
false
Display sensitive environment variables at startup (tokens, keys, etc.)
Dependencies
OpenCTI
Parameter
Environment variable
Default value
Description
opencti:enable
OPENCTI__ENABLE
true
Enable OpenCTI integration
opencti:url
OPENCTI__URL
http://host.docker.internal:4000
OpenCTI platform URL
opencti:token
OPENCTI__TOKEN
ChangeMe
OpenCTI API authentication token
opencti:unsecured_certificate
OPENCTI__UNSECURED_CERTIFICATE
false
Allow self-signed SSL certificates
opencti:with_proxy
OPENCTI__WITH_PROXY
false
Use system proxy settings for connection
opencti:logs_schedule
OPENCTI__LOGS_SCHEDULE
10
Maximum interval in seconds between log reports
OpenBAS (Coming Soon)
OpenBAS Integration
OpenBAS module is not yet implemented. These configuration options are reserved for future use.
Parameter
Environment variable
Default value
Description
openbas:enable
OPENBAS__ENABLE
false
Enable OpenBAS integration (Coming Soon)
openbas:url
OPENBAS__URL
http://host.docker.internal:4000
OpenBAS platform URL (Coming Soon)
openbas:token
OPENBAS__TOKEN
ChangeMe
OpenBAS API authentication token (Coming Soon)
openbas:unsecured_certificate
OPENBAS__UNSECURED_CERTIFICATE
false
Allow self-signed SSL certificates (Coming Soon)
openbas:with_proxy
OPENBAS__WITH_PROXY
false
Use system proxy settings (Coming Soon)
openbas:logs_schedule
OPENBAS__LOGS_SCHEDULE
10
Log report interval in seconds (Coming Soon)
Orchestration
General settings
Parameter
Environment variable
Default value
Description
{opencti\|openbas}
:daemon:selector
{OPENCTI\|OPENBAS}
__DAEMON__SELECTOR
kubernetes
Container orchestration platform (kubernetes
, docker
, portainer
)
Kubernetes
Parameter
Environment variable
Default value
Description
{opencti\|openbas}
:daemon:kubernetes:image_pull_policy
{OPENCTI\|OPENBAS}
__DAEMON__KUBERNETES__IMAGE_PULL_POLICY
IfNotPresent
Image pull policy (Always
, IfNotPresent
, Never
)
{opencti\|openbas}
:daemon:kubernetes:base_deployment
Not supported for complex objects
Base Kubernetes Deployment manifest template
{opencti\|openbas}
:daemon:kubernetes:base_deployment_json
{OPENCTI\|OPENBAS}
__DAEMON__KUBERNETES__BASE_DEPLOYMENT_JSON
Base Deployment manifest as JSON string
Docker
Parameter
Environment variable
Default value
Description
{opencti\|openbas}
:daemon:docker:network_mode
{OPENCTI\|OPENBAS}
__DAEMON__DOCKER__NETWORK_MODE
bridge
Docker network mode (bridge
, host
, none
, or custom)
{opencti\|openbas}
:daemon:docker:extra_hosts
{OPENCTI\|OPENBAS}
__DAEMON__DOCKER__EXTRA_HOSTS
Additional hosts entries for containers (array)
{opencti\|openbas}
:daemon:docker:dns
{OPENCTI\|OPENBAS}
__DAEMON__DOCKER__DNS
Custom DNS servers for containers (array)
{opencti\|openbas}
:daemon:docker:privileged
{OPENCTI\|OPENBAS}
__DAEMON__DOCKER__PRIVILEGED
false
Run containers in privileged mode
{opencti\|openbas}
:daemon:docker:cap_add
{OPENCTI\|OPENBAS}
__DAEMON__DOCKER__CAP_ADD
Linux capabilities to add (array)
{opencti\|openbas}
:daemon:docker:cap_drop
{OPENCTI\|OPENBAS}
__DAEMON__DOCKER__CAP_DROP
Linux capabilities to drop (array)
{opencti\|openbas}
:daemon:docker:shm_size
{OPENCTI\|OPENBAS}
__DAEMON__DOCKER__SHM_SIZE
Shared memory size in bytes
Portainer
Parameter
Environment variable
Default value
Description
{opencti\|openbas}
:daemon:portainer:api
{OPENCTI\|OPENBAS}
__DAEMON__PORTAINER__API
https://host.docker.internal:9443
Portainer API endpoint URL
{opencti\|openbas}
:daemon:portainer:api_key
{OPENCTI\|OPENBAS}
__DAEMON__PORTAINER__API_KEY
ChangeMe
Portainer API authentication key
{opencti\|openbas}
:daemon:portainer:env_id
{OPENCTI\|OPENBAS}
__DAEMON__PORTAINER__ENV_ID
3
Portainer environment ID
{opencti\|openbas}
:daemon:portainer:env_type
{OPENCTI\|OPENBAS}
__DAEMON__PORTAINER__ENV_TYPE
docker
Portainer environment type (docker
, kubernetes
)
{opencti\|openbas}
:daemon:portainer:api_version
{OPENCTI\|OPENBAS}
__DAEMON__PORTAINER__API_VERSION
v1.41
Docker API version for Portainer
{opencti\|openbas}
:daemon:portainer:stack
{OPENCTI\|OPENBAS}
__DAEMON__PORTAINER__STACK
Portainer stack name for deployment
{opencti\|openbas}
:daemon:portainer:network_mode
{OPENCTI\|OPENBAS}
__DAEMON__PORTAINER__NETWORK_MODE
Network mode for Portainer-managed containers
Environment configuration
Parameter
Environment variable
Default value
Description
-
COMPOSER_ENV
production
Specifies which configuration file to load (e.g., development
, production
)
Complete configuration example
# config/production.yaml
manager :
id : prod-manager-001
name : Production XTM Manager
execute_schedule : 10
ping_alive_schedule : 60
credentials_key_filepath : /keys/private_key_4096.pem
logger :
level : info
format : json
directory : true
console : false
opencti :
enable : true
url : https://opencti.example.com
token : ${OPENCTI_TOKEN} # Reference env variable
unsecured_certificate : false
with_proxy : false
logs_schedule : 10
daemon :
selector : kubernetes
kubernetes :
image_pull_policy : IfNotPresent
openbas :
enable : false # Coming Soon
Security best practices
Never commit credentials : Use environment variables or secure secret management
Use file-based keys : Prefer credentials_key_filepath
over embedding keys
Restrict file permissions : Set key files to 600
permissions
Rotate tokens regularly : Update API tokens periodically
Use TLS/SSL : Always use HTTPS in production
Limit debug output : Disable show_sensitive_env_vars
in production
2025-09-25
2025-09-25
GitHub