93 lines
3.6 KiB
SQL
93 lines
3.6 KiB
SQL
PRAGMA foreign_keys=ON;
|
|
|
|
CREATE TABLE IF NOT EXISTS task_lineage_supersessions (
|
|
source_task_id TEXT NOT NULL,
|
|
supersession_ordinal INTEGER NOT NULL CHECK (supersession_ordinal = 1),
|
|
child_task_id TEXT NOT NULL UNIQUE,
|
|
source_task_identity_sha256 TEXT NOT NULL,
|
|
source_metadata_sha256 TEXT NOT NULL,
|
|
owner_decision_sha256 TEXT NOT NULL UNIQUE,
|
|
decision_id TEXT NOT NULL UNIQUE,
|
|
created_at TEXT NOT NULL,
|
|
PRIMARY KEY (source_task_id, supersession_ordinal)
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS task_lineage_supersession_receipts (
|
|
decision_id TEXT PRIMARY KEY,
|
|
nonce TEXT NOT NULL UNIQUE,
|
|
source_task_id TEXT NOT NULL,
|
|
supersession_ordinal INTEGER NOT NULL,
|
|
child_task_id TEXT NOT NULL UNIQUE,
|
|
owner_decision_sha256 TEXT NOT NULL UNIQUE,
|
|
decision_json TEXT NOT NULL,
|
|
receipt_json TEXT NOT NULL,
|
|
consumed_at TEXT NOT NULL,
|
|
FOREIGN KEY (source_task_id, supersession_ordinal)
|
|
REFERENCES task_lineage_supersessions(source_task_id, supersession_ordinal)
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS task_claim_guard_bindings_v2 (
|
|
binding_id TEXT PRIMARY KEY,
|
|
task_id TEXT NOT NULL UNIQUE,
|
|
source_task_id TEXT NOT NULL,
|
|
supersession_ordinal INTEGER NOT NULL,
|
|
expected_revision INTEGER NOT NULL CHECK (expected_revision >= 1),
|
|
metadata_sha256 TEXT NOT NULL,
|
|
required_capabilities_sha256 TEXT NOT NULL,
|
|
worker_id TEXT NOT NULL,
|
|
execution_digest TEXT NOT NULL,
|
|
repository TEXT NOT NULL,
|
|
target_branch TEXT NOT NULL,
|
|
generation INTEGER NOT NULL,
|
|
policy_json TEXT NOT NULL,
|
|
policy_sha256 TEXT NOT NULL,
|
|
binding_json TEXT NOT NULL,
|
|
binding_sha256 TEXT NOT NULL UNIQUE,
|
|
created_at TEXT NOT NULL,
|
|
FOREIGN KEY (source_task_id, supersession_ordinal)
|
|
REFERENCES task_lineage_supersessions(source_task_id, supersession_ordinal)
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS task_claim_guard_binding_receipts_v2 (
|
|
receipt_id TEXT PRIMARY KEY,
|
|
binding_id TEXT NOT NULL UNIQUE,
|
|
task_id TEXT NOT NULL UNIQUE,
|
|
receipt_json TEXT NOT NULL,
|
|
receipt_sha256 TEXT NOT NULL UNIQUE,
|
|
created_at TEXT NOT NULL,
|
|
FOREIGN KEY (binding_id) REFERENCES task_claim_guard_bindings_v2(binding_id)
|
|
);
|
|
|
|
CREATE TRIGGER IF NOT EXISTS task_lineage_supersessions_no_update
|
|
BEFORE UPDATE ON task_lineage_supersessions BEGIN
|
|
SELECT RAISE(ABORT, 'TASK_LINEAGE_SUPERSESSION_APPEND_ONLY');
|
|
END;
|
|
CREATE TRIGGER IF NOT EXISTS task_lineage_supersessions_no_delete
|
|
BEFORE DELETE ON task_lineage_supersessions BEGIN
|
|
SELECT RAISE(ABORT, 'TASK_LINEAGE_SUPERSESSION_APPEND_ONLY');
|
|
END;
|
|
CREATE TRIGGER IF NOT EXISTS task_lineage_supersession_receipts_no_update
|
|
BEFORE UPDATE ON task_lineage_supersession_receipts BEGIN
|
|
SELECT RAISE(ABORT, 'TASK_LINEAGE_SUPERSESSION_RECEIPT_APPEND_ONLY');
|
|
END;
|
|
CREATE TRIGGER IF NOT EXISTS task_lineage_supersession_receipts_no_delete
|
|
BEFORE DELETE ON task_lineage_supersession_receipts BEGIN
|
|
SELECT RAISE(ABORT, 'TASK_LINEAGE_SUPERSESSION_RECEIPT_APPEND_ONLY');
|
|
END;
|
|
CREATE TRIGGER IF NOT EXISTS task_claim_guard_bindings_v2_no_update
|
|
BEFORE UPDATE ON task_claim_guard_bindings_v2 BEGIN
|
|
SELECT RAISE(ABORT, 'TASK_CLAIM_GUARD_BINDING_APPEND_ONLY');
|
|
END;
|
|
CREATE TRIGGER IF NOT EXISTS task_claim_guard_bindings_v2_no_delete
|
|
BEFORE DELETE ON task_claim_guard_bindings_v2 BEGIN
|
|
SELECT RAISE(ABORT, 'TASK_CLAIM_GUARD_BINDING_APPEND_ONLY');
|
|
END;
|
|
CREATE TRIGGER IF NOT EXISTS task_claim_guard_binding_receipts_v2_no_update
|
|
BEFORE UPDATE ON task_claim_guard_binding_receipts_v2 BEGIN
|
|
SELECT RAISE(ABORT, 'TASK_CLAIM_GUARD_BINDING_RECEIPT_APPEND_ONLY');
|
|
END;
|
|
CREATE TRIGGER IF NOT EXISTS task_claim_guard_binding_receipts_v2_no_delete
|
|
BEFORE DELETE ON task_claim_guard_binding_receipts_v2 BEGIN
|
|
SELECT RAISE(ABORT, 'TASK_CLAIM_GUARD_BINDING_RECEIPT_APPEND_ONLY');
|
|
END;
|