thrift: EncoderFilter and BidirectionalFilter support #20816
thrift: EncoderFilter and BidirectionalFilter support #20816zuercher merged 32 commits intoenvoyproxy:mainfrom
Conversation
Signed-off-by: kuochunghsu <kuochunghsu@pinterest.com>
Signed-off-by: kuochunghsu <kuochunghsu@pinterest.com>
Signed-off-by: kuochunghsu <kuochunghsu@pinterest.com>
Signed-off-by: kuochunghsu <kuochunghsu@pinterest.com>
Signed-off-by: kuochunghsu <kuochunghsu@pinterest.com>
Signed-off-by: kuochunghsu <kuochunghsu@pinterest.com>
Signed-off-by: kuochunghsu <kuochunghsu@pinterest.com>
|
Still need more tests and documentation but it would be good to have some early feedback. |
Signed-off-by: kuochunghsu <kuochunghsu@pinterest.com>
Signed-off-by: kuochunghsu <kuochunghsu@pinterest.com>
Signed-off-by: kuochunghsu <kuochunghsu@pinterest.com>
rgs1
left a comment
There was a problem hiding this comment.
Left an idea on how to potentially avoid some of the boilerplate that's needed.
Signed-off-by: kuochunghsu <kuochunghsu@pinterest.com>
Signed-off-by: kuochunghsu <kuochunghsu@pinterest.com>
|
Currently the connection manager and the upstream request won't expect the encoder filter would Therefore I'd like to not supporting StopIteration (i.e., throw if the encoder filter returns StopIteration). I'll update the limitation in the summary |
Signed-off-by: kuochunghsu <kuochunghsu@pinterest.com>
Signed-off-by: kuochunghsu <kuochunghsu@pinterest.com>
|
I'm trying to test if modification of values works (i.e., boolValue, byteValue, etc.) But the stringValue passes the string_view, which indicates not to modify. |
|
Ideally we could pass through data separately for encode and decode, e.g., passThroughData in encoding but not passThroughData in decoding. request check response check |
Signed-off-by: kuochunghsu <kuochunghsu@pinterest.com>
Signed-off-by: kuochunghsu <kuochunghsu@pinterest.com>
Signed-off-by: kuochunghsu <kuochunghsu@pinterest.com>
Signed-off-by: kuochunghsu <kuochunghsu@pinterest.com>
|
@zuercher ping? |
Signed-off-by: kuochunghsu <kuochunghsu@pinterest.com>
source/extensions/filters/network/thrift_proxy/filters/filter.h
Outdated
Show resolved
Hide resolved
Signed-off-by: kuochunghsu <kuochunghsu@pinterest.com>
Signed-off-by: kuochunghsu <kuochunghsu@pinterest.com>
Signed-off-by: kuochunghsu <kuochunghsu@pinterest.com>
|
@rgs1 did you have any other comments for this PR? |
rgs1
left a comment
There was a problem hiding this comment.
This is looking good, thanks! Just two more questions.
source/extensions/filters/network/thrift_proxy/decoder_events.h
Outdated
Show resolved
Hide resolved
Signed-off-by: kuochunghsu <kuochunghsu@pinterest.com>
rgs1
left a comment
There was a problem hiding this comment.
LGTM modulo one comment nit. Thanks!
Signed-off-by: kuochunghsu <kuochunghsu@pinterest.com>
…ogs/1.23.0.yaml Signed-off-by: kuochunghsu <kuochunghsu@pinterest.com>
|
@zuercher could you help to move this forward? thanks! |
|
@alyssawilk Sorry for random ping. Any chance to move this forward to avoid keeping rebase on a 2K+ lines diff? |
EncoderFilter and BidirectionalFilter support in thrift_proxy filter. In this diff, the EncoderFilter and BidirectionalFilter support peek at the metadata and content for encoding and modify the metadata and content for encoding. Does not support: * pass through data separately for encode and decode, e.g., passThroughData in encoding but not passThroughData in decoding. * StopIteration in encoding (would intentionally crash) Risk Level: low Testing: Unit test Docs Changes: n/a Release Notes: n/a Fixes envoyproxy#20497 Signed-off-by: kuochunghsu <kuochunghsu@pinterest.com>
Commit Message:
EncoderFilter and BidirectionalFilter support in thrift_proxy filter.
In this diff, the EncoderFilter and BidirectionalFilter support
Do not support
Additional Description:
Risk Level: low
Testing: Unit test
Docs Changes:
Release Notes:
[Optional Fixes #Issue] #20497