К содержимому

Согласие

Записать, перечислить и отозвать явное согласие на непроверенных издателей, major-линии объектов и авторизованный профиль задачи.

Согласие

Непроверенный объект не участвует в автоматической установке без явного согласия пользователя. Эта группа записывает согласие, показывает, что ещё в силе, и отзывает его. Она ничего не устанавливает.

Согласие имеет scope. Контракт определяет publisher, object_major и task. Переключателя «всё на этой машине» не существует: task называет авторизованный профиль full-auto, а не всех издателей.

Это не согласие Телеметрии установки. Телеметрия — анонимный ping установки со своей командой. Смешивать их — значит принять решение о риске каталога за предпочтение трафика.

Команды

КомандаMutabilityConfirmationКогда
ai-stp consent allowapplynoneзаписать согласие на неверифицированные объекты одного издателя, мажорной линии или авторизованного профиля задачи
ai-stp consent revokeapplynoneотозвать согласие; для последующих запросов действует сразу
ai-stp consent listreadnoneкаждое согласие, которое ещё в силе, и что оно покрывало в момент выдачи

confirmation — none. Решение — сама команда, направленная на одного издателя, одну major-линию или авторизованный профиль full-auto. Это уже, чем --confirm, который мог бы покрыть что угодно.

Типичный путь

Посмотреть, что уже записано, затем разрешить одного издателя, затем проверить снова:

ai-stp consent list --json
ai-stp consent allow --scope publisher --target <publisher> --json
ai-stp consent list --json

Чтобы разрешить одну major-линию объекта:

ai-stp consent allow --scope object_major --target <stable_id>@<major> --json

Чтобы записать полномочие полной задачи:

ai-stp consent allow --scope task --target full-auto --json

Чтобы отозвать любую из форм:

ai-stp consent revoke --scope publisher --target <publisher> --json
ai-stp consent list --json

--scope и --target — объявленные опции. Обработчик отказывает, если нет любой из них. --scope — publisher, object_major или task. --target — издатель, major-линия объекта или full-auto.

Записанное согласие — не разрешение пропустить eligibility, план или --expected-plan-digest. Оно отвечает только на ворота непроверенного объекта, которые иначе остановили бы поздний запрос.

publisher покрывает непроверенные объекты одного издателя. object_major покрывает одну major-линию объекта. task / full-auto покрывает непроверенных кандидатов авторизованного профиля без отдельного grant на объект. Отозванная более узкая запись publisher или object-major по-прежнему исключает эту цель. Нет цели * и нет разрешения на весь аккаунт. Если нужны два издателя, записывают два согласия.

Fingerprint для publisher и object_major сохраняется, а не пересчитывается. Поздний запрос, которому нужно больше, чем хранит fingerprint, отказывается, если его не покрывает активный task. Разрешайте fingerprint-scope снова только после того, как прочитали, что выросло.

Записать согласие на неверифицированные объекты одного издателя, мажорной линии или авторизованного профиля задачи.

ai-stp consent allow --scope publisher --target <publisher> --json

Сохраняется согласие и fingerprint того, что кандидат требовал в момент согласия. Весь механизм — «нужно ли теперь больше, чем тогда», а на это нельзя ответить без старого ответа. Если у кандидата позже вырастет новый риск, старое согласие его не покрывает.

scope должен быть одним из тех, что определяет контракт. Неизвестное слово отклоняется до любых вопросов о цели, чтобы опечатка не выглядела как отсутствующий издатель.

Разрешить согласие, которое уже в силе, — не второе, более широкое разрешение. Читайте возвращённую запись.

Отозвать согласие. Для последующих запросов действует сразу.

ai-stp consent revoke --scope publisher --target <publisher> --json

Поздние запросы выбора и установки видят отзыв. Уже установленное нативное состояние эта команда не откатывает. Откат target — Target, через provider.

Отозвать согласие, которого никогда не давали, отказывается с AI_STP_NOT_FOUND.

Каждое согласие, которое ещё в силе, и что оно покрывало в момент выдачи.

ai-stp consent list --json

Это чтение. Пустой массив records — успешный ответ, а не ошибка. Значит, в силе ничего нет.

Что содержит успешный конверт

consent allow и consent revoke возвращают одну запись в data:

ПолеЧто это
consent_idидентификатор этого согласия
scopepublisher, object_major или task
targetиздатель, major-линия или профиль full-auto, который оно покрывает
fingerprintчто кандидат требовал, когда пользователь согласился
observedчто наблюдали в тот момент
originгде записали решение
decided_byкто его записал
created_atкогда его дали
revoked_atкогда отозвали, или null
schema_versionmajor схемы этой записи

consent list возвращает:

ПолеЧто это
recordsкаждое согласие, которое ещё в силе, в форме выше
schema_versionmajor схемы этой сводки

Конверт также несёт ok, warnings, next_actions, request_id, operation_id и schema_version.

Согласие — не trust line

Доверие и безопасность по-прежнему действует.

ЛинияЧто делает согласие
authoritativeне эта страница; обычные план и подтверждение
experimentalможно рассматривать только после явного согласия
local_owner_or_pinnedвыбирается как локально закреплённый объект, не потому что платформа его подтвердила

author_verified и component_verified остаются независимыми. Согласие не переключает ни один флаг. Оно не переносит объект на линию authoritative.

Чего эти команды никогда не делают

  • не ставят, не обновляют и не удаляют компонент или сетап;
  • не расширяют согласие издателя до «всех издателей»;
  • не заменяют согласие телеметрии;
  • не кладут секреты в сохранённый fingerprint;
  • не пропускают eligibility select и подтверждение плана install;
  • не пишут target harness.

Типичные отказы

Что видноЧто это значитЧто делать
AI_STP_VALIDATION_ERROR нет scope или targetоба обязательныпередать --scope и --target
AI_STP_VALIDATION_ERROR unknown scopeслово не publisher, не object_major и не taskиспользовать одно из этих трёх
AI_STP_NOT_FOUND на revokeэтого согласия не давали или его уже нетconsent list --json
AI_STP_PRECONDITION_FAILEDкандидату теперь нужно больше, чем покрывает fingerprintчитать details; разрешать снова только после нового риска
установка всё равно отказываетсогласие — не digest плана и не eligibilityВыбор, затем Установка
смешение с telemetry consentдругое решение, другая командаТелеметрия установки

Связанные страницы

СтраницаЗачем
Доверие и безопасностьлинии доверия и две оси проверки
Каталогкак читать карточку до согласия
Реестрнайти издателя или объект
Выборeligibility всё равно действует
Установкаplan, approve, apply всё равно действуют
Телеметрия установкидругой экран согласия
Жалобыпожаловаться на объект после факта

!!! note "Флаги из ai-stp help --agent --json" Если help --agent расходится с флагом на этой странице, прав CLI. Необязательные флаги здесь не перечислены. Читайте их из дескриптора.