Separate table, not a user_id on the shared transcripts (ADR-021). ENABLE + FORCE ROW LEVEL SECURITY with the migration-003 policy, user_id NOT NULL ON DELETE CASCADE, typed error_kind, per-row serving endpoint, JSONB segments. CHECK constraints: done => content, failed => error_kind. Up and down are one commit: golang-migrate pairs them. Mutation-checked: dropping FORCE, the policy, or the cascade each turn a test red. FORCE is only observable structurally -- the app role is not the table owner, so no behavioural test can see it. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
4 lines
188 B
SQL
4 lines
188 B
SQL
-- Drops the private uploaded-transcript store and every transcript in it. There
|
|
-- is no revert of the data: the original audio was never kept (ADR-033).
|
|
DROP TABLE uploaded_transcripts;
|