🔐 Auth: базова реалізація JWT для Memory Service

- JWT middleware для FastAPI
- Генерація/перевірка JWT токенів
- Скрипти для генерації Qdrant API keys
- Скрипти для генерації NATS operator JWT
- План реалізації Auth

TODO: Додати JWT до endpoints, NATS nkeys config, Qdrant API key config
This commit is contained in:
Apple
2026-01-10 10:43:14 -08:00
parent 0ebbb172f0
commit 6c426bc274
6 changed files with 313 additions and 0 deletions

View File

@@ -0,0 +1,72 @@
# 🔐 План реалізації Auth
**Дата:** 2026-01-10
**Версія:** 1.0.0
---
## 📋 Компоненти для Auth
### 1. NATS (nkeys)
**Статус:** TODO
**Пріоритет:** Високий
**Що робити:**
- Генерація NATS operator JWT
- Створення system account
- Створення user accounts для сервісів
- Оновлення NATS конфігурації з auth
**Файли:**
- `infrastructure/auth/nats/generate-operator.sh` — генерація operator
- `infrastructure/auth/nats/create-accounts.sh` — створення accounts
- `infrastructure/kubernetes/nats/auth-secrets.yaml` — Secrets для JWT
---
### 2. Memory Service (JWT)
**Статус:** TODO
**Пріоритет:** Високий
**Що робити:**
- Додати JWT middleware до FastAPI
- Генерація JWT токенів для сервісів
- Перевірка JWT в Memory Service endpoints
- Створення service-to-service токенів
**Файли:**
- `services/memory-service/app/auth.py` — JWT middleware
- `services/memory-service/app/jwt_utils.py` — генерація/перевірка JWT
- `infrastructure/kubernetes/apps/memory-service/auth-secrets.yaml` — Secrets
---
### 3. Qdrant (API key)
**Статус:** TODO
**Пріоритет:** Середній
**Що робити:**
- Увімкнути API key auth в Qdrant
- Генерація API ключів для кожного сервісу
- Оновлення Memory Service для використання API key
- Оновлення worker-daemon для використання API key
**Файли:**
- `infrastructure/kubernetes/apps/qdrant/config.yaml` — Qdrant config з auth
- `infrastructure/auth/qdrant/generate-keys.sh` — генерація ключів
- `infrastructure/kubernetes/apps/qdrant/auth-secrets.yaml` — Secrets
---
## 🔄 Порядок реалізації
1. **Memory Service JWT** (найпростіше, найважливіше)
2. **NATS nkeys** (середня складність, важливо для безпеки)
3. **Qdrant API key** (найпростіше, але менш критично)
---
*Документ створено: 2026-01-10 19:30 CET*