Skip to content

Releases: Asmblyr/Collaborative

v0.1.0-beta.5 — Настраиваемая информация профиля

Choose a tag to compare

@Yniphe Yniphe released this 07 Oct 15:56
1e90bed

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

  • В личном профиле и карточке пользователя появился настраиваемый блок дополнительной информации. Он может показывать значения пользовательских полей и одиночных связей: например, название отдела и его руководителя.
  • В Настройки системы → Пользователи → Вид профиля суперпользователь выбирает источники, подписи, порядок строк и заголовок блока. Доступны до 12 строк и переходы по двум последовательным одиночным связям.
  • Для каждой строки отдельно включается показ владельцу профиля. Управляющие с правом users/read видят настроенные строки в карточках пользователей. Это разрешение на показ конкретных значений, без доступа ко всему справочнику и без возможности редактирования через блок.
  • Поддержаны текст, email, числа, флаги, даты, теги и отображаемое имя связанного пользователя. Данные читаются из исходных записей при загрузке профиля; копии в профиле не создаются.
  • Системные колонки, чувствительные поля, файлы, произвольный JSON, связи ко многим и коллекции плагинов не доступны как источники. Удалённые или изменённые привязки скрываются до повторной настройки.
  • Обновлены русские и английские тексты интерфейса, API-документация и проверки доступа. Заголовок карточки пользователя теперь показывает его имя.

Обновление

Обновляйте Core и UI одной версией:

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

Helm chart: oci://ghcr.io/asmblyr/charts/collaborative, версия 0.1.0-beta.5.

Релиз содержит одну новую миграцию с таблицей конфигурации блока. Перед обновлением сохраните резервную копию PostgreSQL; в Helm миграции выполняются отдельным Job. Существующие пользователи и их поля не изменяются. По умолчанию блок пуст — настройте его через «Вид профиля». Демо-данные в релиз не входят.

После переименования источников или восстановления БД с изменившимися внутренними идентификаторами таблиц повторно сохраните конфигурацию блока.

Проверки

Пройдены 493 серверных и 143 UI-теста; три опциональные проверки пропущены. CI проверил типы, форматирование, lint, сборку приложения и документации, установку пакетов в чистый проект, совместный запуск Core/UI с отдельным PostgreSQL и Helm chart. Образы и чарт проверены на скачивание без авторизации.

Изменения: PR #5. Релизный CI.

v0.1.0-beta.4 — Связи с пользователями и права приложений

Choose a tag to compare

@Yniphe Yniphe released this 07 Oct 13:50
1474b3f

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

  • Обычные коллекции поддерживают связь «Многие к одному» с системными пользователями. При создании поля выберите «Пользователи · системная»: например, так можно добавить руководителя отдела. В форме и таблице отображаются имя и почта, доступны поиск и фильтр; API и SDK сохраняют UUID.
  • В OAuth-приложениях появился режим управления доступом через политики. В политике можно разрешить вход в приложение и назначить его отдельные права, включая права LavinMQ.
  • Права приложения объединяются из политик пользователя и передаются в resource_access[audience].roles. Изменение набора прав требует нового согласия; ожидающий обмен кода не получает права, добавленные после подтверждения.
  • Обновлены API-документация, переводы интерфейса и проверки ограничений доступа.

Для LavinMQ при включении управления через политики оставьте mgmt_scopes = openid profile email. Права вида lavinmq.tag:monitoring назначаются в политиках; audience и resource_server_id брокера должны совпадать с Audience приложения. До включения этого режима существующая конфигурация работает по-прежнему.

Обновление

Обновляйте Core и UI одной версией:

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

Helm chart: oci://ghcr.io/asmblyr/charts/collaborative, версия 0.1.0-beta.4.

Релиз содержит две миграции. Перед обновлением сохраните резервную копию PostgreSQL; в Helm миграции выполняются отдельным Job. Новые пользовательские поля автоматически не создаются. Существующие OAuth-приложения сохраняют прежний режим доступа, пока управление через политики не включено в их настройках.

Поиск и назначение пользователей требуют права чтения раздела «Пользователи». Связь поддерживает запрет удаления пользователя или очистку ссылки; каскадное удаление, обратные поля и чтение внутренних полей профиля через /items недоступны. Уже выданный JWT внешнего сервиса может оставаться действительным до окончания своего срока — до пяти минут.

v0.1.0-beta.3 — Связи системных полей и навигация

Choose a tag to compare

@Yniphe Yniphe released this 07 Oct 10:42

