7 Commits
Author SHA1 Message Date
nickandClaude Sonnet 4.6 2a1d4f6728 Auto-generate .env on first run if not present
Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
2026-06-19 21:45:32 -07:00
nickandClaude Sonnet 4.6 0b26fd86ad Encrypt Nextcloud passwords at rest, never return them via API
Passwords are encrypted with AES-256-GCM before being written to
users.json. The GET /api/users/:token endpoint no longer returns the
password field, so the settings form asks users to re-enter only when
changing it. Legacy plaintext passwords in users.json are decrypted
transparently and re-encrypted on next save.

Requires a new ENCRYPTION_KEY env var (64-char hex, 32 bytes).

Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
2026-06-18 17:38:27 -07:00
nickandClaude Sonnet 4.6 611a4a6da3 Add self-service web UI for user registration and settings management
Users visit the home page, enter their Nextcloud credentials and an admin
password, and receive a unique webhook URL for AudioPen. A bookmarkable
settings page (/?token=...) lets them update credentials later without
needing the admin password. New users.json entries are written at runtime
via POST/PUT API endpoints.

Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
2026-06-18 17:33:28 -07:00
nickandClaude Sonnet 4.6 68be646f37 Add multi-user support via token-based routing and users.json config
Each user gets a unique secret token embedded in their webhook URL
(/webhook/:token). Credentials are loaded from users.json at startup
instead of environment variables, making it easy to add or remove users
without redeploying.

Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
2026-06-18 17:27:08 -07:00
nick 902cd59d11 updates 2026-05-19 17:53:08 -07:00
nick 414a9ff5ee working 2026-05-19 16:37:53 -07:00
nick 76b86c63a6 first commit 2026-05-19 16:31:19 -07:00