Conversation
Signed-off-by: Jeremi Joslin <jeremi@joslin.fr>
Signed-off-by: Jeremi Joslin <jeremi@joslin.fr>
Signed-off-by: Jeremi Joslin <jeremi@joslin.fr>
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 90aed702be
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| - set -eu; cp /source/* /config/; chown -R 65532:65532 /keys /config; chmod 0700 /keys /config; chmod 0600 /config/* | ||
| volumes: | ||
| - esignet-v2-keys:/keys | ||
| - ./config/evidence/local/esignet-v2:/source:ro |
There was a problem hiding this comment.
Provision hosted eSignet inputs instead of local fixture files
In a clean Coolify checkout this source directory does not exist: a repo-wide search shows it is ignored and populated only by the local breg/dev.py start workflow, whose generated configuration uses host.docker.internal BREG and Mint endpoints that the hosted compose does not provide. Consequently esignet-key-init fails at cp /source/* /config/, blocking the dependent eSignet service; even manually copying the local output would target absent services. Add a hosted secret/config provisioning path with reachable hosted BREG and Mint endpoints rather than binding local fixture output.
AGENTS.md reference: AGENTS.md:L11-L13
Useful? React with 👍 / 👎.
| if (loginStates.size >= MAX_PENDING_ESIGNET_LOGINS) { | ||
| throw new EsignetAuthError('eSignet login capacity reached'); |
There was a problem hiding this comment.
Avoid a globally exhaustible pending-login cap
Because /auth/login is unauthenticated, a client that discards the returned cookie can issue 1,000 requests and leave 1,000 distinct entries in this process-wide map. Every legitimate login then receives a 503 until entries expire ten minutes later, and an attacker can sustain the outage with only a few requests per second. The bound needs eviction or a limit tied to an authenticated/per-client resource rather than rejecting all users when this global threshold is reached.
Useful? React with 👍 / 👎.
Replace the Java eSignet startup and JAR injection with the native eSignet 2.0 BREG candidate and matching UI. The Portal now uses
openid-clientto validate the OIDC journey, including ID-token signatures and UserInfo subject correlation.Changes
Validation
just testpassed withoutPYTHONWARNINGSsuppression or ResourceWarnings, including 163 Portal tests. Portal type checks and build passed.just smokecould not pass with the isolated BREG fixture because Home and five other Lab services were not running.just reviewis documented but has no recipe in the repository.Delivery boundary
Candidate images remain local. This PR does not publish artifacts or change the hosted deployment. Relay integration and production OTP remain outside this phase.
Provider implementation: registrystack/esignet-relay-authenticator#6