Visszahívások
Aláírt, idempotens kiszolgálók közötti események és befejezett aszinkron eredmények fogadása.
Visszahívások
Konfiguráljon egy visszahívási URL-t Profil → Visszahívások és aszinkron eredmények. A Model Gate HTTPS-t küld POST az engedélyezett fiókértesítésekre vonatkozó kérések és a befejezett natív aszinkron-következtetési kérések. A visszahívási kézbesítés független a következtetések feldolgozásától, és egy dedikált tartós Model Gate dolgozói soron keresztül fut.
Visszahívási URL és kimenő biztonság
Használjon nyilvánosan elérhető HTTPS-végpontot. A visszahívási URL-ellenőrzés egy kimenő biztonsági határ. Loopback, privát, link-local, szolgáltatói szintű NAT, dokumentáció/teszt, csoportos küldés, nem meghatározott és fenntartott IP-tartományok elutasítva. A gazdagépnév érvényesítésre kerül a mentéskor és a kézbesítés során; az átirányítások újra érvényesülnek. Ne irányítsa a visszahívásokat a belső szolgáltatásokra vagy a magánhálózatokba való átirányítást.
Közös rendezvényboríték
Minden visszahívás ugyanazt a borítékot használja:
{
"event_id": "01J...",
"event": "account.balance_low",
"occurred_at": "2026-08-28T07:00:00Z",
"data": {}
}
event_id egy logikai esemény minden újrapróbálkozásánál stabil. Szállítások ismétlődésének megszüntetése event_id; ne következtessen az azonosságra a hasznos teher többi részének összehasonlításával. occurred_at UTC RFC3339. A hasznos terhek idővel további mezőket kaphatnak, ezért a fogyasztóknak figyelmen kívül kell hagyniuk az ismeretlen mezőket.
Minden szállítás ugyanazt az eseményazonosítót is tartalmazza X-Model-Gate-Event-ID.
Rendezvény katalógus
account.balance_low
{
"event_id": "01J...",
"event": "account.balance_low",
"occurred_at": "2026-08-28T07:00:00Z",
"data": {
"balance": "10.1234567890",
"threshold": "20.0000000000",
"currency": "USD"
}
}
key.spend_limit_threshold_reached
{
"event_id": "01J...",
"event": "key.spend_limit_threshold_reached",
"occurred_at": "2026-08-28T07:00:00Z",
"data": {
"key_id": "KEY_PUBLIC_ID",
"key_name": "Bank integration",
"usage": "80.1234567890",
"spend_limit": "100.0000000000",
"threshold_percent": 80,
"currency": "USD"
}
}
group.spend_limit_threshold_reached
A hasznos teher használ group_id, group_name, pontos-tizedes usage, pontos-tizedes spend_limit, egész szám threshold_percent, és currency = "USD".
request.completed
{
"event_id": "01J...",
"event": "request.completed",
"occurred_at": "2026-08-28T07:00:00.123456Z",
"data": {
"request_id": "01J...",
"status": "completed",
"response_status": 200,
"response": {"id":"msg_...","type":"message"}
}
}
response_status érvénytelen, ha nem létezik upstream HTTP állapot. A sikertelen/megszakított/lejárt aszinkron eredmények között szerepelhet data.error.
A visszahívási hasznos adatok pénzügyi értékei pontos decimális karakterláncok; ezek nem UI-kerekített megjelenítési értékek.
A küszöbérték riasztások újraélesítésre kerülnek, miután a figyelt érték elhagyja a küszöbértéket. A küszöbérték dolgozó körülbelül percenként egyszer értékeli ki a feltételeket, a következtetési forró útvonalon kívül, így a küszöbérték visszahívásai nem valós idejű ezredmásodperces átlépési jelek.
Kérelem formátuma
POST /model-gate/callback HTTP/1.1
Content-Type: application/json
X-Model-Gate-Event-ID: 01J...
X-Model-Gate-Signature: t=1710000000,v1=hex_hmac_sha256
Aláírás ellenőrzése
Számítsa ki a HMAC-SHA256-ot a pontos karakterlánc alapján <timestamp>.<raw_body> a Profilban generált visszahívási titok használatával. A teljes titok csak generálva vagy elforgatva jelenik meg, és nyugalmi állapotban titkosítva tárolódik. Hasonlítsa össze a hexadecimális aláírást állandó időben, és utasítsa el az időbélyegeket az elfogadott visszajátszási ablakon kívül. A HMAC időbélyeg egy kézbesítési kísérletre vonatkozik; a event_id stabil marad az újrapróbálkozások során.
Kézbesítés, válaszadás és újrapróbálkozás
Bármilyen HTTP 2xx válasz elfogadja az eseményt. HTTP 200 üres testtel ajánlott. A szállítási hibák, az időtúllépések és minden nem 2xx válasz hiba.
Minden eseménynek legfeljebb Összesen 6 próbálkozás: a kezdeti kísérlet plusz öt újrapróbálkozás. Az 1–5. sikertelen kísérletek következnek 5 másodperc, 30 másodperc, 2 perc, 10 perc és 1 óra. Minden próbálkozásnak megvan a maga nehézsége 15 másodperc általános időtúllépés. A hatodik sikertelen kísérlet után az esemény terminál lesz failed és nincs további automatikus újrapróbálkozás. Az elavult munkavállalói igények automatikusan visszakerülnek a tartós sorba.
Válaszadás előtt ne végezzen hosszan tartó munkát. Ellenőrizd az aláírást, megőrizd/deuplikáld event_id, vissza 2xx, és aszinkron módon dolgozza fel.