Перейти к основному содержимому

ADR-0034: API Middleware, Filters И Context Propagation

Статус

Принято.

Контекст

Все backend services должны одинаково обрабатывать validation, authorization failures, business errors, unexpected exceptions, request logging, RED metrics, tracing и propagation tenant/brand/actor/correlation context. Без общего стандарта сервисы будут расходиться в error shape, observability и безопасности tenant isolation.

Решение

Pin.Kernel.AspNetCore предоставляет единый middleware/filter pipeline. Pin.Kernel.Messaging переносит execution context в MassTransit headers и Kafka envelope. Сервисы подключают pipeline через BaseWebStartup и не меняют middleware order без ADR.

Последствия

  • Error responses имеют единый problem response contract.
  • CorrelationId, RequestId, TraceId, tenant/brand и actor context попадают в logs, traces, audit, events и consumers.
  • RED metrics собираются централизованно с bounded labels.
  • Public clients не могут подменять tenant/user/user/partner scope через headers/body.