Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions apps/docs/content/guides/audit-events.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,9 @@ related:
| `bot_deleted`, `bot_token_recreated` | `bot_id`, `actor_id` |
| `bot_scopes_updated` | `added_scopes`, `removed_scopes` |
| `bot_webhook_settings_updated` | `changes` — объект, где ключ это имя настройки, а значение содержит `previous` и `new` |
| `bot_oauth_client_updated` | `client_id`, `changes` — объект, где ключ это имя параметра клиента, а значение содержит `previous` и `new` |
| `oauth_authorization_granted` | `client_id`, `scopes` |
| `oauth_authorization_revoked` | `client_id`, `revoked_tokens_count` |
| `kms_encrypt`, `kms_decrypt` | `chat_id`, `message_id`, `reason` |
| `dlp_violation_detected` | `dlp_rule_id`, `dlp_rule_name`, `message_id`, `chat_id`, `user_id`, `action_message`, `conditions_matched` |
| `search_users_api`, `search_chats_api`, `search_messages_api` | `search_type`, `query_present`, `cursor_present`, `limit`, `filters` |
Expand Down
2 changes: 2 additions & 0 deletions apps/docs/content/guides/bots/setup.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,8 @@ related:
<Step title="Отправьте запрос на создание">
Передайте параметры бота в объекте `bot.webhook`: имя, никнейм, Webhook URL, список событий и команды. Никнейм должен заканчиваться на `_bot`.

Обязательное поле одно — имя. Его и никнейм можно передать и на уровне `bot`, тогда объект `bot.webhook` не нужен: `{"bot": {"name": "Бот задач"}}` создаст бота с настройками вебхука по умолчанию.

Тип бота — в один или несколько чатов — задаётся полем `single_chat` и только при создании: изменить его потом нельзя, как и тип бота в интерфейсе. Ограничение «в один чат» распространяется только на беседы и каналы, треды и личные сообщения не в счёт.
</Step>
<Step title="Сохраните access_token">
Expand Down
2 changes: 1 addition & 1 deletion apps/docs/content/guides/cli/installation.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ pachca doctor
# ✔ Конфиг ~/.config/pachca/config.toml (права: 600)
# ✔ Профиль personal (user: Иван Иванов)
# ✔ Токен действителен (11 скоупов)
# ✔ CLI v2026.8.0 (актуальная версия)
# ✔ CLI v2026.8.1 (актуальная версия)
```

## Обновление
Expand Down
15 changes: 10 additions & 5 deletions apps/docs/content/guides/permissions.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ related:
Большинство скоупов доступно всем ролям, кроме гостевых. Исключения стоит знать заранее, потому что при создании токена такие скоупы просто не появятся в списке:

- **Только Владелец** — `chat_exports:read`, `chat_exports:write` для [экспорта сообщений](/guides/export) и `audit_events:read` для [журнала аудита](/guides/audit-events). Обе возможности доступны на тарифе **Корпорация**.
- **Владелец и Администратор** — `users:create`, `users:update`, `users:delete`, `user_status:read`, `user_status:write`, `user_avatar:write`, `group_tags:read`, `group_tags:write`.
- **Владелец и Администратор** — `users:create`, `users:update`, `users:delete`, `user_status:read`, `user_status:write`, `user_avatar:write`, `group_tags:write`.
- **Только токен бота** — `bot_self:write` и `bot_self:webhook:write` для самоуправления бота. Персональному токену они недоступны при любой роли.

Полная таблица скоупов по ролям — в разделе [Авторизация](/api/authorization#dostupnye-skoupy).
Expand Down Expand Up @@ -144,14 +144,19 @@ related:
GET /api/shared/v1/chats?availability=public
```

У такой выгрузки две границы:
**Архивные чаты по умолчанию не возвращаются** ни при одном значении `availability`. Чтобы получить их вместе с активными, передайте `archived=true`:

- **Закрытые беседы и каналы, где токен не участник, в списке не возвращаются** — включая токен Владельца пространства. Для них доступен только состав участников, если идентификатор чата уже известен.
- **Архивные чаты не возвращаются вообще**, ни при одном значении `availability`. Статуса архивации в объекте чата тоже нет, поэтому отличить архивный чат через API нельзя.
```http title="Открытые чаты пространства вместе с архивными"
GET /api/shared/v1/chats?availability=public&archived=true
```

Отличить архивный чат в выдаче можно по полю `archived` объекта чата — оно приходит всегда, независимо от параметров запроса.

