Connector Yönetimi ve Senkronizasyon
Connector, bir sisteme erişim sağlayan teknik adaptörden fazlasıdır. Kaynağın hangi bölümünün alınacağını, hangi kimlikle okunacağını, değişiklik ve silmelerin nasıl izleneceğini, içeriğin hangi Space'e gideceğini ve erişim sınırlarının nasıl korunacağını tanımlayan veri hattıdır.
Bu rehber connector yaşam döngüsünü uçtan uca ele alır:
Kaynak seçimi → Yetki → Kapsam → İlk keşif → Senkronizasyon
→ Ayrıştırma → İndeksleme → Doğrulama → İzleme → Kapatma
Connector ve entegrasyon kataloğu ürün sürümüne göre değişebilir. Kurulumunuzda görünen sağlayıcı, trigger ve operation listesini gerçek kaynak kabul edin; katalog sayıları veya örnekleri sabit ürün garantisi olarak değerlendirmeyin.
Önce entegrasyon türünü ayırın
Knowentra'da aynı servis adı iki farklı amaçla kullanılabilir:
| Tür | Amaç | Veri hareketi | Tipik risk |
|---|---|---|---|
| Bilgi connector'ı | İçeriği aranabilir bilgiye dönüştürmek | Kaynaktan Knowentra indeksine | Fazla veri alma, eski içerik, ACL kaybı |
| Canlı bilgi erişimi | İşlem anında güncel veri okumak | Sorgu anında kaynağa gidiş-dönüş | Gecikme, erişim ve kaynak kesintisi |
| Workflow entegrasyonu | Dış sistemde süreç yürütmek | Okuma veya yazma işlemi | Yetkisiz/tekrarlı dış etki |
| MCP / özel araç | Agent'a operation sunmak | Agent çağrısıyla sunucu işlemi | Argüman enjeksiyonu ve geniş credential |
Bir SharePoint veya Google Drive bağlantısı bilgi senkronizasyonu için kullanılabilir; aynı sağlayıcının workflow operation'ları dosya oluşturabilir veya paylaşımı değiştirebilir. Bu iki yetkiyi aynı credential ve aynı risk sınıfında yönetmeyin.
Senkronizasyon mu, canlı erişim mi?
| Kriter | Senkronizasyon | Canlı erişim |
|---|---|---|
| Yanıt gecikmesi | İndeksten hızlı | Kaynak API gecikmesine bağlı |
| Tazelik | Son başarılı sync kadar | Sorgu anına yakın |
| Kaynak kesintisi | Son indeks kullanılabilir | Sorgu başarısız olabilir |
| Arama kalitesi | Chunk + semantik arama | Kaynağın sorgu yeteneğine bağlı |
| Veri kopyası | Knowentra'da türev kopya oluşur | Daha az kalıcı kopya olabilir |
| Yetki | İndekse doğru yansıtılmalı | Kaynakta anlık doğrulanabilir |
| API yükü | Sync penceresinde toplu | Kullanıcı trafiğiyle birlikte |
Hibrit yaklaşım sık kullanılır: politika ve uzun belgeler indekslenir; bakiye, stok veya ticket durumu gibi hızla değişen alanlar canlı okunur. Birleştirilen cevapta her verinin kaynağı ve yaşı korunmalıdır.
Adım 1 — Connector kayıt formunu hazırlayın
Bağlantıyı oluşturmadan önce şu alanları kaydedin:
| Alan | Örnek |
|---|---|
| Kaynak sistemi | SharePoint İnsan Kaynakları sitesi |
| İş/veri sahibi | İK Operasyonları |
| Teknik sahip | Entegrasyon Ekibi |
| Amaç | Yürürlükteki politikaları İK Space'inde aramak |
| Kaynak kapsamı | /Policies/Published |
| Hariç kapsam | Taslaklar, kişisel klasörler, arşiv |
| Veri sınıfı | Kurum içi / kişisel veri içerebilir |
| Hedef | İK Politikaları bilgi tabanı |
| Kimlik | Salt-okunur servis uygulaması |
| Sync hedefi | 30 dakikada bir artımlı |
| Tazelik SLO'su | Değişiklik 45 dakika içinde görünür |
| Silme kuralı | Kaynak silinince karantina, sonra indeks silme |
| Saklama | Kurumsal politika ile uyumlu |
Amaç ve kapsam onaylanmadan “tüm drive”, “tüm site” veya tenant-geneli yetki istemeyin.
Adım 2 — Kaynak kapsamını keşfedin
İlk bağlantıda doğrudan tam senkronizasyon başlatmayın. Önce salt-okunur keşif çalıştırın:
- Erişilebilir site, klasör, kanal veya proje sayısı
- Tahmini dosya/kayıt ve toplam veri hacmi
- Dosya türü, boyut ve yaş dağılımı
- Taslak, arşiv, çöp kutusu ve kişisel içerik konumları
- Kaynak ACL ve paylaşım linki yapısı
- Değişiklik zamanı veya delta cursor desteği
- Silinme/tombstone olayının nasıl bildirildiği
- API rate limit ve sayfalama davranışı
Keşif raporu içerik değerlerini değil mümkün olduğunca metadata ve toplamları göstermelidir. Örneklem gerekiyorsa veri sahibiyle ve düşük riskli klasörle sınırlandırın.
Include ve exclude kuralları
Pozitif allowlist, geniş bir kökten negatif filtrelemeye göre daha güvenlidir:
include:
/Policies/Published/**
exclude:
**/Drafts/**
**/Archive/**
**/*.tmp
**/~$*
Filtre sırası, büyük/küçük harf davranışı, sembolik link/kısayol ve alt klasör mirasını test edin. Kaynak yeniden adlandırıldığında kuralın sessizce daha geniş alanı kapsamamasına dikkat edin.
Adım 3 — Kimlik ve credential modelini seçin
Servis hesabı
Periyodik bilgi senkronizasyonu için çoğunlukla uygundur:
- Kişiden bağımsız yaşam döngüsü
- Dar, salt-okunur kapsam
- Merkezi rotasyon
- Açık sahiplik ve audit
Kullanıcı OAuth bağlantısı
Kullanıcı adına canlı erişimde gerekli olabilir:
- Kaynaktaki kişisel yetki korunabilir.
- Consent ve token yenileme yönetilmelidir.
- Kullanıcı ayrıldığında bağlantı sona erebilir.
- Workflow'un uzun süreli sahipliği kişiye bağlanmamalıdır.
On-behalf-of / delegation
Kaynak sistem destekliyorsa kullanıcının gerçek yetkisiyle sorgu yapılabilir. Token exchange, audience, scope ve kullanıcı bağlamı her çağrıda doğrulanmalıdır.
Bilgi connector'ı için tenant-admin credential kullanmak kolay görünür, fakat yanlış scope veya filtrede tüm kurumsal içeriği indeksleyebilir. Kaynak API izni ve Knowentra hedef kapsamı birbirinden bağımsız iki kontrol olmalıdır.
Adım 4 — İlk bağlantıyı doğrulayın
Credential kaydedildikten sonra:
- Kimlik ve hedef tenant doğrulanır.
- Yalnız izinli root/site/project listelenir.
- Tek bir düşük riskli örnek kaynak okunur.
- Yazma veya yönetim operation'larının kullanılamadığı kontrol edilir.
- Secret'ın log ve kullanıcı arayüzüne dönmediği doğrulanır.
- Rate-limit ve token-expiry bilgisi kaydedilir.
- Bağlantı testi audit olayına bağlanır.
“Connection successful” yalnız kimlik doğrulamasını gösterebilir. Gerçek scope ve dosya okuma testi ayrıca yapılmalıdır.
Adım 5 — Hedef ve sahipliği belirleyin
Senkronize içerik bir organizasyon, departman ve bilgi tabanı/Space sınırına bağlanmalıdır:
Kaynak connector
→ organizasyon
→ departman
→ bilgi tabanı
→ izinli Space/agent
Bir kaynak birden fazla departmanda gerekiyorsa aynı veriyi kontrolsüzce kopyalamak yerine paylaşım ve sahiplik modelini belirleyin. Kaynak kaldırıldığında bütün türev indekslerin nasıl bulunacağını kaydedin.
Her obje için provenance metadata'sı taşıyın:
source_system
connector_id
source_object_id
source_url
source_parent_id
source_revision / etag
source_updated_at
synced_at
content_hash
permission_revision
Bu bilgiler deduplication, kaynak gösterme, silme ve olay incelemesi için gereklidir.
Adım 6 — İlk tam senkronizasyonu planlayın
İlk full sync'i küçük bir pilot kapsamla başlatın:
- Kaynak sayısını ve byte hacmini ölçün.
- Sayfalama boyutu ve worker concurrency'yi düşük ayarlayın.
- API limitleri için rate-limit bütçesi belirleyin.
- Dosyaları indir, tür ve boyut kontrolü yapın.
- Ayrıştırma, chunk ve embedding'i ayrı durumlarla izleyin.
- Yeni indeks tamamlanmadan kullanıcılara kısmi sonucu açıp açmayacağınıza karar verin.
- Kaynak ve indeks sayılarını reconciliation ile karşılaştırın.
- Pilot doğrulandıktan sonra kapsamı kademeli genişletin.
Sync durum modeli
Tek bir success/failed alanı yetersizdir:
discovered → fetched → parsed → chunked → embedded → indexed
↘ quarantined / failed
Bir dosyanın fetch edilmesi aranabilir olduğu anlamına gelmez. UI ve operasyon metrikleri son başarılı aşamayı göstermelidir.
Adım 7 — Artımlı senkronizasyon
Kaynak destekliyorsa delta cursor, değişiklik token'ı, webhook veya updated_at + stable ID
kullanın.
Checkpoint şunları içermelidir:
- Connector ve kaynak scope revision'ı
- Cursor/token veya son güvenli zaman penceresi
- Son sayfanın stabil anahtarı
- Başlangıç ve bitiş zamanı
- İşlenen, atlanan, başarısız ve silinen obje sayısı
- Kaynak API revision'ı
Checkpoint yalnız bütün sayfa ve türev yazımlar başarıyla tamamlandıktan sonra ilerletilir. Önce cursor'ı kaydedip sonra indeks yazmak, hata anında belge atlanmasına yol açar.
Zaman penceresi kullanılıyorsa
Saat kayması ve aynı timestamp'e sahip kayıtlar için overlap kullanın:
önceki_başarılı_zaman - güvenlik_penceresi
→ şimdi - kaynak_gecikme_penceresi
Tekrar gelen kayıtları source_object_id + revision/content_hash ile idempotent işleyin.
Adım 8 — Ayrıştırma ve içerik güvenliği
Her dosya veya kayıt:
- İzin verilen tür ve maksimum boyut kontrolünden geçer.
- Zararlı dosya ve gerekiyorsa makro taramasından geçer.
- Şifreli/bozuk dosyada görünür hata üretir.
- Metin, tablo, sayfa ve başlık yapısı mümkün olduğunca korunarak ayrıştırılır.
- Prompt injection içeriği “talimat” değil güvenilmeyen kaynak metni olarak işaretlenir.
- Metadata ve kaynak bağlantısını korur.
- Gereksiz embedded obje veya izleme parametresini temizler.
OCR kullanılan belgelerde güven skoru ve sayfa bilgisi saklanmalıdır. Düşük güvenli çıkarım, kesin politika maddesi gibi agent bağlamına verilmemelidir.
Adım 9 — Chunk, embedding ve indeksleme
Chunk stratejisi kaynak türüne göre değişir:
| Kaynak | Önerilen sınır |
|---|---|
| Politika/doküman | Başlık ve bölüm yapısı |
| Wiki | Sayfa + alt başlık |
| Ticket | Ticket gövdesi ve izinli yorumlar |
| E-posta | Thread/mesaj; imza ve quoted text temizliği |
| Tablo | Satır grubu + kolon başlıkları |
| Kod | Dosya, sınıf ve fonksiyon sınırı |
Her chunk kaynak obje, revision, konum ve ACL metadata'sını korumalıdır. Embedding modeli veya chunk stratejisi değiştiğinde aynı indeks üzerine sessizce karışık vektör yazmayın; yeni bir index revision oluşturup doğruladıktan sonra atomik geçiş yapın.
Adım 10 — ACL ve görünürlük
Üç yaklaşım vardır:
- Kapsam bazlı: Connector yalnız belirli departman/Space için onaylı içerik alır.
- ACL aynalama: Kaynak kullanıcı/grup izinleri indekse taşınır ve sorguda uygulanır.
- Canlı yetki kontrolü: Retrieval anında kaynak sisteme yetki sorulur.
| Yaklaşım | Güçlü yanı | Riski |
|---|---|---|
| Kapsam bazlı | Basit ve hızlı | Aynı scope içindeki ince izinleri kaybedebilir |
| ACL aynalama | Hızlı sorgu + ayrıntılı filtre | Grup değişikliği gecikmesi |
| Canlı kontrol | En güncel kaynak yetkisi | Gecikme ve kaynak bağımlılığı |
Kaynağın ACL modeli tam taşınamıyorsa bunu açık risk olarak kaydedin. “İçerik kurum içi” olduğu için tüm organizasyona açmayın.
Yetki değişikliği
İçerik değişmediğinde bile ACL değişebilir. Permission revision'ı ayrı izleyin ve yüksek riskli kaynaklarda erişim kaldırmayı normal içerik sync'inden daha hızlı işleyin.
Adım 11 — Değişiklik ve deduplication
Her obje için:
- Sabit kaynak kimliğiyle eşleştirin; dosya adına güvenmeyin.
etag, revision veya content hash değişmediyse tekrar embedding yapmayın.- Yeniden adlandırmayı sil + yeni obje yerine metadata güncellemesi olarak tanıyın.
- Taşınan objede parent/ACL kapsamını yeniden değerlendirin.
- Aynı içeriğin farklı kaynaklarda bulunmasının beklenen mi duplicate mi olduğunu belirleyin.
- Version history'nin tamamını değil yalnız onaylı/current revision'ı indeksleyin.
Hash eşitliği, izin ve metadata eşitliği anlamına gelmez. İçerik aynı kalsa da ACL veya kaynak konumu değişmiş olabilir.
Adım 12 — Silme semantiği
Kaynak silme olayı en riskli sync davranışlarından biridir:
Kaynakta görünmüyor
├── gerçekten silindi
├── connector yetkisi kayboldu
├── scope/filter değişti
├── geçici API/sayfalama hatası
└── kaynak taşındı veya yeniden adlandırıldı
Tek bir eksik liste sonucuyla indeks içeriğini topluca silmeyin.
Güvenli silme akışı
- Tombstone/delta delete varsa doğrulayın.
- Yoksa iki başarılı taramada eksik olmasını veya doğrudan kaynak lookup'ını kullanın.
- Objeyi önce
pending_delete/quarantinedolarak işaretleyin. - Retrieval'dan hemen çıkarıp saklama süresince geri alınabilir tutun.
- Türev chunk ve vektörleri aynı source ID ile bulun.
- Saklama kuralı sonunda hard delete uygulayın.
- Sayı ve hash reconciliation ile orphan kalmadığını doğrulayın.
Connector scope daraltılması ile kaynaktaki gerçek silmeyi audit kaydında ayırın.
Tam senkronizasyonda kaynak aniden boş dönerse “0 belge”yi başarı kabul edip mevcut indeksi silmeyin. Kimlik, rate limit, sayfalama ve kaynak sağlık kontrolü çözülene kadar son başarılı indeks korunmalıdır.
Adım 13 — Hata, retry ve karantina
| Hata | Davranış |
|---|---|
| 401/403 | Retry etme; credential/scope alarmı |
| 404 tek obje | Silme doğrulama akışına al |
| 429 | Retry-After, jitter ve sınırlı concurrency |
| 5xx/timeout | Sınırlı exponential backoff |
| Bozuk/şifreli dosya | Karantina + görünür neden |
| Parser hatası | Dosya bazında başarısız; tüm sync'i kaybetme |
| Embedding hatası | Kaynak kaydı koru, türev aşamayı retry et |
| Vektör yazma hatası | Checkpoint ilerletme |
| Şema değişikliği | Connector'ı durdur, mapping'i sürümle |
Poison document sürekli kuyruğu kilitlememelidir. Maksimum denemeden sonra karantinaya alın, veri sahibine görünür kılın ve diğer objelerin devam etmesine izin verin.
Adım 14 — Reconciliation
Periyodik olarak kaynak ve hedefi karşılaştırın:
| Metrik | Açıklama |
|---|---|
| Source discovered | Scope içinde görülen obje |
| Fetched | İçeriği alınan |
| Parsed | Başarıyla ayrıştırılan |
| Indexed | Retrieval'a açık |
| Quarantined | Manuel müdahale gereken |
| Pending delete | Silme doğrulaması bekleyen |
| Orphan chunk | Geçerli source kaydı olmayan türev |
| Stale revision | Kaynaktan eski indeks |
Toplam sayılar tek başına yetmez. Stabil örneklemde source ID, revision, hash, ACL ve retrieval sonucunu karşılaştırın.
Adım 15 — Tazelik ve SLO
“Sync çalışıyor” yerine ölçülebilir hedefler koyun:
Discovery lag = kaynak değişim zamanı → connector'ın görme zamanı
Processing lag = discovery → indeks hazır
Permission lag = ACL kaldırma → retrieval'dan çıkma
Deletion lag = kaynak silme → türev verinin kaldırılması
Örnek SLO:
- Değişikliklerin %95'i 45 dakika içinde aranabilir.
- Kritik erişim kaldırmalarının %99'u 10 dakika içinde uygulanır.
- Karantinadaki dosya 1 iş günü içinde sahiplenilir.
- Başarısız connector 15 dakika içinde alarm üretir.
Dashboard kaynak zamanı ile Knowentra synced_at zamanını ayrı göstermelidir.
Adım 16 — İzleme ve alarm
- Son başarılı sync ve checkpoint yaşı
- Sync süresi ve işlenen obje/byte
- Kaynak API hata ve rate-limit oranı
- Token expiry ve consent iptali
- Fetch/parse/embed/index başarı oranları
- Queue depth ve en yaşlı iş
- Karantina ve pending delete sayısı
- Source/index reconciliation farkı
- Retrieval'da stale revision oranı
- ACL/permission update gecikmesi
Alarmı yalnız “job failed” olayına bağlamayın. Job teknik olarak başarılı olup 10.000 belge yerine 12 belge almış olabilir; ani hacim düşüşü veya artışı da alarm üretmelidir.
Adım 17 — Değişiklik yönetimi
Şu değişiklikler yeni bir connector revision ve kontrollü doğrulama gerektirir:
- Root/site/klasör kapsamı
- Include/exclude filtresi
- Credential veya OAuth scope
- Kaynak API sürümü
- Parser veya OCR sürümü
- Chunk stratejisi
- Embedding modeli
- Hedef bilgi tabanı/Space
- ACL mapping
- Silme ve saklama kuralı
- Schedule veya concurrency
Değişikliği önce dry-run discovery ile değerlendirin: eklenecek, güncellenecek ve silinecek obje sayısını gösterin. Büyük silme planını çift onaya bağlayın.
Adım 18 — Credential rotasyonu
- Yeni credential'ı aynı dar scope ile oluşturun.
- Staging veya connection testinde tenant ve izinleri doğrulayın.
- Connector'ı kısa süre durdurun veya atomik referans değiştirin.
- Yeni credential ile küçük artımlı sync çalıştırın.
- Checkpoint ve kaynak kimliğinin değişmediğini doğrulayın.
- Eski token/secret'ı iptal edin.
- Audit ve runbook kaydını güncelleyin.
Rotasyon yeni connector oluşturmamalı veya tüm içeriği duplicate etmemelidir.
Adım 19 — Connector'ı kapatma
Connector silme ile içerik silme aynı karar değildir:
- Yeni sync işleri ve webhook subscription'larını durdurun.
- Aktif/queue işleri tamamlayın veya güvenli iptal edin.
- Son checkpoint ve reconciliation raporunu saklayın.
- İndeks içeriğinin korunacağı, arşivleneceği veya silineceğini veri sahibine onaylatın.
- Türev chunk, embedding ve dosyaları provenance ile bulun.
- Credential ve consent'i iptal edin.
- Kaynak tarafındaki app/webhook yetkilerini kaldırın.
- Saklama politikası sonunda veriyi silin ve kanıtlayın.
Operasyon runbook'u
Connector 401/403 veriyor
- Secret değerini loglamadan expiry/consent durumunu kontrol edin.
- Tenant, audience ve scope'un değişmediğini doğrulayın.
- Kaynak admininin servis hesabı veya uygulama iznini kaldırıp kaldırmadığını inceleyin.
- Credential'ı güvenli yöntemle yenileyin.
- Son başarılı checkpoint'ten artımlı devam edin; gereksiz full sync başlatmayın.
Belge güncellendi ama yanıtta eski
- Kaynak
updated_at/revisionile connector kaydını karşılaştırın. - Checkpoint'in değişikliği kapsayıp kapsamadığını kontrol edin.
- Fetch, parse, embed ve index aşamalarını ayrı inceleyin.
- Aktif index revision ve cache durumunu doğrulayın.
- Retrieval sonucundaki source revision'ı karşılaştırın.
Çok sayıda belge silinmek üzere
- Silme işini dondurun.
- Kaynak API health, pagination, credential ve filter revision'ını kontrol edin.
- Önceki discovery sayılarıyla farkı çıkarın.
- Örnek source ID'leri doğrudan kaynaktan sorgulayın.
- Gerçek kapsam daraltmasıysa veri sahibinden onay alın.
- Karantina sürecini kullanın; doğrudan hard delete yapmayın.
Kalite kontrol listesi
- Connector türü: sync, canlı erişim veya workflow operation olarak sınıflandı.
- İş, veri ve teknik sahipler belli.
- Kaynak kapsamı pozitif allowlist ile daraltıldı.
- Credential en az yetkili ve kişiden bağımsız where appropriate.
- İlk keşif raporu hacim, tür, ACL ve limitleri gösteriyor.
- Hedef departman, bilgi tabanı ve Space açık.
- Source ID, revision, hash ve provenance korunuyor.
- Full sync pilot ve kademeli yürütülüyor.
- Checkpoint yalnız başarılı türev yazımdan sonra ilerliyor.
- Parser, chunk ve embedding sürümleri izleniyor.
- ACL değişiklikleri içerik değişikliğinden bağımsız işleniyor.
- Rename, move, duplicate ve delete semantiği test edildi.
- Toplu silme karantina ve onay içeriyor.
- Hata sınıfına göre retry/karantina uygulanıyor.
- Reconciliation ve tazelik SLO'ları ölçülüyor.
- Hacim anomalisi ve checkpoint yaşı alarm üretiyor.
- Rotasyon duplicate veya full-sync kaybı oluşturmuyor.
- Kapatma planı credential ve türev veriyi kapsıyor.
Sonraki adımlar
- Mevcut katalog için Desteklenen Entegrasyonlar
- Bilgi işleme için RAG Sistemi
- Dosya yönetimi için Belge Yükleme
- Workflow operation'ları için Workflow Tasarım Rehberi
- Agent araçları için Araç Bağlama ve MCP
