# Database Configuration # Main database URL for Prisma DATABASE_URL="postgresql://username:password@localhost:5432/janua_db?schema=public" # Multi-tenancy Database URLs (for fully-isolated tenants) # These would be dynamically configured per tenant TENANT_DB_HOST="localhost" TENANT_DB_PORT="5432" TENANT_DB_USER="janua_app" TENANT_DB_PASSWORD="secure_password" # Connection Pool Settings DATABASE_MAX_CONNECTIONS=100 DATABASE_POOL_TIMEOUT=30000 # Encryption Keys # Base64 encoded encryption key for sensitive data ENCRYPTION_KEY="your-base64-encoded-32-byte-key" # Session Security # Secret for device fingerprinting FINGERPRINT_SECRET="your-secure-fingerprint-secret" # JWT Configuration JWT_SECRET="your-jwt-secret-key" JWT_EXPIRES_IN="1h" JWT_REFRESH_EXPIRES_IN="7d" # Redis Configuration (for caching and sessions) REDIS_URL="redis://localhost:6379" REDIS_PASSWORD="" REDIS_DB=0 # Payment Provider Configuration # Stripe STRIPE_SECRET_KEY="sk_test_..." STRIPE_PUBLISHABLE_KEY="pk_test_..." STRIPE_WEBHOOK_SECRET="whsec_..." # Conekta (Mexico) CONEKTA_PRIVATE_KEY="key_..." CONEKTA_PUBLIC_KEY="key_..." CONEKTA_WEBHOOK_SECRET="..." # Fungies.io (Global MoR) FUNGIES_API_KEY="..." FUNGIES_MERCHANT_ID="..." FUNGIES_WEBHOOK_SECRET="..." # Email Configuration SMTP_HOST="smtp.example.com" SMTP_PORT=587 SMTP_USER="your-smtp-user" SMTP_PASSWORD="your-smtp-password" SMTP_FROM="noreply@yourapp.com" # SMS Configuration SMS_PROVIDER="twilio" # or "messagebird" TWILIO_ACCOUNT_SID="..." TWILIO_AUTH_TOKEN="..." TWILIO_PHONE_NUMBER="..." # Storage Configuration # Cloudflare R2 for file storage and audit archival CLOUDFLARE_ACCOUNT_ID="..." CLOUDFLARE_R2_ACCESS_KEY="..." CLOUDFLARE_R2_SECRET_KEY="..." CLOUDFLARE_R2_BUCKET="janua-storage" R2_AUDIT_BUCKET="janua-audit-archive" # Application Configuration APP_NAME="Janua" APP_URL="https://yourapp.com" APP_ENV="development" # development, staging, production # Security Configuration BCRYPT_ROUNDS=12 SESSION_SECRET="your-session-secret" CSRF_SECRET="your-csrf-secret" # Rate Limiting RATE_LIMIT_WINDOW_MS=900000 # 15 minutes RATE_LIMIT_MAX_REQUESTS=100 # Audit Configuration AUDIT_RETENTION_DAYS=2555 # 7 years for SOX compliance AUDIT_ARCHIVE_ENABLED=true AUDIT_BATCH_SIZE=1000 AUDIT_BATCH_INTERVAL_MS=5000 # Monitoring & Observability # Application Performance Monitoring APM_SERVICE_NAME="janua-api" APM_SERVER_URL="http://localhost:8200" # Logging LOG_LEVEL="info" # debug, info, warn, error LOG_FORMAT="json" # json, text # Feature Flags FEATURE_MULTI_TENANCY=true FEATURE_WEBAUTHN=true FEATURE_MFA=true FEATURE_AUDIT_LOGGING=true FEATURE_BILLING=true FEATURE_TEAMS=true # Compliance Settings COMPLIANCE_MODE="standard" # standard, sox, gdpr, hipaa GDPR_ENABLED=true SOX_COMPLIANCE=true # Development/Testing # Set to true to enable development features DEV_MODE=false TEST_DATABASE_URL="postgresql://username:password@localhost:5432/janua_test_db" # API Configuration API_VERSION="v1" API_PREFIX="/api" API_RATE_LIMIT=1000 API_TIMEOUT=30000 # Webhook Configuration WEBHOOK_TIMEOUT=10000 WEBHOOK_MAX_RETRIES=3 WEBHOOK_RETRY_DELAY=1000 # Cache Configuration CACHE_TTL=3600 # 1 hour CACHE_MAX_SIZE=1000 # Performance Settings MAX_REQUEST_SIZE="10mb" MAX_FILE_SIZE="100mb" REQUEST_TIMEOUT=30000 # Tenant Defaults DEFAULT_TENANT_PLAN="free" DEFAULT_TENANT_LIMITS='{"users":5,"teams":1,"storage":1073741824,"api_calls":1000}' DEFAULT_TENANT_FEATURES='{"custom_domain":false,"sso":false,"advanced_security":false}'