Files
microdao-daarion/TODO-CRITICAL-NODA1.md

205 lines
6.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 🚨 КРИТИЧНІ TODO для NODA1
**Оновлено:** 2026-01-28
**Джерело:** Аналіз усіх документів репозиторію + live audit
---
## ✅ ВИКОНАНО СЬОГОДНІ (2026-01-28)
- [x] Виправлено ROUTER_URL (9102 → 8000)
- [x] Додано агентів: Alateya, Clan, Eonarch
- [x] Встановлено всі Telegram webhooks
- [x] Закомічено зміни локально та на NODA1
- [x] Патч postgres-backup (pg16) — вже впроваджено
- [x] Патч NATS alias — вже впроваджено
- [x] Патч Caddy disabled — вже впроваджено
---
## 🛡️ АУДИТ БЕЗПЕКИ (2026-01-28)
### Fail2ban — ✅ ПРАЦЮЄ
| Jail | Статус |
|------|--------|
| sshd | ✅ Active |
| nginx-auth | ✅ Active |
| nginx-limit-req | ✅ Active |
| nginx-waf | ✅ Active |
### Firewall (DOCKER-USER) — ✅ НАЛАШТОВАНО
- Внутрішні порти (8000, 8001, 8101, 8890, 9500, 3030) — DROP ззовні
- Docker network (172.18.0.0/16) — ACCEPT
### Backups — ✅ ПРАЦЮЮТЬ
- Postgres: щодня о 3:00, останній backup 2026-01-28
- Retention: daily, weekly, monthly
### Trivy Scan — ⚠️ ВРАЗЛИВОСТІ
| Образ | CRITICAL | HIGH |
|-------|----------|------|
| qdrant:v1.7.4 | 3 | 32 |
| postgres:16 | 3 | 8 |
| nats:2.10-alpine | 2 | 2 |
**Головна вразливість:** OpenSSL CVE-2025-15467 (Remote Code Execution)
**Рекомендація:** Оновити образи в наступному maintenance window:
```bash
docker pull qdrant/qdrant:latest
docker pull postgres:16
docker pull nats:2.10-alpine
# Потім docker-compose up -d
```
### Container Limits — ✅ НАЛАШТОВАНО (docker update)
| Контейнер | Memory Limit |
|-----------|--------------|
| vision-encoder | 4GB |
| neo4j, swapper | 2GB |
| qdrant, rag-service | 1GB |
| gateway, router, memory, crawl4ai | 512MB |
| postgres, nats, redis, minio | 256MB |
### Image Updates — ⚠️ ЧАСТКОВО
| Образ | Статус |
|-------|--------|
| NATS | ✅ Оновлено (2.10-alpine latest) |
| Qdrant | ❌ v1.12.5 несумісний, залишаємо v1.7.4 |
| Postgres | ❌ Не оновлювали (ризик) |
**Примітка:** Qdrant v1.12.5 має breaking changes з v1.7.4. Потрібна міграція даних.
---
## ✅ ДОДАТКОВО ВИКОНАНО (2026-01-28, друга сесія)
- [x] Container memory limits встановлено через `docker update`
- [x] NATS образ оновлено до latest 2.10-alpine
- [x] Qdrant ulimits виправлено (65536 nofile)
- [x] Trivy scan виконано — знайдено OpenSSL CVE-2025-15467
- [x] Prometheus rules перевірено — вже налаштовані
### Не вдалося:
- ❌ Qdrant v1.12.5 — несумісний з даними v1.7.4, потрібна міграція
- ⚠️ Prometheus targets — багато сервісів без /metrics endpoint
---
## 🔴 КРИТИЧНІ (Безпека)
### З SECURITY-ROTATION-PLAN.md
- [ ] Ротація Cohere API key
- [ ] Ротація паролів Postgres/Neo4j
- [ ] Оновлення секретів в Vault
### З INFRASTRUCTURE.md
- [ ] Review all Docker images for vulnerabilities
- [ ] Implement container security scanning (Trivy/Clair)
- [ ] Enable Docker Content Trust
- [ ] Set up intrusion detection (fail2ban)
- [ ] Container resource limits (CPU/memory)
- [ ] Scan all images with Trivy before deployment
### З IMPLEMENTATION-STATUS.md
- [ ] NATS nkeys — згенерувати реальні JWT та застосувати
- [ ] Qdrant API keys — згенерувати ключі та застосувати
- [ ] Memory Service JWT — згенерувати секрет та застосувати
---
## 🟠 ВАЖЛИВІ (Стабільність)
### З ARCHITECTURE-150-NODES.md
- [ ] Один **prod Qdrant cluster** (Tier A) на NODE1
- [ ] Тримати **один Neo4j** у Tier A (NODE1) як прод
- [ ] Створити нову колекцію: `memories_bge_m3_v1` (1024 dim)
- [ ] **НЕ змішувати** embedding-простори в одній колекції
### З PRODUCTION-DEPLOYMENT-GUIDE.md
- [ ] Всі секрети згенеровано та завантажено в Vault
- [ ] Auth enforcement активний
- [ ] Smoke-test пройдено
- [ ] Full flow test пройдено
- [ ] Prometheus alerting rules застосовано
### З docs/MEMORY-MODULE-STATUS.md
- [ ] **NODE1** — Завантажити базову модель в Ollama (e.g., `llama3:8b`)
- [ ] Налаштувати backup для всіх баз даних
---
## 🟡 СЕРЕДНІ (Функціональність)
### З TELEGRAM-RECOVERY-AND-MONITORING-COMPLETE.md
- [ ] Інтеграція history recovery з Gateway startup
- [ ] Telegram алерти адмінам
- [ ] Dashboard здоров'я колекцій
- [ ] Redis backups
- [ ] Бекап .env файлів
### З docs/memory/CUTOVER_CHECKLIST.md
- [ ] Dry run passed
- [ ] Migration completed
- [ ] Parity check passed
- [ ] Dual-read validation passed
- [ ] Cutover completed
- [ ] Post-cutover health verified
### З IMPLEMENTATION-STATUS.md
- [ ] **Streams** — перевірити створення через worker-daemon
- [ ] Тестування повного потоку: Matrix → Gateway → NATS → Worker → Memory Service
- [ ] Реальна реалізація embed/retrieve в Job Executor
- [ ] Статуси результатів назад у Matrix
- [ ] Metrics та алерти в Matrix ops room
---
## 🔵 НИЗЬКІ (Покращення)
### З ARCHITECTURE-150-NODES.md
- [ ] NATS кластер (3+ replicas) для HA
- [ ] mTLS для Memory Service (замість JWT)
- [ ] Consul для capability registry
### З docs/MEMORY-MODULE-STATUS.md
- [ ] Налаштувати реплікацію PostgreSQL NODE1 ↔ NODE3
- [ ] Налаштувати Neo4j кластер між нодами
- [ ] Встановити pgvector для PostgreSQL
---
## 📊 Статистика TODO
| Пріоритет | Кількість |
|-----------|-----------|
| 🔴 Критичні | 11 |
| 🟠 Важливі | 10 |
| 🟡 Середні | 12 |
| 🔵 Низькі | 6 |
| **Всього** | **39** |
---
## 🛠️ Рекомендований порядок виконання
### Фаза 1: Безпека (1-2 дні)
1. Fail2ban + container limits
2. Ротація критичних ключів
3. Trivy scan
### Фаза 2: Стабільність (2-3 дні)
1. Backup strategy
2. Auth enforcement
3. Smoke tests
### Фаза 3: Моніторинг (1-2 дні)
1. Prometheus rules
2. Telegram alerts
3. Dashboard
---
**Автор:** Cursor Agent
**Останнє оновлення:** 2026-01-28