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.