Files
slp-modular-cms/aidlc-docs/_shared/reverse-engineering/business-overview.md
T

4.1 KiB

Business Overview

Business Context Diagram

+--------------------------------------------------+
|            SlpModularCms Platform                |
|                                                  |
|  +-----------+   +-----------+   +-----------+  |
|  | Identity  |   |   CMS     |   |Availability|  |
|  |  Module   |   |  Module   |   |  Module   |  |
|  | (Auth +   |   | (Content  |   | (System   |  |
|  |  Users)   |   | Mgmt)     |   |  Status)  |  |
|  +-----------+   +-----------+   +-----------+  |
|                                                  |
|  +-------------------------------------------+  |
|  |              Core / Shell                 |  |
|  |  (Domain entities, DbContext, Module I/F) |  |
|  +-------------------------------------------+  |
+--------------------------------------------------+
         |                           |
         v                           v
  [Admin Frontend]           [External Clients]
  (React SPA)                (API consumers)

Business Description

  • Business Description: SlpModularCms is a modular Content Management System (CMS) platform. It provides a REST API backend for managing CMS content, users, and system availability. The platform uses role-based access control (Owner, Admin, User) and supports a modular plugin architecture so that features can be added as independent modules.
  • Business Transactions:
    • User Authentication: Login with email/password, receive JWT access + refresh token pair; refresh tokens for continued sessions; revoke tokens on logout.
    • System Initialization: First-time setup — create initial Owner account before normal operations can begin.
    • User Invitation: Admins and Owners invite new users by email; new users complete their account setup via an invitation link.
    • System Availability Management: Owners can update the system availability status (Available / Maintenance / Unavailable); anyone can query current status.
    • CMS Content Management: (Planned — module structure is in place but CMS-specific content modules are not yet implemented.)
  • Business Dictionary:
    • Owner: Highest-privilege role; can manage users, modules, and system availability.
    • Admin: Can manage users and CMS content within their scope.
    • User: Standard access; can use CMS features but cannot manage system settings.
    • Module: An independently deployable feature unit that integrates into the CMS shell.
    • Invitation: A time-limited token sent to a new user allowing them to create their account.
    • Availability Status: Available | Maintenance | Unavailable — represents the operational state of the system.

Component Level Business Descriptions

SlpModularCms.Api

  • Purpose: ASP.NET Core Web API host — the entry point for all HTTP requests.
  • Responsibilities: Bootstraps the application, registers modules, configures middleware (auth, CORS, Swagger), exposes REST endpoints.

SlpModularCms.Core

  • Purpose: Shared domain core — entities, DbContext, interfaces, services, and migrations.
  • Responsibilities: Defines domain entities (ApplicationUser, ApplicationRole, Invitation, RefreshToken, GlobalAvailabilityState), persistence (EF Core + SQL Server), and shared service contracts.

SlpModularCms.Modules.Identity

  • Purpose: Authentication and user management module.
  • Responsibilities: Implements AuthController (login/refresh/revoke), SetupController (initial owner creation), UsersController (invite, complete-setup, validate-invitation).

SlpModularCms.Modules.Availability

  • Purpose: System availability / health status module.
  • Responsibilities: Implements AvailabilityController (get status, update status), caches status in-memory with circuit breaker, persists status changes to the database.

SlpModularCms.Core.Tests

  • Purpose: Unit tests for the Core layer.
  • Responsibilities: Tests for exception classes, invitation service logic, identity services.

SlpModularCms.Modules.Availability.Tests

  • Purpose: Unit/integration tests for the Availability module.
  • Responsibilities: Tests for availability service logic and controller behavior.