Sécurité

Row Level Security

Isolation multi-tenant au niveau base de données via PostgreSQL Row Level Security (RLS FORCE).

Chaque entreprise voit uniquement ses propres données, garanti par la base elle-même. Pas de where clause à oublier côté application.

Policy type

CREATE POLICY company_scope ON risks
  USING      (company_id = current_setting('app.current_company'))
  WITH CHECK (company_id = current_setting('app.current_company'));

ALTER TABLE risks ENABLE ROW LEVEL SECURITY;
ALTER TABLE risks FORCE  ROW LEVEL SECURITY;

Pourquoi FORCE

L'option FORCE fait que même le propriétaire de la table (le compte technique de connexion) est soumis à la policy. Impossible de bypasser accidentellement.