petid-wikimemoria rápida, no arquitectura

Env variables

Todas las variables por proyecto, tal como están declaradas hoy en su schema/config real (env.config.ts + .env.example para petid-api, losenvironment*.ts compilados para los Angular, eas.json/.env.example para petid-client, wrangler.jsonc para petid-landing). Secret = credencial o clave, nunca en un repo público. Var = config sin valor sensible. La columna Bytes solo aplica a los secrets que se generan como clave aleatoria — el número que va literal en el comando (openssl rand -base64 N) — el resto de secrets (connection strings, API keys compartidas con otro servicio) no tiene un tamaño fijo que generar acá.

petid-api

Único proyecto con env vars reales en runtime — el resto son config de build.

NombreTipoBytes
NODE_ENVVar
PORTVar
LOG_LEVELVar
DATABASE_URLSecret
REDIS_URLSecret
CORS_ORIGINSVar
THROTTLE_TTLVar
THROTTLE_LIMITVar
AUTH_THROTTLE_LIMITVar
JWT_ACCESS_SECRETSecret48
JWT_REFRESH_SECRETSecret48
JWT_RESET_SECRETSecret48
JWT_VERIFY_SECRETSecret48
JWT_MFA_SECRETSecret48
JWT_ACCESS_TTLVar
JWT_REFRESH_TTLVar
TWO_FACTOR_ENC_KEYSecret32
TWO_FACTOR_ISSUERVar
ENABLE_CRONVar
EMAIL_DRIVERVar
STAFF_WEB_URLVar
OWNER_WEB_URLVar
NOTIFICATIONS_BASE_URLVar
NOTIFICATIONS_API_KEYSecret
NOTIFICATIONS_TENANT_IDVar
NOTIFICATIONS_TIMEOUT_MSVar
FCM_CLEANER_WEBHOOK_SECRETSecret

DATABASE_URL/REDIS_URL van como secret por llevar credenciales embebidas en la connection string, no porque el schema las trate distinto de una var normal. NOTIFICATIONS_API_KEY/FCM_CLEANER_WEBHOOK_SECRET son secrets compartidos con notification-api/worker — deben coincidir EXACTO ahí, sin un comando de generación fijo documentado (ver Despliegue).

petid-admin

Sin .envapiUrl se compila dentro del bundle vía environment.ts/environment.dev.ts, no se lee en runtime.

NombreTipoBytes
apiUrlVar

petid-crm

Mismo mecanismo que petid-admin — compilado, no runtime.

NombreTipoBytes
apiUrlVar
apiVersionVar
tokenKeyVar
landingUrlVar

petid-client

EXPO_PUBLIC_* — el prefijo PUBLIC es literal: Expo las incrusta en el bundle final, nunca son secretas aunque vivan en un .env. Definidas por build profile en eas.json (development/preview/production), no en un .envreal de producción.

NombreTipoBytes
EXPO_PUBLIC_API_URLVar
EXPO_PUBLIC_LANDING_URLVar

petid-landing

Igual que EXPO_PUBLIC — el prefijo PUBLIC_ hace que Astro la exponga al código cliente. En producción se define en wrangler.jsonc (vars), no en un .env desplegado.

NombreTipoBytes
PUBLIC_API_URLVar