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

Матрица прав

Принципы

  • Public/read endpoints не возвращают answer keys, hidden solutions и teacher notes.
  • Visibility решений зависит от контекста использования, статуса внешнего домена и permissions.
  • Published problem version нельзя менять даже пользователю с admin permission.
  • Manual override, import/export и доступ к закрытым решениям аудируются.
  • Сервисные потребители используют service scopes.

Permissions

PermissionНазначение
task-bank.problems.readчитать доступные задачи
task-bank.problems.manageсоздавать и редактировать problem
task-bank.versions.readчитать versions в authoring/admin
task-bank.versions.manageредактировать draft/review versions
task-bank.versions.publishпубликовать versions
task-bank.solutions.readчитать решения по visibility
task-bank.solutions.manageредактировать решения
task-bank.hints.readчитать подсказки по visibility
task-bank.hints.manageредактировать подсказки
task-bank.answer_keys.readчитать ключи ответов
task-bank.checking_rules.manageуправлять проверкой
task-bank.taxonomy.readчитать taxonomy
task-bank.taxonomy.manageуправлять taxonomy
task-bank.relations.readчитать связи задач
task-bank.relations.manageсоздавать и редактировать suggested relations
task-bank.relations.moderateподтверждать/отклонять связи
task-bank.sets.readчитать подборки
task-bank.sets.manageредактировать подборки
task-bank.sets.publishпубликовать подборки
task-bank.activity_templates.readчитать шаблоны активностей
task-bank.activity_templates.manageредактировать шаблоны активностей
task-bank.activity_templates.publishпубликовать шаблоны активностей
task-bank.program_templates.readчитать программы и треки
task-bank.program_templates.manageредактировать программы и треки
task-bank.program_templates.publishпубликовать программы
task-bank.publication.manageуправлять public publication profile
task-bank.usages.manageуправлять usage
task-bank.checks.manageзапускать/читать checks
task-bank.checks.overridemanual override результата
task-bank.manual_reviews.readчитать очередь ручной проверки
task-bank.manual_reviews.manageназначать и проверять вручную
task-bank.evidence.readчитать evidence
task-bank.imports.manageимпортировать задачи
task-bank.exports.createэкспортировать задачи
task-bank.exports.readчитать snapshots
task-bank.exports.lockфиксировать snapshots
task-bank.audit.readчитать audit
task-bank.adminсистемные настройки

Endpoint matrix

Endpoint/actionPermissionScopeAudit
GET /problemstask-bank.problems.readvisibility + statusno
POST /problemstask-bank.problems.manageauthoringyes
PATCH /problem-versions/{id}task-bank.versions.managedraft/review onlyyes
POST /problem-versions/{id}/publishtask-bank.versions.publishmethodist/adminyes
GET /problem-versions/{id}/solutionstask-bank.solutions.readvisibility policyyes if hidden
GET /answer-keystask-bank.answer_keys.readchecking/authoringyes
POST /checking-rulestask-bank.checking_rules.manageauthoringyes
POST /problems/{id}/relationstask-bank.relations.manageauthoringyes
POST /problem-relations/{id}/confirmtask-bank.relations.moderatemethodistyes
POST /activity-templatestask-bank.activity_templates.manageauthoringyes
POST /activity-templates/{id}/publishtask-bank.activity_templates.publishmethodist/adminyes
POST /program-templatestask-bank.program_templates.manageauthoringyes
POST /program-templates/{id}/publishtask-bank.program_templates.publishmethodist/adminyes
PATCH /publication-profiles/{problemId}task-bank.publication.managemethodist/adminyes
GET /public/tasks/{id}publicpublic projectionno
POST /usagesservice scope or task-bank.usages.managetarget domainyes
GET /content-export-snapshots/{id}service scope or task-bank.exports.readtarget domainyes if sensitive
POST /content-export-snapshots/{id}/locktask-bank.exports.lockservice/adminyes
POST /attemptsauthenticated/serviceowner/contextno
POST /attempts/{id}/submitowner/serviceattempt ownerno
POST /attempts/{id}/checkservice or task-bank.checks.managechecker/contextyes
POST /answer-checks/{id}/overridetask-bank.checks.overridechecker/adminyes
POST /manual-reviews/{id}/decisiontask-bank.manual_reviews.manageassigned checkeryes
GET /evidencetask-bank.evidence.readaggregate/serviceno
POST /importstask-bank.imports.manageadminyes
POST /exportstask-bank.exports.createadmin/methodistyes
GET /audit-logstask-bank.audit.readsecurity/adminyes

Actor contexts

ContextЧто разрешает
student_attemptусловие, свои attempts, разрешённый feedback
teacher_contextзадачи и решения в назначенном LMS/competitions контексте
checkerrubric, answer key, manual review queue
authoringdraft/review content
competition_secretзакрытые задачи до публикации
public_trainingопубликованные training задачи без закрытых key
public_catalogpublic-safe projection без hidden key/solution/teacher notes
template_authoringactivity/program drafts and review
snapshot_consumer_serviceчитать target-allowed locked snapshots
adminimport/export/audit/settings

Visibility gates

ДанныеGate
statementpublished version или authoring permission
hintusage policy + actor context
solutionsolution visibility + task-bank.solutions.read
answer keytask-bank.answer_keys.read
teacher notesteacher/checker/admin context
raw answerowner/checker/service context
evidenceaggregate/service permission
activity/program templatevisibility + organization grant + template permission
content export snapshottarget domain scope + payload allowlist
public projectionpublic status + license + embargo gates

Ролевые наборы

РольБазовые permissions
task-bank.authorproblems/manage, versions/manage, solutions/manage draft
task-bank.methodistauthor + versions.publish, taxonomy/manage, sets/manage
task-bank.template_designeractivity_templates/manage, program_templates/manage, sets/read
task-bank.relation_moderatorrelations/read/manage/moderate
task-bank.teacherproblems/read, solutions/read in context, checks/manage limited
task-bank.checkermanual_reviews/read/manage, answer_keys/read in assigned context
task-bank.consumer_serviceusages/manage, attempts/check service scope
task-bank.snapshot_consumer_serviceexports/read by target scope
task-bank.analyticsevidence/read
task-bank.adminall task-bank permissions

Audit events

Аудировать обязательно:

  • публикацию version;
  • изменение answer schema/key/checking rule;
  • чтение закрытого solution/key;
  • создание usage для закрытой задачи;
  • создание, чтение sensitive payload и lock snapshot;
  • изменение public publication profile;
  • relation moderation;
  • manual override;
  • import/export;
  • изменение visibility policy;
  • чтение audit logs.