Rust backend for AI meeting attribution, GitHub OAuth, and Knowledge Base ingestion.
- Rust + Axum 0.7
- Tokio async runtime
- Gemini 2.5 Flash API (meeting attribution + semantic tagging)
- File-based JSON storage (Knowledge Base documents)
| Method | Path | Description |
|---|---|---|
| GET | /api/calendar/events |
Google Calendar events with AI attribution |
| GET | /api/github/callback |
GitHub OAuth callback redirect |
| POST | /ai/attribute-meeting |
AI meeting project attribution |
| POST | /api/kb/ingest/file |
Upload file to Knowledge Base |
| POST | /api/kb/ingest/slack |
Ingest Slack thread |
| GET | /api/kb/documents |
List KB documents |
| GET | /api/kb/documents/:id |
Get specific document |
| DELETE | /api/kb/documents/:id |
Delete document |
cargo run| Variable | Required | Description |
|---|---|---|
GEMINI_API_KEY |
Yes | Google Gemini API key for AI features |
GITHUB_CLIENT_ID |
Yes | GitHub OAuth app client ID |
GITHUB_CLIENT_SECRET |
Yes | GitHub OAuth app client secret |
FRONTEND_URL |
Yes | Frontend URL for OAuth redirects (e.g. https://your-app.vercel.app) |
PORT |
No | Defaults to 8000 (Render sets this automatically) |
Connected to Render as a Web Service (free tier). Uses render.yaml for configuration.