Skip to content

ChainGraph API Documentation / @badaitech/chaingraph-executor / server / config

Variable: config

const config: object

Defined in: packages/chaingraph-executor/server/utils/config.ts:17

Type Declaration

authConfig

authConfig: AuthConfig

database

database: object

database.url_executions

url_executions: string

database.url_main

url_main: string

dbos

dbos: object

dbos.adminServer

adminServer: object

DBOS Admin Server Configuration The admin server provides a management interface for DBOS workflows Set port to null/undefined to disable the admin server

dbos.adminServer.enabled

enabled: boolean

dbos.adminServer.port

port: number

dbos.applicationName

applicationName: string

Application Name for DBOS client identification Used in logging and monitoring on the DBOS server side

dbos.conductorKey

conductorKey: string | undefined

DBOS Conductor Key for authenticating with DBOS server If not set, assumes DBOS is running in "embedded" mode within this process In production, it's recommended to run a separate DBOS server and set this key

dbos.conductorURL

conductorURL: string | undefined

DBOS Conductor URL for connecting to a remote DBOS server If not set, assumes DBOS is running in "embedded" mode within this process In production, it's recommended to run a separate DBOS server and set this URL

dbos.enabled

enabled: boolean

Enable DBOS-based execution (recommended for production) When enabled, uses DBOS Durable Queues and workflows for execution When disabled, falls back to local in-memory mode (development only)

dbos.queueConcurrency

queueConcurrency: number

Global concurrency limit across all workers Maximum number of executions running simultaneously across the entire cluster

dbos.systemDatabasePoolSize

systemDatabasePoolSize: number

Connection pool size for DBOS system database Adjust based on expected concurrency and database capacity

dbos.systemDatabaseUrl

systemDatabaseUrl: string

Database URL for DBOS system tables Defaults to the main executions database

dbos.workerConcurrency

workerConcurrency: number

Per-worker concurrency limit Maximum number of executions running simultaneously on a single worker process Should be lower than global concurrency to allow load distribution

execution

execution: object

execution.maxChildrenPerParent

maxChildrenPerParent: number

Maximum number of children a single execution can spawn (width limit) This prevents "horizontal" explosion where one execution emits thousands of events Default: 100 (allows up to 100 child executions per parent on the same level) Example attack without this: 1 parent → 10,000 children at same depth

execution.maxDepth

maxDepth: number

Maximum execution depth to prevent infinite subflow loops When a parent execution spawns child executions (via Event Emitter nodes), this limit prevents infinite recursion by stopping after N levels of nesting Default: 100 (allows up to 100 levels of nested subflows)

logging

logging: object

logging.level

level: string

logging.pretty

pretty: boolean

metrics

metrics: object

metrics.batchSize

batchSize: number

metrics.enabled

enabled: boolean

metrics.flushInterval

flushInterval: number

metrics.includeMemoryMetrics

includeMemoryMetrics: boolean

metrics.logLevel

logLevel: "info" | "debug" | "warn"

metrics.sampling

sampling: { enabled: boolean; rate: number; } | undefined

mode

mode: ExecutionMode

recovery

recovery: object

recovery.enabled

enabled: boolean

recovery.maxFailureCount

maxFailureCount: number

recovery.scanIntervalMs

scanIntervalMs: number

worker

worker: object

worker.claimExpirationCheckIntervalMs

claimExpirationCheckIntervalMs: number

worker.claimTimeoutMs

claimTimeoutMs: number

worker.concurrency

concurrency: number

worker.heartbeatIntervalMs

heartbeatIntervalMs: number

worker.id

id: string

Licensed under BUSL-1.1