App-Kit
Мультитенантная SaaS-платформа: Telegram-боты, мини-аппы и сайты из подключаемых модулей.
01 Задача
Один тенант владеет проектами, сайтами и модулями; каждому бизнесу (магазин, бронирование, CMS, отзывы) нужны свои данные, роли и интеграции — без форка кодовой базы. Платформе требовалась строгая изоляция на уровне сайта и возможность заменить внешнюю интеграцию на свой сервис, не трогая код модулей.
02 Что сделал
Backend на Django + DRF с моделью тенантности Project → Site → Modules. Фичи поставляются как подключаемые модули (магазин/заказы, бронирование, CMS, FAQ, отзывы, прайсинг, лояльность, рассылки), а каждая внешняя зависимость спрятана за адаптером ABC + фабрика (платежи, telegram, хранилище, изображения, уведомления, авторизация) и выбирается по конфигу сайта. Per-site RBAC даёт владельцу заводить свои роли и матрицу прав granted/denied; авторизация — JWT для админов и Telegram HMAC для клиентов мини-аппа. Три Next.js-фронтенда — client-admin, platform-admin и публичный storefront — работают с одним API.
- Мультитенантная модель Project → Site → Modules со строгой изоляцией данных по сайту
- Фичи как подключаемые модули; внешние сервисы за адаптерами ABC + фабрика, выбор по сайту
- Per-site RBAC: свои роли владельца + матрица прав granted/denied, авто-сид из модулей
- Двойная авторизация — JWT для админов, Telegram HMAC для клиентов; три Next.js-фронтенда на одном API
03 Результат
Новый бизнес поднимается на общей инфраструктуре со своими изолированными данными, ролями и модулями; смена интеграции — правка конфига, а не переписывание. Архитектура зафиксирована в большом наборе ADR, поэтому логика тенантности, адаптеров и авторизации сохраняется надолго.