-
Notifications
You must be signed in to change notification settings - Fork 7
Expansion of "how" section for Payload Processing #21
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
|
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: shachartal The full list of commands accepted by this bot can be found here.
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
|
Welcome @shachartal! |
| # Indicates if this processor rule can mutate passed data | ||
| mutating: true | ||
| # Determines which parts of the request/response pair is of interest to the processor | ||
| phases: ["request-headers", "request-body", "response-headers", "response-body"] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is reminding me of Istios EnvoyFilter, and Envoy proxy config for filters.
2 q's:
- Should we allow for trailers?
- Should we allow for streaming/buffering/chunked
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- What do you mean by trailers in this context?
- I think we need to allow processors to not materialize the full object before operating on it. We should take this into account as part of the Gateway-Processor protocol.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
gRPC is the most notable implementation to use HTTP/2 trailers https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Trailer
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Got it. Yes, I think we should extend this to account for trailers, since we do want to support gRPC payload processing.
| kind: Service | ||
| name: bad-prompt-detector | ||
| # Configuration for the callout itself | ||
| remoteConfig: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is this field unstructured, in the golang sense?
These are arbitrary values passed as context to the endpointRef?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That's an excellent question. I haven't gotten that far ahead in my thinking here. I suggest some parts are structured and generic, while some others (the context field perhaps) should be unstructured. Perhaps we should split structured and unstructured as different top-level fields. WDYT?
Added some initial thoughts and a draft proposal for a CRD for Processors.