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
# RequiredURL_BLACKBOARD=http://localhost:3030
DIR_FUNCTION_BLOCKS=./my_function_blocks
# Worker identityWORKER_NAME=lab-worker-01
WORKER_IP_ADDRESS=10.0.0.50
# Timing (optional — defaults are sensible for most deployments)POLL_INTERVAL=10HEARTBEAT_INTERVAL=20SHUTDOWN_TIMEOUT=60# DiagnosticsBLOCKING_DETECTION_THRESHOLD=0.5
# CMSURL_GRAPHQL=http://localhost:8000/graphql