Модель доступа
Организация, роли, приглашения, отзыв доступа и журнал действий. Права проверяются на сервере с учётом организации, чтобы изменение состава сотрудников не открывало доступ к чужим данным.
Услуги
Проектируем продукты, где есть организации, роли, тарифы и внешние системы. Права и границы данных закладываем в модель сразу. Собираем продукт под вашу продажу, а не универсальный конструктор «на все отрасли».
Организация, роли, приглашения, отзыв доступа и журнал действий. Права проверяются на сервере с учётом организации, чтобы изменение состава сотрудников не открывало доступ к чужим данным.
Для нескольких компаний выбираем отдельные схемы или базы либо общую базу с обязательным идентификатором организации в каждом запросе. Решение зависит от требований к изоляции, восстановлению и стоимости эксплуатации.
Списки, статусы, очереди, фильтры, массовые действия, выгрузки. Экран для оператора и экран для клиента компании считаются разными продуктами, даже если сущности одни.
Подписка, пользовательские места, лимиты, пробный период и счета. Для платёжных операций предусматриваем идемпотентность, сверку статусов и историю изменения тарифа.
OpenAPI, вебхуки, очереди и безопасная повторная обработка запросов. Контракт должен описывать доступные операции, ошибки и права без скрытых API, обходящих общую модель доступа.
Логи с идентификаторами организации и пользователя, ошибки API, состояние очередей и базовые оповещения. Такой контекст сокращает время диагностики и помогает разбирать обращения пользователей.
Базовый технический контур направления. Конкретные границы, интеграции и способ размещения фиксируем после разбора задачи.
01Доступ
02Продукт
03Контроль
TypeScriptNode.jsPostgreSQLRedisNext.jsReactочередь задачOpenAPI
01
2–3 недели
Сущности, границы организаций, события и матрица прав. Модель согласуем до разработки, чтобы не менять базовые ограничения после запуска.
Приёмка: Схема модели и список сценариев первого этапа.
02
4–8 недель после модели
Регистрация или приглашение, роль, ключевое действие, отчёт или счёт. Появляется то, что можно принимать, а не набор макетов.
Приёмка: Стенд, на котором роль проходит путь до результата.
03
по составу
Остальные роли, биллинг, интеграции, админка оператора. Каждый кусок принимается своим сценарием, не «всё сразу в конце».
Приёмка: Закрытый состав этапа на stage с миграциями.
04
1–3 недели
Рабочее окружение, секреты, логи, базовые оповещения и регламент доступа. Репозиторий и инфраструктура передаются заказчику.
Приёмка: Рабочее окружение передано заказчику вместе с журналом и инструкцией по инциденту.
Право проверяется на сервере по роли и организации. Скрытие элемента в интерфейсе не заменяет серверную проверку доступа.
Журнал фиксирует приглашения, выгрузки и изменения тарифа. Он используется для аудита доступа и разбора инцидентов, но не заменяет остальные меры защиты персональных данных.
Повтор уведомления от кассы или партнёра не должен создать второй счёт или вторую отгрузку. Ключ идемпотентности это стандарт платёжных и интеграционных API.
Если система обрабатывает данные граждан РФ, до разработки фиксируем место хранения, состав обработчиков и процедуру удаления данных организации. Юридические основания и регламенты подтверждает заказчик.
Первый рабочий сценарий с ролями и одной организацией обычно занимает 8–16 недель от старта проекта. После утверждения доменной модели разработка самого сценария занимает ориентировочно 4–8 недель. Точный срок зависит от интеграций и критериев приёмки.
Срок растёт, если:
На выходе: продукт с понятными ролями, изолированными данными клиентов и дорожкой, по которой можно добавлять сущности без переписывания ядра. Код, база и ключи остаются у вас.
За месяц можно собрать узкий сценарий и проверить гипотезу. Продукт с организациями, правами и биллингом за месяц не получается устойчивым. Это не особенность студии, так устроен объём.
Если продукт используется несколькими организациями и их данные нельзя смешивать, нужен идентификатор организации и серверные проверки каждого запроса. Отдельная база для каждого клиента нужна, когда этого требуют договор, регуляторные ограничения или модель восстановления.
Да. Модель, границы сервисов, контракт API и критерии приёмки. Сборку тогда ведёт внутренняя команда по этой рамке.
Схема биллинга должна соответствовать модели продаж: договор и счёт, подписка, пользовательские места или объём. Для эквайринга предусматриваем сверку платежей и историю изменения тарифа.
Место хранения должно соответствовать договору и требованиям к персональным данным. Рабочую базу размещаем в инфраструктуре заказчика, выбранной с учётом этих ограничений.
База: серверные права, журнал, секреты вне репозитория, HTTPS, разделение админки. Аудит ИБ, багбаунти и формальные сертификаты это отдельные закупки со своим сроком.
Следующий шаг
Опишите задачу, срок и ограничения. Ответим в рабочий день: берёмся ли и каким будет первый этап.