Skip to content

Spaces

Назначение

Сервис управления пространствами (workspaces) платформы. Пространства — изолированные рабочие области, объединяющие документы, медиафайлы, команды и других пользователей.

Порты

  • HTTP: 8092
  • БД: spaces_db

Ключевые возможности

  • CRUD пространств
  • Иконка пространства (icon_file_id — файл Storage)
  • Общий словарь тегов пространства (space_tags: имя, цвет #RRGGBB, position); вложения тегов живут в task-tracker / documents / spark-grid
  • Релизы пространства (space_releases); задачи ссылаются через release_id
  • MCP-серверы пространства (mcp_slugs)
  • Управление участниками пространств через space_users таблицу (миграция из JSONB shared_user_ids)
  • Шаринг с ролями admin / viewer через service-common/sharing
  • Публикация событий spaces.created-with-user-creation в NATS
  • Интеграция с documents-сервисом (автосоздание дефолтного документа при создании пространства)
  • Аутентификация через JWT
  • Swagger UI

Структура БД

ТаблицаОписание
spacesid (UUID), name, owner_id, icon_file_id, mcp_slugs, shared_user_ids (JSONB, legacy)
space_usersid, space_id, user_id, role (admin/viewer), created_at, updated_at
space_tagsОбщий словарь меток пространства (name, color, position)
space_releasesРелизы пространства; задачи ссылаются по UUID

Примечание: Таблица space_users создана в миграции 005 с миграцией данных из JSONB shared_user_ids. Новые записи создаются в space_users.

Теги и релизы

Теги — словарь пространства, не копии в каждом сервисе. Task Tracker, Documents и Spark Grid хранят только UUID тега.

МетодПутьОписание
GET · POST/spaces/:id/tagsСписок и создание
PUT/spaces/:id/tags/orderПорядок (position)
GET · PATCH · DELETE/spaces/:id/tags/:tag_idЧтение, правка, удаление
GET · POST/spaces/:id/releasesСписок и создание релизов
GET · PATCH · DELETE/spaces/:id/releases/:release_idКарточка релиза

Интеграции

  • NATS: публикация событий spaces.created-with-user-creation для документов и других сервисов
  • Gateway: проксирует запросы через порт 8090

Конфигурация

ПеременнаяПо умолчаниюОписание
PORT8092Порт сервера
DB_HOSTАдрес PostgreSQL
DB_PORT5432Порт PostgreSQL
DB_USERПользователь PostgreSQL
DB_PASSWORDПароль PostgreSQL
DB_NAMEИмя базы данных
DB_SSL_MODEdisableРежим SSL
JWT_SECRETСекрет для JWT
JWT_TTL24hВремя жизни токена
MESSAGING_URLnats://localhost:4222URL NATS
SERVICE_TOKENТокен межсервисного взаимодействия
SESSION_*Настройки сессий (см. auth)
LOG_LEVELinfoУровень логирования
LOG_FORMATjsonФормат логов
LOG_OUTPUTstdoutКуда писать логи