Gestão de Segredos & Variáveis de Ambiente
Gestão de Segredos & Variáveis de Ambiente
Section titled “Gestão de Segredos & Variáveis de Ambiente”A segurança das credenciais e segredos no Prime Crown segue o modelo de segredos do Cloudflare Workers/Pages, combinando utilitários automatizados via terminal com criptografia em repouso.
🔐 1. Mapeamento de Segredos e Variáveis
Section titled “🔐 1. Mapeamento de Segredos e Variáveis”| Variável / Segredo | Onde é Utilizado | Sensibilidade | Descrição |
|---|---|---|---|
JWT_SECRET |
Backend (functions/api/auth/*) |
🔴 Crítico | Chave secreta de assinatura e validação dos tokens de sessão JWT. |
GEMINI_API_KEY |
Backend (functions/api/ai.ts) |
🟡 Alta | Chave de acesso à API do Google Gemini 2.0 Flash. |
RESEND_API_KEY |
Backend (functions/api/auth/*) |
🟡 Alta | Chave para envio de e-mails transacionais (Boas-vindas, Reset de Senha). |
GOOGLE_CLIENT_ID |
Wrangler / Frontend | 🟢 Pública | ID do cliente do Google OAuth2. |
EVOLUTION_API_KEY |
Backend (functions/api/whatsapp/*) |
🔴 Crítico | Token de autenticação na instância da Evolution API (WhatsApp). |
META_WABA_TOKEN |
Backend (functions/api/whatsapp/*) |
🔴 Crítico | Token do System User para mensagens e gestão da Meta WhatsApp Cloud API. |
VAPID_PRIVATE_KEY |
Backend (functions/api/messages/*) |
🔴 Crítico | Chave privada VAPID para disparo de Web Push no navegador/PWA. |
FIREBASE_SERVICE_ACCOUNT_JSON |
Backend (envio FCM) | 🔴 Crítico | JSON da conta de serviço Firebase; manter no Bitwarden/Cloudflare, nunca no repositório. |
APPLE_TEAM_ID |
Backend (AASA/APNs) | 🟡 Configuração | Team ID Apple usado na associação de domínio e autenticação APNs. |
APPLE_CLIENT_ID |
Backend (Sign in with Apple) | 🟡 Configuração | Audience aceita no ID token; no app nativo use uk.co.primecrowncleaning.app. |
APPLE_SIGN_IN_KEY_ID |
Backend (Sign in with Apple) | 🔴 Crítico | ID da chave usada para assinar o client secret da troca/revogação de tokens. |
APPLE_SIGN_IN_PRIVATE_KEY |
Backend (Sign in with Apple) | 🔴 Crítico | Conteúdo da chave .p8 habilitada para Sign in with Apple. |
APPLE_TOKEN_ENCRYPTION_KEY |
Backend (Sign in with Apple) | 🔴 Crítico | Chave dedicada para cifrar refresh tokens Apple em D1; não reutilizar nem rotacionar sem recifrar. |
APNS_KEY_ID |
Backend (envio APNs) | 🔴 Crítico | Identificador da chave Apple Push Notification service. |
APNS_PRIVATE_KEY |
Backend (envio APNs) | 🔴 Crítico | Conteúdo integral da chave .p8; manter no Bitwarden/Cloudflare. |
APNS_USE_SANDBOX |
Backend (envio APNs) | 🟡 Configuração | true somente no ambiente dedicado a builds development do Xcode; produção/TestFlight usam false. |
Para importar uma credencial JSON diretamente, sem copiá-la para o clipboard ou terminal, destranque o CLI e use ./scripts/secrets-add.sh FIREBASE_SERVICE_ACCOUNT_JSON --value-file /caminho/credencial.json. O utilitário compacta JSON válido e grava o valor no item prime-crown:FIREBASE_SERVICE_ACCOUNT_JSON; o arquivo de origem não é alterado.
🛠️ 2. Scripts Automáticos de Gestão de Segredos (/scripts/)
Section titled “🛠️ 2. Scripts Automáticos de Gestão de Segredos (/scripts/)”O repositório inclui utilitários em bash para sincronizar, adicionar e rotacionar segredos no Cloudflare sem expor credenciais em texto plano:
graph TD
Local[".dev.vars / Bitwarden"] -->|scripts/secrets-sync.sh| CF["Cloudflare Pages Secrets"]
Script1["scripts/rotate-jwt-secret.sh"] -->|Rotação Segura| CF
Script2["scripts/check-secrets-doc.sh"] -->|Auditoria| Audit["Verificação de Vazamentos"]
A. Adicionar um Novo Segredo ao Cloudflare
Section titled “A. Adicionar um Novo Segredo ao Cloudflare”./scripts/secrets-add.sh NOME_DO_SEGREDO "valor-do-segredo"B. Rotacionar a Chave JWT em Produção
Section titled “B. Rotacionar a Chave JWT em Produção”Para invalidar sessões antigas ou em caso de auditoria de segurança:
./scripts/rotate-jwt-secret.shC. Verificar Documentação de Segredos
Section titled “C. Verificar Documentação de Segredos”Garante que nenhum segredo novo foi adicionado ao código sem estar documentado:
./scripts/check-secrets-doc.sh