Files
adaptador-planilhas/.env.staging.example
Ferraz Fagundes a4f0a2f649
ci / lint, typecheck, testes e build (push) Canceled after 0s
ci / Postgres e Redis reais (push) Canceled after 0s
ci / imagem Docker Linux (push) Canceled after 0s
fix(db): implementa identidade persistente segura para homologacao
2026-10-19 23:39:05 -03:00

103 lines
4.9 KiB
Bash

# Homologação — hml-ada.elopro.app
# Copie para .env.staging no servidor e preencha. NÃO versione .env.staging.
# Confira com: npm run verify:config
# --- Ambiente lógico -------------------------------------------------------
# development | staging | production. Em homologação é sempre staging, mesmo
# com NODE_ENV=production (o build é o otimizado).
ADAPTER_ENV=staging
# Prefixo das chaves externas. Separa este aplicativo dos demais do ecossistema
# no Redis compartilhado e separa homologação de produção.
ADAPTER_NAMESPACE=adaptador-planilhas
# --- Identidade (Supabase Auth do projeto de HOMOLOGAÇÃO) ------------------
# Projeto Supabase próprio de homologação. Nunca o projeto de produção:
# credencial administrativa não é compartilhada entre aplicações nem ambientes.
NEXT_PUBLIC_SUPABASE_URL=
NEXT_PUBLIC_SUPABASE_ANON_KEY=
# Somente servidor. Nunca prefixar com NEXT_PUBLIC_.
SUPABASE_SERVICE_ROLE_KEY=
# Bucket PRIVADO e exclusivo deste aplicativo neste ambiente.
# Confira com: npm run check:bucket
SUPABASE_STORAGE_BUCKET=adaptador-planilhas-hml
# Login próprio de homologação com Supabase Auth real (com senha, emitida e
# validada pelo Supabase). O dev auth sem senha NÃO funciona aqui.
# As contas são criadas pela operação no painel do Supabase de homologação.
ADAPTER_STAGING_AUTH=1
# Alternativa a ADAPTER_STAGING_AUTH: encaminhar ao SSO do Elo Pro quando existir.
ELO_PRO_LOGIN_URL=
ELO_PRO_APP_URL=https://hml-ada.elopro.app
AUTH_ALLOWED_RETURN_HOSTS=hml-ada.elopro.app
# --- Banco ----------------------------------------------------------------
# Três credenciais. Nenhuma é a do Supabase self-hosted.
# Web: papel adaptador_web, sem SUPERUSER e sem BYPASSRLS.
# sslmode=verify-full é obrigatório. Não use require, prefer ou disable.
DATABASE_URL=
# Worker: papel adaptador_worker. Não reutilize a URL da web nem a administrativa.
ADAPTER_WORKER_DATABASE_URL=
# Migrations, seed:staging e flag. Papel postgres deste projeto, só na execução aprovada.
ADAPTER_MIGRATION_DATABASE_URL=
# Reference ID do Dashboard: 20 letras ou dígitos minúsculos. Sozinho não autoriza migration.
ADAPTER_DB_PROJECT_REF=
# Gravação explícita de adaptador_guard. Vazio por omissão. O valor 1 só no comando identity:init.
# migrate, migrate:check, seed e deploy não criam essa tabela.
ADAPTER_INIT_PROJECT_IDENTITY=
# Host do Session Pooler copiado do Dashboard. O índice aws-N não se deduz da região.
# O Dashboard deste projeto mostra host iniciado por aws-1-us-west-2.pooler.supabase.com.
# Só é aceito aws-<digitos>-us-west-2.pooler.supabase.com.
ADAPTER_DB_POOLER_HOST=
# Teto do pool por processo. Vazio usa 2 na web, 2 no worker e 1 na migration. Máximo 4.
ADAPTER_DB_POOL_MAX=
# Decisão explícita e obrigatória:
# 1 = criar o shim local de identidade (profiles, workspaces, workspace_members)
# 0 = o schema do Elo Pro já existe nesse banco; não recriar
# Rode `npm run migrate:check` antes de decidir.
ADAPTER_APPLY_IDENTITY_SHIM=1
# --- Redis (contêiner isolado deste aplicativo) ---------------------------
# Porta publicada só em 127.0.0.1 pelo docker-compose.staging.yml.
ADAPTER_REDIS_PASSWORD=
ADAPTER_REDIS_PORT=56380
REDIS_URL=redis://:SENHA_DO_REDIS@redis:6379
# --- Processamento --------------------------------------------------------
# worker é obrigatório fora de development. inline é recusado no start.
ADAPTER_JOB_MODE=worker
# Vida dos arquivos temporários, em segundos (1 a 604800). Obrigatório.
SPREADSHEET_TEMP_TTL_SECONDS=86400
# Teto de um processamento, em milissegundos. Ausente usa 120000.
SPREADSHEET_JOB_TIMEOUT_MS=120000
ADAPTER_WORKER_TICK_MS=2000
ADAPTER_WORKER_BATCH=20
# Carência do desligamento gracioso: espera o tick corrente liberar o lock.
# Precisa ser MENOR que o stop_grace_period do compose (30s).
ADAPTER_WORKER_GRACE_MS=20000
# Heartbeat lido pelo healthcheck do contêiner do worker.
ADAPTER_WORKER_HEARTBEAT=/tmp/adaptador-worker-heartbeat
# --- Observabilidade ------------------------------------------------------
# Projeto Sentry separado ou ambiente separado no mesmo projeto.
SENTRY_DSN=
NEXT_PUBLIC_SENTRY_DSN=
SENTRY_ENVIRONMENT=staging
# Preenchido pelo pipeline com o SHA do commit.
SENTRY_RELEASE=
# --- Imagem e portas do compose -------------------------------------------
ADAPTER_IMAGE=ghcr.io/elopro/adaptador-planilhas:staging
ADAPTER_WEB_PORT=3110
# --- Smoke (fase 2, opcional; nunca comitar valores) ----------------------
# Conta de teste criada no painel do Supabase de HOMOLOGAÇÃO. Sem estas duas,
# a fase autenticada do smoke é reportada como PENDENTE, nunca aprovada.
ADAPTER_SMOKE_URL=https://hml-ada.elopro.app
ADAPTER_SMOKE_EMAIL=
ADAPTER_SMOKE_PASSWORD=
ADAPTER_SMOKE_WORKSPACE=
# --- Nunca definir em homologação -----------------------------------------
# ADAPTER_DEV_AUTH: o start é recusado com valor 1 fora de development.
# ADAPTER_DEV_AUTH_SECRET: não é usado fora de development.