Commit Graph
9 Commits
Author SHA1 Message Date
AndreyandClaude Fable 5.1 0ca9eb865f ✨ feat(setup)!: мастер первого запуска и демо-набор «Ателье Норд» с точным удалением
Open source: «развернуть за минуту». Никаких параметров в .env и CLI —
при пустом инстансе браузер показывает мастер (/api/v1/setup/): название
организации, имя, e-mail, пароль владельца и флаг «Установить демо-данные».
Запись идёт на соединении platform (роль app не создаёт организации) через
tenancy/routing.use_database; после первого владельца мастер закрыт (409).
bootstrap_owner и захардкоженные Edevs/Котова из установки удалены
(bootstrap_edevs_owner остаётся тестовым helper'ом).

Демо ставится в организацию установщика; реестр DemoRecord (post_save во
время сида) даёт точное удаление в обратном порядке с разрывом PROTECT-циклов
только между демо-объектами. Установка/удаление — outbox → worker; статус и
витринные учётки (админ + сотрудники разных групп, пароль Chatbolls-Demo-2026)
— карточка «Демо-данные» в «Настройках» (/company/demo/).

Сид переписан под дизайн-базлайн v2 («Ателье Норд»): 6 сотрудников (группы,
блокировка, TOTP, приглашения), 4 агента (активные/черновик/выключенный),
подключения TG/MAX/почта/два веб-виджета (анонимный и авторизованный) с
ошибкой у одного, знания с иерархией категорий и вложениями (md/txt/pdf),
30 дней истории LLM, 13 диалогов во всех состояниях с метками, приоритетами,
заметками, ответственными, историей контакта, спамом и архивом, веб-гость
через настоящую сессию виджета, шаблоны «/», портал поддержки со статьями
(опубликованные/черновик/архив, вторая ревизия, оценки), звонки с метриками и
приглашением, уведомления всех типов, привязки уведомителя. Аватары
контактов — портреты владельца, публичный /api/v1/demo-media/. Голосовые —
слоты под клипы владельца (media/voice/README.md).

Тест покрытия: каждая модель hub_platform получает демо-запись; удаление
возвращает счётчики к исходным. compose-профиль demo-seed и seed-demo.ps1
удалены; seed_demo --organization --apply/--remove для разработки; start.sh
для Linux/macOS; README — раздел «Быстрый старт».

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-05 16:55:31 +03:00
Andrey 4c622c7542 ✨ feat(seed): replace standalone importer with Django seed_demo command and Russian IIoT dataset
Старый сид dev/local-seed/ (standalone-скрипт под CUS_ENV) заменён полноценной
Django-командой seed_demo с редактируемыми JSON-манифестами в demo_seed/data/.
Полный выдуманный датасет организации «Северная Верфь» (IIoT, РФ-наполнение):
продукты Вектор/Репер, каналы, AI-агенты, база знаний со вложениями, диалоги,
заказы, продажи, поддержка, портал Help-центра, звонки, уведомления.
Идемпотентен (get_or_create/update_or_create), dry-run по умолчанию (--apply),
--force для облака. Удалён dev/local-seed/, скрипты seed-local/seed-support-portal,
compose-профиль переключен на demo-seed. Тесты: создание, идемпотентность, dry-run.
2026-07-30 19:59:46 +03:00
Andrey f8fb9162a6 ✨ feat(administration): add delivery-aware administration 2026-07-30 00:11:37 +03:00
Andrey 3f07d76173 ✨ feat(portals): complete custom domains and unified navigation 2026-07-29 16:49:50 +03:00
Andrey 2b246e193b ✨ feat(support): add reusable multi-portal help centers 2026-07-28 21:39:25 +03:00
Andrey 7e9667ee88 ✨ feat(ui): align channel management with design baseline 2026-07-23 11:08:16 +03:00
AndreyandClaude Fable 5 541d016b35 🔧 fix(dev): drop redundant migrate from backend-app dev command
Runtime-роль app (CUS_DB_ROLE=app) не имеет прав на django_migrations
(RLS-модель), поэтому migrate в dev-команде backend-app всегда падал с
permission denied и уводил контейнер в crash-loop на свежем томе.
Миграции выполняет one-shot init (CUS_DB_ROLE=migration), от которого
backend-app уже зависит через service_completed_successfully.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-18 06:22:00 +03:00
Andrey dd849fa2d4 ✨ feat(platform): isolate runtime surfaces 2026-07-14 22:23:15 +03:00
Andrey e13542fc45 fix(ci): harden release and deployment workflow 2026-07-14 12:19:38 +03:00