Introduce comprehensive documentation covering architecture (ARCHITECTURE.md), concerns (CONCERNS.md), coding conventions (CONVENTIONS.md), integrations (INTEGRATIONS.md), technology stack (STACK.md), codebase structure (STRUCTURE.md), and testing patterns (TESTING.md). Enhance testing with additional test cases for external sign-in flows, ensuring accurate timestamp recording for identity links.
1.9 KiB
1.9 KiB
Codebase Structure
Top-Level Map
| Path | Purpose | Evidence |
|---|---|---|
src/apps/ |
Runnable application hosts | Elsa.sln |
src/common/ |
Shared infrastructure | Elsa.sln |
src/modules/ |
Feature and domain modules | Elsa.sln |
src/clients/ |
API client contracts | src/clients/Elsa.Api.Client/ |
test/ |
Unit, integration, component, and performance tests | test/Directory.Build.props |
build/ |
NUKE build automation | build/Build.cs |
specs/ |
Feature specifications and plans | specs/012-weaver-grounding-tools/plan.md |
Entry Points
- Main runtime entry points are the application projects under
src/apps/. - External Authentication is composed through
AddExternalAuthenticationServicesand optional EF Core replacement registration. - Endpoint discovery is module-based; identity-link endpoints live under
Elsa.ExternalAuthentication/Endpoints/IdentityLinks.
Module Boundaries
| Boundary | Belongs here | Must not be here |
|---|---|---|
Elsa.ExternalAuthentication |
Broker orchestration, contracts, in-memory stores, safe HTTP DTOs | Provider-specific protocol behavior |
Elsa.ExternalAuthentication.OpenIdConnect |
OIDC callback and provider adapter behavior | Elsa user authorization policy |
Elsa.ExternalAuthentication.Persistence.EFCore |
Durable entities and store implementations | UI presentation |
Elsa.Api.Client |
Backward-compatible client DTOs and HTTP contracts | Persistence entities |
Naming and Organization Rules
- C# files and public types use PascalCase.
- Modules are organized by feature, then by contracts/services/endpoints/stores.
- Namespaces follow folders and are file-scoped.
Evidence
Elsa.slnsrc/modules/Elsa.ExternalAuthentication/Extensions/ServiceCollectionExtensions.cssrc/modules/Elsa.ExternalAuthentication.Persistence.EFCore/Extensions/ServiceCollectionExtensions.cs.editorconfig