Skip to content

v0.1.0-beta.2 — Core/UI и Kubernetes

Pre-release
Pre-release

Choose a tag to compare

@Yniphe Yniphe released this 06 Oct 22:40

Asmblyr Collaborative теперь поставляется отдельными Core и UI с общим публичным доменом. Добавлен Helm-чарт для Kubernetes. PostgreSQL и S3 подключаются отдельно; SDK, Kit и встроенные плагины собираются из исходников монорепозитория.

Что изменилось

  • Браузерный API, вход, сессии и callbacks перенесены в Core. UI отвечает за страницы и больше не содержит прослойку API. Публичный API доступен на /api того же домена.
  • Два production-образа — collaborative-core и collaborative-ui — выпускаются из одного коммита. Для небольших серверов предусмотрен Docker Compose.
  • Helm-чарт создаёт отдельные Deployment/Service для Core и UI, маршрутизацию одного домена и Job миграций перед установкой и обновлением. Включены проверки готовности, запуск без root и файловая система контейнеров только для чтения.
  • Секреты подключаются только к Core и миграциям. Поддержаны как переменные окружения из существующего Secret, так и файлы, например ключи собственного OAuth-сервера.
  • Сессии, ограничения запросов, отмена ответа ассистента и подготовленные формы плагинов используют PostgreSQL для работы между репликами. Sticky sessions не требуются.

Установка и обновление

Релизные образы для linux/amd64:

ghcr.io/asmblyr/collaborative-core:0.1.0-beta.2
ghcr.io/asmblyr/collaborative-ui:0.1.0-beta.2

Helm-чарт:

oci://ghcr.io/asmblyr/charts/collaborative
version: 0.1.0-beta.2

Подготовьте namespace, внешнюю PostgreSQL, Secret с настройками Core и ingress/TLS согласно инструкции этой версии. Затем установите чарт с приватным values-файлом:

helm upgrade --install collaborative oci://ghcr.io/asmblyr/charts/collaborative \
  --version 0.1.0-beta.2 --namespace collaborative \
  --values /private/collaborative-values.yaml \
  --set image.tag=0.1.0-beta.2 --wait --timeout 10m

При переходе с beta.1:

  1. Сохраните резервную копию PostgreSQL и ключей шифрования/OAuth.
  2. Используйте оба новых образа одной версии. В Compose вместо ASMBLYR_IMAGE задайте ASMBLYR_CORE_IMAGE и ASMBLYR_UI_IMAGE.
  3. Примените миграции перед новым Core; Helm и production Compose делают это отдельным запуском. Добавлены таблицы браузерных сессий и состояния для реплик, существующие данные сохраняются.
  4. Пользователям потребуется войти заново: браузерная сессия переведена на новый формат cookie. URL входа через SSO и Google остаются на домене админки.

Монолитный target app и deploy/compose.monolith.yaml сохранены для самостоятельной сборки и перехода существующих установок; новые релизные образы выпускаются раздельно. npm-пакеты этим релизом не перепубликуются.

Проверки и ограничения

Локально и в проверке коммита на GitHub прошли 477 тестов Core и 141 тест UI. Три дополнительных сценария Core не запускались: интеграция с LavinMQ, нагрузочный тест и подготовка визуального стенда. В отдельном временном Kubernetes namespace проверены два Core и два UI, браузерный вход, CRUD, загрузка/чтение S3, поток ассистента с тестовым AI-провайдером, отмена запроса с другой реплики, OAuth discovery/JWKS и обновление Helm с сохранением данных и сессии. Тестовое окружение удалено.

  • Это предварительный релиз; модель размещения остаётся «отдельная установка для команды».
  • При остановке Core активный поток ассистента прерывается; бесшовного переноса генерации нет.
  • Helm rollback не откатывает миграции PostgreSQL. Перед обновлением нужна резервная копия.
  • Для строгого нулевого простоя интерфейса нужны сохранение старых статических ресурсов или переключение всего релиза; не смешивайте произвольные версии Core и UI.
  • Временный Kubernetes-стенд не проверял публичные HTTPS callbacks внешних Google/GitLab и внешний AI-провайдер.

Полный diff с beta.1 · Документация

Артефакты и проверка выпуска

Коммит: 7e3df67. Релизный CI завершился успешно. Оба образа и Helm-чарт версии 0.1.0-beta.2 скачаны из GHCR без авторизации; версии и привязка к коммиту проверены.

Артефакт Digest
Core sha256:2c6431ba8ac1cd3b053553a29debe8809a75c08a52410bbc17c375b463d59f61
UI sha256:07334685fbdaa4cc30a9bcb8eef8bcf5faadd72f095323c18f97416bcaf447d6
Helm-чарт sha256:dd2b2e5c40d952d3488010bda47503492446e1e549c5f4d77108d818570cc09f