Files
Bridge-and-Join-s/docs/fansy-contract/v1/README.md
fontvielle 93bcbca12c feat(fansy-store): DDL принимающей БД + контракт данных для команды Fansy
- docs/fansy-contract/v1/ddl/000__roles.sql: роли fansy_etl, bj_reader, bj_migrator
- docs/fansy-contract/v1/ddl/001__schemas.sql: схемы fansy_staging и fansy с грантами
- docs/fansy-contract/v1/ddl/002__working.sql: рабочая схема (participants, securities, clients, client_documents, iia_contracts, settlement_requisites, depo_accounts, portfolios, etl_errors)
- docs/fansy-contract/v1/ddl/003__staging.sql: staging-зеркало с loaded_at и сниженными ограничениями
- docs/fansy-contract/v1/ddl/004__seed_participants.sql: предзаполнение справочника (НРД, БКС 5406121446, Ренессанс 7709258228, Альфа-Банк 7728168971)
- docs/fansy-contract/v1/data-dictionary.md: семантика каждого поля
- docs/fansy-contract/v1/etl-requirements.md: требования к ETL (UPSERT в staging, SLA свежести по таблицам, обработка ошибок)
- docs/fansy-contract/v1/examples/example-claim.md: SQL-запросы для формирования M2MTransferRequest
- docs/fansy-contract/v1/examples/seed-data.sql: 5 тестовых клиентов + портфели + договоры
- migrations/fansy-store/: рабочие копии миграций

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-14 00:45:37 +03:00

57 lines
3.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# docs/fansy-contract/v1 — контракт данных с командой Fansy
ETL Fansy → принимающая БД (`fansy-store`) реализует **другая команда
разработки**. С нашей стороны зафиксирован контракт: схема таблиц,
индексы, миграции, требования к выгрузке и тестовые данные.
## Состав каталога
- **`ddl/`** — SQL-миграции PostgreSQL:
- `000__roles.sql` — роли `fansy_etl` (ETL Fansy), `bj_reader`
(наши сервисы), `bj_migrator` (миграции).
- `001__schemas.sql` — две схемы: `fansy_staging` (куда пишет ETL) и
`fansy` (рабочая, для нашего чтения). Гранты по ролям.
- `002__working.sql` — рабочие таблицы: `participants`, `securities`,
`clients`, `client_documents`, `iia_contracts`,
`settlement_requisites`, `depo_accounts`, `portfolios`,
`etl_errors`.
- `003__staging.sql` — staging-зеркало рабочих таблиц с полем
`loaded_at` и сниженными ограничениями.
- `004__seed_participants.sql` — предзаполнение справочника
участников: НРД, БКС (5406121446), Ренессанс (7709258228),
Альфа-Банк (7728168971).
- **`data-dictionary.md`** — семантика каждого поля.
- **`etl-requirements.md`** — требования к процессу выгрузки от
команды Fansy: подключение, тип load (UPSERT в staging),
SLA свежести по таблицам, обработка ошибок, окна простоя, ПДн.
- **`examples/`**:
- `example-claim.md` — какие данные `m2m-core` тянет из БД для
одной типовой M2M-заявки (с конкретными SQL).
- `seed-data.sql` — 5 тестовых клиентов, портфели, договоры —
основа для приёмочного теста.
## Рабочие копии миграций
Те же файлы лежат в `migrations/fansy-store/` — оттуда они
применяются при инициализации БД сервиса.
## Порядок согласования
1. Передать команде Fansy ссылку на эту папку (тег `fansy-contract-v1`).
2. Обсудить с ними SLA, окна простоя, тип load.
3. По согласовании — дать им учётку с ролью `fansy_etl` и подсеть для
доступа.
4. Запустить совместный приёмочный тест на `seed-data.sql`.
5. Изменения контракта — через новую папку `v2/` с changelog'ом, без
правки `v1/`.
## Принципы
- Имена таблиц/колонок — `snake_case` английский.
- Комментарии к таблицам и важным колонкам — на русском
через `COMMENT ON ... IS '...'`.
- Все timestamp — `timestamptz` в UTC.
- DDL-права только у `bj_migrator`, у `fansy_etl` нет.
- ETL пишет ТОЛЬКО в `fansy_staging.*`. Перелив в `fansy.*` — на нашей
стороне после валидации.