2949c5ee47
chore: refresh package-lock.json for CI lockfile check
44a42bdd1e
Syntax highlighting: .coffee URL for CoffeeScript, extension only when relevance >= 5
1abf2d5dcd
Add miniclawd and 0claw/zero-claw to image; optional install script
2e8979d4d8
Fix Gitea assets 404: give customer Traefik router priority=2 so /i/username requests hit Gitea not ss-atlas
53abd800e0
Fix createGroup: LLDAP expects argument 'name' not 'displayName'
3798265511
Ensure customers group exists (EnsureGroup), move group logic to groups.go; improve subscription error log
00e6320b99
Grant active subscription on payment: add user to customers group in success + webhook
Compare 3 commits »
d2c8327d8c
Fix template: use splitList (returns slice) instead of split (returns map)
7c9d40f538
Fix reset URL: hardcode correct base, extract token from .LinkURL
0851d6f952
Fix reset URL: replace %2Flogin encoding in .LinkURL
e3b9511487
Fix reset URL: use raw .LinkURL, remove Traefik redirect hack
0f802de51d
Fix password reset trigger: add debug logging, response body parsing, displayName in LDAP
Compare 8 commits »
c613dc0863
Redirect /login?token= -> /login/reset-password/step2?token= via Traefik
c3f8bd3830
Fix: Authelia priority 10 so /login/* goes to portal, not ss-atlas forward-auth
163128b0ca
Fix reset link: /login?token= -> /login/reset-password/step2?token=
aabdf575e7
Reset email: a250.ca branding, set or reset password, 2FA note
3f5320043c
Fix Authelia reset password URL: custom template replaces %2Flogin with /login
926ddc0356
Add password reset resend button with 1-min rate limit
4ac4de9df2
Path-based routing, tiered pricing, customer details, Stripe MCP
7e40fea6f3
Archive customer volumes on expiry, restore on resubscribe