CBOM Documentation

CBOM Secure

  • Product Overview
    • Overview
    • Dashboard Interface
    • Dashboard Operations
    • Data Visualization
    • Overview
    • Host
    • Template
      • Networked Deployments
      • Cloud Deployments
      • Off-Grid Deployments
    • Discovery History
      • Tags
      • Tag Scope
      • Integrations
      • Cloud Servers
      • CycloneDX Export
    • Sensors Reference
    • Overview
    • Summary Report
    • PQC Report
    • AI Services
    • Source Code Visualizer
    • Key
    • Certificate
    • CipherSuites
    • Analysis
    • Policy Management
    • User Policy
    • Standard Policy
    • Overview
    • Cases
    • Criteria
    • Notification Format
    • Rules
      • Connections
      • Health
    • User Management
    • Roles & Permissions
    • Audit Trail
    • System Logs
    • Top Bar and User Menu
    • System Configuration
  • Login and Authentication
    • Introduction
      • Components
      • Data Flows
      • Execution Models
      • Incremental Scanning
      • Security Model
      • Topologies
      • Sizing Guide
      • HA and Scaling
      • Ports and Firewall
      • Prerequisites
      • Docker Compose
      • Native on Linux
      • Deployment Server
      • Install Troubleshooting
      • Validation Checklist
      • Managing Services
      • Logging
      • Certificates
      • Configuration
      • Backup and Recovery
      • Ops Troubleshooting
      • Methods
      • SAML 2.0 SSO
      • OIDC and Entra ID
      • Token Authentication
      • Password Policy
      • Sensor vs Connector
      • Sensor Guide Structure
      • Capability Matrix
      • GitHub Sensor
        • AWS
        • Azure
        • Google Cloud
        • Active Directory
        • LDAP Directories
        • AD CS
        • Thales Luna HSM
        • Entrust nShield HSM
        • HashiCorp Vault KMIP
        • Windows Cert Store
        • Linux Trust Store
        • MSSQL TDE
      • Roadmap
      • Integration Model
      • CrowdStrike
      • ServiceNow
      • ServiceNow and Jira Setup
      • Notification Engine
  • Administrative Guide
    • Glossary
    • Configuration Reference
    • Data Model Reference
    • API Reference
    • API Authentication
    • CycloneDX Export Specification
    • Risk and PQC Scoring
    • Built-in Standards
    • Widget Catalogue
    • AI Services Data Handling

Configuration Reference

Every setting CBOM Secure reads at runtime, where it comes from, and what happens when it changes. This page is the reference companion to the Configuration page in the System Administration part, which explains the configuration model; this page lists the keys.

How configuration reaches a service

CBOM Secure holds its configuration in the database, not in files. The YAML files on disk are build products: on every configuration save, on activation and at startup, the platform writes the stored configuration out to the files each service reads.

Hand-edited YAML is overwritten. Because regeneration is wholesale, a section added by hand to a generated YAML file is removed the next time configuration is saved, and nothing reports the loss. Change configuration through System Configuration or the configuration API, never by editing the generated files.

Two documents hold everything:

DocumentHolds
Values documentThe configuration values themselves. This is the single document fanned out to the per-service files.
Form documentThe System Configuration page's field definitions. Each field names the value it edits.

In a container deployment the first-start values come from environment variables, substituted into the configuration templates by each service's entrypoint. After first start, the database is authoritative and the environment variables are no longer consulted for those keys — change them in System Configuration.

Environment variables

Set in the deployment environment file before first start. Values marked secret must be generated per environment and must never be committed to source control.

Database
VariablePurposeSecretDefault
MONGO_ROOT_USERDatabase administrative accountroot
MONGO_ROOT_PASSWORDDatabase administrative passwordYes—
MONGO_DBOperational database nameCBOMData
MONGO_AUDIT_DBAudit and history database name, on the same clusterCBOMAudit
MONGO_HOST_PORTHost binding for the database port127.0.0.1:27017

