3.1 KiB
3.1 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.
Fix round 3
- Added tested backend identity-to-key resolution for public account and relationship requests; clients send
*_identity, while numeric keys remain internal persistence details. - Platform-menu and e-commerce-category tree responses now expose
parent_identityand omitparent_id; the front-end tree no longer falls back to numeric keys. - Settlement input accepts
subject_identitywith supported gas, delivery, and staff subject types. - The platform audit now cross-checks every front-end definition against the backend resource catalogue and registered route source.