Skip to content

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”
Terminal window
./scripts/secrets-add.sh NOME_DO_SEGREDO "valor-do-segredo"

Para invalidar sessões antigas ou em caso de auditoria de segurança:

Terminal window
./scripts/rotate-jwt-secret.sh

Garante que nenhum segredo novo foi adicionado ao código sem estar documentado:

Terminal window
./scripts/check-secrets-doc.sh