一键导入
iii-engine-config
// Configures the iii engine via iii-config.yaml — workers, adapters, queue configs, ports, and environment variables. Use when deploying, tuning, or customizing the engine.
// Configures the iii engine via iii-config.yaml — workers, adapters, queue configs, ports, and environment variables. Use when deploying, tuning, or customizing the engine.
Browser SDK for connecting to the iii engine from web applications via WebSocket. Use when building browser-based clients that register functions, invoke triggers, or consume streams from the frontend.
Binary streaming between workers via channels. Use when building data pipelines, file transfers, streaming responses, or any pattern requiring binary data transfer between functions.
Registers cron triggers with 7-field expressions to run functions on recurring schedules. Use when scheduling periodic jobs, timed automation, crontab replacements, cleanup routines, report generation, batch processing, or calendar-based work that is genuinely time-driven.
Builds custom trigger types for events iii does not handle natively. Use when integrating webhooks, file watchers, IoT devices, database CDC, or any external event source.
Handle iii engine and SDK errors across Node, Python, Rust, and browser workers. Use when interpreting error codes, retryability, RBAC denial, timeouts, handler failures, or SDK-specific exception surfaces.
Registers functions and triggers on the iii engine across TypeScript, Python, and Rust. Use when creating workers, registering function handlers, binding triggers, or invoking functions across languages.
| name | iii-engine-config |
| description | Configures the iii engine via iii-config.yaml — workers, adapters, queue configs, ports, and environment variables. Use when deploying, tuning, or customizing the engine. |
Comparable to: infrastructure as code, worker manifests, runtime policy config
Use the concepts below when they fit the task. Not every deployment needs all workers or adapters.
${VAR:default} syntax (default is optional)iii worker CLIThe engine loads YAML config at startup, expands environment variables, initializes modules and built-in daemons, opens configured ports, starts the worker manager, then installs or starts managed workers. SDK workers connect over WebSocket; registry-managed binary and OCI workers can be reproduced from iii.lock.
| Worker / Config | Purpose |
|---|---|
iii-http | HTTP API server (port 3111) |
iii-stream | WebSocket streams (port 3112) |
iii-state | Persistent key-value state storage |
iii-queue | Background job processing with retries |
iii-pubsub | In-process event fanout |
iii-cron | Time-based scheduling |
iii-sandbox | MicroVM command/filesystem isolation |
shell | Controlled host/sandbox command and file tools |
iii-directory | Engine/registry/skills discovery |
iii-observability | OpenTelemetry traces, metrics, logs |
iii-http-functions | Outbound HTTP call security |
iii-exec | Spawn external processes |
iii-bridge | Distributed cross-engine invocation |
iii-telemetry | Anonymous product analytics |
iii-worker-manager | Worker connection lifecycle and RBAC listeners |
iii-worker-ops | Worker lifecycle operations |
iii-engine-functions | Built-in engine functions |
iii.lock | Reproducible managed-worker lockfile |
iii worker sync --frozen | Verify lockfile without mutation |
See ../references/iii-config.yaml for the full working example — a complete engine configuration with all workers, adapters, queue configs, and environment variable patterns.
Code using this pattern commonly includes, when relevant:
iii --config ./config.yaml — start the engine with a config filedocker pull iiidev/iii:latest — pull the Docker imagestore_method: file_based with file_path: ./data/...redis_url: ${REDIS_URL}amqp_url: ${AMQP_URL} and queue_mode: quorumqueue_configs with max_retries, concurrency, type, backoff_ms per queue nameport: ${III_PORT:49134}curl http://127.0.0.1:3111/healthiii-worker-manager with listener host, port, middleware_function_id, and rbaciii-observabilityWorkers use name: and optional config::
workers:
- name: iii-http
config:
port: 3111
host: 127.0.0.1
- name: iii-state
config:
adapter:
name: kv
config:
store_method: file_based
file_path: ./data/state_store.db
- name: iii-queue
config:
adapter:
name: builtin
config:
store_method: file_based
file_path: ./data/queue_store
- name: iii-stream
config:
port: 3112
host: 127.0.0.1
adapter:
name: kv
config:
store_method: file_based
file_path: ./data/stream_store
- name: iii-cron
config:
adapter:
name: kv
- name: iii-pubsub
config:
adapter:
name: local
- name: iii-observability
config:
enabled: true
service_name: my-service
exporter: memory
sampling_ratio: 1.0
metrics_enabled: true
logs_enabled: true
- name: iii-sandbox
config:
auto_install: true
image_allowlist:
- python
- node
iii worker add NAME[@VERSION].ghcr.io/org/worker:tag.iii.lock records resolved binary artifacts or OCI image digests for reproducible installs.iii.lock with config. Use iii worker verify in CI and iii worker sync after cloning.iii-worker-lifecycle and iii-worker-lockfile for command-level guidance.iii-worker-manager listener.auth_function_id returns allowed and forbidden functions, trigger type permissions, registration permission, registration prefix, and context.forbidden_functions override exposure filters.iii-worker-rbac for policy examples and agent behavior.Use the adaptations below when they apply to the task.
iii worker add to add registry-managed workers, then commit both config and iii.lockmax_retries and backoff_ms based on your failure tolerance and SLA requirementsiii-observability with your collector endpoint and sampling ratiohost: 127.0.0.1 instead of host: localhost to avoid IPv4/IPv6 mismatches on macOSiii-http-endpoints.iii-queue-processing.iii-cron-scheduling.iii-observability.iii-realtime-streams.iii-worker-lifecycle.iii-worker-catalog.iii-worker-lockfile.iii-worker-rbac.iii-engine-config when the primary problem is configuring or deploying the engine itself.iii-engine-config in the iii engine.