A colleague cannot reach a route by its .test name: .test is not delegable,
proximo's DNS server answers every name under it with 127.0.0.1, and two
machines running a project called shop is the ordinary case. A shared route
needs a name that says which machine it is on, that a colleague can bookmark, and
that a Collision on the sharing machine cannot quietly redirect.
Decision. A shared route answers on two peer names, derived from the two
hosts ADR 0003 already gives
it, by one rule: replace .<tld> with .<machine>.<suffix>.
| Derived from | api.test in project shop |
|
|---|---|---|
| Bare peer name | the Bare host | api.<machine>.<suffix> |
| Qualified peer name | the Qualified host | api.shop.<machine>.<suffix> |
proximo.share is a switch and carries no
name, so two routes on one machine cannot claim the same peer name by writing it.base.<namespace>.<tld> with the declared base kept whole, so the peer names
inherit everything the local rule already handles: a multi-label host
(api.v2.test becomes api.v2.<machine>.<suffix> and
api.v2.shop.<machine>.<suffix>), a host that already carries its Namespace
(one peer name), a container outside a Compose project (Bare only), and
Collisions, which stay one problem with one reporting path.<machine> names a machine, not a person, is mandatory, and has no default
derived from the host. A person can own two machines, a machine outlives its
owner's tenure, and colleagues write the label into bookmarks and READMEs, so
renaming it later breaks everyone who did. It must be chosen, and proximo prints
that rule every time it is set..local failure), no Public Suffix List
entry can reclassify it underneath a shipped design (the home.arpa failure),
and nobody can delegate it in the future — unclaimable, not merely unclaimed. The
rule is not "avoid reserved names": proximo depends on .test being reserved.*.home.arpa once home.arpa entered the Public Suffix List, while
*.sub.home.arpa kept working: the failure needs a wildcard immediately above a
listed boundary. Exact SANs per route are what make a future listing of the
suffix's parent survivable.The TLD stays exactly one per machine. This clarifies ADR 0003 rather than amending it: the machine answers a second suffix, but claims nothing for it on the host resolver.
The Bare peer name only. Simpler, one name to explain. Rejected: it is precisely the name a Collision can move, which is the failure ADR 0003 exists to remove (#77).
A flattened Qualified name, <name>--<project>.<machine>.<suffix>. Chosen
first, when a per-machine wildcard certificate covered exactly one label; the
double hyphen kept the mapping invertible where a single one would collide with
service names that contain a hyphen. Rejected once the wildcard was gone
(#98): it was the wildcard's
price, never parity with the local shape, which was always dotted. It defines a
second grammar with its own collision class, can exceed the 63-octet label limit,
and skips the <project> cookie scope ADR 0003's trade presumes.
A suffix under a domain the team owns. Immune to a future Public Suffix List entry. Rejected (#101): the exposure it avoids is neutral or beneficial under a private-use suffix — a listing of the parent would make each machine its own site — while under an owned domain a cookie scoped to that domain reaches everything else the team serves there. A signed parent zone would also make privately served answers fail validation.
Deriving <machine> from the hostname or the OS user. Rejected: both usually
carry a person's name, and both change when the machine does.
.test host is refused on the peer name. Host-only cookies are the documented
requirement; proximo rewrites nothing (constraint 4).status prints both names, and the documentation recommends the Qualified
one. A container that lost a Collision keeps only its Qualified peer name.