Webhook'lar
Webhook'lar, harici sistemleri platform olaylarından gerçek zamanlı olarak haberdar etmek için kullanılır. Her olay, kayıtlı uç noktaya HTTP POST ile iletilir.
Gerçek Zamanlı Bildirimler
Credential düzenleme, bağlantı kurma ve ispat doğrulama gibi tüm önemli olaylar için webhook desteği mevcuttur. Payük (Payload) güvenliği HMAC imzası ile sağlanır.
Webhook Mimarisi
SSI Agent'tan gelen olaylar işlenir ve harici uç noktalara iletilir:
Desteklenen Olaylar
| Olay | Açıklama | Yük (Payload) |
|---|---|---|
connection.created | Yeni bağlantı | connection_id, state |
connection.active | Bağlantı aktif | connection_id |
credential.issued | Credential düzenlendi | credential_id, schema_id |
credential.received | Credential alındı | credential_id |
credential.revoked | Credential iptal edildi | credential_id |
proof.requested | İspat istendi | proof_id |
proof.verified | İspat doğrulandı | proof_id, verified |
Webhook Yapılandırması
Olay Yükü Yapısı
| Alan | Tür | Açıklama |
|---|---|---|
event_type | string | Olay türü |
timestamp | ISO8601 | Olay zamanı |
payload | object | Olay verisi |
signature | string | HMAC imzası |
📄 Örnek Webhook Yükü
credential.issued Olayı
{
"event_type": "credential.issued",
"timestamp": "2024-12-19T10:30:00Z",
"payload": {
"credential_id": "cred-abc-123",
"connection_id": "conn-xyz-789",
"schema_id": "diploma_schema:1.0",
"state": "issued",
"holder_label": "Holder Wallet"
},
"signature": "sha256=a1b2c3d4e5f6..."
}
İmza Doğrulama:
webhook-verify.js
const crypto = require('crypto');
const expectedSig = 'sha256=' + crypto
.createHmac('sha256', WEBHOOK_SECRET)
.update(JSON.stringify(body))
.digest('hex');
const isValid = expectedSig === request.headers['x-signature'];
Güvenlik
| Özellik | Açıklama |
|---|---|
| HMAC İmzası | Yük bütünlüğü doğrulama |
| HTTPS | TLS şifreli iletim |
| Yeniden Deneme | Başarısız teslimat tekrarı |
| IP Beyaz Listesi | Kaynak IP filtreleme |