SmartExchange · .NET 10 · Chapter 02
Packages and boundaries
Štyri .NET 10 knižnice sú zatiaľ v MicroApps. Tvoria spoločný kód, ktorý publikujeme ako NuGet balíky pre obe aplikácie.
Aktuálne projekty → spoločné balíky
| Project | Triedy a interfaces | Zodpovednosť |
|---|---|---|
BmcGroup.Authorization.Contracts | AuthorizationGrant, AuthorizationPrincipal, request/resource/plan records; IAuthorizationGrantReader, IAuthorizationContextResolver, IAuthorizationPolicyClient; expression records. | Stabilné kontrakty nezávislé od Cerbos transportu a SQL. Štyri zdrojové súbory. |
BmcGroup.Authorization.SmartExchange | LegacySqlAuthorizationGrantAdapter, SmartExchangeAuthorizationContextResolver, SmartExchangeAuthorizationRelationshipRegistry, SmartExchangeAuthorizationScopeValidator. | SmartExchange grants, normalizácia/validácia scope a CRM metadáta vzťahov. |
BmcGroup.Authorization.Cerbos | CerbosAuthorizationPolicyClient, CerbosQueryPlanMapper, AuthorizationOptions, CerbosAuthorizationOptions. | Spoločné gRPC pripojenie, PlanResources request a preklad odpovede. |
BmcGroup.Authorization.SqlKata | IAuthorizationQueryAdapter, SqlKataAuthorizationQueryAdapter, AuthorizationSqlMappingFactory; SQL mapping/value/relationship records. | Preklad podporovaného plánu do parametrizovanej query podľa dôveryhodného mapovania. |
BmcGroup.CRM a BmcGroup.CRM.Diagram už patria do NuGet solution. SmartExchange autorizačnej vrstve dodávajú anotácie entít a generované metadáta.
PackageReference, nikdy referenciu cez solution na zdrojový NuGet projekt.Čo zostáva v aplikáciách
| Intaker · MicroApps | Web API · vlastná solution |
|---|---|
MicroApplication.OnInitialization(): vytvorí klienta z konfigurácie. | Nakonfiguruje rovnakého klienta cez rovnaký kontrakt pripojenia. |
OnMessageAxtionExportXlsx: user/product, template a export workflow. | Endpoint: prihlásený user/product, action a query pre entitu. |
ExportAuthorizationResourceCatalog.GetMapping() a ExportQueryBuilder.ApplyAuthorizationPlan(). | Dodá aliasy/mapovanie API query a zavolá spoločný SQL adapter pred count/paging. |
Web API bude používať rovnaké štyri autorizačné balíky a kompatibilné CRM metadáta. SqlKata je použiteľná aj mimo Intakera. Iná query technológia potrebuje iný enforcement adapter; resolver a Cerbos plánovanie zostávajú spoločné.
Postup dodania
Presun spoločných knižníc do NuGet solution → publikovanie kompatibilných balíkov → prechod Intakera na package references → integrácia Web API. ExportQueryBuilder ani template/plugin spracovanie sa do spoločnej autorizačnej vrstvy nepresúvajú.
Rovnaké balíky pre oba exporty
| Spoločné volanie | Person export | InterestedParty export |
|---|---|---|
ResolveAsync() | Person + Company grants | InterestedParty + Project + Investor grants |
PlanResourcesAsync() | Person / export | InterestedParty / export |
GetRelationships() + Create() | companyIds → PersonInCompany → Company | projectIds → Project |
Apply() | Pridá Company EXISTS | Pridá Project EXISTS |
Sú to rozdiely konfigurácie a dát, nie dve autorizačné implementácie. Obe dokumentačné policies aj ich requests sú jasne oddelené od nasadenej default verzie.