MONGO_HOST_PORT is a security control. The default binds the database to loopback, so only the server itself can connect; reach it from a workstation with an SSH tunnel. Setting 0.0.0.0:27017 exposes the entire database to the network with the root password as the only thing in front of it.

Ingestion broker
VariablePurposeSecretDefault
RABBITMQ_HOSTBroker address used by the platform servicesrabbitmq
RABBITMQ_PORTBroker port used by the platform services5672
RABBITMQ_USERBroker account the services and agents authenticate withcbom
RABBITMQ_PASSWORDPassword for that accountYes—
RABBITMQ_VHOSTBroker virtual host/
RABBITMQ_TLSEnable AMQPSfalse
RABBITMQ_AGENT_HOSTBroker address written into every deployed agent's configuration—
RABBITMQ_AGENT_PORTBroker port written into every deployed agent's configuration5672
RABBITMQ_HOST_PORTHost binding for the broker port5672
RABBITMQ_MGMT_USERManagement portal account, separate from the broker accountcbom-portal
RABBITMQ_MGMT_PASSWORDManagement portal passwordYes—

Keep the portal login distinct from the broker login. The broker credential ships in plaintext inside the configuration file on every host an agent is deployed to, and it carries the administrator tag. Anyone holding a deployed agent's configuration can therefore administer the broker. Leave both management variables blank to create no portal account at all.

Application
VariablePurposeSecretDefault
FLASK_SECRET_KEYSession signing key; 64 random charactersYes—
DEPLOYMENT_SECRET_KEYCredential encryption key; must be a valid Fernet keyYes—
PUBLIC_BASE_URLPublic address of the deploymenthttps://localhost
CBOM_SERVER_URLBackend address, public-facinghttps://localhost/cbomsrv
FRONTEND_URLConsole addresshttps://localhost
VITE_BACKEND_URLAPI base the console callshttps://localhost/cbomsrv/api/v1
CBOM_SERVER_ORIGINBackend origin, for the Content-Security-Policy allowlist—
AI_SERVICE_ORIGINAI service origin, for the Content-Security-Policy allowlist—
DOCKER_MODEMarks containerised executiontrue in containers
Identity
VariablePurposeSecretDefault
KEYCLOAK_URLIdentity provider address used server-to-serverhttps://keycloak:8443/auth/
KEYCLOAK_PUBLIC_URLIdentity provider address the browser is redirected tohttps://localhost/auth/
KEYCLOAK_REALMRealm name—
KEYCLOAK_CLIENT_IDOIDC client identifier—
KEYCLOAK_CLIENT_SECRETOIDC client secretYes—
KC_ADMIN_USERIdentity provider administrative accountadmin
KC_ADMIN_PASSWORDIdentity provider administrative passwordYes—
KEYCLOAK_SA_USERNAMEBackend service account, seeded by the realm importcbom-service
KEYCLOAK_SA_PASSWORDBackend service account passwordYes—

Both identity URLs must keep the /auth suffix. The identity provider is served under that sub-path, and dropping it from either address breaks the sign-in redirect in a way that reports only a generic failure.

Federated sign-in
VariablePurposeSecretDefault
AZURE_IDP_ENABLEDEnables the Microsoft sign-in optionfalse
AZURE_TENANT_IDEntra ID directory identifiercommon
AZURE_CLIENT_IDApplication registration identifier—
AZURE_CLIENT_SECRETApplication registration secretYes—
First administrator
VariablePurposeSecretDefault
INITIAL_ADMIN_MODEcreate provisions an administrator at first start; skip does nothingskip
INITIAL_ADMIN_USERNAMEAccount name—
INITIAL_ADMIN_EMAILAccount email—
INITIAL_ADMIN_FIRST_NAMEGiven name—
INITIAL_ADMIN_LAST_NAMEFamily name—
INITIAL_ADMIN_PASSWORDInitial passwordYes—

With INITIAL_ADMIN_MODE=skip, the first administrator is instead created by promoting a user after their first federated sign-in. Choose that path for organisations that do not want a password account to exist at all. The bootstrap is idempotent either way: it does nothing if an administrator already exists.

