Files
Bridge-and-Join-s/docs/fansy-contract/v1/README.md
T
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

3.4 KiB
Raw Blame History

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.* — на нашей стороне после валидации.