Merge 7b492c5cd572f9dd607a4becfdd68ed9b4999f96 into 79d28f03d035114b80dcd04845306ecb98175074

This commit is contained in:
Sander Jochems 2025-02-22 13:57:54 +00:00 committed by GitHub
commit 3a6b19e834
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
18 changed files with 310 additions and 92 deletions

View File

@ -68,6 +68,38 @@
"type": "integer", "type": "integer",
"minimum": 0 "minimum": 0
}, },
"access_directive": {
"type": "string",
"enum": ["allow", "deny"]
},
"access_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$"
}
]
},
"authorization_username": {
"type": "string",
"minLength": 1
},
"authorization_password": {
"type": "string",
"minLength": 1
},
"authorization_hint": {
"type": "string",
"minLength": 1
},
"domain_names": { "domain_names": {
"description": "Domain Names separated by a comma", "description": "Domain Names separated by a comma",
"type": "array", "type": "array",

View File

@ -0,0 +1,7 @@
{
"type": "array",
"description": "Access list list",
"items": {
"$ref": "./access-list-object.json"
}
}

View File

@ -20,26 +20,6 @@
"type": "string", "type": "string",
"minLength": 1 "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": { "satisfy_any": {
"type": "boolean" "type": "boolean"
}, },
@ -48,6 +28,76 @@
}, },
"meta": { "meta": {
"type": "object" "type": "object"
},
"owner": {
"$ref": "./user-object.json"
},
"items": {
"type": "array",
"minItems": 0,
"items": {
"type": "object",
"required": ["id", "created_on", "modified_on", "access_list_id", "username", "password", "hint", "meta"],
"additionalProperties": false,
"properties": {
"id": {
"$ref": "../common.json#/properties/id"
},
"created_on": {
"$ref": "../common.json#/properties/created_on"
},
"modified_on": {
"$ref": "../common.json#/properties/modified_on"
},
"access_list_id": {
"$ref": "../common.json#/properties/access_list_id"
},
"username": {
"$ref": "../common.json#/properties/authorization_username"
},
"password": {
"$ref": "../common.json#/properties/authorization_password"
},
"hint": {
"$ref": "../common.json#/properties/authorization_hint"
},
"meta": {
"type": "object"
}
}
}
},
"clients": {
"type": "array",
"minItems": 0,
"items": {
"type": "object",
"required": ["id", "created_on", "modified_on", "access_list_id", "address", "directive", "meta"],
"additionalProperties": false,
"properties": {
"id": {
"$ref": "../common.json#/properties/id"
},
"created_on": {
"$ref": "../common.json#/properties/created_on"
},
"modified_on": {
"$ref": "../common.json#/properties/modified_on"
},
"access_list_id": {
"$ref": "../common.json#/properties/access_list_id"
},
"address": {
"$ref": "../common.json#/properties/access_address"
},
"directive": {
"$ref": "../common.json#/properties/access_directive"
},
"meta": {
"type": "object"
}
}
}
} }
} }
} }

View File

