Перейти к содержанию

Устройство

Идентичность устройства — локальная идентичность этой установки. Её создают офлайн, до любого аккаунта, и она остаётся здесь, даже если вы никогда не войдёте. Закрытый ключ доказывает, с какого устройства пришло позднее событие синхронизации или attestation.

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

Команды

Команда Mutability Confirmation Когда
ai-stp device init apply none создать идентичность этой установки или вернуть существующую
ai-stp device show read none показать идентичность устройства и где хранится ключ
ai-stp device reset destructive explicit_flag вывести эту идентичность из строя и создать новую

device init идемпотентен: второй запуск возвращает идентичность, которую сделал первый. device show ничего не создаёт. device reset — другая команда. Она destructive, требует --confirm и не является способом повторить doctor.

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

ai-stp device init --json
ai-stp device show --json

Для локальной работы аккаунт не нужен. Нужна эта идентичность и затем паспорт разработчика. См. Паспорта.

Закрытый ключ живёт в секретном хранилище операционной системы. Если хранилище недоступно, CLI говорит, что отступил к файлу, и не скрывает этот факт. credential_store тогда file, а не os_keyring, а credential_store_detail называет почему.

Не запускайте device reset потому, что doctor сообщил, что идентичности нет. Исправление «никогда не создавали» — device init. Reset — чтобы вывести из строя ключ, который эта машина больше не должна держать.

device init

Создать идентичность этой установки или вернуть существующую.

ai-stp device init --json

Первому запуску не нужны sudo и аккаунт. Если идентичность уже есть, команда возвращает её. Ключ она не ротирует. Устройство на платформе она не регистрирует — это происходит при Входе.

Если секретное хранилище не может держать ключ, конверт всё равно успешен, и предупреждение говорит об этом. Читайте warnings. Не считайте откат к файлу молчаливым.

device show

Показать идентичность устройства и где хранится ключ.

ai-stp device show --json

Это чтение. Если идентичности нет, команда отказывает с AI_STP_NOT_FOUND, а next_actions называет device init. Наблюдение не должно создавать состояние.

Закрытого ключа в конверте нет и напечатать его нельзя по построению. Видно публичный материал: идентификатор, открытый ключ, отпечаток и место, где хранится секрет.

device reset

Вывести эту идентичность устройства из строя и создать новую.

ai-stp device reset --confirm --json

--confirm обязателен. Без него команда отказывает с AI_STP_USER_DECISION_REQUIRED. Это решение, а не сломанный флаг.

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

Reset — это не:

  • повтор device init;
  • способ «починить» doctor;
  • выход из сессии (см. auth logout);
  • заводской сброс установки.

После reset в retired_device_ids новой идентичности есть старый идентификатор. Облачный доступ сам не возобновляется. Нужен новый вход, и аккаунт должен одобрить новый ключ. Локальные паспорта, реестр и кэшированные байты каталога остаются. Они теперь привязаны к другой идентичности устройства; sync будет считать это другим подписантом.

ai-stp device init --json
ai-stp device show --json
ai-stp device reset --confirm --json
ai-stp device show --json

Только после того, как человек решил уничтожить текущий ключ.

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

Все три команды возвращают одну форму в data:

Поле Что это
device_id идентификатор устройства этой установки
public_key открытая половина ключа устройства
key_fingerprint короткий отпечаток этого ключа
state active или revoked
credential_store os_keyring или file
credential_store_detail почему выбрано это хранилище
created_at когда создана эта идентичность
retired_device_ids идентификаторы, которые эта установка вывела из строя
schema_version major схемы этого отчёта

Конверт также несёт ok, warnings, next_actions, request_id, operation_id и schema_version. После init или reset предупреждение об откате к файлу всё равно успех.

Идентичность устройства — не паспорт устройства

Объект Группа команд Что держит
Идентичность устройства device device_id, пара ключей, отзыв
Паспорт устройства passport device наблюдаемое окружение: ОС, архитектура, установленные harness
Облачная сессия auth держит ли это устройство сейчас учётные данные аккаунта

device show не печатает операционную систему и версии harness. Они принадлежат passport device show. auth status не печатает device_id как доказательство сессии: устройство после init есть всегда, сессии может не быть.

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

  • не печатают и не экспортируют закрытый ключ;
  • не кладут секрет в паспорт, журнал или файл конфигурации;
  • не удаляют локальный реестр и кэшированные байты каталога;
  • не входят в аккаунт и сами не регистрируют устройство на платформе;
  • не пишут target harness.

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

Что видно Что это значит Что делать
AI_STP_NOT_FOUND на device show идентичность никогда не создавали ai-stp device init --json
AI_STP_USER_DECISION_REQUIRED на device reset не было --confirm ai-stp device reset --confirm --json после явного решения
credential_store равен file секретное хранилище ОС было недоступно читать credential_store_detail; это сообщают, а не скрывают
doctor сообщает, что устройства нет device show отказал бы так же device init, не device reset
облачные вызовы падают после reset старый ключ выведен из строя task start --intent account --idempotency-key account-session-01 --json

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

Страница Зачем
Быстрый старт для человека идентичность первого запуска связным текстом
Наблюдение doctor сообщает device_identity
Паспорта паспорт устройства против идентичности
Вход привязка этого устройства к аккаунту
Синхронизация события, которые подписывает это устройство
Устройства на сайте та же идентичность, как её показывает сайт
Диагностика сбои секретного хранилища и PATH

Флаги из ai-stp help --agent --json

Если help --agent расходится с флагом на этой странице, прав CLI. Необязательные флаги здесь не перечислены. Читайте их из дескриптора. device reset требует --confirm.