Исправлена видимость скрытых коллекций на странице личных настроек. Системные коллекции теперь поддерживают дополнительные поля со связью «многие к одному»: например, пользователь может быть связан с департаментом из собственной коллекции.

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

  • Боковое меню на /settings учитывает скрытые коллекции, иерархию и права доступа так же, как остальные страницы админки.
  • Суперпользователь может добавить M2O-поле в разрешённую системную коллекцию через стандартную правую панель. Встроенные поля остаются защищёнными.
  • Дополнительные поля пользователя доступны прямо в карточке профиля в /admin/settings/users, с отдельной кнопкой сохранения. Для связей используется селектор записей с поиском.
  • Для связи создаются внешний ключ и индекс. Удаление связанной записи очищает поле, сохраняя системную запись; удаление целевой коллекции блокируется, пока существует связь.
  • Обновлены публичные контракты API, документация и переводы интерфейса.

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

Образы для linux/amd64:

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

Helm-чарт: oci://ghcr.io/asmblyr/charts/collaborative, версия 0.1.0-beta.3.

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

Обновляйте Core и UI вместе. Новых миграций относительно beta.2 нет: дополнительные колонки и связи создаются при настройке поля. PostgreSQL, S3 и секреты подключаются отдельно, как и в beta.2. npm-пакеты этим релизом не перепубликуются.

Если в values-файле заданы images.core.digest и images.ui.digest, обновите оба digest на значения из этого релиза: они имеют приоритет над image.tag.

Проверки

В релизном CI прошли 479 тестов Core и 142 теста UI, проверки SDK/CLI, типов, линтера, форматирования, документации, production-сборки и архивов пакетов в чистом проекте. Три специальных сценария Core пропущены: интеграция с реальным LavinMQ, нагрузочный тест и подготовка визуального стенда. Локально дополнительно проверено создание связи с департаментом, сохранение и повторное открытие профиля пользователя, а также скрытие коллекций в меню /settings.

Границы поддержки

Связи системных полей доступны суперпользователю и направлены на обычные пользовательские коллекции. Поддержаны ключи serial, bigserial, uuid и text. Поле остаётся необязательным и nullable. Системные и плагинные таблицы, singleton и materialized view не могут быть целью связи; обратные O2M/M2M-поля и значения по умолчанию для связи не поддерживаются.

Коммит: 461d6b7.

Полный diff с beta.2 · Инструкция по развёртыванию · Системные поля и связи

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

Релизный CI завершился успешно, включая запуск пары контейнеров с временной PostgreSQL и проверку Helm-чарта и маршрутизации. Публичный доступ к манифестам и конфигурациям всех трёх артефактов проверен без авторизации; версии и привязка к коммиту подтверждены. Helm-чарт дополнительно скачан и прочитан через Helm. Развёртывание в production этим релизом не выполнялось.

Артефакт Digest
Core sha256:af1106d454a8df1e2d0a2517e4595268c4c70a2c71361ccd9414befebc05e1bd
UI sha256:74c2cdd095636ac1a70a486e5cede3e43429eb08d5e2afd36d42a481d616cfce
Helm-чарт sha256:447e0051d72465f2f0b50910430cbc438a618213671d22fa72cf72ab8690a787

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

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

Asmblyr Collaborative v0.1.0-beta.1 — первая публичная бета

Choose a tag to compare

@Yniphe Yniphe released this 06 Oct 16:14

Первая публичная бета Asmblyr Collaborative — открытой платформы для работы с данными PostgreSQL, совместного редактирования и подключения приложений через API. Лицензия MIT. Одна команда использует отдельную установку.

Что входит в версию

Данные и админка

  • Коллекции, поля и связи M:1, 1:M и M:N; настройка форм, подписей записей и отображения полей.
  • Таблицы с изменением ширины колонок, боковой редактор, вложенные фильтры, сохранённые виды, пакетные действия и история изменений.
  • Поиск с приоритетом точного совпадения, начала названия и целых слов, в том числе при выборе связанных записей.
  • Теги, даты и время, списки вариантов, файлы и зависимые поля форм.
  • Подключение существующих PostgreSQL materialized views с настройкой отображения. Данные представлений доступны только для чтения в UI, API и генерируемом SDK.
  • Дополнительные поля разрешённых системных коллекций через свёрнутый раздел управления коллекциями. Встроенные поля и сами системные таблицы защищены от изменения.

