Интеграции
Вебхуки
Получайте POST, когда аудит завершён, записан итог или найдена новая сущность. Подпись — обычная HMAC-SHA256.
Какие заголовки мы шлём
Content-Type: application/jsonX-Ideaudit-Event— одно изaudit.finalized,audit.outcome.recorded,entity.created.X-Ideaudit-Signature: sha256=<hex>— см. ниже.X-Ideaudit-Endpoint: <uuid>— идентификатор вашего адреса, чтобы приёмник с несколькими адресами понимал, куда это.
Проверка подписи (Node)
Подпись — это HMAC-SHA256(secret, raw_request_body) в hex с приставкой sha256=. Сверяйте её с сырыми байтами тела, а не с JSON, собранным заново.
ts
import { createHmac, timingSafeEqual } from 'node:crypto';
export function verify(secret: string, signatureHeader: string, rawBody: string): boolean {
const expected = 'sha256=' + createHmac('sha256', secret).update(rawBody).digest('hex');
const a = Buffer.from(signatureHeader);
const b = Buffer.from(expected);
if (a.length !== b.length) return false;
return timingSafeEqual(a, b);
}Проверка подписи (Python)
python
import hmac, hashlib
def verify(secret: str, signature_header: str, raw_body: bytes) -> bool:
expected = "sha256=" + hmac.new(
secret.encode(), raw_body, hashlib.sha256
).hexdigest()
return hmac.compare_digest(expected, signature_header)Тестовые события
Кнопка «Тест» в панели берёт последний завершённый аудит (или нулевой UUID, если аудитов ещё нет) и добавляет в тело isTest: true. Проверяйте это поле в приёмнике, чтобы не делать лишнего.
Автоотключение
После пяти подряд ответов не из семейства 2xx мы ставим active = false и помечаем адрес значком «Отключён автоматически». Почините приёмник и нажмите Включить снова в разделе Настройки → Вебхуки. Историю последних доставок — статус и тело ответа — видно в раскрывающейся панели у каждого адреса.