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;