Config Reference

Every field in wardline.yaml, grouped by section. Config maps 1:1 to this shape (internal/platform/config/config.go).

Top level

FieldTypePurpose
listenstringAddress Wardline binds to, e.g. 0.0.0.0:8080.
upstreamstringUpstream MCP server URL.
policy_filestringPath to the policy file.
policy_backendstringyaml (default), opa, or cedar.
grpc_listenstringhost:port for the gRPC listener — required when features.grpc_transport is true. See gRPC Transport.
grpc_upstreamstringUpstream gRPC target (host:port, plaintext) — required when features.grpc_transport is true.
shutdown_delay_secondsintHow long a replica keeps serving requests normally after receiving SIGTERM/SIGINT before it begins its own drain sequence. Zero (the default) preserves current shutdown behavior exactly: draining begins the instant the signal arrives. An in-process substitute for a Kubernetes preStop hook — see High Availability.
featuresmap[string]boolFeature flags — see each feature’s own page.

audit

FieldTypePurpose
outputstringstdout or a file path.
postgres_dsnstringOnly used when features.postgres_storage is true.
retention_daysintAge past which audit entries are purged by the retention job. Only meaningful when features.log_retention is true; see retention.

budget

FieldTypePurpose
requests_per_windowintSee Budget Enforcement.
window_secondsintWindow length in seconds.

tracing

FieldTypePurpose
otlp_endpointstringhost:port, no scheme.
service_namestringDefaults to "wardline".

credential

FieldTypePurpose
identities_filestringPath to the identities file.
signing_key_filestringOptional PEM RSA key path — see HA Deployment.

rbac

FieldTypePurpose
config_filestringPath to the roles/bindings file.

anomaly

FieldTypePurpose
outputstringAnomaly log output.
buffer_capacityintRing buffer size.
gc_interval_secondsintState garbage-collection interval.
window_secondsintDetection window.
rate_spike.enabled / .rate_multiplier / .min_callsbool/float/intRate-spike heuristic.
novel_tool.enabledboolNovel-tool heuristic.
deny_rate_spike.enabled / .threshold / .min_callsbool/float/intDeny-rate-spike heuristic.
ml_score.enabled / .score_threshold / .min_callsbool/float/intCombined z-score heuristic (min_calls must be ≥ 2). See Anomaly Detection.
auto_block.enabled / .score_threshold / .block_duration_secondsbool/float/intRejects a flagged identity’s calls for a bounded TTL. Requires ml_score.enabled.
retention_daysintAge past which anomaly-log entries are purged. Only meaningful when features.log_retention is true.

scim

FieldTypePurpose
bearer_token_envstringEnv var holding the SCIM bearer token (never inline) — required when features.scim is true. See SCIM.
persist_postgresboolPersist provisioned group→member bindings in Postgres (requires features.postgres_storage). Default in-memory.

federation

Only meaningful when features.federation is true (which itself requires features.anomaly_detection). See Federation.

FieldTypePurpose
instance_idstringUnique instance identifier. Defaults to os.Hostname() — set explicitly when co-locating instances.
peers_filestringPath to the peers file (id, endpoint, public_key_file per peer) — required.
signing_key_filestringPEM RSA private key this instance signs its summaries with — required.
shared_secret_filestringShared secret (byte-identical across peers) for pseudonymizing fingerprints — required.
publish_interval_secondsintHow often signed anomaly summaries are published to peers.
min_instances_for_correlationintDistinct instances that must see a fingerprint before an alert (must be ≥ 2).
correlation_window_secondsintWindow over which fingerprints from peers are correlated.
gc_interval_secondsintStale correlation-state eviction interval.

compliance

Only meaningful when features.compliance_scheduled_export is true. See Compliance Evidence Export.

FieldTypePurpose
scheduled_export_interval_secondsintHow often a scheduled evidence bundle is exported.
scheduled_export_output_dirstringDirectory each tick’s bundle is written to — required when the flag is on.
signing_key_filestringOptional PEM RSA private key to sign each scheduled bundle. "" (default) produces unsigned bundles.

retention

Only meaningful when features.log_retention is true. A single shared cadence for both the audit and anomaly retention checks (whichever of audit.retention_days / anomaly.retention_days is non-zero).

FieldTypePurpose
check_interval_secondsintHow often the retention purge job runs.