Our solution
A cryptographic chain of trust from composition to router
Your admission server validates and signs every composition. The router verifies the signature before applying any config. A modification anywhere in the chain breaks the signature.
From composition to verified deployment
When a composition occurs, the control plane calls your admission webhook at /validate-config with a short-lived private URL (5-minute expiry) to fetch the configuration.
Your admission server fetches the config from the private URL, validates it according to your policies (e.g., checking that all subgraph URLs belong to your domain), and calculates an HMAC-SHA256 hash using your signing key.
The server returns the BASE64-encoded HMAC-SHA256 signature with a 200 status, or a 400 with an error message to block deployment.
The control plane stores the signature with the configuration artifact and makes it available to the router.
When the router fetches or loads a configuration, it independently calculates the HMAC-SHA256 hash and compares it to the stored signature.
If the signatures match, the configuration is applied. A mismatch causes the router to reject the configuration and continue on the last known-good config.
Available since Router 0.74.0. Works with CDN polling and file-based config.

