Skip to content

Plugin output chaining #23

@mostafa

Description

@mostafa

Proposal:
I introduced the hook system in #21, so that plugins can attach to them and run with their priority. However, at the moment, the results are not stored or passed through to the next one in the chain of the same hook. Going forward, plugin output chaining should be introduced between the hook and plugins. Also the results should be returned to the calling function. For example, plugin A wants to rewrite the query, so it hooks to the onIngressTraffic (formerly onIncomingTraffic). Then, plugin B wants to add a unique trace ID to the same query after plugin B, so it registers with the same hook, but lower priority (higher prio number). The result of plugin A should be returned to the Proxy.PassThrough function and then the function should pass the processed results to the next plugin in chain that was registered with the same hook, as depicted below:

image

I suspect it would be useful that the plugins receive both the raw query (from client) and the modified one by the plugins higher up in the chain.

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

No type

Projects

Status

🎉 Done

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions