---
title: gRPC
description: The grpc section — gRPC and gRPC-Web proxying, reflection, deadline propagation, and explicit service-to-upstream mapping.
---

# gRPC

The `grpc` section configures gRPC proxying. For the protocol model, see the
[Protocols](/docs/octopus/protocols) section.

<Callout type="warn">
  These keys are currently **display-only**. The live gRPC handler is constructed with built-in
  defaults (`GrpcHandler::new()`) and does not read this block — `from_config` is never called — so
  `enabled`, `max_message_size`, `enable_reflection`, `enable_grpc_web`, `deadline_propagation`, and
  `services` are parsed and surfaced by the [admin API](/docs/octopus/observability/admin-api) but do **not**
  yet affect proxying. gRPC requests are proxied transparently over HTTP/2 (h2c) regardless. See
  [Protocols → gRPC](/docs/octopus/protocols/grpc).
</Callout>

```yaml
grpc:
  enabled: true
  max_message_size: 4194304
  enable_reflection: false
  enable_grpc_web: false
  deadline_propagation: true
  services:
    "users.UserService": user-service
    "orders.OrderService": order-service
```

## `grpc`

| Key | Type | Default | Description |
| --- | --- | --- | --- |
| `enabled` | boolean | `true` | Enable gRPC proxying. |
| `max_message_size` | integer (bytes) | `4194304` (4 MiB) | Maximum gRPC message size. |
| `enable_reflection` | boolean | `false` | Enable the gRPC reflection proxy. |
| `enable_grpc_web` | boolean | `false` | Enable gRPC-Web support (HTTP/1.1 compatible). |
| `deadline_propagation` | boolean | `true` | Propagate gRPC deadlines to upstreams. |
| `services` | map of string→string | `{}` | Explicit mapping from fully qualified gRPC service name to upstream name. |

<Callout type="info">
  `services` keys are fully qualified service names such as `users.UserService`; values are
  [upstream](/docs/octopus/configuration/upstreams) names.
</Callout>
