# Segredos operacionais, carregamento e governança

## Segredos do aplicativo

### Portal + NVR central
- `APP_KEY`
- `CENTRAL_SHARED_SECRET`
- `NVR_SHARED_SECRET`
- `NVR_REMOTE_SIGNING_KEY`
- `AUTH_TECHNICAL_LOGIN_TOKEN`
- `OPS_ENDPOINTS_TOKEN`

### Gateway local
- `LOCAL_WEB_ADMIN_TOKEN`
- `LOCAL_WEB_MEDIA_SIGNING_KEY`
- credenciais criptografadas de câmeras
- token do gateway recebido na ativação

## Regras

- nenhum segredo deve ser hardcoded em unit files, supervisor conf ou scripts do bundle;
- o bundle consome segredos por `.env`/`EnvironmentFile`/secret manager;
- logs e mensagens de erro não devem ecoar segredos completos;
- chaves compartilhadas entre portal e `/platform` exigem rotação coordenada;
- allowlists de IP/Host pertencem à política operacional do ambiente, não ao usuário final.

## Responsabilidades

### Responsabilidade do aplicativo
- validar assinatura, expiração e escopo;
- falhar fechado quando segredo estiver ausente ou inválido;
- auditar consumo, rejeição e boundary de autenticação.

### Responsabilidade da infraestrutura
- gerar, armazenar, distribuir e revogar segredos;
- proteger `.env` e `EnvironmentFile`;
- configurar reverse proxy, firewall, VPN e ACLs.

## Ciclo sugerido de rotação

1. gerar segredo novo;
2. aplicar em staging;
3. validar portal → `/nvr/launch.php`;
4. validar `/metrics` e contingência técnica com novos tokens;
5. promover para produção;
6. invalidar segredo anterior.
