190 Commits

Author SHA1 Message Date
8de79be2e7
feat: add net/ipcohort (for blacklisting, whitelisting, etc) 2026-03-23 11:31:02 -06:00
6eedfa3ca0
feat: add net/gitshallow (for incremental updates to data repos) 2026-03-23 11:31:02 -06:00
769c9ba1ee
feat: add cmd/smtp-test for debugging smtp auth and delivery 2026-03-23 11:31:02 -06:00
224bd6bbb3
wip: add more middleware examples 2026-03-23 11:31:02 -06:00
b1b270befa
feat(calendar): parse reminder durations 2026-03-23 11:31:02 -06:00
9289a5b4f7
wip(calendar): rework field access 2026-03-23 11:31:02 -06:00
824ae9770a
f: feat(calendar): calculate fixed and floating yearl and monthly events 2026-03-23 11:31:02 -06:00
0cb2db1464
f: feat(calendar): calculate fixed and floating yearl and monthly events 2026-03-23 11:31:02 -06:00
a78c4ed6fb
wip: feat(calendar): calculate fixed and floating yearl and monthly events 2026-03-23 11:31:02 -06:00
a317960911
f(ai): add WithFormat to change format without changing Generate signature 2026-03-23 11:31:02 -06:00
1d1af91862
f(ai): add WithModel to change model on-the-fly 2026-03-23 11:31:02 -06:00
777e5e5048
f(ai): fix interface / add type guard 2026-03-23 11:31:02 -06:00
4d073c2c40
feat(ai): add Ollama and OpenAI helpers 2026-03-23 11:31:02 -06:00
65a017f3ab
feat: add cmd/smbtest for debugging smb connection issues 2026-03-23 11:31:02 -06:00
df7e070b8c
ref(cmd/monorelease): fix tag and version output, start flagset 2026-03-23 11:31:02 -06:00
ca050da283
WIP: feat(cmd/monorelease): fix versioning 2026-03-23 11:31:02 -06:00
f148cececc
WIP: feat(cmd/monorelease): better table 2026-03-23 11:31:02 -06:00
21b3cbff7a
WIP: feat(cmd/monorelease): show table 2026-03-23 11:31:02 -06:00
82e3d65633
WIP: feat(cmd/monorelease): show bins 2026-03-23 11:31:02 -06:00
f3817d93f7
WIP: feat: add cmd/monorelease for checking version info 2026-03-23 11:31:02 -06:00
966c55e1ee
feat: add tools/gitver for monorepo versioning 2026-03-23 11:31:02 -06:00
4b8670f750
feat: add ./scripts/concat-for-context.sh to reduce total file count 2026-03-23 11:31:02 -06:00
489fac6a7d
doc: add PROMPT.md for Ai context 2026-03-23 11:31:02 -06:00
1d4852ab89
feat: add cmd/api-example as server boilerplate 2026-03-23 11:31:02 -06:00
f8f4378e4a
f: cmd/cli-example 2026-03-23 11:31:02 -06:00
5d5ed2d158
feat: add cmd/cli-example for reference, and Ai context 2026-03-23 11:31:02 -06:00
a854fef67e
test(auth/csvauth): regression test for Authenticate token deadlock
Guards against the v1.2.4 bug (fixed in c32acd5) where Authenticate
held a.mux via defer for its full duration, then called
loadAndVerifyToken which also tries to acquire a.mux — deadlock on
every token auth request.

TestAuthenticateTokenNoDeadlock exercises both the bare-token
("", token) and named-username ("api", token) forms with a 1s
timeout, so a regression fails fast rather than hanging the suite.
2026-03-23 00:26:16 -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
0d99234914
ref!(auth/jwt): variadic requiredScopes in NewAccessTokenValidator
Distinguishes the two validator constructors by signature:
- NewIDTokenValidator(iss, aud, azp []string) — allowlist semantics
- NewAccessTokenValidator(iss, aud []string, requiredScopes ...string) — requirement semantics

Variadic scopes read naturally at the call site:
  NewAccessTokenValidator(issuers, audiences, "openid", "profile")

Three-state semantics preserved:
  no args        → scope not checked
  []string{}...  → scope must be present (any value)
  "openid", ...  → scope must contain all listed values

Also removes the old gracePeriod parameter from both constructors
(was 0 at all call sites; set GracePeriod on the struct directly
if a non-default value is needed).

