Для AI-агентов: markdown этой страницы — /docs-content/infra/access/audience-proposals.md индекс документации — /llms.txt

Проверить или отменить запрос доступа

GET /v1/infra/servers/:id/audience-proposals/:proposalId

POST /v1/infra/servers/:id/audience-proposals/:proposalId/cancel

Позволяют исходному API-ключу прочитать свой запрос на изменение доступа или отменить его. proposalId приходит в error.details.proposalId ответа 409 AUDIENCE_APPROVAL_REQUIRED на исходное действие. Другой ключ того же владельца не получает доступ к запросу.

API-ключ не может подтвердить запрос. Решение принимает человек, вошедший в кабинет. Состояние APPROVED означает согласие, а не применение: исходный вызов нужно повторить с тем же ключом, точными параметрами и approvalId. Отмена сама по себе не меняет доступ.

Параметры

Параметр В Тип Обяз. Описание
id path string (UUID) да ID сервера из исходного действия; список — Список серверов
proposalId path string (UUID) да ID запроса из error.details.proposalId

Для отмены тело необязательно. Если оно передано, допустим только пустой объект {}. Идентичность вызывающего определяется проверенным X-Api-Key, а не полями тела.

Примеры

curl — проверить

Terminal
curl "https://vibecode.bitrix24.tech/v1/infra/servers/SERVER_ID/audience-proposals/PROPOSAL_ID"   -H "X-Api-Key: YOUR_API_KEY"

curl — отменить

Terminal
curl -X POST "https://vibecode.bitrix24.tech/v1/infra/servers/SERVER_ID/audience-proposals/PROPOSAL_ID/cancel"   -H "X-Api-Key: YOUR_API_KEY"

JavaScript — проверить

javascript
const response = await fetch(
  `https://vibecode.bitrix24.tech/v1/infra/servers/${serverId}/audience-proposals/${proposalId}`,
  { headers: { 'X-Api-Key': apiKey } },
)
const { proposal } = await response.json()
console.log(proposal.state)

JavaScript — отменить

javascript
const response = await fetch(
  `https://vibecode.bitrix24.tech/v1/infra/servers/${serverId}/audience-proposals/${proposalId}/cancel`,
  { method: 'POST', headers: { 'X-Api-Key': apiKey } },
)
const { proposal } = await response.json()
console.log(proposal.state)

Поля ответа

Успешный ответ имеет вид { "proposal": ... }, без обёртки success или data. Таблица описывает основные поля; ответ также содержит проверяемое действие, исходный, предполагаемый и текущий состав доступа, названия участников и различия.

Поле Тип Описание
proposal.id string (UUID) ID запроса
proposal.state string PENDING, APPROVED, APPLIED, REJECTED, CANCELLED, EXPIRED или STALE
proposal.baseRevision string Версия доступа при создании; десятичная строка
proposal.currentRevision string Текущая версия доступа; десятичная строка
proposal.expiresAt string Срок запроса в ISO 8601
proposal.canDecide boolean Для API-ключа всегда false
proposal.canCancel boolean Можно ли отменить запрос сейчас
proposal.resultEntityId string (UUID), optional ID созданной записи после применения; не токен и не секретная ссылка

Пример ответа

Ниже показаны только ID, состояние и версии из ответа проверки:

JSON
{
  "proposal": {
    "id": "00000000-0000-4000-8000-000000000001",
    "state": "PENDING",
    "baseRevision": "0",
    "currentRevision": "0"
  }
}

После успешной отмены состояние — CANCELLED.

Пример ответа при ошибке

404 — запрос отсутствует или принадлежит другому вызывающему:

JSON
{
  "success": false,
  "error": { "code": "NOT_FOUND", "message": "Proposal not found" }
}

Ошибки

HTTP Код Описание
400 VALIDATION_ERROR Неверный UUID или непустое тело отмены
401 MISSING_API_KEY Ключ не передан
401 INVALID_API_KEY Ключ не опознан
403 AUDIENCE_APPROVAL_FORBIDDEN Текущий ключ, его владелец или привязка к порталу больше не допускают действие
404 NOT_FOUND Нет сервера или запроса в нужном портале либо запрос создан другим вызывающим
409 AUDIENCE_APPROVAL_REPLAY Отмена: запрос уже применён, отменён или завершён другим решением
409 AUDIENCE_APPROVAL_STALE Отмена: версия доступа изменилась
410 AUDIENCE_APPROVAL_EXPIRED Отмена: срок запроса истёк

Полный список общих ошибок API — Ошибки.

Известные особенности

  • Исходный ключ остаётся обязательным. Выдача нового ключа тому же владельцу не переносит запрос. Даже ключ со scope vibe:cowork может проверить и отменить собственный запрос, если остальные текущие проверки проходят; это не даёт ему права выполнять изменяющие infra-операции.
  • Чтение обнаруживает устаревший запрос. Проверка может вернуть STALE или EXPIRED. Такое согласие неприменимо; создайте новый запрос исходным действием.
  • Секреты не выдаются через отчёт. Bearer/JWT и секретные ссылки получает только исходный вызов после применения, а не эти методы.

Смотрите также