Decoding gRPC Messages using Envoy

Envoy External Processing Filter which decodes and alters gRPC messages.

In this flow, the envoy filter will recieve gRPC messages from clients over TLS, then decode and send an altered message to the gRPC Server.

images/ext_grpc.png

This sample builds ontop of these articles:

Basically, the external filter decode the grpc wireformat message into byte messages using ("github.com/psanford/lencode"), then proto.Unmarshal that into an actual gRPC message we can inspect.


Appendix

TODO: see if we can create a wasm filter to do the same (which isn’t that easy since we need to decode the wireformat)

GitHub

View Github