For AI agents: the complete documentation index is available at /en/llms.txt, the full documentation bundle is available at /en/llms-full.txt, and this page is available as Markdown at /en/guide/config.md.
  • English
  • Configuration

    On first start, each service creates missing config files with built-in defaults and a $schema field for IDE hover docs.

    The workspace .vscode/settings.json maps schemas by filename; you can also rely on in-file $schema pointing at @sfmc-bds/sdk/schemas/*.schema.json.

    Platform configs

    FilePurpose
    db_config.jsondb-server port, data paths, modules directory, etc.
    qq_config.jsonQQ bridge (official bot / LLBot)
    bds_updater.jsonBDS updates and backups
    pack-update.jsonCurseForge add-on updates (see Add-ons)
    log-filter.jsonLog filtering
    permissions.jsonPermission table
    packs/pack-sources.jsonAdd-on update source bindings

    Module configs

    Each module declares configKey in sapi/manifest.json, mapped to configs/<configKey>.json. The module package supplies defaults in configs-default/<configKey>.json; install, update, and link operations create the working configuration or recursively add missing fields without overwriting existing user values. Runtime reads and writes go through @sfmc-bds/sdk/sapi/config (HTTP: /api/sfmc/configs/:configKey), separate from platform ConfigName.

    At SAPI startup, GET /api/sfmc/configs/all once loads and caches the platform domain: modules, settings, permissions (and module_tokens). Module-private JSON is not in that cache; use config.get / config.set on demand. Runtime set writes back immediately.

    Important

    After editing platform configs/*.json (or module config files without config.set), restart BDS. After module enable/disable writes module-lock.json, you usually need mod reload or a BDS restart for the behavior pack to catch up.

    Module state files

    FileDescription
    modules/catalog.jsonInstalled module catalog (local mirror)
    modules/module-lock.jsonPer-module enabled state