Skip to content

ADR-0002: mediatore is a separate project, not a banlieue crate

Status: Accepted ยท Date: 2026-09-26

Context

banlieue's contract is "the Kubernetes API is the only transport" and "banlieue neither carries nor validates the token". mediatore adds HTTPS and mTLS listeners, validates tokens, and pulls in an IdP's dependency tree (Entra/OIDC, OBO, sqlx, tonic, OpenBao).

Decision

mediatore lives in its own repository and consumes banlieue-api as a pinned dependency for the VirtualMachineClaim and VirtualMachine types. banlieue never imports mediatore. The in-guest agent (mediatore-guest) and the workload CLI (sandbox-token) live in this repository too, sharing mediatore-proto, because their wire contract changes in lockstep with the server.

Consequences

  • banlieue keeps its supply-chain scope and assurance level; mediatore gets a stricter one.
  • Schema drift is caught at compile time by the pin, not at runtime.
  • Three binaries, one version, one release.