From 0269542ebeb561c53c6b753026aa3e5766691ec3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=90=D0=BB=D0=B5=D0=BA=D1=81=D0=B0=D0=BD=D0=B4=D1=80=20?= =?UTF-8?q?=D0=97=D0=B8=D0=BC=D0=B8=D0=BD?= Date: Fri, 15 May 2026 15:24:12 +0000 Subject: [PATCH] fix(webhook): User-Agent 'ordinis-alerts' (matches Webhook Bot subscription) --- .../ordinis/outbox/webhook/WebhookDispatcher.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/ordinis-outbox/src/main/java/cloud/nstart/terravault/ordinis/outbox/webhook/WebhookDispatcher.java b/ordinis-outbox/src/main/java/cloud/nstart/terravault/ordinis/outbox/webhook/WebhookDispatcher.java index fd6428b..e6bd265 100644 --- a/ordinis-outbox/src/main/java/cloud/nstart/terravault/ordinis/outbox/webhook/WebhookDispatcher.java +++ b/ordinis-outbox/src/main/java/cloud/nstart/terravault/ordinis/outbox/webhook/WebhookDispatcher.java @@ -226,7 +226,16 @@ public class WebhookDispatcher { .uri(URI.create(sub.getUrl())) .timeout(Duration.ofMillis(sendTimeoutMs)) .header("Content-Type", "application/json") - .header("User-Agent", "Ordinis-Webhook/1.0") + // Webhook Bot identifies sender by User-Agent (see incoming subscription + // allowlist). Value 'ordinis-alerts' matches subscription name на стороне + // chat.nstart.cloud — пишется literally without version suffix. + // + // NB: для override этого header'а нужен JVM flag + // `-Djdk.httpclient.allowRestrictedHeaders=user-agent` (см. ordinis-infra + // values.yaml / writer.yaml args). Без flag Java HttpClient silently drops + // user-set User-Agent → receiver видит Java-http-client/ + // → Webhook Bot не находит subscription → 'неизвестный webhook'. + .header("User-Agent", "ordinis-alerts") .header(HmacSigner.HEADER_NAME, signature) .header("X-Ordinis-Event-Id", String.valueOf(event.getId())) .header("X-Ordinis-Event-Type", event.getEventType())