Webhook Abonelikleri API
Webhook yönetim endpointleri API key ile değil, authenticated admin session JWT
ile çalışır. Guard zinciri JwtAuthGuard + RolesGuard + settings permission
şeklindedir; role ADMIN değilse işlem 403 döner.
Receiver tarafındaki HMAC, retry ve idempotency ayrıntıları için Webhook Akışı sayfasını kullanın. İmza doğrulaması her zaman raw request body üzerinden yapılır; parse edilmiş JSON’u yeniden stringify etmek imzayı geçersiz kılar.
| Alan | Değer |
|---|---|
| Auth | Bearer JWT session |
| Role | ADMIN |
| Permission | settings:read veya settings:write |
| Plan | Webhooks entitlement açık olmalı |
Endpoints
| Method | Path | Body |
|---|---|---|
GET | /api/v1/webhooks | Yok |
POST | /api/v1/webhooks | url, events, description?, includeChildOrgEvents? |
GET | /api/v1/webhooks/:id | Yok |
PUT | /api/v1/webhooks/:id | Partial update DTO |
DELETE | /api/v1/webhooks/:id | Yok |
POST | /api/v1/webhooks/:id/test | Yok |
POST | /api/v1/webhooks/:id/rotate-secret | Yok |
GET | /api/v1/webhooks/:id/deliveries | page, limit query |
Create Body
{
"url": "https://example.com/mevzuatradar/webhook",
"events": ["NEW_REGULATION"],
"description": "GRC production receiver",
"includeChildOrgEvents": false
}Event Kataloğu
Event değerleri shared WebhookEventType sözleşmesinden gelir. Receiver
tarafında bilinmeyen event sessizce kabul edilmez; önce durable kuyruğa alınır
ve desteklenen event kataloğuna göre işlenir.
| Event | Açıklama |
|---|---|
NEW_REGULATION | Yeni mevzuat veya resmi kaynak dokümanı bulundu |
REGULATION_UPDATED | Mevzuat kaydında doğrulanmış güncelleme oluştu |
ACTION_DEADLINE_APPROACHING | Aksiyon son tarihi yaklaşıyor |
IMPACT_ASSESSMENT_CREATED | Etki analizi üretildi |
QUALITY_SLA_BREACH | Kalite SLA ihlali oluştu |
VERIFICATION_COMPLETED | Doğrulama koşusu tamamlandı |
VERIFICATION_REVIEW_REQUIRED | Doğrulama manuel inceleme gerektiriyor |
BOARD_REPORT_READY | Yönetim kurulu raporu hazır |
EVIDENCE_PACK_READY | Kanıt paketi hazır |
ARTICLE_DIFF_CREATED | Madde farkı oluşturuldu |
Yanıt
Controller yanıtları API envelope ile sarılır. POST /api/v1/webhooks ve
POST /api/v1/webhooks/:id/rotate-secret sadece ilk gösterimde secret bilgisini
revealed-once mantığıyla döndürür; secret repository veya ticket içine
yazılmamalıdır.
Hata Kodları
| Status | Anlam |
|---|---|
400 | Geçersiz URL, event veya payload |
401 | JWT eksik/geçersiz |
403 | ADMIN rolü, settings permission veya entitlement yok |
404 | Webhook bulunamadı veya tenant kapsamı dışında |
429 | Rate limit aşıldı |
Örnekler
curl -s -X POST "https://api.mevzuatradar.com/api/v1/webhooks" \
-H "authorization: Bearer $MEVZUATRADAR_JWT" \
-H "content-type: application/json" \
-d '{"url":"https://example.com/mevzuatradar/webhook","events":["NEW_REGULATION"],"includeChildOrgEvents":false}'