Added detailed sections to `AGENTS.md`: - "Repo Snapshot (verified)" to describe the .NET 8 solution structure and current implementation state. - "High-value Commands" with instructions for building and running the solution. - "Architecture That Matters During Edits" to outline dependency direction, key libraries, and response contract. - "Current Implementation Gaps (easy to miss)" to highlight incomplete implementations and areas needing verification. - "Config/Security Gotcha" to warn about sensitive data in `appsettings.json`. Updated `README.md`: - Added "Wichtiger Hinweis zu DB-Spaltennamen" to explain DB column mapping practices and emphasize the need for final verification of stored procedure result sets. - Clarified that DB field names are mapped only in the Infrastructure layer, not in Domain models.
2.2 KiB
2.2 KiB
AGENTS
Repo Snapshot (verified)
- This is a .NET 8 solution with 4 projects: API (
src/presentation/DigitalData.TaskFlow.API), Application, Domain, Infrastructure. Program.csonly wires DI + Swagger +MapControllers; there are currently no controller classes, so no HTTP endpoints are exposed yet.- There is no test project in the repository right now.
High-value Commands
- Restore/build whole solution from repo root:
dotnet restore DigitalData.TaskFlow.slndotnet build DigitalData.TaskFlow.sln
- Run API project:
dotnet run --project src/presentation/DigitalData.TaskFlow.API/DigitalData.TaskFlow.API.csproj
- Focused build for one layer:
dotnet build src/core/DigitalData.TaskFlow.Application/DigitalData.TaskFlow.Application.csproj
Architecture That Matters During Edits
- Dependency direction is strict:
API -> Application -> Domain;Infrastructuredepends onApplication+Domainand is injected by API. - Application layer uses MediatR + FluentValidation pipeline behavior (
ValidationBehavior<,>) + AutoMapper profile (ApplicationMappingProfile). - Response contract is centralized in Domain
ApiEnvelope<T>+MetaEntry; useApiEnvelopeFactoryfor consistentmeta.code/messagemapping. - Infrastructure registers
TaskFlowDbContextand repository interfaces inDependencyInjection.cs; missingConnectionStrings:TaskFlowDbthrows at startup. - DB row-shape models (for procedures/views) live in Infrastructure (
Persistence/Models), not in Domain.
Current Implementation Gaps (easy to miss)
DocumentRepositoryandWorkflowRepository.CloseAsyncare still baseline/stub implementations returning placeholder data.WorkflowListingReadModelcolumn mapping is based on read-only DB metadata and observed SP result sets; final shape must be re-verified from DB metadata (sp_describe_first_result_setor equivalent) before production hardening.Swagger:EnabledInProductionexists in config model but is not used inProgram.csyet.
Config/Security Gotcha
src/presentation/DigitalData.TaskFlow.API/appsettings.jsoncurrently contains a concrete SQL connection string and a MediatR license key; treat this file as sensitive and avoid propagating those values in docs, logs, or commits.