Back to all reviewers

Environment-based configuration management

PostHog/posthog
Based on 2 comments
TypeScript

Prefer environment variables over file mounting for configuration values, and avoid hardcoded environment-specific conditionals like `isCloud()`. Instead, rely purely on configuration environment variables that can be set differently across environments. When setting default configuration values, consider the constraints and limits of downstream systems to...

Configurations TypeScript

Reviewer Prompt

Prefer environment variables over file mounting for configuration values, and avoid hardcoded environment-specific conditionals like isCloud(). Instead, rely purely on configuration environment variables that can be set differently across environments. When setting default configuration values, consider the constraints and limits of downstream systems to prevent runtime failures.

For example, instead of:

sslOptions: isCloud()
    ? {
          ca: fs.readFileSync(join(__dirname, '../cassandra/ca.crt')),
      }
    : undefined

Use environment variables:

sslOptions: process.env.CASSANDRA_SSL_CA
    ? {
          ca: Buffer.from(process.env.CASSANDRA_SSL_CA, 'base64'),
      }
    : undefined

And when setting defaults, consider system limits:

// Consider Kafka's 1MB limit when setting defaults
PERSON_PROPERTIES_SIZE_LIMIT: 512 * 1024, // 512KB default (safe margin under 1MB Kafka limit)

This approach makes configuration more flexible, testable, and avoids deployment complexities like file mounting while ensuring defaults don’t cause system failures.

2
Comments Analyzed
TypeScript
Primary Language
Configurations
Category

Source Discussions