2.5 KiB
2.5 KiB
Task 6 report
RED baseline
pnpm audit:platform initially exited with code 1. The audit reported missing API declarations, route entries, and view files for the resource contract catalogue.
Implementation
- Added
src/api/resources.tsas the single front-end catalogue for all 46 backend resource contracts, including path, title, mode, page kind, and fields. - Added route modules and declarative list/tree pages for each resource.
- Added reusable read-only and tree pages; read-only definitions do not render create, edit, status, or archive controls.
- Updated the shared CRUD page with server-side keyword filters, identity-based details, typed form data, archive confirmation, and API error messages.
- Removed platform UI use of internal numeric identifiers in favour of
identityandparent_identity.
Verification
pnpm type:check— passpnpm audit:platform— passpnpm build— pass
Notes
The tree page consumes parent_identity; the corresponding menu API must expose that identity relation rather than an internal numeric parent key.
Fix round 1
- Replaced inferred front-end paths with an explicit 46-path catalogue: it includes the dashboard endpoint, adds
/ec/ec_order_item, and removes the non-list safety disposal action from the menu catalogue. - Corrected the safety, e-commerce, staff, and user API paths to match the registered backend routes exactly.
- Added audit assertions for exact path/mode/page-kind contracts, separate read-only UI surfaces, identifier leakage, and tree semantics.
- Detail drawers now filter
idand*_idfields before rendering.
Fix round 2
- The resource catalogue now contains exactly the 46 backend
ExpectedResourcesnames, including the append-onlysaf_event_disposalcontract rather than a synthetic dashboard entry. - Every definition has its own backend write allowlist and required
*_identityfields; no resource inherits a genericname/statusschema. - Safety disposal is a detail action on
saf_event(/safety/saf_event/:identity/disposals) and has no standalone menu or page. ec_categoryandplatform_menuuse tree pages. The shared tree preserves identity-first behavior and uses backendparent_idonly for in-memory hierarchy adaptation whenparent_identityis unavailable.- The audit transpiles and evaluates
resources.ts, then compares the resulting definitions, allowlists, required identities, modes, page types, tree semantics, and identifier-safety rules to the complete expected contract.