teecup/089_tournament_round_group_rls.sql

28 lines
1.5 KiB
MySQL
Raw Normal View History

-- =====================================================================
-- TeeCup — migrasjon 089
-- RLS på tournament_round_group (lukker et hull fra migrasjon 084)
-- =====================================================================
-- Oppdaget under kartlegging til parity-arbeidet (score-føring i
-- turnering vs. frittstående runde, 2026-08-21): tournament_round_group
-- (opprettet i 084_tournament_round_groups.sql, utvidet i
-- 088_shotgun_start.sql) fikk ALDRI standard org_isolation-RLS-policyen
-- som ellers gjelder alle domenetabeller (ADR-003) -- i strid med
-- arkitektur-invarianten i CLAUDE.md. Ingen begrunnet unntak (i
-- motsetning til f.eks. round_shot/round_hole/round_message, som
-- bevisst står utenfor RLS per ADR-033 Beslutning A). I praksis kun
-- beskyttet av WHERE-ledd i applikasjonskoden frem til nå.
--
-- Ingen dataendring, kun policy -- alle eksisterende spørringer går
-- allerede via org_connection() (setter app.current_org), så dette er
-- additivt, ikke en atferdsendring for korrekt scopet kode.
-- =====================================================================
\set ON_ERROR_STOP on
ALTER TABLE tournament_round_group ENABLE ROW LEVEL SECURITY;
ALTER TABLE tournament_round_group FORCE ROW LEVEL SECURITY;
CREATE POLICY org_isolation ON tournament_round_group
USING (organization_id = current_setting('app.current_org', true)::uuid)
WITH CHECK (organization_id = current_setting('app.current_org', true)::uuid);