К содержимому
# Доступ
[Home](/ru/ai)
[Catalog](/ru/ai/catalog)
Приглашение, грант, принятие и отзыв доступа к major-линии.
## Pages
[Главная](/ru/ai/docs)
### Быстрый старт
[Быстрый старт](/ru/ai/docs/quickstart)
[Для человека](/ru/ai/docs/quickstart/human)
[Для ИИ-агента](/ru/ai/docs/quickstart/agent)
[Харнессы](/ru/ai/docs/harnesses)
[Понятия](/ru/ai/docs/concepts)
[Каталог](/ru/ai/docs/catalog)
### CLI
[CLI](/ru/ai/docs/cli)
[Карта команд](/ru/ai/docs/cli/commands)
[Наблюдение](/ru/ai/docs/cli/observe)
[Конфигурация](/ru/ai/docs/cli/config)
[Телеметрия](/ru/ai/docs/cli/telemetry)
[Устройство](/ru/ai/docs/cli/device)
[Паспорта](/ru/ai/docs/cli/passport)
[Вход](/ru/ai/docs/cli/auth)
[Согласие](/ru/ai/docs/cli/consent)
[Проект](/ru/ai/docs/cli/project)
[Toolchain](/ru/ai/docs/cli/toolchain)
[Harness](/ru/ai/docs/cli/harness)
[Agent Skill CLI](/ru/ai/docs/cli/skill)
[Реестр](/ru/ai/docs/cli/registry)
#### Компонент
[Обзор](/ru/ai/docs/cli/component)
[Обнаружение](/ru/ai/docs/cli/component-discover)
[Паспорт](/ru/ai/docs/cli/component-passport)
[Источник](/ru/ai/docs/cli/component-source)
[Публикация](/ru/ai/docs/cli/component-publish)
[Выбор](/ru/ai/docs/cli/select)
[Установка](/ru/ai/docs/cli/install)
[Target](/ru/ai/docs/cli/target)
[Setup](/ru/ai/docs/cli/setup)
[Provider](/ru/ai/docs/cli/provider)
[Синхронизация](/ru/ai/docs/cli/sync)
[Доступ](/ru/ai/docs/cli/grant)
[Жалобы](/ru/ai/docs/cli/report)
[Owner](/ru/ai/docs/cli/owner)
[Publication](/ru/ai/docs/cli/publication)
[Eval](/ru/ai/docs/cli/eval)
### Веб
[Веб](/ru/ai/docs/web)
[Главная](/ru/ai/docs/web/home)
[Каталог](/ru/ai/docs/web/catalog)
[Карточка компонента](/ru/ai/docs/web/catalog-component)
[Карточка сетапа](/ru/ai/docs/web/catalog-setup)
[Региональные сервисы](/ru/ai/docs/web/services)
[Издатели](/ru/ai/docs/web/publishers)
[Content](/ru/ai/docs/web/content)
[Эта документация](/ru/ai/docs/web/docs)
[Контакт](/ru/ai/docs/web/contact)
[Правовые документы](/ru/ai/docs/web/legal)
[Вход](/ru/ai/docs/web/login)
[Аккаунт](/ru/ai/docs/web/account)
[Профиль](/ru/ai/docs/web/profile)
[Устройства](/ru/ai/docs/web/devices)
[Объекты](/ru/ai/docs/web/objects)
[Доступ](/ru/ai/docs/web/access)
[Жалобы](/ru/ai/docs/web/reports)
[Лайки](/ru/ai/docs/web/likes)
[Онбординг](/ru/ai/docs/web/onboarding)
[Публикация](/ru/ai/docs/web/publications)
### Компоненты
[Компоненты](/ru/ai/docs/components)
[instruction](/ru/ai/docs/components/instruction)
[skill](/ru/ai/docs/components/skill)
[mcp](/ru/ai/docs/components/mcp)
[hook](/ru/ai/docs/components/hook)
[command](/ru/ai/docs/components/command)
[agent](/ru/ai/docs/components/agent)
[plugin](/ru/ai/docs/components/plugin)
[setting](/ru/ai/docs/components/setting)
[Сетапы](/ru/ai/docs/setups)
### Публикация
[Публикация](/ru/ai/docs/publishing)
[Авторство](/ru/ai/docs/publishing/authoring)
### Доверие и безопасность
[Обзор](/ru/ai/docs/trust-and-safety)
[Проверки безопасности](/ru/ai/docs/security-checks)
[Диагностика](/ru/ai/docs/troubleshooting)
[cli](/ru/ai/docs/components/cli)
## Content
# Доступ Грант передаёт другому аккаунту доступ к одному конкретному объектному **major-линии**. Это не установка сетапа, не запись в каталоге и не редактирование паспорта. Локальные байты остаются на машинах, где они уже есть. Отзыв работает только вперёд. Эти команды требуют авторизованного аккаунта. Токен приглашения читается из именованной переменной окружения. Он никогда не передаётся как флаг командной строки. ## Таблица команд | Команда | Изменяемость | Подтверждение | Когда | | --- | --- | --- | --- | | `ai-stp grant list` | `read` | `none` | приглашения и гранты major-линии, принадлежащие текущему аккаунту | | `ai-stp grant invite` | `apply` | `explicit_flag` | создать email-приглашение для одной точной major-линии объекта | | `ai-stp grant direct` | `apply` | `explicit_flag` | выдать грант одной точной major-линии явному идентификатору аккаунта | | `ai-stp grant accept` | `apply` | `explicit_flag` | принять приглашение по токену из именованной переменной окружения | | `ai-stp grant invitation revoke` | `destructive` | `explicit_flag` | отозвать одно ожидающее приглашение без удаления локальных байтов | | `ai-stp grant revoke` | `destructive` | `explicit_flag` | отозвать один активный грант только вперёд, сохраняя локальные байты | `--json` — глобальный флаг. Всегда передавайте его. Каждая изменяющая команда требует `--confirm` и `--idempotency-key`. ## List ```bash ai-stp grant list --json ``` Поля успеха: `grants`, `invitations`. Каждый грант содержит `grant_id`, `object_kind`, `stable_id`, `major`, `state`, `owner_account_id`, `grantee_account_id`, `recipient`, `recipient_kind`, `created_at`, `revoked_at`. Каждое приглашение содержит `invitation_id`, `object_kind`, `stable_id`, `major`, `state`, `created_at`, `expires_at`. ## Invite ```bash ai-stp grant invite \ --kind component \ --id <stable_id> \ --major 1 \ --email user@example.com \ --idempotency-key <key> \ --confirm \ --json ``` `--kind` — `component` или `setup`. `--id` — стабильный идентификатор объекта. `--major` — точная major-линия. `--email` — верифицированный адрес получателя. `--ttl-seconds` опционален; по умолчанию — семь дней. `--idempotency-key` и `--confirm` обязательны. Ответ — приглашение: `invitation_id`, `object_kind`, `stable_id`, `major`, `state`, `created_at`, `expires_at`. Токен **не** содержится в envelope. Он доставляется out-of-band. ## Direct ```bash ai-stp grant direct \ --kind setup \ --id <stable_id> \ --major 1 \ --recipient-kind github_username \ --recipient octocat \ --idempotency-key <key> \ --confirm \ --json ``` `--recipient-kind` — `github_username` или `user_id`. `--recipient` — значение в этом пространстве имён. `--kind`, `--id`, `--major`, `--idempotency-key` и `--confirm` обязательны. Ответ — грант доступа: `grant_id`, `object_kind`, `stable_id`, `major`, `state`, `owner_account_id`, `grantee_account_id`, `recipient`, `recipient_kind`, `created_at`, `revoked_at`. ## Accept ```bash ai-stp grant accept \ --invitation-id <invitation_id> \ --token-env AI_STP_GRANT_TOKEN \ --idempotency-key <key> \ --confirm \ --json ``` `--token-env` именует переменную окружения, содержащую токен приглашения. Не передавайте токен как флаг. Ответ — грант доступа той же формы, что и у `direct`. ## Revoke invitation, revoke grant ```bash ai-stp grant invitation revoke \ --invitation-id <invitation_id> \ --reason "issued to the wrong address" \ --idempotency-key <key> \ --confirm \ --json ai-stp grant revoke \ --grant-id <grant_id> \ --reason "access no longer needed" \ --idempotency-key <key> \ --confirm \ --json ``` `--reason` опционален. Оба ответа содержат `revoked` и `local_bytes_retained`. Локальные байты сохраняются. Отзыв не удаляет установленный target. `grant invitation revoke` и `grant revoke` — `destructive`. Это отдельное решение, отличное от просмотра списка или приглашения. ## Счастливый путь Приглашение: ```text grant list → grant invite --kind component --id <id> --major 1 --email <addr> --idempotency-key <key> --confirm → grant list ``` Принятие на машине получателя: ```text # токен уже в именованной переменной окружения grant accept --invitation-id <id> --token-env AI_STP_GRANT_TOKEN --idempotency-key <key> --confirm → grant list ``` Direct: ```text grant direct --kind setup --id <id> --major 1 --recipient-kind user_id --recipient <account_id> --idempotency-key <key> --confirm ``` ## Именованные поля успеха | Команда | Поля для чтения | | --- | --- | | `list` | `grants`, `invitations` | | `invite` | `invitation_id`, `expires_at`, `state` | | `direct` / `accept` | `grant_id`, `grantee_account_id`, `major`, `state` | | `invitation revoke` / `revoke` | `revoked`, `local_bytes_retained` | ## Отказы | Что вы видите | Что это значит | Что делать | | --- | --- | --- | | `AI_STP_AUTH_REQUIRED` | нет авторизованного аккаунта | `task start --intent account --idempotency-key account-session-01 --json` | | `AI_STP_USER_DECISION_REQUIRED` | `--confirm` не передан | передайте `--confirm` после проверки kind, id и major | | `AI_STP_VALIDATION_ERROR` | отсутствует `--idempotency-key`, `--token-env` или `--kind` | прочитайте descriptor; `--kind` — `component` или `setup` | | `AI_STP_PERMISSION_DENIED` | этот аккаунт не владеет данной major-линией | `owner objects`; нельзя выдать грант на чужой объект | | `AI_STP_NOT_FOUND` | приглашение, грант или объект неизвестны | `grant list` | | `AI_STP_CONFLICT` | idempotency key уже именует другое намерение | используйте новый ключ или повторно применяйте ключ только для того же намерения | | `AI_STP_PRECONDITION_FAILED` | приглашение истекло или уже отозвано | `grant list`; отправьте новое приглашение | | токен в командной строке | такой опции не существует | поместите его в переменную окружения и укажите имя переменной | Major-линия — граница доступа. `--major 1` не даёт доступ к `2.x`. Открытие новой major-версии через `component version release --major` — другая команда. ## Связанные ссылки - [Owner objects](owner.md) - [Sign-in](auth.md) - [Publication](publication.md) - [Web access](../web/access.md) - [Trust and safety](../trust-and-safety/index.md) - [Command map](commands.md) ## Флаги берутся из continuation argv ```bash ai-stp task intents --json ``` Не дампьте `help --agent` как прелюдию. Флаги текущей задачи — в continuation `argv`. Эта страница группирует команды grant, чтобы человек мог их найти. Если эта страница и CLI расходятся, следуйте CLI.