A module contributes a label; the mesh joins it with the node's domains and
the provider serves the result — and the module itself was never told.
Software that must know its own address (a login redirect, a canonical URL,
an issuer) had it written into the manifest as a literal: a domain in a
definition, wrong on every other machine (ADR 0112). Found converting
grafana's keycloak login for ace, where it forced GF_SERVER_ROOT_URL and
keycloak's issuer back into manifests.
The binding for a requirement a module contributes to now carries name
and internal-name (or names by local name for several contributions),
and ${bound:<requirement>:name} / :internal-name (:name-<local>) fill
files from it. Both come from the one function the provider's received
file is composed by, so the proxy and the module cannot disagree about the
name. Absent when nothing was composed, so a file asking for a name on a
node with no public domain is refused, not rendered empty.
Also: ${bound:…} could not name a requirement answered by a node-scoped
provider on the same machine — its binding file was written (from here)
but the placeholders only looked at the mesh's needs. Filled from the same
answer now.
A module contributes a label; the mesh joins it with the node's domains and
the provider serves the result — and the module itself was never told.
Software that must know its own address (a login redirect, a canonical URL,
an issuer) had it written into the manifest as a literal: a domain in a
definition, wrong on every other machine (ADR 0112). Found converting
grafana's keycloak login for ace, where it forced GF_SERVER_ROOT_URL and
keycloak's issuer back into manifests.
The binding for a requirement a module contributes to now carries `name`
and `internal-name` (or `names` by local name for several contributions),
and `${bound:<requirement>:name}` / `:internal-name` (`:name-<local>`) fill
files from it. Both come from the one function the provider's received
file is composed by, so the proxy and the module cannot disagree about the
name. Absent when nothing was composed, so a file asking for a name on a
node with no public domain is refused, not rendered empty.
Also: `${bound:…}` could not name a requirement answered by a node-scoped
provider on the same machine — its binding file was written (from `here`)
but the placeholders only looked at the mesh's needs. Filled from the same
answer now.
A module contributes a label; the mesh joins it with the node's domains and
the provider serves the result — and the module itself was never told.
Software that must know its own address (a login redirect, a canonical URL,
an issuer) had it written into the manifest as a literal: a domain in a
definition, wrong on every other machine (ADR 0112). Found converting
grafana's keycloak login for ace, where it forced GF_SERVER_ROOT_URL and
keycloak's issuer back into manifests.
The binding for a requirement a module contributes to now carries `name`
and `internal-name` (or `names` by local name for several contributions),
and `${bound:<requirement>:name}` / `:internal-name` (`:name-<local>`) fill
files from it. Both come from the one function the provider's received
file is composed by, so the proxy and the module cannot disagree about the
name. Absent when nothing was composed, so a file asking for a name on a
node with no public domain is refused, not rendered empty.
Also: `${bound:…}` could not name a requirement answered by a node-scoped
provider on the same machine — its binding file was written (from `here`)
but the placeholders only looked at the mesh's needs. Filled from the same
answer now.
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.
A module contributes a label; the mesh joins it with the node's domains and
the provider serves the result — and the module itself was never told.
Software that must know its own address (a login redirect, a canonical URL,
an issuer) had it written into the manifest as a literal: a domain in a
definition, wrong on every other machine (ADR 0112). Found converting
grafana's keycloak login for ace, where it forced GF_SERVER_ROOT_URL and
keycloak's issuer back into manifests.
The binding for a requirement a module contributes to now carries
nameand
internal-name(ornamesby local name for several contributions),and
${bound:<requirement>:name}/:internal-name(:name-<local>) fillfiles from it. Both come from the one function the provider's received
file is composed by, so the proxy and the module cannot disagree about the
name. Absent when nothing was composed, so a file asking for a name on a
node with no public domain is refused, not rendered empty.
Also:
${bound:…}could not name a requirement answered by a node-scopedprovider on the same machine — its binding file was written (from
here)but the placeholders only looked at the mesh's needs. Filled from the same
answer now.
22845a5296tod075c63ddbA module contributes a label; the mesh joins it with the node's domains and the provider serves the result — and the module itself was never told. Software that must know its own address (a login redirect, a canonical URL, an issuer) had it written into the manifest as a literal: a domain in a definition, wrong on every other machine (ADR 0112). Found converting grafana's keycloak login for ace, where it forced GF_SERVER_ROOT_URL and keycloak's issuer back into manifests. The binding for a requirement a module contributes to now carries `name` and `internal-name` (or `names` by local name for several contributions), and `${bound:<requirement>:name}` / `:internal-name` (`:name-<local>`) fill files from it. Both come from the one function the provider's received file is composed by, so the proxy and the module cannot disagree about the name. Absent when nothing was composed, so a file asking for a name on a node with no public domain is refused, not rendered empty. Also: `${bound:…}` could not name a requirement answered by a node-scoped provider on the same machine — its binding file was written (from `here`) but the placeholders only looked at the mesh's needs. Filled from the same answer now.d075c63ddbto0a17a9a2eb