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

Credential-провайдеры

Credential-провайдеры привязывают именованные секреты и egress endpoints к sandbox. Это не compute backend (Docker, Podman).

Store один раз

Секреты читаются из env текущего процесса, не из sticky export и не из значений в argv.

GITHUB_TOKEN=… cautem provider create --name gh --type github --credential GITHUB_TOKEN
CURSOR_API_KEY=… cautem provider create --name cursor --type cursor --credential CURSOR_API_KEY

# если ключи уже в env этого процесса:
# cautem provider create --name gh --type github --from-existing

cautem provider list
cautem provider get gh

list / get никогда не печатают значения. Ciphertext — в encrypted store gateway (secrets.enc.json).

Attach на create

cautem sandbox create \
  --name demo \
  --upload "$PWD" \
  --policy /path/to/policy.yaml \
  --provider gh \
  --provider cursor \
  --memory 2g

Composition подмешивает endpoints, binaries и credential_keys профиля в effective policy. В guest — placeholders вида cautem:resolve:env:GITHUB_TOKEN. Proxy делает rewrite на egress.

Поведение профилей

--type Типичные ключи Guest
github GITHUB_TOKEN / GH_TOKEN Placeholder + rewrite
cursor CURSOR_API_KEY (опц.) Без ключа (inject_env: false) → agent login
nvidia NVIDIA_API_KEY Placeholder
claude-code ANTHROPIC_API_KEY Placeholder
cautem provider profile list
cautem provider profile show github

Ротация

GITHUB_TOKEN=ghp_new… cautem provider refresh gh
# или: GITHUB_TOKEN=… cautem provider update gh --from-existing

Не делайте

cautem sandbox create … --env GITHUB_TOKEN=ghp_…     # сырой секрет в guest
cautem sandbox create … --env CURSOR_API_KEY=cautem:resolve:…  # ломает Cursor Agent

KEK

Элемент Деталь
Env CAUTEM_SECRETS_KEK (passphrase, base64 или hex ≥16 байт)
File fallback secrets.kek в data dir gateway (mode 0600)
Doctor Предупреждает, если KEK не закреплён в env

Закрепите KEK для compose и долгоживущих gateway, иначе recreate может осиротить ciphertext.