Adds TestCov_NewAccessTokenValidator_Scopes covering all three cases.
auth/jwt/v0.9.1
2026-03-17 08:00:45 -06:00
26bdc0a3db
ref!(auth/jwt): full modern rewrite auth/jwt/v0.9.0 2026-03-17 07:49:53 -06:00
117ed8cc9b
feat(auth/jwt): add jwk fetch and jwt verify auth/jwt/v0.6.5 2026-03-17 07:10:25 -06:00
ba674a673d
doc(tools/monorel): move usage summary to doc.go tools/monorel/v0.6.6 2026-03-08 17:21:55 -06:00
f2302d2f24
chore(monorel): add MPL-2.0 license header 2026-03-08 17:21:55 -06:00
eaa3636a35
feat(monorel): add version output with ldflags support 2026-03-08 17:21:55 -06:00
92e1ae9992
docs(monorel): add README tools/monorel/v0.6.5 2026-03-08 15:55:11 -06:00
bd2443cb58
fix(monorel): various path, module root, and --recursive fixes 2026-03-08 15:51:26 -06:00
fd3cb8ba99
feat(monorel): add goarch/goarm/goamd64 to build matrix with --almost-all/--ios/--android-ndk
Default matrix (conservative, CGO_ENABLED=0):
  goos:   darwin freebsd js linux netbsd openbsd wasip1 windows
  goarch: amd64 arm arm64 mips64le mipsle ppc64le riscv64 wasm
  goarm:  6 7  (always included when arm is in goarch)

--almost-all widens to esoteric goos (aix dragonfly illumos plan9
solaris), adds 386/loong64/mips/mips64/ppc64/s390x to goarch, and
emits goamd64: v1 v2 v3 v4.

--ios generates an active iOS build entry (CGO_ENABLED=1, arm64)
instead of the default commented stub.

--android-ndk generates an active Android NDK build entry
(CGO_ENABLED=1, arm64) instead of the default commented stub.

Both --ios and --android-ndk are available on init and release.
The existing -A flag (include hidden dirs) is unchanged.
2026-03-08 15:49:24 -06:00
1cb478b475
fix(http/androidsmsgateway): revert to using observed phoneNumber field rather than the documented recipient,sender ones 2026-03-05 14:00:55 -07: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
c32acd5a74
ref(auth/csvauth): don't hold mutex longer than necessary auth/csvauth/v1.2.5 2026-03-03 03:05:05 -07:00
020b00c353
feat(http/androidsmsgateway): add webhook examples, JSON, CSV, and signature verification 2026-03-03 03:01:56 -07:00
66dde73bd4
chore(auth/csvauth): add .goreleaser.yaml auth/csvauth/v1.2.4 2026-03-03 02:31:36 -07:00
249385c775
fix(auth/csvauth): load tokens into hashmap so that they can be retrieved by CredentialKeys auth/csvauth/v1.2.3 auth/v1.1.1 2026-03-03 02:26:34 -07:00
d415a8c743
fix(auth/csvauth): turn the old CLI-only warnings and errors into returned errors 2026-03-03 01:21:36 -07:00
8842791e34
fix(auth): update test 2026-03-03 00:01:15 -07:00
92f865912a
fix(auth): add missing arg to NewBasicRequestAuthenticator 2026-03-02 23:18:05 -07:00
846d14baf5
feat(auth): add BasicRequestAuthenticator auth/v1.1.0 2026-03-02 12:32:01 -07:00
8056a07d10
chore(tools/monorel): add .goreleaser.yaml tools/monorel/v0.6.4 2026-03-01 19:13:50 -07:00
8405be04ad
feat(monorel): use YAML anchors to DRY up multi-binary build matrices
When a module has more than one binary, the shared build options (env,
ldflags, goos) are defined once via a YAML anchor on the first build and
merged into the rest with <<: *build_defaults.  Single-binary modules use
plain fields with no anchor overhead.

  - id: gsheet2csv          - id: gsheet2csv
    binary: gsheet2csv        binary: gsheet2csv
    env:              →       <<: &build_defaults
      - CGO_ENABLED=0           env:
    goos:                         - CGO_ENABLED=0
      - aix                     goos:
      - ...                       - aix
  - id: gsheet2env               - ...
    binary: gsheet2env      - id: gsheet2env
    env:                      binary: gsheet2env
      - CGO_ENABLED=0           <<: *build_defaults
    goos: ...

The commented-out ios stubs follow the same pattern using a separate
build_defaults_ios anchor so they remain consistent when uncommented.

Also extracts defaultGoos to a package-level var to avoid repetition.
2026-03-01 19:13:50 -07:00