76 Commits

Author SHA1 Message Date
03948e7716
f: cookie-inspect 2026-04-05 19:10:52 -06:00
ca228cbf8e
feat: add cmd/cookie-inspect for decoding and verifying a cookie 2026-04-05 19:10:52 -06:00
fd601da512
f: add cmd/ssechat as ServerSentEvents demo 2026-04-05 19:10:52 -06:00
a3e6c588f7
f: add cmd/ssechat as ServerSentEvents demo 2026-04-05 19:10:52 -06:00
106c64b0d5
feat: add cmd/ssechat as ServerSentEvents demo 2026-04-05 19:10:52 -06:00
35019f3da1
feat: add cmd/cullbak for culling backup directories 2026-04-05 19:10:52 -06:00
e514203335
feat: add cmd/smtp-test for debugging smtp auth and delivery 2026-04-05 19:10:51 -06:00
d5f0722fe1
feat(calendar): parse reminder durations 2026-04-05 19:10:51 -06:00
b9b225f483
wip(calendar): rework field access 2026-04-05 19:10:51 -06:00
02889a4af0
f: feat(calendar): calculate fixed and floating yearl and monthly events 2026-04-05 19:10:51 -06:00
0400880e76
f: feat(calendar): calculate fixed and floating yearl and monthly events 2026-04-05 19:10:51 -06:00
9b9ce5c9f8
wip: feat(calendar): calculate fixed and floating yearl and monthly events 2026-04-05 19:10:51 -06:00
a4f830deb6
feat: add cmd/smbtest for debugging smb connection issues 2026-04-05 19:10:51 -06:00
128723ac2a
ref(cmd/monorelease): fix tag and version output, start flagset 2026-04-05 19:10:51 -06:00
94d3f77ef5
WIP: feat(cmd/monorelease): fix versioning 2026-04-05 19:10:51 -06:00
efbc2c61b0
WIP: feat(cmd/monorelease): better table 2026-04-05 19:10:51 -06:00
6ecb04696a
WIP: feat(cmd/monorelease): show table 2026-04-05 19:10:51 -06:00
8c1301a0da
WIP: feat(cmd/monorelease): show bins 2026-04-05 19:10:51 -06:00
849f606bbc
WIP: feat: add cmd/monorelease for checking version info 2026-04-05 19:10:51 -06:00
ccb504f62d
feat: add cmd/api-example as server boilerplate 2026-04-05 19:10:51 -06:00
7f46ef6102
f: cmd/cli-example 2026-04-05 19:10:51 -06:00
43c09a9ad1
feat: add cmd/cli-example for reference, and Ai context 2026-04-05 19:10:51 -06:00
4a9c331ef9
Fix INSERT INTO _migrations ordering in create and fixup
The create subcommand generated .up.sql files with INSERT INTO
_migrations as the FIRST statement, before the actual DDL. If the
DDL fails, the migration is incorrectly marked as applied. Move the
INSERT to be the LAST statement, matching how .down.sql already puts
DELETE FROM _migrations last.

Also fix the automatic fixup logic to append (not prepend) missing
INSERT statements to existing .up.sql files.

Fixes #86
2026-03-30 15:58:21 -06:00
87b666ffd3
chore(cmd/sql-migrate): add .goreleaser.yaml 2026-03-28 17:16:40 -06:00
690cf90d67
chore(cmd/sql-migrate): add .goreleaser.yaml 2026-03-23 11:43:08 -06:00
1f61095873
feat(sql-migrate): add sync subcommand
Adds `sql-migrate sync` which outputs a shell script that refreshes
the local migrations.log from the DB by running _migrations.sql.
Uses `|| true` so a fresh DB with no _migrations table yields an
empty log (all migrations pending) rather than an error.

Usage:
  sql-migrate -d ./db/migrations sync | sh
  sql-migrate -d ./db/migrations up | sh
2026-03-23 11:42:23 -06:00
b50696f64d feat(sql-migrate): skip +-prefixed files in migrations directory (refs #68) 2026-03-23 11:39:49 -06:00
3487702bf7 fix(sql-migrate): use 6-digit zero-padded number in init migration filename (refs #68) 2026-03-23 11:39:49 -06:00
4895012d67 fix(sql-migrate): use portable SQL in _migrations table (closes #37) 2026-03-23 11:39:49 -06:00
a4cb1e3bfd
doc: clarify how to create users and tokens
Signed-off-by: AJ ONeal <aj@therootcompany.com>
2026-03-19 21:17:57 -06:00
516b23eac3
feat+ref(cmd/smsapid): add sms:* endpoints, csvauth, cli flags, etc 2026-03-03 03:11:26 -07:00
4bda5b4580
ref(cmd/auth-proxy): consolidate generic token logic in auth package 2026-03-03 03:08:27 -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