2173 Commits
Author SHA1 Message Date
Milo Schwartz d25181118c make auth page custom domains available in ee (#3957) 2026-10-21 18:07:31 -04:00
Owen 54f87a4000 Fix relay port issue 2026-10-21 16:35:27 -04:00
Owen Schwartz 4ad3a18c6d Merge pull request #3948 from fosrl/dev
1.15.0
2026-10-21 11:30:03 -04:00
Owen d80c1ff27b License machines 2026-10-20 15:29:37 -04:00
Owen 77c0c96823 Show protected when using mtls 2026-10-20 15:02:07 -04:00
Owen ee8724f117 Move the offline intervals to the regular config 2026-10-20 12:15:46 -04:00
Owen 3510054a92 MTLS for all public resources 2026-10-20 11:51:43 -04:00
Owen f4140fd6f6 Add mtls to blueprint, policy, and oss getTraefikConfig 2026-10-20 10:02:44 -04:00
Owen 6aaaae3819 Optionally forward identity headers 2026-10-20 09:50:02 -04:00
Owen ec184cdf33 Fix tier matrix bugs 2026-10-19 17:25:02 -04:00
Owen a56e67f852 Move mtls out of private 2026-10-19 16:58:45 -04:00
Owen ab4c105e75 Make rekey not private and in integration api 2026-10-19 16:55:10 -04:00
Owen Schwartz 22f42e225b Merge pull request #3877 from MauryaQbit/fix/csv-injection-in-generate-csv
Neutralise formula prefixes in CSV log exports
2026-10-19 13:41:23 -04:00
Owen 7ffd46f133 Merge branch 'main' into dev 2026-10-19 11:04:49 -04:00
Owen 2817af1816 Move mtls routes to private 2026-10-16 12:16:51 -04:00
miloschwartz 89f6748a1b Merge branch 'dev' into feat/redirect-tables 2026-10-15 11:47:55 -04:00
Owen f0b8a594cf Fix deleting orgs 2026-10-15 11:47:33 -04:00
miloschwartz 7386fa5234 ui improvements 2026-10-15 11:25:07 -04:00
Owen c5c19871eb Prevent overlapping exit node address selections 2026-10-15 10:10:41 -04:00
Owen 2f65a8c124 Make offline checking intervals configurable
Fixes #3855
2026-10-13 09:35:09 -04:00
Owen 6bf4595969 Remove error language from warning 2026-10-12 17:13:48 -04:00
Owen c6b1e5311e Push client identities to newt 2026-10-12 17:03:27 -04:00
Owen b43709903d Add support for configuring load balancing strategy 2026-10-12 16:47:12 -04:00
Owen cccc2d1200 Merge branch 'mtls' into dev 2026-10-12 16:25:25 -04:00
Owen 839b82041b Merge branch 'blueprints' into dev 2026-10-12 16:25:18 -04:00
Owen 148bcd9d1b Merge branch 'machine-roles' into dev 2026-10-12 16:25:13 -04:00
Owen e461b231d5 Add labels to the integration api 2026-10-12 16:21:12 -04:00
Owen f82b209e69 Adjust path processing 2026-10-12 15:10:48 -04:00
Owen 5e93678122 Merge branch 'main' into dev 2026-10-12 15:06:51 -04:00
Owen Schwartz 6bab69dccb Merge pull request #3601 from shleeable/patch-15
Fix: Update handleOlmServerInitAddPeerHandshake.ts with missing sendCancel
2026-10-12 14:54:08 -04:00
Dhananjay Maurya ae36ca3127 Keep plain negative numbers numeric in CSV export
A leading '-' only matters when the value is not a plain number, so
-12 and -1.5 stay numeric while payloads like -2+3+cmd|'/c calc'!A0
still get the apostrophe prefix.
2026-10-13 00:06:15 +05:30
Dhananjay Maurya bae174766b Neutralise formula prefixes in CSV log exports
generateCSV escaped quotes only when a value happened to contain a comma and never neutralised formula prefixes, so every CSV log export could emit attacker controlled cells that execute when an admin opens the file. actor is a virtual API key name validated as nothing more than a non-empty string, and path, host, originalRequestURL, metadata and the AI session bodies come straight from the client request.

Each value now goes through a single encoder that collapses CR, LF and CRLF to a literal \n so a record can never be split across rows, prefixes a leading apostrophe when the first character would make a spreadsheet evaluate the cell as a formula, and quotes whenever the field contains a comma or a quote instead of only when it contains a comma. Headers use the same encoder so a column name cannot desynchronise the rows from the header row.

The five CSV export endpoints also declare charset=utf-8, matching the content type already used by the log streaming destination.

Fixes #3864
2026-10-08 14:43:43 +05:30
TiltedTeapot 91aefa67dc removed literal listenport error references 2026-10-06 18:22:13 -06:00
TiltedTeapot 3712921048 Propogated Changes. listen port is now accessed from db instead of config 2026-10-06 18:21:05 -06:00
TiltedTeapot cff796fabe Added relayPort to exitNodes in db 2026-10-06 18:11:23 -06:00
ercoppa 487910487d FIX: generateGerbilConfig hardcoded the WireGuard listen port to 51820 and never sent a relay port 2026-10-06 18:11:23 -06:00
Owen Schwartz ef0ea6364d Merge pull request #3830 from mr-pmillz/fix/integration-api-delete-org
Fix Integration API organization delete (regression of #1376)
2026-10-04 11:00:45 -04:00
miloschwartz 22b7411794 add redirect routes to integration api 2026-10-02 17:11:06 -04:00
miloschwartz 4d1a14c965 seperate attached to column 2026-10-02 17:02:35 -04:00
miloschwartz 9746ba5741 add server side sort and filter 2026-10-02 16:41:56 -04:00
Owen 1628ab48da Add ui for assigning roles to machines 2026-10-02 12:04:08 -04:00
Owen bc2920af23 Support machine clients added to roles 2026-10-01 15:58:25 -04:00
Owen 938710147a Delete token 2026-10-01 09:30:08 -04:00
miloschwartz a46fc531d4 show exit nodes in resource launcher 2026-09-29 17:05:07 -04:00
mr-pmillzandClaude Opus 5.5 4cb620f46b Fix Integration API organization delete (regression of #1376)
DELETE /v1/org/{orgId} on the Integration API always returned
500 "An error occurred..." and left the organization in place, even for a
root API key holding the deleteOrg action. The handler looked up the
caller's ownership with req.user!.userId, but Integration API requests are
authenticated by verifyApiKey, which sets req.apiKey and never req.user,
so the lookup threw "Cannot read properties of undefined (reading
'userId')".

#1376 was fixed in f37eda47 by dropping the user-only permission check;
79cf7c84 later added the owner check to the handler shared by both
routers, reintroducing the failure for API keys.

Keep the owner check for dashboard sessions. For Integration API keys the
route is already restricted by verifyApiKeyIsRoot and
verifyApiKeyHasAction(deleteOrg), so load the organization directly. Both
paths still refuse a billing organization and return the same 404 for an
unknown organization.

Verified against a local SQLite instance with a root key: before the
change, create returned 201 and delete returned 500 with the organization
still present; after it, delete returns 200 and a repeated delete or GET
returns 404. npx tsc --noEmit passes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-29 11:09:18 -04:00
Owen e3ce453155 Send disconnect messages if the session is bad 2026-09-29 10:24:59 -04:00
Owen 393af877c9 Merge branch 'dev' of github.com:fosrl/pangolin into dev 2026-09-28 20:34:31 -04:00
Owen d859576835 Merge branch 'site-exit-node' into dev 2026-09-28 20:34:21 -04:00
Fred KISSIE dfe4314a5b ♻️ refactor 2026-09-25 21:10:52 +02:00
Owen 90848581a1 Push gateway updates to clients 2026-09-25 11:51:38 -04:00