Expand every @<alias>: reference in a definition to the physical GDR prefix
its alias binds to, returning a definition that carries only physical
references. Fails closed — naming the definition + alias — when a referenced
alias isn't bound: the check that stops a portable definition from deploying
against the wrong (or no) resource.
Runs during deploy planning, BEFORE the content
fingerprint, so a deployed definition never carries a logical alias. The
stored references are physical, and a rebind (same source, a different alias
map) surfaces as changed content — a new version, never a silent shift in what
the workflow reads. A no-op when the definition references no aliases.
Rewrites string VALUES only through a shared deep walk, skipping known prose
fields. A reference that stands alone
(the whole value is @<alias>:<id>, e.g. a literal doc.ref) must expand to a
well-formed GDR — a malformed one (@content:a:b, an empty id) is rejected
here rather than failing when an instance later reads it.
Expand every
@<alias>:reference in a definition to the physical GDR prefix its alias binds to, returning a definition that carries only physical references. Fails closed — naming the definition + alias — when a referenced alias isn't bound: the check that stops a portable definition from deploying against the wrong (or no) resource.Runs during deploy planning, BEFORE the content fingerprint, so a deployed definition never carries a logical alias. The stored references are physical, and a rebind (same source, a different alias map) surfaces as changed content — a new version, never a silent shift in what the workflow reads. A no-op when the definition references no aliases.
Rewrites string VALUES only through a shared deep walk, skipping known prose fields. A reference that stands alone (the whole value is
@<alias>:<id>, e.g. a literaldoc.ref) must expand to a well-formed GDR — a malformed one (@content:a:b, an empty id) is rejected here rather than failing when an instance later reads it.