Documentation
¶
Overview ¶
Package events, bastion içinde olup biteni canlı izlemek isteyen abonelere dağıtır.
KAPSAM: yalnızca BU süreçte olan olaylar. CLI'dan yapılan yönetim işlemleri başka bir süreçte çalışıyor ve buradan geçmiyor — onların yeri admin_log tablosu. Panel ikisini birden gösteriyor ve hangisinin nereden geldiğini söylüyor; "canlı akış her şeyi gösteriyor" sanmak, göstermediğini fark etmemek demek olurdu.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Bus ¶
type Bus struct {
// contains filtered or unexported fields
}
Bus, abonelere dağıtan veriyolu.
func (*Bus) Publish ¶
Publish, olayı bütün abonelere dağıtır.
⚠️ ASLA BLOKLAMAZ. Çağıranlar bir SSH oturumunun açılış/kapanış yolunda: burada beklemek, tarayıcısını açık unutmuş bir yöneticinin yavaş bağlantısının bir SSH oturumunu kilitlemesi demek olurdu. İzleme aracı, izlediği şeyi durduramaz. Tamponu dolmuş aboneye olay DÜŞÜRÜLÜR ve sayaç artar; abone bunu panelde görür.
type Event ¶
type Event struct {
At time.Time `json:"at"`
Kind Kind `json:"kind"`
User string `json:"user,omitempty"`
Target string `json:"target,omitempty"`
Source string `json:"source,omitempty"` // istemcinin adresi
Detail string `json:"detail,omitempty"`
}
Event, tek bir olay.
⚠️ İÇİNDE SIR YOK ve olmamalı: bu yapı doğrudan tarayıcıya JSON olarak akıyor. Sertifika, token, parola ya da doğrulama kodu buraya konursa panelde oturum açmış her yöneticinin ekranına düşer.