# Database DATABASE_URL=postgresql://user:password@localhost:5432/database # System Administration # Comma-separated list of user IDs that have system administrator privileges # These users can perform system-level operations across all workspaces # Note: Workspace ownership does NOT grant system admin access # SYSTEM_ADMIN_IDS=uuid1,uuid2,uuid3 # Federation Instance Identity # Display name for this Mosaic instance INSTANCE_NAME=Mosaic Instance # Publicly accessible URL for federation (must be valid HTTP/HTTPS URL) INSTANCE_URL=http://localhost:3000 # Encryption (AES-256-GCM for sensitive data at rest) # CRITICAL: Generate a secure random key for production! # Generate with: node -e "console.log(require('crypto').randomBytes(32).toString('hex'))" ENCRYPTION_KEY=0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef # CSRF Protection (Required in production) # Secret key for HMAC binding CSRF tokens to user sessions # Generate with: node -e "console.log(require('crypto').randomBytes(32).toString('hex'))" # In development, a random key is generated if not set CSRF_SECRET=fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210 # OpenTelemetry Configuration # Enable/disable OpenTelemetry tracing (default: true) OTEL_ENABLED=true # Service name for telemetry (default: mosaic-api) OTEL_SERVICE_NAME=mosaic-api # OTLP exporter endpoint (default: http://localhost:4318/v1/traces) OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4318/v1/traces # Alternative: Jaeger endpoint (legacy) # OTEL_EXPORTER_JAEGER_ENDPOINT=http://localhost:4318/v1/traces # Deployment environment (default: development, or uses NODE_ENV) # OTEL_DEPLOYMENT_ENVIRONMENT=production # Trace sampling ratio: 0.0 (none) to 1.0 (all) - default: 1.0 # Use lower values in high-traffic production environments # OTEL_TRACES_SAMPLER_ARG=1.0