GUIAGuide

Gravar e restaurar segredos

Os verbos de escrita da CLI gravam em um projeto × ambiente com as mesmas garantias da interface web: toda gravação é uma nova versão, o merge nunca apaga chaves ausentes e reexecutar é um no-op seguro.

`secrets set` — uma chave

bash
$ movitera secrets set API_KEY=abc123 -p meu-app -e development
# ou sem o valor na linha de comando (prompt sem eco / stdin):
$ cat chave.pem | movitera secrets set TLS_KEY -p meu-app -e production --comment "cert 2026"

A resposta diz o que aconteceu: criada, atualizada ou "já tinha esse valor — nada gravado". Reenviar o mesmo valor e comentário é idempotente e não gera versão nova.

`secrets upload` — um .env inteiro

bash
$ movitera secrets upload .env -p meu-app -e development
# em CI, sem prompt:
$ movitera secrets upload .env -p meu-app -e development --yes
  • A CLI mostra a pré-visualização do servidor — contagens de novas, alteradas e iguais — e pede confirmação; fora de um terminal interativo, a confirmação é obrigatória via --yes.
  • Arquivos com mais de 1000 chaves são fatiados em lotes sequenciais automaticamente, e o resultado é impresso somado.
  • Merge sempre: chaves ausentes do arquivo nunca são apagadas — rodar de novo em CI é um no-op seguro.

`secrets history` e `secrets rollback`

bash
$ movitera secrets history DATABASE_URL -p meu-app -e production
$ movitera secrets rollback DATABASE_URL --version 4 -p meu-app -e production
  • O histórico lista as versões das mais novas para as mais antigas; use --limit N para ver mais.
  • O rollback acrescenta uma nova versão com o valor restaurado — nunca reescreve o passado.

Restaure a partir de um número listado

Os números de versão são crescentes por chave, mas não contíguos e não necessariamente começam em 1 — uma chave apagada e recriada continua a numeração de onde parou. Passe um número listado por secrets history, nunca um calculado.

Códigos de saída

CódigoSignificado
0Sucesso.
1Erro de uso ou falha local — inclui escrita recusada sem confirmação.
2Falha de API ou rede — a mensagem do servidor é repassada com dica por código de erro.
126 / 127run: comando não executável / não encontrado.

Use em CI com um token de deploy

  1. 1

    Gere um token com escopo no app web.

    Em Configurações do projeto → Token de deploy, gere um token preso ao projeto × ambiente — menor privilégio: para só ler, o escopo de leitura basta; escritas pedem o escopo de escrita.

  2. 2

    Guarde-o no secret store do CI como `MOVITERA_TOKEN`.

  3. 3

    No job, enderece por variáveis de ambiente e rode.

    text
    # .github/workflows/deploy.yml (trecho)
    env:
      MOVITERA_TOKEN: ${{ secrets.MOVITERA_TOKEN }}
      MOVITERA_PROJECT: meu-app
      MOVITERA_ENV: production
    steps:
      - run: movitera run -- ./deploy.sh
  • Um token com escopo funciona apenas nas rotas de projetos — as rotas legadas do Vault o recusam.
  • Vazou? O raio de dano é um ambiente, não o cofre.
  • As permissões do dono são reavaliadas a cada chamada — revogar o acesso do dono rebaixa o token na hora.
  • As leituras via token geram auditoria agrupada por hora, com contador — um loop quente não polui o histórico do time.

Próximo