-
Notifications
You must be signed in to change notification settings - Fork 35
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
Create Proxy backend collection and UI for mandatory fields #1233
Comments
After discussion, we decided to name the Proxy APIs collection
|
For future reference Kong API object schema: https://getkong.org/docs/0.9.x/admin-api/ Look section "API object" fields we need for Kong API schema. |
@frenchbread right now we need to remove references to Kong/Tyk from the code and user interface. The form can keep the dynamic functionality, but should only allow the user to select API Umbrella. Default the selection to API Umbrella, if possible. |
@brylie How can we implement this? I was able to set the default selection (apiUmbrella) for the selectbox, but it did not force autoform automatically render APIUmbrella schema. |
Hm, it seems harder than I thought. How did you set the 'type' field default value? Did you do it via the schema? |
Lets ask @bajiat for input here. |
Comments from chat:
|
Note: Discussion in this issue is related to Proxy settings (adding a proxy to the deployment/platform) and not backend settings, but the issue itself is about connecting a single API to a proxy. |
@Nazarah here are the manditory fields: "name": {
type: String,
optional: true
},
"frontend_host": {
type: String,
optional: true
},
"backend_host": {
type: String,
optional: true
},
"backend_protocol": {
type: String,
optional: true
},
"balance_algorithm": {
type: String,
optional: true
},
"url_matches": {
type: [Object],
optional: true
},
"url_matches.$.frontend_prefix": {
type: String,
optional: true
},
"url_matches.$.backend_prefix": {
type: String,
optional: true
},
"servers": {
type: [Object],
optional: true
},
"servers.$.host": {
type: String,
optional: true
},
"servers.$.port": {
type: Number,
optional: true
} |
@Nazarah here are brief descriptions of the fields:
|
thanks @brylie ! Name: "Give a human friendly name to identify your proxy API." [feedback: we can skip info for this field. Not urgently needed.] Proxy host: "Add the server URL for your proxy API." API host: "Add the server URL for your API." Load balancer algorithm: "Mention the procedure to balance the load of API calls made." [feedback: any alternatives?] Proxy Prefix: "The added prefix will be available in the proxy path of all requests. Example: " API Prefix: "The added prefix will be available in the API path of all requests. Example: " Host: "Add the URL from which the API server can be accessed." Port: "Add the port number of the server in which the API service is running." |
In order to decouple API backends from Api Umbrella, we will need a collection and schema for proxy Api settings (currently only Umbrella ) settings that is separate from "pure" API backend settings/details. As a first step, this collection will contain the mandatory API Umbrella fields like backend and frontend prefix, backend host URL.
For the UI, we can either add a Proxy tab or a partial view in Settings tab to connect the API to a proxy to and to configure the backend.
The page should have a possibility to select an existing API proxy and define the backend configuration. Use the opportunity to explain frontend and backend prefix in a more user friendly manner, possibly selecting new terminology.
The tab/view should be only available if platform administrator has created a proxy and it is only shown to administrators and the API manager
Definition of done
Wireframe
The text was updated successfully, but these errors were encountered: