Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 36 additions & 0 deletions docs/architecture/api-dotnet/README.es.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# Referencia Aplicada API Dotnet de UMS

> Idioma: [English](./README.md) | [Espanol](./README.es.md)

Esta seccion documenta como la implementacion API Dotnet de UMS aplica el Estandar API Dotnet de Evolith.

UMS es una referencia aplicada, no la fuente de estandares backend universales. Las reglas backend reutilizables pertenecen a Evolith. UMS conserva modulos concretos de producto, endpoints, headers, decisiones de persistencia, bounded contexts, seeds y decisiones locales de implementacion.

## Documentos

| Documento | Proposito |
|---|---|
| [Referencia Aplicada API Dotnet UMS](./ums-api-dotnet-applied-reference.es.md) | Mapeo basado en evidencia entre topicos API de Evolith y archivos fuente de UMS. |

## Limite de autoridad

| Aspecto | Evolith | UMS |
|---|---|---|
| Estandares API reutilizables | Posee principios, reglas boilerplate, quality gates y criterios de promocion | Consume estandares |
| Implementacion de producto | Referencia ejemplos solamente | Posee codigo fuente concreto y decisiones locales |
| Persistencia | Posee gobierno de providers y reglas de calidad de datos | Posee DbContext, repositorios, interceptores, migraciones y switches de provider concretos |
| Superficie API | Posee reglas de responsabilidad REST y GraphQL | Posee endpoints, route groups, schemas y modulos de bounded context concretos |
| Operaciones | Posee capacidades requeridas | Posee Serilog, OpenTelemetry, health checks, rate limits y valores runtime concretos |

## Alcance de evidencia actual

Esta referencia se basa en la API Dotnet actual ubicada en:

```text
src/apps/ums.api
```

Las fuentes observadas incluyen bootstrap de host, service bootstrappers, pipeline middleware, mapeo de superficie API, DI de aplicacion, DI de infraestructura, configuracion de providers de persistencia, health checks, AOP, servicios background y controles operacionales.

---
[Volver al Portal de Arquitectura](../index.es.md)
36 changes: 36 additions & 0 deletions docs/architecture/api-dotnet/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# UMS API .NET Applied Reference

> Language: [English](./README.md) | [Espanol](./README.es.md)

This section documents how the UMS .NET API implementation applies the Evolith API Standard - .NET.

UMS is an applied reference, not the source of universal backend standards. Reusable backend rules belong in Evolith. UMS keeps concrete product modules, endpoints, headers, persistence choices, bounded contexts, seeds, and local implementation decisions.

## Documents

| Document | Purpose |
|---|---|
| [UMS API .NET Applied Reference](./ums-api-dotnet-applied-reference.md) | Evidence-based mapping between Evolith API topics and UMS source files. |

## Authority boundary

| Concern | Evolith | UMS |
|---|---|---|
| Reusable API standards | Owns principles, boilerplate rules, quality gates, and promotion criteria | Consumes standards |
| Product implementation | References examples only | Owns concrete source code and local decisions |
| Persistence | Owns provider governance and data-quality rules | Owns concrete DbContext, repositories, interceptors, migrations, and provider switches |
| API surface | Owns REST/GraphQL responsibility rules | Owns concrete endpoints, route groups, schemas, and bounded-context modules |
| Operations | Owns required capabilities | Owns concrete Serilog, OpenTelemetry, health checks, rate limits, and runtime values |

## Current evidence scope

This reference is based on the current .NET API under:

```text
src/apps/ums.api
```

Key observed sources include host bootstrap, service bootstrappers, middleware pipeline, API surface mapping, application DI, infrastructure DI, persistence provider configuration, health checks, AOP, background services, and operational controls.

---
[Back to Architecture Portal](../index.md)
102 changes: 102 additions & 0 deletions docs/architecture/api-dotnet/ums-api-dotnet-applied-reference.es.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
# Referencia Aplicada API Dotnet UMS

> Idioma: [English](./ums-api-dotnet-applied-reference.md) | [Espanol](./ums-api-dotnet-applied-reference.es.md)

## 1. Proposito

Este documento mapea la implementacion API Dotnet de UMS contra el Estandar API Dotnet de Evolith. Es una referencia aplicada de producto, no un estandar universal.

