deploy/oden-mirror/holger-a-proof.ron
// A' — the UPSTREAM STAND-IN used to prove C's mirror with real bytes.
//
// WHY IT EXISTS. holger.rs is the estate's A and C mirrors it for real (see
// `holger-c.ron`), but on 2026-09-20 holger.rs's `bundles` and `crates` hold
// ZERO artifacts, and two other lanes are installing a config and a binary on
// that box. C is a consumer: it does not write to its upstream and this lane
// does not add bytes to a store two other lanes are proving against. So the
// "artifact ADDED upstream / bytes CHANGED upstream" halves of the acceptance
// are driven against THIS upstream instead — a second holger on a DIFFERENT
// machine (t14s) reached from oden over the real network, which is the same
// shape as holger.rs in every respect except the hostname.
//
// It is a `raw` repository on purpose: a raw repo enumerates the files under its
// `ron_data_dir` as `ArtifactId { namespace: None, name: <relpath>, version: "" }`,
// so an artifact can be added to, edited in, or removed from the upstream by the
// operator without a write client — which is exactly the upstream-side event the
// mirror is supposed to notice.
(
repositories: [
( ron_name: "bundles", ron_repo_type: "raw", ron_upstreams: [], ron_in: None,
ron_out: Some((ron_storage_endpoint: "store", ron_exposed_endpoint: "doors")),
ron_data_dir: Some("/home/rickard/holger-a-proof/store/bundles") ),
],
exposed_endpoints: [
// insecure + a token (HOL-NCSC): a proof between two lab machines, reads open.
(ron_name: "doors", ron_url: "0.0.0.0:50071", ron_http_url: None, insecure: true),
],
storage_endpoints: [
(ron_name: "store", ron_storage_type: "znippy", ron_path: "/home/rickard/holger-a-proof/store"),
],
auth: Some((methods: [StaticToken(subject: "operator", token_file: Some("/home/rickard/holger-a-proof/token"))], roles: {"operator": Admin}, require_auth_for_reads: false)),
)