# grpcserver

`grpcserver` содержит общий серверный gRPC runtime для внутренних Go-сервисов `kodex`.

В модуль входит только инфраструктурная граница:
- сборка `grpc.Server` из типизированной конфигурации;
- recovery;
- проверка вызывающей стороны через расширяемый `Authenticator`;
- shared-token authenticator для внутреннего service-to-service контура;
- лимит активных unary RPC;
- deadline для unary RPC;
- keepalive, `MaxConcurrentStreams` и лимиты размера сообщений;
- базовые Prometheus-метрики unary RPC;
- OpenTelemetry `StatsHandler` для входящих RPC;
- W3C-проброс `tracecontext+baggage`;
- резервная лог-корреляция из активного OpenTelemetry span, если вызывающая сторона не передала legacy `x-kodex-trace-id`;
- общий boundary-interceptor для маппинга доменных sentinel-ошибок в transport-safe gRPC statuses через `DomainErrorRule`;
- helper `HandleUnary` для одинакового пути `proto request -> domain input -> domain result -> proto response`;
- нормализация общих actor/request-context protobuf-полей перед service-specific casting.

В модуль не входят доменные handlers и сами правила доступа. Сервис сам объявляет свои `DomainErrorRule`, action/resource policy и cast `proto <-> domain`, а `grpcserver` только исполняет общий транспортный шаблон.
