Application Configuration

JSON Schema for application configuration

Server

Schema Definition
ServerConfig contains HTTP server configuration.
host
string

Host specifies the network interface to bind the server to.

Common values:

  • "0.0.0.0": Listen on all interfaces (default)
  • "127.0.0.1" or "localhost": Local access only
  • Specific IP: Bind to a specific network interface
port
integer

Port specifies the TCP port for the HTTP server.

Valid range: 1-65535. Common ports:

  • 8080: Default development port
  • 80: Standard HTTP (requires privileges)
  • 443: Standard HTTPS (requires privileges)
cors_enabled
boolean

CORSEnabled enables Cross-Origin Resource Sharing headers.

Set to true when the API is accessed from web browsers on different origins.

cors
object

CORS configures Cross-Origin Resource Sharing policies.

Only applies when CORSEnabled is true.

timeout
integer

Timeout sets the maximum duration for processing requests.

Applies to all HTTP operations including request reading, processing, and response writing. Default: 30s. Increase for long-running operations.

auth
object

Auth configures API authentication settings.

CLI

Schema Definition
CLIConfig contains CLI-specific configuration.
APIKey
string

APIKey authenticates CLI requests to the Compozy API.

Security: Always use environment variables for API keys. Never commit API keys to version control.

BaseURL
string

BaseURL specifies the Compozy API endpoint.

Default: "https://api.compozy.com" Use custom endpoints for self-hosted or development environments.

ColorMode
string

ColorMode controls terminal color output.

Options:

  • "auto": Detect terminal color support (default)
  • "on": Force color output
  • "off": Disable all color output
ConfigFile
string

ConfigFile specifies a custom configuration file path.

Default: "./compozy.yaml" or "~/.compozy/config.yaml"

Debug
boolean

Debug enables verbose debug logging.

Shows detailed API requests, responses, and internal operations.

DefaultFormat
string

DefaultFormat sets the default output format.

Options:

  • "json": JSON format for programmatic consumption
  • "tui": Terminal UI with tables and formatting (default)
  • "auto": Automatically detect based on terminal capabilities
EnvFile
string

EnvFile specifies a .env file to load environment variables from.

Variables in this file are loaded before processing configuration.

Interactive
boolean

Interactive enables interactive prompts and confirmations.

Default: true Set to false for non-interactive environments.

Mode
string

Mode controls the CLI execution behavior.

Available modes:

  • "normal": Standard interactive mode (default)
  • "batch": Non-interactive batch processing
  • "script": Optimized for scripting (minimal output)
NoColor
boolean

NoColor disables all color output regardless of terminal support.

Overrides ColorMode when set to true.

OutputFormatAlias
string

OutputFormatAlias allows custom output format aliases.

Used internally for format customization.

PageSize
integer

PageSize sets the number of results per page in list operations.

Default: 50 Range: 1-1000

Quiet
boolean

Quiet suppresses all non-error output.

Useful for scripting and automation.

ServerURL
string

ServerURL overrides the server URL for local development.

This takes precedence over BaseURL when set. Example: "http://localhost:8080" for local server

Timeout
integer

Timeout sets the maximum duration for API requests.

Default: 30s Increase for long-running operations like workflow execution.

Database

Schema Definition
DatabaseConfig contains database connection configuration.
conn_string
string

ConnString provides a complete PostgreSQL connection URL.

Format: postgres://user:password@host:port/database?sslmode=mode Takes precedence over individual connection parameters.

host
string

Host specifies the database server hostname or IP address.

Default: "localhost"

port
string

Port specifies the database server port.

Default: "5432" (PostgreSQL default)

user
string

User specifies the database username for authentication.

password
string

Password specifies the database password for authentication.

Security: Use environment variables in production.

name
string

DBName specifies the database name to connect to.

Default: "compozy"

ssl_mode
string

SSLMode configures SSL/TLS connection security.

Options:

  • "disable": No SSL (development only)
  • "prefer": Try SSL, fallback to non-SSL
  • "require": SSL required (recommended)
  • "verify-ca": SSL with CA verification
  • "verify-full": SSL with full verification
auto_migrate
boolean

AutoMigrate enables automatic database migrations on startup.

When enabled, the system will automatically apply any pending database migrations when establishing a database connection. This eliminates the need for manual migration commands.

Default: true

Temporal

Schema Definition
TemporalConfig contains Temporal workflow engine configuration.
host_port
string

HostPort specifies the Temporal server endpoint.

Format: host:port Default: "localhost:7233"

namespace
string

Namespace isolates workflows within Temporal.

Use different namespaces for:

  • Environment separation (dev, staging, prod)
  • Multi-tenant deployments
  • Workflow versioning Default: "default"
task_queue
string

TaskQueue identifies the queue for workflow tasks.

