Перейти к основному содержимому

Cross-domain интеграции

Зачем нужно

Папка содержит контракты обмена данными между доменами. По одному файлу на интеграционную линию. Один источник истины контракта вместо разрозненных описаний внутри доменов.

Матрица интеграций

Колонки Источник и Потребитель задают семантическое направление данных. Новые однонаправленные файлы называются <source>--<target>.md; существующие bidirectional или исторически закреплённые pair-slug файлы не переименовываются без отдельной ссылочной миграции, если направление явно указано в матрице и frontmatter. Поэтому competitions--identity.md и task-bank--identity.md остаются canonical файлами для identity-sourced контракта с соответствующим доменом.

ИсточникПотребительФайлЧто передаётся
identityвсе доменыidentity--all.mdпользователь, токены, роли, actor context, события сессий и пользователей
identitycompetitionscompetitions--identity.mdorganization context, organization students, membership permissions
identitytask-banktask-bank--identity.mdorganization/team grants для доступа к задачам, подборкам, templates and snapshots
storefrontcrmstorefront--crm.mdлиды из форм
storefrontmanagementstorefront--management.mdпубличные метрики
crmlmscrm--lms.mdактивация и отзыв entitlements
lmscrmlms--crm.mdпотребление entitlement, расчёт выплат
crmcompetitionscrm--competitions.mdentitlements на участие в олимпиаде
crmmanagementcrm--management.mdфинансовые и операционные агрегаты
lmsstorefrontlms--storefront.mdпубличная проекция дорожной карты, факты
lmsmanagementlms--management.mdучебные факты, прогресс, evidence, геймификация
lms / Learning Workspacecompetitionscompetitions--lms.mdeducator profile, learning groups, authorized learning handoff
competitionslms / Learning Workspacecompetitions--lms.mdопубликованные/разрешённые результаты как учебный сигнал
task-banklmstask-bank--lms.mdзадачи, версии, activity/program snapshots, проверки
task-bankcompetitionstask-bank--competitions.mdproblem set/activity snapshots and source refs для tour activity binding
task-bankstorefronttask-bank--storefront.mdpublic-safe catalog projection
competitionsmanagementcompetitions--management.mdрезультаты, участие
competitionsstorefrontcompetitions--storefront.mdпубличные олимпиады, площадки, результаты и документы после publication
managementlmsmanagement--lms.mdрекомендации, диагностические задания
managementcrmmanagement--crm.mdплан команд, операционные задачи
platformвсе доменыplatform--all.mdreference-data события, фича-флаги

Шаблон файла интеграции

См. ../templates/integration.md. Каждый файл обязан содержать:

  • источник истины и потребитель;
  • сущности и события;
  • вид интеграции (online read, event-driven, sync snapshot, domain command);
  • payload-контракты (или ссылки на DTO в api-contracts.md источника);
  • идемпотентность и retry;
  • ошибки и компенсации;
  • права/scopes;
  • retention;
  • связи с ADR.

Правила

  • Один файл — одна интеграционная линия.
  • При изменении владения — оформить ADR.
  • При изменении payload — обновить контракт и потребителей.
  • Удаление интеграции — через ADR с переносом в archive/.
  • Общий список «мои ученики / мои группы» принадлежит Learning Workspace, а не competitions, task-bank или storefront.
  • Олимпиадный контур владеет только participation/submission/result lifecycle; учебный тренажёр, разбор и работа преподавателя с группой живут в LMS/Learning Workspace.
  • Storefront показывает только публичные проекции после publication и не становится владельцем исходных сущностей.
  • Grouped task-bank content передаётся во внешние домены через locked content_export_snapshot; mutable drafts не являются runtime source.