feat(service): P5.3 inbound adapter pipeline (ACK-fast webhook + RawEventProjector) + traceId

POST /v1/adapters/:type/webhook verifies HMAC (fail-closed) -> stores raw ->
emits raw.received -> 202. RawEventProjector consumes it off the relay, normalizes
via the adapter, reuses IngestService (traceId threaded raw->interaction).
Deduped on (channelType, externalEventId). rawBody enabled. 48 tests.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-07-01 13:44:23 +05:30
parent b4a1832a5c
commit 29b64c3c4e
12 changed files with 320 additions and 1 deletions
@@ -163,6 +163,7 @@ export class IngestService {
externalId: req.providerEventId,
occurredAt: new Date(req.occurredAt),
status: 'NORMALIZED',
traceId: req.traceId,
policyDecisionRef: decision.decisionRef,
metadata: (req.metadata ?? undefined) as Prisma.InputJsonValue | undefined,
},