# Ambientes e origens

URL: /administrar/ambientes

Cadastre os ambientes de um projeto e os endereços que cada um aceita.

**Quem faz:** administrador ou Mantenedor.

Um ambiente é uma instância do projeto, como `develop`, `qa`, `staging` ou `production`. Cada um tem uma ou mais **origens**: os endereços onde a aplicação roda. As origens servem a três coisas:

- a extensão descobre o projeto e o ambiente da aba pelo endereço;
- o widget só aceita logins vindos das origens cadastradas;
- o Mira usa as origens para liberar o acesso da aplicação à API.

## Cadastrar um ambiente [#cadastrar-um-ambiente]

<Steps>
<Step>

### Abrir Ambientes [#abrir-ambientes]

Abra o projeto e entre em **Configurações → Ambientes**.

</Step>
<Step>

### Criar o ambiente [#criar-o-ambiente]

Clique em **Novo ambiente**, dê um nome como `staging` e liste as **Origens**, uma por linha.

<Figure src="/images/integrate-environment-form.png" alt="Formulário de novo ambiente com o campo Origens preenchido" caption="Uma origem por linha." />

</Step>
<Step>

### Salvar [#salvar]

Salve. Repita para cada ambiente.

</Step>
</Steps>

**Editar** e **Remover** ficam no menu de ações da linha. Remover pede confirmação.

## Formato das origens [#formato-das-origens]

| Origem | Casa com |
| --- | --- |
| `https://app.staging.empresa.com` | Só esse endereço |
| `https://*.qa.empresa.com` | Qualquer subdomínio de `qa.empresa.com`, mas não o domínio puro |
| `http://localhost:5173` | A aplicação local, na porta 5173 |
| `http://localhost:*` | Qualquer porta de `localhost` |

A origem tem protocolo, host e porta opcional. Caminhos, parâmetros de URL e credenciais não fazem parte dela. O `*` só vale no início do host, e `:*` só em `localhost`, `127.0.0.1` e `[::1]`.

Quando mais de um padrão casa com o mesmo endereço, o mais específico vence: um host exato antes de um com `*`, e uma porta exata antes de `:*`.

<Callout type="tip">
Uma URL que não casa com nenhuma origem obriga o QA a escolher o projeto manualmente na extensão. Cadastre todos os endereços onde a aplicação é testada.
</Callout>

## Erros por ambiente [#erros-por-ambiente]

Em **Configurações do projeto → Erros**, escolha o ambiente no seletor do topo para ver o nível de dados e as chaves de ingestão dele. Veja [Chaves e tokens](/administrar/chaves) e [Níveis de dados](/erros/niveis-de-dados).

<Figure src="/images/integrate-errors-panel.png" alt="Seção Erros de um ambiente com nível de dados e chaves de ingestão" caption="A seção Erros mostra o ambiente escolhido no seletor." />

Para conectar o widget e a captura de erros no código da aplicação, siga [Integrar uma app](/desenvolvedores/integrar).

## Próximos passos [#próximos-passos]

- [Chaves e tokens](/administrar/chaves)
- [Integrar uma app](/desenvolvedores/integrar)
