[superseded by #227] A served value may name the consumer it is served to (hq ADR 0201, issue 124) #225
Closed
mesh-admin
wants to merge 1 commits from
feat/a-provider-declares-what-it-derives into main
pull from: feat/a-provider-declares-what-it-derives
merge into: :main
:main
:fix/the-derived-value-record-is-0202
:fix/while-stopped-names-the-composed-id
:fix/adr-0202-module-state
:feat/the-store-keeps-what-the-records-name
:feat/mesh-dns-resolver
:feat/0198-the-runtime-consumes-for-its-modules
:feat/0193-a-go-bundle-is-served
:fix/issue-216-a-bundle-nothing-delivers-is-refused
:fix/issue-215-a-commit-is-never-a-branch-to-follow
:fix/issue-214-a-plan-settles-from-the-build-records
:fix/issue-211-a-bundle-stands-on-its-toolchain
:feat/a-provider-declares-what-it-derives
:feat/a-machine-joins-through-the-tunnel
:feat/the-found-front-end-is-uninstalled
:fix/adr-0170-cited
:feat/the-firewall-seat-serves-its-verbs
:feat/one-thing-filters-a-converged-machine
:feat/a-take-is-a-comparison-the-rest
:fix/the-build-tool-rebuilds-what-stands-on-a-base
:fix/one-announcement-at-a-time
:feat/the-artifact-store-seat-is-named-for-its-scope
:fix/139-a-routes-internal-name-says-where-it-arrives
:feat/148-names-are-resolved-not-copied
:fix/a-token-is-an-account-on-the-bus
:feat/ca-trust
:fix/local-calls-are-not-filtered
:fix/this-machines-own-guests-are-on-the-private-network
:fix/an-endpoint-named-by-a-route-still-carries-its-port
:feat/an-assignment-configures-an-endpoint
:feat/a-module-names-its-endpoints
:fix/reach-names-a-route-not-a-port
:feat/an-assignment-says-how-far-an-endpoint-reaches
:feat/filter-what-arrives-from-outside
:feat/an-artifact-says-which-system-it-is-built-for
:feat/a-machine-says-which-networks-it-routes
:fix/a-push-raises-what-a-module-hears
:fix/the-seat-declares-the-facts-its-holder-states
:fix/review-two-small-faults
:feat/the-mesh-says-what-it-applied
:fix/a-modules-name-may-contain-a-dot
:fix/a-manifest-head-says-what-it-accepts
:feat/the-control-plane-prepares-its-own-state
:fix/the-word-ships-before-the-manifest-uses-it
:feat/a-version-prepares-its-state
:fix/the-control-plane-migrates-before-it-serves
:fix/work-longer-than-the-window-says-so
:feat/a-merge-rebuilds-what-it-changed
:fix/an-older-merge-does-not-move-a-source
:fix/a-mirrored-base-is-not-pulled-twice
:fix/a-module-hears-what-it-consumes
:fix/the-controller-may-ask-a-tool
:fix/a-module-serves-its-own-namespace
:fix/the-check-dials-as-the-mesh-does
:fix/an-edge-is-recorded-by-path
:feat/build-edges-are-recorded
:feat/one-bus
:fix/the-controller-follows-what-it-decodes
:feat/a-merge-on-the-forge-builds-what-it-moved
:feat/rollout-hand
:fix/store-seats-keep-their-protocol
:feat/the-build-machine-takes-work-on-nats
:fix/a-principal-may-hear-its-consumer
:fix/the-bus-account-has-jetstream
:fix/the-controller-pins-the-bus-certificate
:feat/the-controller-serves-on-nats
:fix/a-node-may-bind-its-consumer
:fix/mint-leaves-the-control-planes-old-secret-alone
:fix/the-controller-mounts-its-bus-secret
:fix/the-network-map-knows-the-holders
:fix/mint-bare-host-and-again
:fix/mint-finds-the-bus-on-the-hub
:switch/the-controller-speaks-nats
:feat/the-move-mints-and-delivers
:fix/record-the-standing-holder
:feat/amqp-is-not-a-provision
:feat/seat-handover
:fix/rollout-retires-the-old-broker
:fix/the-store-owns-the-seat-set
:fix/go-126-base
:feat/nats-genesis
:fix/a-taken-tunnel-brings-its-port
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Merge this one FIRST. The catalogue PR writes
${consumer:as:dns}into minio'sserves; without this, that string would reach three consumers' configuration files as a literal bucket name.A
servesblock may now interpolate the mesh's own statement of who the consumer is —${consumer:as}and${consumer:as:dns}— and nothing else. The mesh fills it at the one moment it knows who the consumer is, and the one filled value reaches both ends: the consumer, as the served facts in its binding file and as${bound:<provision>:<key>}in any file it writes; the provider, asderivedon that consumer's entry in its contributions file, so its provisioner is told the name rather than recomputing it.Settings are laid on first, so an operator may set a prefix and the mesh derives the rest.
Two refusals: a fact or alphabet the mesh does not have, refused at parse with what may be said; and a consumer whose own file already contains the value the mesh is about to derive for it, refused at resolution with the placeholder to write instead. The second is the check issue 124 asked for — the one wrong transcription sat unnoticed for months.
internal/catalogue/derived_for_consumer_test.go: six tests, each run against the unchanged controller first (with the derivation disabled they report the literal placeholder and "the two ends disagree").
make check passes except TestTheResolverIsToldEveryMachineOnTheNetworkAndToldAgainWhenOneLeaves, which fails on main too — confirmed by stashing this change and re-running. Not from here.
${consumer:as} and ${consumer:as:dns} in a serves block are filled per consumer at resolution, and the one filled value reaches both ends: the consumer's binding and its ${bound:...} substitutions, and the provider's contributions entry as `derived`. A fact or alphabet the mesh does not have is refused at parse; a consumer whose own file already holds the derived value is refused at resolution, naming the placeholder to write instead.Closed in favour of #227, which now carries both of group 8's changes rebased onto today's main.
The record this cited is ADR 0201 now, not 0188 — the bundles refactor took that number while this waited. Every comment moved with it.
A served value may name the consumer it is served to (hq ADR 0188, issue 124)to [superseded by #227] A served value may name the consumer it is served to (hq ADR 0201, issue 124)Pull request closed