Slik er Cooperates autorisasjonsmodell bygget
Markedsplasser står og faller på tillit. I Cooperate betyr det at hvert API-kall starter med spørsmålet: hvem har lov til å lese eller endre denne raden?
Lagdelingen vår
- Kontrakter som sannhetskilde. Hvert domene eksponerer Zod-skjemaer i
packages/contracts/**, som definerer alle payloads i systemet. - Domenevakter. Servermoduler under
src/server/domains/**håndhever rollechecks og skriver revisjonshendelser—UI-komponenter snakker aldri direkte med Supabase. - RLS overalt. Tabeller åpnes aldri uten policies som bekrefter leietakermedlemskap eller plattform-unntak.
Rollene vi støtter
- Selskapsroller (
company_admin,project_manager,member) styrer hva ansatte kan publisere og godkjenne. - Plattformroller (
platform_admin,compliance_reviewer,support) får lesetilgang på tvers, mens endringer skjer gjennom auditerte admin-flyt. - Anonyme besøkende får kun tilgang til cachede markedsføringssider uten persondata.
Slik lukkes loopen
Alle privilegerte handlinger skriver en revisjonslogg med aktør, handling, mål og begrunnelse. SQL-tester i supabase/tests/** bekrefter at RLS-policyene respekterer rollene, mens Playwright-scenarier verifiserer at UI-et følger samme regler.
Veien videre
- Automatisert sammenligning av policies i CI for å oppdage utilsiktet rettighetsutvidelse.
- Moderasjonskonsoll som kombinerer revisjonshendelser med meldingshistorikk.
- Segmenterte API-nøkler slik at partnere kan integrere uten å omgå RBAC.
Har du sikkerhetsspørsmål? Kontakt oss på security@cooperate.no.