@ -1,6 +1,7 @@
{ {
"type": "object", "type": "object",
"minProperties": 1, "required": ["visibility", "access_lists", "dead_hosts", "proxy_hosts", "redirection_hosts", "streams", "certificates"],
"additionalProperties": false,
"properties": { "properties": {
"visibility": { "visibility": {
"type": "string", "type": "string",

View File

@ -1,7 +1,7 @@
{ {
"type": "array", "type": "array",
"description": "Proxy Hosts list", "description": "Streams list",
"items": { "items": {
"$ref": "./proxy-host-object.json" "$ref": "./stream-object.json"
} }
} }

View File

@ -5,20 +5,13 @@
"additionalProperties": false, "additionalProperties": false,
"properties": { "properties": {
"id": { "id": {
"type": "integer", "$ref": "../common.json#/properties/id"
"description": "User ID",
"minimum": 1,
"example": 1
}, },
"created_on": { "created_on": {
"type": "string", "$ref": "../common.json#/properties/created_on"
"description": "Created Date",
"example": "2020-01-30T09:36:08.000Z"
}, },
"modified_on": { "modified_on": {
"type": "string", "$ref": "../common.json#/properties/modified_on"
"description": "Modified Date",
"example": "2020-01-30T09:41:04.000Z"
}, },
"is_disabled": { "is_disabled": {
"type": "boolean", "type": "boolean",
@ -54,6 +47,9 @@
"items": { "items": {
"type": "string" "type": "string"
} }
},
"permissions": {
"$ref": "./permission-object.json"
} }
} }
} }

View File

@ -14,7 +14,7 @@
"description": "Expansions", "description": "Expansions",
"schema": { "schema": {
"type": "string", "type": "string",
"enum": ["owner", "items", "clients", "proxy_hosts"] "enum": ["owner", "items", "clients"]
} }
} }
], ],
@ -35,13 +35,60 @@
"meta": {}, "meta": {},
"satisfy_any": true, "satisfy_any": true,
"pass_auth": false, "pass_auth": false,
"proxy_host_count": 0 "proxy_host_count": 0,
"owner": {
"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"
]
},
"items": [
{
"id": 1,
"created_on": "2024-10-08T22:15:40.000Z",
"modified_on": "2024-10-08T22:15:40.000Z",
"access_list_id": 1,
"username": "admin",
"password": "",
"meta": {},
"hint": "a****"
},
{
"id": 2,
"created_on": "2024-10-08T22:15:40.000Z",
"modified_on": "2024-10-08T22:15:40.000Z",
"access_list_id": 1,
"username": "asdad",
"password": "",
"meta": {},
"hint": "a*****"
}
],
"clients": [
{
"id": 1,
"created_on": "2024-10-08T22:15:40.000Z",
"modified_on": "2024-10-08T22:15:40.000Z",
"access_list_id": 1,
"address": "127.0.0.1",
"directive": "allow",
"meta": {}
}
]
} }
] ]
} }
}, },
"schema": { "schema": {
"$ref": "../../../components/access-list-object.json" "$ref": "../../../components/access-list-list.json"
} }
} }
} }

View File

@ -17,6 +17,15 @@
}, },
"required": true, "required": true,
"example": 1 "example": 1
},
{
"in": "query",
"name": "expand",
"description": "Expansions",
"schema": {
"type": "string",
"enum": ["owner", "items", "clients"]
}
} }
], ],
"responses": { "responses": {
@ -28,14 +37,61 @@
"default": { "default": {
"value": { "value": {
"id": 1, "id": 1,
"created_on": "2020-01-30T09:36:08.000Z", "created_on": "2024-10-08T22:15:40.000Z",
"modified_on": "2020-01-30T09:41:04.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,
"owner": {
"id": 1,
"created_on": "2024-10-07T22:43:55.000Z",
"modified_on": "2024-10-08T12:52:54.000Z",
"is_deleted": false,
"is_disabled": false, "is_disabled": false,
"email": "jc@jc21.com", "email": "admin@example.com",
"name": "Jamie Curnow", "name": "Administrator",
"nickname": "James", "nickname": "some guy",
"avatar": "//www.gravatar.com/avatar/6193176330f8d38747f038c170ddb193?default=mm", "avatar": "//www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?default=mm",
"roles": ["admin"] "roles": [
"admin"
]
},
"items": [
{
"id": 1,
"created_on": "2024-10-08T22:15:40.000Z",
"modified_on": "2024-10-08T22:15:40.000Z",
"access_list_id": 1,
"username": "admin",
"password": "",
"meta": {},
"hint": "a****"
},
{
"id": 2,
"created_on": "2024-10-08T22:15:40.000Z",
"modified_on": "2024-10-08T22:15:40.000Z",
"access_list_id": 1,
"username": "asdad",
"password": "",
"meta": {},
"hint": "a*****"
}
],
"clients": [
{
"id": 1,
"created_on": "2024-10-08T22:15:40.000Z",
"modified_on": "2024-10-08T22:15:40.000Z",
"access_list_id": 1,
"address": "127.0.0.1",
"directive": "allow",
"meta": {}
}
]
} }
} }
}, },

View File

@ -45,11 +45,10 @@
"additionalProperties": false, "additionalProperties": false,
"properties": { "properties": {
"username": { "username": {
"type": "string", "$ref": "../../../../common.json#/properties/authorization_username"
"minLength": 1
}, },
"password": { "password": {
"type": "string" "$ref": "../../../../common.json#/properties/authorization_password"
} }
} }
} }
@ -61,23 +60,10 @@
"additionalProperties": false, "additionalProperties": false,
"properties": { "properties": {
"address": { "address": {
"oneOf": [ "$ref": "../../../../common.json#/properties/access_address"
{
"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": { "directive": {
"$ref": "../../../../components/access-list-object.json#/properties/directive" "$ref": "../../../../common.json#/properties/access_directive"
} }
} }
} }
@ -97,9 +83,9 @@
"value": { "value": {
"id": 1, "id": 1,
"created_on": "2024-10-08T22:15:40.000Z", "created_on": "2024-10-08T22:15:40.000Z",
"modified_on": "2024-10-08T22:34:34.000Z", "modified_on": "2024-10-08T22:15:40.000Z",
"owner_user_id": 1, "owner_user_id": 1,
"name": "test123!!", "name": "test1234",
"meta": {}, "meta": {},
"satisfy_any": true, "satisfy_any": true,
"pass_auth": false, "pass_auth": false,
@ -148,8 +134,7 @@
"directive": "allow", "directive": "allow",
"meta": {} "meta": {}
} }
], ]
"proxy_hosts": []
} }
} }
}, },

