Tilbakeringinger
Motta signerte, idempotente server-til-server-hendelser og fullførte asynkroniseringsresultater.
Tilbakeringinger
Konfigurer en tilbakeringings-URL i Profil → Tilbakeringinger og asynkroniserte resultater. Model Gate sender HTTPS POST forespørsler om aktiverte kontovarsler og fullførte forespørsler om native async inferens. Tilbakeringingslevering er uavhengig av slutningsbehandling og går gjennom en dedikert holdbar Model Gate-arbeiderkø.
Tilbakeringings-URL og utgående sikkerhet
Bruk et offentlig tilgjengelig HTTPS-endepunkt. Validering av tilbakeringings-URL er en utgående sikkerhetsgrense. Loopback, private, link-local, carrier-grade NAT, dokumentasjon/test, multicast, uspesifiserte og reserverte IP-områder avvises. Vertsnavnet valideres når det lagres og igjen under levering; omdirigeringer valideres på nytt. Ikke pek tilbakeringinger til interne tjenester eller omdirigeringer til private nettverk.
Felles arrangementskonvolutt
Hver tilbakeringing bruker samme konvolutt:
{
"event_id": "01J...",
"event": "account.balance_low",
"occurred_at": "2026-08-28T07:00:00Z",
"data": {}
}
event_id er stabil for hvert nytt forsøk på én logisk hendelse. Deduplikatleveranser innen event_id; ikke utlede identitet ved å sammenligne resten av nyttelasten. occurred_at er UTC RFC3339. Nyttelaster kan få flere felt over tid, så forbrukere må ignorere ukjente felt.
Hver levering inkluderer også samme hendelses-ID i X-Model-Gate-Event-ID.
Eventkatalog
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
Nyttelasten bruker group_id, group_name, eksakt desimal usage, eksakt desimal spend_limit, heltall threshold_percent, og 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 er null når ingen oppstrøms HTTP-status eksisterer. Mislykkede/kansellerte/utløpte asynkroniseringsresultater kan inkludere data.error.
Finansielle verdier i tilbakeringingsnyttelast er eksakte desimalstrenger; de er ikke UI-avrundede visningsverdier.
Terskelvarsler aktiveres på nytt etter at den overvåkede verdien forlater sin terskeltilstand. Terskelarbeideren evaluerer forholdene omtrent en gang per minutt, utenfor den varme slutningsveien, så terskeltilbakekallinger er ikke et sanntids millisekundskrysssignal.
Forespørselsformat
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
Signaturbekreftelse
Beregn HMAC-SHA256 over den nøyaktige strengen <timestamp>.<raw_body> ved å bruke tilbakeringingshemmeligheten generert i profil. Hele hemmeligheten vises bare når den genereres eller roteres og lagres kryptert i hvile. Sammenlign den heksadesimale signaturen i konstant tid og avvis tidsstempler utenfor ditt aksepterte gjenspillingsvindu. HMAC-tidsstemplet er spesifikt for et leveringsforsøk; de event_id forblir stabil på flere forsøk.
Levering, respons og gjenforsøk
Enhver HTTP 2xx svar godtar arrangementet. HTTP 200 med tom kropp anbefales. Transportfeil, tidsavbrudd og hver ikke-2xx-respons er feil.
Hvert arrangement har maksimalt 6 forsøk totalt: det første forsøket pluss fem nye forsøk. Mislykkede forsøk 1–5 etterfølges av 5 sekunder, 30 sekunder, 2 minutter, 10 minutter og 1 time. Hvert forsøk har en vanskelig 15 sekunder samlet timeout. Etter det sjette mislykkede forsøket blir hendelsen terminal failed og det er ingen flere automatiske gjenforsøk. Foreldede arbeiderkrav blir automatisk returnert til den varige køen.
Ikke utfør langvarig arbeid før du svarer. Bekreft signaturen, bestå/deduplisere ved event_id, returnere 2xx, og behandle asynkront.