[EPIC-IAD-002] Multi-Tenancy & Group Domain Bounding
Разделение арендаторов, логика наследования прав и управление контурами HOME/OFFICE
NoteКраткая карточка эпика
- Эпик: (EPIC-IAD-002)
- Компоненты: auth-identity-service, Kafka (KRaft), Mobile App, Auth_db
- Статус: Готово к реализации
- Направление связи: IAD \(\rightarrow\) Kafka (
bpds.iad.out.group.change) \(\rightarrow\) Смежные сервисы
Бизнес-контекст и цель (Business Context)
Система BPDS обязана строго разделять данные семей и корпоративных клиентов. Этот эпик изолирует логику создания орг-структур (групп). Тип контура (HOME или OFFICE) и системный home_group_id пакуются в JWT-токен на этапе авторизации. При изменении состава группы (добавление/удаление участника) IAD отправляет асинхронное out-событие в Kafka для синхронизации кэша прав в смежных БД.
Список атомарных задач:
- [Migrations] Схема орг-структур [Метод 1]: Создание DDL-миграции связей групп, ролей участников и флагов тарификации (
002_init_group_tenants.sql). - [Backend] Метод создания группы [Метод 2]: Реализация эндпоинта инициации новой группы с выбором режима HOME/OFFICE (
create_group.py). - [Backend] Метод приглашения пользователей [Метод 3]: Реализация эндпоинта генерации инвайт-ссылок и проверки прав доступа (
invite_user.py). - [Backend] Эмиттер событий изменения групп [Метод 4]: Интеграция Кафка-продюсера для отправки фактов изменений в топик
bpds.iad.out.group.change(group_event_producer.py). - [Backend] Консьюмер ИИ-банов [Метод 5]: Реализация слушателя топика
bpds.aid.out.profanity.violate. При получении сигнала от ИИ-цензора мгновенно блокируетuser_idи сбрасывает его сессию в Redis (profanity_ban_handler.py). - [Frontend] Экран управления Семьей/Офисом [Экран 1]: Разработка интерфейса добавления сотрудников/родственников и отображения текущего типа контура (
group_management_screen.dart).