تخطَّ إلى المحتوى

Webhook الواردة

Endpoints that receive events from external tools (monitoring, CI/CD, SIEM/EDR, ITSM bridges, SNMP gateways) and turn them into tickets or updates. Requests are authenticated with an HMAC signature computed with the connector’s secret.

استقبال حدث من أداة مراقبة أو DevOps أو أمن

Section titled “استقبال حدث من أداة مراقبة أو DevOps أو أمن”

POST /api/connectors/{vendor}/{project}

Point your tool’s webhook at this URL. project is the exoCortex tenant/project the connector was configured for in Core → Integrations. The payload is the vendor’s native webhook format and exoCortex normalizes it.

Authentication depends on the vendor:

  • Vendors with native signing are verified with their own scheme: GitHub X-Hub-Signature-256, GitLab X-Gitlab-Token, PagerDuty X-PagerDuty-Signature, Opsgenie Authorization: GenieKey, Statuspage.
  • All other vendors use the exoCortex scheme: X-Exo-Timestamp + X-Exo-Signature: v1=HMAC-SHA256(secret, "<timestamp>.<raw body>"), with a 300-second tolerance. See Webhook signatures. The legacy X-NH-Connector-Signature (hex HMAC of the body, no timestamp) is deprecated.

المصادقة: لا يوجد: تتم مصادقة الطلب بالتوقيع الموضح أعلاه.

الاسم الموضع النوع إلزامي الوصف
vendor المسار string (datadog, newrelic, prometheus, grafana, github, gitlab, jenkins, bitbucket, nagios, icinga, centreon, statuspage, pagerduty, opsgenie, wazuh, sentinel, tenable, qualys, splunk, elastic, crowdstrike, sentinelone, qradar, cyberprotect, edr_network, fortigate, checkpoint, ninjaone) نعم
project المسار string نعم
X-Exo-Timestamp ترويسة string لا Unix time in seconds when the request was signed. Required when X-Exo-Signature is sent.
X-Exo-Signature ترويسة string لا v1= + hex HMAC-SHA256(secret, “<X-Exo-Timestamp>.<raw body>”). Several comma-separated values are allowed.
X-NH-Connector-Signature ترويسة string لا مُهمل Legacy signature, the hex HMAC-SHA256 of the raw body. Sunset 2027-06-30.

application/json

{
"title": "[Triggered] CPU usage above 90% on web-01",
"alert_type": "error",
"priority": "P2",
"host": "web-01",
"tags": [
"env:prod",
"team:payments"
]
}
الحالة الوصف
200 Event processed.
400 Invalid request.
401 Not authenticated.
403 Signature invalid, expired or missing.
404 Resource not found or not configured.
503 The connector’s circuit breaker is open after repeated failures. Retry later.

مثال 200

{
"ok": true,
"normalized": {
"severity": "high",
"title": "[Triggered] CPU usage above 90% on web-01",
"source": "datadog"
},
"ticket_created": "ACME-1044"
}
نافذة طرفيّة
curl -X POST "https://exocortex-api.ai-exo-cortex.com/api/connectors/<vendor>/ACME" \
-H "X-Exo-Timestamp: $TS" \
-H "X-Exo-Signature: v1=$SIGNATURE" \
-H "Content-Type: application/json" \
--data '{"title":"[Triggered] CPU usage above 90% on web-01","alert_type":"error","priority":"P2","host":"web-01","tags":["env:prod","team:payments"]}'

استقبال حدث لتكامل أو جسر ITSM

Section titled “استقبال حدث لتكامل أو جسر ITSM”

POST /api/integration/webhook/{integration_id}

Generic inbound endpoint for integrations configured in Core → Integration Center (for example ServiceNow, Jira, Zendesk, BMC or a generic REST source). The payload is mapped with the integration’s field mapping.