Agent-facing addresses

These three values are written into the configuration of every deployed agent, so each must resolve from the target machine — not from inside the platform network, and not from the platform host.

VariablePurposeDefault
COLLECTOR_SERVER_URLResult submission addresshttps://localhost/collector
RABBITMQ_AGENT_HOSTBroker address for result publication—
CBOM_SERVER_URLBackend address; also serves the sign-in redirectshttps://localhost/cbomsrv

A loopback value here names the agent, not the platform. The deployment reports success, the scan runs, and the results are never delivered. Replace localhost with an address the targets can actually reach before deploying to anything other than the platform host itself.

AI services
VariablePurposeSecretDefault
AI_PROVIDERModel provider: anthropic, openai, google, groq, ollama or lmstudioanthropic
AI_MODELModel identifier—
AI_API_KEYProvider API keyYes—
OLLAMA_BASE_URLLocal provider address; ignored for hosted providers—
LMSTUDIO_BASE_URLLocal provider address; ignored for hosted providers—

Without an API key the service starts and the page loads, but questions fail at the provider. These values seed the first start only; change them in System Configuration afterwards. See the AI Services Data Handling page for what leaves the deployment boundary under each provider setting.

Discovery and observability
VariablePurposeDefault
LOCAL_DISCOVERY_URLAddress of the bundled discovery server, when the stack runs onehttp://discovery-server:5002
OTLP_ENDPOINTTelemetry collector addressotel-collector:4317
GRAFANA_ADMIN_USERTelemetry dashboard administrative accountadmin
GRAFANA_ADMIN_PASSWORDTelemetry dashboard administrative password — required—
CBOM_SCHEDULER_ENABLEDEnables the scheduled-task runnerunset

GRAFANA_ADMIN_PASSWORD has no safe default. The telemetry dashboard is routed publicly, so without this value the stack would come up reachable on a well-known default credential.

Settings changed after installation

The following are edited in System Configuration rather than in the environment file. Each is stored in the values document and fanned out to the services that read it.

AreaWhat it controls
SessionSession lifetime and the interval of the expiry sweep.
LoggingLog level per domain, handler destinations and file paths.
DeploymentThe collector address written into agent configuration, and remote-delivery timeouts.
DiscoveryRegistered discovery servers and their addresses.
AI serviceProvider, model, API key, response detail and topic-guard behaviour.
InterfaceConsole defaults, help and support links.
BrokerIngestion broker address, credentials and virtual host.

Two settings are deliberately not exposed in System Configuration:

SettingWhy it is not editable from the console
Authorisation modeIt governs the permission check that protects the System Configuration page itself. A page that authorisation protects must not be able to switch authorisation off.
Broker TLSEnabling it would move the platform to AMQPS while every already-deployed agent stayed on plain AMQP, so result publication would stop silently until someone read an agent log. Broker TLS is delivered together with the per-host client certificates that make it worth having.

Restart behaviour

ChangeEffect
Any value saved in System ConfigurationWritten to the database, fanned out to the service files, and the affected service restarted by the configuration watcher.
Log level and handler changesApplied on the affected service's restart.
Agent-facing addressesApplied to newly deployed agents. Already-deployed agents keep the address they were built with; redeploy the task to update them.
Environment file changes after first startNot consulted for keys the database already holds. Change those in System Configuration instead.

Files written

For reference when diagnosing a deployment. These are outputs; do not edit them.

FileRead by
Root configurationEvery service, for shared database and identity settings
Backend service configurationThe API and analysis service
Collector service configurationThe ingestion service
Discovery server configurationThe discovery service
Console configurationThe console's runtime settings
AI service configurationThe AI service

Configuration destined for the console and the AI service is written unwrapped — its contents go to the top level of the target file rather than under a section key, because that is what those services read. A configuration file that parses cleanly but in which a service finds none of its settings is the symptom of that distinction being lost.

On this Page:
Support Privacy Policy Terms of Service

Copyright 2026 Encryption Consulting LLC. All rights reserved.