# 🚨 КРИТИЧНІ 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