Aller au contenu principal

ADR-0106 : Tenancy plateforme, tenant, projet, environnement avec RLS forcée

Contexte​

Le kit (section 6.2) exige la RLS tenant et FORCE ROW LEVEL SECURITY.

Décision​

Le tenant vient de l'identifiant d'accès, jamais du corps de la requête. Chaque table de tenant active la RLS, une politique sur eai.current_tenant() et eai.is_platform(), et la RLS forcée ; les transactions passent par db.tx(principal).

Conséquences​

Une table de tenant sans RLS forcée fait échouer les tests.

Preuves​

  • sql/postgres/V002__tenants.sql
  • sql/postgres/V003__projects_environments.sql
  • sql/postgres/V100__force_row_level_security.sql
  • services/control-plane/tests/test_core_rls_forced.py
  • RULES.md (section 3, point 2)