Files
Assistant/database/migrations/008_commit_authorized_action_envelopes.sql
2026-08-16 16:19:23 +03:00

36 lines
1.2 KiB
PL/PgSQL

BEGIN;
SET ROLE commit_role;
ALTER TABLE commit.action_attempts ADD COLUMN IF NOT EXISTS revision BIGINT NOT NULL DEFAULT 1;
ALTER TABLE commit.action_attempts ADD COLUMN IF NOT EXISTS updated_at TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP;
CREATE TABLE IF NOT EXISTS commit.authorized_action_envelopes (
authorized_action_id TEXT PRIMARY KEY,
action_intent_id TEXT NOT NULL UNIQUE,
actor_id TEXT NOT NULL,
principal_id TEXT NOT NULL,
grant_id TEXT NOT NULL,
grant_revision BIGINT NOT NULL,
scope_id TEXT NOT NULL,
task_id TEXT NOT NULL,
goal_id TEXT NOT NULL,
task_scope_id TEXT NOT NULL,
task_revision BIGINT NOT NULL,
capability_id TEXT NOT NULL,
operation TEXT NOT NULL,
prospective_item_id TEXT NOT NULL,
expected_prospective_revision BIGINT NOT NULL,
prospective_from_state TEXT NOT NULL,
prospective_to_state TEXT NOT NULL,
evidence_ref TEXT NOT NULL,
proposal_state TEXT NOT NULL,
action_state TEXT NOT NULL,
authorized_at_unix_millis BIGINT NOT NULL,
envelope_revision BIGINT NOT NULL,
recorded_at TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP,
CHECK (grant_revision > 0),
CHECK (task_revision > 0),
CHECK (authorized_at_unix_millis > 0),
CHECK (envelope_revision = 1)
);
RESET ROLE;
COMMIT;