Files
hq/04-ISSUES/088-the-forges-own-address-names-a-port-it-may-not-have/00-report.md
T

42 lines
2.0 KiB
Markdown

---
status: open
opened: 2026-09-22
located-in: []
fixed-by:
amended-design:
---
# 088 — The forge's own address names a port it may not have
## What was observed
Found while fixing [issue 085](../085-the-packages-port-given-at-genesis-is-not-a-setting/00-report.md),
2026-09-22, by reading the catalogue rather than by running it.
The forge's module declares its own address as an environment value on its container, written out
in full with the port in it. Its container publishes its port without fixing the machine side, so
the mesh assigns that side — which is already, today, usually not the number written into the
address. The address is therefore wrong on any node where the assignment differs, and it becomes
wrong for a second reason once a node is given that port as a setting
([ADR 0100](../../02-DECISIONS/0100-a-node-in-use-is-adopted-before-it-is-converged.md)).
The mesh has the right answer for this: a placeholder that resolves to the port actually in use.
It is substituted in **file** resources only, and this value is in a container's environment map,
where nothing substitutes it.
## Why it matters beyond this instance
Two rules of the mesh meet here and neither is enforced. A module may not name a port it does not
control, and what a module is told about an address must come from what the provider serves. Any
module that writes its own address into an environment value has the same hole, and nothing checks
for it: the value is a string like any other, and it is wrong only at runtime, on the node where
the assignment happens to differ.
## Open questions
- Should the port placeholder resolve in a container's environment as it does in files, or should
a module that needs its own address be made to carry it in a file?
- Should composition refuse an environment value that names a port the module does not fix, the
way it refuses other claims a module cannot make?
- Which other modules write their own address, with a port, into their environment?