Skip to content

Messaging

Сервис комментариев и (v2) чатов на сущностях платформы. v1 — embed-виджет комментариев к задачам, заметкам и открытым медиа Spark Grid.

Порты

ПортНазначение
8107HTTP REST (PM2)
18107Docker host
  • БД: messaging_db
  • Gateway: /proxy/messaging/

Назначение

Единый сервис обсуждений вместо самописных комментариев в каждом модуле: page-треды, selection-треды (якорь в TipTap), ответы, реакции, @mentions, вложения Storage, unread, pg_trgm-поиск, realtime через NATS Bridge.

ACL не хранится в messaging — S2S-запрос к владельцу ресурса (documents, task-tracker, spark-grid, collatio).

API (v1)

GET/POST  /api/v1/c/:service/:type/:rid/threads
GET       /api/v1/c/:service/:type/:rid/search?q=&space_id=
GET/PATCH /api/v1/threads/:id
GET/POST  /api/v1/threads/:id/messages
POST      /api/v1/threads/:id/read
GET/PATCH/DELETE /api/v1/messages/:id
PUT/DELETE /api/v1/messages/:id/reactions/:emoji
DELETE    /api/v1/resources/:service/:type/:rid   # RequireService

Auth: JWT пользователя; S2S — Authorization: Service <token>.

Swagger: /swagger/index.html

События (NATS)

SubjectНазначение
messaging.comment.createdНовое сообщение
messaging.comment.editedПравка
messaging.comment.deletedSoft delete
messaging.comment.resolvedResolve selection-треда
messaging.comment.reactionРеакция

Bridge → Centrifugo namespace comments, канал comments:broadcast.

Consumer каскада: documents.deleted, tasks.deleted, media_file.deleted.

Env

ПеременнаяНазначение
DOCUMENTS_SERVICE_URLS2S access check
TASK_TRACKER_SERVICE_URLS2S access check
SPARK_GRID_SERVICE_URLS2S access check
SERVICE_TOKENМежсервисные вызовы

Интеграции

  • Notificationscomment.mention, comment.reply на messaging.comment.created
  • Weblib-comments в apps/web/libs/common
  • Storage — вложения, категория comments

Лимиты

  • Текст сообщения: 16 KB
  • Вложений на сообщение: 20
  • Rate limit: 30 msg/min на пользователя в треде
  • Retention: soft-deleted purge через 90 дней