Граница у такой выгрузки одна: **закрытые беседы и каналы, где токен не участник, в списке не возвращаются** — включая токен Владельца пространства. Для них доступен только состав участников, если идентификатор чата уже известен.

Состав участников и администраторов каждого чата возвращает [Список участников чата](GET /chats/{id}/members) с параметром `role` — отдельным запросом на чат.

Полный перечень чатов пространства, включая закрытые и архивные, доступен только Владельцу и только через [экспорт сообщений](/guides/export). В архив кладётся файл `chats.json`, где у каждого чата есть идентификатор, название, создатель и состав участников с их ролями в чате. Тип доступа и статус архивации в этот файл не попадают.
Полный перечень чатов пространства, включая закрытые, доступен только Владельцу и только через [экспорт сообщений](/guides/export). В архив кладётся файл `chats.json`, где у каждого чата есть идентификатор, название, создатель и состав участников с их ролями в чате. Тип доступа и статус архивации в этот файл не попадают.

## Управление чатами других сотрудников

Expand Down
40 changes: 40 additions & 0 deletions apps/docs/content/updates/2026-08-05.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
---
date: '2026-08-05'
title: 'Архивные чаты в списке, OAuth-клиент бота и проверка entity_type'
---

Список чатов научился отдавать архивные. По умолчанию, как и раньше,
возвращаются только активные чаты, а параметр `archived` добавляет к ним
архивные — при любом значении `availability`. Отличить один от другого можно по
новому полю `archived` объекта чата: оно приходит во всех ответах с чатом,
независимо от параметров запроса.

- [Список чатов](GET /chats)
- [Информация о чате](GET /chats/{id})

У бота появились параметры OAuth-клиента. Их можно задать при создании и
редактировании бота объектом `oauth_client`, а в ответе они приходят в
одноимённом поле: идентификатор клиента, сокращённый вид его секрета,
признак конфиденциальности, адреса возврата и запрашиваемые скоупы. Секрет
конфиденциального клиента целиком возвращается один раз — в ответе на создание,
в поле `client_secret`.

- [Новый бот](POST /bots)
- [Редактирование бота](PUT /bots/{id})
- [Информация о боте](GET /bots/{id})
- [Список ботов](GET /bots)

Скоуп `group_tags:read` стал доступен роли «Сотрудник» и токенам ботов — теги в
API теперь видны тем же, кому они видны в интерфейсе.

Неизвестное значение `entity_type` при отправке сообщения больше не приводит к
отправке в чат со случайно совпавшим идентификатором: метод отвечает `400` с
кодом `invalid`. Регистр значения по-прежнему не важен.

- [Новое сообщение](POST /messages)

В журнале аудита появились три типа событий: изменение параметров OAuth-клиента
бота, выдача клиенту доступа к данным пользователя и отзыв такого доступа.
Состав деталей каждого — в гайде [Журнал аудита событий](/guides/audit-events).

