Configuração¶
Esta página lista nomes e responsabilidades, nunca valores secretos.
App principal¶
O app lê .env.dev/.env.prod através de flutter_dotenv. As chaves utilizadas pelo bootstrap incluem:
| Variável | Uso |
|---|---|
USE_FIREBASE_EMULATOR |
Habilita emuladores somente em debug. |
AUTH_EMULATOR_HOST / AUTH_EMULATOR_PORT |
Firebase Auth local. |
FIRESTORE_EMULATOR_HOST / FIRESTORE_EMULATOR_PORT |
Firestore local. |
FUNCTIONS_EMULATOR_HOST / FUNCTIONS_EMULATOR_PORT |
Cloud Functions local. |
STORAGE_EMULATOR_HOST / STORAGE_EMULATOR_PORT |
Firebase Storage local. |
O flavor também pode ser fornecido por --dart-define=FLAVOR=dev|prod. No Android, NativeBuildInfo fornece um segundo sinal para resolver o flavor quando o define não está presente.
App Check¶
No app principal:
- desenvolvimento/non-release usa providers de debug;
- produção release usa Play Integrity no Android e App Attest no ecossistema Apple;
- o bootstrap tenta obter um token com timeout curto antes de iniciar a UI.
No Super Admin Web e no Waiter Web, a produção usa reCAPTCHA Enterprise. RECAPTCHA_SITE_KEY pode ser fornecida por --dart-define.
Secrets do backend¶
functions/src/stripe_billing.js declara os secrets abaixo com defineSecret:
STRIPE_SECRET_KEY
STRIPE_WEBHOOK_SECRET
STRIPE_PRICE_PREMIUM_MONTHLY
STRIPE_PRICE_PREMIUM_LAUNCH_MONTHLY
STRIPE_SUCCESS_URL
STRIPE_CANCEL_URL
STRIPE_PORTAL_RETURN_URL
Em ambiente local, o Firebase Emulator pode carregar secrets de um arquivo local não versionado. Em produção, use o mecanismo de secrets do Firebase/Google Cloud. Nunca mova os valores para Dart, Markdown, Remote Config ou Firestore legível pelo cliente.
Projeto e região Firebase¶
- projeto padrão em
.firebaserc:aivaleu; - Firestore:
southamerica-east1; - callables e triggers principais:
southamerica-east1; - hosting target do painel:
super-admin.
Configuração de schedulers¶
O backend lê settings/schedulers. O documento é operacional e só pode ser lido/escrito por Super Admin segundo as Firestore Rules.
Intervalos aceitos: 1, 5, 10, 60 e 720 minutos. Defaults atuais:
| Job | Intervalo lógico |
|---|---|
campaignAutoTransitions |
5 min |
closeExpiredCampaigns |
10 min |
expireCoupons |
30 min |
Os jobs podem ser deployados em frequência maior; scheduler_runner.js decide se a lógica deve realmente executar.