envoyproxy / envoyproxy/envoy

Support transcoding configuration in a separated file

Open
#25,977 0 comments 1 reaction 0 assignees View on GitHub
area/grpc-transcoding help wanted
Dominant language
C++
Stars
28.9k
Forks
5.6k
Avg merge
1d 20h
Merged PRs (30d)
428

Description

*Title*: *Support transcoding configuration in a separated file*

*Description*:
Google cloud supports GRPC transcoding configuration in 2 places:
- In the proto files through annotations (already supported in envoy proxy transcoding filter)
- In a separated yaml file: https://cloud.google.com/endpoints/docs/grpc/transcoding#configuring_transcoding_in_yaml

The GRPC-gateway does support this external configuration as well: https://grpc-ecosystem.github.io/grpc-gateway/docs/mapping/grpc_api_configuration/#using-an-external-configuration-file

This feature request is about adding a new optional field to the grpc-transcoding filter with the path of a file that meets the `HttpRules` specification from https://cloud.google.com/endpoints/docs/grpc-service-config/reference/rpc/google.api#http. The filter will look-up in this file how to transcode the request instead of just checking the proto descriptor (that would not require annotations)

Thanks to that, we could:
- advanced transcoding to external services (in those, we're not able to edit the proto description with annotations)
- easier path-based routing o different clusters running different versions of the service
- keep routing decisions exclusively in the envoy config (and not in the services proto)

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.