Тема
Полный каталог модулей (с зависимостями)
Статус: сводный реестр. Единый категоризированный список всех модулей CMS с явными зависимостями. Сводит воедино каталог подсистем, реестр по донорам и граф зависимостей. Принцип: ядро универсальное (всегда загружено), возможности — через включаемые модули.
Легенда
- Слой: 🟢 ядро (всегда) · 🔵 инфра-модуль · 🟡 функц-модуль.
- Зависит от: что должно быть включено, чтобы модуль работал (жёсткая зависимость,
requires).ядро= базовые механизмы ядра. - Зрелость: ★★★ готово к портированию · ★★ рабочая реализация · ★ новое/прототип.
- Донор — проект студии с самой зрелой реализацией.
Как читать зависимости
Модуль не включается, пока не включены его зависимости. Каскад: включаешь модуль → реестр ядра проверяет requires и предлагает/тянет их (см. граф зависимостей). provides — абстрактный контракт, который модуль реализует (несколько модулей могут его предоставлять).
Что можно выключать, не сломав систему
Правило единое, а не список исключений:
- ядро (🟢) не выключается — по определению («не имеет смысла выключить»);
- любой модуль (🔵/🟡) можно выключить, если на него нет включённых обратных зависимостей — реестр проверяет граф и показывает «кто зависит» до выключения;
- выключение — всегда деградация, не поломка (сценарий B): блоки/виджеты модуля отдают fallback-заглушку, данные в БД сохраняются, публичный сайт жив; админ предупреждён «модуль используется в N блоках на M страницах»;
- исключение — обязательный набор managed-парка (бэкап, health-check, Sentry, центр обновлений): технически выключаемы, но на сайте под подпиской выключать нельзя — без них запрещена процедура обновления;
- поведение конкретного модуля при выключении описывает его
docs/module.md(контракт модуля).
A. Ядро (cms/core) — всегда загружено 🟢
Универсальное ядро: базовые механизмы + редакторы. Не «выключается».
A1. Базовые механизмы
| Подсистема | Зависит от | Донор | Зрелость |
|---|---|---|---|
| Kernel/DI/bootstrap | — | Laravel | ★★★ |
| Реестр модулей (граф зависимостей) | Kernel | nwidart (референс) | ★★ |
| События/хуки (шина + фильтры) | — | проектируется | ★★ |
| Очереди | — | все | ★★★ |
| Планировщик (cron) | Очереди | все | ★★★ |
| Кеш-слой (теговый) | События | catalog, universal | ★★★ |
| Стор настроек | Кеш | universal, gulaev-dev | ★★★ |
| Движок полей (типы/валидация/рендер) | — | — | ★★ |
| API-слой (REST, headless-ready; GraphQL — инфра-модуль) | Аутентификация, RBAC | — | ★ |
| Локализация строк (i18n) | Настройки | все | ★★★ |
| Логирование | — | все | ★★★ |
| Файловое хранилище | — | все | ★★★ |
| Медиатека + обработка изображений | Хранилище | все (spatie) | ★★★ |
| Миграции данных | — | — | ★★ |
Локальные переопределения (/local) | События | — | ★ |
A2. Контент-движок
| Подсистема | Зависит от | Донор | Зрелость |
|---|---|---|---|
| Страницы + блоки (BlockRegistry) | События, Движок полей | universal, gulaev-dev | ★★★ |
| Произвольные типы контента (JSONB+GIN) | Движок полей | — | ★★ |
| Таксономии/теги | Типы контента | несколько | ★★ |
| Черновики/версии | Страницы | Twill (референс) | ★ |
| Меню | Страницы | universal | ★★ |
| Виджеты (WidgetRegistry) | Страницы | — | ★ |
| Конструктор форм | Движок полей, Заявки | — | ★ |
| Заявки/лиды (без магазина) | Формы, Очереди | universal (Contact) | ★★★ |
| Email/SMTP | Очереди | все | ★★★ |
A3. Безопасность (ядро)
| Подсистема | Зависит от | Донор | Зрелость |
|---|---|---|---|
| Аутентификация + Пользователи | — | все | ★★★ |
| RBAC (Shield + spatie/permission) | Аутентификация | freelance, referendum | ★★★ |
| Политики (Policies) | RBAC | все | ★★★ |
| Rate-limiting | — | все | ★★★ |
| Защита форм (CSRF/honeypot/капча) | Формы | все | ★★★ |
| Шифрование полей | — | — | ★★ |
A4. SEO-база (ядро)
| Подсистема | Зависит от | Донор | Зрелость |
|---|---|---|---|
| Мета/шаблоны/canonical | Страницы | gulaev-dev, er | ★★★ |
| Sitemap | Планировщик | er, catalog | ★★★ |
| Robots/редиректы | — | gulaev-dev | ★★★ |
| Schema.org / OpenGraph | SEO-мета | gulaev-dev | ★★★ |
| ЧПУ/маршрутизация | Страницы | все | ★★★ |
A5. Редакторы-инструменты (ядро)
| Подсистема | Зависит от | Донор | Зрелость |
|---|---|---|---|
| Редактор сущностей | Типы контента, RBAC | — | ★★ |
| Редактор типов данных | Движок полей | — | ★★ |
| Файловый менеджер | Медиатека, Хранилище | — | ★★ |
| Управление пользователями | Аутентификация, RBAC | все | ★★★ |
| Редактор структуры/разделов | Страницы, Меню | — | ★★ |
| Админ-shell + Дашборд | RBAC | Filament | ★★ |
B. Инфраструктурные модули 🔵
Включаются по потребности, часто нужны почти везде.
| Модуль | Зависит от | Donor | Зрелость |
|---|---|---|---|
| Отладка/профилирование | Логирование | — | ★★ |
| Мониторинг/health-check (обяз. в managed-парке) | Уведомления | er, catalog | ★★ |
| Sentry/трекинг ошибок (обяз. в managed-парке) | Логирование | — | ★★ |
| Поиск (Scout+Meilisearch/ES) | Очереди | catalog, freelance | ★★★ |
| CDN-инвалидация | События, Кеш | catalog | ★★★ |
| Аудит действий | События | freelance, referendum | ★★ |
| Резервное копирование (обяз. в managed-парке) | Планировщик | — (spatie/backup) | ★★ |
| Импорт данных | Очереди | universal (Import/*) | ★★ |
| Экспорт данных (прайс XLSX) | Очереди | universal | ★★ |
| Feature-flags (UI-таргетинг; механизм pennant — в ядре) | Настройки | — (laravel/pennant) | ★★ |
| Broadcasting/realtime | Очереди, События | — | ★ |
| Шина интеграций | Очереди, Настройки | — | ★ |
| Входящие вебхуки | События, Безопасность | notal (платёжные) | ★★ |
| Исходящие вебхуки | События, Очереди | — | ★ |
| Внутренние уведомления | Шина увед. | freelance | ★★ |
| Шина уведомлений (резолвер каналов) | Очереди | freelance, notal | ★★★ |
| API-токены (Sanctum) | Аутентификация | freelance | ★★ |
| Session-управление | Аутентификация | — | ★★ |
| Многосайтовость | Настройки, Маршрутизация | — | ★ |
| Мультитенантность | Аутентификация | — | ★ |
| Управление доменами | Многосайтовость | proxy | ★ |
| Центр обновлений (обяз. в managed-парке, ставится skeleton'ом) | Бэкап, Health-check | — | ★ |
| Онбординг/визард установки | Настройки | — | ★ |
| Панель разработчика | Кеш, Планировщик | — | ★ |
| Объектное хранилище (S3/Selectel) | Файл-хранилище | — | ★★ |
| Email/SMS-провайдеры (транспорт) | Email, SMS | — | ★★ |
| Шаблоны писем | — | ★ | |
| Маркетплейс модулей | Реестр модулей, Центр обновлений | — | ★ |
| Флит-дашборд (студийный сервис) | Центр обновлений | proxy | ★ |
C. Контент и услуги 🟡
| Модуль | Зависит от | Донор | Зрелость |
|---|---|---|---|
| Услуги (иерархия) | ядро; suggests Мультигород (гео-оси, city-падежи — работает и в одном городе) | artel-23ru | ★★★ |
| SEO услуг (generic-движок) | Услуги, City | artel-23ru | ★★★ |
| Кросс-оси услуг (район/бренд/тип) | Услуги, SEO услуг | artel-23ru | ★★ |
| Блог/статьи (пресет типа контента, ревизия ТЗ предстоит — engine §16) | Страницы | gulaev-dev, universal | ★★★ |
| Мультиязычность | Страницы | referendum, universal | ★★ |
| Комментарии | Антиспам | — | ★ |
| Отзывы/рейтинги (пресет типа контента, ревизия ТЗ предстоит — engine §16) | Антифрод | catalog, er | ★★★ |
| Модерация (workflow) | RBAC, Черновики | — | ★ |
| FAQ (кандидат в пресет типа контента, модуль уже реализован в коде) | SEO | несколько | ★★ |
| Глоссарий/справочник | SEO | 3 проекта (Dictionary) | ★★ |
| Баннеры/слайдеры (пресет типа контента, ревизия ТЗ предстоит — engine §16; порог переиспользования — модулем становится только при повторном использовании слайда) | Медиа | несколько | ★★ |
| Галереи/портфолио (кейсы) (пресет типа контента, ревизия ТЗ предстоит — engine §16) | Медиа, Услуги (опц.) | artel-23ru, universal | ★★ |
| Калькулятор/смета | City | artel-23ru, universal | ★★ |
| Опросы/голосования | Формы | referendum | ★★ |
| Wizard/анкеты | Формы | referendum | ★★ |
| Публикация по расписанию | Планировщик, Страницы | — | ★ |
| Связанный контент/рекомендации | Типы контента | — | ★ |
| Витрина товаров без корзины | ядро; suggests cms/search, cms/related-content, cms/multicity, cms/galleries — НЕ commerce-* (отдельный уровень, commerce-catalog — фаза 2); приоритет P1 | universal | ★★ |
| Библиотека секций/паттернов (Gutenberg-style) | ядро (BlockRegistry, движок полей); suggests cms/landings; приоритет P0 | studio-core (UX-референс, без кода) | ★ |
| Конструктор форм (пресеты + кастом-поля) | ядро (cms_forms/LeadService); suggests cms/notifications-bus, капча-интеграции, cms/multicity; приоритет P1 | — | ★ |
D. Маркетинг и SEO (расширенный) 🟡
| Модуль | Зависит от | Донор | Зрелость |
|---|---|---|---|
| Умный SEO-фильтр | SEO-база, Каталог/Услуги | er | ★★★ |
| Мультигород/региональность | SEO-база, Настройки | gulaev-dev, er | ★★★ |
| SEO-движок (аудит+краулер) | SEO-база | gulaev-dev | ★★★ |
| Аналитика/счётчики | Настройки | — | ★★ |
| Пиксели/tag manager | Аналитика | — | ★★ |
| UTM/атрибуция | Заявки | — | ★★ |
| A/B-тесты | Feature-flags, Аналитика | — | ★ |
| Лендинги | Страницы | studio-core | ★★ |
| Поп-апы/лидоген | Формы, A/B | — | ★ |
| Email-маркетинг | Рассылки | — | ★ |
| Рассылки (newsletter) | Email, Очереди | — | ★★ |
| Реферальная программа | Заказы | notal | ★★ |
| Лояльность/бонусы (транзакционный счёт, правила начисления, уровни → типы цен; модель) | Заказы | notal | ★★ |
| Купоны/промо-кампании | Скидки, Лендинги | notal | ★★ |
| AI-контент (генератор текста/SEO-полей) | ядро, cms/integrations-bus; suggests cms/seo-engine, cms/blog, cms/commerce-catalog; приоритет P2 — реализация отложена (проектируется, внедрение позже) | universal/artel (ClaudeArticleGenerator) | ★★ |
Инъекция кода в <head>/</body> (CSP-гард) | ядро (швы layout.head/layout.body_end, security.csp); suggests cms/multicity, cms/audit; приоритет P1 | — | ★ |
E. E-commerce (магазин) 🟡
Цепочка жёстких зависимостей. Включать только магазину (см. граница лид≠заказ).
Доменная модель слоёв (ТП, склады, цены, НДС, скидки) — модель e-commerce.
| Модуль | Зависит от | Донор | Зрелость |
|---|---|---|---|
Каталог (+ торговые предложения: варианты цвет×размер, SKU) — highload-уровень, фаза 2; для лёгкой корп-витрины см. категорию C — cms/catalog-showcase | Медиа; suggests Поиск (fallback — PG tsvector) | universal, catalog; Lunar (модель ТП) | ★★★ |
| Свойства/характеристики | Каталог | catalog | ★★ |
| Фасетный фильтр (учитывает свойства ТП) | Каталог, Поиск | catalog | ★★ |
| Цены/типы цен (розница/опт/старая/price1-2, видимость по группам и лояльности, тир-прайсинг) | Каталог, Валюты | masha | ★★ |
| Мульти-склад (склады, остатки per-склад, резервы, движения) | Каталог | masha | ★★ |
| Корзина | Каталог | masha | ★★ |
| Брошенные корзины | Корзина, Email | — | ★ |
| Заказы | Корзина | masha, notal | ★★ |
| Платежи | Заказы, Очереди | notal, er | ★★★ |
| Подписки/рекуррентные | Платежи, Планировщик | er, notal | ★★ |
| Доставка | Заказы | — | ★ |
| Налоги/НДС (ставки, режим юрлица) | Заказы | — | ★ |
| Скидки/промокоды (rule-engine: условие→действие, приоритеты) | Корзина, Заказы | notal | ★★ |
| Возвраты (RMA) | Заказы, Платежи | notal | ★★ |
| Чеки/ОФД (54-ФЗ: НДС и признак предмета расчёта per-позиция) | Платежи | — | ★ |
| Цифровые товары (выдача файлов/лицензий после оплаты) | Каталог, Платежи | — | ★ |
| Продажа услуг (fulfilment: service, мост с модулем «Услуги») | Каталог | — | ★ |
| Валюты | Каталог | er | ★★ |
| Инвойсы/документы (PDF) | Заказы | referendum | ★★ |
| Wishlist/сравнение | Каталог | — | ★ |
| B2B (юрлица/договоры) | Заказы, Цены | — | ★ |
| Маркетплейс/мультивендор | Каталог, Заказы, Платежи | notal (эскроу) | ★★ |
F. Безопасность (модули) 🟡
| Модуль | Зависит от | Донор | Зрелость |
|---|---|---|---|
| 2FA | Аутентификация | er, freelance | ★★ |
Соцвход oauth-max / oauth-telegram / oauth-yandex (отдельный модуль на провайдера; без Google) | Аутентификация | — | ★ |
| Magic-login | notal | ★★ | |
| Антиспам | Формы | — | ★ |
| Антифрод | Отзывы, Заявки | catalog, er | ★★ |
| Согласия/152-ФЗ | Аудит | — | ★ |
| Cookie-consent | Согласия, Настройки | — | ★ |
| Политика паролей | Аутентификация | — | ★ |
| Attack-monitor (статистика атак, автоблокировка, блок-лист → Caddy) (обяз. в managed-парке) | Логирование, Аудит, Уведомления | catalog/er (антифрод), freelance (Domains/Reputation) | ★ |
G. Кабинеты и мобильные 🟡
| Модуль | Зависит от | Донор | Зрелость |
|---|---|---|---|
| Клиентский кабинет B2C | Пользователи, API-слой | несколько | ★★ |
| Клиентский кабинет B2B | Кабинет B2C, Заказы, Цены | — | ★ |
| UGC-публикации + модерация | Модерация, Антифрод | catalog, er | ★★ |
| Мобильный API + push | API-слой, Шина увед. | push-server | ★★ |
| Web-push | Шина увед. | — | ★ |
| SMS | Шина увед. | — | ★ |
| Telegram | Шина увед. | masha, notal | ★★ |
| WhatsApp/мессенджеры | Шина увед. | — | ★ |
| Чат/онлайн-консультант | Realtime, Шина увед. | — | ★ |
H. Интеграции (РФ) 🟡
Все — через шину интеграций.
| Модуль | Зависит от / provides | Донор | Зрелость |
|---|---|---|---|
| Платёжные шлюзы РФ (ЮKassa/Тинькофф/СБП) | Платежи · provides: payment-gateway | notal | ★★★ |
| Крипто-платежи | Платежи, Валюты | er | ★★ |
| ОФД/фискализация | Чеки 54-ФЗ | — | ★ |
| Доставка РФ (СДЭК/Почта/Boxberry) | Доставка · provides: delivery-provider | — | ★ |
| 1С-обмен (CommerceML) | Каталог, Заказы, Склад | — | ★ |
| CRM (Битрикс24/amoCRM/RetailCRM) | Заявки, Исх. вебхуки | — | ★ |
| Маркетплейсы (Ozon/WB/ЯМаркет) | Каталог, Заказы, Склад | — | ★ |
| Яндекс-сервисы (Карты/Метрика/Captcha) | Шина интеграций | несколько | ★★ |
| Google-сервисы (Maps/Analytics/reCAPTCHA) | Шина интеграций | — | ★ |
| Госуслуги/ЕСИА | OAuth, Согласия | — | ★ |
| ЭДО (Диадок/СБИС) | Шина интеграций, B2B | — | ★ |
| DaData/ФИАС | Формы, Заказы | — | ★★ |
| Курсы валют (ЦБ РФ) | Валюты, Планировщик | — | ★ |
| Видеохостинг | Медиа | — | ★ |
| Календари | Шина интеграций | — | ★ |
| ERP | 1С-обмен, Заказы | — | ★ |
Метапакеты (наборы под типовой заказ)
Один composer require → граф зависимостей разворачивает набор модулей:
| Метапакет | Включает |
|---|---|
| Корпоративный сайт | ядро + Услуги + SEO услуг + Портфолио + Блог + Мультигород |
| Магазин | ядро + Каталог + Корзина + Заказы + Платежи + Доставка + Склад (для РФ: + Чеки/ОФД 54-ФЗ + Платёжные шлюзы РФ) |
| Портал услуг | ядро + Услуги + Кросс-оси + Калькулятор + Кабинет B2C + Отзывы |
| Маркетплейс | ядро + Каталог + Мультивендор + UGC-модерация + Платежи (сплит) + Кабинеты B2C/B2B |
Заявки, SEO-база, конструктор форм в метапакеты не входят — они в ядре и загружены всегда. Составы метапакетов здесь канонические; граф зависимостей ссылается сюда.
Связанные разделы
- ТЗ модулей — отдельное ТЗ на каждый модуль этого каталога (возможности, API, компоненты, настройки, события, донорский код);
- Каталог подсистем — подсистемы по функциональным категориям;
- Реестр модулей — что уже есть у студии (доноры);
- Граф зависимостей — механика requires/provides/каскадов;
- Модули услуг · SEO · Интеграции · Кабинеты.