UMS — Enterprise User Management System
Bilingual Navigation: Versión en Español
↑ Evolith E2E Architecture Framework · UMS — Official Satellite Product · click to enlarge
UMS is a modular monolith for identity, authorization, configuration, approvals, compliance, IGA, and audit.
Built on .NET 10 · PostgreSQL · React 18 · TypeScript · Nx . Database-provider agnostic by design.
Applied satellite of the Evolith corporate architecture framework.
Quick Navigation Menu
Start Here — Choose Your Path
Path 1 — 5-Minute Overview
Product Vision · Architecture Overview · Traceability Matrix
What is UMS? What problem does it solve? How does it fit Evolith?
Path 3 — Make an Architectural Decision
Check ADR Registry — does the decision already exist?
If not, use the ADR Template
Verify against Evolith ADR Matrix — should this be promoted upstream?
Repository Structure (Deep Dive)
Architecture Decision Records
ADR
Title
Evolith
0050
Naming & Taxonomy Standard
Adopts ADR-0056
0051
Event Bus Injectable Port
Adopts ADR-0015
0052
Immutable Audit Trail
Adopts ADR-0016
0053
OpenTelemetry Observability
Adopts ADR-0007
0054
Shell Library Isolation
UMS-specific
0055
GraphQL/REST Hybrid API
Implements ADR-0012
0056
Clean Architecture Frontend
→ Evolith nodejs/0044
0057
Zustand + TanStack Query
→ Evolith nodejs/0045
0058
API Gateway YARP
Implements ADR-0008
0059
Single API Tier
Override of Evolith baseline
0060
AOP Cross-Cutting Concern
→ Evolith dotnet/0072
0061
Execution Context Accessor
→ Evolith dotnet/0064
0062
PII-Safe Serilog
→ Evolith dotnet/0065
0063
Idempotency Middleware
→ Evolith dotnet/0066
0064
Lean Root Repository Taxonomy
→ Evolith core/0070
0065
No Raw GUIDs in UI
→ Evolith nodejs/0046
0066
Actionable User Error Contract
→ Evolith nodejs/0047
0067
Modular Monolith Schema
→ Evolith core/0067
0068
Feature Flag System Scope
→ Evolith nodejs/0048
0069
Domain Inheritance Strategy
→ Evolith core/0071
0070
Database Schema Strategy
Adopts ADR-0067
0071
Authorization Graph Engine
UMS-specific
0072
Dynamic Auth Method Resolution
UMS-specific
0073
UMS SDK Multi-Runtime
UMS-specific
0074
Auth Graph Schema Versioning
UMS-specific
0075
Onboarding Approval Inbox
UMS-specific
0076
UTC Dates & Language Resolution
→ Evolith core/0072
0077
Tenant Portal Auth Boundary
UMS-specific
0078
DDD Domain Resource Hierarchy
UMS-specific
0079
Dependency Guard Policy
UMS-specific
0080
Auth Graph Preview Pipeline
UMS-specific
0081
Semantic Auth Graph Contract
UMS-specific
Also: Bounded Context Map · Cross-Context Flows · DDD Primitives
Contracts: Schema Overview · Error Codes · Compatibility Matrix · Semantic Client Contract
# Install all dependencies
cd src && npm install
# Frontend (React · Vite · port 5173)
npx nx run app-web:dev
# Backend (.NET 10 · port 7114)
cd src/apps/ums.api && dotnet build && dotnet run
# Run all tests
cd src && npx nx run-many --target=test --all
# Validate documentation consistency
python .bmad-core/scripts/validate_docs_consistency.py README.md docs/
Note: After any change requiring a server reload, kill backend (:7114) and frontend (:5173) and restart both.
UMS vs Evolith — What Goes Where
Question
Evolith (Upstream)
UMS (Satellite Product)
What belongs here?
Reusable standards, cross-product ADRs, canonical patterns, governance
Product-specific implementation, domain aggregates, schemas, seeds
How does a product contribute?
Promote an ADR backed by real UMS evidence
Provide executable proof, then propose upstream
What stays local?
Enterprise policies require governance review
Product routes, tenant configs, branding, UMS-specific ADRs
13 UMS ADRs have been promoted to Evolith. See the ADR table above (→ Evolith column).
Before contributing, read:
UMS — Enterprise User Management System · Satellite of Evolith · .NET 10 · React 18 · Modular Monolith