Автоматизация и безопасность
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 ресурса и проверяйте
окружение до вызова; не извлекайте цель удаления из непроверенного табличного
вывода.