LMS Technical Validation
Summary
Validation occurs across four layers:
- Value records require/normalize course code/title and certificate value; clamp duration/result; validate training-period date order.
- Endpoint helpers require strings, parse enums/material type/CSV values, verify referenced records, and enforce selected lifecycle guards.
- Database configuration enforces required/max-length, tenant uniqueness, link uniqueness, and completion uniqueness.
- Tenant context requires a tenant for writes, while global query filters scope tenant entities/evidence.
Domain entities mostly have public setters and no invariant methods. No FluentValidation or separate validator classes exist. Duplicate guards include tenant/course code, tenant/employee/course, completion/enrollment, path/course, event ID, and certificate value. Error handling mixes direct HTTP results, domain-validation middleware, external-service exceptions, and database failures. Fine-grained authorization/ownership validation is not confirmed.
Requires confirmation
Fine-grained authorization, production ownership, operational governance, and future architectural boundaries require confirmation where not implemented.
Source References
microservices/src/training-service/Domain/TrainingEntities.csmicroservices/src/training-service/Api/TrainingEndpoints.csmicroservices/src/training-service/Application/Common.csmicroservices/src/training-service/Infrastructure/TrainingDbContext.csmicroservices/src/training-service/Program.cs
Related Articles
See Also
Keywords
- LMS technical architecture
- Source-backed implementation
Revision Information
- Status: Draft
- Last reviewed: 2026-07-17
- Review cycle: Quarterly