Commit graph

111 commits

Author SHA1 Message Date
miloschwartz
ddc4934ab8
make session revalidation private 2026-11-03 16:49:26 -05:00
Milo Schwartz
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
miloschwartz
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 Kumari
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 Wilde
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