ChainGraph API Documentation / @badaitech/chaingraph-executor / server / config
Variable: config
constconfig: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