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Куда писать логи