Skip to content

Configuration Reference

All configuration is via environment variables, loaded from .env at startup via python-dotenv.


Required

Variable Type Description
URL_BLACKBOARD str Base URL of the workflow engine blackboard API (e.g., http://localhost:3030)
DIR_FUNCTION_BLOCKS str Comma-separated list of directories to scan for function block modules

Worker Identity

Variable Type Default Description
WORKER_NAME str None Human-readable name for this worker instance (appears in engine UI)
WORKER_IP_ADDRESS str None IP address reported to the workflow engine

Timing

Variable Type Default Description
POLL_INTERVAL int 10 Seconds between job polling requests
HEARTBEAT_INTERVAL int 20 Seconds between heartbeat pings
SHUTDOWN_TIMEOUT int 60 Seconds to wait for a running job during graceful shutdown
API_REQUEST_TIMEOUT int 30 Timeout in seconds for individual API requests

Diagnostics

Variable Type Default Description
BLOCKING_DETECTION_THRESHOLD float 0.5 Seconds of blocking before a warning is logged. Set to 0 to disable.

Testing

Variable Type Default Description
REMOTE_LAB_URL str (unset) Base URL of the remote lab server for integration tests

CMS / GraphQL

CMS & GraphQL

The CMS provides entity data that function blocks access through WorkflowContext. CMS documentation is forthcoming. See the Glossary for a conceptual overview and the engine's Context concept for how entity data flows into function blocks.

Variable Type Default Description
URL_GRAPHQL str None GraphQL endpoint of the neops CMS (used for data queries)

Example .env

# Required
URL_BLACKBOARD=http://localhost:3030
DIR_FUNCTION_BLOCKS=./my_function_blocks

# Worker identity
WORKER_NAME=lab-worker-01
WORKER_IP_ADDRESS=10.0.0.50

# Timing (optional — defaults are sensible for most deployments)
POLL_INTERVAL=10
HEARTBEAT_INTERVAL=20
SHUTDOWN_TIMEOUT=60

# Diagnostics
BLOCKING_DETECTION_THRESHOLD=0.5

# CMS
URL_GRAPHQL=http://localhost:8000/graphql