Skip to content
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

external Router extensions, e.g. via simple HTTP request/response format #1916

Closed
prasek opened this issue Sep 29, 2022 · 2 comments · Fixed by #2229
Closed

external Router extensions, e.g. via simple HTTP request/response format #1916

prasek opened this issue Sep 29, 2022 · 2 comments · Fixed by #2229
Assignees

Comments

@prasek
Copy link
Contributor

prasek commented Sep 29, 2022

Support external Router extensions (e.g. via a simple HTTP request/response format), so you can do any custom authn/n (or other processing) using an external network service (e.g. a sidecar in your k8s Pod, in the same availability zone as your router or anywhere on the network). External network extensions could be configured via the router.yaml.

This would allow you to create an external extension for the router in any language or framework that supports HTTP, or even to directly add an external Router extension handler to existing bespoke services that your Gateway or monograph might already be talking to today for things like authn/z. Going direct to an existing service would have extremely minimal performance overhead vs. what is otherwise done in a Gateway or monograph server today to integrate with bespoke services.

@prasek
Copy link
Contributor Author

prasek commented Sep 29, 2022

See related feedback in this community post

@prasek
Copy link
Contributor Author

prasek commented Sep 29, 2022

@prasek prasek changed the title External Router extensions -- perhaps with a simple HTTP request/response format External Router extensions, perhaps with a simple HTTP request/response format Sep 29, 2022
@prasek prasek changed the title External Router extensions, perhaps with a simple HTTP request/response format External Router extensions, e.g. via simple HTTP request/response format Sep 29, 2022
@prasek prasek changed the title External Router extensions, e.g. via simple HTTP request/response format external Router extensions, e.g. via simple HTTP request/response format Sep 29, 2022
@abernix abernix removed the triage label Nov 18, 2022
o0Ignition0o pushed a commit that referenced this issue Dec 19, 2022
…2229)

fixes: #1916 

Simplified externalisation configuration:

```
plugins:
  experimental.external:
    url: http://127.0.0.1:8081
    timeout: 2s
    stages:
      router:
        request:
          headers: true
          context: true
          body: true
          sdl: true
        response:
          headers: true
```
The biggest pro is that it's just so simple it's very easy to configure.
The biggest con is lack of control: e.g. no control over header
propagation. The only supported stage at this moment is "router".
@abernix abernix added this to the v1.7.0 milestone Dec 22, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants