Skip to content

Engine Configuration

engine.yaml is the sole configuration surface for an engine — no code changes needed to add a new variant or adjust parameter handling. For the crate structure and how to build a custom engine binary, see Engine Internals.

Starting an Engine

bash
metis-engine-generic server --engine-config /etc/metis/engine-config.yaml

Set the three required environment variables:

bash
DATABASE_URL=postgres://user:pass@host:5432/metis
REDIS_URL=redis://:pass@host:6379
NATS_URL=nats://user:pass@host:4222

Parameter Fields Reference

FieldTypeRequiredDescription
names[string]yesAll accepted aliases. First is canonical.
cliFlagstringyesFlag written to the CLI command
typestringyesstring, int, bool, list
defaultanynoValue used when client omits the parameter
strictDefaultboolnoIf true, always use default, ignore client value
requiredboolnoReject run if missing and no default
listSeparatorstringnoSeparator for list type (default ,)
booleanStylestringnoflag (presence) or value (-flag true)
sensitiveboolnoRedact value from logs; pass via envVar
envVarstringnoEnvironment variable to set (requires sensitive: true)
validate[ValidationSpec]noList of validation rules

Validation Types

TypeFieldsDescription
enumallowed: [string], messageValue must be in allowed list
regexpattern: string, messageValue must match regex
rangemin: int, max: intNumeric value must be within range
file_existsFile must exist on the engine host filesystem
file_extensionallowed: [string]File path must end with one of the allowed extensions

Denied Parameters

Denied params are evaluated against the raw keys sent by the client before alias resolution.

FieldValuesDescription
patternstringThe pattern to match against
typeexact, regexMatch mode
reasonstringError message returned to client

workflowParams Methods

MethodBehaviour
inlineParameters appended directly to the CLI command as flags
fileParameters written to a temporary params file; path substituted into {workflow_params} in the command template

Registering a New Engine

The engine registers its heartbeat in Valkey and appears in GET /service-info. Submit runs using a workflow_engine that matches engine.name. For custom parsing or log handling, implement the Engine trait and build a custom binary. See Engine Internals → Adding a Custom Engine.

Proprietary software. All rights reserved.