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

Границы домена

Зачем нужно

Документ фиксирует, чем владеет identity, кто использует домен, какие соседние домены от него зависят и какие решения нельзя переносить внутрь identity.

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

  • пользователь;
  • ребёнок;
  • родитель;
  • преподаватель;
  • самозаявленный преподаватель;
  • внешний преподаватель;
  • администратор;
  • support;
  • сервисы экосистемы;
  • плагины;
  • внешние OAuth/OIDC clients.

Что входит

Аккаунт и профиль

Identity владеет аккаунтом пользователя, контактами, профилем, avatar/display name, кастомными полями, educator_profile и настройками безопасности.

Вход и сессии

Identity владеет регистрацией, входом, auth flow, JWT, refresh token rotation, sessions, saved accounts, logout, reset password и verification codes.

Доступ

Identity владеет ролями, permissions, user role assignments, организационными и командными ролями, семейным доступом и actor context.

Семьи

Identity владеет семейной группой, связями взрослых с семьёй, student_profile детей, linked child user references, delegated sessions и child device authorization. Родительский контроль сервисов не входит в обязательную MVP-модель Family Group и требует отдельного решения.

Организации

Identity владеет организациями как access/context layer: organization_reference, organization, membership, invitations, ownership claims, ownership transfers, organization roles, teams, permission grants, organization students, duplicate status and manual merge lifecycle.

OAuth/OIDC

Identity владеет OAuth clients, authorization codes, refresh tokens, consent, OIDC discovery, JWKS, introspection и revocation.

Временный platform host

identity-api временно хостит platform-owned endpoints для settings, navigation, pages config, i18n, plugin registry, transports и notifications. Ownership остаётся у platform-слоя по ADR-035; identity владеет только security audit logs, auth event logs и OAuth/OIDC.

Что не входит

ЗонаВладелецПочему не identity
Продукты, цены, покупки, entitlementCRM / billing / product contourIdentity только проверяет пользователя и роль, но не решает, что куплено
Курсы, уроки, прогрессLMSIdentity не владеет учебным состоянием
Learning Workspace, рабочие группы и участникиLMSIdentity отдаёт пользователя, анкету и access scopes, но не владеет рабочими группами преподавателя
Олимпиадные участники и результатыcompetitionsIdentity даёт аккаунты и доступ, но не владеет участием
Учебный прогресс и enrollmentsLMSIdentity может дать student_profile или organization_student context, но не ведёт прогресс
Organization-scoped подборки задачtask-bankIdentity даёт organization/team/grant context, но не владеет задачами и подборками
Platform settings, navigation, pages config, plugins, notificationsplatformIdentity может временно хостить runtime API, но не является владельцем данных
Публичные профили и витринаstorefrontIdentity хранит базовые профили и consent, но не владеет публичной упаковкой
Аналитика и планированиеmanagementIdentity отдаёт события, но не строит управленческие выводы
Задачи и решенияtask-bankIdentity не владеет образовательным контентом

Главные правила

  • User не равен роли, родителю, ребёнку, преподавателю, клиенту или участнику олимпиады.
  • Роль отвечает на вопрос “что можно делать”, а не “кем является человек в бизнесе”.
  • Глобальной роли teacher нет; преподавательский доступ определяется assignment/membership/grants/product permissions.
  • educator_profile не выдаёт прав.
  • Learning Workspace — единый преподавательский режим, где организация и площадка выбираются как вложенные scopes/подслои.
  • Family context и organization context не смешиваются.
  • organization_student не смешивается с family student_profile, learning_group_participant, competition_participant или lms_enrollment.
  • organization_reference не даёт прав.
  • Product domains consume organization context and own their product entities.
  • Actor context фиксирует действие в контексте ребёнка или организации без подмены userId.
  • Доступ в соседний домен состоит из identity claims + локальных правил соседнего домена.
  • Identity не хранит оплату, учебный прогресс, результаты олимпиад и публичную SEO-структуру.

Контексты действия

Таблица ниже описывает технические access contexts для проверок и audit. В пользовательском интерфейсе преподавательский режим остаётся одним: организация, команда и площадка выбираются внутри Learning Workspace как scopes/подслои, а не как отдельные пользовательские режимы.

КонтекстЧто означаетПример
Personalпользователь действует от своего имениоткрыть профиль, сменить пароль
Family adultвзрослый действует в семейном контекстепосмотреть ребёнка, управлять доступом
Child delegatedвзрослый открывает детский режим для student_profile без подмены своего user_idоткрыть детский кабинет
Educator workspaceпользователь работает в преподавательском режиме; organization scope может быть выбран внутриоткрыть Learning Workspace
Organization memberпользователь действует в scope выбранной организацииуправлять официальными учениками школы
Team memberпользователь действует в команде организацииработа внутри конкретной команды
Adminсистемный администратор действует по правамизменить роль, заблокировать пользователя
OAuth clientвнешний сервис действует через токенполучить userinfo
Pluginплагин действует в разрешённом sandboxотправить OTP через transport

Готовность

  • у каждой сущности указан владелец;
  • соседние домены не копируют identity-сущности как собственный источник истины;
  • семейный, организационный и административный доступ различаются;
  • контекст действия передаётся в audit и в проверки доступа;
  • пользователь может быть связан с несколькими ролями и контекстами без создания дублей аккаунта.