36 lines
2.3 KiB
Markdown
36 lines
2.3 KiB
Markdown
# Backend
|
|
|
|
## Назначение и authority
|
|
|
|
NestJS API WealthLedger владеет доменной логикой, данными, конфигурацией и
|
|
server-side интеграциями. Shared SDD policy, common reading pointers,
|
|
audit routing и `../references/**` policy задаёт root `AGENTS.md`.
|
|
|
|
Canonical SDD authority находится в `wealth-ledger-specs`, физически в
|
|
`../specs/openspec` от этого репозитория. Любая OpenSpec command, читающая или
|
|
изменяющая change, должна использовать `--store wealth-ledger-specs`.
|
|
|
|
Для устойчивых backend decisions читать [`../docs/adr/README.md`](../docs/adr/README.md).
|
|
|
|
## Canonical gate
|
|
|
|
Node 22 обязателен. После lockfile install единственный completion gate:
|
|
|
|
```bash
|
|
npm ci
|
|
npm run verify
|
|
```
|
|
|
|
Gate non-mutating и последовательно проверяет runtime, hygiene, ESLint, application/test TypeScript, risk-based Jest suite и build. `npm run lint:fix` и `npm run format` изменяют files и выполняются только явно; `npm run test:cov` — диагностика без общего threshold. `npm run test:e2e` не входит в passing gate до WL-P2-05 trigger из remediation registry.
|
|
Актуальные scripts проверять в `package.json`/`npm run`.
|
|
|
|
## Enforceable boundaries
|
|
|
|
- Style задают `eslint.config.mjs` и TypeScript configs; zero-warning lint и оба typecheck обязательны.
|
|
- Публичный HTTP API версионируется как `/api/v1`; generated backend OpenAPI — contract authority для frontend snapshot.
|
|
- Frontend не вызывает T-Bank напрямую; credentials, rate limiting и integration resilience остаются server-side.
|
|
- Не размещать frontend code, generated client или durable documentation в backend.
|
|
- Security, money, data integrity, concurrency, public contracts, critical journeys и regressions требуют risk-based tests. DTO, declarative config и thin scripts не требуют отдельного unit test без собственной logic.
|
|
|
|
Непроверяемые предпочтения являются guidance и не заменяют canonical gate.
|