Commit Graph
973 Commits
Author SHA1 Message Date
Owen c92b2f22ba Update version 2026-09-29 11:02:37 -04:00
Owen 393af877c9 Merge branch 'dev' of github.com:fosrl/pangolin into dev 2026-09-28 20:34:31 -04:00
Owen 90848581a1 Push gateway updates to clients 2026-09-25 11:51:38 -04:00
Owen 37ed8997f2 Add fist pass of mtls support 2026-09-24 16:56:57 -04:00
Owen 6ddb1550e9 Export blueprint functionality 2026-09-24 16:31:54 -04:00
Owen e68963b852 Add comments about not processing gateway 2026-09-24 09:49:09 -04:00
Owen 021626d382 Send gateway resources downstream like cidr resources to newt 2026-09-24 09:49:09 -04:00
Owen 118120c9ce Create gateway resources in blueprints 2026-09-24 09:49:09 -04:00
Owen a17b870ed2 Adding gateway resources 2026-09-24 09:49:08 -04:00
Fra146 7ad56a8bae Add config options and badger options injection 2026-09-24 11:42:05 +02:00
Fred KISSIE 0b0f62d8de ♻️ fix types and validate destination Host correcly 2026-09-23 21:00:26 +02:00
Fred KISSIE 14fda9cec0 ♻️ Force disable redirects when domain is missing attached resource domain 2026-09-23 20:49:45 +02:00
Owen 29d93a574b Fix optional() type errors 2026-09-23 14:48:05 -04:00
Owen d406cc61b5 Pull jit limit from org 2026-09-23 10:40:21 -04:00
Owen 6ec37220d6 Remove default from server
Fixes #3804
2026-09-23 10:33:49 -04:00
Fred KISSIE ca18320ca3 Merge branch 'dev' into feat/redirect-tables 2026-09-22 22:36:53 +02:00
Owen 750f267451 Try to link email to org when creating for first time 2026-09-21 16:25:58 -04:00
Owen 0c752c9c29 Merge branch 'main' into dev 2026-09-21 15:21:12 -04:00
Owen Schwartz 3392120855 Merge pull request #3172 from Gulianrdgd/feature-response-headers
Feature response headers
2026-09-21 15:16:24 -04:00
Owen Schwartz 7e188ffae6 Merge pull request #3738 from breken-ai/fix/path-rule-percent-encoding
▚▚ fix(rules): decode percent-encoded PATH rule patterns before matching
2026-09-21 13:55:25 -04:00
Blacks-Army 8e2f9ea5ef Add HTTP method matching to resource rules
Resolves #1408.

A rule with match "METHOD" carries a comma-separated list of HTTP
methods in its value, e.g. "POST,PUT", and applies when the request
method is in that list. This makes it possible to leave GET public
while sending POST and PUT to auth, which rules could not express
before because both share the same path.

No new columns: the methods live in the existing rule value, so this
needs no migration and every existing rule keeps working unchanged.

The UI offers the ten registered methods. Blueprints and the API
accept any method token, so extension methods such as the WebDAV verbs
can be targeted too, and the UI preserves them when a rule set that
way is edited later.
2026-09-19 20:00:01 +02:00
Fred KISSIE 57b80bf74e ♻️ Add ssl field to redirects and add traefik config to public file 2026-09-18 23:38:46 +02:00
Fred KISSIE d06a261cd6 ♻️ refactor 2026-09-18 21:04:56 +02:00
Fred KISSIE 67f45023db Merge branch 'dev' into feat/redirect-tables 2026-09-18 20:59:18 +02:00
Fred KISSIE 2cb5cea48f ✨ handle redirect request in badger's verifySession 2026-09-18 20:29:52 +02:00
Tyagiquamar b74ded3a9c fix(sqlite): tag per-migration database backups with version and prevent collisions 2026-09-18 21:31:00 +05:30
Fred KISSIE ec36317057 ✨ finish redirect traefik config 2026-09-17 21:32:55 +02:00
Fred KISSIE c51bcbb578 🚧 wip: traefik config for redirect 2026-09-16 19:30:10 +02:00
Hayyan Hajwani 9298ec7cdb fix(setup): correct month index and zero-pad database backup file names
Backup names were built inline from Date#getMonth, which is zero-indexed, so a
backup taken on 12 September 2026 was written as db_2026-8-12_20-35-56.sqlite.
No field was zero-padded either, giving names like db_2026-8-12_20-36-2.sqlite.

Extract formatBackupTimestamp into server/lib and use it from both places that
built the string: the backupDb helper in migrationsSqlite.ts and the inline copy
in the 1.0.0-beta9 setup script. Padding every field also makes the names sort
lexicographically in the order the backups were taken.

Adds tests covering both reported names, single-digit padding and sort order.
Reverting the helper to the old formula fails them with the exact name from the
report.
2026-09-16 13:46:57 +05:30
Owen 324f3e50ff Add license tiers 2026-09-15 16:25:53 -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 143b4cf757 Atomically write files to avoid races with traefik 2026-09-15 10:04:00 -04:00
Owen 56e758a656 Resolve oss build issue 2026-09-14 18:05:30 -04:00
miloschwartz 68821514a0 replace node cache in dns server 2026-09-14 17:41:41 -04:00
miloschwartz 8f1344a665 bump version and add 1.23 migrations 2026-09-14 17:18:31 -04:00
Owen 350f8c012a Pull in static domains to the traefik config again 2026-09-14 16:48:10 -04:00
Owen 8a97ed5200 Move domain information to all in private 2026-09-14 16:48:10 -04:00
Owen e66f7fe71b Implement exit node check-in tracking and adjust logging for connection errors 2026-09-14 16:48:10 -04:00
Owen ad343a7453 Wire up to start 2026-09-14 16:48:10 -04:00
Owen 7e4d38548f Add certificate generation 2026-09-14 16:48:09 -04:00
Owen 3421441635 Add cert_mode to know when to gen or pull certs 2026-09-14 16:48:09 -04:00
Owen 073bfb32e9 Adjust lic headers 2026-09-14 16:48:09 -04:00
miloschwartz aed325f273 switch to lru in memory cache and dont cache failed sessions 2026-09-14 16:48:07 -04:00
Owen ba2eb87f20 Widen subnet 2026-09-14 16:48:07 -04:00
Owen c0ea32863c Quiet up error logs 2026-09-14 16:48:07 -04:00
breken 64ae230d23 fix(rules): decode percent-encoded PATH rule patterns before matching
isPathAllowed decodes the incoming request path (and Badger already sends
Go's decoded req.URL.Path), but compared it against the rule pattern as raw
text. isValidUrlGlobPattern rejects raw spaces and non-ASCII and only accepts
them percent-encoded, so a PATH rule such as `/my%20docs/*` or `/caf%C3%A9`
was stored as `my%20docs` / `caf%C3%A9` and compared against `my docs` /
`café`, and could therefore never match any request.

Run the pattern through the same decodeAndResolvePath normalisation as the
request path so both sides are compared in decoded form.

Claude-Session: https://claude.ai/code/session_0134ujLF81GyXsCByibLcYsz
2026-09-13 19:00:59 -07:00
Owen b0e64a5e5a Widen subnet 2026-09-08 16:31:58 -04:00
Owen 733d3ece0e Quiet up error logs 2026-09-08 10:01:59 -04:00
Owen 9d19195089 Configurable tab title and disable flag for keys 2026-09-04 09:20:20 -04:00