Access lists shell, redirections work

This commit is contained in:
Jamie Curnow
2018-07-24 16:56:39 +10:00
parent 9da4f8ae87
commit 2a0c83433e
43 changed files with 2094 additions and 178 deletions

View File

@ -116,6 +116,12 @@
"type": "integer",
"minimum": 1
},
"access_list_id": {
"description": "Access List ID",
"example": 1234,
"type": "integer",
"minimum": 0
},
"name": {
"type": "string",
"minLength": 1,
@ -135,6 +141,12 @@
"minLength": 8,
"maxLength": 255
},
"domain_name": {
"description": "Domain Name",
"example": "jc21.com",
"type": "string",
"pattern": "^(?:[^.*]+\\.?)+[^.]$"
},
"domain_names": {
"description": "Domain Names separated by a comma",
"example": "*.jc21.com,blog.jc21.com",
@ -159,6 +171,16 @@
"ssl_provider": {
"type": "string",
"pattern": "^(letsencrypt|other)$"
},
"block_exploits": {
"description": "Should we block common exploits",
"example": true,
"type": "boolean"
},
"caching_enabled": {
"description": "Should we cache assets",
"example": true,
"type": "boolean"
}
}
}

View File

@ -36,6 +36,15 @@
"ssl_provider": {
"$ref": "../definitions.json#/definitions/ssl_provider"
},
"block_exploits": {
"$ref": "../definitions.json#/definitions/block_exploits"
},
"caching_enabled": {
"$ref": "../definitions.json#/definitions/caching_enabled"
},
"access_list_id": {
"$ref": "../definitions.json#/definitions/access_list_id"
},
"meta": {
"type": "object",
"additionalProperties": false,
@ -78,6 +87,15 @@
"ssl_provider": {
"$ref": "#/definitions/ssl_provider"
},
"block_exploits": {
"$ref": "#/definitions/block_exploits"
},
"caching_enabled": {
"$ref": "#/definitions/caching_enabled"
},
"access_list_id": {
"$ref": "#/definitions/access_list_id"
},
"meta": {
"$ref": "#/definitions/meta"
}
@ -136,6 +154,15 @@
"ssl_provider": {
"$ref": "#/definitions/ssl_provider"
},
"block_exploits": {
"$ref": "#/definitions/block_exploits"
},
"caching_enabled": {
"$ref": "#/definitions/caching_enabled"
},
"access_list_id": {
"$ref": "#/definitions/access_list_id"
},
"meta": {
"$ref": "#/definitions/meta"
}
@ -178,6 +205,15 @@
"ssl_provider": {
"$ref": "#/definitions/ssl_provider"
},
"block_exploits": {
"$ref": "#/definitions/block_exploits"
},
"caching_enabled": {
"$ref": "#/definitions/caching_enabled"
},
"access_list_id": {
"$ref": "#/definitions/access_list_id"
},
"meta": {
"$ref": "#/definitions/meta"
}

View File

@ -1,7 +1,7 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "endpoints/redirection-hosts",
"title": "Users",
"title": "Redirection Hosts",
"description": "Endpoints relating to Redirection Hosts",
"stability": "stable",
"type": "object",
@ -15,49 +15,83 @@
"modified_on": {
"$ref": "../definitions.json#/definitions/modified_on"
},
"name": {
"description": "Name",
"example": "Jamie Curnow",
"type": "string",
"minLength": 2,
"maxLength": 100
"domain_names": {
"$ref": "../definitions.json#/definitions/domain_names"
},
"nickname": {
"description": "Nickname",
"example": "Jamie",
"type": "string",
"minLength": 2,
"maxLength": 50
"forward_domain_name": {
"$ref": "../definitions.json#/definitions/domain_name"
},
"email": {
"$ref": "../definitions.json#/definitions/email"
},
"avatar": {
"description": "Avatar",
"example": "http://somewhere.jpg",
"type": "string",
"minLength": 2,
"maxLength": 150,
"readOnly": true
},
"roles": {
"description": "Roles",
"example": [
"admin"
],
"type": "array"
},
"is_disabled": {
"description": "Is Disabled",
"example": false,
"preserve_path": {
"description": "Should the path be preserved",
"example": true,
"type": "boolean"
},
"ssl_enabled": {
"$ref": "../definitions.json#/definitions/ssl_enabled"
},
"ssl_forced": {
"$ref": "../definitions.json#/definitions/ssl_forced"
},
"ssl_provider": {
"$ref": "../definitions.json#/definitions/ssl_provider"
},
"block_exploits": {
"$ref": "../definitions.json#/definitions/block_exploits"
},
"meta": {
"type": "object",
"additionalProperties": false,
"properties": {
"letsencrypt_email": {
"type": "string",
"format": "email"
},
"letsencrypt_agree": {
"type": "boolean"
}
}
}
},
"properties": {
"id": {
"$ref": "#/definitions/id"
},
"created_on": {
"$ref": "#/definitions/created_on"
},
"modified_on": {
"$ref": "#/definitions/modified_on"
},
"domain_names": {
"$ref": "#/definitions/domain_names"
},
"forward_domain_name": {
"$ref": "#/definitions/forward_domain_name"
},
"preserve_path": {
"$ref": "#/definitions/preserve_path"
},
"ssl_enabled": {
"$ref": "#/definitions/ssl_enabled"
},
"ssl_forced": {
"$ref": "#/definitions/ssl_forced"
},
"ssl_provider": {
"$ref": "#/definitions/ssl_provider"
},
"block_exploits": {
"$ref": "#/definitions/block_exploits"
},
"meta": {
"$ref": "#/definitions/meta"
}
},
"links": [
{
"title": "List",
"description": "Returns a list of Users",
"href": "/users",
"description": "Returns a list of Redirection Hosts",
"href": "/nginx/redirection-hosts",
"access": "private",
"method": "GET",
"rel": "self",
@ -73,8 +107,8 @@
},
{
"title": "Create",
"description": "Creates a new User",
"href": "/users",
"description": "Creates a new Redirection Host",
"href": "/nginx/redirection-hosts",
"access": "private",
"method": "POST",
"rel": "create",
@ -84,33 +118,33 @@
"schema": {
"type": "object",
"required": [
"name",
"nickname",
"email"
"domain_names",
"forward_domain_name"
],
"properties": {
"name": {
"$ref": "#/definitions/name"
"domain_names": {
"$ref": "#/definitions/domain_names"
},
"nickname": {
"$ref": "#/definitions/nickname"
"forward_domain_name": {
"$ref": "#/definitions/forward_domain_name"
},
"email": {
"$ref": "#/definitions/email"
"preserve_path": {
"$ref": "#/definitions/preserve_path"
},
"roles": {
"$ref": "#/definitions/roles"
"ssl_enabled": {
"$ref": "#/definitions/ssl_enabled"
},
"is_disabled": {
"$ref": "#/definitions/is_disabled"
"ssl_forced": {
"$ref": "#/definitions/ssl_forced"
},
"auth": {
"type": "object",
"description": "Auth Credentials",
"example": {
"type": "password",
"secret": "bigredhorsebanana"
}
"ssl_provider": {
"$ref": "#/definitions/ssl_provider"
},
"block_exploits": {
"$ref": "#/definitions/block_exploits"
},
"meta": {
"$ref": "#/definitions/meta"
}
}
},
@ -122,8 +156,8 @@
},
{
"title": "Update",
"description": "Updates a existing User",
"href": "/users/{definitions.identity.example}",
"description": "Updates a existing Redirection Host",
"href": "/nginx/redirection-hosts/{definitions.identity.example}",
"access": "private",
"method": "PUT",
"rel": "update",
@ -133,20 +167,29 @@
"schema": {
"type": "object",
"properties": {
"name": {
"$ref": "#/definitions/name"
"domain_names": {
"$ref": "#/definitions/domain_names"
},
"nickname": {
"$ref": "#/definitions/nickname"
"forward_domain_name": {
"$ref": "#/definitions/forward_domain_name"
},
"email": {
"$ref": "#/definitions/email"
"preserve_path": {
"$ref": "#/definitions/preserve_path"
},
"roles": {
"$ref": "#/definitions/roles"
"ssl_enabled": {
"$ref": "#/definitions/ssl_enabled"
},
"is_disabled": {
"$ref": "#/definitions/is_disabled"
"ssl_forced": {
"$ref": "#/definitions/ssl_forced"
},
"ssl_provider": {
"$ref": "#/definitions/ssl_provider"
},
"block_exploits": {
"$ref": "#/definitions/block_exploits"
},
"meta": {
"$ref": "#/definitions/meta"
}
}
},
@ -158,8 +201,8 @@
},
{
"title": "Delete",
"description": "Deletes a existing User",
"href": "/users/{definitions.identity.example}",
"description": "Deletes a existing Redirection Host",
"href": "/nginx/redirection-hosts/{definitions.identity.example}",
"access": "private",
"method": "DELETE",
"rel": "delete",
@ -170,34 +213,5 @@
"type": "boolean"
}
}
],
"properties": {
"id": {
"$ref": "#/definitions/id"
},
"created_on": {
"$ref": "#/definitions/created_on"
},
"modified_on": {
"$ref": "#/definitions/modified_on"
},
"name": {
"$ref": "#/definitions/name"
},
"nickname": {
"$ref": "#/definitions/nickname"
},
"email": {
"$ref": "#/definitions/email"
},
"avatar": {
"$ref": "#/definitions/avatar"
},
"roles": {
"$ref": "#/definitions/roles"
},
"is_disabled": {
"$ref": "#/definitions/is_disabled"
}
}
]
}