765cc632d5
Remove the Order demo (entity/feature/repo/config/gRPC/proto) and the three pre-marketplace migrations; regenerate a fresh InitialBaseline migration. Stand up the REST surface (PingController + System/Ping CQRS) proving the Mediator -> behaviors -> OperationResult -> ApiResult envelope end to end. Close wiring gaps: register LoggingBehavior (outermost) and add the built-in rate limiter (per-IP global + otp/auth/sensitive policies), placed before authentication. Add current-user + audit plumbing: ICurrentUser (HttpContext + null impls), rename BaseEntity audit fields to CreatedAt/ModifiedAt (DateTimeOffset) + CreatedById/ModifiedById, stamped by a new AuditFieldInterceptor. Introduce five cross-cutting seams (IDateTimeProvider, IFieldEncryptor, ICacheService, IObjectStorage, INotificationDispatcher) with in-memory/local mocks registered via AddCrossCuttingSeams. Add Baya.Test.Foundation (encryptor, audit interceptor, ping handler) and update docs, contracts (swagger.v1.json), handoff, report, and mocks registry.
28 lines
1.6 KiB
Markdown
28 lines
1.6 KiB
Markdown
# Backend status log (append-only)
|
|
|
|
One block per completed backend phase. Newest at the top. Backend lane writes here; frontend reads.
|
|
|
|
<!-- TEMPLATE — copy for each phase
|
|
## backend-phase-N — <Title> — <YYYY-MM-DD>
|
|
- **Shipped:** <entities/endpoints/seams in one or two lines>
|
|
- **Contracts:** dev/contracts/domains/<domain>.md + openapi snapshot refreshed (yes/no)
|
|
- **Mocked:** <which seams> (see reports/mocks-registry.md)
|
|
- **Gate:** build clean / tests green
|
|
- **Handoff:** backend/handoff/after-backend-phase-N.md
|
|
- **Notes for frontend:** <anything load-bearing>
|
|
-->
|
|
|
|
## backend-phase-0 — Foundation, cross-cutting seams & starter cleanup — 2026-06-28
|
|
- **Shipped:** removed the `Order` demo (entity/feature/repo/config/gRPC) + 3 old migrations; fresh
|
|
`InitialBaseline` migration; REST surface (`PingController` + `System/Ping` CQRS); `ICurrentUser` +
|
|
`AuditFieldInterceptor`; five cross-cutting seams (`IDateTimeProvider`, `IFieldEncryptor`,
|
|
`ICacheService`, `IObjectStorage`, `INotificationDispatcher`) with mocks; `LoggingBehavior` +
|
|
rate limiter (per-IP global + `otp`/`auth`/`sensitive`).
|
|
- **Contracts:** `dev/contracts/openapi/swagger.v1.json` published (envelope + ping schemas).
|
|
- **Mocked:** the 5 seams above → 🟡 (see reports/mocks-registry.md).
|
|
- **Gate:** build clean (0 new warnings) / tests green (10 pass). Live API verified vs `192.168.100.14`
|
|
(migration applied + seeded; ping `200`; rate-limit `429`).
|
|
- **Handoff:** backend/handoff/after-backend-phase-0.md
|
|
- **Notes for frontend:** `ApiResult` envelope is fixed (camelCase body, snake_case URLs);
|
|
`GET /api/v1/ping/get_status` is live to wire types against; `429` on over-limit.
|