Las reglas backend reutilizables pertenecen a Evolith. Los detalles especificos de UMS permanecen aqui salvo que se promuevan mediante un ADR de Evolith, estandar de gobierno o patron canonico.

## 2. Alcance de fuente

La referencia aplicada cubre:

```text
src/apps/ums.api
```

Perfil observado:

| Aspecto | Implementacion UMS |
|---|---|
| Host | ASP.NET Core minimal host |
| Composicion | Bootstrappers de Presentation |
| Frontera de aplicacion | MediatR y FluentValidation |
| Superficie API | Comandos REST y consultas GraphQL |
| Versionado | Versionado API por segmento URL |
| Persistencia | EF Core con baseline SQL Server y soporte SQLite local |
| Operaciones | Logs estructurados, registro de telemetria, health checks, rate limits, background workers |
| Politicas transversales | Aspectos para auditoria, transacciones, validacion de tenant y logging |

## 3. Mapeo

| Topico Evolith | Evidencia fuente UMS | Clasificacion |
|---|---|---|
| Bootstrap de host | `Ums.Presentation/Program.cs` | Evidencia aplicada |
| Composicion modular de servicios | `Ums.Presentation/Bootstrapping/UmsApiServiceBootstrappers.cs` | Patron reutilizable |
| Frontera de aplicacion | `Ums.Application/DependencyInjection.cs` | Patron reutilizable |
| Pipeline middleware | `UseUmsApiPipeline` | Evidencia aplicada |
| Mapeo de superficie API | `MapUmsApiSurface` y route groups por bounded context | Evidencia aplicada; modulos concretos locales |
| Superficie GraphQL de consultas | `MapGraphQlSurface` | Candidato a estandar de gobierno Evolith |
| Modelo de health | `MapHealthSurface` y health checks de infraestructura | Patron operacional reutilizable |
| Setup de provider de persistencia | `Ums.Infrastructure/DependencyInjection.cs` | Patron reutilizable; matriz de providers local |
| Perfil EF Core SQL Server | Setup DbContext, retries, interceptors y tabla de historial de migraciones | Candidato a perfil de persistencia Evolith |
| Background workers | Hosted services de persistencia de auditoria y outbox dispatcher | Patron de confiabilidad reutilizable |
| Aspectos transversales | Setup AOP y registro de proxies MediatR | Candidato a patron canonico |

## 4. Items que deben permanecer locales en UMS

| Item | Razon |
|---|---|
| Bounded contexts y modulos de agregados | Modelo de dominio del producto. |
| Grupos de endpoints y nombres de rutas concretas | Superficie API de UMS. |
| Metadata de documentacion del producto | Identidad del producto UMS. |
| Nombres concretos de headers y claims | Contrato API local. |
| Helpers solo de desarrollo | Soporte de desarrollo local. |
| Valores runtime de limites y retries | Politica operacional del producto. |
| Nombres de schemas y clases de repositorio | Implementacion de persistencia UMS. |
| Clases de estrategia especificas del producto | Implementacion de capacidades UMS. |
| Seed data de desarrollo | Comportamiento de entorno local. |

## 5. Items a promover a Evolith

| Candidato | Destino de promocion |
|---|---|
| Minimal host mas composicion con bootstrappers nombrados | Estandar de bootstrap API Evolith |
| Gobierno de comandos REST y consultas GraphQL | Estandar de superficie API Evolith o ADR |
| MediatR mas pipeline de validacion | Perfil de capa de aplicacion Evolith |
| Problem Details y contexto de error seguro para usuario | Estandar de errores API Evolith |
| Perfil EF Core SQL Server | Estandar de persistencia Evolith |
| Abstracciones de request context y execution context | Estandar de tenancy y observabilidad Evolith |
| Modelo de liveness, readiness y backlog health | Estandar operacional Evolith |
| Outbox y procesamiento background de auditoria | Estandar de confiabilidad Evolith |
| Politicas transversales basadas en aspectos o decoradores | Patron canonico Evolith o ADR |

## 6. Items que requieren ADR o promocion formal