View File

@ -33,12 +33,10 @@
"additionalProperties": false, "additionalProperties": false,
"properties": { "properties": {
"username": { "username": {
"type": "string", "$ref": "../../../common.json#/properties/authorization_username"
"minLength": 1
}, },
"password": { "password": {
"type": "string", "$ref": "../../../common.json#/properties/authorization_password"
"minLength": 1
} }
} }
} }
@ -50,23 +48,10 @@
"additionalProperties": false, "additionalProperties": false,
"properties": { "properties": {
"address": { "address": {
"oneOf": [ "$ref": "../../../common.json#/properties/access_address"
{
"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": { "directive": {
"$ref": "../../../components/access-list-object.json#/properties/directive" "$ref": "../../../common.json#/properties/access_directive"
} }
} }
} }
@ -130,7 +115,6 @@
"hint": "a*****" "hint": "a*****"
} }
], ],
"proxy_hosts": [],
"clients": [ "clients": [
{ {
"id": 1, "id": 1,

View File

@ -17,6 +17,15 @@
}, },
"required": true, "required": true,
"example": 1 "example": 1
},
{
"in": "query",
"name": "expand",
"description": "Expansions",
"schema": {
"type": "string",
"enum": ["owner"]
}
} }
], ],
"responses": { "responses": {

View File

@ -30,13 +30,16 @@
"required": ["certificate", "certificate_key"], "required": ["certificate", "certificate_key"],
"properties": { "properties": {
"certificate": { "certificate": {
"type": "string" "type": "string",
"format": "binary"
}, },
"certificate_key": { "certificate_key": {
"type": "string" "type": "string",
"format": "binary"
}, },
"intermediate_certificate": { "intermediate_certificate": {
"type": "string" "type": "string",
"format": "binary"
} }
} }
} }

View File

@ -18,13 +18,16 @@
"required": ["certificate", "certificate_key"], "required": ["certificate", "certificate_key"],
"properties": { "properties": {
"certificate": { "certificate": {
"type": "string" "type": "string",
"format": "binary"
}, },
"certificate_key": { "certificate_key": {
"type": "string" "type": "string",
"format": "binary"
}, },
"intermediate_certificate": { "intermediate_certificate": {
"type": "string" "type": "string",
"format": "binary"
} }
} }
} }

View File

@ -17,6 +17,15 @@
}, },
"required": true, "required": true,
"example": 1 "example": 1
},
{
"in": "query",
"name": "expand",
"description": "Expansions",
"schema": {
"type": "string",
"enum": ["owner", "certificate"]
}
} }
], ],
"responses": { "responses": {

View File

@ -17,6 +17,15 @@
}, },
"required": true, "required": true,
"example": 1 "example": 1
},
{
"in": "query",
"name": "expand",
"description": "Expansions",
"schema": {
"type": "string",
"enum": ["access_list", "owner", "certificate"]
}
} }
], ],
"responses": { "responses": {

View File

@ -17,6 +17,15 @@
}, },
"required": true, "required": true,
"example": 1 "example": 1
},
{
"in": "query",
"name": "expand",
"description": "Expansions",
"schema": {
"type": "string",
"enum": ["owner", "certificate"]
}
} }
], ],
"responses": { "responses": {

View File

@ -17,6 +17,15 @@
}, },
"required": true, "required": true,
"example": 2 "example": 2
},
{
"in": "query",
"name": "expand",
"description": "Expansions",
"schema": {
"type": "string",
"enum": ["owner", "certificate"]
}
} }
], ],
"responses": { "responses": {

View File

@ -26,6 +26,15 @@
"required": true, "required": true,
"description": "User ID or 'me' for yourself", "description": "User ID or 'me' for yourself",
"example": 1 "example": 1
},
{
"in": "query",
"name": "expand",
"description": "Expansions",
"schema": {
"type": "string",
"enum": ["permissions"]
}
} }
], ],
"responses": { "responses": {