Assessor_2.0/server/postgres/migrations/028_scoped_risk_acceptances...

17 lines
817 B
SQL

CREATE TABLE assessor_scoped_risk_acceptances (
id text PRIMARY KEY CHECK (btrim(id) <> ''),
project_id text NOT NULL REFERENCES assessor_projects(id) ON DELETE CASCADE,
scope_kind text NOT NULL CHECK (scope_kind IN ('device-finding', 'device-snapshot')),
device_key text NOT NULL CHECK (btrim(device_key) <> ''),
revision integer NOT NULL CHECK (revision >= 1),
created_at timestamptz NOT NULL,
updated_at timestamptz NOT NULL,
data jsonb NOT NULL CHECK (jsonb_typeof(data) = 'object')
);
CREATE INDEX assessor_scoped_risk_acceptances_project_device_idx
ON assessor_scoped_risk_acceptances (project_id, device_key, updated_at DESC, id);
COMMENT ON TABLE assessor_scoped_risk_acceptances IS
'Project-owned append-only decision histories for immutable Defender device/finding target snapshots.';