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

Интеграции банка заданий

Зачем нужно

Интеграции банка заданий фиксируют, как задачи используются в LMS, олимпиадах, тренажёрах, диагностике и публичных примерах без создания копий канона.

Канонические cross-domain контракты

Кто использует

  • architecture;
  • engineering;
  • education;
  • product;
  • QA.

Сценарии

  • LMS подключает задачу к уроку;
  • LMS импортирует activity/program snapshots;
  • олимпиада формирует набор заданий тура;
  • олимпиада получает locked snapshot problem set или competition activity template;
  • LMS-тренажёр или разбор получает задачи по фильтру;
  • диагностика выбирает задачи по таксономии;
  • витрина показывает публичный каталог как projection;
  • аналитика получает check/evidence events без изменения канона задачи.
  • организация или команда получает доступ к подборке через identity organization context.

Данные

  • task reference;
  • task version;
  • activity/program template reference;
  • content export snapshot;
  • taxonomy filter;
  • usage context;
  • visibility rule;
  • organization/team access context;
  • check event, low-level problem attempt и explicit context_domain.

Правила

  • Соседние домены могут задавать контекст использования задачи, но не создают собственную каноническую копию.
  • Для воспроизводимости тура или урока потребитель фиксирует версию задачи.
  • Для grouped content внешние домены используют content_export_snapshot.
  • Task-bank владеет задачами, answer schema, checking rules, answer checks и low-level problem evidence.
  • Task-bank владеет activity/program templates; LMS и competitions владеют instances and results.
  • LMS владеет training attempts/review, competitions владеет submissions/results; эти данные не смешиваются с task-bank check artifacts.
  • Ответы и решения отдаются только по правилам видимости.
  • Organization/team access проверяется через identity context, Learning Workspace roster — через LMS, ownership подборок остаётся task-bank.

API

Канонические операции описаны в api-map.md и api-contracts.md:

СценарийОперации
поиск и чтение задачGET /problems, GET /problems/{problemId}, GET /problem-versions/{versionId}
чтение подборок и вариантовGET /problem-sets, GET /problem-sets/{setId}/items, GET /problem-versions/{versionId}/checking-rules
чтение и экспорт templatesGET /activity-templates, GET /program-templates, POST /activity-templates/{id}/exports, POST /program-templates/{id}/exports
чтение snapshotsGET /content-export-snapshots/{snapshotId}
решения, подсказки и ключи по правамGET /problem-versions/{versionId}/solutions, GET /problem-versions/{versionId}/hints, visibility policy в api-contracts.md
фиксация использованияPOST /usages, POST /usages/{usageId}/lock
попытки и проверкаPOST /attempts, POST /attempts/{attemptId}/submit, POST /attempts/{attemptId}/check

Cross-domain payloads для LMS и competitions зафиксированы в ../../integrations/task-bank--lms.md и ../../integrations/task-bank--competitions.md.

Серверная часть

Серверная часть банка заданий отдаёт read-модели задач и хранит связи использования только там, где это нужно для аудита и аналитики.

Интеграции

  • LMS — уроки, домашние задания, тетради;
  • LMS/Learning Workspace — тренажёры, разборы и учебные группы как external context;
  • competitions — туры и варианты;
  • management — диагностические наборы;
  • storefront — public catalog projection;
  • management — аналитика качества задач.
  • identity — user identity, organization/team memberships и grants для access checks.

Безопасность

Потребитель не должен получать закрытые ответы, решения или задачи, если его сценарий и роль не разрешают доступ.

Нестандартные случаи

  • задача изменилась после подключения к уроку;
  • потребитель запросил удалённую версию;
  • публичный пример случайно содержит закрытое решение;
  • один домен отправил повторное событие использования;
  • задача стала недоступной после публикации тура.
  • activity/program template изменился после export;
  • public projection запросил hidden answer key.

Готовность

  • задачи можно получать по версии и таксономии;
  • потребители фиксируют контекст использования;
  • каноническая задача не копируется в соседние домены;
  • ответы и решения защищены правилами видимости.
  • locked snapshots воспроизводят уже выданный content.