runner secrets reset-bundle
Reconstrói o bundle criptografado .runner/secrets.enc a partir dos arquivos
plaintext locais .env e .secrets. Substitui o bundle local e o remoto
(no repo dist), a menos que --no-push seja usado. Disponível desde v2.30.3.
Use quando: o plaintext local está correto, mas o bundle remoto foi
criptografado com uma ckey diferente da registrada neste servidor — erro
Decryption failed: aead::Error em runner cleanup-bundle ou
secrets show. Ver guia →
../../recuperar/bundle-decrypt-fail.md.
Sintaxe
runner secrets reset-bundle [OPTIONS] <APP>Flags
| Flag | Default | Descrição |
|---|---|---|
--dry-run |
— | Simula sem gravar nem fazer push |
--no-push |
— | Re-encripta localmente, mas não commita/pusha para o repo |
--yes |
— | Skipa a confirmação interativa (obrigatório em cron/non-TTY) |
-o, --output <FORMAT> |
human |
Formato de saída: human, json, yaml |
--json |
— | Atalho para --output json |
--insecure |
— | Bypassa guards de segurança (gera banner e audit log) |
-h, --help |
— | Exibe ajuda |
Exemplo
$ runner secrets reset-bundle meu-app
SAFETY: This operation discards the remote bundle.
Local .env has 3 keys, .secrets has 5 keys.
Proceed? [y/N]: y
Re-encrypting from local plaintext ...
.runner/secrets.enc → written (8 keys, AES-256-GCM)
pull/.runner/secrets.enc → written
Pushing to dist branch ...
Committed: abc1234 "runner: reset secrets bundle [meu-app]"
Pushed: origin/dist
Done.Inspecionar sem gravar:
$ runner secrets reset-bundle meu-app --dry-run
[dry-run] Would re-encrypt 8 keys from local plaintext.
[dry-run] Would push to origin/dist.
No files modified.Rebuild local sem push (para inspeção antes de publicar):
$ runner secrets reset-bundle meu-app --no-push --yes
Re-encrypting from local plaintext ...
.runner/secrets.enc → written (8 keys, AES-256-GCM)
pull/.runner/secrets.enc → written
Push skipped (--no-push). Run `runner secrets push meu-app` when ready.O que o comando faz
- Lê
/data/apps/<app>/.enve.secrets(plaintext neste host) - Criptografa com a ckey atual registrada para o servidor
- Substitui
.runner/secrets.enclocal epull/.runner/secrets.enc - Commita e faz push para o branch dist (a menos que
--no-push)
Aviso de segurança
Este comando descarta o bundle remoto existente. Chaves que existiam apenas no bundle remoto (não no plaintext local) são perdidas. Antes de rodar, verifique o que está localmente:
runner secrets show meu-appSe o plaintext local estiver incompleto, preencha as chaves faltantes com
runner secrets set antes de executar reset-bundle.
Cenário típico: app migrada entre servidores
# Sintoma: runner secrets show falha com "Decryption failed"
# Causa: app foi originalmente registrada em outro servidor com ckey diferente
# 1. Confirmar que o plaintext local está completo
runner secrets show meu-app --insecure # lê direto do .env/.secrets, não do bundle
# 2. Completar chaves faltantes se necessário
runner secrets set meu-app CHAVE_FALTANTE "valor"
# 3. Rebuild do bundle com a ckey atual
runner secrets reset-bundle meu-appErros comuns
no_plaintext—.enve.secretsestão vazios ou ausentes; userunner secrets pullse o bundle de outro servidor for acessível, ou recrie manualmente comrunner secrets set.no_ckey— app registrada sem ckey; re-registre comrunner add --ckey "...".push_failed— token sem permissão de push no repo dist; use--no-pushe depoisrunner secrets pushcom token correto.
Veja também
- `runner secrets pull` — popula plaintext a partir do bundle
- `runner secrets show` — inspeciona conteúdo atual
- `runner ckeys copy` — unifica ckeys em multi-service antes de reset-bundle
- Bundle decrypt fail