# ТЗ: Evrone Drupal Press — издание на Drupal

Демонстрационная версия документа · категория «Контент и видео» · №19

> Это демонстрационное техническое задание: оно показывает структуру и глубину
> документа, который передаётся вместе с прототипом. Боевое ТЗ по этому солюшену
> готовится и заменит этот файл.

## 1. Суть решения

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

Для тех, кому нужен open-source и собственная инфраструктура (гос, корпорации, НКО): преднастроенная сборка Drupal под медиа — типы материалов, редакционный воркфлоу, мультисайтовость, мультиязычность, роли и права.

## 2. Технологический стек

| Слой | Решение |
|---|---|
| Backend | Ruby on Rails 8, PostgreSQL |
| Frontend | Hotwire (Turbo + Stimulus), Tailwind CSS |
| Фоновые задачи | Solid Queue |
| Файлы | Active Storage, S3-совместимое хранилище |
| Деплой | Docker, Kamal, production + staging |

## 3. Роли

- Автор
- Редактор
- Администратор сайта

## 4. Модель данных

### 4.1. ContentType

```
machine_name: string
fields: jsonb
workflow_id: references
```

### 4.2. Node

```
type: string
langcode: string
revision_id: integer
moderation_state: enum
```

### 4.3. SiteProfile

```
domain: string
theme: string
languages: jsonb
```

## 5. Ключевые сценарии

1. Администратор разворачивает преднастроенный дистрибутив
2. Редакционный воркфлоу ведёт материал от черновика до публикации
3. Мультисайтовость позволяет вести несколько изданий на одном ядре
4. Мультиязычность работает на уровне полей и меню

## 6. Интеграции

- Поиск
- Медиатека
- Внешняя авторизация
- Резервное копирование

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

- Серверный рендеринг, работоспособность ключевых страниц без JavaScript
- Мобильная адаптивность обязательна
- Роли и права проверяются на уровне сервера, а не интерфейса
- Логирование действий пользователей по значимым операциям
- Покрытие тестами моделей и ключевых сценариев
- Развёртывание одной командой, окружения production и staging

## 8. Состав MVP

Дистрибутив + тема + редакционный воркфлоу.

## 9. Критерии приёмки

1. Все сценарии из раздела 5 проходят end-to-end на тестовом стенде
2. Роли из раздела 3 видят только то, что им положено
3. Интеграции из раздела 6 работают через слой адаптеров и переключаются конфигурацией
4. Прототип разворачивается из репозитория одной командой
5. Документация по запуску и переменным окружения лежит в README
