Configuration

Every Acme service is described by a single acme.config.ts file at the project root. The config drives:

  • Routing and region pinning
  • Database connection pooling
  • Feature flag defaults
  • Audit log retention
  • Outbound webhook signing keys

Minimal example

import { defineConfig } from '@acme/sdk'

export default defineConfig({
  name: 'billing',
  regions: ['us-east', 'eu-west'],
  database: {
    pool: { min: 2, max: 16 },
    statement_timeout_ms: 4000,
  },
  flags: {
    invoice_v2: { default: false, owner: 'platform@acme.co' },
  },
})

Reference

FieldTypeRequiredDescription
namestringyesService slug, used in audit logs and traces.
regionsRegion[]yesAt least one Acme edge region.
database.pool.minnumbernoMinimum pool size per region. Default 1.
database.pool.maxnumbernoMaximum pool size per region. Default 8.
database.statement_timeout_msnumbernoHard SQL timeout. Default 30000.
flagsRecord<string, FlagSpec>noServer-evaluated feature flags.

Environment overrides

Anything in acme.config.ts can be overridden per environment:

export default defineConfig({
  // ...
  environments: {
    production: {
      database: { pool: { min: 8, max: 64 } },
    },
    preview: {
      database: { pool: { max: 2 } },
    },
  },
})

The CLI surfaces the merged effective config with acme config show --env production.