feat: OIDC provider for "Login with Pangolin"#2568
Draft
feat: OIDC provider for "Login with Pangolin"#2568
Conversation
c6dfd3a to
0196b71
Compare
4e3c4f5 to
9b15e5c
Compare
c932656 to
99d400e
Compare
99d400e to
3d580bb
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Community Contribution License Agreement
By creating this pull request, I grant the project maintainers an unlimited,
perpetual license to use, modify, and redistribute these contributions under any terms they
choose, including both the AGPLv3 and the Fossorial Commercial license terms. I
represent that I have the right to grant this license for all contributed content.
Description
Implements Pangolin as an OIDC provider for “Login with Pangolin”, with full OAuth client management for admins and app-consent management for users.
See https://github.com/orgs/fosrl/discussions/21
Initial scaffolding/discovery was AI-assisted (Opus 4.6 / Codex 5.3); final code was manually reviewed and refactored.
What’s included
end_session_endpoint)given_name,family_name, and org-scopedgroupsHow to test
If upgrading from a previous install, route
/.well-knownto the API service.In
config/traefik/dynamic_config.yml, update the Next.js and API router rules:Restart Traefik after changing this.
Create an OAuth client
Verify discovery
curl https://yourdomain.com/.well-known/openid-configuration
Expected: JSON with fields like
issuer,authorization_endpoint,token_endpoint,userinfo_endpoint,jwks_uri,revocation_endpoint,and
end_session_endpoint.Available scopes and claims
Endpoints
Demo
TODO