Jak działa model autoryzacji w Cooperate
Zaufanie to fundament każdej platformy. Dlatego w Cooperate każde zapytanie zaczynamy od pytania: kto może zobaczyć albo zmienić dany rekord?
Warstwy zabezpieczeń
- Kontrakty jako źródło prawdy. Każda domena udostępnia schematy Zod w
packages/contracts/**, dzięki czemu wszystkie dane mają jasno zdefiniowany kształt. - Strażnicy domen. Moduły serwerowe w
src/server/domains/**sprawdzają role i zapisują zdarzenia audytowe—komponenty UI nie łączą się bezpośrednio z Supabase. - RLS na każdej tabeli. Polityki zawsze weryfikują członkostwo w firmie lub uprawnienia zespołu platformy.
Obsługiwane role
- Role firmowe (
company_admin,project_manager,member) określają, kto może publikować, akceptować i zarządzać danymi. - Zespół platformy (
platform_admin,compliance_reviewer,support) ma wgląd w dane wszystkich najemców, lecz edycje przechodzą przez audytowane ścieżki. - Anonimowi goście widzą jedynie cache'owane strony marketingowe.
Jak dbamy o audyt
Każda uprzywilejowana akcja trafia do logu audytowego z informacją o aktorze, działaniu, celu i uzasadnieniu. Testy SQL w supabase/tests/** pilnują, by polityki RLS trzymały się reguł, a scenariusze Playwright sprawdzają zgodność z interfejsem.
Co planujemy dalej
- Automatyczne porównywanie polityk w CI, by wychwycić niezamierzone „rozszerzanie” uprawnień.
- Panel moderacyjny zestawiający zdarzenia audytowe z historią rozmów.
- Zakresowe klucze API umożliwiające integracje partnerów bez obniżania poziomu zabezpieczeń.
Pytania dotyczące bezpieczeństwa? Napisz na security@cooperate.no.