2.0 KiB
2.0 KiB
OpenSpec Change: enterprise-api-schemas
- Change ID: enterprise-api-schemas
- Package:
@suaveplan/api-schemas - Category: universal
- Target path:
universal/docs/api-schemas - Status: PROPOSED
- Date: 2026-04-19
- Reference spec:
/mnt/s/web/suaveplan/enterprise/api-schemas.md
Summary
Shared Zod schemas describing Suaveplan API request / response shapes — the single source of truth consumed by server plugins, React data hooks, and generated OpenAPI documents. Groups: admin, auth, common, events, plus re-exports from extension capability packages. Leaf from workspace perspective.
Current-state audit (genesis)
Package does not exist yet — fresh build. Main branch ships packages/universal/api-schemas with per-domain barrels.
Dependencies
- Workspace: none (leaf)
- External (via catalog):
zod→catalog:forms;tslib;@opentelemetry/api - Dev (via catalog):
vitest,@vitest/coverage-istanbul,fast-check,mitata
Preserved public surface
- Re-export of
z(Zodzfacade) - Barrels:
./admin,./auth,./common,./events - Schema groups (each a Zod object with
.input,.outputpairs):- Admin:
AdminPingInput/Output,AdminHealthOutput,AdminStatusOutput - Auth:
LoginInput/Output,RegisterInput/Output,RefreshInput/Output,LogoutInput/Output,AuthContext - Common:
PaginationInput,SortInput,FilterInput,IdParam,TimestampsOutput,ErrorEnvelope - Events:
DomainEvent,EventEnvelope,EventMetadata
- Admin:
New genesis additions
- Codes:
API_SCHEMAS.VALIDATION_FAILED(convenience for consumers converting Zod errors toSuaveplanError). - Helper
toSuaveplanError(zodError, code)that lifts a ZodError into aSuaveplanError. - JSON Schema generator (
zod-to-json-schema) and OpenAPI adapter. - Property tests for every top-level schema via fast-check arbitraries.
Impact
- Adds one new package:
universal/docs/api-schemas - Adds one new spec capability:
api-schemas - Unblocks
api-docsand downstream API plugins.