V13-FE-006: consolidate approved UI and contract hardening
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
# V13-FE-033 — KBX ProblemDetails adoption Slice note
|
||||
|
||||
## Scope
|
||||
|
||||
- **WBS:** V13-FE-033
|
||||
- **Requirement/API/Test:** REQ-FE-ERROR / Cross / T-FE-ERROR-01
|
||||
- **Goal:** KBX v60 problem discriminator and recovery metadata를 현재 ASP.NET ProblemDetails + Zod 경계에 제한적으로 차용한다.
|
||||
- **Status:** IN_PROGRESS
|
||||
|
||||
## Source / Assumption / Unknown / Decision Required
|
||||
|
||||
- **Source:** `docs/Design/kbx-foundation-v60-status-canonical-contract-hardening/contracts/problems/kbx.problem.schema.json`, `packages/kbx-ui`의 오류 계약, 현재 `frontend/src/shared/api/problem.ts`와 `client.ts`.
|
||||
- **Assumption:** 기존 `status` HTTP 필드는 유지한다. KBX `type`은 도메인 오류 분류를 보강하는 discriminator로만 사용한다.
|
||||
- **Unknown:** BE가 실제로 `correlationId`, `retryable`, `validationErrors`, `actions`를 어떤 JSON naming policy로 발행하는지와 모든 endpoint의 응답 일관성.
|
||||
- **Decision Required:** BE/Architect가 공통 ProblemDetails payload의 필드명과 401/403/409/422/429/503별 표준 메시지·재시도 정책을 승인해야 한다.
|
||||
|
||||
## Adopted
|
||||
|
||||
- Discriminator: `validation`, `business-rule`, `conflict`, `permission`, `not-found`, `integration`, `system`.
|
||||
- Recovery metadata: `correlationId`, `code`, `retryable`, `currentVersion`, `actions`, structured validation errors.
|
||||
- Pure FE interaction mapping: `UNAUTHORIZED`, `FORBIDDEN`, `CONFLICT`, `VALIDATION`, `RETRYABLE`, `ERROR`.
|
||||
|
||||
## Explicitly not adopted
|
||||
|
||||
- OMS lifecycle/shipment status values, OMS routes, database migrations, generated clients, PrimeVue/AG Grid imports, automatic retry execution, or KIS/order submission behavior.
|
||||
- No server-side error contract was invented; current implementation accepts the proposed fields but does not claim BE parity.
|
||||
|
||||
## Evidence
|
||||
|
||||
- `pnpm exec vitest run src/shared/api/tests/problem.spec.ts`: 1 file, 9 tests passed.
|
||||
- `pnpm typecheck`: passed (`vue-tsc --noEmit`).
|
||||
|
||||
## Remaining acceptance evidence
|
||||
|
||||
- BE contract fixture or live endpoint evidence for all six interaction classes.
|
||||
- API Architect approval of field naming, redaction, correlation propagation, and retry ownership.
|
||||
- Browser/component evidence that each standard state renders the approved action without duplicate submission.
|
||||
Reference in New Issue
Block a user