36 lines
1.2 KiB
PL/PgSQL
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;
|