Tilbagekald
Modtag signerede, idempotente server-til-server-hændelser og afsluttede async-resultater.
Tilbagekald
Konfigurer en tilbagekalds-URL i Profil → Tilbagekald og asynkroniserede resultater. Model Gate sender HTTPS POST anmodninger om aktiverede kontomeddelelser og gennemførte anmodninger om indbygget async-slutning. Tilbagekaldslevering er uafhængig af inferensbehandling og kører gennem en dedikeret holdbar Model Gate-arbejderkø.
Callback URL og udgående sikkerhed
Brug et offentligt tilgængeligt HTTPS-slutpunkt. Validering af tilbagekalds-URL er en udgående sikkerhedsgrænse. Loopback, private, link-local, carrier-grade NAT, dokumentation/test, multicast, uspecificerede og reserverede IP-intervaller afvises. Værtsnavnet valideres, når det gemmes og igen under levering; omdirigeringer genvalideres. Ret ikke tilbagekald på interne tjenester eller omdirigeringer til private netværk.
Fælles arrangementskonvolut
Hvert tilbagekald bruger den samme konvolut:
{
"event_id": "01J...",
"event": "account.balance_low",
"occurred_at": "2026-08-28T07:00:00Z",
"data": {}
}
event_id er stabil for hvert genforsøg af en logisk hændelse. Deduplikatleverancer pr event_id; udled ikke identitet ved at sammenligne resten af nyttelasten. occurred_at er UTC RFC3339. Nyttelaster kan få yderligere felter over tid, så forbrugerne skal ignorere ukendte felter.
Hver levering inkluderer også det samme begivenheds-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 bruger group_id, group_name, nøjagtig decimal usage, nøjagtig decimal spend_limit, heltal 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 der ikke eksisterer nogen upstream HTTP-status. Mislykkede/annullerede/udløbne async-resultater kan omfatte data.error.
Finansielle værdier i tilbagekaldsnyttelast er nøjagtige decimalstrenge; de er ikke UI-afrundede visningsværdier.
Tærskelalarmer aktiveres igen, efter at den overvågede værdi forlader sin tærskeltilstand. Tærskelarbejderen evaluerer betingelser ca. én gang i minuttet uden for inferens-hot-vejen, så tærskel-tilbagekald ikke er et realtids millisekund-krydsningssignal.
Anmodningsformat
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
Signaturbekræftelse
Beregn HMAC-SHA256 over den nøjagtige streng <timestamp>.<raw_body> ved hjælp af tilbagekaldshemmeligheden, der er genereret i Profil. Den fulde hemmelighed vises kun, når den genereres eller roteres og opbevares krypteret i hvile. Sammenlign den hexadecimale signatur i konstant tid og afvis tidsstempler uden for dit accepterede genafspilningsvindue. HMAC-tidsstemplet er specifikt for et leveringsforsøg; de event_id forbliver stabil på tværs af genforsøg.
Levering, svar og genforsøg
Enhver HTTP 2xx svar accepterer begivenheden. HTTP 200 med en tom krop anbefales. Transportfejl, timeouts og hvert ikke-2xx-svar er fejl.
Hvert arrangement har højst 6 forsøg i alt: det første forsøg plus fem genforsøg. Mislykkede forsøg 1–5 efterfølges af 5 sekunder, 30 sekunder, 2 minutter, 10 minutter og 1 time. Hvert forsøg har en hård 15 sekunder samlet timeout. Efter det sjette mislykkede forsøg bliver hændelsen terminal failed og der er ingen yderligere automatisk genforsøg. Forældede arbejdstagerkrav returneres automatisk til den varige kø.
Udfør ikke langvarigt arbejde, før du reagerer. Bekræft signaturen, persist/deduplicate by event_id, vende tilbage 2xx, og behandle asynkront.