| Item | Accion requerida |
|---|---|
| Dotnet 10 como baseline runtime backend | ADR Evolith o actualizacion de stack autoritativo |
| Comandos REST y consultas GraphQL en un solo API tier | ADR de gobierno API Evolith |
| MediatR como frontera de aplicacion por defecto | ADR Evolith o perfil backend opcional |
| FluentValidation como estandar de pipeline de validacion | Estandar de ingenieria Evolith |
| EF Core mas SQL Server como perfil de persistencia por defecto | ADR de persistencia Evolith o estandar de stack |
| Libreria shell AOP como mecanismo transversal | Patron canonico Evolith y ADR |
| Perfil de retry y circuit breaker para persistencia | Estandar de resiliencia Evolith |
| Requisito de idempotencia para comandos | Estandar de confiabilidad API Evolith |

## 7. Checklist de validacion

Antes de cambiar la arquitectura API de UMS, validar:

- Clasificar el cambio como estandar Evolith, decision local UMS o candidato de promocion.
- Mantener patrones backend compartidos independientes del lenguaje de producto UMS.
- Mantener rutas, headers, seed data, schemas y clases de estrategia de producto en UMS.
- Proponer primero en Evolith las reglas reutilizables.
- Actualizar documentacion en ingles y espanol en conjunto.
- Mantener Markdown UTF-8 limpio y sin iconos decorativos.
- No modificar workflows ni hooks sin autorizacion explicita.

---
[Volver al Portal API Dotnet](./README.es.md)
102 changes: 102 additions & 0 deletions docs/architecture/api-dotnet/ums-api-dotnet-applied-reference.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
# UMS API .NET Applied Reference

> Language: [English](./ums-api-dotnet-applied-reference.md) | [Espanol](./ums-api-dotnet-applied-reference.es.md)

## 1. Purpose

This document maps the UMS .NET API implementation to the Evolith API Standard - .NET. It is an applied product reference, not a universal standard.

Reusable backend rules belong in Evolith. UMS-specific details remain here unless promoted through an Evolith ADR, governance standard, or canonical pattern.

## 2. Source scope

The applied reference covers:

```text
src/apps/ums.api
```

Observed profile:

| Concern | UMS implementation |
|---|---|
| Host | ASP.NET Core minimal host |
| Composition | Presentation bootstrappers |
| Application boundary | MediatR and FluentValidation |
| API surface | REST commands and GraphQL queries |
| Versioning | URL segment API versioning |
| Persistence | EF Core with SQL Server baseline and local SQLite support |
| Operations | Structured logs, telemetry registration, health checks, rate limits, background workers |
| Cross-cutting policies | Aspects for audit, transactions, tenant validation, and logging |

## 3. Mapping

| Evolith topic | UMS source evidence | Classification |
|---|---|---|
| Host bootstrap | `Ums.Presentation/Program.cs` | Applied evidence |
| Modular service composition | `Ums.Presentation/Bootstrapping/UmsApiServiceBootstrappers.cs` | Reusable pattern |
| Application boundary | `Ums.Application/DependencyInjection.cs` | Reusable pattern |
| Middleware pipeline | `UseUmsApiPipeline` | Applied evidence |
| API surface mapping | `MapUmsApiSurface` and bounded-context route groups | Applied evidence; concrete modules local |
| GraphQL query surface | `MapGraphQlSurface` | Candidate Evolith governance standard |
| Health model | `MapHealthSurface` and infrastructure health checks | Reusable operations pattern |
| Persistence provider setup | `Ums.Infrastructure/DependencyInjection.cs` | Pattern reusable; provider matrix local |
| SQL Server EF Core profile | DbContext setup, retries, interceptors, migration history table | Candidate Evolith persistence profile |
| Background workers | Audit persistence and outbox dispatcher hosted services | Reusable reliability pattern |
| Cross-cutting aspects | AOP setup and MediatR proxy registration | Candidate canonical pattern |

## 4. Items that should remain UMS-local

| Item | Reason |
|---|---|
| Bounded contexts and aggregate modules | Product domain model. |
| Concrete endpoint groups and route names | UMS API surface. |
| Product documentation metadata | UMS product identity. |
| Concrete header and claim names | Local API contract. |
| Development-only helpers | Local development support. |
| Runtime values for limits and retries | Product operations policy. |
| Schema names and repository class names | UMS persistence implementation. |
| Product-specific strategy classes | UMS capability implementation. |
| Development seed data | Local environment behavior. |

