← Alla projekt

Säkerhet · Arkitektur · Infrastruktur och DevOps · 2025–

Multitenant SaaS med två isoleringsnivåer, designad för HIPAA och SOC 2

Produkten gör guidade intervjuer till officiella PDF-blanketter. Det svåra ligger under ytan: isolering mellan kunder, kryptering och åtkomstkontroll, designad för HIPAA och SOC 2.

Gemensam ingångBrandvägg för webbapplikationer · MFA · rollstyrd åtkomst · granskningslogg

Standardnivå

En PostgreSQL-databas · row-level security
  • Kund A
  • Kund B
  • Kund C
  • Databasen själv håller isär kunderna.
  • Krypteringsnycklar per kund.

Enterprisenivå

Eget spoke-nätverk · kopplat till den gemensamma hubben
Egen PostgreSQL-server
  • Kund D
  • Byggt: varje anrop går till kundens egen databas.
  • Designat, näst på tur: ett köat jobb som tål avbrott skapar spoke-nätverk och databas för varje ny kund.
Två sätt att isolera en kund.
har en kundpolicy, som kontrolleras av ett test och en granskning av den skarpa databasen
Varje tabell
Azure-resurser i Terraform, bakom en brandvägg för webbapplikationer
~50
av utveckling, från arkitektur till driftsättning
14 månader

Utgångsläge

Företag knappar för hand in känsliga kunduppgifter i långa officiella PDF-blanketter. Uppgifterna behöver kryptering och spårbarhet från första dagen, flera organisationer delar samma system, och större kunder förväntar sig egen infrastruktur.

Min roll

Allt tekniskt arbete under 14 månader, inklusive driftsättningen på Azure med Terraform.

Vad jag byggde

  • Arkitektur: Två isoleringsnivåer: standardkunder delar en PostgreSQL-databas bakom row-level security; enterprisekunder får en egen databas, och varje anrop går till rätt databas.
  • Säkerhet: Krypteringsnycklar per kund, MFA med TOTP och WebAuthn, rollstyrd åtkomst, granskningsloggar, utloggning efter 15 minuters inaktivitet och nonce-baserad CSP. Designad för efterlevnad av HIPAA och SOC 2.
  • Infrastruktur och DevOps: Runt 50 Azure-resurser i Terraform: ett hub-and-spoke-nätverk, privata endpoints, en brandvägg för webbapplikationer och automatiska certifikat; nyckellös inloggning i CI/CD.
  • Frontend: En guidad intervju via engångslänk och en rollstyrd vy för varje organisations team.
  • Backend och AI: Celery-workers fyller i varje blankett i minnet; två modeller mappar nya blanketter utifrån offentligt material, med en deterministisk kontroll.
  • Test: Över 12 900 tester i backend, frontend och end-to-end, plus mutationstestning.

Svåra problem och beslut

  • Delad databas eller en per kund? Båda. Row-level security gör standardkunder billiga att köra i en och samma databas; enterprisekunder får ett eget spoke-nätverk, kopplat till den gemensamma hubben, och en egen databasserver. Kundraderna bär ett kund-id i stället för en koppling till en central tabell, så att de kan flyttas senare.
  • En saknad policy läcker i det tysta. Row-level security slås på tabell för tabell, så en enda tabell utan policy skulle visa alla kunders rader. Ett test, en granskning av den skarpa databasen och en förteckning över alla tabeller fångar det.
  • Efterlevnad från första commit. Kontrollerna för HIPAA och SOC 2 – nycklar, MFA, roller, granskningslogg och sessionsgränser – byggdes in innan det fanns någon kunddata och följs upp mot en checklista, i stället för att läggas till inför en revision.

Resultat

Modellen för isolering, kryptering och åtkomst är på plats och testas: databasen håller isär standardkunderna, styrningen till enterprisekundernas databaser är byggd, och den automatiska uppsättningen av dem är designad och näst på tur.

Teknik

Python, Django, Celery, PostgreSQL, Next.js, TypeScript, Terraform, Azure, GitHub Actions, Claude, GPT

Områden

Arkitektur, Frontend, Backend, Data, AI, Säkerhet, Infrastruktur och DevOps, Test

Period

september 2025 – pågår (14 månader)

Nästa projektTvåspråkig adminportal