Skip to content

📘 Документация к базе данных terra_rbac_service#

terra_rbac_service.png

🧩 Назначение#

База данных предназначена для управления административными правами пользователей в различных блоках системы (например: школы, события, наставничество) с учётом географии, типов сущностей и гибкой настройки доступа.


📂 Схема: terra_rbac_service#


📄 Таблица: users#

Описание: Содержит информацию о всех пользователях, которым могут назначаться административные роли.

Поле Тип Описание
uuid UUID Уникальный идентификатор пользователя
created_at TIMESTAMP Дата и время создания пользователя

📄 Таблица: admin_assignments#

Описание: Хранит назначения административных ролей конкретным пользователям в определённых блоках системы.

Поле Тип Описание
uuid UUID Уникальный идентификатор назначения
user_uuid UUID Пользователь, которому назначена роль
role TEXT Название роли (например: SUPER_USER, ADMIN)
block TEXT Блок данных (например: SCHOOL, EVENT)
can_delete_without_approval BOOLEAN Может ли удалять без подтверждения
can_share_permissions BOOLEAN Может ли делегировать свои права
assigned_by UUID Кто назначил роль
expired_by TIMESTAMP Срок действия назначения
can_create BOOLEAN Может ли создавать новые сущности
created_at TIMESTAMP Когда назначен
updated_at TIMESTAMP Последнее обновление
deleted_at TIMESTAMP Мягкое удаление

Ограничения: Уникальность user_uuid, block, role при deleted_at IS NULL.


📄 Таблица: admin_scopes#

Описание: Определяет, в каком контексте (география, сущность) администратор имеет доступ и какие действия ему разрешены.

Поле Тип Описание
uuid UUID Уникальный идентификатор области
assignments_uuid UUID Ссылка на назначение роли
entity_uuid UUID UUID сущности
entity_id INT ID сущности
country_id INT ID страны
district_id INT ID региона
city_id INT ID города
admin_accesses JSONB Список разрешённых действий
created_at TIMESTAMP Когда добавлен доступ
updated_at TIMESTAMP Последнее обновление
deleted_at TIMESTAMP Мягкое удаление

Ограничения: Уникальность сочетания assignments_uuid, country_id, district_id, city_id, entity_id, entity_uuid при deleted_at IS NULL.

entity_uuid и entity_id используются только в школах


📄 Таблица: deletion_requests#

Описание: Хранит запросы на удаление сущностей, требующие подтверждения.

Поле Тип Описание
uuid UUID Уникальный идентификатор запроса
user_uuid UUID Кто инициировал
block TEXT Блок, к которому относится объект
entity_uuid UUID UUID удаляемой сущности
entity_id INT ID удаляемой сущности
country_id INT ID страны
district_id INT ID региона
city_id INT ID города
status TEXT Статус запроса
created_at TIMESTAMP Дата создания
updated_at TIMESTAMP Дата последнего обновления
rejection_comment TEXT Причина отказа
approved_by UUID Кто подтвердил или отклонил

📄 Таблица: action_logs#

Описание: Логирование всех административных действий с указанием географии.

Поле Тип Описание
uuid UUID Уникальный идентификатор лога
action_type TEXT Тип действия
block TEXT Блок, к которому относится действие
entity_uuid UUID UUID сущности
entity_id INT ID сущности
user_uuid UUID Кто выполнил
result TEXT Результат
country_id INT ID страны
district_id INT ID региона
city_id INT ID города
created_at TIMESTAMP Время