Skip to content

Ajan Hook'ları ​

Yerel bir ajan, ne yaptığını NEXUS'a uygulamanın yerel hook uç noktalarına gönderim yaparak bildirir. Room yanındaki canlı etkinlik akışını dolduran şey bu gönderimlerdir; bir oturumun kendi işine dair anlatısının, NEXUS'un kendi başına ayrıştırdığı terminal çıktısının yanında durmasını sağlayan da budur.

Atıf — bir olayın hangi ajana ait olduğu — bu sayfadaki sözleşmenin tamamıdır.

Kısa özet ​

Atfı belirleyen şeyİstekle birlikte sunulan ajana özel kimlik bilgisi; başka hiçbir şey değil
İstek gövdesinden atıfKabul edilmez
Atıf yoksa varsayılan ajanYok — geri düşülecek bir yol bulunmaz
Kimlik bilgisi yok ya da yalnızca ortak başlatma kimlik bilgisi varReddedilir, 401
Gövde geçerli JSON ama bir JSON nesnesi değilReddedilir, 400
Sağlanmaİlgili ajanın oturumu başladığında otomatik olarak verilir

Ajanı kimlik bilgisi belirler ​

Her hook gönderimi, raporladığı ajana özel olarak verilmiş kimlik bilgisini sunmak zorundadır. Atıf yalnızca buna dayanır: NEXUS olayı, kimlik bilgisinin ait olduğu ajanın hesabına yazar ve istek gövdesindeki hiçbir şey başka bir ajanı adlandıramaz, geçersiz kılamaz veya ima edemez.

Bilinçli olarak ikinci bir yol yoktur. Hiç kimlik bilgisi sunmayan ya da yalnızca ortak başlatma kimlik bilgisini — tek tek ajanları değil, başlatmanın kendisini tanımlayan kimlik bilgisini — sunan bir istek reddedilir. Varsayılan bir ajana atfedilmez, en olası görünen ajana atfedilmez ve sonradan çözülmek üzere atıfsız bir olay olarak da kaydedilmez. Bir hook gönderimi ya hangi ajan adına konuştuğunun kanıtıyla gelir ya da hiç gelmez.

Ajana özel bir kimlik bilgisini herhangi bir bearer token gibi ele alın: yalnızca sahibinin erişebileceği izinlere sahip bir dosyada durmalıdır, hiçbir zaman bir ortam değişkeninde ve hiçbir zaman paylaşılan geçmişte değil. Onu bir commit'in dışında tutan adlandırma kuralı için bkz. Yollar ve Kimlik Bilgileri.

Reddetmeler ​

KoşulSonuç
Ajanın kendi kimlik bilgisini sunarKabul edilir ve o ajana atfedilir
Yalnızca ortak başlatma kimlik bilgisini sunar401 — reddedilir, hiçbir ajana atfedilmez
Hiç kimlik bilgisi sunmaz401 — reddedilir, hiçbir ajana atfedilmez
Gövde geçerli JSON ama bir JSON nesnesi değil — bir dizi, bir metin, bir sayı400 — reddedilir

Buradaki bir 401, geçici bir arıza değil bir yapılandırma gerçeğidir: aynı istek değiştirilmeden tekrarlandığında aynı biçimde başarısız olur. Yeniden deneme mantığı bunu döngüye sokmak yerine yüzeye çıkarmalıdır.

Her reddetme yerel olarak kaydedilir; böylece yanlış yapılandırılmış bir entegrasyon veriyi sessizce düşürmek yerine teşhis edilebilir olur. Akışta beklediğiniz bir etkinlik görünmüyorsa, önce onu düşüren reddetmeye bakın — doğru kimlik bilgisi olmadan gönderim yapan bir entegrasyon, dışarıdan tıpkı boşta duran bir ajan gibi görünür.

Kırıcı değişiklik: gövde temelli atıf kaldırıldı ​

Önceki sürümler istek gövdesinde taşınan bir ajan tanımlayıcısını kabul ediyor ve yalnızca ortak başlatma kimlik bilgisini sunan bir gönderimi de atfediyordu. Bu davranışların ikisi de kaldırıldı. Bunlardan birine dayanan bir entegrasyon artık 401 ile reddedilir ve etkinlik akışına hiçbir katkı yapmaz.

Kendi yazdığınız bir entegrasyonu taşımak için:

  1. Her istekte, gönderimin raporladığı ajana ait kimlik bilgisini sunun.
  2. Ajanı adlandıran alanı istek gövdesinden çıkarın. Artık bir ajan seçmez ve yerinde bırakılması isteği atıflı hale getirmez.
  3. Bir JSON nesnesi gönderin. Geçerli JSON olarak ayrıştırılan ama nesne olmayan bir gövde 400 ile reddedilir.
  4. 401 durumunu yeniden denenecek değil, raporlanacak bir hata olarak ele alın.

Mevcut ajanlar kendiliğinden yükselir ​

Bu değişiklikten önce oluşturulmuş ajanlar için elle onarım gerekmez. Ajana özel kimlik bilgisi, o ajanın oturumu bir sonraki başlayışında verilir ve gönderim o andan itibaren çalışır. Yeniden oluşturulacak, yeniden sağlanacak veya yeniden kaydedilecek bir şey ve elle düzenlenecek bir yapılandırma dosyası yoktur.

Sırada ne var ​

  • Yollar ve Kimlik Bilgileri — yerel kimlik bilgisi dosyalarının nasıl adlandırıldığı, nerede durduğu ve bir anahtarın neden hiçbir zaman ortamda taşınmadığı.
  • Çalıştırma ve İzleme — çalışan bir ajanın bildirdiği canlı durum sözlüğü ve NEXUS'un çıkarım yapmayı reddettiği şeyler.
  • Room — hook olaylarının canlı bir akış olarak göründüğü yer.

Built with purpose.