Add durable claimable ops_runs table, emit dual-write on TaskSpec, REST claim/lease/complete/fail API, ops status visibility, and consumer docs aligned with ACT-ADR-005. T07 railiance rollout remains deploy-side.
61 lines
3.9 KiB
Text
61 lines
3.9 KiB
Text
# ── Required ──────────────────────────────────────────────────────────────────
|
|
# PostgreSQL connection string for activity-core application data.
|
|
ACTCORE_DB_URL=postgresql+asyncpg://actcore:actcore@app-db:5432/actcore
|
|
|
|
# ── Temporal ──────────────────────────────────────────────────────────────────
|
|
# Temporal frontend gRPC address.
|
|
TEMPORAL_HOST=temporal:7233
|
|
# Temporal namespace (must exist before workers start).
|
|
TEMPORAL_NAMESPACE=default
|
|
|
|
# ── NATS ──────────────────────────────────────────────────────────────────────
|
|
# NATS server URL. JetStream must be enabled (-js flag).
|
|
NATS_URL=nats://nats:4222
|
|
|
|
# ── Service integrations (gracefully degraded if unavailable) ─────────────────
|
|
# State Hub — used by the state-hub context adapter. Binds {} on failure.
|
|
STATE_HUB_URL=http://127.0.0.1:8000
|
|
# Repo scoping — used by the repo-scoping context adapter. Binds {} on failure.
|
|
REPO_SCOPING_URL=http://127.0.0.1:8020
|
|
# Issue Core — task emission backend.
|
|
ISSUE_CORE_URL=http://127.0.0.1:8765
|
|
# Shared ingestion key — must match issue-core's ISSUE_CORE_API_KEY.
|
|
ISSUE_CORE_API_KEY=
|
|
# Sink type: 'rest' (POST to issue-core) or 'null' (discard, for dry-run).
|
|
# state-hub (default, no Forgejo) | null (dry-run) | rest (issue-core opt-in)
|
|
ISSUE_SINK_TYPE=state-hub
|
|
|
|
# ── Ops run claim queue (ACTIVITY-WP-0026 / ACT-ADR-005) ───────────────────────
|
|
# Create claimable ops_run rows on emit_tasks (default true). Harness claims via
|
|
# POST /ops-runs/claim — not issue-core / Forgejo.
|
|
OPS_RUN_QUEUE_ENABLED=true
|
|
# Default claim lease (seconds); heartbeat extends.
|
|
OPS_RUN_LEASE_SECONDS=900
|
|
# Permanent fail after this many claims when fail+reopen is requested.
|
|
OPS_RUN_MAX_ATTEMPTS=3
|
|
# Stuck open/claimed threshold for /ops/automations/status ops_runs.sla_hours
|
|
OPS_RUN_SLA_HOURS=1
|
|
# Worker credential for claim/complete/fail (X-Worker-Token or Bearer).
|
|
ACTIVITY_CORE_WORKER_TOKEN=
|
|
|
|
# ── Activity definitions ───────────────────────────────────────────────────────
|
|
# Colon-separated paths to additional activity-definitions/ directories.
|
|
# The local activity-definitions/ directory is always scanned.
|
|
# Coulomb-loop kaizen engagement definitions (colon-separated for more roots).
|
|
# Colon-separated roots; each must contain activity-definitions/
|
|
ACTIVITY_DEFINITION_DIRS=/home/worsch/coulomb-loop:/home/worsch/freedom-intelligence
|
|
|
|
# ── Observability ─────────────────────────────────────────────────────────────
|
|
# Prometheus metrics bind address (Temporal SDK metrics).
|
|
PROMETHEUS_BIND_ADDR=0.0.0.0:9090
|
|
|
|
# ── Security (webhook receiver) ───────────────────────────────────────────────
|
|
# HMAC-SHA256 secret for Gitea webhook signature validation.
|
|
WEBHOOK_SECRET_GITEA=
|
|
# HMAC-SHA256 secret for GitHub webhook signature validation.
|
|
WEBHOOK_SECRET_GITHUB=
|
|
|
|
# ── Curator gate ──────────────────────────────────────────────────────────────
|
|
# 'disabled': accepts active + pending event types (pending logged as warning).
|
|
# 'required': only active event types accepted; pending events are discarded.
|
|
ACTIVITY_CURATOR_GATE=disabled
|