ums

UMS SDK — Portal

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.


Lo que el SDK te da

Después de que un sistema cliente se autentica con UMS, recibe un AuthorizationGraph (ver ADR-0071 y auth-graph.md). El SDK provee:


Layout

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).


Distribuciones

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.


Enlaces Rápidos

Para integradores

Para contribuyentes del SDK


Modelo Conceptual

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).


Referencias