Commit Graph
110 Commits
Author SHA1 Message Date
Milo SchwartzandGitHub 9115808301 Merge pull request #4027 from S-NoF3aR/feature/idp-session-revalidation
Revalidate OIDC sessions with the IdP using refresh tokens
2026-10-30 14:44:23 -04:00
Severin Enzler 7176fa4a40 Revalidate OIDC sessions with the IdP using refresh tokens
Pangolin consults the IdP only at login and keeps its own session
afterwards, so disabling a user or revoking their sessions in the IdP
does not end their Pangolin sessions.

Store the IdP refresh token at OIDC login as a grant and redeem it at
most every server.idp_session_revalidation_minutes (default 5). If the
IdP rejects it with invalid_grant, the grant is marked revoked and all
sessions backed by it and their resource sessions are deleted. Other
errors (IdP unreachable or slower than 10 seconds, invalid_client after
a secret change) keep the sessions valid and are retried after at most
a minute instead of on every request.

Only the instance holding a lease on the grant in the primary database
redeems its refresh token, and it writes the result only while it still
holds the lease, so instances never redeem the same token concurrently.
The per-request lookup reads from a replica through safeRead.

Device logins of the Pangolin clients share the grant of the browser
session that approved them, read from the primary database, so a rotated
refresh token is never redeemed twice by separate sessions.

The Entra ID provider type hardcodes its scopes, so it now requests
offline_access to get a refresh token.
2026-10-29 11:33:30 +01:00
Owen 8ce036b413 Clean up config for dns servers 2026-10-28 15:51:08 -04:00
Owen 3090c74131 Fix pg migration import 2026-10-20 16:31:52 -04:00
Owen ee8724f117 Move the offline intervals to the regular config 2026-10-20 12:15:46 -04:00
Fra146 7ad56a8bae Add config options and badger options injection 2026-09-24 11:42:05 +02:00
Owen 29d93a574b Fix optional() type errors 2026-09-23 14:48:05 -04:00
Owen 6ec37220d6 Remove default from server
Fixes #3804
2026-09-23 10:33:49 -04:00
Owen c6c12f1dcb Support _FILE env vars
Closes https://github.com/fosrl/docs-v2/issues/141
2026-09-15 10:56:39 -04:00
Owen c11bbe670f Remove optional() where unneeded for zod 4 2026-09-15 10:23:37 -04:00
Owen 8a97ed5200 Move domain information to all in private 2026-09-14 16:48:10 -04:00
Owen ba2eb87f20 Widen subnet 2026-09-14 16:48:07 -04:00
Owen 9d19195089 Configurable tab title and disable flag for keys 2026-09-04 09:20:20 -04:00
Owen be0dd65557 Update imports 2026-09-03 11:35:28 -04:00
Owen 2e87927b83 Remove unused use_subdomain 2026-08-21 10:21:21 -04:00
Owen 114592add8 Show a warning if the logs are disabled to reduce confusion 2026-08-19 16:16:05 -04:00
Owen 58195b5959 Move the acme cert sync 2026-08-17 12:00:12 -04:00
Owen 7291628f86 optionally stamp ip header for downstream use 2026-08-13 09:14:37 -04:00
Owen cc58e28e54 Allow merging a catalog file with the api response 2026-08-12 16:06:12 -04:00
Owen 653dd920ad Allow remote header overrides and fix display issues with log 2026-08-12 15:54:22 -04:00
Owen fe5831eb48 pull the models from the upstream server 2026-08-10 09:57:00 -04:00
Owen aad26b9ae4 move the ai gateway to its own server 2026-08-04 17:08:59 -04:00
Owen 80dcdfe251 change override to work for bother badger and ai gateway 2026-08-04 17:08:59 -04:00
Owen efd2792197 bump default rate limit 2026-08-03 17:57:36 -04:00
Owen 7f2b3eb481 Move rate linmit to file 2026-08-03 14:34:11 -04:00
Owen e9d424eb80 Move jit mode to a config param
Ref #3262
2026-07-07 10:41:12 -04:00
Owen 757bb39622 Support overriding badger for testing 2026-03-28 21:24:13 -07:00
Owen dae169540b Fix defaults for orgs 2026-03-02 16:49:17 -08:00
Owen b622aca221 Try to route logs requests to a different database 2026-02-20 17:20:01 -08:00
miloschwartzandOwen ceb359d614 refactor is licensed and subscribed util functions 2026-02-11 10:06:54 -08:00
Owen bf5dd3b0a1 Pull secrets from env vars 2026-02-02 21:39:18 -08:00
miloschwartz 074ee70025 add flag to disable product help banners 2025-12-23 13:33:24 -05:00
Owen 5c67a1cb12 Format 2025-12-22 16:28:41 -05:00
Owen 6a5939599c Remove maintence mode internal vars and use server 2025-12-20 17:28:39 -05:00
Pallavi KumariandOwen Schwartz d82535d3e1 point the resource to the nextjs server for maintenance screen 2025-12-20 16:35:16 -05:00
Owen 800bdcb277 generate traefik config for maintenance ui 2025-12-20 16:35:16 -05:00
Thomas WildeandOwen 4f154d212e Add ASN-based resource rule matching
- Add MaxMind ASN database integration
- Implement ASN lookup and matching in resource rule verification
- Add curated list of 100+ major ASNs (cloud, ISP, CDN, mobile carriers)
- Add ASN dropdown selector in resource rules UI with search functionality
- Support custom ASN input for unlisted ASNs
- Add 'ALL ASNs' special case handling (AS0)
- Cache ASN lookups with 5-minute TTL for performance
- Update validation schemas to support ASN match type

This allows administrators to create resource access rules based on
Autonomous System Numbers, similar to existing country-based rules.
Useful for restricting access by ISP, cloud provider, or mobile carrier.
2025-12-20 12:16:31 -05:00
Owen fea4d43920 Make utility subnet configurable 2025-12-19 14:45:00 -05:00
Owen f9b03943c3 Format all files 2025-12-09 10:56:14 -05:00
miloschwartz 357f297a3e remove enable_clients flag from config 2025-12-03 15:02:39 -05:00
Owen a623604e96 Improve holepunching 2025-12-01 13:54:30 -05:00
Owen 096da391e5 Add a utility subnet 2025-11-30 17:38:12 -05:00
Lokowitz 7db99a7dd5 used zod codemod 2025-11-16 14:18:17 +00:00
Fred KISSIE 579a4e1021 ✨ add flags for enabling notifications for product updates & new releases 2025-11-08 00:51:56 +01:00
Owen f5eadc9e1e Various fixes 2025-10-29 12:16:28 -07:00
Owen bd5cc790d6 Fixing various things 2025-10-27 17:52:39 -07:00
Owen ada5d2ef0e Update domain 2025-10-19 11:59:10 -07:00
miloschwartz 47ac5875f3 change digpangolin.com to pangolin.net 2025-10-18 11:51:09 -07:00
Owen 9c91a8db46 Update build process 2025-10-13 11:49:48 -07:00
miloschwartz b160eee8d2 Merge branch 'dev' into distribution 2025-10-13 11:06:14 -07:00