# V13-FE-022 — URL query codec slice note

- **Requirement:** REQ-FE-URL
- **API/UI/Test:** UI-URL-01 / T-FE-URL-01
- **Source:** v60 deep-link/canonical route boundary; current `frontend/src/shared/crud/queryCodec.ts`.
- **Assumption:** Each screen that consumes the codec can provide an approved field/operator allowlist from its resource contract.
- **Unknown:** No active production screen currently wires this codec to router state.
- **Decision Required:** FE/QA must approve per-resource filter/sort allowlists before enabling URL synchronization in a screen.

## Applied boundary

- Added optional allowlists for sort fields, filter fields, and filter operators.
- When supplied, unapproved URL values are discarded and the approved fallback remains authoritative.
- Preserved existing behavior for callers that have not yet supplied a screen-specific allowlist.
- Kept URL state as a serializable query contract; no Pinia/server-state duplication was introduced.

## Evidence

```text
pnpm test -- src/shared/crud/tests/queryCodec.spec.ts
PASS: 1 file / 3 tests (2026-08-12)

pnpm typecheck
PASS (2026-08-12)
```

The Slice remains IN_PROGRESS until a production screen supplies an approved allowlist and deep-link browser evidence is collected.
