- Added upstream objects
- Renamed host templates to nginx templates - Generate upstream templates - Better nginx error reporting when reloading - Use tparse for golang test reporting
This commit is contained in:
@ -91,6 +91,25 @@
|
||||
"$ref": "file://./paths/hosts/hostID/delete.json"
|
||||
}
|
||||
},
|
||||
"/nginx-templates": {
|
||||
"get": {
|
||||
"$ref": "file://./paths/nginx-templates/get.json"
|
||||
},
|
||||
"post": {
|
||||
"$ref": "file://./paths/nginx-templates/post.json"
|
||||
}
|
||||
},
|
||||
"/nginx-templates/{templateID}": {
|
||||
"get": {
|
||||
"$ref": "file://./paths/nginx-templates/templateID/get.json"
|
||||
},
|
||||
"put": {
|
||||
"$ref": "file://./paths/nginx-templates/templateID/put.json"
|
||||
},
|
||||
"delete": {
|
||||
"$ref": "file://./paths/nginx-templates/templateID/delete.json"
|
||||
}
|
||||
},
|
||||
"/schema": {
|
||||
"get": {
|
||||
"$ref": "file://./paths/schema/get.json"
|
||||
@ -139,6 +158,22 @@
|
||||
"$ref": "file://./paths/tokens/post.json"
|
||||
}
|
||||
},
|
||||
"/upstreams": {
|
||||
"get": {
|
||||
"$ref": "file://./paths/upstreams/get.json"
|
||||
},
|
||||
"post": {
|
||||
"$ref": "file://./paths/upstreams/post.json"
|
||||
}
|
||||
},
|
||||
"/upstreams/{upstreamID}": {
|
||||
"get": {
|
||||
"$ref": "file://./paths/upstreams/upstreamID/get.json"
|
||||
},
|
||||
"delete": {
|
||||
"$ref": "file://./paths/upstreams/upstreamID/delete.json"
|
||||
}
|
||||
},
|
||||
"/users": {
|
||||
"get": {
|
||||
"$ref": "file://./paths/users/get.json"
|
||||
@ -205,11 +240,11 @@
|
||||
"HostObject": {
|
||||
"$ref": "file://./components/HostObject.json"
|
||||
},
|
||||
"HostTemplateList": {
|
||||
"$ref": "file://./components/HostTemplateList.json"
|
||||
"NginxTemplateList": {
|
||||
"$ref": "file://./components/NginxTemplateList.json"
|
||||
},
|
||||
"HostTemplateObject": {
|
||||
"$ref": "file://./components/HostTemplateObject.json"
|
||||
"NginxTemplateObject": {
|
||||
"$ref": "file://./components/NginxTemplateObject.json"
|
||||
},
|
||||
"SettingList": {
|
||||
"$ref": "file://./components/SettingList.json"
|
||||
@ -229,6 +264,12 @@
|
||||
"TokenObject": {
|
||||
"$ref": "file://./components/TokenObject.json"
|
||||
},
|
||||
"UpstreamList": {
|
||||
"$ref": "file://./components/UpstreamList.json"
|
||||
},
|
||||
"UpstreamObject": {
|
||||
"$ref": "file://./components/UpstreamObject.json"
|
||||
},
|
||||
"UserAuthObject": {
|
||||
"$ref": "file://./components/UserAuthObject.json"
|
||||
},
|
||||
|
40
backend/embed/api_docs/components/NginxTemplateList.json
Normal file
40
backend/embed/api_docs/components/NginxTemplateList.json
Normal file
@ -0,0 +1,40 @@
|
||||
{
|
||||
"type": "object",
|
||||
"description": "NginxTemplateList",
|
||||
"additionalProperties": false,
|
||||
"required": ["total", "offset", "limit", "sort"],
|
||||
"properties": {
|
||||
"total": {
|
||||
"type": "integer",
|
||||
"description": "Total number of rows"
|
||||
},
|
||||
"offset": {
|
||||
"type": "integer",
|
||||
"description": "Pagination Offset"
|
||||
},
|
||||
"limit": {
|
||||
"type": "integer",
|
||||
"description": "Pagination Limit"
|
||||
},
|
||||
"sort": {
|
||||
"type": "array",
|
||||
"description": "Sorting",
|
||||
"items": {
|
||||
"$ref": "#/components/schemas/SortObject"
|
||||
}
|
||||
},
|
||||
"filter": {
|
||||
"type": "array",
|
||||
"description": "Filters",
|
||||
"items": {
|
||||
"$ref": "#/components/schemas/FilterObject"
|
||||
}
|
||||
},
|
||||
"items": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/components/schemas/NginxTemplateObject"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"type": "object",
|
||||
"description": "HostTemplateObject",
|
||||
"description": "NginxTemplateObject",
|
||||
"additionalProperties": false,
|
||||
"required": [
|
||||
"id",
|
||||
@ -8,7 +8,7 @@
|
||||
"modified_on",
|
||||
"user_id",
|
||||
"name",
|
||||
"host_type",
|
||||
"type",
|
||||
"template"
|
||||
],
|
||||
"properties": {
|
||||
@ -32,9 +32,9 @@
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
},
|
||||
"host_type": {
|
||||
"type": {
|
||||
"type": "string",
|
||||
"pattern": "^proxy|redirect|dead|stream$"
|
||||
"pattern": "^proxy|redirect|dead|stream|upstream$"
|
||||
},
|
||||
"template": {
|
||||
"type": "string",
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"type": "object",
|
||||
"description": "HostTemplateList",
|
||||
"description": "UpstreamList",
|
||||
"additionalProperties": false,
|
||||
"required": ["total", "offset", "limit", "sort"],
|
||||
"properties": {
|
||||
@ -33,7 +33,7 @@
|
||||
"items": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/components/schemas/HostTemplateObject"
|
||||
"$ref": "#/components/schemas/UpstreamObject"
|
||||
}
|
||||
}
|
||||
}
|
133
backend/embed/api_docs/components/UpstreamObject.json
Normal file
133
backend/embed/api_docs/components/UpstreamObject.json
Normal file
@ -0,0 +1,133 @@
|
||||
{
|
||||
"type": "object",
|
||||
"description": "UpstreamObject",
|
||||
"additionalProperties": false,
|
||||
"required": [
|
||||
"id",
|
||||
"created_on",
|
||||
"modified_on",
|
||||
"user_id",
|
||||
"name",
|
||||
"nginx_template_id",
|
||||
"ip_hash",
|
||||
"ntlm",
|
||||
"keepalive",
|
||||
"keepalive_requests",
|
||||
"keepalive_time",
|
||||
"keepalive_timeout",
|
||||
"advanced_config",
|
||||
"status",
|
||||
"error_message",
|
||||
"servers"
|
||||
],
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "integer",
|
||||
"minimum": 1
|
||||
},
|
||||
"created_on": {
|
||||
"type": "integer",
|
||||
"minimum": 1
|
||||
},
|
||||
"modified_on": {
|
||||
"type": "integer",
|
||||
"minimum": 1
|
||||
},
|
||||
"user_id": {
|
||||
"type": "integer",
|
||||
"minimum": 1
|
||||
},
|
||||
"name": {
|
||||
"type": "string",
|
||||
"minLength": 1,
|
||||
"maxLength": 100
|
||||
},
|
||||
"nginx_template_id": {
|
||||
"type": "integer",
|
||||
"minimum": 1
|
||||
},
|
||||
"ip_hash": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"ntlm": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"keepalive": {
|
||||
"type": "integer"
|
||||
},
|
||||
"keepalive_requests": {
|
||||
"type": "integer"
|
||||
},
|
||||
"keepalive_time": {
|
||||
"type": "string"
|
||||
},
|
||||
"keepalive_timeout": {
|
||||
"type": "string"
|
||||
},
|
||||
"advanced_config": {
|
||||
"type": "string"
|
||||
},
|
||||
"status": {
|
||||
"type": "string"
|
||||
},
|
||||
"error_message": {
|
||||
"type": "string"
|
||||
},
|
||||
"servers": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": [
|
||||
"id",
|
||||
"created_on",
|
||||
"modified_on",
|
||||
"upstream_id",
|
||||
"server",
|
||||
"weight",
|
||||
"max_conns",
|
||||
"max_fails",
|
||||
"fail_timeout",
|
||||
"backup"
|
||||
],
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "integer",
|
||||
"minimum": 1
|
||||
},
|
||||
"created_on": {
|
||||
"type": "integer",
|
||||
"minimum": 1
|
||||
},
|
||||
"modified_on": {
|
||||
"type": "integer",
|
||||
"minimum": 1
|
||||
},
|
||||
"upstream_id": {
|
||||
"type": "integer",
|
||||
"minimum": 1
|
||||
},
|
||||
"server": {
|
||||
"type": "string",
|
||||
"minLength": 2
|
||||
},
|
||||
"weight": {
|
||||
"type": "integer"
|
||||
},
|
||||
"max_conns": {
|
||||
"type": "integer"
|
||||
},
|
||||
"max_fails": {
|
||||
"type": "integer"
|
||||
},
|
||||
"fail_timeout": {
|
||||
"type": "integer"
|
||||
},
|
||||
"backup": {
|
||||
"type": "boolean"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -64,7 +64,7 @@
|
||||
"modified_on": 1646279455,
|
||||
"user_id": 2,
|
||||
"type": "proxy",
|
||||
"host_template_id": 1,
|
||||
"nginx_template_id": 1,
|
||||
"listen_interface": "",
|
||||
"domain_names": ["jc21.com"],
|
||||
"upstream_id": 0,
|
||||
@ -78,7 +78,6 @@
|
||||
"hsts_enabled": false,
|
||||
"hsts_subdomains": false,
|
||||
"paths": "",
|
||||
"upstream_options": "",
|
||||
"advanced_config": "",
|
||||
"is_disabled": false
|
||||
}
|
||||
|
@ -37,7 +37,7 @@
|
||||
"modified_on": 1646279455,
|
||||
"user_id": 2,
|
||||
"type": "proxy",
|
||||
"host_template_id": 1,
|
||||
"nginx_template_id": 1,
|
||||
"listen_interface": "",
|
||||
"domain_names": ["jc21.com"],
|
||||
"upstream_id": 0,
|
||||
@ -51,7 +51,6 @@
|
||||
"hsts_enabled": false,
|
||||
"hsts_subdomains": false,
|
||||
"paths": "",
|
||||
"upstream_options": "",
|
||||
"advanced_config": "",
|
||||
"is_disabled": false
|
||||
}
|
||||
|
@ -46,7 +46,7 @@
|
||||
"modified_on": 1646279455,
|
||||
"user_id": 2,
|
||||
"type": "proxy",
|
||||
"host_template_id": 1,
|
||||
"nginx_template_id": 1,
|
||||
"listen_interface": "",
|
||||
"domain_names": ["jc21.com"],
|
||||
"upstream_id": 0,
|
||||
@ -60,7 +60,6 @@
|
||||
"hsts_enabled": false,
|
||||
"hsts_subdomains": false,
|
||||
"paths": "",
|
||||
"upstream_options": "",
|
||||
"advanced_config": "",
|
||||
"is_disabled": false
|
||||
}
|
||||
|
@ -33,7 +33,7 @@
|
||||
"modified_on": 1645700556,
|
||||
"user_id": 2,
|
||||
"type": "proxy",
|
||||
"host_template_id": 1,
|
||||
"nginx_template_id": 1,
|
||||
"listen_interface": "",
|
||||
"domain_names": ["jc21.com"],
|
||||
"upstream_id": 0,
|
||||
@ -47,7 +47,6 @@
|
||||
"hsts_enabled": false,
|
||||
"hsts_subdomains": false,
|
||||
"paths": "",
|
||||
"upstream_options": "",
|
||||
"advanced_config": "",
|
||||
"is_disabled": false
|
||||
}
|
||||
|
@ -1,7 +1,7 @@
|
||||
{
|
||||
"operationId": "getHostTemplates",
|
||||
"summary": "Get a list of Host Templates",
|
||||
"tags": ["Hosts"],
|
||||
"operationId": "getNginxTemplates",
|
||||
"summary": "Get a list of Nginx Templates",
|
||||
"tags": ["Nginx Templates"],
|
||||
"parameters": [
|
||||
{
|
||||
"in": "query",
|
||||
@ -40,7 +40,7 @@
|
||||
"required": ["result"],
|
||||
"properties": {
|
||||
"result": {
|
||||
"$ref": "#/components/schemas/HostTemplateList"
|
||||
"$ref": "#/components/schemas/NginxTemplateList"
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -64,7 +64,7 @@
|
||||
"modified_on": 1646218093,
|
||||
"user_id": 1,
|
||||
"name": "Default Proxy Template",
|
||||
"host_type": "proxy",
|
||||
"type": "proxy",
|
||||
"template": "# this is a proxy template"
|
||||
}
|
||||
]
|
@ -1,13 +1,13 @@
|
||||
{
|
||||
"operationId": "createHost",
|
||||
"summary": "Create a new Host",
|
||||
"tags": ["Hosts"],
|
||||
"operationId": "createNginxTemplate",
|
||||
"summary": "Create a new Nginx Template",
|
||||
"tags": ["Nginx Templates"],
|
||||
"requestBody": {
|
||||
"description": "Host to Create",
|
||||
"description": "Template to Create",
|
||||
"required": true,
|
||||
"content": {
|
||||
"application/json": {
|
||||
"schema": "{{schema.CreateHostTemplate}}"
|
||||
"schema": "{{schema.CreateNginxTemplate}}"
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -20,7 +20,7 @@
|
||||
"required": ["result"],
|
||||
"properties": {
|
||||
"result": {
|
||||
"$ref": "#/components/schemas/HostTemplateObject"
|
||||
"$ref": "#/components/schemas/NginxTemplateObject"
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -33,7 +33,7 @@
|
||||
"modified_on": 1646218093,
|
||||
"user_id": 1,
|
||||
"name": "My proxy template",
|
||||
"host_type": "proxy",
|
||||
"type": "proxy",
|
||||
"template": "# this is a proxy template"
|
||||
}
|
||||
}
|
@ -1,17 +1,17 @@
|
||||
{
|
||||
"operationId": "deleteHostTemplate",
|
||||
"summary": "Delete a Host Template",
|
||||
"tags": ["Host Templates"],
|
||||
"operationId": "deleteNginxTemplate",
|
||||
"summary": "Delete a Nginx Template",
|
||||
"tags": ["Nginx Templates"],
|
||||
"parameters": [
|
||||
{
|
||||
"in": "path",
|
||||
"name": "hostTemplateID",
|
||||
"name": "templateID",
|
||||
"schema": {
|
||||
"type": "integer",
|
||||
"minimum": 1
|
||||
},
|
||||
"required": true,
|
||||
"description": "Numeric ID of the Host Template",
|
||||
"description": "Numeric ID of the Template",
|
||||
"example": 1
|
||||
}
|
||||
],
|
||||
@ -46,7 +46,7 @@
|
||||
"result": null,
|
||||
"error": {
|
||||
"code": 400,
|
||||
"message": "You cannot delete a host template that is in use!"
|
||||
"message": "You cannot delete a template that is in use!"
|
||||
}
|
||||
}
|
||||
}
|
@ -1,11 +1,11 @@
|
||||
{
|
||||
"operationId": "getHostTemplate",
|
||||
"summary": "Get a Host Template object by ID",
|
||||
"tags": ["Hosts"],
|
||||
"operationId": "getNginxTemplate",
|
||||
"summary": "Get a Nginx Template object by ID",
|
||||
"tags": ["Nginx Templates"],
|
||||
"parameters": [
|
||||
{
|
||||
"in": "path",
|
||||
"name": "hostTemplateID",
|
||||
"name": "templateID",
|
||||
"schema": {
|
||||
"type": "integer",
|
||||
"minimum": 1
|
||||
@ -24,7 +24,7 @@
|
||||
"required": ["result"],
|
||||
"properties": {
|
||||
"result": {
|
||||
"$ref": "#/components/schemas/HostTemplateObject"
|
||||
"$ref": "#/components/schemas/NginxTemplateObject"
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -36,8 +36,8 @@
|
||||
"created_on": 1646218093,
|
||||
"modified_on": 1646218093,
|
||||
"user_id": 1,
|
||||
"name": "Default Host Template",
|
||||
"host_type": "proxy",
|
||||
"name": "Default Proxy Template",
|
||||
"type": "proxy",
|
||||
"template": "# this is a proxy template"
|
||||
}
|
||||
}
|
@ -1,26 +1,26 @@
|
||||
{
|
||||
"operationId": "updateHostTemplate",
|
||||
"summary": "Update an existing Host Template",
|
||||
"tags": ["Hosts"],
|
||||
"operationId": "updateNginxTemplate",
|
||||
"summary": "Update an existing Nginx Template",
|
||||
"tags": ["Nginx Templates"],
|
||||
"parameters": [
|
||||
{
|
||||
"in": "path",
|
||||
"name": "hostTemplateID",
|
||||
"name": "templateID",
|
||||
"schema": {
|
||||
"type": "integer",
|
||||
"minimum": 1
|
||||
},
|
||||
"required": true,
|
||||
"description": "ID of the Host Template",
|
||||
"description": "ID of the Template",
|
||||
"example": 1
|
||||
}
|
||||
],
|
||||
"requestBody": {
|
||||
"description": "Host Template details to update",
|
||||
"description": "Template details to update",
|
||||
"required": true,
|
||||
"content": {
|
||||
"application/json": {
|
||||
"schema": "{{schema.UpdateHostTemplate}}"
|
||||
"schema": "{{schema.UpdateNginxTemplate}}"
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -33,7 +33,7 @@
|
||||
"required": ["result"],
|
||||
"properties": {
|
||||
"result": {
|
||||
"$ref": "#/components/schemas/HostTemplateObject"
|
||||
"$ref": "#/components/schemas/NginxTemplateObject"
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -46,7 +46,7 @@
|
||||
"modified_on": 1646218093,
|
||||
"user_id": 1,
|
||||
"name": "My renamed proxy template",
|
||||
"host_type": "proxy",
|
||||
"type": "proxy",
|
||||
"template": "# this is a proxy template"
|
||||
}
|
||||
}
|
@ -1,11 +1,9 @@
|
||||
{
|
||||
"operationId": "createStream",
|
||||
"summary": "Create a new Stream",
|
||||
"tags": [
|
||||
"Streams"
|
||||
],
|
||||
"tags": ["Streams"],
|
||||
"requestBody": {
|
||||
"description": "Host to Create",
|
||||
"description": "Stream to Create",
|
||||
"required": true,
|
||||
"content": {
|
||||
"application/json": {
|
||||
@ -19,9 +17,7 @@
|
||||
"content": {
|
||||
"application/json": {
|
||||
"schema": {
|
||||
"required": [
|
||||
"result"
|
||||
],
|
||||
"required": ["result"],
|
||||
"properties": {
|
||||
"result": {
|
||||
"$ref": "#/components/schemas/StreamObject"
|
||||
@ -39,4 +35,4 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
285
backend/embed/api_docs/paths/upstreams/get.json
Normal file
285
backend/embed/api_docs/paths/upstreams/get.json
Normal file
@ -0,0 +1,285 @@
|
||||
{
|
||||
"operationId": "getUpstreams",
|
||||
"summary": "Get a list of Upstreams",
|
||||
"tags": ["Upstreams"],
|
||||
"parameters": [
|
||||
{
|
||||
"in": "query",
|
||||
"name": "offset",
|
||||
"schema": {
|
||||
"type": "number"
|
||||
},
|
||||
"description": "The pagination row offset, default 0",
|
||||
"example": 0
|
||||
},
|
||||
{
|
||||
"in": "query",
|
||||
"name": "limit",
|
||||
"schema": {
|
||||
"type": "number"
|
||||
},
|
||||
"description": "The pagination row limit, default 10",
|
||||
"example": 10
|
||||
},
|
||||
{
|
||||
"in": "query",
|
||||
"name": "sort",
|
||||
"schema": {
|
||||
"type": "string"
|
||||
},
|
||||
"description": "The sorting of the list",
|
||||
"example": "id,name.asc,value.desc"
|
||||
}
|
||||
],
|
||||
"responses": {
|
||||
"200": {
|
||||
"description": "200 response",
|
||||
"content": {
|
||||
"application/json": {
|
||||
"schema": {
|
||||
"required": ["result"],
|
||||
"properties": {
|
||||
"result": {
|
||||
"$ref": "#/components/schemas/UpstreamList"
|
||||
}
|
||||
}
|
||||
},
|
||||
"examples": {
|
||||
"default": {
|
||||
"value": {
|
||||
"result": {
|
||||
"total": 5,
|
||||
"offset": 0,
|
||||
"limit": 10,
|
||||
"sort": [
|
||||
{
|
||||
"field": "name",
|
||||
"direction": "ASC"
|
||||
}
|
||||
],
|
||||
"items": [
|
||||
{
|
||||
"id": 1,
|
||||
"created_on": 1672804124,
|
||||
"modified_on": 1672804124,
|
||||
"user_id": 2,
|
||||
"name": "API servers",
|
||||
"nginx_template_id": 5,
|
||||
"ip_hash": true,
|
||||
"ntlm": false,
|
||||
"keepalive": 10,
|
||||
"keepalive_requests": 10,
|
||||
"keepalive_time": "60s",
|
||||
"keepalive_timeout": "3s",
|
||||
"advanced_config": "",
|
||||
"status": "ok",
|
||||
"error_message": "",
|
||||
"servers": [
|
||||
{
|
||||
"id": 1,
|
||||
"created_on": 1672804124,
|
||||
"modified_on": 1672804124,
|
||||
"upstream_group_id": 1,
|
||||
"server": "192.168.0.10:80",
|
||||
"weight": 100,
|
||||
"max_conns": 0,
|
||||
"max_fails": 0,
|
||||
"fail_timeout": 0,
|
||||
"backup": false
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"created_on": 1672804124,
|
||||
"modified_on": 1672804124,
|
||||
"upstream_group_id": 1,
|
||||
"server": "192.168.0.11:80",
|
||||
"weight": 50,
|
||||
"max_conns": 0,
|
||||
"max_fails": 0,
|
||||
"fail_timeout": 0,
|
||||
"backup": false
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"created_on": 1672804197,
|
||||
"modified_on": 1672804197,
|
||||
"user_id": 2,
|
||||
"name": "API servers 2",
|
||||
"nginx_template_id": 5,
|
||||
"ip_hash": false,
|
||||
"ntlm": false,
|
||||
"keepalive": 0,
|
||||
"keepalive_requests": 0,
|
||||
"keepalive_time": "",
|
||||
"keepalive_timeout": "",
|
||||
"advanced_config": "",
|
||||
"status": "ok",
|
||||
"error_message": "",
|
||||
"servers": [
|
||||
{
|
||||
"id": 3,
|
||||
"created_on": 1672804197,
|
||||
"modified_on": 1672804197,
|
||||
"upstream_group_id": 2,
|
||||
"server": "192.168.0.10:80",
|
||||
"weight": 100,
|
||||
"max_conns": 0,
|
||||
"max_fails": 0,
|
||||
"fail_timeout": 0,
|
||||
"backup": false
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"created_on": 1672804197,
|
||||
"modified_on": 1672804197,
|
||||
"upstream_group_id": 2,
|
||||
"server": "192.168.0.11:80",
|
||||
"weight": 50,
|
||||
"max_conns": 0,
|
||||
"max_fails": 0,
|
||||
"fail_timeout": 0,
|
||||
"backup": false
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"created_on": 1672804200,
|
||||
"modified_on": 1672804200,
|
||||
"user_id": 2,
|
||||
"name": "API servers 2",
|
||||
"nginx_template_id": 5,
|
||||
"ip_hash": false,
|
||||
"ntlm": false,
|
||||
"keepalive": 0,
|
||||
"keepalive_requests": 0,
|
||||
"keepalive_time": "",
|
||||
"keepalive_timeout": "",
|
||||
"advanced_config": "",
|
||||
"status": "ok",
|
||||
"error_message": "",
|
||||
"servers": [
|
||||
{
|
||||
"id": 5,
|
||||
"created_on": 1672804200,
|
||||
"modified_on": 1672804200,
|
||||
"upstream_group_id": 3,
|
||||
"server": "192.168.0.10:80",
|
||||
"weight": 100,
|
||||
"max_conns": 0,
|
||||
"max_fails": 0,
|
||||
"fail_timeout": 0,
|
||||
"backup": false
|
||||
},
|
||||
{
|
||||
"id": 6,
|
||||
"created_on": 1672804200,
|
||||
"modified_on": 1672804200,
|
||||
"upstream_group_id": 3,
|
||||
"server": "192.168.0.11:80",
|
||||
"weight": 50,
|
||||
"max_conns": 0,
|
||||
"max_fails": 0,
|
||||
"fail_timeout": 0,
|
||||
"backup": false
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"created_on": 1672804201,
|
||||
"modified_on": 1672804201,
|
||||
"user_id": 2,
|
||||
"name": "API servers 2",
|
||||
"nginx_template_id": 5,
|
||||
"ip_hash": false,
|
||||
"ntlm": false,
|
||||
"keepalive": 0,
|
||||
"keepalive_requests": 0,
|
||||
"keepalive_time": "",
|
||||
"keepalive_timeout": "",
|
||||
"advanced_config": "",
|
||||
"status": "ok",
|
||||
"error_message": "",
|
||||
"servers": [
|
||||
{
|
||||
"id": 7,
|
||||
"created_on": 1672804201,
|
||||
"modified_on": 1672804201,
|
||||
"upstream_group_id": 4,
|
||||
"server": "192.168.0.10:80",
|
||||
"weight": 100,
|
||||
"max_conns": 0,
|
||||
"max_fails": 0,
|
||||
"fail_timeout": 0,
|
||||
"backup": false
|
||||
},
|
||||
{
|
||||
"id": 8,
|
||||
"created_on": 1672804201,
|
||||
"modified_on": 1672804201,
|
||||
"upstream_group_id": 4,
|
||||
"server": "192.168.0.11:80",
|
||||
"weight": 50,
|
||||
"max_conns": 0,
|
||||
"max_fails": 0,
|
||||
"fail_timeout": 0,
|
||||
"backup": false
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 5,
|
||||
"created_on": 1672804201,
|
||||
"modified_on": 1672804201,
|
||||
"user_id": 2,
|
||||
"name": "API servers 2",
|
||||
"nginx_template_id": 5,
|
||||
"ip_hash": false,
|
||||
"ntlm": false,
|
||||
"keepalive": 0,
|
||||
"keepalive_requests": 0,
|
||||
"keepalive_time": "",
|
||||
"keepalive_timeout": "",
|
||||
"advanced_config": "",
|
||||
"status": "ok",
|
||||
"error_message": "",
|
||||
"servers": [
|
||||
{
|
||||
"id": 9,
|
||||
"created_on": 1672804201,
|
||||
"modified_on": 1672804201,
|
||||
"upstream_group_id": 5,
|
||||
"server": "192.168.0.10:80",
|
||||
"weight": 100,
|
||||
"max_conns": 0,
|
||||
"max_fails": 0,
|
||||
"fail_timeout": 0,
|
||||
"backup": false
|
||||
},
|
||||
{
|
||||
"id": 10,
|
||||
"created_on": 1672804201,
|
||||
"modified_on": 1672804201,
|
||||
"upstream_group_id": 5,
|
||||
"server": "192.168.0.11:80",
|
||||
"weight": 50,
|
||||
"max_conns": 0,
|
||||
"max_fails": 0,
|
||||
"fail_timeout": 0,
|
||||
"backup": false
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
80
backend/embed/api_docs/paths/upstreams/post.json
Normal file
80
backend/embed/api_docs/paths/upstreams/post.json
Normal file
@ -0,0 +1,80 @@
|
||||
{
|
||||
"operationId": "createUpstream",
|
||||
"summary": "Create a new Upstream",
|
||||
"tags": ["Upstreams"],
|
||||
"requestBody": {
|
||||
"description": "Upstream to Create",
|
||||
"required": true,
|
||||
"content": {
|
||||
"application/json": {
|
||||
"schema": "{{schema.CreateUpstream}}"
|
||||
}
|
||||
}
|
||||
},
|
||||
"responses": {
|
||||
"201": {
|
||||
"description": "201 response",
|
||||
"content": {
|
||||
"application/json": {
|
||||
"schema": {
|
||||
"required": ["result"],
|
||||
"properties": {
|
||||
"result": {
|
||||
"$ref": "#/components/schemas/UpstreamObject"
|
||||
}
|
||||
}
|
||||
},
|
||||
"examples": {
|
||||
"default": {
|
||||
"value": {
|
||||
"result": {
|
||||
"id": 6,
|
||||
"created_on": 1672806857,
|
||||
"modified_on": 1672806857,
|
||||
"user_id": 2,
|
||||
"name": "API servers 2",
|
||||
"nginx_template_id": 5,
|
||||
"ip_hash": false,
|
||||
"ntlm": false,
|
||||
"keepalive": 0,
|
||||
"keepalive_requests": 0,
|
||||
"keepalive_time": "",
|
||||
"keepalive_timeout": "",
|
||||
"advanced_config": "",
|
||||
"status": "ready",
|
||||
"error_message": "",
|
||||
"servers": [
|
||||
{
|
||||
"id": 11,
|
||||
"created_on": 1672806857,
|
||||
"modified_on": 1672806857,
|
||||
"upstream_id": 6,
|
||||
"server": "192.168.0.10:80",
|
||||
"weight": 100,
|
||||
"max_conns": 0,
|
||||
"max_fails": 0,
|
||||
"fail_timeout": 0,
|
||||
"backup": false
|
||||
},
|
||||
{
|
||||
"id": 12,
|
||||
"created_on": 1672806857,
|
||||
"modified_on": 1672806857,
|
||||
"upstream_id": 6,
|
||||
"server": "192.168.0.11:80",
|
||||
"weight": 50,
|
||||
"max_conns": 0,
|
||||
"max_fails": 0,
|
||||
"fail_timeout": 0,
|
||||
"backup": false
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,58 @@
|
||||
{
|
||||
"operationId": "deleteUpstream",
|
||||
"summary": "Delete a Upstream",
|
||||
"tags": ["Upstreams"],
|
||||
"parameters": [
|
||||
{
|
||||
"in": "path",
|
||||
"name": "upstreamID",
|
||||
"schema": {
|
||||
"type": "integer",
|
||||
"minimum": 1
|
||||
},
|
||||
"required": true,
|
||||
"description": "Numeric ID of the Upstream",
|
||||
"example": 1
|
||||
}
|
||||
],
|
||||
"responses": {
|
||||
"200": {
|
||||
"description": "200 response",
|
||||
"content": {
|
||||
"application/json": {
|
||||
"schema": {
|
||||
"$ref": "#/components/schemas/DeletedItemResponse"
|
||||
},
|
||||
"examples": {
|
||||
"default": {
|
||||
"value": {
|
||||
"result": true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"400": {
|
||||
"description": "400 response",
|
||||
"content": {
|
||||
"application/json": {
|
||||
"schema": {
|
||||
"$ref": "#/components/schemas/DeletedItemResponse"
|
||||
},
|
||||
"examples": {
|
||||
"default": {
|
||||
"value": {
|
||||
"result": null,
|
||||
"error": {
|
||||
"code": 400,
|
||||
"message": "You cannot delete a Upstream that is in use!"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
81
backend/embed/api_docs/paths/upstreams/upstreamID/get.json
Normal file
81
backend/embed/api_docs/paths/upstreams/upstreamID/get.json
Normal file
@ -0,0 +1,81 @@
|
||||
{
|
||||
"operationId": "getUpstream",
|
||||
"summary": "Get a Upstream object by ID",
|
||||
"tags": ["Upstreams"],
|
||||
"parameters": [
|
||||
{
|
||||
"in": "path",
|
||||
"name": "upstreamID",
|
||||
"schema": {
|
||||
"type": "integer",
|
||||
"minimum": 1
|
||||
},
|
||||
"required": true,
|
||||
"description": "ID of the Upstream",
|
||||
"example": 1
|
||||
}
|
||||
],
|
||||
"responses": {
|
||||
"200": {
|
||||
"description": "200 response",
|
||||
"content": {
|
||||
"application/json": {
|
||||
"schema": {
|
||||
"required": ["result"],
|
||||
"properties": {
|
||||
"result": {
|
||||
"$ref": "#/components/schemas/UpstreamObject"
|
||||
}
|
||||
}
|
||||
},
|
||||
"examples": {
|
||||
"default": {
|
||||
"value": {
|
||||
"result": {
|
||||
"id": 1,
|
||||
"created_on": 1672786008,
|
||||
"modified_on": 1672786008,
|
||||
"user_id": 2,
|
||||
"name": "API servers 3",
|
||||
"ip_hash": true,
|
||||
"ntlm": false,
|
||||
"keepalive": 10,
|
||||
"keepalive_requests": 10,
|
||||
"keepalive_time": "60s",
|
||||
"keepalive_timeout": "3s",
|
||||
"advanced_config": "",
|
||||
"servers": [
|
||||
{
|
||||
"id": 1,
|
||||
"created_on": 1672786009,
|
||||
"modified_on": 1672786009,
|
||||
"upstream_id": 1,
|
||||
"server": "api1.localhost:1234",
|
||||
"weight": 100,
|
||||
"max_conns": 0,
|
||||
"max_fails": 0,
|
||||
"fail_timeout": 0,
|
||||
"backup": false
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"created_on": 1672786009,
|
||||
"modified_on": 1672786009,
|
||||
"upstream_id": 1,
|
||||
"server": "api2.localhost:1234",
|
||||
"weight": 50,
|
||||
"max_conns": 0,
|
||||
"max_fails": 0,
|
||||
"fail_timeout": 0,
|
||||
"backup": true
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user