ErtisAuth

Olaylar

Bir membership'in olay kaydı.

ErtisAuth, bir membership'te olan çoğu şey için bir olay kaydeder: girişler, token yenilemeleri, kullanıcı değişiklikleri, rol değişiklikleri, gönderilen webhook'lar ve mail'ler… Olayların üç amacı vardır:

Olay nesnesi#

json
{
	"_id": "66f1c0d2a4b5c6d7e8f90190",
	"event_type": "UserUpdated",
	"utilizer_id": "66f1c0d2a4b5c6d7e8f90124",
	"document": {
		"_id": "66f1c0d2a4b5c6d7e8f90127",
		"username": "ada",
		"lastname": "King",
		"…": "…"
	},
	"prior": {
		"_id": "66f1c0d2a4b5c6d7e8f90127",
		"username": "ada",
		"lastname": "Lovelace",
		"…": "…"
	},
	"event_time": "2026-01-05T09:12:44Z",
	"membership_id": "66f1c0d2a4b5c6d7e8f90123"
}
AlanAçıklama
event_typeNe olduğu (aşağıdaki listeye bakın).
utilizer_idOlaya yol açan kullanıcının ya da uygulamanın id'si ya da system.
documentKaynağın değişiklikten sonraki hali. Silmelerde boştur.
priorKaynağın değişiklikten önceki hali; güncellemeler ve silmeler için.
event_timeNe zaman olduğu, UTC olarak.

Parola hash'leri ve uygulama secret'ları hiçbir zaman olayların parçası değildir.

Olay tipleri#

Token'lar#

Olaydocument
TokenGenerateduser ve yeni token'ın meta verileriyle token: token_type, expires_in, refresh_token_expires_in, created_at
TokenRefresheduser ve yukarıdaki gibi yeni token'ın meta verileriyle token. Yenileme ayrıca bir TokenGenerated olayı da kaydeder.
TokenVerifiedtoken_type ve Bearer token'lar için is_refresh_token ve expires_at (Basic token'lar için application_id) içeren token
TokenRevokedİptal edilen access token'ın token_type ve expire_time alanlarını içeren token. İptal edilen her token çifti için bir olay.

Token olayları hiçbir zaman token'ların kendisini içermez; bu yüzden olay kaydı ve webhook alıcıları bir kullanıcı adına işlem yapmak için kullanılamaz.

Kullanıcılar ve kullanıcı tipleri#

OlayNe zaman
UserCreatedBir kullanıcı oluşturuldu (sağlayıcıyla kayıt dahil)
UserUpdatedBir kullanıcı güncellendi, etkinleştirildi ya da donduruldu
UserDeletedBir kullanıcı silindi
UserPasswordChangedBir parola değiştirildi ya da sıfırlama token'ıyla belirlendi
UserPasswordResetBir parola sıfırlama istendi
UserTypeCreated, UserTypeUpdated, UserTypeDeletedBir kullanıcı tipi değişti

Diğer kaynaklar#

Olaylar
ApplicationCreated, ApplicationUpdated, ApplicationDeleted
RoleCreated, RoleUpdated, RoleDeleted
ProviderCreated, ProviderUpdated, ProviderDeleted
WebhookCreated, WebhookUpdated, WebhookDeleted
MailhookCreated, MailhookUpdated, MailhookDeleted
TokenCodePolicyCreated, TokenCodePolicyUpdated, TokenCodePolicyDeleted

Cihaz kodu akışı#

Olaydocument
TokenCodeApproveduser (onaylayan) ve user_code, client_info (cihaz) ve created_at içeren code
TokenCodeDeniedreddedilen bir kod için aynısı

Cihaz kodu hiçbir zaman bu olayların parçası değildir. Bkz. Cihaz Kodu Akışı.

Hook sonuçları#

Olaydocument
WebhookRequestSentBaşarılı bir webhook çağrısının sonucu: istek, yanıt durumu ve gövdesi, deneme numarası
WebhookRequestFailedBaşarısız bir deneme için aynısı, hatayla birlikte
MailhookMailSentAlıcılar
MailhookMailFailedAlıcılar ve hata
Not: bir webhook ya da mail hook'u kendi sonuç olayları (WebhookRequestSent, WebhookRequestFailed, MailhookMailSent, MailhookMailFailed) üzerine kurmayın: her çağrı bir sonrakini tetikler.

Endpoint'ler#

Tüm route'lar /memberships/{membershipId} altındadır.

MetotRouteAçıklamaYetki
GET/events/{id}Olay getirmeevents.read.{id}
GET/eventsOlayları listelemeevents.read
POST/events/_queryOlayları sorgulamaevents.read

Olaylar salt okunurdur.

Örnekler#

Bir kullanıcının son girişleri:

shell
curl -X POST 'https://auth.example.com/memberships/<membership_id>/events/_query?limit=20&sort=event_time%20desc' \
	-H 'Authorization: Bearer <access_token>' \
	-H 'Content-Type: application/json' \
	-d '{
		"where": {
			"event_type": "TokenGenerated",
			"utilizer_id": "66f1c0d2a4b5c6d7e8f90127"
		}
	}'

Bu ay rolleri kimin değiştirdiği:

json
{
	"where": {
		"event_type": { "$in": [ "RoleCreated", "RoleUpdated", "RoleDeleted" ] },
		"event_time": { "$gte": "2026-01-01T00:00:00Z" }
	},
	"select": { "event_type": 1, "utilizer_id": 1, "event_time": 1, "document.slug": 1 }
}

Başarısız webhook çağrıları:

json
{ "where": { "event_type": "WebhookRequestFailed" } }
Not: olaylar kişisel veri (kullanıcı dokümanları) içerir. events.read yetkisini yalnızca denetim kaydına ihtiyacı olanlara verin ve events koleksiyonu için bir saklama politikası planlayın.

Dokümantasyonda bir hata mı buldunuz? Issue açın