Отсутствует approval
Что это
Чувствительные операции в raytsystem никогда не выполняются «по умолчанию». Инвариант
AGENTS.md: никакой внешней отправки, публикации, загрузки, удаления, egress приватного
корпуса или продвижения реального корпуса без явного разрешения с точной областью.
Разрешение (approval) — точное, с истечением срока и привязанное к хэшу payload.
Если разрешения нет или оно не подходит, действие отклоняется, а не «проскакивает».
Когда использовать
Когда операция (активация пакета, продвижение узла процесса, внешнее действие) возвращает ошибку про отсутствующее, истёкшее или несоответствующее approval.
Пошагово: симптом → причина → диагностика → решение
1. Разрешение вообще не выдавалось
Например, PackageLifecycleService.approve сразу падает при пустом approval_id
(«Package approval is required», src/raytsystem/packages/service.py).
- Решение: выдайте разрешение штатной командой для нужной операции — например
uv run raytsystem workflow approveилиuv run raytsystem package approve.
2. Разрешение истекло
Approval имеет срок действия. После истечения его нельзя переиспользовать — это защищает от «повторного проигрывания» устаревшего одобрения.
- Решение: получите свежее разрешение под текущее действие.
3. Разрешение не соответствует действию или payload
AuthorityResolver.require_approval проверяет связку action, target_id,
artifact_sha256 и требуемую область (required_scope), см. вызов в
src/raytsystem/packages/service.py. Если хэш артефакта или область не совпадают
(«Package approval authority is invalid») — разрешение отклоняется.
- Диагностика: убедитесь, что одобряете именно тот объект и ту версию. Для
предпросмотра решения без записи используйте
uv run raytsystem policy simulate— симулятор ничего не пишет.
Ожидаемый результат
После выдачи точного, не истёкшего разрешения, связанного с нужным payload и областью, операция проходит.
Ограничения и безопасность
- Файл с JSON-разрешением, созданный в рабочем каталоге, не является авторитетом.
- Разрешение перепроверяется под фиксацией (fence), поэтому подмена после выдачи не сработает.
- Секретные автоматы защиты латчат и требуют свежего approval для закрытия — см. /security/emergency-controls.
Когда открыть issue
Если вы выдали корректное, свежее разрешение с правильной областью и хэшем, а действие всё равно отклоняется — приложите action, target и область (без секретов) и откройте issue.
Связанные страницы
Источники истины
src/raytsystem/packages/service.pyAGENTS.md