52 Commits

Author SHA1 Message Date
copilot-swe-agent[bot]
7465f584d9 docs+fix: add RequestAuthenticator godoc example; use 10_000 numeric literal
Co-authored-by: coolaj86 <122831+coolaj86@users.noreply.github.com>
2026-03-02 08:01:24 +00:00
copilot-swe-agent[bot]
9e7a50b443 feat: add WWWAuthenticate field + Challenge(w) method to RequestAuthenticator
Co-authored-by: coolaj86 <122831+coolaj86@users.noreply.github.com>
2026-03-02 07:58:27 +00:00
copilot-swe-agent[bot]
33960a5f2b refactor: move BasicAuthenticator into RequestAuthenticator; Authenticate takes only *http.Request
Co-authored-by: coolaj86 <122831+coolaj86@users.noreply.github.com>
2026-03-02 07:43:09 +00:00
copilot-swe-agent[bot]
780ad06089 feat: add AuthenticateBasic bool + NewRequestAuthenticator() with sane defaults
Co-authored-by: coolaj86 <122831+coolaj86@users.noreply.github.com>
2026-03-02 07:39:28 +00:00
copilot-swe-agent[bot]
886888d6bb fix: nil AuthorizationSchemes skips Authorization header (not any-scheme wildcard)
Co-authored-by: coolaj86 <122831+coolaj86@users.noreply.github.com>
2026-03-02 07:35:22 +00:00
copilot-swe-agent[bot]
c8eabab03d refactor: extract RequestAuthenticator into auth package; use in smsapid and auth-proxy
Co-authored-by: coolaj86 <122831+coolaj86@users.noreply.github.com>
2026-03-02 07:17:50 +00:00
copilot-swe-agent[bot]
a708352634 fix: WebhookPing csv tags + JSON payload column; DeviceChecks struct; fix Authenticate deadlock
Co-authored-by: coolaj86 <122831+coolaj86@users.noreply.github.com>
2026-03-02 06:56:04 +00:00
bf3c4a48e4
copilot: add CSV and JSON endpoints to smsapid with csvauth role-based auth 2026-03-01 22:57:39 -07:00
6e4f25ff5e
chore(release): add .goreleaser.yaml for auth-proxy 2026-03-01 01:20:48 -07:00
18eec1f5cb
chore(release): update .goreleaser.yaml for cmd/tcpfwd 2026-03-01 00:29:33 -07:00
fc9f070285
chore(cmd/tcpfwd): update .goreleaser.yaml for monorepo 2026-03-01 00:22:44 -07:00
115efc0afb
chore(cmd/tcpfwd): goreleaser init 2026-03-01 00:18:32 -07:00
0762e64857
chore(cmd/tcpfwd): add go.mod (for git-tag-based releases) 2026-02-27 23:50:37 -07:00
d30ceb004d
chore(cmd/tcpfwd): minor cleanup, add license, lint 2026-02-27 23:35:00 -07:00
3e4ce3ac91
ref(cmd/tcpfwd): extract waitWithTimeout to simplify shutdown block
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-27 22:52:07 -07:00
0d356c0b26
feat(cmd/tcpfwd): add description to version/help output
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-27 22:16:49 -07:00
f9e06f131b
ref(cmd/tcpfwd): simplify parseForward with strings.Cut
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-27 22:13:10 -07:00
3f16e89f5c
ref(cmd/tcpfwd): remove implicit time.Now() for testability
- connEntry.isIdle(now, threshold): caller supplies now instead of time.Since
- connRegistry.closeIdle(now, threshold): passes now through to isIdle
- trackingConn gains a clock func() time.Time field used in Read/Write
- handleConn takes clock func() time.Time; uses it to init lastRead/lastWrite
  and passes it to trackingConn
- Call sites in main pass time.Now or time.Now() explicitly

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-27 22:08:56 -07:00
89f6e04516
feat(cmd/tcpfwd): add graceful shutdown with idle connection tracking
On SIGINT/SIGTERM:
- Stop accepting new connections
- Close connections idle longer than --idle-timeout (default 5s),
  determined by LastRead/LastWrite timestamps tracked per connection pair
- Wait for active connections to drain up to --shutdown-timeout (default 30s)
- Force-close any remaining connections if the timeout is exceeded

