46 lines
2.1 KiB
PL/PgSQL
46 lines
2.1 KiB
PL/PgSQL
BEGIN;
|
|
|
|
SET ROLE work_role;
|
|
|
|
CREATE TABLE IF NOT EXISTS work.extension_proposals (
|
|
proposal_id TEXT PRIMARY KEY,
|
|
requested_by_principal_id TEXT NOT NULL,
|
|
stage TEXT NOT NULL,
|
|
evidence_refs TEXT[] NOT NULL DEFAULT ARRAY[]::TEXT[],
|
|
deduplicated_signal_keys TEXT[] NOT NULL DEFAULT ARRAY[]::TEXT[],
|
|
desired_outcome TEXT NOT NULL,
|
|
smallest_change_layer TEXT NOT NULL,
|
|
affected_owners TEXT[] NOT NULL DEFAULT ARRAY[]::TEXT[],
|
|
affected_contracts TEXT[] NOT NULL DEFAULT ARRAY[]::TEXT[],
|
|
risk_tier TEXT NOT NULL,
|
|
evaluation_plan TEXT[] NOT NULL DEFAULT ARRAY[]::TEXT[],
|
|
alternatives TEXT[] NOT NULL DEFAULT ARRAY[]::TEXT[],
|
|
rollback_plan TEXT NOT NULL,
|
|
assumptions TEXT[] NOT NULL DEFAULT ARRAY[]::TEXT[],
|
|
created_at_unix_millis BIGINT NOT NULL,
|
|
CHECK (proposal_id <> ''), CHECK (requested_by_principal_id <> ''), CHECK (stage = 'PROPOSED'), CHECK (desired_outcome <> ''), CHECK (smallest_change_layer <> ''), CHECK (risk_tier <> ''), CHECK (rollback_plan <> ''), CHECK (created_at_unix_millis > 0)
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS work.development_scaffolds (
|
|
scaffold_id TEXT PRIMARY KEY,
|
|
requested_by_principal_id TEXT NOT NULL,
|
|
stage TEXT NOT NULL,
|
|
proposal_ref TEXT NOT NULL,
|
|
base_repo_revision TEXT NOT NULL,
|
|
worktree_ref TEXT NOT NULL,
|
|
task_intent TEXT NOT NULL,
|
|
modules TEXT[] NOT NULL DEFAULT ARRAY[]::TEXT[],
|
|
allowed_paths TEXT[] NOT NULL DEFAULT ARRAY[]::TEXT[],
|
|
forbidden_paths TEXT[] NOT NULL DEFAULT ARRAY[]::TEXT[],
|
|
required_tests TEXT[] NOT NULL DEFAULT ARRAY[]::TEXT[],
|
|
artifact_lineage_refs TEXT[] NOT NULL DEFAULT ARRAY[]::TEXT[],
|
|
protected_main_access TEXT NOT NULL,
|
|
production_access TEXT NOT NULL,
|
|
secret_access TEXT NOT NULL,
|
|
created_at_unix_millis BIGINT NOT NULL,
|
|
CHECK (scaffold_id <> ''), CHECK (requested_by_principal_id <> ''), CHECK (stage = 'SANDBOXED'), CHECK (proposal_ref <> ''), CHECK (base_repo_revision <> ''), CHECK (worktree_ref <> ''), CHECK (task_intent <> ''), CHECK (protected_main_access = 'DENIED'), CHECK (production_access = 'DENIED'), CHECK (secret_access = 'DENIED'), CHECK (created_at_unix_millis > 0)
|
|
);
|
|
|
|
RESET ROLE;
|
|
COMMIT;
|