93bcbca12c
- 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>
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/ — оттуда они
применяются при инициализации БД сервиса.
Порядок согласования
- Передать команде Fansy ссылку на эту папку (тег
fansy-contract-v1). - Обсудить с ними SLA, окна простоя, тип load.
- По согласовании — дать им учётку с ролью
fansy_etlи подсеть для доступа. - Запустить совместный приёмочный тест на
seed-data.sql. - Изменения контракта — через новую папку
v2/с changelog'ом, без правкиv1/.
Принципы
- Имена таблиц/колонок —
snake_caseанглийский. - Комментарии к таблицам и важным колонкам — на русском
через
COMMENT ON ... IS '...'. - Все timestamp —
timestamptzв UTC. - DDL-права только у
bj_migrator, уfansy_etlнет. - ETL пишет ТОЛЬКО в
fansy_staging.*. Перелив вfansy.*— на нашей стороне после валидации.