Sigil

Config integrity for distributed systems

Configuration that can’t drift.

Ferrule gives every config value a type, a signature, and a history — so what you shipped is exactly what you reviewed, in every environment, every time.

Typed schemas, enforced at every boundary

Every configuration value carries a type and a validator. Invalid config fails at commit, in CI, and at deploy — never in production at 3am. Coercions are explicit and logged, so a stringly-typed duration can't silently become the number 900.

Diff before apply

See the exact key-level delta between any two environments before a single value lands. No blind promotes.

Signed & reversible

Every change is attributed, cryptographically signed, and versioned. Roll back to any prior state in one command.

The workflow

Validate, diff, apply.

The Ferrule CLI is the whole loop. validate checks every key against its schema and blocks a broken apply. diff shows the exact delta between environments. Nothing lands that you didn’t see first.

1INF$ ferrule validate --env prod
2INFchecking 214 keys against schema…
3WRNcache.ttl coerced string→duration (900 → 15m)
4ERRbilling.webhook_secret missing in prod
5ERR1 error, 1 warning — apply blocked
6INF$ ferrule diff staging..prod
7INF~ ratelimit.rps 120 → 200
8INF+ feature.new_checkout true