synops/migrations/023_orchestration_log.sql
vegard 059c776bf4 Script-executor: vaktmesteren eksekverer kompilerte pipelines (oppgave 24.5)
Ny modul script_executor.rs som tar en kompilert pipeline fra
script_compiler og kjører stegene sekvensielt:

- Substituerer {event.*}-variabler fra trigger-kontekst
- Spawner hvert CLI-verktøy som subprosess via generisk dispatch
- VED_FEIL-håndtering: steg-fallback → global fallback → stopp
- Spesialhåndtering av work_item (oppretter oppgave-node i grafen)
- Logger hvert steg i ny orchestration_log-tabell

handle_orchestrate i jobs.rs utvides: kompilerer + utfører i
samme jobb (var tidligere kun kompilering).

Migration 023: orchestration_log-tabell med indekser for
effektiv spørring per orkestrering og per jobb.
2026-03-18 17:18:10 +00:00

22 lines
1.3 KiB
SQL

-- Orchestration execution log.
-- Hver rad er ett kjørt steg (eller fallback) i en orkestrering.
-- Vaktmesteren logger hit under script-utførelse.
CREATE TABLE IF NOT EXISTS orchestration_log (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
orchestration_id UUID NOT NULL REFERENCES nodes(id) ON DELETE CASCADE,
job_id UUID REFERENCES job_queue(id) ON DELETE SET NULL,
step_number SMALLINT NOT NULL, -- 0 = global fallback
tool_binary TEXT NOT NULL, -- CLI-verktøy som ble kjørt
args JSONB NOT NULL DEFAULT '[]', -- argumenter (etter variabel-substitusjon)
is_fallback BOOLEAN NOT NULL DEFAULT false,
status TEXT NOT NULL CHECK (status IN ('ok', 'error', 'skipped')),
exit_code SMALLINT, -- prosessens exit-kode
result JSONB, -- stdout JSON fra verktøyet
error_msg TEXT, -- stderr / feilmelding
duration_ms INTEGER, -- kjøretid i millisekunder
created_at TIMESTAMPTZ NOT NULL DEFAULT now()
);
CREATE INDEX idx_orchestration_log_orch ON orchestration_log (orchestration_id, created_at DESC);
CREATE INDEX idx_orchestration_log_job ON orchestration_log (job_id);