6 Commits

Author SHA1 Message Date
Zachariah K. Sharma f473be4033 feat: add authenticated URL-mode MCP servers from Control Panel
Add an optional auth-token (bearer) field and a custom-headers textarea to
the MCP 'Add server' pane. URL-mode servers are now registered by writing
hermes config directly via the venv's config helpers (save_env_value +
save_config) instead of shelling into the interactive, network-probing
'hermes mcp add --url' flow that hung/504'd on auth challenges.

- Token is stored in ~/.hermes/.env (mode 600) and referenced in config.yaml
  as 'Authorization: Bearer ${MCP_<NAME>_API_KEY}' — never plaintext config.
- Registration is non-blocking: no live probe, so a slow/unreachable server
  can't hang the request.
- Add a per-server 'Test' button (POST /api/mcp/test -> hermes mcp test).
- Contract tests for the new fields, payload, no-probe path, and test route.
2026-06-10 21:19:05 -06:00
Zachariah K. Sharma be9c9ae6d4 Fix API key creation, add expiration presets and defaults
- Fix payload field names (snake_case → camelCase) so creates/updates
  actually reach the server correctly
- Fix reveal dialog not opening after create/rotate (plain_key → plaintextKey)
- Add GET /api/admin/api-users/:id so the edit button loads existing data
- Show server errors inline in the dialog instead of silently succeeding
- Add 30d/90d/1y/Never expiration preset buttons
- Default new keys to pre+post access, 60 rpm, 1M monthly tokens
- Surface errors on revoke, reactivate, rotate, and delete actions
- Add client-side validation for required numeric fields
- Add contract tests covering all the above fixes
2026-06-10 00:05:32 -06:00
Zachariah K. Sharma c645027805 Route APIs through shared Hermes gateway 2026-06-08 20:47:15 -06:00
Zachariah K. Sharma ef7da651ac Support browserless Claude and Gemini OAuth 2026-06-08 11:59:45 -06:00
Zachariah K. Sharma c86254667b feat: add api user management interface
Adds §21 API Users pane with full CRUD, key rotation, log download, revoke/reactivate, and one-time key reveal dialog. Includes static UI contract test.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-06 02:07:35 -06:00
Zachariah K. Sharma b78b25a5a5 Initial Commit 2026-06-05 23:22:08 -06:00