Idioma: English Español
El UMS SDK es la superficie oficial de integración cliente del User Management System. Empaqueta todo lo que un sistema cliente necesita para autenticarse contra UMS, consumir el AuthorizationGraph, y enforce decisiones de autorización localmente — a través de tres runtimes que comparten un único contrato canónico.
Estado: Fase de documentación (Fase A) — la implementación comienza después de que la documentación sea revisada y mergeada.
Después de que un sistema cliente se autentica con UMS, recibe un AuthorizationGraph (ver ADR-0071 y auth-graph.md). El SDK provee:
validUntil — las mismas reglas implementadas idénticamente a través de runtimes.RequiresScope("RESOURCE.ACTION")RequiresMenuOption("OPTION_CODE")RequiresDomainAccess("RESOURCE", "ACTION")RequiresFeatureFlag("FLAG_CODE")docs/sdk-es/ ← documentación (Español)
├── index.md ← este archivo
├── contracts/ ← contrato canónico (agnóstico al lenguaje)
│ ├── schema-overview.md
│ ├── error-codes.md
│ ├── versioning.md
│ ├── fixtures.md
│ └── compatibility-matrix.md
├── dotnet/ ← Guía SDK .NET
│ ├── README.md
│ └── quickstart.md
├── typescript/ ← Guía SDK TypeScript
│ ├── README.md
│ └── quickstart.md
└── nestjs/ ← Guía SDK NestJS
├── README.md
└── quickstart.md
El espejo en inglés vive bajo docs/sdk/. El código fuente vive en src/libs/sdk/ (separado de la documentación — ver ADR-0073).
| Distribución | Registro | Paquetes | Estado |
|---|---|---|---|
| .NET | NuGet | Ums.Sdk.Contracts, Ums.Sdk.Authorization, Ums.Sdk.Authorization.Aop, Ums.Sdk.Authorization.Testing |
Documentación |
| TypeScript | npm | @ums/sdk-contracts, @ums/sdk-authorization, @ums/sdk-testing |
Documentación |
| NestJS | npm | @ums/sdk-nestjs (extiende @ums/sdk-authorization) |
Documentación |
Consumidores JavaScript (sin TypeScript) usan los paquetes @ums/* directamente — publican tanto .js como .d.ts, así que JS funciona con funcionalidad completa, solo perdiendo typing en compile-time.
AUTH_xxxsrc/libs/sdk/Los tres runtimes implementan los mismos cuatro primitivos de autorización, mapeados uno-a-uno a las cuatro secciones del grafo que portan autorización:
| Primitivo | Sección del grafo | Regla de decisión |
|---|---|---|
RequiresScope |
scopes[] |
Scope presente Y no en denies |
RequiresMenuOption |
menuAccess[].…options[] |
Opción resuelve a effect = "Allow" |
RequiresDomainAccess |
domainPermissions[] |
Recurso+acción resuelve a effect = "Allow" |
RequiresFeatureFlag |
featureFlags[] |
Flag encontrado con isEnabled = true |
Pre-check universal: si graph.validUntil < now, la decisión es Expired independientemente del contenido. Deny siempre gana sobre Allow (Axioma A3).