Skip to content

fix(hosted): publish eSignet discovery at its issuer origin - #32

Merged
jeremi merged 1 commit into
mainfrom
fix/esignet-issuer-discovery
Aug 20, 2026
Merged

fix(hosted): publish eSignet discovery at its issuer origin#32
jeremi merged 1 commit into
mainfrom
fix/esignet-issuer-discovery

Conversation

@jeremi

@jeremi jeremi commented Aug 20, 2026

Copy link
Copy Markdown
Member

Problem

scripts/smoke-esignet.py fails against the authority-cells fleet. eSignet declares its issuer as the bare public origin, but the Spring service answers only under /v1/esignet, so the reset's direct route to it leaves two required documents unserved:

  • {issuer}/.well-known/openid-configuration → 404
  • {issuer}/.well-known/oauth-authorization-server → 404

No conformant OIDC client can discover the provider. The portal is unaffected only because it is hand-configured with explicit endpoints.

Cause

The reset (#23) reduced the eSignet app from seven services to five, removing esignet-edge. That edge was what published the root discovery surface. Routing the issuer host straight at the Spring service dropped it.

Fix

config/esignet/nginx-hosted.conf already publishes both documents at the root, forwards /v1/esignet, and rewrites the upstream Host to the issuer origin so the backend emits the right issuer. Front the issuer origin with a second instance of that image and leave the service itself unrouted, which is how the surface was published before the reset and how the superseded fleet still publishes it today.

No new image: esignet-edge reuses the already digest-pinned SOLMARA_ESIGNET_UI_IMAGE.

Verification

Both fleets probed live before the change:

Path superseded esignet host cells esignet host cells esignet-ui host
/.well-known/openid-configuration 200 404 200
/.well-known/oauth-authorization-server 200 404 200
/v1/esignet/oidc/.well-known/openid-configuration 200 200 200

The running UI container answers all three under either Host header, confirming a second instance serves the issuer origin correctly.

Tests written first; 112 hosted topology and provisioning tests green under uv, scripts/check-coolify-compose.sh clean.

eSignet declares the bare public origin as its issuer but the Spring
service answers only under /v1/esignet, so routing the issuer host
straight at it left {issuer}/.well-known/openid-configuration and the
RFC 8414 authorization-server document unserved. No conformant client
could discover the provider.

The UI image already renders an nginx that publishes both documents at
the root, forwards /v1/esignet, and rewrites the upstream Host to the
issuer origin. Front the issuer origin with a second instance of it and
leave the service itself unrouted, which is how the surface was
published before the authority-cell reset.

Signed-off-by: Jeremi Joslin <jeremi@joslin.fr>
@jeremi
jeremi merged commit 187c75d into main Aug 20, 2026
1 check passed
@jeremi
jeremi deleted the fix/esignet-issuer-discovery branch August 20, 2026 13:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant