Commit graph

5 commits

Author SHA1 Message Date
fd3802d749 Port relay service from Python to Rust + Rouille
- PostgreSQL with chrono datetime support
- JWT authentication (jsonwebtoken crate)
- bcrypt API key hashing
- In-memory rate limiter (10 req/min for chat)
- HTTP proxy to reason/recall services
- ~3.8MB binary vs ~50MB Python

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-02 20:30:04 +00:00
8ad87ddaaa Add README documentation
Documents service purpose, endpoints, authentication flow, rate limiting, and configuration.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-02 19:58:27 +00:00
78ee93dbc6 Add PostgreSQL-backed API key storage
- api_keys.py: Database operations for API clients
  - bcrypt hashing for API keys
  - CRUD operations with full PostgreSQL support
  - Indexes for efficient client_id lookup
  - Soft delete (disable) and hard delete
  - Key regeneration support

- main.py: Wire up database storage
  - Startup/shutdown handlers for DB pool
  - Full admin CRUD endpoints
  - Token exchange uses DB lookup

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-02 19:54:40 +00:00
7a4907430f Add .gitignore, remove pycache
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-02 19:51:26 +00:00
10e9da9b32 Initial relay service setup
API gateway that relays authenticated requests to backend services.
Features JWT auth, rate limiting, scope-based access control.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-02 19:51:16 +00:00