Hedef DB → Collector → Ingestor → MongoDB → Backend → Frontend
Veri akışı tek yönlü: hedef veritabanları yalnızca okunur (READ-only kullanıcı), DMC sunucularına hiçbir veri akmaz. Tüm bileşenler aynı Docker network'ünde çalışır; air-gap kurulumda dış internet bağlantısı gerekmez.
Beş servis, açık görev tanımı
Backend
Ana API sunucusu. JWT auth, /api/v2/* endpoint'leri, ProviderFactory üzerinden hedef DB'lere bağlanır.
Collector
Zamanlanmış metrik toplama servisi. Varsayılan 60 saniyede bir hedef veritabanlarını sorgular ve sonuçları Ingestor'a HTTP POST eder.
Ingestor
Collector'dan gelen metrikleri doğrular (Pydantic v2), zaman serisi indekslemesi yapar ve MongoDB metrics_ts koleksiyonuna yazar.
Advisor
Bulgu üretici. Kural tabanlı analiz veya yapılandırılırsa Azure OpenAI / yerel Ollama ile insight üretir; findings koleksiyonuna yazar.
Frontend
Tek sayfa uygulaması. Axios + httpOnly cookie ile Backend'e bağlanır. Recharts/ECharts/React Flow tabanlı görselleştirme.
MongoDB
Tek metadata deposu: kullanıcılar, kaynaklar, metrikler, bulgular, audit log. Production'da port dışa açılmaz, yalnızca container ağı.
İki kurulum modeli
Standart on-premise
İnternete bağlı Linux sunucu. install.sh ile Docker image'lar ACR'dan çekilir, docker-compose ile çalışır. Lisans güncellemeleri online.
İnternete kapalı kurulum
İnternete bağlı olmayan bankacılık/kamu ağları için. Docker image bundle (~3.5 GB) USB veya stage host üzerinden taşınır, lisans Ed25519 JWT olarak elden teslim. Detay →
Veri sınırı nerede çiziliyor?
- Hedef veritabanlarına okuma yetkisi yeter. Sentinel hedef DB'lerde yazma yapmaz; toplama için
db_datareaderseviyesi izin yeterli. - Kimlik bilgileri APP_ENC_KEY ile şifreli. 32 byte hex anahtarı kurum tarafından üretilir; DMC'de saklanmaz.
- Auth: JWT EdDSA + httpOnly cookie. Şifreler bcrypt ile hash'lenir, plaintext saklanmaz.
- Audit chain (Pro+). Tüm değişiklikler HMAC zincirli kayıt — log tampering tespit edilebilir.
- Multi-tenant izolasyon.
$jsonSchemaile org_id enforcement, cross-tenant query leak engellenir. - İstemci taraflı erişim: Frontend Backend'e
/api/v2/*üzerinden erişir; CSPdefault-src 'self'.