Swagger/openapi schema mega fixes and Cypress validation/enforcement

This commit is contained in:
Jamie Curnow
2025-10-29 20:15:00 +10:00
parent 89abb9d559
commit 906ce8ced2
80 changed files with 2007 additions and 543 deletions

View File

@@ -1,10 +1,10 @@
{
"operationId": "getAuditLogs",
"summary": "Get Audit Logs",
"tags": ["Audit Log"],
"tags": ["audit-log"],
"security": [
{
"BearerAuth": ["audit-log"]
"bearerAuth": ["admin"]
}
],
"responses": {

View File

@@ -1,13 +1,11 @@
{
"operationId": "getAuditLog",
"summary": "Get Audit Log Event",
"tags": [
"Audit Log"
],
"tags": ["audit-log"],
"security": [
{
"BearerAuth": [
"audit-log"
"bearerAuth": [
"admin"
]
}
],
@@ -15,6 +13,7 @@
{
"in": "path",
"name": "id",
"description": "Audit Log Event ID",
"schema": {
"type": "integer",
"minimum": 1

View File

@@ -1,7 +1,7 @@
{
"operationId": "health",
"summary": "Returns the API health status",
"tags": ["Public"],
"tags": ["public"],
"responses": {
"200": {
"description": "200 response",

View File

@@ -1,10 +1,12 @@
{
"operationId": "getAccessLists",
"summary": "Get all access lists",
"tags": ["Access Lists"],
"tags": ["access-lists"],
"security": [
{
"BearerAuth": ["access_lists"]
"bearerAuth": [
"access_lists.view"
]
}
],
"parameters": [
@@ -14,7 +16,12 @@
"description": "Expansions",
"schema": {
"type": "string",
"enum": ["owner", "items", "clients", "proxy_hosts"]
"enum": [
"owner",
"items",
"clients",
"proxy_hosts"
]
}
}
],
@@ -23,22 +30,16 @@
"description": "200 response",
"content": {
"application/json": {
"examples": {
"default": {
"value": [
{
"id": 1,
"created_on": "2024-10-08T22:15:40.000Z",
"modified_on": "2024-10-08T22:15:40.000Z",
"owner_user_id": 1,
"name": "test1234",
"meta": {},
"satisfy_any": true,
"pass_auth": false,
"proxy_host_count": 0
}
]
}
"example": {
"id": 1,
"created_on": "2024-10-08T22:15:40.000Z",
"modified_on": "2024-10-08T22:15:40.000Z",
"owner_user_id": 1,
"name": "test1234",
"meta": {},
"satisfy_any": true,
"pass_auth": false,
"proxy_host_count": 0
},
"schema": {
"$ref": "../../../components/access-list-object.json"

View File

@@ -1,16 +1,17 @@
{
"operationId": "deleteAccessList",
"summary": "Delete a Access List",
"tags": ["Access Lists"],
"tags": ["access-lists"],
"security": [
{
"BearerAuth": ["access_lists"]
"bearerAuth": ["access_lists.manage"]
}
],
"parameters": [
{
"in": "path",
"name": "listID",
"description": "Access List ID",
"schema": {
"type": "integer",
"minimum": 1

View File

@@ -1,49 +1,54 @@
{
"operationId": "getAccessList",
"summary": "Get a access List",
"tags": ["Access Lists"],
"security": [
{
"BearerAuth": ["access_lists"]
}
],
"parameters": [
{
"in": "path",
"name": "listID",
"schema": {
"type": "integer",
"minimum": 1
},
"required": true,
"example": 1
}
],
"responses": {
"200": {
"description": "200 response",
"content": {
"application/json": {
"examples": {
"default": {
"value": {
"id": 1,
"created_on": "2020-01-30T09:36:08.000Z",
"modified_on": "2020-01-30T09:41:04.000Z",
"is_disabled": false,
"email": "jc@jc21.com",
"name": "Jamie Curnow",
"nickname": "James",
"avatar": "//www.gravatar.com/avatar/6193176330f8d38747f038c170ddb193?default=mm",
"roles": ["admin"]
}
}
},
"schema": {
"$ref": "../../../../components/access-list-object.json"
}
}
}
}
}
"operationId": "getAccessList",
"summary": "Get a access List",
"tags": [
"access-lists"
],
"security": [
{
"bearerAuth": [
"access_lists.view"
]
}
],
"parameters": [
{
"in": "path",
"name": "listID",
"description": "Access List ID",
"schema": {
"type": "integer",
"minimum": 1
},
"required": true,
"example": 1
}
],
"responses": {
"200": {
"description": "200 response",
"content": {
"application/json": {
"examples": {
"default": {
"value": {
"id": 1,
"created_on": "2025-10-28T04:06:55.000Z",
"modified_on": "2025-10-29T22:48:20.000Z",
"owner_user_id": 1,
"name": "My Access List",
"meta": {},
"satisfy_any": false,
"pass_auth": false,
"proxy_host_count": 1
}
}
},
"schema": {
"$ref": "../../../../components/access-list-object.json"
}
}
}
}
}
}

View File

@@ -1,16 +1,17 @@
{
"operationId": "updateAccessList",
"summary": "Update a Access List",
"tags": ["Access Lists"],
"tags": ["access-lists"],
"security": [
{
"BearerAuth": ["access_lists"]
"bearerAuth": ["access_lists.manage"]
}
],
"parameters": [
{
"in": "path",
"name": "listID",
"description": "Access List ID",
"schema": {
"type": "integer",
"minimum": 1
@@ -39,50 +40,29 @@
"$ref": "../../../../components/access-list-object.json#/properties/pass_auth"
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"username": {
"type": "string",
"minLength": 1
},
"password": {
"type": "string"
}
}
}
"$ref": "../../../../common.json#/properties/access_items"
},
"clients": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"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$"
}
]
},
"directive": {
"$ref": "../../../../components/access-list-object.json#/properties/directive"
}
}
}
"$ref": "../../../../common.json#/properties/access_clients"
}
}
},
"example": {
"name": "My Access List",
"satisfy_any": true,
"pass_auth": false,
"items": [
{
"username": "admin2",
"password": "pass2"
}
],
"clients": [
{
"directive": "allow",
"address": "192.168.0.0/24"
}
]
}
}
}
@@ -108,7 +88,6 @@
"id": 1,
"created_on": "2024-10-07T22:43:55.000Z",
"modified_on": "2024-10-08T12:52:54.000Z",
"is_deleted": false,
"is_disabled": false,
"email": "admin@example.com",
"name": "Administrator",

View File

@@ -1,10 +1,12 @@
{
"operationId": "createAccessList",
"summary": "Create a Access List",
"tags": ["Access Lists"],
"tags": ["access-lists"],
"security": [
{
"BearerAuth": ["access_lists"]
"bearerAuth": [
"access_lists.manage"
]
}
],
"requestBody": {
@@ -15,7 +17,9 @@
"schema": {
"type": "object",
"additionalProperties": false,
"required": ["name"],
"required": [
"name"
],
"properties": {
"name": {
"$ref": "../../../components/access-list-object.json#/properties/name"
@@ -27,54 +31,29 @@
"$ref": "../../../components/access-list-object.json#/properties/pass_auth"
},
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"username": {
"type": "string",
"minLength": 1
},
"password": {
"type": "string",
"minLength": 1
}
}
}
"$ref": "../../../common.json#/properties/access_items"
},
"clients": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"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$"
}
]
},
"directive": {
"$ref": "../../../components/access-list-object.json#/properties/directive"
}
}
}
},
"meta": {
"$ref": "../../../components/access-list-object.json#/properties/meta"
"$ref": "../../../common.json#/properties/access_clients"
}
}
},
"example": {
"name": "My Access List",
"satisfy_any": true,
"pass_auth": false,
"items": [
{
"username": "admin",
"password": "pass"
}
],
"clients": [
{
"directive": "allow",
"address": "192.168.0.0/24"
}
]
}
}
}
@@ -100,13 +79,14 @@
"id": 1,
"created_on": "2024-10-07T22:43:55.000Z",
"modified_on": "2024-10-08T12:52:54.000Z",
"is_deleted": false,
"is_disabled": false,
"email": "admin@example.com",
"name": "Administrator",
"nickname": "some guy",
"avatar": "//www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?default=mm",
"roles": ["admin"]
"roles": [
"admin"
]
},
"items": [
{

View File

@@ -1,16 +1,17 @@
{
"operationId": "deleteCertificate",
"summary": "Delete a Certificate",
"tags": ["Certificates"],
"tags": ["certificates"],
"security": [
{
"BearerAuth": ["certificates"]
"bearerAuth": ["certificates.manage"]
}
],
"parameters": [
{
"in": "path",
"name": "certID",
"description": "Certificate ID",
"schema": {
"type": "integer",
"minimum": 1

View File

@@ -1,16 +1,17 @@
{
"operationId": "downloadCertificate",
"summary": "Downloads a Certificate",
"tags": ["Certificates"],
"tags": ["certificates"],
"security": [
{
"BearerAuth": ["certificates"]
"bearerAuth": ["certificates.manage"]
}
],
"parameters": [
{
"in": "path",
"name": "certID",
"description": "Certificate ID",
"schema": {
"type": "integer",
"minimum": 1

View File

@@ -1,16 +1,17 @@
{
"operationId": "getCertificate",
"summary": "Get a Certificate",
"tags": ["Certificates"],
"tags": ["certificates"],
"security": [
{
"BearerAuth": ["certificates"]
"bearerAuth": ["certificates.view"]
}
],
"parameters": [
{
"in": "path",
"name": "certID",
"description": "Certificate ID",
"schema": {
"type": "integer",
"minimum": 1

View File

@@ -1,16 +1,17 @@
{
"operationId": "renewCertificate",
"summary": "Renews a Certificate",
"tags": ["Certificates"],
"tags": ["certificates"],
"security": [
{
"BearerAuth": ["certificates"]
"bearerAuth": ["certificates.manage"]
}
],
"parameters": [
{
"in": "path",
"name": "certID",
"description": "Certificate ID",
"schema": {
"type": "integer",
"minimum": 1
@@ -32,7 +33,6 @@
"id": 4,
"created_on": "2024-10-09T05:31:58.000Z",
"owner_user_id": 1,
"is_deleted": false,
"provider": "letsencrypt",
"nice_name": "My Test Cert",
"domain_names": ["test.jc21.supernerd.pro"],

View File

@@ -1,16 +1,17 @@
{
"operationId": "uploadCertificate",
"summary": "Uploads a custom Certificate",
"tags": ["Certificates"],
"tags": ["certificates"],
"security": [
{
"BearerAuth": ["certificates"]
"bearerAuth": ["certificates.manage"]
}
],
"parameters": [
{
"in": "path",
"name": "certID",
"description": "Certificate ID",
"schema": {
"type": "integer",
"minimum": 1
@@ -20,28 +21,7 @@
}
],
"requestBody": {
"description": "Certificate Files",
"required": true,
"content": {
"multipart/form-data": {
"schema": {
"type": "object",
"additionalProperties": false,
"required": ["certificate", "certificate_key"],
"properties": {
"certificate": {
"type": "string"
},
"certificate_key": {
"type": "string"
},
"intermediate_certificate": {
"type": "string"
}
}
}
}
}
"$ref": "../../../../../common.json#/properties/certificate_files"
},
"responses": {
"200": {
@@ -63,15 +43,18 @@
"properties": {
"certificate": {
"type": "string",
"minLength": 1
"minLength": 1,
"example": "-----BEGIN CERTIFICATE-----\nMIID...-----END CERTIFICATE-----"
},
"certificate_key": {
"type": "string",
"minLength": 1
"minLength": 1,
"example": "-----BEGIN CERTIFICATE-----\nMIID...-----END CERTIFICATE-----"
},
"intermediate_certificate": {
"type": "string",
"minLength": 1
"minLength": 1,
"example": "-----BEGIN CERTIFICATE-----\nMIID...-----END CERTIFICATE-----"
}
}
}

View File

@@ -1,14 +1,10 @@
{
"operationId": "getDNSProviders",
"summary": "Get DNS Providers for Certificates",
"tags": [
"Certificates"
],
"tags": ["certificates"],
"security": [
{
"BearerAuth": [
"certificates"
]
"bearerAuth": ["certificates.view"]
}
],
"responses": {

View File

@@ -1,10 +1,10 @@
{
"operationId": "getCertificates",
"summary": "Get all certificates",
"tags": ["Certificates"],
"tags": ["certificates"],
"security": [
{
"BearerAuth": ["certificates"]
"bearerAuth": ["certificates.view"]
}
],
"parameters": [

View File

@@ -1,10 +1,10 @@
{
"operationId": "createCertificate",
"summary": "Create a Certificate",
"tags": ["Certificates"],
"tags": ["certificates"],
"security": [
{
"BearerAuth": ["certificates"]
"bearerAuth": ["certificates.manage"]
}
],
"requestBody": {
@@ -30,6 +30,13 @@
"$ref": "../../../components/certificate-object.json#/properties/meta"
}
}
},
"example": {
"provider": "letsencrypt",
"domain_names": ["test.example.com"],
"meta": {
"dns_challenge": false
}
}
}
}
@@ -47,7 +54,6 @@
"id": 5,
"created_on": "2024-10-09 05:28:35",
"owner_user_id": 1,
"is_deleted": false,
"provider": "letsencrypt",
"nice_name": "test.example.com",
"domain_names": ["test.example.com"],

View File

@@ -1,10 +1,10 @@
{
"operationId": "testHttpReach",
"summary": "Test HTTP Reachability",
"tags": ["Certificates"],
"tags": ["certificates"],
"security": [
{
"BearerAuth": ["certificates"]
"bearerAuth": ["certificates.view"]
}
],
"requestBody": {

View File

@@ -1,35 +1,14 @@
{
"operationId": "validateCertificates",
"summary": "Validates given Custom Certificates",
"tags": ["Certificates"],
"tags": ["certificates"],
"security": [
{
"BearerAuth": ["certificates"]
"bearerAuth": ["certificates.manage"]
}
],
"requestBody": {
"description": "Certificate Files",
"required": true,
"content": {
"multipart/form-data": {
"schema": {
"type": "object",
"additionalProperties": false,
"required": ["certificate", "certificate_key"],
"properties": {
"certificate": {
"type": "string"
},
"certificate_key": {
"type": "string"
},
"intermediate_certificate": {
"type": "string"
}
}
}
}
}
"$ref": "../../../../common.json#/properties/certificate_files"
},
"responses": {
"200": {
@@ -62,10 +41,12 @@
"required": ["cn", "issuer", "dates"],
"properties": {
"cn": {
"type": "string"
"type": "string",
"example": "example.com"
},
"issuer": {
"type": "string"
"type": "string",
"example": "C = US, O = Let's Encrypt, CN = E5"
},
"dates": {
"type": "object",
@@ -78,12 +59,17 @@
"to": {
"type": "integer"
}
},
"example": {
"from": 1728448218,
"to": 1736224217
}
}
}
},
"certificate_key": {
"type": "boolean"
"type": "boolean",
"example": true
}
}
}

View File

@@ -1,10 +1,10 @@
{
"operationId": "getDeadHosts",
"summary": "Get all 404 hosts",
"tags": ["404 Hosts"],
"tags": ["404-hosts"],
"security": [
{
"BearerAuth": ["dead_hosts"]
"bearerAuth": ["dead_hosts.view"]
}
],
"parameters": [

View File

@@ -1,16 +1,17 @@
{
"operationId": "deleteDeadHost",
"summary": "Delete a 404 Host",
"tags": ["404 Hosts"],
"tags": ["404-hosts"],
"security": [
{
"BearerAuth": ["dead_hosts"]
"bearerAuth": ["dead_hosts.manage"]
}
],
"parameters": [
{
"in": "path",
"name": "hostID",
"description": "The ID of the 404 Host",
"schema": {
"type": "integer",
"minimum": 1

View File

@@ -1,16 +1,17 @@
{
"operationId": "disableDeadHost",
"summary": "Disable a 404 Host",
"tags": ["404 Hosts"],
"tags": ["404-hosts"],
"security": [
{
"BearerAuth": ["dead_hosts"]
"bearerAuth": ["dead_hosts.manage"]
}
],
"parameters": [
{
"in": "path",
"name": "hostID",
"description": "The ID of the 404 Host",
"schema": {
"type": "integer",
"minimum": 1

View File

@@ -1,16 +1,17 @@
{
"operationId": "enableDeadHost",
"summary": "Enable a 404 Host",
"tags": ["404 Hosts"],
"tags": ["404-hosts"],
"security": [
{
"BearerAuth": ["dead_hosts"]
"bearerAuth": ["dead_hosts.manage"]
}
],
"parameters": [
{
"in": "path",
"name": "hostID",
"description": "The ID of the 404 Host",
"schema": {
"type": "integer",
"minimum": 1

View File

@@ -1,16 +1,17 @@
{
"operationId": "getDeadHost",
"summary": "Get a 404 Host",
"tags": ["404 Hosts"],
"tags": ["404-hosts"],
"security": [
{
"BearerAuth": ["dead_hosts"]
"bearerAuth": ["dead_hosts.view"]
}
],
"parameters": [
{
"in": "path",
"name": "hostID",
"description": "The ID of the 404 Host",
"schema": {
"type": "integer",
"minimum": 1

View File

@@ -1,16 +1,17 @@
{
"operationId": "updateDeadHost",
"summary": "Update a 404 Host",
"tags": ["404 Hosts"],
"tags": ["404-hosts"],
"security": [
{
"BearerAuth": ["dead_hosts"]
"bearerAuth": ["dead_hosts.manage"]
}
],
"parameters": [
{
"in": "path",
"name": "hostID",
"description": "The ID of the 404 Host",
"schema": {
"type": "integer",
"minimum": 1
@@ -86,7 +87,6 @@
"id": 1,
"created_on": "2024-10-09T00:59:56.000Z",
"modified_on": "2024-10-09T00:59:56.000Z",
"is_deleted": false,
"is_disabled": false,
"email": "admin@example.com",
"name": "Administrator",

View File

@@ -1,10 +1,12 @@
{
"operationId": "create404Host",
"summary": "Create a 404 Host",
"tags": ["404 Hosts"],
"tags": ["404-hosts"],
"security": [
{
"BearerAuth": ["dead_hosts"]
"bearerAuth": [
"dead_hosts.manage"
]
}
],
"requestBody": {
@@ -15,7 +17,9 @@
"schema": {
"type": "object",
"additionalProperties": false,
"required": ["domain_names"],
"required": [
"domain_names"
],
"properties": {
"domain_names": {
"$ref": "../../../components/dead-host-object.json#/properties/domain_names"
@@ -42,6 +46,18 @@
"$ref": "../../../components/dead-host-object.json#/properties/meta"
}
}
},
"example": {
"domain_names": [
"test.example.com"
],
"certificate_id": 0,
"ssl_forced": false,
"advanced_config": "",
"http2_support": false,
"hsts_enabled": false,
"hsts_subdomains": false,
"meta": {}
}
}
}
@@ -58,7 +74,9 @@
"created_on": "2024-10-09T01:38:52.000Z",
"modified_on": "2024-10-09T01:38:52.000Z",
"owner_user_id": 1,
"domain_names": ["test.example.com"],
"domain_names": [
"test.example.com"
],
"certificate_id": 0,
"ssl_forced": false,
"advanced_config": "",
@@ -72,13 +90,14 @@
"id": 1,
"created_on": "2024-10-09T00:59:56.000Z",
"modified_on": "2024-10-09T00:59:56.000Z",
"is_deleted": false,
"is_disabled": false,
"email": "admin@example.com",
"name": "Administrator",
"nickname": "Admin",
"avatar": "",
"roles": ["admin"]
"roles": [
"admin"
]
}
}
}

View File

@@ -1,10 +1,12 @@
{
"operationId": "getProxyHosts",
"summary": "Get all proxy hosts",
"tags": ["Proxy Hosts"],
"tags": ["proxy-hosts"],
"security": [
{
"BearerAuth": ["proxy_hosts"]
"bearerAuth": [
"proxy_hosts.view"
]
}
],
"parameters": [
@@ -14,7 +16,11 @@
"description": "Expansions",
"schema": {
"type": "string",
"enum": ["access_list", "owner", "certificate"]
"enum": [
"access_list",
"owner",
"certificate"
]
}
}
],
@@ -28,14 +34,16 @@
"value": [
{
"id": 1,
"created_on": "2024-10-08T23:23:03.000Z",
"modified_on": "2024-10-08T23:23:04.000Z",
"created_on": "2025-10-28T01:10:26.000Z",
"modified_on": "2025-10-28T04:07:16.000Z",
"owner_user_id": 1,
"domain_names": ["test.example.com"],
"domain_names": [
"test.jc21com"
],
"forward_host": "127.0.0.1",
"forward_port": 8989,
"access_list_id": 0,
"certificate_id": 0,
"forward_port": 8081,
"access_list_id": 1,
"certificate_id": 1,
"ssl_forced": false,
"caching_enabled": false,
"block_exploits": false,
@@ -48,7 +56,7 @@
"http2_support": false,
"forward_scheme": "http",
"enabled": true,
"locations": null,
"locations": [],
"hsts_enabled": false,
"hsts_subdomains": false
}

View File

@@ -1,16 +1,17 @@
{
"operationId": "deleteProxyHost",
"summary": "Delete a Proxy Host",
"tags": ["Proxy Hosts"],
"tags": ["proxy-hosts"],
"security": [
{
"BearerAuth": ["proxy_hosts"]
"bearerAuth": ["proxy_hosts.manage"]
}
],
"parameters": [
{
"in": "path",
"name": "hostID",
"description": "The ID of the Proxy Host",
"schema": {
"type": "integer",
"minimum": 1

View File

@@ -1,16 +1,17 @@
{
"operationId": "disableProxyHost",
"summary": "Disable a Proxy Host",
"tags": ["Proxy Hosts"],
"tags": ["proxy-hosts"],
"security": [
{
"BearerAuth": ["proxy_hosts"]
"bearerAuth": ["proxy_hosts.manage"]
}
],
"parameters": [
{
"in": "path",
"name": "hostID",
"description": "The ID of the Proxy Host",
"schema": {
"type": "integer",
"minimum": 1

View File

@@ -1,16 +1,17 @@
{
"operationId": "enableProxyHost",
"summary": "Enable a Proxy Host",
"tags": ["Proxy Hosts"],
"tags": ["proxy-hosts"],
"security": [
{
"BearerAuth": ["proxy_hosts"]
"bearerAuth": ["proxy_hosts.manage"]
}
],
"parameters": [
{
"in": "path",
"name": "hostID",
"description": "The ID of the Proxy Host",
"schema": {
"type": "integer",
"minimum": 1

View File

@@ -1,16 +1,19 @@
{
"operationId": "getProxyHost",
"summary": "Get a Proxy Host",
"tags": ["Proxy Hosts"],
"tags": ["proxy-hosts"],
"security": [
{
"BearerAuth": ["proxy_hosts"]
"bearerAuth": [
"proxy_hosts.view"
]
}
],
"parameters": [
{
"in": "path",
"name": "hostID",
"description": "The ID of the Proxy Host",
"schema": {
"type": "integer",
"minimum": 1
@@ -27,13 +30,15 @@
"examples": {
"default": {
"value": {
"id": 1,
"created_on": "2024-10-08T23:23:03.000Z",
"modified_on": "2024-10-08T23:26:38.000Z",
"id": 3,
"created_on": "2025-10-30T01:12:05.000Z",
"modified_on": "2025-10-30T01:12:05.000Z",
"owner_user_id": 1,
"domain_names": ["test.example.com"],
"forward_host": "192.168.0.10",
"forward_port": 8989,
"domain_names": [
"test.example.com"
],
"forward_host": "127.0.0.1",
"forward_port": 8080,
"access_list_id": 0,
"certificate_id": 0,
"ssl_forced": false,
@@ -48,9 +53,22 @@
"http2_support": false,
"forward_scheme": "http",
"enabled": true,
"locations": null,
"locations": [],
"hsts_enabled": false,
"hsts_subdomains": false
"hsts_subdomains": false,
"owner": {
"id": 1,
"created_on": "2025-10-28T00:50:24.000Z",
"modified_on": "2025-10-28T00:50:24.000Z",
"is_disabled": false,
"email": "jc@jc21.com",
"name": "jamiec",
"nickname": "jamiec",
"avatar": "//www.gravatar.com/avatar/6193176330f8d38747f038c170ddb193?default=mm",
"roles": [
"admin"
]
}
}
}
},

View File

@@ -1,16 +1,19 @@
{
"operationId": "updateProxyHost",
"summary": "Update a Proxy Host",
"tags": ["Proxy Hosts"],
"tags": ["proxy-hosts"],
"security": [
{
"BearerAuth": ["proxy_hosts"]
"bearerAuth": [
"proxy_hosts.manage"
]
}
],
"parameters": [
{
"in": "path",
"name": "hostID",
"description": "The ID of the Proxy Host",
"schema": {
"type": "integer",
"minimum": 1
@@ -93,13 +96,15 @@
"examples": {
"default": {
"value": {
"id": 1,
"created_on": "2024-10-08T23:23:03.000Z",
"modified_on": "2024-10-08T23:26:37.000Z",
"id": 3,
"created_on": "2025-10-30T01:12:05.000Z",
"modified_on": "2025-10-30T01:17:06.000Z",
"owner_user_id": 1,
"domain_names": ["test.example.com"],
"forward_host": "192.168.0.10",
"forward_port": 8989,
"domain_names": [
"test.example.com"
],
"forward_host": "127.0.0.1",
"forward_port": 8080,
"access_list_id": 0,
"certificate_id": 0,
"ssl_forced": false,
@@ -114,19 +119,21 @@
"http2_support": false,
"forward_scheme": "http",
"enabled": true,
"locations": [],
"hsts_enabled": false,
"hsts_subdomains": false,
"owner": {
"id": 1,
"created_on": "2024-10-07T22:43:55.000Z",
"modified_on": "2024-10-08T12:52:54.000Z",
"is_deleted": false,
"created_on": "2025-10-28T00:50:24.000Z",
"modified_on": "2025-10-28T00:50:24.000Z",
"is_disabled": false,
"email": "admin@example.com",
"name": "Administrator",
"nickname": "some guy",
"avatar": "//www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?default=mm",
"roles": ["admin"]
"email": "jc@jc21.com",
"name": "jamiec",
"nickname": "jamiec",
"avatar": "//www.gravatar.com/avatar/6193176330f8d38747f038c170ddb193?default=mm",
"roles": [
"admin"
]
},
"certificate": null,
"access_list": null

View File

@@ -1,10 +1,12 @@
{
"operationId": "createProxyHost",
"summary": "Create a Proxy Host",
"tags": ["Proxy Hosts"],
"tags": ["proxy-hosts"],
"security": [
{
"BearerAuth": ["proxy_hosts"]
"bearerAuth": [
"proxy_hosts.manage"
]
}
],
"requestBody": {
@@ -15,7 +17,12 @@
"schema": {
"type": "object",
"additionalProperties": false,
"required": ["domain_names", "forward_scheme", "forward_host", "forward_port"],
"required": [
"domain_names",
"forward_scheme",
"forward_host",
"forward_port"
],
"properties": {
"domain_names": {
"$ref": "../../../components/proxy-host-object.json#/properties/domain_names"
@@ -69,6 +76,14 @@
"$ref": "../../../components/proxy-host-object.json#/properties/locations"
}
}
},
"example": {
"domain_names": [
"test.example.com"
],
"forward_scheme": "http",
"forward_host": "127.0.0.1",
"forward_port": 8080
}
}
}
@@ -81,13 +96,15 @@
"examples": {
"default": {
"value": {
"id": 1,
"created_on": "2024-10-08T23:23:03.000Z",
"modified_on": "2024-10-08T23:23:03.000Z",
"id": 3,
"created_on": "2025-10-30T01:12:05.000Z",
"modified_on": "2025-10-30T01:12:05.000Z",
"owner_user_id": 1,
"domain_names": ["test.example.com"],
"domain_names": [
"test.example.com"
],
"forward_host": "127.0.0.1",
"forward_port": 8989,
"forward_port": 8080,
"access_list_id": 0,
"certificate_id": 0,
"ssl_forced": false,
@@ -99,20 +116,22 @@
"http2_support": false,
"forward_scheme": "http",
"enabled": true,
"locations": [],
"hsts_enabled": false,
"hsts_subdomains": false,
"certificate": null,
"owner": {
"id": 1,
"created_on": "2024-10-07T22:43:55.000Z",
"modified_on": "2024-10-08T12:52:54.000Z",
"is_deleted": false,
"created_on": "2025-10-28T00:50:24.000Z",
"modified_on": "2025-10-28T00:50:24.000Z",
"is_disabled": false,
"email": "admin@example.com",
"name": "Administrator",
"nickname": "some guy",
"avatar": "//www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?default=mm",
"roles": ["admin"]
"email": "jc@jc21.com",
"name": "jamiec",
"nickname": "jamiec",
"avatar": "//www.gravatar.com/avatar/6193176330f8d38747f038c170ddb193?default=mm",
"roles": [
"admin"
]
},
"access_list": null
}

View File

@@ -1,10 +1,10 @@
{
"operationId": "getRedirectionHosts",
"summary": "Get all Redirection hosts",
"tags": ["Redirection Hosts"],
"tags": ["redirection-hosts"],
"security": [
{
"BearerAuth": ["redirection_hosts"]
"bearerAuth": ["redirection_hosts.view"]
}
],
"parameters": [

View File

@@ -1,16 +1,17 @@
{
"operationId": "deleteRedirectionHost",
"summary": "Delete a Redirection Host",
"tags": ["Redirection Hosts"],
"tags": ["redirection-hosts"],
"security": [
{
"BearerAuth": ["redirection_hosts"]
"bearerAuth": ["redirection_hosts.manage"]
}
],
"parameters": [
{
"in": "path",
"name": "hostID",
"description": "The ID of the Redirection Host",
"schema": {
"type": "integer",
"minimum": 1

View File

@@ -1,16 +1,17 @@
{
"operationId": "disableRedirectionHost",
"summary": "Disable a Redirection Host",
"tags": ["Redirection Hosts"],
"tags": ["redirection-hosts"],
"security": [
{
"BearerAuth": ["redirection_hosts"]
"bearerAuth": ["redirection_hosts.manage"]
}
],
"parameters": [
{
"in": "path",
"name": "hostID",
"description": "The ID of the Redirection Host",
"schema": {
"type": "integer",
"minimum": 1

View File

@@ -1,16 +1,17 @@
{
"operationId": "enableRedirectionHost",
"summary": "Enable a Redirection Host",
"tags": ["Redirection Hosts"],
"tags": ["redirection-hosts"],
"security": [
{
"BearerAuth": ["redirection_hosts"]
"bearerAuth": ["redirection_hosts.manage"]
}
],
"parameters": [
{
"in": "path",
"name": "hostID",
"description": "The ID of the Redirection Host",
"schema": {
"type": "integer",
"minimum": 1

View File

@@ -1,16 +1,17 @@
{
"operationId": "getRedirectionHost",
"summary": "Get a Redirection Host",
"tags": ["Redirection Hosts"],
"tags": ["redirection-hosts"],
"security": [
{
"BearerAuth": ["redirection_hosts"]
"bearerAuth": ["redirection_hosts.view"]
}
],
"parameters": [
{
"in": "path",
"name": "hostID",
"description": "The ID of the Redirection Host",
"schema": {
"type": "integer",
"minimum": 1

View File

@@ -1,16 +1,17 @@
{
"operationId": "updateRedirectionHost",
"summary": "Update a Redirection Host",
"tags": ["Redirection Hosts"],
"tags": ["redirection-hosts"],
"security": [
{
"BearerAuth": ["redirection_hosts"]
"bearerAuth": ["redirection_hosts.manage"]
}
],
"parameters": [
{
"in": "path",
"name": "hostID",
"description": "The ID of the Redirection Host",
"schema": {
"type": "integer",
"minimum": 1
@@ -106,7 +107,6 @@
"id": 1,
"created_on": "2024-10-09T00:59:56.000Z",
"modified_on": "2024-10-09T00:59:56.000Z",
"is_deleted": false,
"is_disabled": false,
"email": "admin@example.com",
"name": "Administrator",

View File

@@ -1,10 +1,12 @@
{
"operationId": "createRedirectionHost",
"summary": "Create a Redirection Host",
"tags": ["Redirection Hosts"],
"tags": ["redirection-hosts"],
"security": [
{
"BearerAuth": ["redirection_hosts"]
"bearerAuth": [
"redirection_hosts.manage"
]
}
],
"requestBody": {
@@ -15,7 +17,12 @@
"schema": {
"type": "object",
"additionalProperties": false,
"required": ["domain_names", "forward_scheme", "forward_http_code", "forward_domain_name"],
"required": [
"domain_names",
"forward_scheme",
"forward_http_code",
"forward_domain_name"
],
"properties": {
"domain_names": {
"$ref": "../../../components/redirection-host-object.json#/properties/domain_names"
@@ -57,6 +64,23 @@
"$ref": "../../../components/redirection-host-object.json#/properties/meta"
}
}
},
"example": {
"domain_names": [
"test.example.com"
],
"forward_domain_name": "example.com",
"forward_scheme": "auto",
"forward_http_code": 301,
"preserve_path": false,
"block_exploits": false,
"certificate_id": 0,
"ssl_forced": false,
"http2_support": false,
"hsts_enabled": false,
"hsts_subdomains": false,
"advanced_config": "",
"meta": {}
}
}
}
@@ -69,12 +93,14 @@
"examples": {
"default": {
"value": {
"id": 1,
"created_on": "2024-10-09T01:13:12.000Z",
"modified_on": "2024-10-09T01:13:12.000Z",
"id": 2,
"created_on": "2025-10-30T01:27:04.000Z",
"modified_on": "2025-10-30T01:27:04.000Z",
"owner_user_id": 1,
"domain_names": ["test.example.com"],
"forward_domain_name": "something-else.com",
"domain_names": [
"test.example.com"
],
"forward_domain_name": "example.com",
"preserve_path": false,
"certificate_id": 0,
"ssl_forced": false,
@@ -85,20 +111,21 @@
"enabled": true,
"hsts_enabled": false,
"hsts_subdomains": false,
"forward_scheme": "http",
"forward_scheme": "auto",
"forward_http_code": 301,
"certificate": null,
"owner": {
"id": 1,
"created_on": "2024-10-09T00:59:56.000Z",
"modified_on": "2024-10-09T00:59:56.000Z",
"is_deleted": false,
"created_on": "2025-10-28T00:50:24.000Z",
"modified_on": "2025-10-28T00:50:24.000Z",
"is_disabled": false,
"email": "admin@example.com",
"name": "Administrator",
"nickname": "Admin",
"avatar": "",
"roles": ["admin"]
"email": "jc@jc21.com",
"name": "jamiec",
"nickname": "jamiec",
"avatar": "//www.gravatar.com/avatar/6193176330f8d38747f038c170ddb193?default=mm",
"roles": [
"admin"
]
}
}
}

View File

@@ -1,10 +1,10 @@
{
"operationId": "getStreams",
"summary": "Get all streams",
"tags": ["Streams"],
"tags": ["streams"],
"security": [
{
"BearerAuth": ["streams"]
"bearerAuth": ["streams.view"]
}
],
"parameters": [

View File

@@ -1,10 +1,12 @@
{
"operationId": "createStream",
"summary": "Create a Stream",
"tags": ["Streams"],
"tags": ["streams"],
"security": [
{
"BearerAuth": ["streams"]
"bearerAuth": [
"streams.manage"
]
}
],
"requestBody": {
@@ -15,7 +17,11 @@
"schema": {
"type": "object",
"additionalProperties": false,
"required": ["incoming_port", "forwarding_host", "forwarding_port"],
"required": [
"incoming_port",
"forwarding_host",
"forwarding_port"
],
"properties": {
"incoming_port": {
"$ref": "../../../components/stream-object.json#/properties/incoming_port"
@@ -42,6 +48,15 @@
"$ref": "../../../components/dead-host-object.json#/properties/domain_names"
}
}
},
"example": {
"incoming_port": 8888,
"forwarding_host": "127.0.0.1",
"forwarding_port": 8080,
"tcp_forwarding": true,
"udp_forwarding": false,
"certificate_id": 0,
"meta": {}
}
}
}
@@ -72,13 +87,14 @@
"id": 1,
"created_on": "2024-10-09T02:33:16.000Z",
"modified_on": "2024-10-09T02:33:16.000Z",
"is_deleted": false,
"is_disabled": false,
"email": "admin@example.com",
"name": "Administrator",
"nickname": "Admin",
"avatar": "",
"roles": ["admin"]
"roles": [
"admin"
]
},
"certificate_id": 0
}

View File

@@ -1,16 +1,17 @@
{
"operationId": "deleteStream",
"summary": "Delete a Stream",
"tags": ["Streams"],
"tags": ["streams"],
"security": [
{
"BearerAuth": ["streams"]
"bearerAuth": ["streams.manage"]
}
],
"parameters": [
{
"in": "path",
"name": "streamID",
"description": "The ID of the Stream",
"schema": {
"type": "integer",
"minimum": 1

View File

@@ -1,16 +1,17 @@
{
"operationId": "disableStream",
"summary": "Disable a Stream",
"tags": ["Streams"],
"tags": ["streams"],
"security": [
{
"BearerAuth": ["streams"]
"bearerAuth": ["streams.manage"]
}
],
"parameters": [
{
"in": "path",
"name": "streamID",
"description": "The ID of the Stream",
"schema": {
"type": "integer",
"minimum": 1

View File

@@ -1,16 +1,17 @@
{
"operationId": "enableStream",
"summary": "Enable a Stream",
"tags": ["Streams"],
"tags": ["streams"],
"security": [
{
"BearerAuth": ["streams"]
"bearerAuth": ["streams.manage"]
}
],
"parameters": [
{
"in": "path",
"name": "streamID",
"description": "The ID of the Stream",
"schema": {
"type": "integer",
"minimum": 1

View File

@@ -1,16 +1,17 @@
{
"operationId": "getStream",
"summary": "Get a Stream",
"tags": ["Streams"],
"tags": ["streams"],
"security": [
{
"BearerAuth": ["streams"]
"bearerAuth": ["streams.view"]
}
],
"parameters": [
{
"in": "path",
"name": "streamID",
"description": "The ID of the Stream",
"schema": {
"type": "integer",
"minimum": 1

View File

@@ -1,16 +1,17 @@
{
"operationId": "updateStream",
"summary": "Update a Stream",
"tags": ["Streams"],
"tags": ["streams"],
"security": [
{
"BearerAuth": ["streams"]
"bearerAuth": ["streams.manage"]
}
],
"parameters": [
{
"in": "path",
"name": "streamID",
"description": "The ID of the Stream",
"schema": {
"type": "integer",
"minimum": 1
@@ -81,7 +82,6 @@
"id": 1,
"created_on": "2024-10-09T02:33:16.000Z",
"modified_on": "2024-10-09T02:33:16.000Z",
"is_deleted": false,
"is_disabled": false,
"email": "admin@example.com",
"name": "Administrator",

View File

@@ -1,10 +1,10 @@
{
"operationId": "reportsHosts",
"summary": "Report on Host Statistics",
"tags": ["Reports"],
"tags": ["reports"],
"security": [
{
"BearerAuth": ["reports"]
"bearerAuth": []
}
],
"responses": {
@@ -27,19 +27,23 @@
"properties": {
"proxy": {
"type": "integer",
"description": "Proxy Hosts Count"
"description": "Proxy Hosts Count",
"example": 20
},
"redirection": {
"type": "integer",
"description": "Redirection Hosts Count"
"description": "Redirection Hosts Count",
"example": 2
},
"stream": {
"type": "integer",
"description": "Streams Count"
"description": "Streams Count",
"example": 0
},
"dead": {
"type": "integer",
"description": "404 Hosts Count"
"description": "404 Hosts Count",
"example": 3
}
}
}

View File

@@ -1,7 +1,7 @@
{
"operationId": "schema",
"summary": "Returns this swagger API schema",
"tags": ["Public"],
"tags": ["public"],
"responses": {
"200": {
"description": "200 response"

View File

@@ -1,10 +1,10 @@
{
"operationId": "getSettings",
"summary": "Get all settings",
"tags": ["Settings"],
"tags": ["settings"],
"security": [
{
"BearerAuth": ["settings"]
"bearerAuth": ["admin"]
}
],
"responses": {

View File

@@ -1,10 +1,10 @@
{
"operationId": "getSetting",
"summary": "Get a setting",
"tags": ["Settings"],
"tags": ["settings"],
"security": [
{
"BearerAuth": ["settings"]
"bearerAuth": ["admin"]
}
],
"parameters": [

View File

@@ -1,10 +1,10 @@
{
"operationId": "updateSetting",
"summary": "Update a setting",
"tags": ["Settings"],
"tags": ["settings"],
"security": [
{
"BearerAuth": ["settings"]
"bearerAuth": ["admin"]
}
],
"parameters": [
@@ -34,7 +34,8 @@
"value": {
"type": "string",
"minLength": 1,
"enum": ["congratulations", "404", "444", "redirect", "html"]
"enum": ["congratulations", "404", "444", "redirect", "html"],
"example": "html"
},
"meta": {
"type": "object",
@@ -46,9 +47,16 @@
"html": {
"type": "string"
}
},
"example": {
"html": "<p>hello world</p>"
}
}
}
},
"example": {
"value": "congratulations",
"meta": {}
}
}
}

View File

@@ -1,10 +1,10 @@
{
"operationId": "refreshToken",
"summary": "Refresh your access token",
"tags": ["Tokens"],
"tags": ["tokens"],
"security": [
{
"BearerAuth": ["tokens"]
"bearerAuth": []
}
],
"responses": {

View File

@@ -1,7 +1,7 @@
{
"operationId": "requestToken",
"summary": "Request a new access token from credentials",
"tags": ["Tokens"],
"tags": ["tokens"],
"requestBody": {
"description": "Credentials Payload",
"required": true,
@@ -12,20 +12,27 @@
"properties": {
"identity": {
"minLength": 1,
"type": "string"
"type": "string",
"example": "me@example.com"
},
"scope": {
"minLength": 1,
"type": "string",
"enum": ["user"]
"enum": ["user"],
"example": "user"
},
"secret": {
"minLength": 1,
"type": "string"
"type": "string",
"example": "bigredhorsebanana"
}
},
"required": ["identity", "secret"],
"type": "object"
},
"example": {
"identity": "me@example.com",
"secret": "bigredhorsebanana"
}
}
}
@@ -37,10 +44,8 @@
"examples": {
"default": {
"value": {
"result": {
"expires": "2025-02-04T20:40:46.340Z",
"token": "eyJhbGciOiJSUzUxMiIsInR5cCI6IkpXVCJ9.ey...xaHKYr3Kk6MvkUjcC4"
}
"expires": "2025-02-04T20:40:46.340Z",
"token": "eyJhbGciOiJSUzUxMiIsInR5cCI6IkpXVCJ9.ey...xaHKYr3Kk6MvkUjcC4"
}
}
},

View File

@@ -1,10 +1,10 @@
{
"operationId": "getUsers",
"summary": "Get all users",
"tags": ["Users"],
"tags": ["users"],
"security": [
{
"BearerAuth": ["users"]
"bearerAuth": ["admin"]
}
],
"parameters": [

View File

@@ -1,10 +1,10 @@
{
"operationId": "createUser",
"summary": "Create a User",
"tags": ["Users"],
"tags": ["users"],
"security": [
{
"BearerAuth": ["users"]
"bearerAuth": ["admin"]
}
],
"requestBody": {

View File

@@ -1,10 +1,10 @@
{
"operationId": "updateUserAuth",
"summary": "Update a User's Authentication",
"tags": ["Users"],
"tags": ["users"],
"security": [
{
"BearerAuth": ["users"]
"bearerAuth": ["admin"]
}
],
"parameters": [

View File

@@ -1,10 +1,10 @@
{
"operationId": "deleteUser",
"summary": "Delete a User",
"tags": ["Users"],
"tags": ["users"],
"security": [
{
"BearerAuth": ["users"]
"bearerAuth": ["admin"]
}
],
"parameters": [

View File

@@ -1,10 +1,10 @@
{
"operationId": "getUser",
"summary": "Get a user",
"tags": ["Users"],
"tags": ["users"],
"security": [
{
"BearerAuth": ["users"]
"bearerAuth": ["admin"]
}
],
"parameters": [

View File

@@ -1,10 +1,10 @@
{
"operationId": "loginAsUser",
"summary": "Login as this user",
"tags": ["Users"],
"tags": ["users"],
"security": [
{
"BearerAuth": ["users"]
"bearerAuth": ["admin"]
}
],
"parameters": [
@@ -35,11 +35,11 @@
"created_on": "2020-01-30T10:43:44.000Z",
"modified_on": "2020-01-30T10:43:44.000Z",
"is_disabled": false,
"email": "jc@jc21.com",
"name": "Jamie Curnow",
"nickname": "James",
"email": "user2@example.com",
"name": "John Doe",
"nickname": "Jonny",
"avatar": "//www.gravatar.com/avatar/3c8d73f45fd8763f827b964c76e6032a?default=mm",
"roles": ["admin"]
"roles": []
}
}
}
@@ -50,16 +50,15 @@
"required": ["expires", "token", "user"],
"additionalProperties": false,
"properties": {
"expires": {
"description": "Token Expiry Unix Time",
"example": 1566540249,
"minimum": 1,
"type": "number"
},
"token": {
"description": "JWT Token",
"example": "eyJhbGciOiJSUzUxMiIsInR5cCI6IkpXVCJ9.ey...xaHKYr3Kk6MvkUjcC4",
"type": "string"
"type": "string",
"example": "eyJhbGciOiJSUzUxMiIsInR5cCI6IkpXVCJ9.ey...xaHKYr3Kk6MvkUjcC4"
},
"expires": {
"description": "Token Expiry Timestamp",
"type": "string",
"example": "2020-01-30T10:43:44.000Z"
},
"user": {
"$ref": "../../../../components/user-object.json"

View File

@@ -1,10 +1,10 @@
{
"operationId": "updateUserPermissions",
"summary": "Update a User's Permissions",
"tags": ["Users"],
"tags": ["users"],
"security": [
{
"BearerAuth": ["users"]
"bearerAuth": ["admin"]
}
],
"parameters": [
@@ -27,6 +27,15 @@
"application/json": {
"schema": {
"$ref": "../../../../components/permission-object.json"
},
"example": {
"visibility": "all",
"access_lists": "view",
"certificates": "hidden",
"dead_hosts": "hidden",
"proxy_hosts": "manage",
"redirection_hosts": "hidden",
"streams": "hidden"
}
}
}

View File

@@ -1,10 +1,10 @@
{
"operationId": "updateUser",
"summary": "Update a User",
"tags": ["Users"],
"tags": ["users"],
"security": [
{
"BearerAuth": ["users"]
"bearerAuth": ["admin"]
}
],
"parameters": [