You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/HARDENING_CHECKLIST.md
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -48,7 +48,7 @@ Legend: `[ ]` todo · `[~]` in progress · `[x]` done · `[!]` blocked (needs de
48
48
-[x] 4.1 DB-independent OpenAPI generator — `apps/backend/src/openapi.ts` (Nest `preview: true`, no DB connection) + `generate:openapi` script; committed `packages/api-client/openapi.json` is byte-for-byte identical to the live spec. Findings: spec doesn't model the response envelope (responses are bare DTOs) and several endpoints are unannotated → mutator will unwrap `.data`; envelope/annotations to improve in 4.x/7.
49
49
-[x] 4.2 Replaced generation with **orval 8.16** (Option 3). `orval.config.ts` (react-query + zod targets) + `orval/envelope-transformer.cjs` (wraps every 2xx response in the envelope at gen time) + `src/mutator/custom-instance.ts` (auth/refresh-preserving axios, returns full envelope). Verified: `UsersQueryControllerFindAll200 = { success, message?, data?: PaginatedUsersResponseDto, pagination?, error? }` ✅. **Found+fixed a real spec bug**: bearer auth had `name`/`in` (only valid for apiKey) — orval's validation caught it.
-[~] 4.4 `safeAction` no-throw wrapper done (5.1). Zod schemas generated; wiring runtime zod-parse INTO safeAction is a remaining refinement.
51
+
-[~] 4.4 `safeAction` no-throw wrapper done (5.1). Zod schemas are generated and exported; the envelope transformer already makes generated types match runtime, so wiring a runtime zod-parse into safeAction is optional defense-in-depth (deferred — the only non-100% item).
0 commit comments