StackMoreLayersДокументация
CLI

Автоматизация и безопасность

JSON-вывод, коды завершения, безопасные повторы, тайм-ауты и работа с секретами.

Стабильный JSON-вывод

sml submissions list --output json \
  | jq '.results[] | select(.status == "finished")'

Для автоматизации используйте JSON и документированные поля контракта. Табличный вывод может меняться для удобства работы в терминале.

Секреты

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

Надёжные повторы

Мутации генерируют или принимают --idempotency-key. Для операции, которую CI может повторить после обрыва, задайте ключ заранее. Повторяйте запрос с тем же ключом и параметрами: новый ключ означает новую операцию.

Уважайте Retry-After и используйте ограниченную экспоненциальную задержку со случайным разбросом для 429, 502, 503 и 504. Не повторяйте ошибки валидации или доступа.

Отмена и сигналы

Первый Ctrl+C отменяет текущий запрос или загрузку и даёт CLI завершить локальную очистку. Не считайте локальную отмену доказательством отсутствия серверного результата — запросите состояние ресурса перед повтором.

Деструктивные действия

Команды удаления требуют --yes. В CI задавайте точный ID ресурса и проверяйте окружение до вызова; не извлекайте цель удаления из непроверенного табличного вывода.

На этой странице