Also switches isClosedConn to use errors.Is(err, net.ErrClosed) and
exits the accept loop cleanly when a listener is closed during shutdown.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-27 22:05:04 -07:00
b08525b024
feat(cmd/tcpfwd): add multi-forward positional args and version/help
Accept any number of local-port:remote-host:remote-port forwards as
positional arguments. Backward-compatible with existing --port/--target
flags. Adds --version/-V/version and --help/help handling matching the
auth-proxy pattern, including printVersion printed to stderr at startup.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-27 21:54:51 -07:00
ec64afe390
feat: add tcpfwd to pipe connections 2026-02-27 21:25:33 -07:00
af6b0eb5a2
feat: add cmd/smsgwhookstocsv for smsapid (android sms gateway) jsonl to tsv 2026-02-27 02:48:13 -07:00
71eceb809f
feat: add cmd/smsapid for use with android-sms-gateway 2026-02-27 02:48:13 -07:00
4176923dd8
ref(cmd/sendsms): separate http/androidsmsgateway into own package 2026-02-27 02:42:50 -07:00
c08f7e342a
feat(cmd/sendsms): add back curl script for testing 2026-02-27 01:52:19 -07:00
de8630c136
fix(cmd/sendsms): send messages again (but not on dry-run), check ENVs 2026-02-27 01:52:19 -07:00
4e5277d133
fix(cmd/sendsms): randomize-csv now keeps header and adds back extension 2026-02-27 01:52:19 -07:00
7b40097396
fix(cmd/auth-proxy): show all working credentials, not just the first one 2026-02-27 00:26:43 -07:00
7a93b333ba
doc(cmd/auth-proxy): add README.md with examples and install instructions 2026-02-27 00:06:58 -07:00
13eeb6793b
feat: add cmd/auth-proxy to add Basic, Bearer, X-API-Key, or access_token auth to routes 2026-02-27 00:06:58 -07:00
21ea2d0613
chore(cmd/sql-migrate): bump v2.0.3 2026-01-31 21:22:42 -07:00
b6ffacd0a6
fix(cmd/sql-migrate): spell 'postgres' correctly 2026-01-31 21:21:53 -07:00
e7282c58f3
chore(cmd/sql-migrate): add explicit default for sqlCommand switch 2026-01-31 21:21:53 -07:00
dd4148b88e
chore(cmd/sql-migrate): make file path ormatting consistent for all 'found ./path/to/x' outtput 2026-01-31 21:21:53 -07:00
1ec145b3eb
ref(cmd/sql-migrate/v2): make INSERTs sortable, output cleanup 2026-01-31 01:18:58 -07:00
10236de205
feat(cmd/sql-migrate/v2): bump go.mod to v2 2026-01-31 00:20:07 -07:00
65f866970e
feat(cmd/sql-migrate/v2): store migrations in db, nix batches 2026-01-31 00:10:06 -07:00
8136b7f4b9
doc(sendsms): make README more inviting 2026-01-25 00:30:36 -07:00
fa9930c159
feat(sendsms): add script to randomize CSV data 2026-01-25 00:10:17 -07:00
674960b497
doc(sendsms): add README.md 2026-01-25 00:10:17 -07:00
8654c1c1f5
ref(sendsms): add --print-curl to improve --dry-run and general output 2026-01-25 00:10:17 -07:00
a050e5d0c7
ref(sendsms): hard error on leftover template strings, other output improvements 2026-01-25 00:10:17 -07:00
0c3c436c60
ref(sendsms): sane template defaults, separate sender interface 2026-01-25 00:10:17 -07:00
147a317cc0
ref(sendsms): lots of output improvements 2026-01-25 00:10:17 -07:00
5fdb4746cc
feat(sendsms): add --start-time, --stop-time, --max-duration, --min-delay 2026-01-25 00:10:17 -07:00
c56688a512
feat: add cmd/sendsms for texting lists from CSV 2026-01-25 00:10:17 -07:00
fe6300dacc
chore(cmd/sql-migrate): bump to version 1.0.2 2026-01-13 00:30:48 -07:00
eee1a95f52
ref(cmd/sql-migrate): add package, docs, minor flag parse change 2026-01-13 00:30:08 -07:00
f034cf0529
feat(cmd/sql-migrate): can write up and down migrations 2026-01-13 00:29:55 -07:00
9598545a9f
chore: add appopriate LICENSE files to each module 2025-10-06 00:42:41 -06:00