Перейти к содержанию

Безопасность, качество и эксплуатация

Модель безопасности и доступа

Мультитенантность и контроль доступа

Платформа использует soft multi-tenancy model на базе root organization unit pattern.

Пользователь может состоять в нескольких организациях и иметь разные роли в зависимости от текущего организационного контекста. Проверки доступа применяются на уровне сервисов, репозиториев, API и UI.

Публичная витрина

Организации могут публиковать выбранные данные через публичные страницы, публичные карточки растений, публичные списки, QR-label targets и глобальную карту.

Публичный слой использует отдельные DTO и visibility rules, чтобы не раскрывать внутренние поля и данные тенанта.

Двойной контур RBAC

В системе предусмотрена одна сущность User и две модели доступа по ролям: организационные роли и платформенные роли. Один пользователь может быть руководителем нескольких организаций и при этом он будет модератором платформы, другой пользователь выполняет роль инженера поддержки, поэтому должен иметь ограниченный доступ к любому тенанту и объекту, третий пользователь является стейкхолдером и ему доступны только дашборд-модули. Все три пользователя при этом авторизуются через единый флоу авторизации и аутентификации. Подробности механизма не раскрываются.

Нефункциональные требования

Ключевые атрибуты качества

Атрибут Сценарий Подход
Security Пользователь организации A не должен получить данные организации B tenant-scoped queries, RBAC, public DTO, integration tests
Reliability Зависший импорт не должен блокировать систему background jobs, stale detection, retry/manual restart
Maintainability Доменная модель активно меняется на MVP-стадии modular monolith, package boundaries, DTO/service layers
Performance Поиск по справочнику таксонов должен оставаться приемлемым при росте каталога indexes, normalized names, pagination, fuzzy matching strategy
Operability Сбой VPS не должен приводить к полной потере данных backups, restore plan, migration path

Режимы отказа

Риск Последствие Митигирующая мера
ошибка tenant filtering утечка данных тесты, AccessControlService, scoped queries
падение VPS недоступность сервиса backup, restore plan, migration path
потеря MinIO volume потеря фото/импортов object storage backup
зависший import job блокировка импорта job lifecycle, stale detection
public DTO leakage раскрытие внутренних данных отдельные DTO, visibility rules

Оценка масштаба и стоимости

Основные драйверы нагрузки

  • количество организаций;
  • количество экземпляров растений;
  • количество фото на растение;
  • размер Excel-импортов;
  • частота Smart Import;
  • объём публичного трафика на карты, QR-страницы и изображения;
  • объём справочника таксонов.

Основные драйверы стоимости

  • VPS / compute;
  • PostgreSQL/PostGIS storage;
  • object storage для фото и импортов;
  • резервные копии;
  • LLM calls для Smart Import;
  • трафик публичных страниц и изображений;
  • мониторинг и хранение логов.

Масштабные уровни

См. Дорожную карту