You've already forked nginx-proxy-manager
mirror of
https://github.com/NginxProxyManager/nginx-proxy-manager.git
synced 2025-11-04 04:11:42 +03:00
Swagger/openapi schema mega fixes and Cypress validation/enforcement
This commit is contained in:
@@ -1,8 +1,7 @@
|
||||
{
|
||||
"type": "object",
|
||||
"description": "Access List object",
|
||||
"required": ["id", "created_on", "modified_on", "owner_user_id", "name", "directive", "address", "satisfy_any", "pass_auth", "meta"],
|
||||
"additionalProperties": false,
|
||||
"required": ["id", "created_on", "modified_on", "owner_user_id", "name", "meta", "satisfy_any", "pass_auth", "proxy_host_count"],
|
||||
"properties": {
|
||||
"id": {
|
||||
"$ref": "../common.json#/properties/id"
|
||||
@@ -18,36 +17,25 @@
|
||||
},
|
||||
"name": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
},
|
||||
"directive": {
|
||||
"type": "string",
|
||||
"enum": ["allow", "deny"]
|
||||
},
|
||||
"address": {
|
||||
"oneOf": [
|
||||
{
|
||||
"type": "string",
|
||||
"pattern": "^([0-9]{1,3}\\.){3}[0-9]{1,3}(/([0-9]|[1-2][0-9]|3[0-2]))?$"
|
||||
},
|
||||
{
|
||||
"type": "string",
|
||||
"pattern": "^s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:)))(%.+)?s*(/([0-9]|[1-9][0-9]|1[0-1][0-9]|12[0-8]))?$"
|
||||
},
|
||||
{
|
||||
"type": "string",
|
||||
"pattern": "^all$"
|
||||
}
|
||||
]
|
||||
},
|
||||
"satisfy_any": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"pass_auth": {
|
||||
"type": "boolean"
|
||||
"minLength": 1,
|
||||
"example": "My Access List"
|
||||
},
|
||||
"meta": {
|
||||
"type": "object"
|
||||
"type": "object",
|
||||
"example": {}
|
||||
},
|
||||
"satisfy_any": {
|
||||
"type": "boolean",
|
||||
"example": true
|
||||
},
|
||||
"pass_auth": {
|
||||
"type": "boolean",
|
||||
"example": false
|
||||
},
|
||||
"proxy_host_count": {
|
||||
"type": "integer",
|
||||
"minimum": 0,
|
||||
"example": 3
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,16 +26,19 @@
|
||||
"$ref": "../common.json#/properties/user_id"
|
||||
},
|
||||
"object_type": {
|
||||
"type": "string"
|
||||
"type": "string",
|
||||
"example": "certificate"
|
||||
},
|
||||
"object_id": {
|
||||
"$ref": "../common.json#/properties/id"
|
||||
},
|
||||
"action": {
|
||||
"type": "string"
|
||||
"type": "string",
|
||||
"example": "created"
|
||||
},
|
||||
"meta": {
|
||||
"type": "object"
|
||||
"type": "object",
|
||||
"example": {}
|
||||
},
|
||||
"user": {
|
||||
"$ref": "./user-object.json"
|
||||
|
||||
@@ -21,7 +21,8 @@
|
||||
},
|
||||
"nice_name": {
|
||||
"type": "string",
|
||||
"description": "Nice Name for the custom certificate"
|
||||
"description": "Nice Name for the custom certificate",
|
||||
"example": "My Custom Cert"
|
||||
},
|
||||
"domain_names": {
|
||||
"description": "Domain Names separated by a comma",
|
||||
@@ -31,12 +32,14 @@
|
||||
"items": {
|
||||
"type": "string",
|
||||
"pattern": "^[^&| @!#%^();:/\\\\}{=+?<>,~`'\"]+$"
|
||||
}
|
||||
},
|
||||
"example": ["example.com", "www.example.com"]
|
||||
},
|
||||
"expires_on": {
|
||||
"description": "Date and time of expiration",
|
||||
"readOnly": true,
|
||||
"type": "string"
|
||||
"type": "string",
|
||||
"example": "2025-10-28T04:17:54.000Z"
|
||||
},
|
||||
"owner": {
|
||||
"$ref": "./user-object.json"
|
||||
@@ -59,9 +62,6 @@
|
||||
"dns_provider": {
|
||||
"type": "string"
|
||||
},
|
||||
"dns_provider_credentials": {
|
||||
"type": "string"
|
||||
},
|
||||
"letsencrypt_certificate": {
|
||||
"type": "object"
|
||||
},
|
||||
@@ -69,6 +69,9 @@
|
||||
"type": "integer",
|
||||
"minimum": 0
|
||||
}
|
||||
},
|
||||
"example": {
|
||||
"dns_challenge": false
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -35,13 +35,30 @@
|
||||
"$ref": "../common.json#/properties/http2_support"
|
||||
},
|
||||
"advanced_config": {
|
||||
"type": "string"
|
||||
"type": "string",
|
||||
"example": ""
|
||||
},
|
||||
"enabled": {
|
||||
"$ref": "../common.json#/properties/enabled"
|
||||
},
|
||||
"meta": {
|
||||
"type": "object"
|
||||
"type": "object",
|
||||
"example": {}
|
||||
},
|
||||
"certificate": {
|
||||
"oneOf": [
|
||||
{
|
||||
"type": "null",
|
||||
"example": null
|
||||
},
|
||||
{
|
||||
"$ref": "./certificate-object.json"
|
||||
}
|
||||
],
|
||||
"example": null
|
||||
},
|
||||
"owner": {
|
||||
"$ref": "./user-object.json"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,10 +5,12 @@
|
||||
"required": ["code", "message"],
|
||||
"properties": {
|
||||
"code": {
|
||||
"type": "integer"
|
||||
"type": "integer",
|
||||
"example": 400
|
||||
},
|
||||
"message": {
|
||||
"type": "string"
|
||||
"type": "string",
|
||||
"example": "Bad Request"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -27,15 +27,18 @@
|
||||
"properties": {
|
||||
"major": {
|
||||
"type": "integer",
|
||||
"minimum": 0
|
||||
"minimum": 0,
|
||||
"example": 2
|
||||
},
|
||||
"minor": {
|
||||
"type": "integer",
|
||||
"minimum": 0
|
||||
"minimum": 0,
|
||||
"example": 10
|
||||
},
|
||||
"revision": {
|
||||
"type": "integer",
|
||||
"minimum": 0
|
||||
"minimum": 0,
|
||||
"example": 1
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,37 +5,44 @@
|
||||
"visibility": {
|
||||
"type": "string",
|
||||
"description": "Visibility Type",
|
||||
"enum": ["all", "user"]
|
||||
"enum": ["all", "user"],
|
||||
"example": "all"
|
||||
},
|
||||
"access_lists": {
|
||||
"type": "string",
|
||||
"description": "Access Lists Permissions",
|
||||
"enum": ["hidden", "view", "manage"]
|
||||
"enum": ["hidden", "view", "manage"],
|
||||
"example": "view"
|
||||
},
|
||||
"dead_hosts": {
|
||||
"type": "string",
|
||||
"description": "404 Hosts Permissions",
|
||||
"enum": ["hidden", "view", "manage"]
|
||||
"enum": ["hidden", "view", "manage"],
|
||||
"example": "manage"
|
||||
},
|
||||
"proxy_hosts": {
|
||||
"type": "string",
|
||||
"description": "Proxy Hosts Permissions",
|
||||
"enum": ["hidden", "view", "manage"]
|
||||
"enum": ["hidden", "view", "manage"],
|
||||
"example": "hidden"
|
||||
},
|
||||
"redirection_hosts": {
|
||||
"type": "string",
|
||||
"description": "Redirection Permissions",
|
||||
"enum": ["hidden", "view", "manage"]
|
||||
"enum": ["hidden", "view", "manage"],
|
||||
"example": "view"
|
||||
},
|
||||
"streams": {
|
||||
"type": "string",
|
||||
"description": "Streams Permissions",
|
||||
"enum": ["hidden", "view", "manage"]
|
||||
"enum": ["hidden", "view", "manage"],
|
||||
"example": "manage"
|
||||
},
|
||||
"certificates": {
|
||||
"type": "string",
|
||||
"description": "Certificates Permissions",
|
||||
"enum": ["hidden", "view", "manage"]
|
||||
"enum": ["hidden", "view", "manage"],
|
||||
"example": "hidden"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -24,7 +24,6 @@
|
||||
"hsts_enabled",
|
||||
"hsts_subdomains"
|
||||
],
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"id": {
|
||||
"$ref": "../common.json#/properties/id"
|
||||
@@ -44,12 +43,14 @@
|
||||
"forward_host": {
|
||||
"type": "string",
|
||||
"minLength": 1,
|
||||
"maxLength": 255
|
||||
"maxLength": 255,
|
||||
"example": "127.0.0.1"
|
||||
},
|
||||
"forward_port": {
|
||||
"type": "integer",
|
||||
"minimum": 1,
|
||||
"maximum": 65535
|
||||
"maximum": 65535,
|
||||
"example": 8080
|
||||
},
|
||||
"access_list_id": {
|
||||
"$ref": "../common.json#/properties/access_list_id"
|
||||
@@ -67,22 +68,28 @@
|
||||
"$ref": "../common.json#/properties/block_exploits"
|
||||
},
|
||||
"advanced_config": {
|
||||
"type": "string"
|
||||
"type": "string",
|
||||
"example": ""
|
||||
},
|
||||
"meta": {
|
||||
"type": "object"
|
||||
"type": "object",
|
||||
"example": {
|
||||
"nginx_online": true,
|
||||
"nginx_err": null
|
||||
}
|
||||
},
|
||||
"allow_websocket_upgrade": {
|
||||
"description": "Allow Websocket Upgrade for all paths",
|
||||
"example": true,
|
||||
"type": "boolean"
|
||||
"type": "boolean",
|
||||
"example": true
|
||||
},
|
||||
"http2_support": {
|
||||
"$ref": "../common.json#/properties/http2_support"
|
||||
},
|
||||
"forward_scheme": {
|
||||
"type": "string",
|
||||
"enum": ["http", "https"]
|
||||
"enum": ["http", "https"],
|
||||
"example": "http"
|
||||
},
|
||||
"enabled": {
|
||||
"$ref": "../common.json#/properties/enabled"
|
||||
@@ -118,7 +125,15 @@
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"example": [
|
||||
{
|
||||
"path": "/app",
|
||||
"forward_scheme": "http",
|
||||
"forward_host": "example.com",
|
||||
"forward_port": 80
|
||||
}
|
||||
]
|
||||
},
|
||||
"hsts_enabled": {
|
||||
"$ref": "../common.json#/properties/hsts_enabled"
|
||||
@@ -129,12 +144,14 @@
|
||||
"certificate": {
|
||||
"oneOf": [
|
||||
{
|
||||
"type": "null"
|
||||
"type": "null",
|
||||
"example": null
|
||||
},
|
||||
{
|
||||
"$ref": "./certificate-object.json"
|
||||
}
|
||||
]
|
||||
],
|
||||
"example": null
|
||||
},
|
||||
"owner": {
|
||||
"$ref": "./user-object.json"
|
||||
@@ -142,12 +159,14 @@
|
||||
"access_list": {
|
||||
"oneOf": [
|
||||
{
|
||||
"type": "null"
|
||||
"type": "null",
|
||||
"example": null
|
||||
},
|
||||
{
|
||||
"$ref": "./access-list-object.json"
|
||||
}
|
||||
]
|
||||
],
|
||||
"example": null
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,26 @@
|
||||
{
|
||||
"type": "object",
|
||||
"description": "Redirection Host object",
|
||||
"required": ["id", "created_on", "modified_on", "owner_user_id", "domain_names", "forward_http_code", "forward_scheme", "forward_domain_name", "preserve_path", "certificate_id", "ssl_forced", "hsts_enabled", "hsts_subdomains", "http2_support", "block_exploits", "advanced_config", "enabled", "meta"],
|
||||
"required": [
|
||||
"id",
|
||||
"created_on",
|
||||
"modified_on",
|
||||
"owner_user_id",
|
||||
"domain_names",
|
||||
"forward_http_code",
|
||||
"forward_scheme",
|
||||
"forward_domain_name",
|
||||
"preserve_path",
|
||||
"certificate_id",
|
||||
"ssl_forced",
|
||||
"hsts_enabled",
|
||||
"hsts_subdomains",
|
||||
"http2_support",
|
||||
"block_exploits",
|
||||
"advanced_config",
|
||||
"enabled",
|
||||
"meta"
|
||||
],
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"id": {
|
||||
@@ -21,25 +40,30 @@
|
||||
},
|
||||
"forward_http_code": {
|
||||
"description": "Redirect HTTP Status Code",
|
||||
"example": 302,
|
||||
"type": "integer",
|
||||
"minimum": 300,
|
||||
"maximum": 308
|
||||
"maximum": 308,
|
||||
"example": 302
|
||||
},
|
||||
"forward_scheme": {
|
||||
"type": "string",
|
||||
"enum": ["auto", "http", "https"]
|
||||
"enum": [
|
||||
"auto",
|
||||
"http",
|
||||
"https"
|
||||
],
|
||||
"example": "http"
|
||||
},
|
||||
"forward_domain_name": {
|
||||
"description": "Domain Name",
|
||||
"example": "jc21.com",
|
||||
"type": "string",
|
||||
"pattern": "^(?:[^.*]+\\.?)+[^.]$"
|
||||
"pattern": "^(?:[^.*]+\\.?)+[^.]$",
|
||||
"example": "jc21.com"
|
||||
},
|
||||
"preserve_path": {
|
||||
"description": "Should the path be preserved",
|
||||
"example": true,
|
||||
"type": "boolean"
|
||||
"type": "boolean",
|
||||
"example": true
|
||||
},
|
||||
"certificate_id": {
|
||||
"$ref": "../common.json#/properties/certificate_id"
|
||||
@@ -60,13 +84,33 @@
|
||||
"$ref": "../common.json#/properties/block_exploits"
|
||||
},
|
||||
"advanced_config": {
|
||||
"type": "string"
|
||||
"type": "string",
|
||||
"example": ""
|
||||
},
|
||||
"enabled": {
|
||||
"$ref": "../common.json#/properties/enabled"
|
||||
},
|
||||
"meta": {
|
||||
"type": "object"
|
||||
"type": "object",
|
||||
"example": {
|
||||
"nginx_online": true,
|
||||
"nginx_err": null
|
||||
}
|
||||
},
|
||||
"certificate": {
|
||||
"oneOf": [
|
||||
{
|
||||
"type": "null",
|
||||
"example": null
|
||||
},
|
||||
{
|
||||
"$ref": "./certificate-object.json"
|
||||
}
|
||||
],
|
||||
"example": null
|
||||
},
|
||||
"owner": {
|
||||
"$ref": "./user-object.json"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
{
|
||||
"BearerAuth": {
|
||||
"bearerAuth": {
|
||||
"type": "http",
|
||||
"scheme": "bearer"
|
||||
"scheme": "bearer",
|
||||
"bearerFormat": "JWT",
|
||||
"description": "JWT Bearer Token authentication"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,19 @@
|
||||
{
|
||||
"type": "object",
|
||||
"description": "Stream object",
|
||||
"required": ["id", "created_on", "modified_on", "owner_user_id", "incoming_port", "forwarding_host", "forwarding_port", "tcp_forwarding", "udp_forwarding", "enabled", "meta"],
|
||||
"required": [
|
||||
"id",
|
||||
"created_on",
|
||||
"modified_on",
|
||||
"owner_user_id",
|
||||
"incoming_port",
|
||||
"forwarding_host",
|
||||
"forwarding_port",
|
||||
"tcp_forwarding",
|
||||
"udp_forwarding",
|
||||
"enabled",
|
||||
"meta"
|
||||
],
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"id": {
|
||||
@@ -19,15 +31,16 @@
|
||||
"incoming_port": {
|
||||
"type": "integer",
|
||||
"minimum": 1,
|
||||
"maximum": 65535
|
||||
"maximum": 65535,
|
||||
"example": 9090
|
||||
},
|
||||
"forwarding_host": {
|
||||
"anyOf": [
|
||||
{
|
||||
"description": "Domain Name",
|
||||
"example": "jc21.com",
|
||||
"type": "string",
|
||||
"pattern": "^(?:[^.*]+\\.?)+[^.]$"
|
||||
"pattern": "^(?:[^.*]+\\.?)+[^.]$",
|
||||
"example": "example.com"
|
||||
},
|
||||
{
|
||||
"type": "string",
|
||||
@@ -37,18 +50,22 @@
|
||||
"type": "string",
|
||||
"format": "ipv6"
|
||||
}
|
||||
]
|
||||
],
|
||||
"example": "example.com"
|
||||
},
|
||||
"forwarding_port": {
|
||||
"type": "integer",
|
||||
"minimum": 1,
|
||||
"maximum": 65535
|
||||
"maximum": 65535,
|
||||
"example": 80
|
||||
},
|
||||
"tcp_forwarding": {
|
||||
"type": "boolean"
|
||||
"type": "boolean",
|
||||
"example": true
|
||||
},
|
||||
"udp_forwarding": {
|
||||
"type": "boolean"
|
||||
"type": "boolean",
|
||||
"example": false
|
||||
},
|
||||
"enabled": {
|
||||
"$ref": "../common.json#/properties/enabled"
|
||||
@@ -57,10 +74,8 @@
|
||||
"$ref": "../common.json#/properties/certificate_id"
|
||||
},
|
||||
"meta": {
|
||||
"type": "object"
|
||||
},
|
||||
"owner": {
|
||||
"$ref": "./user-object.json"
|
||||
"type": "object",
|
||||
"example": {}
|
||||
},
|
||||
"certificate": {
|
||||
"oneOf": [
|
||||
@@ -70,7 +85,11 @@
|
||||
{
|
||||
"$ref": "./certificate-object.json"
|
||||
}
|
||||
]
|
||||
],
|
||||
"example": null
|
||||
},
|
||||
"owner": {
|
||||
"$ref": "./user-object.json"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -77,37 +77,37 @@
|
||||
"proxy_hosts": {
|
||||
"type": "string",
|
||||
"description": "Proxy Hosts access level",
|
||||
"example": "all",
|
||||
"example": "manage",
|
||||
"pattern": "^(manage|view|hidden)$"
|
||||
},
|
||||
"redirection_hosts": {
|
||||
"type": "string",
|
||||
"description": "Redirection Hosts access level",
|
||||
"example": "all",
|
||||
"example": "manage",
|
||||
"pattern": "^(manage|view|hidden)$"
|
||||
},
|
||||
"dead_hosts": {
|
||||
"type": "string",
|
||||
"description": "Dead Hosts access level",
|
||||
"example": "all",
|
||||
"example": "manage",
|
||||
"pattern": "^(manage|view|hidden)$"
|
||||
},
|
||||
"streams": {
|
||||
"type": "string",
|
||||
"description": "Streams access level",
|
||||
"example": "all",
|
||||
"example": "manage",
|
||||
"pattern": "^(manage|view|hidden)$"
|
||||
},
|
||||
"access_lists": {
|
||||
"type": "string",
|
||||
"description": "Access Lists access level",
|
||||
"example": "all",
|
||||
"example": "hidden",
|
||||
"pattern": "^(manage|view|hidden)$"
|
||||
},
|
||||
"certificates": {
|
||||
"type": "string",
|
||||
"description": "Certificates access level",
|
||||
"example": "all",
|
||||
"example": "view",
|
||||
"pattern": "^(manage|view|hidden)$"
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user