- [Журнал аудита событий](GET /audit_events)
77 changes: 77 additions & 0 deletions apps/docs/data/releases.json
Original file line number Diff line number Diff line change
@@ -1,4 +1,81 @@
[
{
"product": "sdk",
"version": "1.2.0",
"date": "2026-08-05",
"changes": [
{
"type": "~",
"description": "Поле `webhook` в запросах `POST /bots` и `PUT /bots/{id}` стало необязательным"
},
{
"type": "+",
"description": "Поле `archived` в модели чата и одноимённый параметр запроса в методе `Список чатов` (`GET /chats`)"
},
{
"type": "+",
"description": "Поле `oauth_client` в модели бота и в запросах `POST /bots` и `PUT /bots/{id}`, модели `BotOAuthClient` и `BotOAuthClientRequest`"
},
{
"type": "+",
"description": "Поле `client_secret` в ответе метода `Новый бот` (`POST /bots`)"
},
{
"type": "+",
"description": "Значения `bot_oauth_client_updated`, `oauth_authorization_granted` и `oauth_authorization_revoked` в `AuditEventKey` и модели их деталей"
},
{
"type": "~",
"description": "Скоуп `group_tags:read` доступен ролям `user` и `bot`"
}
]
},
{
"product": "cli",
"version": "2026.8.1",
"date": "2026-08-05",
"changes": [
{
"type": "+",
"description": "`pachca chats list` — флаг `--archived` для выдачи архивных чатов вместе с активными"
},
{
"type": "+",
"description": "`pachca bots create` и `pachca bots update` — флаг `--oauth-client` с параметрами OAuth-клиента бота"
},
{
"type": "+",
"description": "`pachca security list` — фильтр `--event-key` принимает `bot_oauth_client_updated`, `oauth_authorization_granted` и `oauth_authorization_revoked`"
}
]
},
{
"product": "n8n",
"version": "2.0.18",
"date": "2026-08-05",
"changes": [
{
"type": "+",
"description": "`Chat`: операция `Get Many` — поле `Archived` для выдачи архивных чатов вместе с активными"
},
{
"type": "+",
"description": "`Bot`: операции `Create` и `Update` — поле `OAuth Client` с параметрами OAuth-клиента бота"
},
{
"type": "+",
"description": "`Security`: фильтр событий пополнился значениями `Bot OAuth Client Updated`, `OAuth Authorization Granted` и `OAuth Authorization Revoked`"
},
{
"type": "~",
"description": "`Group Tag`: у операций чтения тегов убрана пометка о необходимости прав администратора — скоуп `group_tags:read` доступен сотрудникам и ботам"
},
{
"type": "-",
"description": "JSON-поля разбираются перед отправкой запроса и больше не уходят в API строкой. Некорректный ввод падает на ноде с понятным сообщением, а не возвращается ошибкой валидации из API. Затрагивает `Message: Unfurl` (поле `Link Previews`) и новое поле `OAuth Client`"
}
]
},
{
"product": "sdk",
"version": "1.1.0",
Expand Down
2 changes: 1 addition & 1 deletion apps/docs/public/.well-known/agent-skills/index.json
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
"type": "skill-md",
"description": "Pachca — управление чатами, каналами и беседами. Используй этот скилл, когда пользователь хочет создать канал, создать беседу, вывести или архивировать чаты, добавить или удалить участников, изменить роли участников, экспортировать историю чата или проверить настройки чата. НЕ для отправки сообщений или ответов в тред.",
"url": "/.well-known/skills/pachca-chats/SKILL.md",
"digest": "sha256:4aa6b616f60a03906d10694fed7bcc9926bbf8c40d4d6ed07adb2ffc51d59793"
"digest": "sha256:a6abf09b97b2bb3c38170f97f6921fd4ffb87a6aed7f910f36d170cdb60cca71"
},
{
"name": "pachca-messages",
Expand Down
2 changes: 1 addition & 1 deletion apps/docs/public/.well-known/skills/index.json
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
"type": "skill-md",
"description": "Pachca — управление чатами, каналами и беседами. Используй этот скилл, когда пользователь хочет создать канал, создать беседу, вывести или архивировать чаты, добавить или удалить участников, изменить роли участников, экспортировать историю чата или проверить настройки чата. НЕ для отправки сообщений или ответов в тред.",
"url": "/.well-known/skills/pachca-chats/SKILL.md",
"digest": "sha256:4aa6b616f60a03906d10694fed7bcc9926bbf8c40d4d6ed07adb2ffc51d59793"
"digest": "sha256:a6abf09b97b2bb3c38170f97f6921fd4ffb87a6aed7f910f36d170cdb60cca71"
},
{
"name": "pachca-messages",
Expand Down
1 change: 1 addition & 0 deletions apps/docs/public/.well-known/skills/pachca-chats/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,7 @@ Help: `npx -y @pachca/cli --help` | Workflows: `npx -y @pachca/cli guide`
```bash
pachca chats list --last-message-at-before=<порог> --all
```
> Архивные чаты в выдачу не попадают, поэтому отсеивать уже заархивированные не нужно. Чтобы получить их вместе с активными, добавь `--archived` и смотри поле `archived` каждого чата

2. Для каждого чата: архивируй:
```bash
Expand Down
2 changes: 1 addition & 1 deletion apps/docs/public/api/authorization.md
Original file line number Diff line number Diff line change
Expand Up @@ -150,7 +150,7 @@ Authorization: Bearer <ACCESS_TOKEN>
| `users:create` | Создание новых сотрудников | Владелец, Администратор |
| `users:update` | Редактирование данных сотрудника | Владелец, Администратор |
| `users:delete` | Удаление сотрудников | Владелец, Администратор |
| `group_tags:read` | Просмотр тегов | Владелец, Администратор |
| `group_tags:read` | Просмотр тегов | Все |
| `group_tags:write` | Создание, редактирование и удаление тегов | Владелец, Администратор |
| `bots:read` | Просмотр ботов | Владелец, Администратор, Сотрудник |
| `bots:write` | Управление ботами | Владелец, Администратор, Сотрудник |
Expand Down
Loading
Loading