> ## Documentation Index
> Fetch the complete documentation index at: https://docs.basaltic.sh/llms.txt
> Use this file to discover all available pages before exploring further.

# Apagar e restaurar

> A janela de recuperação, o que um segredo excluído ainda responde e o que a restauração dá de volta.

<a id="deleting-and-restoring" />

## Apagar e restaurar

Excluir um segredo não remove nada imediatamente. Ele move o segredo para uma **janela de recuperação** e retorna `deleted_at` e `scheduled_purge_at`. Uma vez que `scheduled_purge_at` passa, o segredo e todas as versões são removidas para sempre.

<Tabs>
  <Tab title="Console">
    Abra o segredo de **Secrets** e use **Delete secret**, na **Danger
    zone** na aba **Settings**. A caixa de diálogo leva uma **Recovery window
    (days)** e não confirmará até que você digite o nome do segredo de volta.
  </Tab>

  <Tab title="API">
    ```bash theme={null}
    DELETE /v1/secrets/{secret_id}
    { "recovery_window_days": 14 }
    ```
  </Tab>

  <Tab title="CLI">
    ```bash theme={null}
    basaltic secrets delete <secret-id> --recovery-window-days 14
    ```
  </Tab>

  <Tab title="Go">
    ```go theme={null}
    sec, err := secrets.New(cfg).DeleteSecret(ctx, secretID, &secrets.DeleteSecretRequest{
        RecoveryWindowDays: basaltic.Int(14),
    })
    ```

    `sec.ScheduledPurgeAt` é o prazo para restaurar.
  </Tab>
</Tabs>

<ResponseField name="recovery_window_days" type="integer, 1–30, default 7">
  1 a 30 dias, padrão 7. Defina-o na criação para dar a um segredo seu próprio padrão, ou passe-o na chamada de exclusão para substituí-lo para essa exclusão.
</ResponseField>

<ResponseField name="deleted_at" type="timestamp">
  Quando a exclusão foi solicitada. Ausente enquanto o segredo estiver ativo.
</ResponseField>

<ResponseField name="scheduled_purge_at" type="timestamp">
  Quando o segredo se torna elegível para destruição permanente.
</ResponseField>

Os segredos permitem um mínimo de 1 dia porque a exclusão afeta esse segredo. O KMS mantém o mínimo de 7 dias porque a exclusão de uma chave torna ilegível cada texto cifrado e chave de dados encapsulados protegidos por ela.

Enquanto um segredo se senta na janela:

* `GET /v1/secrets/{id}` ainda o descreve, então você pode ver a data de purga.
* Leitura ou gravação do valor é recusada com `409 SECRET_DELETED`.
* A atualização de metadados é recusada da mesma forma.
* Ele está oculto de `GET /v1/secrets` a menos que você passe `include_deleted=true`.

A restauração cancela a limpeza e coloca o segredo de volta. Restaurar um que nunca foi excluído é uma operação inofensiva. Ao contrário do cancelamento da exclusão do KMS, a restauração de um segredo o retorna diretamente ao serviço; nenhuma ação de ativação separada é necessária.

<Tabs>
  <Tab title="Console">
    Um segredo na janela mostra **Restore** em seu cabeçalho, no lugar de **Put
    New Value**.
  </Tab>

  <Tab title="API">
    ```bash theme={null}
    POST /v1/secrets/{secret_id}/restore
    ```
  </Tab>

  <Tab title="CLI">
    ```bash theme={null}
    basaltic secrets restore <secret-id>
    ```
  </Tab>

  <Tab title="Go">
    ```go theme={null}
    sec, err := secrets.New(cfg).RestoreSecret(ctx, secretID)
    ```
  </Tab>
</Tabs>

<Warning>
  Repetir o delete **não estende a janela**. Um segundo `DELETE` durante a janela mantém o `scheduled_purge_at` original em vez de empurrá-lo para fora, então um loop de re-tentativa ou uma re-execução de um script de desmontagem não pode silenciosamente manter um segredo vivo para sempre. Se precisar de mais tempo, restaure o segredo e exclua-o novamente com um `recovery_window_days` mais longo.
</Warning>

<Note>
  A exclusão libera a cota do segredo imediatamente, para que você possa criar uma substituição sem esperar por uma janela. Restaurar tem que pegar essa cota de volta, o que significa que uma restauração pode falhar com `403 QUOTA_EXCEEDED` se sua conta tiver preenchido o slot. Livre um antes de restaurar.
</Note>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.