Files
KArtSell.Aegis/docs/CURRENT/V13-FE-033_KBX_PROBLEM_DETAILS_ADOPTION_SLICE_NOTE.md
kjh2064 3f293d8aa8
deploy / deploy (push) Successful in 1m52s
deploy / notify (push) Successful in 1s
V13-FE-006: consolidate approved UI and contract hardening
2026-08-13 02:41:00 +09:00

2.2 KiB

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.tsclient.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.