> ## 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.

# Criando um segredo

> Naming, a janela de recuperação que um segredo carrega desde o nascimento, e o que a chamada create não leva.

<a id="creating-a-secret" />

## Criando um segredo

<Tabs>
  <Tab title="Console">
    Vá para **Secrets** e escolha **Create Secret**. Em **Secret details**, dê um **Name** e uma **Description** opcional, cole o primeiro **Value** e deixe **Encryption key** em **Platform-managed key
    (default)**, a menos que você queira uma de suas próprias chaves.

    O console recebe o valor como texto e base64-codifica-o para você; sobre a API você o codifica você mesmo.
  </Tab>

  <Tab title="API">
    ```bash theme={null}
    POST https://secrets.sa-saopaulo-1.basaltic.sh/v1/secrets
    {
      "name": "prod/api/stripe-key",
      "value": "c3VwZXItc2VjcmV0LXZhbHVl",
      "description": "Stripe live secret key for the payments service"
    }
    ```
  </Tab>

  <Tab title="CLI">
    ```bash theme={null}
    basaltic secrets create \
      --name prod/api/stripe-key \
      --value c3VwZXItc2VjcmV0LXZhbHVl \
      --description "Stripe live secret key for the payments service"
    ```
  </Tab>

  <Tab title="Go">
    ```go theme={null}
    cfg, err := basaltic.NewConfig(ctx,
        basaltic.WithClientCredentials(os.Getenv("BASALTIC_ACCESS_KEY_ID"), os.Getenv("BASALTIC_SECRET_ACCESS_KEY")),
        basaltic.WithRegion("sa-saopaulo-1"),
    )
    if err != nil {
        log.Fatal(err)
    }

    sec, err := secrets.New(cfg).CreateSecret(ctx, &secrets.CreateSecretRequest{
        Name:        "prod/api/stripe-key",
        Value:       []byte("super-secret-value"),
        Description: basaltic.String("Stripe live secret key for the payments service"),
    })
    ```

    `Value` é bytes brutos — o SDK base64-codifica-o, então não o codifique você mesmo.
  </Tab>
</Tabs>

Um segredo é criado **com** seu primeiro valor — não existe tal coisa como um segredo vazio. A resposta é `201` e o segredo está na versão 1.

<ResponseField name="value" type="base64, 1 byte – 64 KiB">
  Os valores são codificados em base64, de modo que cargas binárias arbitrárias sobrevivem ao JSON intactas. Qualquer coisa maior que 64 KiB pertence a um [bucket](/pt/storage), com o segredo guardando a referência e as credenciais para buscá-lo — não embalado em linha.
</ResponseField>

<ResponseField name="name" type="unique per account">
  Correspondências `^[a-zA-Z0-9][a-zA-Z0-9._/-]{0,255}$`. Slashes são permitidas, e é por isso que `prod/api/stripe-key` funciona — e porque o CRN é construído a partir do nome, uma convenção de caminho se torna diretamente passível de política: `crn:secrets:sa-saopaulo-1:my-account:secret/prod/*`.
</ResponseField>


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