Ролевая модель SAGA¶
Статус: Проект (доработано по комментариям от 2026-03-06)
Дата: 2026-03-04, обновлено 2026-03-20
Контекст: Разделение ролей разработки, продукта, клиентских данных и финансовых операций
Участники и зоны ответственности¶
| Человек | Зона | Роль |
|---|---|---|
| Alexandr Cherepanov | Разработка (сейчас все роли) | developer |
| Vladimir Osipov | Продукт и менеджмент | product_manager |
| Alina Avdienko | Продукт и менеджмент | product_manager |
| Denis Strizhkov | Поиск инвестиционных стратегий | strategy_analyst |
| Maria Potapneva | Бэк-офис инвестирования, крипто-портфель | investment_operator |
| Yuri Novik | Инфраструктура, аудит доступа (отложено) | auditor |
Предлагаемые роли¶
1. super_admin — Владелец платформы¶
Кто: Назначается индивидуально (сейчас — Alexandr)
Принцип: Полный доступ ко всему. Используется только для критических операций.
Примечание: Разработчик-соло неизбежно имеет доступ к prod-окружению для экстренных исправлений. Ограничение на уровне postgres-таблиц избыточно и мешает разработке. Экстренный доступ логируется и анализируется на корректность.
2. product_manager — Продукт и аналитика¶
Кто: Vladimir, Alina
Принцип: Видит всё, но не может менять финансы и выполнять операции с деньгами.
3. investment_operator — Оператор инвестиций¶
Кто: Maria (+ потенциально нанятый оператор)
Принцип: Реагирует на уведомления от платформы (депозиты, запросы на вывод). Не имеет доступа к данным пользователей — все финансовые операции обезличены. Также имеет доступ к аналитике доходности и стратегиям.
Рабочий процесс:
- Депозит: от Saga приходит уведомление о поступлении средств в Crypto2b (без указания пользователя). Оператор решает, когда забрать средства в пул.
- Вывод: от Saga приходит верифицированный запрос на вывод с адресом кошелька (без данных пользователя, см. SI-109). Оператор решает источник средств (из депозитов или из vault) и исполняет.
- Saga не управляет средствами — только отслеживает и сигнализирует.
4. strategy_analyst — Аналитик стратегий¶
Кто: Denis
Принцип: Доступ к аналитике доходности, стратегиям, vault-снимкам. Без доступа к персональным данным пользователей.
5. developer — Разработчик¶
Кто: Alexandr (в роли разработчика), другие разработчики
Принцип: Доступ к системной информации, health-мониторингу, тестовым данным. Без доступа к реальным клиентским данным и финансовым операциям.
6. auditor — Аудитор (отложено)¶
Кто: Yuri (потенциально)
Принцип: Read-only доступ ко всему для аудита и безопасности.
Статус: Отложена. Мониторинг и алерты на подозрительные операции сейчас в контуре Fordefi. Роль актуальна при внедрении автоматизации аудита на стороне Saga.
Матрица доступов¶
Легенда¶
- ✅ Полный доступ (чтение + запись)
- 👁 Только чтение
- 🔒 Обезличенные данные (без email/имён)
- ❌ Нет доступа
Примечание по investment_operator: все данные оператора обезличены — без email/имён пользователей, только суммы, статусы, адреса кошельков. Операции инициируются через уведомления от платформы, а не ручным поиском.
Управление пользователями¶
| Возможность | Супер-админ | Продукт | Оператор | Аналитик | Разработчик | Аудитор |
|---|---|---|---|---|---|---|
| Список пользователей (с email) | ✅ | 👁 | ❌ | ❌ | ❌ | 👁 |
| Детали пользователя | ✅ | 👁 | ❌ | ❌ | ❌ | 👁 |
| Кошельки пользователя | ✅ | ❌ | ❌ | ❌ | ❌ | 👁 |
| Блокировка / разблокировка | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Создание пользователя | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Удаление тестовых данных | ✅ | ❌ | ❌ | ❌ | ✅ | ❌ |
Блокировка: применяется при неудачном AML-скоринге (Crypto2b проверяет крипту с настраиваемым порогом толерантности к риску). Перед блокировкой средства возвращаются пользователю (юридическое требование). Только super_admin.
Инвестиции¶
| Возможность | Супер-админ | Продукт | Оператор | Аналитик | Разработчик | Аудитор |
|---|---|---|---|---|---|---|
| Список инвестиций | ✅ | 👁 | 👁🔒 | 👁🔒 | ❌ | 👁 |
| Одобрение / отклонение | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ |
| Массовое одобрение | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ |
| Закрытие инвестиции | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ |
| Создание инвестиции | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ |
| Очередь на одобрение | ✅ | 👁 | ✅ | ❌ | ❌ | 👁 |
| Стратегии (просмотр) | ✅ | 👁 | 👁 | 👁 | ❌ | 👁 |
| Стратегии (настройка APY) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
Депозиты¶
| Возможность | Супер-админ | Продукт | Оператор | Аналитик | Разработчик | Аудитор |
|---|---|---|---|---|---|---|
| Статистика депозитов | ✅ | 👁 | 👁 | 👁🔒 | ❌ | 👁 |
| Список депозитов | ✅ | 👁 | 👁🔒 | ❌ | ❌ | 👁 |
| Депозиты пользователя | ✅ | ❌ | ❌ | ❌ | ❌ | 👁 |
| Создание тест-депозита | ✅ | ❌ | ❌ | ❌ | ✅¹ | ❌ |
| Создание ручного депозита | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ |
| Обновление статуса | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ |
¹ — только для тестовых пользователей (@saga-test.local)
Выводы средств (withdrawals)¶
| Возможность | Супер-админ | Продукт | Оператор | Аналитик | Разработчик | Аудитор |
|---|---|---|---|---|---|---|
| Список выводов | ✅ | 👁 | 👁🔒 | ❌ | ❌ | 👁 |
| Ожидающие выводы | ✅ | 👁 | 👁🔒 | ❌ | ❌ | 👁 |
| Одобрение вывода | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ |
| Отклонение вывода | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ |
| Взятие в работу (process/take) | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ |
| Завершение с txHash (complete) | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ |
| Массовое взятие в работу | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ |
| Синхронизация статусов | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ |
| Ручное изменение статуса | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
Транзакции и аудит¶
| Возможность | Супер-админ | Продукт | Оператор | Аналитик | Разработчик | Аудитор |
|---|---|---|---|---|---|---|
| Журнал транзакций | ✅ | 👁 | 👁🔒 | 👁🔒 | ❌ | 👁 |
| Детали транзакции | ✅ | 👁 | 👁🔒 | ❌ | ❌ | 👁 |
| Экспорт CSV | ✅ | 👁 | ❌ | ❌ | ❌ | 👁 |
| Создание транзакции | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ |
| Подтверждение с txHash | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ |
| Генерация трансферов | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ |
| Исполнение трансферов | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ |
Vault-снимки и доходность¶
| Возможность | Супер-админ | Продукт | Оператор | Аналитик | Разработчик | Аудитор |
|---|---|---|---|---|---|---|
| Список снимков | ✅ | 👁 | 👁 | 👁 | ❌ | 👁 |
| Создание снимка | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ |
| Редактирование снимка | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ |
| Удаление снимка | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Отчёт о прибыли платформы | ✅ | 👁 | 👁 | 👁 | ❌ | 👁 |
| История прибыли (графики) | ✅ | 👁 | 👁 | 👁 | ❌ | 👁 |
Перемещения средств (fund transfers)¶
| Возможность | Супер-админ | Продукт | Оператор | Аналитик | Разработчик | Аудитор |
|---|---|---|---|---|---|---|
| Журнал перемещений | ✅ | 👁 | 👁 | ❌ | ❌ | 👁 |
| Создание записи | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ |
| Редактирование записи | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ |
| Удаление записи | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Итоги по локациям | ✅ | 👁 | 👁 | ❌ | ❌ | 👁 |
Примечание: журнал перемещений ведётся автоматически. Оператор может добавлять ручные записи и комментарии к автоматическим.
Дашборд и аналитика¶
| Возможность | Супер-админ | Продукт | Оператор | Аналитик | Разработчик | Аудитор |
|---|---|---|---|---|---|---|
| Дашборд (общий) | ✅ | 👁 | 👁🔒 | ❌ | ❌ | 👁 |
| Метрики системы | ✅ | 👁 | ❌ | ❌ | 👁 | 👁 |
| Аналитика (пользователи, инвестиции) | ✅ | 👁 | 👁🔒 | 👁🔒 | ❌ | 👁 |
| Финансовый отчёт системы | ✅ | 👁 | 👁 | ❌ | ❌ | 👁 |
| Статистика (admin stats) | ✅ | 👁 | ❌ | ❌ | ❌ | 👁 |
Системное администрирование¶
| Возможность | Супер-админ | Продукт | Оператор | Аналитик | Разработчик | Аудитор |
|---|---|---|---|---|---|---|
| Health-мониторинг зависимостей | ✅ | ❌ | ❌ | ❌ | 👁 | 👁 |
| Сброс статуса зависимости | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Crypto2B балансы | ✅ | ❌ | 👁 | ❌ | ❌ | 👁 |
| Сессии (просмотр/отзыв) | ✅ | ❌ | ❌ | ❌ | ❌ | 👁 |
| Аудит-лог действий админов | ✅ | ❌ | ❌ | ❌ | ❌ | 👁 |
Бэк-офис (blockchain monitoring)¶
| Возможность | Супер-админ | Продукт | Оператор | Аналитик | Разработчик | Аудитор |
|---|---|---|---|---|---|---|
| Транзакции блокчейна | ✅ | ❌ | 👁 | 👁 | ❌ | 👁 |
| Классификация транзакций | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ |
| Синхронизация с блокчейном | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ |
| Статистика бэк-офиса | ✅ | 👁 | 👁 | 👁 | ❌ | 👁 |
Примечание: backoffice-app — отдельное приложение с собственной системой прав, независимой от admin-app.
Принципы разделения¶
1. Разработка ≠ клиентские данные¶
Разработчик (developer) НЕ видит:
- Email реальных пользователей
- Балансы и суммы инвестиций
- Адреса кошельков
- Историю транзакций
Разработчик ВИДИТ:
- Health-мониторинг системы
- Метрики (агрегированные, без PII)
- Тестовые данные (
@saga-test.local)
2. Продукт ≠ финансовые операции¶
Product manager (product_manager) НЕ может:
- Одобрять/отклонять инвестиции и выводы
- Создавать депозиты/транзакции
- Выполнять блокчейн-операции
- Блокировать пользователей
Product manager МОЖЕТ:
- Видеть всю аналитику и статистику
- Видеть данные пользователей (read-only)
- Видеть очереди на одобрение
- Экспортировать отчёты
3. Оператор = обезличенные финансовые операции¶
Investment operator (investment_operator) работает через уведомления от платформы.
НЕ имеет доступа к:
- Данным пользователей (email, имена, профили)
- Конфигурации стратегий (APY, лимиты)
- Блокировке пользователей
- Управлению сессиями
- Удалению vault-снимков и fund transfers
МОЖЕТ:
- Реагировать на верифицированные запросы от Saga (депозиты, выводы)
- Выполнять крипто-операции (process → complete с txHash)
- Создавать vault-снимки
- Добавлять ручные записи и комментарии в журнал перемещений
- Просматривать аналитику доходности и стратегий
4. Аналитик стратегий = только метрики доходности¶
Strategy analyst (strategy_analyst) видит:
- Доходность стратегий, vault-снимки, прибыль платформы
- Обезличенную статистику инвестиций
- Транзакции блокчейна (для анализа стратегий)
5. Аудитор = read-only ко всему (отложено)¶
Auditor (auditor) видит всё, но не может ничего менять. Включая аудит-лог действий других администраторов.
Роль отложена — мониторинг сейчас в контуре Fordefi. Актуальна при автоматизации аудита на стороне Saga.
Текущее состояние vs целевое¶
Сейчас (MVP)¶
- 2 роли:
super_admin(всё) иadmin(почти всё) - Все админы видят всё и могут всё
- Разработка = клиентские данные = финансы (один человек)
Целевое (после обсуждения)¶
- 6 ролей с чётким разделением
- Принцип наименьших привилегий
- Аудит всех действий
- Обезличенные данные для ролей без необходимости PII
Решения по обсуждению (2026-03-06)¶
- Двойной контроль выводов: Верификация выполняется на бэкенде Saga (SI-109 — защита от несанкционированного вывода). Оператор получает уже проверенные запросы. Дополнительное подтверждение
super_adminне требуется. - Лимиты оператора: Лимиты управляются на стороне DeFi-контура (Fordefi). Собственные политики одобрения стратегий + обязательная +1 подпись на операции. Не дублировать в ролевой модели Saga.
- Product manager и блокировка: Блокировка — только
super_admin. Основание — неудачный AML-скоринг в Crypto2b (настраиваемый порог толерантности к риску). Перед блокировкой средства возвращаются пользователю (юридическое требование). - Доступ к prod-базе (auditor): Отложено. Мониторинг подозрительных операций сейчас полностью в контуре Fordefi. Роль
auditorактуальна при внедрении автоматизации на стороне Saga. - Отдельная роль
crypto_operator: Не нужна. Переводы через near intents работают надёжно и безопасно. - Бэк-офис приложение: backoffice-app — отдельное приложение с собственной системой прав, независимой от admin-app.