Signature: X-Exo-Timestamp + X-Exo-Signature (recommended). Otherwise one of X-Bridge-Signature, X-Hub-Signature-256 or X-Signature carrying sha256=<hex HMAC of the raw body>. A signature is mandatory when the integration has a webhook secret, and integrations in webhook mode must have one.

المصادقة: لا يوجد: تتم مصادقة الطلب بالتوقيع الموضح أعلاه.

الاسم الموضع النوع إلزامي الوصف
integration_id المسار string نعم
X-Exo-Timestamp ترويسة string لا Unix time in seconds when the request was signed. Required when X-Exo-Signature is sent.
X-Exo-Signature ترويسة string لا v1= + hex HMAC-SHA256(secret, “<X-Exo-Timestamp>.<raw body>”). Several comma-separated values are allowed.

application/json

{
"sys_id": "6f1d2c3b4a5e",
"number": "INC0012345",
"short_description": "Email delivery delayed",
"state": "2",
"priority": "3"
}
الحالة الوصف
200 Event processed.
202 Event queued for durable processing.
400 Invalid request.
401 Signature missing or invalid.
404 Resource not found or not configured.
500 Unexpected server error.
503 Circuit breaker open for this integration.

مثال 200

{
"ok": true,
"accepted": true,
"ticket_key": "ACME-1045",
"action": "created"
}
نافذة طرفيّة
curl -X POST "https://exocortex-api.ai-exo-cortex.com/api/integration/webhook/servicenow_acme" \
-H "X-Exo-Timestamp: $TS" \
-H "X-Exo-Signature: v1=$SIGNATURE" \
-H "Content-Type: application/json" \
--data '{"sys_id":"6f1d2c3b4a5e","number":"INC0012345","short_description":"Email delivery delayed","state":"2","priority":"3"}'

POST /api/snmp-gateway/trap/{tenant}

Your SNMP-to-HTTP gateway converts traps to JSON and posts them here. Authentication: X-NH-SNMP-Timestamp (Unix time in milliseconds) and X-NH-SNMP-Signature: sha256=<hex HMAC-SHA256(secret, "<timestamp>|<raw body>")>, with a 5-minute tolerance. The secret is set in Core → Integrations → SNMP gateway.

المصادقة: لا يوجد: تتم مصادقة الطلب بالتوقيع الموضح أعلاه.

الاسم الموضع النوع إلزامي الوصف
tenant المسار string نعم Tenant code (case-insensitive).
X-NH-SNMP-Timestamp ترويسة string نعم
X-NH-SNMP-Signature ترويسة string نعم

application/json

الاسم النوع إلزامي الوصف
source_ip string لا
source_sysname string لا
trap_oid string نعم
severity string (critical, major, minor, warning, info) لا
varbinds object لا
{
"source_ip": "192.0.2.10",
"source_sysname": "core-sw-01",
"trap_oid": "1.3.6.1.6.3.1.1.5.3",
"severity": "major",
"varbinds": {
"1.3.6.1.2.1.2.2.1.1": "12",
"1.3.6.1.2.1.2.2.1.2": "GigabitEthernet1/0/12"
}
}
الحالة الوصف
200 Trap ingested.
400 Invalid request.
401 Not authenticated.
404 Resource not found or not configured.
500 Unexpected server error.

مثال 200

{
"ok": true,
"ticket_key": "ACME-1046",
"ingestion_id": "ing_c1a2b3d4",
"action": "created"
}
نافذة طرفيّة
curl -X POST "https://exocortex-api.ai-exo-cortex.com/api/snmp-gateway/trap/ACME" \
-H "Content-Type: application/json" \
--data '{"source_ip":"192.0.2.10","source_sysname":"core-sw-01","trap_oid":"1.3.6.1.6.3.1.1.5.3","severity":"major","varbinds":{"1.3.6.1.2.1.2.2.1.1":"12","1.3.6.1.2.1.2.2.1.2":"GigabitEthernet1/0/12"}}'

صفحة مُنشأة من مواصفة OpenAPI لواجهة التكامل، الإصدار 1.1.0.