проектdocs/Agents/rules/patterns-shared-schemas.md
patterns-shared-schemas.md
Обновлён 1 апр. 2026 г., 12:41 · 0 комментариев
title: Zod-схемы и граница контракта между qadam-core и qadam-web impact: HIGH impactDescription: Не даёт смешивать internal validation schemas и внешний web-контракт после split репозиториев tags: patterns, zod, validation, shared, openapi, repo-boundaries
Паспорт документа
- Статус документа: living standard
- Актуально на: 28 марта 2026 года
- Владелец: backend/platform-команда
- Пересмотр: при изменении инженерной практики, CI/CD, архитектурных правил или локального workflow
- Область применения: внутренние rule/reference-card документы для инженерной команды
- Связанные документы:
Zod-схемы и граница контракта
Impact: HIGH
После разделения репозиториев правило изменилось:
- внутри
qadam-coreZod-схемы вpackages/sharedостаются каноническим слоем input validation; qadam-webбольше не должен импортировать@repo/sharedкак рабочую зависимость для transport layer;- внешний web-контракт теперь проходит через OpenAPI artifact и generated types.
Где живут схемы
В qadam-core:
packages/shared/src/
schemas/
constants/
Именно эти схемы использует backend для:
- валидации входных данных;
- типизации DTO;
- OpenAPI generation и contract alignment.
Что использует frontend
В qadam-web источником истины по transport layer являются:
openapi/openapi.jsonapps/web/src/shared/api/generated/openapi.d.ts
Локальные form-level схемы во frontend допустимы только для UI/UX-валидации, но они не должны подменять backend-контракт.
Правила
- Backend input validation описывается в
qadam-core/packages/shared. - OpenAPI artifact экспортируется из
qadam-core. qadam-webполучает contract types через codegen, а не через импорт backend-исходников.- Нельзя возвращать frontend к прямому импорту
@repo/sharedради “удобства”. - Если схема изменилась и затронула web, change package обязан обновить OpenAPI artifact и mirror в
qadam-web.