Tenanti, hostiteľ a dátový filter
ToRun stojí na multi-tenant modeli ABP Framework. Riadok označený ako IsMultiTenant má stĺpec TenantId, podľa ktorého framework automaticky filtruje; dopyty v kontexte jedného tenanta nikdy nevidia riadky iného. Kontext hostiteľa (TenantId == null) vidí samostatný výsek: tam žijú kanonické katalógy ako SubscriptionPlan, AiProvider a LegalDocument.
Prečo berieme hostiteľa ako plnohodnotného účastníka
Väčšina SaaS produktov pridáva hostiteľa ako „administrátorské nástroje“. My ho modelujeme ako sesterského tenanta: hostiteľ má vlastné prehľady, vlastné zásady AI a vlastné fakturačné vzťahy. Vďaka tomu môžeme vlastnú produkčnú prevádzku prevádzkovať na rovnakých stavebných blokoch, ktoré používa každý zákazník.
Funkcie viazané na plán pre každého tenanta
Predplatiteľské plány nesú riadky FeatureLimit, Entitlement, Capability a Mode. Keď tenant aktivuje plán, súbor funkcií, ku ktorým má prístup, je prienikom jeho plánu a globálneho katalógu. Pridanie nového režimu nevyžaduje zásah u každého tenanta: dostane ho automaticky, ak ho jeho plán zahŕňa.
Vkladanie BYOK pri každom volaní
Aj pri zdieľanej infraštruktúre zostávajú prihlasovacie údaje BYOK obmedzené na tenanta, ktorý ich vlastní. Každá požiadavka na AI načítava prihlasovacie údaje v kontexte tenanta cez rovnaký dátový filter; únik kľúčov medzi tenantmi nie je na úrovni úložiska možný.
Čo zámerne nerobíme
Tenantov neizolujeme na úrovni databázy ani procesu. Náklady na škálovanie samostatnej databázy pre každého tenanta zničia jednotkovú ekonomiku multi-tenant SaaS produktu. Dátový filter spolu s vyrovnávacou pamäťou oddelenou pre každého tenanta stačí, keď je na to schéma navrhnutá od prvého dňa.