## 5. Items to promote to Evolith

| Candidate | Promotion target |
|---|---|
| Minimal host plus named bootstrapper composition | Evolith API bootstrap standard |
| REST commands plus GraphQL query governance | Evolith API surface standard or ADR |
| MediatR plus validation pipeline | Evolith application-layer profile |
| Problem Details and user-safe error context | Evolith API error standard |
| SQL Server EF Core profile | Evolith persistence standard |
| Request and execution context abstractions | Evolith tenancy and observability standard |
| Liveness, readiness, and backlog health model | Evolith operations standard |
| Outbox and audit background processing | Evolith reliability standard |
| Aspect or decorator based cross-cutting policies | Evolith canonical pattern or ADR |

## 6. Items requiring ADR or formal promotion

| Item | Required action |
|---|---|
| .NET 10 backend runtime baseline | Evolith ADR or authoritative stack update |
| REST commands and GraphQL queries in one API tier | Evolith API governance ADR |
| MediatR as default application boundary | Evolith ADR or optional backend profile |
| FluentValidation as validation pipeline standard | Evolith engineering standard |
| EF Core plus SQL Server as default persistence profile | Evolith persistence ADR or stack standard |
| AOP shell library as cross-cutting implementation mechanism | Evolith canonical pattern and ADR |
| Retry and circuit breaker profile for persistence | Evolith resilience standard |
| Idempotency requirement for commands | Evolith API reliability standard |

## 7. Validation checklist

Before changing UMS API architecture, validate:

- Classify the change as Evolith standard, UMS local decision, or promotion candidate.
- Keep shared backend patterns independent from UMS product language.
- Keep product routes, headers, seed data, schemas, and strategy classes in UMS.
- Propose reusable rules in Evolith first.
- Update English and Spanish documentation together.
- Keep Markdown UTF-8 clean and free from decorative icons.
- Do not modify workflows or hooks without explicit authorization.

---
[Back to API .NET Portal](./README.md)
3 changes: 3 additions & 0 deletions docs/architecture/index.es.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,9 @@ Planos detallados de ingeniería centrados en:
- **[Formatos de Exportación ER](./blueprints-es/er-export-formats.md)**: Exportaciones SQL, Mermaid e imágenes del esquema.
- **[Arquitectura de Librerías Shell](./blueprints-es/shell-library-architecture.md)**: Capa shell propia de UMS para patrones DDD y Factory heredados.

### [API Dotnet](./api-dotnet/README.es.md)
Referencia aplicada backend API para UMS. Esta seccion mapea evidencia actual de codigo fuente Dotnet contra el Estandar API Dotnet de Evolith manteniendo los detalles especificos de producto dentro de UMS.

### [Web Frontend](./web-frontend/README.es.md)
Referencia aplicada React Web para UMS. Esta seccion mapea evidencia actual de codigo fuente contra el Estandar Web Frontend React de Evolith manteniendo los detalles especificos de producto dentro de UMS.

Expand Down
3 changes: 3 additions & 0 deletions docs/architecture/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,9 @@ Detailed engineering blueprints focusing on:
- **[Shell Library Developer Guides](./shell-libraries/README.md)**: Comprehensive developer guides for all four shell libraries with independent and combined usage examples.
- [Ums.Shell.Ddd](./shell-libraries/ddd.md) · [Ums.Shell.Factory](./shell-libraries/factory.md) · [Ums.Shell.Aop](./shell-libraries/aop.md) · [Ums.Shell.Bootstrapper](./shell-libraries/bootstrapper.md) · [Combined Usage](./shell-libraries/combined-usage.md)

### [API .NET](./api-dotnet/README.md)
Applied backend API reference for UMS. This section maps current .NET API source evidence to the Evolith API Standard - .NET while keeping product-specific implementation details local to UMS.

### [Web Frontend](./web-frontend/README.md)
Applied React Web reference for UMS. This section maps current source evidence to the Evolith Web Frontend Standard - React while keeping product-specific implementation details local to UMS.

Expand Down
Loading