Give ADR 0346 a home in design 27: a provider may serve its own composed names (issue 624)
This commit is contained in:
@@ -2,8 +2,9 @@
|
||||
layer: to-be
|
||||
status: in-progress
|
||||
code: [mesh-controller internal/catalogue]
|
||||
updated: 2026-10-12
|
||||
updated: 2026-10-13
|
||||
decisions:
|
||||
- "ADR 0346"
|
||||
- "ADR 0312"
|
||||
- "ADR 0319"
|
||||
- "ADR 0309"
|
||||
@@ -278,6 +279,20 @@ rather than recomputing it. A consumer that writes the derived value into its ow
|
||||
of asking for it is refused, naming the placeholder to use. *How it is checked:* the unit tests in
|
||||
ADR 0202's "how this is checked", each run against the unchanged controller first.
|
||||
|
||||
*A provider may serve its own composed names (2026-10-13, ADR 0346, issue 624):* a served value may
|
||||
also name what the mesh composed for the **provider** through a requirement it contributes to, in the
|
||||
same words its own files use: `${bound:<requirement>:name}`, `internal-name`, and `name-<local>` or
|
||||
`internal-name-<local>` for a contribution under a local name. The forge serves the package registry's
|
||||
public root as `https://${bound:route:name-web}/api/packages/novox/npm/`, so a consumer learns the
|
||||
registry's public name from its binding rather than from a second copy kept by hand. The mesh fills it
|
||||
from the provider machine's own composition on both paths, a provider on another machine and one on
|
||||
the consumer's own, so the binding and the proxy name one host. Where the provider's machine composes
|
||||
no such name (it has no public domain, or the endpoint is not reached publicly), the key is left out of
|
||||
what the consumer is told, and `plan` says so on the provider's machine and under the consumer's need.
|
||||
*How it is checked:* the module check refuses a served value naming a requirement the module does not
|
||||
contribute to or a fact other than those names; the controller's unit tests for both paths and for the
|
||||
left-out key, each run against the unchanged controller first.
|
||||
|
||||
## How a definition reads what was resolved
|
||||
|
||||
**One form, naming a requirement and a field of its contract.** A definition that needs the database's
|
||||
|
||||
Reference in New Issue
Block a user