Команда и доступ

  • Политики доступа на действия, поля и строки; отдельные права на разделы настроек.
  • Приглашения по ссылке без обязательного SMTP, пароль, passkey, SSO/OIDC и управление сессиями.
  • Профиль с именем, фамилией, описанием, часовым поясом и датами активности; загрузка аватара в настроенное файловое хранилище.
  • Комментарии к записям и уведомления, присутствие участников в карточках и проверка конфликтов при сохранении изменённых полей.
  • Сервисные аккаунты и ключи с датами выпуска, последней активности и счётчиком запросов; GitLab CI federation и OAuth/OIDC provider.

Интеграции и ассистент

  • S3, AI-провайдер и интеграции настраиваются в админке. Настройки из окружения имеют приоритет и показываются только для чтения.
  • Секреты подключений шифруются локальным ключом или Yandex KMS с федеративной аутентификацией.
  • Опциональный AI-ассистент: потоковые ответы, отдельный ход работы, история сессий, новый диалог и сжатие старого контекста. Инструменты учитывают права пользователя.
  • Личное подключение Google Drive и Sheets: поиск и чтение по запросу, изменения через предложение с явным подтверждением пользователя.
  • Опциональный Sentry с отдельными настройками сервера и браузера; локальная диагностика API, включая p50/p95/p99.
  • Переводы интерфейса и системных подписей, каталоги плагинов и API переводов; подписи пользовательских коллекций переводит владелец установки.

API, SDK и расширения

  • HTTP API с обязательной авторизацией для защищённых операций.
  • TypeScript SDK с fluent-запросами, типизацией коллекций и методов плагинов; CLI asm connect для входа через админку и генерации типов без специального компилятора.
  • Kit для серверных обработчиков, коллекций, миграций, настроек, страниц и редакторов полей плагинов.

Docker-образ

UI и Core API поставляются в одном контейнере для Linux amd64. PostgreSQL и S3 подключаются отдельно. Все внутренние пакеты собираются из исходников репозитория; установка опубликованных SDK/Kit из npm для сборки образа не требуется.

docker pull ghcr.io/asmblyr/collaborative:0.1.0-beta.1
  • Порт 3000 — интерфейс.
  • Порт 3001 — прямой Core API для SDK, CLI и интеграций.
  • Готовый Compose выполняет миграции отдельным запуском того же образа, затем запускает приложение.

Для установки возьмите Compose и шаблон окружения из этого тега. В приватном env-файле задайте внешний PostgreSQL 17+, setup token, публичный адрес UI и ключ шифрования согласно инструкции.

export ASMBLYR_IMAGE=ghcr.io/asmblyr/collaborative:0.1.0-beta.1
export ASMBLYR_ENV_FILE=/private/asmblyr.env
docker compose -f deploy/compose.yaml up -d --wait

Первый администратор создаётся на /setup. Compose по умолчанию публикует оба порта на 127.0.0.1; для внешнего интерфейса используется BIND_ADDRESS. Для внешней установки настройте HTTPS. Перед обновлением существующей установки сохраните резервную копию PostgreSQL и ключей шифрования.

Для закрепления точного образа используйте:

ghcr.io/asmblyr/collaborative@sha256:92745c4b6916a71b0bdabd82660cb6c6344a901f5d0937dba1b32b14cedf251c

Проверки

GitHub Actions этой версии завершился успешно. Проверены форматирование, типы, lint, тесты, документацию, production-сборку и архивы npm-пакетов в чистом проекте. Контейнер проверен с одноразовым PostgreSQL: 69 миграций, повторный запуск миграций, создание администратора, UI, прямой авторизованный API, корректная остановка и завершение контейнера при падении любого процесса.

Исходный коммит: 4c25c0f.

Границы беты

  • Это предварительный релиз; стабильность всех будущих API/SDK-контрактов пока не гарантируется.
  • Workspaces группируют коллекции, но не обеспечивают изоляцию разных компаний. Модель размещения — отдельная установка для команды.
  • Materialized views создаются и обновляются внешним процессом; обычные SQL views и составные ключи в этом сценарии не поддерживаются.
  • Собственные OAuth credentials и разрешение Google необходимы для подключения Google Workspace. Сам релиз не переводит OAuth-приложение Google в публичный режим.
  • Плагины устанавливаются как пакеты; установки из UI и песочницы исполнения нет. Публичный MCP endpoint и отдельный движок процессов не входят в эту версию.
  • Локальные процентили мониторинга ограничены окном наблюдений и сбрасываются при перезапуске.
  • PostgreSQL, S3, HTTPS, резервные копии и развёртывание на сервере настраивает оператор.

SDK, CLI, Kit и contracts уже доступны отдельно как npm beta. Этот GitHub-релиз фиксирует версию приложения и контейнера и не перепубликует npm-пакеты.

Документация версии · SDK и CLI · Сообщить об ошибке