Workers poll this queue for tasks to execute. Use different queues for:

  • Workflow type separation
  • Priority-based routing
  • Resource isolation Default: "compozy-queue"

Runtime

Schema Definition
Complete runtime configuration for both tool execution and system behavior
async_token_counter_buffer_size
integer

AsyncTokenCounterBufferSize sets the token counter queue size.

Larger buffers handle traffic spikes better but use more memory. Default: 1000

async_token_counter_workers
integer

AsyncTokenCounterWorkers sets the number of token counting workers.

More workers improve throughput for high-volume token counting. Default: 5

bun_permissions
array

BunPermissions defines runtime security permissions for Bun.

Default: ["--allow-read", "--allow-env", "--allow-net"]

dispatcher_heartbeat_interval
integer

DispatcherHeartbeatInterval sets how often dispatchers report health.

Lower values provide faster failure detection but increase load. Default: 5s

dispatcher_heartbeat_ttl
integer

DispatcherHeartbeatTTL sets heartbeat expiration time.

Must be greater than heartbeat interval to handle network delays. Default: 15s (3x interval)

dispatcher_stale_threshold
integer

DispatcherStaleThreshold defines when a dispatcher is considered failed.

Triggers reassignment of dispatcher's workflows. Default: 30s

entrypoint
string

Entrypoint specifies the path to the JavaScript/TypeScript entrypoint file. Overrides global runtime.entrypoint_path setting if specified.

entrypoint_path
string

EntrypointPath specifies the path to the JavaScript/TypeScript entrypoint file.

Default: "./tools.ts"

environment
string

Environment specifies the deployment environment.

Affects:

  • Error verbosity and stack traces
  • Performance optimizations
  • Debug endpoints availability
  • Default timeouts and limits

Values: "development", "staging", "production"

log_level
string

LogLevel controls logging verbosity.

Levels (least to most verbose):

  • "error": Critical errors only
  • "warn": Warnings and errors
  • "info": General operational info (default)
  • "debug": Detailed debugging information
permissions
array

Permissions defines runtime security permissions. Overrides global runtime.bun_permissions setting if specified.

runtime_type
string

RuntimeType specifies the JavaScript runtime to use for tool execution.

Values: "bun", "node" Default: "bun"

tool_execution_timeout
integer

ToolExecutionTimeout sets the maximum time for tool execution.

Prevents runaway tools from blocking workflows. Default: 30s

type
string

Type specifies the JavaScript runtime to use for tool execution. Overrides global runtime.runtime_type setting if specified.

Limits

Schema Definition
LimitsConfig contains system limits and constraints.
max_nesting_depth
integer

MaxNestingDepth limits JSON/YAML structure nesting.

Prevents stack overflow from deeply nested data. Default: 20

max_string_length
integer

MaxStringLength limits individual string values.

Applies to all string fields in requests and responses. Default: 10MB (10485760 bytes)

max_message_content
integer

MaxMessageContent limits LLM message content size.

Prevents excessive API costs and timeouts. Default: 50MB (52428800 bytes)

max_total_content_size
integer

MaxTotalContentSize limits total request/response size.

Prevents memory exhaustion from large payloads. Default: 100MB (104857600 bytes)

max_task_context_depth
integer

MaxTaskContextDepth limits task execution stack depth.

Prevents infinite recursion in workflow execution. Default: 10

parent_update_batch_size
integer

ParentUpdateBatchSize controls database update batching.

Larger batches improve throughput but increase memory usage. Default: 100

Memory

Schema Definition
MemoryConfig contains memory service configuration.
prefix
string

Prefix namespaces memory keys in Redis.

Prevents key collisions when sharing Redis. Default: "compozy:memory:"

ttl
integer

TTL sets memory entry expiration time.

Balances context retention with storage costs. Default: 24h

max_entries
integer

MaxEntries limits memory entries per conversation.

Prevents unbounded memory growth. Default: 100

LLM

Schema Definition
LLMConfig contains LLM service configuration.
proxy_url
string

ProxyURL specifies the MCP proxy server endpoint.

The proxy handles:

  • MCP server connections
  • Tool discovery and routing
  • Protocol translation Default: "http://localhost:6001"
admin_token
string

AdminToken authenticates administrative operations.

Required for:

  • MCP server registration
  • Proxy configuration changes
  • Debug endpoints Security: Use environment variables

Rate Limit

Schema Definition
RateLimitConfig contains rate limiting configuration.
global_rate
object

GlobalRate applies to all requests system-wide.

Protects against total system overload.

api_key_rate
object

APIKeyRate applies per API key.

Ensures fair usage across different clients.

prefix
string

Prefix namespaces rate limit keys in Redis.

Default: "ratelimit:"

max_retry
integer

MaxRetry sets retry attempts for rate-limited requests.

Default: 3

Resources