Commit dc428cf6 authored by Jérome Perrin's avatar Jérome Perrin

*: reformat json with format-json

parent cecf100b
...@@ -18,7 +18,10 @@ ...@@ -18,7 +18,10 @@
}, },
"serialisation": { "serialisation": {
"description": "How the parameters and results are serialised", "description": "How the parameters and results are serialised",
"enum": ["xml", "json-in-xml"], "enum": [
"xml",
"json-in-xml"
],
"type": "string" "type": "string"
}, },
"software-type": { "software-type": {
...@@ -44,7 +47,10 @@ ...@@ -44,7 +47,10 @@
}, },
"serialisation": { "serialisation": {
"description": "How the parameters and results are serialised, if different from global setting, required if global setting is not provided", "description": "How the parameters and results are serialised, if different from global setting, required if global setting is not provided",
"enum": ["xml", "json-in-xml"], "enum": [
"xml",
"json-in-xml"
],
"type": "string" "type": "string"
}, },
"request": { "request": {
...@@ -55,11 +61,11 @@ ...@@ -55,11 +61,11 @@
"description": "URL, relative to Software Release base path, of a json schema for values published by instance of current software type", "description": "URL, relative to Software Release base path, of a json schema for values published by instance of current software type",
"type": "string" "type": "string"
}, },
"software-type" : { "software-type": {
"description": "Value to be used as software type instead of the software type id (in order to use multiple diferent forms for the same software type).", "description": "Value to be used as software type instead of the software type id (in order to use multiple diferent forms for the same software type).",
"type": "string" "type": "string"
}, },
"shared" : { "shared": {
"description": "Define if the request will request a Slave or Software Instance.", "description": "Define if the request will request a Slave or Software Instance.",
"default": "false", "default": "false",
"type": "boolean" "type": "boolean"
...@@ -78,4 +84,3 @@ ...@@ -78,4 +84,3 @@
}, },
"type": "object" "type": "object"
} }
...@@ -12,4 +12,4 @@ ...@@ -12,4 +12,4 @@
"type": "string" "type": "string"
} }
} }
} }
\ No newline at end of file
{ {
"id": "http://json-schema.org/draft-04/schema#", "id": "http://json-schema.org/draft-04/schema#",
"$schema": "http://json-schema.org/draft-04/schema#", "$schema": "http://json-schema.org/draft-04/schema#",
"description": "Core schema meta-schema", "description": "Core schema meta-schema",
"definitions": { "definitions": {
"schemaArray": { "schemaArray": {
"type": "array", "type": "array",
"minItems": 1, "minItems": 1,
"items": { "$ref": "#" } "items": {
"$ref": "#"
}
},
"positiveInteger": {
"type": "integer",
"minimum": 0
},
"positiveIntegerDefault0": {
"allOf": [
{
"$ref": "#/definitions/positiveInteger"
}, },
"positiveInteger": { {
"type": "integer", "default": 0
"minimum": 0 }
]
},
"simpleTypes": {
"enum": [
"array",
"boolean",
"integer",
"null",
"number",
"object",
"string"
]
},
"stringArray": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 1,
"uniqueItems": true
}
},
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uri"
},
"$schema": {
"type": "string",
"format": "uri"
},
"title": {
"type": "string"
},
"description": {
"type": "string"
},
"default": {},
"multipleOf": {
"type": "number",
"minimum": 0,
"exclusiveMinimum": true
},
"maximum": {
"type": "number"
},
"exclusiveMaximum": {
"type": "boolean",
"default": false
},
"minimum": {
"type": "number"
},
"exclusiveMinimum": {
"type": "boolean",
"default": false
},
"maxLength": {
"$ref": "#/definitions/positiveInteger"
},
"minLength": {
"$ref": "#/definitions/positiveIntegerDefault0"
},
"pattern": {
"type": "string",
"format": "regex"
},
"additionalItems": {
"anyOf": [
{
"type": "boolean"
}, },
"positiveIntegerDefault0": { {
"allOf": [ { "$ref": "#/definitions/positiveInteger" }, { "default": 0 } ] "$ref": "#"
}
],
"default": {}
},
"items": {
"anyOf": [
{
"$ref": "#"
}, },
"simpleTypes": { {
"enum": [ "array", "boolean", "integer", "null", "number", "object", "string" ] "$ref": "#/definitions/schemaArray"
}
],
"default": {}
},
"maxItems": {
"$ref": "#/definitions/positiveInteger"
},
"minItems": {
"$ref": "#/definitions/positiveIntegerDefault0"
},
"uniqueItems": {
"type": "boolean",
"default": false
},
"maxProperties": {
"$ref": "#/definitions/positiveInteger"
},
"minProperties": {
"$ref": "#/definitions/positiveIntegerDefault0"
},
"required": {
"$ref": "#/definitions/stringArray"
},
"additionalProperties": {
"anyOf": [
{
"type": "boolean"
}, },
"stringArray": { {
"type": "array", "$ref": "#"
"items": { "type": "string" },
"minItems": 1,
"uniqueItems": true
} }
],
"default": {}
},
"definitions": {
"type": "object",
"additionalProperties": {
"$ref": "#"
},
"default": {}
}, },
"type": "object",
"properties": { "properties": {
"id": { "type": "object",
"type": "string", "additionalProperties": {
"format": "uri" "$ref": "#"
}, },
"$schema": { "default": {}
"type": "string", },
"format": "uri" "patternProperties": {
}, "type": "object",
"title": { "additionalProperties": {
"type": "string" "$ref": "#"
}, },
"description": { "default": {}
"type": "string"
},
"default": {},
"multipleOf": {
"type": "number",
"minimum": 0,
"exclusiveMinimum": true
},
"maximum": {
"type": "number"
},
"exclusiveMaximum": {
"type": "boolean",
"default": false
},
"minimum": {
"type": "number"
},
"exclusiveMinimum": {
"type": "boolean",
"default": false
},
"maxLength": { "$ref": "#/definitions/positiveInteger" },
"minLength": { "$ref": "#/definitions/positiveIntegerDefault0" },
"pattern": {
"type": "string",
"format": "regex"
},
"additionalItems": {
"anyOf": [
{ "type": "boolean" },
{ "$ref": "#" }
],
"default": {}
},
"items": {
"anyOf": [
{ "$ref": "#" },
{ "$ref": "#/definitions/schemaArray" }
],
"default": {}
},
"maxItems": { "$ref": "#/definitions/positiveInteger" },
"minItems": { "$ref": "#/definitions/positiveIntegerDefault0" },
"uniqueItems": {
"type": "boolean",
"default": false
},
"maxProperties": { "$ref": "#/definitions/positiveInteger" },
"minProperties": { "$ref": "#/definitions/positiveIntegerDefault0" },
"required": { "$ref": "#/definitions/stringArray" },
"additionalProperties": {
"anyOf": [
{ "type": "boolean" },
{ "$ref": "#" }
],
"default": {}
},
"definitions": {
"type": "object",
"additionalProperties": { "$ref": "#" },
"default": {}
},
"properties": {
"type": "object",
"additionalProperties": { "$ref": "#" },
"default": {}
},
"patternProperties": {
"type": "object",
"additionalProperties": { "$ref": "#" },
"default": {}
},
"dependencies": {
"type": "object",
"additionalProperties": {
"anyOf": [
{ "$ref": "#" },
{ "$ref": "#/definitions/stringArray" }
]
}
},
"enum": {
"type": "array",
"minItems": 1,
"uniqueItems": true
},
"type": {
"anyOf": [
{ "$ref": "#/definitions/simpleTypes" },
{
"type": "array",
"items": { "$ref": "#/definitions/simpleTypes" },
"minItems": 1,
"uniqueItems": true
}
]
},
"allOf": { "$ref": "#/definitions/schemaArray" },
"anyOf": { "$ref": "#/definitions/schemaArray" },
"oneOf": { "$ref": "#/definitions/schemaArray" },
"not": { "$ref": "#" }
}, },
"dependencies": { "dependencies": {
"exclusiveMaximum": [ "maximum" ], "type": "object",
"exclusiveMinimum": [ "minimum" ] "additionalProperties": {
"anyOf": [
{
"$ref": "#"
},
{
"$ref": "#/definitions/stringArray"
}
]
}
},
"enum": {
"type": "array",
"minItems": 1,
"uniqueItems": true
},
"type": {
"anyOf": [
{
"$ref": "#/definitions/simpleTypes"
},
{
"type": "array",
"items": {
"$ref": "#/definitions/simpleTypes"
},
"minItems": 1,
"uniqueItems": true
}
]
},
"allOf": {
"$ref": "#/definitions/schemaArray"
},
"anyOf": {
"$ref": "#/definitions/schemaArray"
},
"oneOf": {
"$ref": "#/definitions/schemaArray"
}, },
"default": {} "not": {
"$ref": "#"
}
},
"dependencies": {
"exclusiveMaximum": [
"maximum"
],
"exclusiveMinimum": [
"minimum"
]
},
"default": {}
} }
...@@ -14,7 +14,10 @@ ...@@ -14,7 +14,10 @@
"serialisation": { "serialisation": {
"description": "How the parameters and results are serialised", "description": "How the parameters and results are serialised",
"require": true, "require": true,
"enum": ["xml", "json-in-xml"], "enum": [
"xml",
"json-in-xml"
],
"type": "string" "type": "string"
}, },
"software-type": { "software-type": {
...@@ -35,7 +38,10 @@ ...@@ -35,7 +38,10 @@
}, },
"serialisation": { "serialisation": {
"description": "How the parameters and results are serialised, if different from global setting", "description": "How the parameters and results are serialised, if different from global setting",
"enum": ["xml", "json-in-xml"], "enum": [
"xml",
"json-in-xml"
],
"type": "string" "type": "string"
}, },
"request": { "request": {
...@@ -48,11 +54,11 @@ ...@@ -48,11 +54,11 @@
"description": "URL, relative to Software Release base path, of a json schema for values published by instance of current software type", "description": "URL, relative to Software Release base path, of a json schema for values published by instance of current software type",
"type": "string" "type": "string"
}, },
"software-type" : { "software-type": {
"description": "Value to be used as software type instead of the software type id (in order to use multiple diferent forms for the same software type).", "description": "Value to be used as software type instead of the software type id (in order to use multiple diferent forms for the same software type).",
"type": "string" "type": "string"
}, },
"shared" : { "shared": {
"description": "Define if the request will request a Slave or Software Instance.", "description": "Define if the request will request a Slave or Software Instance.",
"type": "boolean" "type": "boolean"
}, },
...@@ -69,4 +75,3 @@ ...@@ -69,4 +75,3 @@
}, },
"type": "object" "type": "object"
} }
{ {
"type": "object", "type": "object",
"$schema": "http://json-schema.org/draft-04/schema", "$schema": "http://json-schema.org/draft-04/schema",
"title": "Input Parameters",
"title": "Input Parameters", "properties": {
"properties": { "public-ipv4": {
"public-ipv4": { "title": "Public IPv4",
"title": "Public IPv4", "description": "Public ipv4 of the frontend (the one Apache will be indirectly listening to).",
"description": "Public ipv4 of the frontend (the one Apache will be indirectly listening to).", "type": "string"
"type": "string" },
}, "ip-read-limit": {
"ip-read-limit": { "title": "IPReadLimit",
"title": "IPReadLimit", "description": "Value used to set IPReadLimit Parameter for antiloris.",
"description": "Value used to set IPReadLimit Parameter for antiloris.", "type": "integer",
"type": "integer", "default": 10
"default": 10 },
}, "mpm-server-limit": {
"mpm-server-limit": { "title": "ServerLimit",
"title": "ServerLimit", "description": "Value used to set ServerLimit on apache configuration.",
"description": "Value used to set ServerLimit on apache configuration.", "type": "integer",
"type": "integer", "default": 16
"default": 16 },
}, "mpm-max-clients": {
"mpm-max-clients": { "title": "MaxClients",
"title": "MaxClients", "description": "Value used to set MaxClients on apache configuration.",
"description": "Value used to set MaxClients on apache configuration.", "type": "integer",
"type": "integer", "default": 400
"default": 400 },
}, "mpm-start-servers": {
"mpm-start-servers": { "title": "StartServers",
"title": "StartServers", "description": "Value used to set StartServers on apache configuration.",
"description": "Value used to set StartServers on apache configuration.", "type": "integer",
"type": "integer", "default": 3
"default": 3 },
}, "mpm-thread-per-child": {
"mpm-thread-per-child": { "title": "ThreadsPerChild",
"title": "ThreadsPerChild", "description": "Value used to set ThreadsPerChild on apache configuration.",
"description": "Value used to set ThreadsPerChild on apache configuration.", "type": "integer",
"type": "integer", "default": 25
"default": 25 },
}, "mpm-graceful-shutdown-timeout": {
"mpm-graceful-shutdown-timeout": { "title": "ThreadsPerChild",
"title": "ThreadsPerChild", "description": "Value used to set ThreadsPerChild on apache configuration.",
"description": "Value used to set ThreadsPerChild on apache configuration.", "type": "integer",
"type": "integer", "default": 5
"default": 5 },
}, "enable-http2-by-default": {
"enable-http2-by-default": { "title": "Enable HTTP2 by Default",
"title": "Enable HTTP2 by Default", "description": "Use HTTP2 as default Protocol",
"description": "Use HTTP2 as default Protocol", "type": "string",
"type": "string", "default": "true",
"default": "true", "enum": [
"enum": ["true", "false"] "true",
}, "false"
"re6st-verification-url": { ]
"title": "Test Verification URL", },
"description": "Url to verify if the internet and/or re6stnet is working.", "re6st-verification-url": {
"type": "string" "title": "Test Verification URL",
}, "description": "Url to verify if the internet and/or re6stnet is working.",
"-frontend-authorized-slave-string": { "type": "string"
"title": "Authorized Slave String", },
"description": "List of SOFTINST-XXX of Slaves, separated by space which is allowed to use custom configuration.", "-frontend-authorized-slave-string": {
"type": "string" "title": "Authorized Slave String",
}, "description": "List of SOFTINST-XXX of Slaves, separated by space which is allowed to use custom configuration.",
"apache-key": { "type": "string"
"title": "Apache Key", },
"description": "Apache Key", "apache-key": {
"textarea": true, "title": "Apache Key",
"type": "string" "description": "Apache Key",
}, "textarea": true,
"apache-certificate": { "type": "string"
"title": "Apache Certificate", },
"description": "Apache Certificate", "apache-certificate": {
"textarea": true, "title": "Apache Certificate",
"type": "string" "description": "Apache Certificate",
}, "textarea": true,
"apache-ca-certificate": { "type": "string"
"title": "Apache CA Certificate", },
"description": "Apache CA Certificate", "apache-ca-certificate": {
"textarea": true, "title": "Apache CA Certificate",
"type": "string" "description": "Apache CA Certificate",
}, "textarea": true,
"domain": { "type": "string"
"title": "Domain", },
"description": "Base Domain for create subdomains (ie.: example.com).", "domain": {
"type": "string", "title": "Domain",
"pattern": "^([a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?\\.)+[a-zA-Z]{2,6}$" "description": "Base Domain for create subdomains (ie.: example.com).",
}, "type": "string",
"nginx-domain": { "pattern": "^([a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?\\.)+[a-zA-Z]{2,6}$"
"title": "Nginx Domain", },
"description": "Base Domain for create subdomains (ie.: example2.com) for websocket, notebook and eventsource.", "nginx-domain": {
"type": "string", "title": "Nginx Domain",
"pattern": "^([a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?\\.)+[a-zA-Z]{2,6}$" "description": "Base Domain for create subdomains (ie.: example2.com) for websocket, notebook and eventsource.",
}, "type": "string",
"-frontend-quantity": { "pattern": "^([a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?\\.)+[a-zA-Z]{2,6}$"
"title": "Frontend Replication Quantity", },
"description": "Quantity of Frontends Replicate.", "-frontend-quantity": {
"type": "integer" "title": "Frontend Replication Quantity",
} "description": "Quantity of Frontends Replicate.",
} "type": "integer"
}
}
} }
...@@ -6,31 +6,31 @@ ...@@ -6,31 +6,31 @@
"description": "Amount of Slaves allocated to the Instance which are deployed", "description": "Amount of Slaves allocated to the Instance which are deployed",
"type": "integer" "type": "integer"
}, },
"slave-amount": { "slave-amount": {
"description": "Total amount of Slaves allocated to the Instance (include blocked ones)", "description": "Total amount of Slaves allocated to the Instance (include blocked ones)",
"type": "integer" "type": "integer"
}, },
"reject-slave-amount": { "reject-slave-amount": {
"description": "Rejected Amount of Slaves allocated to the Instance which are not deployed", "description": "Rejected Amount of Slaves allocated to the Instance which are not deployed",
"type": "integer" "type": "integer"
}, },
"rejected-slave-list": { "rejected-slave-list": {
"description": "List of slave instances references which are rejected", "description": "List of slave instances references which are rejected",
"type": "array" "type": "array"
}, },
"domain": { "domain": {
"description": "Base domain used by the instance", "description": "Base domain used by the instance",
"type": "string" "type": "string"
}, },
"monitor-base-url": { "monitor-base-url": {
"description": "Base url for monitor", "description": "Base url for monitor",
"type": "string" "type": "string"
}, },
"monitor-url": { "monitor-url": {
"description": "Url of Monitor (opml)", "description": "Url of Monitor (opml)",
"type": "string" "type": "string"
}, },
"monitor-password": { "monitor-password": {
"description": "Password to access the monitor", "description": "Password to access the monitor",
"type": "string" "type": "string"
}, },
......
{ {
"type": "object", "type": "object",
"$schema": "http://json-schema.org/draft-04/schema", "$schema": "http://json-schema.org/draft-04/schema",
"title": "Input Parameters", "title": "Input Parameters",
"properties": { "properties": {
"url": { "url": {
...@@ -22,7 +21,6 @@ ...@@ -22,7 +21,6 @@
"type": "string", "type": "string",
"pattern": "^([a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?\\.)+[a-zA-Z]{2,6}$" "pattern": "^([a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?\\.)+[a-zA-Z]{2,6}$"
}, },
"server-alias": { "server-alias": {
"title": "Server Alias", "title": "Server Alias",
"description": "Server Alias List separated by space", "description": "Server Alias List separated by space",
...@@ -34,23 +32,26 @@ ...@@ -34,23 +32,26 @@
"description": "Type of slave. If redirect, the slave will redirect to the given url. If zope, the rewrite rules will be compatible with Virtual Host Monster", "description": "Type of slave. If redirect, the slave will redirect to the given url. If zope, the rewrite rules will be compatible with Virtual Host Monster",
"type": "string", "type": "string",
"default": "", "default": "",
"enum": ["", "zope", "redirect", "notebook", "eventsource"] "enum": [
"",
"zope",
"redirect",
"notebook",
"eventsource"
]
}, },
"path": { "path": {
"title": "Backend Path", "title": "Backend Path",
"description": "Path to proxy to in the backend", "description": "Path to proxy to in the backend",
"type": "string", "type": "string",
"default": "" "default": ""
}, },
"default-path": { "default-path": {
"title": "Default Path", "title": "Default Path",
"description": "Provide default path to redirect user to when user access / (the site root)", "description": "Provide default path to redirect user to when user access / (the site root)",
"type": "string", "type": "string",
"default": "" "default": ""
}, },
"ssl_crt": { "ssl_crt": {
"title": "SSL Certificate", "title": "SSL Certificate",
"description": "Content of the SSL Certificate file", "description": "Content of the SSL Certificate file",
...@@ -65,7 +66,6 @@ ...@@ -65,7 +66,6 @@
"textarea": true, "textarea": true,
"default": "" "default": ""
}, },
"ssl_ca_crt": { "ssl_ca_crt": {
"title": "SSL Certificate Authority's Certificate", "title": "SSL Certificate Authority's Certificate",
"description": "Content of the CA certificate file", "description": "Content of the CA certificate file",
...@@ -78,90 +78,101 @@ ...@@ -78,90 +78,101 @@
"description": "If set to true, http requests will be redirected to https", "description": "If set to true, http requests will be redirected to https",
"type": "string", "type": "string",
"default": "false", "default": "false",
"enum": ["false", "true"] "enum": [
"false",
"true"
]
}, },
"ssl-proxy-verify": { "ssl-proxy-verify": {
"title": "Verify Backend Certificates", "title": "Verify Backend Certificates",
"description": "If set to true, Backend SSL Certificates will be checked and frontend will refuse to proxy if certificate is invalid", "description": "If set to true, Backend SSL Certificates will be checked and frontend will refuse to proxy if certificate is invalid",
"type": "string", "type": "string",
"default": "false", "default": "false",
"enum": ["false", "true"] "enum": [
"false",
"true"
]
}, },
"ssl_proxy_ca_crt": { "ssl_proxy_ca_crt": {
"title": "SSL Backend Authority's Certificate", "title": "SSL Backend Authority's Certificate",
"description": "Content of the SSL Certificate Authority file of the backend (to be used with ssl-proxy-verify)", "description": "Content of the SSL Certificate Authority file of the backend (to be used with ssl-proxy-verify)",
"type": "string", "type": "string",
"default": "" "default": ""
}, },
"monitor-ipv6-test": { "monitor-ipv6-test": {
"title": "IPv6 Address to Monitor Packet Lost", "title": "IPv6 Address to Monitor Packet Lost",
"description": "IPv6 Address for the frontend keep monitoring with ping6 (without brackets)", "description": "IPv6 Address for the frontend keep monitoring with ping6 (without brackets)",
"type": "string", "type": "string",
"default": "" "default": ""
}, },
"monitor-ipv4-test": { "monitor-ipv4-test": {
"title": "IPv4 Address to Monitor Packet Lost", "title": "IPv4 Address to Monitor Packet Lost",
"description": "IPv4 Address for the frontend keep monitoring with ping", "description": "IPv4 Address for the frontend keep monitoring with ping",
"type": "string", "type": "string",
"default": "" "default": ""
}, },
"re6st-optimal-test": { "re6st-optimal-test": {
"title": "IPv6 and IPv4 Address to test Re6st", "title": "IPv6 and IPv4 Address to test Re6st",
"description": "IPv6 and IPv6 Address for the frontend test if re6st is on the optimal status (use ipv6,ipv4)", "description": "IPv6 and IPv6 Address for the frontend test if re6st is on the optimal status (use ipv6,ipv4)",
"type": "string", "type": "string",
"default": "" "default": ""
}, },
"enable_cache": { "enable_cache": {
"title": "Enable Cache", "title": "Enable Cache",
"description": "If set to true, http caching server (Apache Traffic Server) will be used between frontend apache and backend", "description": "If set to true, http caching server (Apache Traffic Server) will be used between frontend apache and backend",
"type": "string", "type": "string",
"default": "false", "default": "false",
"enum": ["false", "true"] "enum": [
"false",
"true"
]
}, },
"disable-no-cache-request": { "disable-no-cache-request": {
"title": "Disable 'no-cache' requests", "title": "Disable 'no-cache' requests",
"description": "If set to true, Cache-Control and Pragma requests headers will not be sent to cache and backend servers. This prevents clients from bypassing cache when enable_cache is true", "description": "If set to true, Cache-Control and Pragma requests headers will not be sent to cache and backend servers. This prevents clients from bypassing cache when enable_cache is true",
"type": "string", "type": "string",
"default": "false", "default": "false",
"enum": ["false", "true"] "enum": [
"false",
"true"
]
}, },
"disable-via-header": { "disable-via-header": {
"title": "Disable 'Via' headers from cache", "title": "Disable 'Via' headers from cache",
"description": "If set to true, Via response headers will not be sent to client", "description": "If set to true, Via response headers will not be sent to client",
"type": "string", "type": "string",
"default": "false", "default": "false",
"enum": ["false", "true"] "enum": [
"false",
"true"
]
}, },
"enable-http2": { "enable-http2": {
"title": "Enable HTTP2 Protocol", "title": "Enable HTTP2 Protocol",
"description": "Use HTTP2 Protocol for the site", "description": "Use HTTP2 Protocol for the site",
"type": "string", "type": "string",
"default": "true", "default": "true",
"enum": ["true", "false"] "enum": [
"true",
"false"
]
}, },
"prefer-gzip-encoding-to-backend": { "prefer-gzip-encoding-to-backend": {
"title": "Prefer gzip Encoding for Backend", "title": "Prefer gzip Encoding for Backend",
"description": "If set to true, frontend will rewrite Accept-Encoding request header to simply 'gzip' for all variants of Accept-Encoding containing 'gzip', in order to maximize cache hits for resources cached with Vary: Accept-Encoding when enable_cache is used", "description": "If set to true, frontend will rewrite Accept-Encoding request header to simply 'gzip' for all variants of Accept-Encoding containing 'gzip', in order to maximize cache hits for resources cached with Vary: Accept-Encoding when enable_cache is used",
"type": "string", "type": "string",
"default": "false", "default": "false",
"enum": ["false", "true"] "enum": [
"false",
"true"
]
}, },
"disabled-cookie-list": { "disabled-cookie-list": {
"title": "Disabled Cookies", "title": "Disabled Cookies",
"description": "List of Cookies separated by space that will not be sent to cache and backend servers. This is especially useful to discard analytics tracking cookies when using Vary: Cookie cache headers", "description": "List of Cookies separated by space that will not be sent to cache and backend servers. This is especially useful to discard analytics tracking cookies when using Vary: Cookie cache headers",
"type": "string", "type": "string",
"default": "" "default": ""
}, },
"apache_custom_http": { "apache_custom_http": {
"title": "HTTP configuration", "title": "HTTP configuration",
"description": "Raw http configuration in python template format. Your site will be rejected if you use it without notification and approval of frontend administrators", "description": "Raw http configuration in python template format. Your site will be rejected if you use it without notification and approval of frontend administrators",
......
...@@ -6,19 +6,19 @@ ...@@ -6,19 +6,19 @@
"description": "Number of nodes the slave is replicated", "description": "Number of nodes the slave is replicated",
"type": "integer" "type": "integer"
}, },
"domain": { "domain": {
"description": "Base domain used by the instance", "description": "Base domain used by the instance",
"type": "string" "type": "string"
}, },
"url": { "url": {
"description": "Default URL provided", "description": "Default URL provided",
"type": "string" "type": "string"
}, },
"site_url": { "site_url": {
"description": "URL for HTTP access", "description": "URL for HTTP access",
"type": "string" "type": "string"
}, },
"secure_access": { "secure_access": {
"description": "URL for HTTP access", "description": "URL for HTTP access",
"type": "string" "type": "string"
}, },
......
{ {
"name": "Apache Frontend", "name": "Apache Frontend",
"description": "Apache Frontend", "description": "Apache Frontend",
"serialisation": "xml", "serialisation": "xml",
"software-type": { "software-type": {
"custom-personal-slave": { "custom-personal-slave": {
"title": "Custom Personal (Slave)", "title": "Custom Personal (Slave)",
"description": "Custom Personal", "description": "Custom Personal",
"request": "instance-slave-apache-input-schema.json", "request": "instance-slave-apache-input-schema.json",
"response": "instance-output-schema.json", "response": "instance-output-schema.json",
"index": 1, "index": 1,
"software-type": "custom-personal", "software-type": "custom-personal",
"shared": true "shared": true
}, },
"custom-personal": { "custom-personal": {
"title": "Custom Personal", "title": "Custom Personal",
"description": "", "description": "",
"request": "instance-apache-input-schema.json", "request": "instance-apache-input-schema.json",
"response": "instance-output-schema.json", "response": "instance-output-schema.json",
"index": 2 "index": 2
}, },
"default": { "default": {
"title": "Default", "title": "Default",
"software-type": "default", "software-type": "default",
"description": "Default", "description": "Default",
"request": "instance-apache-input-schema.json", "request": "instance-apache-input-schema.json",
"response": "instance-output-schema.json", "response": "instance-output-schema.json",
"index": 3 "index": 3
}, },
"default-slave": { "default-slave": {
"title": "Default (slave)", "title": "Default (slave)",
"software-type": "default", "software-type": "default",
"description": "Default", "description": "Default",
"request": "instance-slave-apache-input-schema.json", "request": "instance-slave-apache-input-schema.json",
"response": "instance-output-schema.json", "response": "instance-output-schema.json",
"index": 4, "index": 4,
"shared": true "shared": true
} }
} }
} }
...@@ -7,7 +7,11 @@ ...@@ -7,7 +7,11 @@
"publish": { "publish": {
"description": "Upload built packages automatically to a Debian repository when successful.", "description": "Upload built packages automatically to a Debian repository when successful.",
"type": "object", "type": "object",
"required": ["suite", "host", "key"], "required": [
"suite",
"host",
"key"
],
"properties": { "properties": {
"suite": { "suite": {
"type": "string" "type": "string"
......
{ {
"$schema": "http://json-schema.org/draft-04/schema", "$schema": "http://json-schema.org/draft-04/schema",
"properties": { "properties": {
"-frontend-authorized-slave-string": { "-frontend-authorized-slave-string": {
"description": "List of SOFTINST-XXX of Slaves, separated by space which is allowed to use custom configuration.", "description": "List of SOFTINST-XXX of Slaves, separated by space which is allowed to use custom configuration.",
"title": "Authorized Slave String", "title": "Authorized Slave String",
"type": "string" "type": "string"
},
"-frontend-quantity": {
"description": "Quantity of Frontends Replicate.",
"title": "Frontend Replication Quantity",
"type": "integer"
},
"apache-ca-certificate": {
"description": "[NOT IMPLEMENTED] SSL CA Certificate used by the server.",
"textarea": true,
"title": "[NOT IMPLEMENTED] SSL CA Certificate",
"type": "string"
},
"apache-certificate": {
"description": "SSL Certificate used by the server.",
"textarea": true,
"title": "SSL Certificate",
"type": "string"
},
"apache-key": {
"description": "SSL Key used by the server.",
"textarea": true,
"title": "SSL Key",
"type": "string"
},
"domain": {
"description": "Base Domain for create subdomains (ie.: example.com).",
"pattern": "^([a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?\\.)+[a-zA-Z]{2,6}$",
"title": "Domain",
"type": "string"
},
"enable-http2-by-default": {
"default": "true",
"description": "Use HTTP2 as default Protocol",
"enum": [
"true",
"false"
],
"title": "Enable HTTP2 by Default",
"type": "string"
},
"mpm-graceful-shutdown-timeout": {
"default": 5,
"description": "Value passed to -grace parameter of Caddy, see https://caddyserver.com/docs/cli .",
"title": "Duration of the graceful shutdown period",
"type": "integer"
},
"nginx-domain": {
"description": "Base Domain for create subdomains (ie.: example2.com) for websocket, notebook and eventsource.",
"pattern": "^([a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?\\.)+[a-zA-Z]{2,6}$",
"title": "Nginx Domain",
"type": "string"
},
"public-ipv4": {
"description": "Public ipv4 of the frontend (the one Caddy will be indirectly listening to).",
"title": "Public IPv4",
"type": "string"
},
"re6st-verification-url": {
"description": "Url to verify if the internet and/or re6stnet is working.",
"title": "Test Verification URL",
"type": "string"
},
"enable-quic": {
"default": "false",
"description": "Enables QUIC - Quick UDP Internet Connections. Note that this is experimental feature, thus can result in undefined behaviour.",
"enum": [
"true",
"false"
],
"title": "Enable QUIC",
"type": "string"
}
}, },
"title": "Input Parameters", "-frontend-quantity": {
"type": "object" "description": "Quantity of Frontends Replicate.",
"title": "Frontend Replication Quantity",
"type": "integer"
},
"apache-ca-certificate": {
"description": "[NOT IMPLEMENTED] SSL CA Certificate used by the server.",
"textarea": true,
"title": "[NOT IMPLEMENTED] SSL CA Certificate",
"type": "string"
},
"apache-certificate": {
"description": "SSL Certificate used by the server.",
"textarea": true,
"title": "SSL Certificate",
"type": "string"
},
"apache-key": {
"description": "SSL Key used by the server.",
"textarea": true,
"title": "SSL Key",
"type": "string"
},
"domain": {
"description": "Base Domain for create subdomains (ie.: example.com).",
"pattern": "^([a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?\\.)+[a-zA-Z]{2,6}$",
"title": "Domain",
"type": "string"
},
"enable-http2-by-default": {
"default": "true",
"description": "Use HTTP2 as default Protocol",
"enum": [
"true",
"false"
],
"title": "Enable HTTP2 by Default",
"type": "string"
},
"mpm-graceful-shutdown-timeout": {
"default": 5,
"description": "Value passed to -grace parameter of Caddy, see https://caddyserver.com/docs/cli .",
"title": "Duration of the graceful shutdown period",
"type": "integer"
},
"nginx-domain": {
"description": "Base Domain for create subdomains (ie.: example2.com) for websocket, notebook and eventsource.",
"pattern": "^([a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?\\.)+[a-zA-Z]{2,6}$",
"title": "Nginx Domain",
"type": "string"
},
"public-ipv4": {
"description": "Public ipv4 of the frontend (the one Caddy will be indirectly listening to).",
"title": "Public IPv4",
"type": "string"
},
"re6st-verification-url": {
"description": "Url to verify if the internet and/or re6stnet is working.",
"title": "Test Verification URL",
"type": "string"
},
"enable-quic": {
"default": "false",
"description": "Enables QUIC - Quick UDP Internet Connections. Note that this is experimental feature, thus can result in undefined behaviour.",
"enum": [
"true",
"false"
],
"title": "Enable QUIC",
"type": "string"
}
},
"title": "Input Parameters",
"type": "object"
} }
{ {
"$schema": "http://json-schema.org/draft-04/schema#", "$schema": "http://json-schema.org/draft-04/schema#",
"description": "Values returned by Caddy Frontend instanciation", "description": "Values returned by Caddy Frontend instanciation",
"properties": { "properties": {
"accepted-slave-amount": { "accepted-slave-amount": {
"description": "Amount of Slaves allocated to the Instance which are deployed", "description": "Amount of Slaves allocated to the Instance which are deployed",
"type": "integer" "type": "integer"
}, },
"domain": { "domain": {
"description": "Base domain used by the instance", "description": "Base domain used by the instance",
"type": "string" "type": "string"
}, },
"monitor-base-url": { "monitor-base-url": {
"description": "Base url for monitor", "description": "Base url for monitor",
"type": "string" "type": "string"
}, },
"monitor-password": { "monitor-password": {
"description": "Password to access the monitor", "description": "Password to access the monitor",
"type": "string" "type": "string"
}, },
"monitor-url": { "monitor-url": {
"description": "Url of Monitor (opml)", "description": "Url of Monitor (opml)",
"type": "string" "type": "string"
}, },
"monitor-user": { "monitor-user": {
"description": "User to access the monitor", "description": "User to access the monitor",
"type": "string" "type": "string"
}, },
"reject-slave-amount": { "reject-slave-amount": {
"description": "Rejected Amount of Slaves allocated to the Instance which are not deployed", "description": "Rejected Amount of Slaves allocated to the Instance which are not deployed",
"type": "integer" "type": "integer"
}, },
"rejected-slave-list": { "rejected-slave-list": {
"description": "List of slave instances references which are rejected", "description": "List of slave instances references which are rejected",
"type": "array" "type": "array"
}, },
"slave-amount": { "slave-amount": {
"description": "Total amount of Slaves allocated to the Instance (include blocked ones)", "description": "Total amount of Slaves allocated to the Instance (include blocked ones)",
"type": "integer" "type": "integer"
} }
}, },
"type": "object" "type": "object"
} }
{ {
"$schema": "http://json-schema.org/draft-04/schema", "$schema": "http://json-schema.org/draft-04/schema",
"properties": { "properties": {
"caddy_custom_http": { "caddy_custom_http": {
"default": "", "default": "",
"description": "Raw http configuration in python template format. Your site will be rejected if you use it without notification and approval of frontend administrators", "description": "Raw http configuration in python template format. Your site will be rejected if you use it without notification and approval of frontend administrators",
"textarea": true, "textarea": true,
"title": "HTTP configuration", "title": "HTTP configuration",
"type": "string" "type": "string"
}, },
"caddy_custom_https": { "caddy_custom_https": {
"default": "", "default": "",
"description": "Raw https configuration in python template format. Your site will be rejected if you use it without notification and approval of frontend administrators", "description": "Raw https configuration in python template format. Your site will be rejected if you use it without notification and approval of frontend administrators",
"textarea": true, "textarea": true,
"title": "HTTPS configuration", "title": "HTTPS configuration",
"type": "string" "type": "string"
}, },
"custom_domain": { "custom_domain": {
"description": "Custom Domain to use for the website", "description": "Custom Domain to use for the website",
"pattern": "^([a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?\\.)+[a-zA-Z]{2,6}$", "pattern": "^([a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?\\.)+[a-zA-Z]{2,6}$",
"title": "Custom Domain", "title": "Custom Domain",
"type": "string" "type": "string"
}, },
"default-path": { "default-path": {
"default": "", "default": "",
"description": "Provide default path to redirect user to when user access / (the site root)", "description": "Provide default path to redirect user to when user access / (the site root)",
"title": "type:zope Default Path", "title": "type:zope Default Path",
"type": "string" "type": "string"
}, },
"disable-no-cache-request": { "disable-no-cache-request": {
"default": "false", "default": "false",
"description": "If set to true, Cache-Control and Pragma requests headers will not be sent to cache and backend servers. This prevents clients from bypassing cache when enable_cache is true", "description": "If set to true, Cache-Control and Pragma requests headers will not be sent to cache and backend servers. This prevents clients from bypassing cache when enable_cache is true",
"enum": [ "enum": [
"false", "false",
"true" "true"
], ],
"title": "enable_cache: Disable 'no-cache' requests", "title": "enable_cache: Disable 'no-cache' requests",
"type": "string" "type": "string"
}, },
"disable-via-header": { "disable-via-header": {
"default": "false", "default": "false",
"description": "If set to true, Via response headers will not be sent to client", "description": "If set to true, Via response headers will not be sent to client",
"enum": [ "enum": [
"false", "false",
"true" "true"
], ],
"title": "enable_cache: Disable 'Via' headers from cache", "title": "enable_cache: Disable 'Via' headers from cache",
"type": "string" "type": "string"
}, },
"disabled-cookie-list": { "disabled-cookie-list": {
"default": "", "default": "",
"description": "[NOT Implemented] List of Cookies separated by space that will not be sent to cache and backend servers. This is especially useful to discard analytics tracking cookies when using Vary: Cookie cache headers", "description": "[NOT Implemented] List of Cookies separated by space that will not be sent to cache and backend servers. This is especially useful to discard analytics tracking cookies when using Vary: Cookie cache headers",
"title": "[NOT Implemented] Disabled Cookies", "title": "[NOT Implemented] Disabled Cookies",
"type": "string" "type": "string"
}, },
"enable-http2": { "enable-http2": {
"default": "true", "default": "true",
"description": "Use HTTP2 Protocol for the site", "description": "Use HTTP2 Protocol for the site",
"enum": [ "enum": [
"true", "true",
"false" "false"
], ],
"title": "Enable HTTP2 Protocol", "title": "Enable HTTP2 Protocol",
"type": "string" "type": "string"
}, },
"enable_cache": { "enable_cache": {
"default": "false", "default": "false",
"description": "If set to true, http caching server (Apache Traffic Server) will be used between frontend Caddy and backend", "description": "If set to true, http caching server (Apache Traffic Server) will be used between frontend Caddy and backend",
"enum": [ "enum": [
"false", "false",
"true" "true"
], ],
"title": "Enable Cache", "title": "Enable Cache",
"type": "string" "type": "string"
}, },
"https-only": { "https-only": {
"default": "false", "default": "false",
"description": "If set to true, http requests will be redirected to https", "description": "If set to true, http requests will be redirected to https",
"enum": [ "enum": [
"false", "false",
"true" "true"
], ],
"title": "HTTPS Only", "title": "HTTPS Only",
"type": "string" "type": "string"
}, },
"https-url": { "https-url": {
"description": "HTTPS Url of the backend if it is diferent from url parameter", "description": "HTTPS Url of the backend if it is diferent from url parameter",
"pattern": "^(http|https|ftp)://", "pattern": "^(http|https|ftp)://",
"title": "HTTPS Backend URL", "title": "HTTPS Backend URL",
"type": "string" "type": "string"
}, },
"monitor-ipv4-test": { "monitor-ipv4-test": {
"default": "", "default": "",
"description": "IPv4 Address for the frontend keep monitoring with ping", "description": "IPv4 Address for the frontend keep monitoring with ping",
"title": "IPv4 Address to Monitor Packet Lost", "title": "IPv4 Address to Monitor Packet Lost",
"type": "string" "type": "string"
}, },
"monitor-ipv6-test": { "monitor-ipv6-test": {
"default": "", "default": "",
"description": "IPv6 Address for the frontend keep monitoring with ping6 (without brackets)", "description": "IPv6 Address for the frontend keep monitoring with ping6 (without brackets)",
"title": "IPv6 Address to Monitor Packet Lost", "title": "IPv6 Address to Monitor Packet Lost",
"type": "string" "type": "string"
}, },
"path": { "path": {
"default": "", "default": "",
"description": "Path to proxy to in the backend", "description": "Path to proxy to in the backend",
"title": "type:zope Backend Path", "title": "type:zope Backend Path",
"type": "string" "type": "string"
}, },
"prefer-gzip-encoding-to-backend": { "prefer-gzip-encoding-to-backend": {
"default": "false", "default": "false",
"description": "[NOT Implemented] If set to true, frontend will rewrite Accept-Encoding request header to simply 'gzip' for all variants of Accept-Encoding containing 'gzip', in order to maximize cache hits for resources cached with Vary: Accept-Encoding when enable_cache is used", "description": "[NOT Implemented] If set to true, frontend will rewrite Accept-Encoding request header to simply 'gzip' for all variants of Accept-Encoding containing 'gzip', in order to maximize cache hits for resources cached with Vary: Accept-Encoding when enable_cache is used",
"enum": [ "enum": [
"false", "false",
"true" "true"
], ],
"title": "[NOT Implemented] Prefer gzip Encoding for Backend", "title": "[NOT Implemented] Prefer gzip Encoding for Backend",
"type": "string" "type": "string"
}, },
"re6st-optimal-test": { "re6st-optimal-test": {
"default": "", "default": "",
"description": "IPv6 and IPv6 Address for the frontend test if re6st is on the optimal status (use ipv6,ipv4)", "description": "IPv6 and IPv6 Address for the frontend test if re6st is on the optimal status (use ipv6,ipv4)",
"title": "IPv6 and IPv4 Address to test Re6st", "title": "IPv6 and IPv4 Address to test Re6st",
"type": "string" "type": "string"
}, },
"server-alias": { "server-alias": {
"default": "", "default": "",
"description": "Server Alias List separated by space", "description": "Server Alias List separated by space",
"title": "Server Alias", "title": "Server Alias",
"type": "string" "type": "string"
}, },
"ssl-proxy-verify": { "ssl-proxy-verify": {
"default": "false", "default": "false",
"description": "[NOT Implemented] If set to true, Backend SSL Certificates will be checked and frontend will refuse to proxy if certificate is invalid", "description": "[NOT Implemented] If set to true, Backend SSL Certificates will be checked and frontend will refuse to proxy if certificate is invalid",
"enum": [ "enum": [
"false", "false",
"true" "true"
], ],
"title": "[NOT Implemented] Verify Backend Certificates", "title": "[NOT Implemented] Verify Backend Certificates",
"type": "string" "type": "string"
}, },
"ssl_ca_crt": { "ssl_ca_crt": {
"default": "", "default": "",
"description": "[NOT Implemented] Content of the CA certificate file", "description": "[NOT Implemented] Content of the CA certificate file",
"textarea": true, "textarea": true,
"title": "[NOT Implemented] SSL Certificate Authority's Certificate", "title": "[NOT Implemented] SSL Certificate Authority's Certificate",
"type": "string" "type": "string"
}, },
"ssl_crt": { "ssl_crt": {
"default": "", "default": "",
"description": "Content of the SSL Certificate file", "description": "Content of the SSL Certificate file",
"textarea": true, "textarea": true,
"title": "SSL Certificate", "title": "SSL Certificate",
"type": "string" "type": "string"
}, },
"ssl_key": { "ssl_key": {
"default": "", "default": "",
"description": "Content of the SSL Key file", "description": "Content of the SSL Key file",
"textarea": true, "textarea": true,
"title": "SSL Key", "title": "SSL Key",
"type": "string" "type": "string"
}, },
"ssl_proxy_ca_crt": { "ssl_proxy_ca_crt": {
"default": "", "default": "",
"description": "[NOT Implemented] Content of the SSL Certificate Authority file of the backend (to be used with ssl-proxy-verify)", "description": "[NOT Implemented] Content of the SSL Certificate Authority file of the backend (to be used with ssl-proxy-verify)",
"title": "[NOT Implemented] SSL Backend Authority's Certificate", "title": "[NOT Implemented] SSL Backend Authority's Certificate",
"type": "string" "type": "string"
}, },
"type": { "type": {
"default": "", "default": "",
"description": "Type of slave. If redirect, the slave will redirect to the given url. If zope, the rewrite rules will be compatible with Virtual Host Monster. Implemented are default, zope and redirect, not implemneted are notebook and eventsource.", "description": "Type of slave. If redirect, the slave will redirect to the given url. If zope, the rewrite rules will be compatible with Virtual Host Monster. Implemented are default, zope and redirect, not implemneted are notebook and eventsource.",
"enum": [ "enum": [
"", "",
"zope", "zope",
"redirect", "redirect",
"notebook", "notebook",
"eventsource" "eventsource"
], ],
"title": "Backend Type", "title": "Backend Type",
"type": "string" "type": "string"
}, },
"url": { "url": {
"description": "Url of the backend", "description": "Url of the backend",
"pattern": "^(http|https|ftp)://", "pattern": "^(http|https|ftp)://",
"title": "Backend URL", "title": "Backend URL",
"type": "string" "type": "string"
}, },
"virtualhostroot-http-port": { "virtualhostroot-http-port": {
"default": 80, "default": 80,
"description": "Port where http requests to frontend will be redirected.", "description": "Port where http requests to frontend will be redirected.",
"title": "type:zope virtualhostroot-http-port", "title": "type:zope virtualhostroot-http-port",
"type": "integer" "type": "integer"
}, },
"virtualhostroot-https-port": { "virtualhostroot-https-port": {
"default": 443, "default": 443,
"description": "Port where https requests to frontend will be redirected.", "description": "Port where https requests to frontend will be redirected.",
"title": "type:zope virtualhostroot-https-port", "title": "type:zope virtualhostroot-https-port",
"type": "integer" "type": "integer"
} }
}, },
"title": "Input Parameters", "title": "Input Parameters",
"type": "object" "type": "object"
} }
{ {
"$schema": "http://json-schema.org/draft-04/schema#", "$schema": "http://json-schema.org/draft-04/schema#",
"description": "Values returned by Caddy Frontend instanciation", "description": "Values returned by Caddy Frontend instanciation",
"properties": { "properties": {
"domain": { "domain": {
"description": "Base domain used by the instance", "description": "Base domain used by the instance",
"type": "string" "type": "string"
},
"log-access-url": {
"description": "List of URLs to access logs",
"type": "array"
},
"public-ipv4": {
"description": "Public IPv4 to be included on DNS",
"type": "string"
},
"replication_number": {
"description": "Number of nodes the slave is replicated",
"type": "integer"
},
"secure_access": {
"description": "URL for HTTP access",
"type": "string"
},
"site_url": {
"description": "URL for HTTP access",
"type": "string"
},
"url": {
"description": "Default URL provided",
"type": "string"
}
}, },
"type": "object" "log-access-url": {
"description": "List of URLs to access logs",
"type": "array"
},
"public-ipv4": {
"description": "Public IPv4 to be included on DNS",
"type": "string"
},
"replication_number": {
"description": "Number of nodes the slave is replicated",
"type": "integer"
},
"secure_access": {
"description": "URL for HTTP access",
"type": "string"
},
"site_url": {
"description": "URL for HTTP access",
"type": "string"
},
"url": {
"description": "Default URL provided",
"type": "string"
}
},
"type": "object"
} }
{ {
"description": "Caddy Frontend", "description": "Caddy Frontend",
"name": "Caddy Frontend", "name": "Caddy Frontend",
"serialisation": "xml", "serialisation": "xml",
"software-type": { "software-type": {
"custom-personal": { "custom-personal": {
"description": "", "description": "",
"index": 2, "index": 2,
"request": "instance-caddy-input-schema.json", "request": "instance-caddy-input-schema.json",
"response": "instance-output-schema.json", "response": "instance-output-schema.json",
"title": "Custom Personal" "title": "Custom Personal"
}, },
"custom-personal-slave": { "custom-personal-slave": {
"description": "Custom Personal", "description": "Custom Personal",
"index": 1, "index": 1,
"request": "instance-slave-caddy-input-schema.json", "request": "instance-slave-caddy-input-schema.json",
"response": "instance-output-schema.json", "response": "instance-output-schema.json",
"shared": true, "shared": true,
"software-type": "custom-personal", "software-type": "custom-personal",
"title": "Custom Personal (Slave)" "title": "Custom Personal (Slave)"
}, },
"default": { "default": {
"description": "Default", "description": "Default",
"index": 3, "index": 3,
"request": "instance-caddy-input-schema.json", "request": "instance-caddy-input-schema.json",
"response": "instance-output-schema.json", "response": "instance-output-schema.json",
"software-type": "default", "software-type": "default",
"title": "Default" "title": "Default"
}, },
"default-slave": { "default-slave": {
"description": "Default", "description": "Default",
"index": 4, "index": 4,
"request": "instance-slave-caddy-input-schema.json", "request": "instance-slave-caddy-input-schema.json",
"response": "instance-output-schema.json", "response": "instance-output-schema.json",
"shared": true, "shared": true,
"software-type": "default", "software-type": "default",
"title": "Default (slave)" "title": "Default (slave)"
}
} }
}
} }
...@@ -5,22 +5,28 @@ ...@@ -5,22 +5,28 @@
"title": "Input Parameters", "title": "Input Parameters",
"properties": { "properties": {
"server-port": { "server-port": {
"allOf": [{ "allOf": [
"$ref": "#/definitions/tcpv4port" {
}, { "$ref": "#/definitions/tcpv4port"
"title": "http port to use", },
"description": "Caucase http port to use.", {
"default": 8009 "title": "http port to use",
}] "description": "Caucase http port to use.",
"default": 8009
}
]
}, },
"server-https-port": { "server-https-port": {
"allOf": [{ "allOf": [
"$ref": "#/definitions/tcpv4port" {
}, { "$ref": "#/definitions/tcpv4port"
"title": "https port to use", },
"description": "Caucase port to use for https connexion.", {
"default": 8010 "title": "https port to use",
}] "description": "Caucase port to use for https connexion.",
"default": 8010
}
]
}, },
"external-url": { "external-url": {
"title": "External http url", "title": "External http url",
...@@ -73,4 +79,4 @@ ...@@ -73,4 +79,4 @@
"type": "integer" "type": "integer"
} }
} }
} }
\ No newline at end of file
{ {
"name": "Caucase", "name": "Caucase",
"description": "Caucase certificate authority", "description": "Caucase certificate authority",
"serialisation": "json-in-xml", "serialisation": "json-in-xml",
"software-type": { "software-type": {
"default": { "default": {
"title": "Default", "title": "Default",
"description": "Single caucase instance", "description": "Single caucase instance",
"request": "instance-caucase-input-schema.json", "request": "instance-caucase-input-schema.json",
"response": "instance-caucase-output-schema.json", "response": "instance-caucase-output-schema.json",
"index": 0 "index": 0
}
} }
} }
\ No newline at end of file }
{ {
"type": "object", "type": "object",
"$schema": "http://json-schema.org/draft-04/schema", "$schema": "http://json-schema.org/draft-04/schema",
"title": "Input Parameters", "title": "Input Parameters",
"properties": { "properties": {
"port": { "port": {
...@@ -16,36 +15,35 @@ ...@@ -16,36 +15,35 @@
"type": "string", "type": "string",
"pattern": "^([a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?\\.)+[a-zA-Z]{2,6}$" "pattern": "^([a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?\\.)+[a-zA-Z]{2,6}$"
}, },
"frontend-server-alias": { "frontend-server-alias": {
"title": "Server Alias", "title": "Server Alias",
"description": "Server Alias List separated by space", "description": "Server Alias List separated by space",
"type": "string", "type": "string",
"default": "" "default": ""
}, },
"frontend-type": { "frontend-type": {
"title": "Backend Type", "title": "Backend Type",
"description": "Type of slave. If redirect, the slave will redirect to the given url. If zope, the rewrite rules will be compatible with Virtual Host Monster", "description": "Type of slave. If redirect, the slave will redirect to the given url. If zope, the rewrite rules will be compatible with Virtual Host Monster",
"type": "string", "type": "string",
"default": "", "default": "",
"enum": ["", "zope", "redirect"] "enum": [
"",
"zope",
"redirect"
]
}, },
"frontend-path": { "frontend-path": {
"title": "Backend Path", "title": "Backend Path",
"description": "Path to proxy to in the backend", "description": "Path to proxy to in the backend",
"type": "string", "type": "string",
"default": "" "default": ""
}, },
"frontend-default-path": { "frontend-default-path": {
"title": "Default Path", "title": "Default Path",
"description": "Provide default path to redirect user to", "description": "Provide default path to redirect user to",
"type": "string", "type": "string",
"default": "" "default": ""
}, },
"frontend-ssl_crt": { "frontend-ssl_crt": {
"title": "SSL Certificate", "title": "SSL Certificate",
"description": "SSL Certificate", "description": "SSL Certificate",
...@@ -60,7 +58,6 @@ ...@@ -60,7 +58,6 @@
"textarea": true, "textarea": true,
"default": "" "default": ""
}, },
"frontend-ssl_ca_crt": { "frontend-ssl_ca_crt": {
"title": "SSL Certificate Authority's Certificate", "title": "SSL Certificate Authority's Certificate",
"description": "SSL Key", "description": "SSL Key",
...@@ -74,14 +71,12 @@ ...@@ -74,14 +71,12 @@
"type": "boolean", "type": "boolean",
"default": false "default": false
}, },
"frontend-ssl-proxy-verify": { "frontend-ssl-proxy-verify": {
"title": "Verify Backend Certificates", "title": "Verify Backend Certificates",
"description": "If set to true, Backend Certificates are checked", "description": "If set to true, Backend Certificates are checked",
"type": "boolean", "type": "boolean",
"default": false "default": false
}, },
"frontend-ssl_proxy_ca_crt": { "frontend-ssl_proxy_ca_crt": {
"title": "SSL Backend Authority's Certificate", "title": "SSL Backend Authority's Certificate",
"description": "SSL Certificate Authority of the backen (to be used with ssl-proxy-verify)", "description": "SSL Certificate Authority of the backen (to be used with ssl-proxy-verify)",
...@@ -89,35 +84,30 @@ ...@@ -89,35 +84,30 @@
"textarea": true, "textarea": true,
"default": "" "default": ""
}, },
"frontend-enable_cache": { "frontend-enable_cache": {
"title": "Enable Cache", "title": "Enable Cache",
"description": "If set to true, the cache is used", "description": "If set to true, the cache is used",
"type": "boolean", "type": "boolean",
"default": false "default": false
}, },
"frontend-disable-no-cache-request": { "frontend-disable-no-cache-request": {
"title": "Disable 'no-cache' requests", "title": "Disable 'no-cache' requests",
"description": "If set to true, no-cache control headers will be disabled", "description": "If set to true, no-cache control headers will be disabled",
"type": "boolean", "type": "boolean",
"default": false "default": false
}, },
"frontend-disable-via-header": { "frontend-disable-via-header": {
"title": "Disable 'Via' headers from cache", "title": "Disable 'Via' headers from cache",
"description": "If set to true, via headers will be disabled", "description": "If set to true, via headers will be disabled",
"type": "boolean", "type": "boolean",
"default": false "default": false
}, },
"frontend-prefer-gzip-encoding-to-backend": { "frontend-prefer-gzip-encoding-to-backend": {
"title": "Prefer gzip Encoding for Backend", "title": "Prefer gzip Encoding for Backend",
"description": "If set to true, if a request is made with accept encoding 'gzip', only that one will be transferred to the backend", "description": "If set to true, if a request is made with accept encoding 'gzip', only that one will be transferred to the backend",
"type": "boolean", "type": "boolean",
"default": false "default": false
}, },
"frontend-disabled-cookie-list": { "frontend-disabled-cookie-list": {
"title": "Disabled Cookies", "title": "Disabled Cookies",
"description": "List of Cookies separated by space that will not be sent to the backend", "description": "List of Cookies separated by space that will not be sent to the backend",
......
{ {
"type": "object", "type": "object",
"$schema": "http://json-schema.org/draft-04/schema", "$schema": "http://json-schema.org/draft-04/schema",
"title": "Input Parameters", "title": "Input Parameters",
"properties": { "properties": {
"port": { "port": {
...@@ -16,43 +15,41 @@ ...@@ -16,43 +15,41 @@
"type": "string", "type": "string",
"pattern": "^([a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?\\.)+[a-zA-Z]{2,6}$" "pattern": "^([a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?\\.)+[a-zA-Z]{2,6}$"
}, },
"frontend-server-alias": { "frontend-server-alias": {
"title": "Server Alias", "title": "Server Alias",
"description": "Server Alias List separated by space", "description": "Server Alias List separated by space",
"type": "string", "type": "string",
"default": "" "default": ""
}, },
"frontend-type": { "frontend-type": {
"title": "Backend Type", "title": "Backend Type",
"description": "Type of slave. If redirect, the slave will redirect to the given url. If zope, the rewrite rules will be compatible with Virtual Host Monster", "description": "Type of slave. If redirect, the slave will redirect to the given url. If zope, the rewrite rules will be compatible with Virtual Host Monster",
"type": "string", "type": "string",
"default": "", "default": "",
"enum": ["", "zope", "redirect"] "enum": [
"",
"zope",
"redirect"
]
}, },
"frontend-path": { "frontend-path": {
"title": "Backend Path", "title": "Backend Path",
"description": "Path to proxy to in the backend", "description": "Path to proxy to in the backend",
"type": "string", "type": "string",
"default": "" "default": ""
}, },
"frontend-default-path": { "frontend-default-path": {
"title": "Default Path", "title": "Default Path",
"description": "Provide default path to redirect user to", "description": "Provide default path to redirect user to",
"type": "string", "type": "string",
"default": "" "default": ""
}, },
"frontend-https-only": { "frontend-https-only": {
"title": "HTTPS Only", "title": "HTTPS Only",
"description": "If set to true, http request are redirect to https", "description": "If set to true, http request are redirect to https",
"type": "boolean", "type": "boolean",
"default": false "default": false
}, },
"frontend-enable_cache": { "frontend-enable_cache": {
"title": "Enable Cache", "title": "Enable Cache",
"description": "If set to true, the cache is used", "description": "If set to true, the cache is used",
......
{ {
"name": "CDN ME", "name": "CDN ME",
"description": "CDN ME", "description": "CDN ME",
"serialisation": "xml", "serialisation": "xml",
"software-type": { "software-type": {
"default": { "default": {
"title": "Default", "title": "Default",
"description": "Re6st registry", "description": "Re6st registry",
"request": "instance-cdn-me-simplified-input-schema.json", "request": "instance-cdn-me-simplified-input-schema.json",
"response": "instance-cdn-me-output-schema.json", "response": "instance-cdn-me-output-schema.json",
"index": 0 "index": 0
}, },
"default-advanced": { "default-advanced": {
"title": "Default (Advanced Form)", "title": "Default (Advanced Form)",
"software-type": "default", "software-type": "default",
"description": "Re6st registry", "description": "Re6st registry",
"request": "instance-cdn-me-input-schema.json", "request": "instance-cdn-me-input-schema.json",
"response": "instance-cdn-me-output-schema.json", "response": "instance-cdn-me-output-schema.json",
"index": 1 "index": 1
} }
} }
} }
...@@ -3,12 +3,15 @@ ...@@ -3,12 +3,15 @@
"extends": "./schema-definitions.json#", "extends": "./schema-definitions.json#",
"properties": { "properties": {
"tcpv4-port": { "tcpv4-port": {
"allOf": [{ "allOf": [
"$ref": "#/definitions/tcpv4port" {
}, { "$ref": "#/definitions/tcpv4port"
"description": "Start allocating ports at this value, going upward", },
"default": 23000 {
}] "description": "Start allocating ports at this value, going upward",
"default": 23000
}
]
}, },
"backend-count": { "backend-count": {
"description": "Number of backend cloudooo instances", "description": "Number of backend cloudooo instances",
......
{ {
"name": "cloudooo", "name": "cloudooo",
"description": "Clusterised cloudooo", "description": "Clusterised cloudooo",
"serialisation": "xml", "serialisation": "xml",
"software-type": { "software-type": {
"default": { "default": {
"title": "Default", "title": "Default",
"description": "Cloudooo", "description": "Cloudooo",
"request": "instance-cloudooo-input-schema.json", "request": "instance-cloudooo-input-schema.json",
"response": "instance-cloudooo-output-schema.json", "response": "instance-cloudooo-output-schema.json",
"index": 0 "index": 0
}
} }
}
} }
...@@ -7,7 +7,9 @@ ...@@ -7,7 +7,9 @@
"description": "Where to request instances. Each key is a query string for criterions (e.g. \"computer_guid=foo\"), and each value is a list of partition references (note: Zope partitions reference must be prefixed with \"zope-\").", "description": "Where to request instances. Each key is a query string for criterions (e.g. \"computer_guid=foo\"), and each value is a list of partition references (note: Zope partitions reference must be prefixed with \"zope-\").",
"additionalProperties": { "additionalProperties": {
"type": "array", "type": "array",
"items": { "type": "string" }, "items": {
"type": "string"
},
"uniqueItems": true "uniqueItems": true
}, },
"type": "object" "type": "object"
...@@ -89,22 +91,24 @@ ...@@ -89,22 +91,24 @@
"default": "RootSoftwareInstance", "default": "RootSoftwareInstance",
"type": "object" "type": "object"
}, },
"virtualhostroot-http-port": { "virtualhostroot-http-port": {
"description": "Front-end slave http port. Port where http requests to frontend will be redirected.", "description": "Front-end slave http port. Port where http requests to frontend will be redirected.",
"default": 80, "default": 80,
"type": "integer" "type": "integer"
}, },
"virtualhostroot-https-port": { "virtualhostroot-https-port": {
"description": "Front-end slave https port. Port where https requests to frontend will be redirected.", "description": "Front-end slave https port. Port where https requests to frontend will be redirected.",
"default": 443, "default": 443,
"type": "integer" "type": "integer"
} }
}, },
"type": "object" "type": "object"
}, },
"zope-partition-dict": { "zope-partition-dict": {
"description": "Zope layout definition", "description": "Zope layout definition",
"default": {"1": {}}, "default": {
"1": {}
},
"patternProperties": { "patternProperties": {
".*": { ".*": {
"additionalProperties": false, "additionalProperties": false,
...@@ -160,12 +164,15 @@ ...@@ -160,12 +164,15 @@
"type": "string" "type": "string"
}, },
"port-base": { "port-base": {
"allOf": [{ "allOf": [
"$ref": "#/definitions/tcpv4port" {
}, { "$ref": "#/definitions/tcpv4port"
"description": "Start allocating ports at this value. Useful if one needs to make several partitions share the same port range (ie, several partitions bound to a single address)", },
"default": 2200 {
}] "description": "Start allocating ports at this value. Useful if one needs to make several partitions share the same port range (ie, several partitions bound to a single address)",
"default": 2200
}
]
} }
}, },
"type": "object" "type": "object"
...@@ -215,11 +222,14 @@ ...@@ -215,11 +222,14 @@
"description": "Common settings ZEO servers", "description": "Common settings ZEO servers",
"properties": { "properties": {
"tcpv4-port": { "tcpv4-port": {
"allOf": [{ "allOf": [
"$ref": "#/definitions/tcpv4port" {
}, { "$ref": "#/definitions/tcpv4port"
"description": "Start allocating ports at this value, going upward" },
}] {
"description": "Start allocating ports at this value, going upward"
}
]
}, },
"backup-periodicity": { "backup-periodicity": {
"description": "When to backup, specified in the same format as for systemd.time(7) calendar events (years & seconds not supported, DoW & DoM can not be combined). Enter 'never' to disable backups.", "description": "When to backup, specified in the same format as for systemd.time(7) calendar events (years & seconds not supported, DoW & DoM can not be combined). Enter 'never' to disable backups.",
...@@ -237,7 +247,9 @@ ...@@ -237,7 +247,9 @@
"zodb": { "zodb": {
"description": "Zope Object DataBase mountpoints. See https://github.com/zopefoundation/ZODB/blob/3.10/src/ZODB/component.xml for extra options.", "description": "Zope Object DataBase mountpoints. See https://github.com/zopefoundation/ZODB/blob/3.10/src/ZODB/component.xml for extra options.",
"items": { "items": {
"required": ["type"], "required": [
"type"
],
"properties": { "properties": {
"name": { "name": {
"description": "Database name", "description": "Database name",
...@@ -251,14 +263,21 @@ ...@@ -251,14 +263,21 @@
}, },
"type": { "type": {
"description": "Storage type", "description": "Storage type",
"enum": ["zeo", "neo"], "enum": [
"zeo",
"neo"
],
"type": "string" "type": "string"
}, },
"server": { "server": {
"description": "Instantiate a server. If missing, 'storage-dict' must contain the necessary properties to mount the ZODB. For ZEO, the partition reference is 'zodb'. For NEO, they are 'neo-0', 'neo-1', ...", "description": "Instantiate a server. If missing, 'storage-dict' must contain the necessary properties to mount the ZODB. For ZEO, the partition reference is 'zodb'. For NEO, they are 'neo-0', 'neo-1', ...",
"anyOf": [ "anyOf": [
{"$ref": "./instance-zeo-schema.json"}, {
{"$ref": "../neoppod/instance-neo-input-schema.json"} "$ref": "./instance-zeo-schema.json"
},
{
"$ref": "../neoppod/instance-neo-input-schema.json"
}
] ]
}, },
"storage-dict": { "storage-dict": {
...@@ -270,11 +289,15 @@ ...@@ -270,11 +289,15 @@
"type": "boolean" "type": "boolean"
} }
}, },
"additionalProperties": {"type": "string"}, "additionalProperties": {
"type": "string"
},
"type": "object" "type": "object"
} }
}, },
"additionalProperties": {"type": "string"}, "additionalProperties": {
"type": "string"
},
"type": "object" "type": "object"
}, },
"type": "array" "type": "array"
...@@ -311,10 +334,10 @@ ...@@ -311,10 +334,10 @@
"format": "uri" "format": "uri"
}, },
"crl-update-periodicity": { "crl-update-periodicity": {
"title": "Periodicity of CRL update", "title": "Periodicity of CRL update",
"description": "Periodicity of CRL update, in cron format. The CRL will be downloaded from caucase URL and the new content will be saved if there was a change. Everytime a new CRL is writen, Apache reload will be called.", "description": "Periodicity of CRL update, in cron format. The CRL will be downloaded from caucase URL and the new content will be saved if there was a change. Everytime a new CRL is writen, Apache reload will be called.",
"type": "string", "type": "string",
"default": "0 0 * * *" "default": "0 0 * * *"
} }
}, },
"additionalProperties": { "additionalProperties": {
......
...@@ -51,7 +51,7 @@ ...@@ -51,7 +51,7 @@
"mariadb-test-database-list": { "mariadb-test-database-list": {
"description": "Relational database access information", "description": "Relational database access information",
"items": { "items": {
"pattern": "^mysql://", "pattern": "^mysql://",
"type": "string" "type": "string"
}, },
"uniqueItems": true, "uniqueItems": true,
......
{ {
"$schema": "http://json-schema.org/draft-04/schema#", "$schema": "http://json-schema.org/draft-04/schema#",
"required": ["tcpv4-port"], "required": [
"tcpv4-port"
],
"properties": { "properties": {
"tcpv4-port": { "tcpv4-port": {
"allOf": [{ "allOf": [
"$ref": "#/definitions/tcpv4port" {
}, { "$ref": "#/definitions/tcpv4port"
"description": "Start allocating ports at this value, going upward" },
}] {
"description": "Start allocating ports at this value, going upward"
}
]
}, },
"ram-storage-size": { "ram-storage-size": {
"description": "If 0 use disk storage, otherwise use ram and limit data size to this many megabytes", "description": "If 0 use disk storage, otherwise use ram and limit data size to this many megabytes",
......
{ {
"$schema": "http://json-schema.org/draft-04/schema#", "$schema": "http://json-schema.org/draft-04/schema#",
"required": ["tcpv4-port"], "required": [
"tcpv4-port"
],
"properties": { "properties": {
"tcpv4-port": { "tcpv4-port": {
"allOf": [{ "allOf": [
"$ref": "#/definitions/tcpv4port" {
}, { "$ref": "#/definitions/tcpv4port"
"description": "Start allocating ports at this value, going downward" },
}] {
"description": "Start allocating ports at this value, going downward"
}
]
}, },
"database-list": { "database-list": {
"description": "Databases to create and respective user credentials getting all privileges on it", "description": "Databases to create and respective user credentials getting all privileges on it",
"default": [{ "default": [
"name": "erp5", {
"user": "user", "name": "erp5",
"password": "insecure" "user": "user",
}], "password": "insecure"
}
],
"minItems": 1, "minItems": 1,
"items": { "items": {
"required": ["name", "user", "password"], "required": [
"name",
"user",
"password"
],
"properties": { "properties": {
"name": { "name": {
"description": "Database name", "description": "Database name",
...@@ -135,6 +146,5 @@ ...@@ -135,6 +146,5 @@
}, },
"type": "array" "type": "array"
} }
} }
} }
{ {
"$schema": "http://json-schema.org/draft-04/schema#", "$schema": "http://json-schema.org/draft-04/schema#",
"extends": "./schema-definitions.json#", "extends": "./schema-definitions.json#",
"required": ["tcpv4-port"], "required": [
"tcpv4-port"
],
"properties": { "properties": {
"tcpv4-port": { "tcpv4-port": {
"allOf": [{ "allOf": [
"$ref": "#/definitions/tcpv4port" {
}, { "$ref": "#/definitions/tcpv4port"
"description": "Start allocating ports at this value, going upward" },
}] {
"description": "Start allocating ports at this value, going upward"
}
]
}, },
"postmaster": { "postmaster": {
"description": "Mail address to send technical mails to. Non-empty value required for smptd relay service to be deployed. Values will be put in alias-dict as 'postmaster' key (alias-dict takes precedence)", "description": "Mail address to send technical mails to. Non-empty value required for smptd relay service to be deployed. Values will be put in alias-dict as 'postmaster' key (alias-dict takes precedence)",
...@@ -29,7 +34,9 @@ ...@@ -29,7 +34,9 @@
"relay": { "relay": {
"description": "Forward outgoing mails to a specific relay. If enabled, relay must support TLS-encrypted SASL authentication.", "description": "Forward outgoing mails to a specific relay. If enabled, relay must support TLS-encrypted SASL authentication.",
"dependencies": { "dependencies": {
"host": ["sasl-credential"] "host": [
"sasl-credential"
]
}, },
"properties": { "properties": {
"host": { "host": {
......
{ {
"type": "object", "type": "object",
"$schema": "http://json-schema.org/draft-04/schema", "$schema": "http://json-schema.org/draft-04/schema",
"title": "Input Parameters", "title": "Input Parameters",
"properties": { "properties": {
"test-node-title": { "test-node-title": {
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
"description": "Password to access shellinabox.", "description": "Password to access shellinabox.",
"type": "string" "type": "string"
}, },
"url": { "url": {
"description": "IPv6 URL to access the shell in a box.", "description": "IPv6 URL to access the shell in a box.",
"type": "string" "type": "string"
} }
......
{ {
"name": "ERP5 Test Node", "name": "ERP5 Test Node",
"description": "ERP5 Test Node Runner", "description": "ERP5 Test Node Runner",
"serialisation": "xml", "serialisation": "xml",
"software-type": { "software-type": {
"default": { "default": {
"title": "Default", "title": "Default",
"description": "Default setup for ERP5TestNode Instance.", "description": "Default setup for ERP5TestNode Instance.",
"request": "instance-erp5testnode-input-schema.json", "request": "instance-erp5testnode-input-schema.json",
"response": "instance-output-schema.json" "response": "instance-output-schema.json"
} }
} }
} }
{ {
"type": "object", "type": "object",
"$schema": "http://json-schema.org/draft-04/schema", "$schema": "http://json-schema.org/draft-04/schema",
"title": "Input Parameters", "title": "Input Parameters",
"properties": { "properties": {
"image-to-test-url": { "image-to-test-url": {
...@@ -23,7 +22,10 @@ ...@@ -23,7 +22,10 @@
"title": "Type of the test.", "title": "Type of the test.",
"type": "string", "type": "string",
"default": "script-from-url", "default": "script-from-url",
"enum" : ["script-from-url", "cloned-playbook"] "enum": [
"script-from-url",
"cloned-playbook"
]
}, },
"script-to-test-url": { "script-to-test-url": {
"title": "Optional URL of script to test, used for test-type=script-from-url.", "title": "Optional URL of script to test, used for test-type=script-from-url.",
...@@ -36,5 +38,9 @@ ...@@ -36,5 +38,9 @@
"type": "string" "type": "string"
} }
}, },
"required": ["image-to-test-url", "image-to-test-md5sum", "test-type"] "required": [
"image-to-test-url",
"image-to-test-md5sum",
"test-type"
]
} }
{ {
"name": "Deploy Test", "name": "Deploy Test",
"description": "Deploy Testing software release", "description": "Deploy Testing software release",
"serialisation": "xml", "serialisation": "xml",
"software-type": { "software-type": {
"default": { "default": {
"title": "Default", "title": "Default",
"description": "Standard ERP5TestNode hooked", "description": "Standard ERP5TestNode hooked",
"request": "instance-input-schema.json", "request": "instance-input-schema.json",
"index": 0 "index": 0
}
} }
}
} }
...@@ -8,11 +8,11 @@ ...@@ -8,11 +8,11 @@
"type": "string" "type": "string"
}, },
"smtp-username": { "smtp-username": {
"description": "Username to connect to SMTP server", "description": "Username to connect to SMTP server",
"type": "string" "type": "string"
}, },
"smtp-password": { "smtp-password": {
"description": "Password to connect to SMTP server", "description": "Password to connect to SMTP server",
"type": "string" "type": "string"
}, },
"smtp-verify-ssl": { "smtp-verify-ssl": {
......
...@@ -110,14 +110,17 @@ ...@@ -110,14 +110,17 @@
"title": "Scheme of HTTP service into the VM (require: kvm-name).", "title": "Scheme of HTTP service into the VM (require: kvm-name).",
"description": "Say If HTTP service to run/or running into the Virtual Machine will use http or https. Possible values: http, https.", "description": "Say If HTTP service to run/or running into the Virtual Machine will use http or https. Possible values: http, https.",
"type": "string", "type": "string",
"enum": ["http", "https"], "enum": [
"http",
"https"
],
"default": "http" "default": "http"
} }
}, },
"type": "object" "type": "object"
} }
}, },
"type": "object" "type": "object"
} }
}, },
"type": "object" "type": "object"
...@@ -126,20 +129,23 @@ ...@@ -126,20 +129,23 @@
"title": "Restrict all access to VM with firewall.", "title": "Restrict all access to VM with firewall.",
"description": "When Firewall is enabled, this parameter define if only vm of this cluster and authorized sources ip should have access to cluster.", "description": "When Firewall is enabled, this parameter define if only vm of this cluster and authorized sources ip should have access to cluster.",
"type": "string", "type": "string",
"enum": ["on", "off"], "enum": [
"on",
"off"
],
"default": "off" "default": "off"
}, },
"fw-authorized-sources": { "fw-authorized-sources": {
"title": "List of IP/Network address authorized to cluster.", "title": "List of IP/Network address authorized to cluster.",
"description": "When Firewall is enabled, this contain the list of IP address to authorize for access to all VM of this cluster.", "description": "When Firewall is enabled, this contain the list of IP address to authorize for access to all VM of this cluster.",
"type": "array", "type": "array",
"optional": true "optional": true
}, },
"fw-reject-sources": { "fw-reject-sources": {
"title": "List of IP/Network address rejected, if 'Restrict all access' is off.", "title": "List of IP/Network address rejected, if 'Restrict all access' is off.",
"description": "When Firewall is enabled, this contain the list of IP address which should not access to all VM of this cluster.", "description": "When Firewall is enabled, this contain the list of IP address which should not access to all VM of this cluster.",
"type": "array", "type": "array",
"optional": true "optional": true
}, },
"authorized-keys": { "authorized-keys": {
"title": "Public keys for virtual machines.", "title": "Public keys for virtual machines.",
...@@ -158,17 +164,17 @@ ...@@ -158,17 +164,17 @@
"type": "string" "type": "string"
}, },
"monitor-interface-url": { "monitor-interface-url": {
"title": "Monitor Web Interface URL", "title": "Monitor Web Interface URL",
"description": "Give Url of HTML web interface that will be used to render this monitor instance.", "description": "Give Url of HTML web interface that will be used to render this monitor instance.",
"type": "string", "type": "string",
"format": "uri", "format": "uri",
"default": "https://monitor.app.officejs.com" "default": "https://monitor.app.officejs.com"
}, },
"monitor-cors-domains": { "monitor-cors-domains": {
"title": "Monitor CORS domains", "title": "Monitor CORS domains",
"description": "List of cors domains separated with space. Needed for ajax query on this monitor instance from a different domain.", "description": "List of cors domains separated with space. Needed for ajax query on this monitor instance from a different domain.",
"type": "string", "type": "string",
"default": "monitor.app.officejs.com" "default": "monitor.app.officejs.com"
}, },
"kvm-partition-dict": { "kvm-partition-dict": {
"title": "kvm instances definition", "title": "kvm instances definition",
...@@ -187,7 +193,10 @@ ...@@ -187,7 +193,10 @@
"description": "Define if SlapOS should start or stop this VM.", "description": "Define if SlapOS should start or stop this VM.",
"type": "string", "type": "string",
"default": "started", "default": "started",
"enum": ["started", "stopped"] "enum": [
"started",
"stopped"
]
}, },
"enable-device-hotplug": { "enable-device-hotplug": {
"title": "Enable device hotplug mode", "title": "Enable device hotplug mode",
...@@ -237,7 +246,14 @@ ...@@ -237,7 +246,14 @@
"description": "Type of QEMU disk drive, to create.", "description": "Type of QEMU disk drive, to create.",
"type": "string", "type": "string",
"default": "qcow2", "default": "qcow2",
"enum": ["qcow2", "raw", "vdi", "vmdk", "cloop", "qed"] "enum": [
"qcow2",
"raw",
"vdi",
"vmdk",
"cloop",
"qed"
]
}, },
"disk-type": { "disk-type": {
"title": "Disk type", "title": "Disk type",
...@@ -259,14 +275,23 @@ ...@@ -259,14 +275,23 @@
"description": "Disk cache controls how the host cache is used to access block data.", "description": "Disk cache controls how the host cache is used to access block data.",
"type": "string", "type": "string",
"default": "writeback", "default": "writeback",
"enum": ["none", "writeback", "unsafe", "directsync", "writethrough"] "enum": [
"none",
"writeback",
"unsafe",
"directsync",
"writethrough"
]
}, },
"disk-aio": { "disk-aio": {
"title": "Disk aio to use.", "title": "Disk aio to use.",
"description": "Selects between pthread based disk I/O and native Linux AIO.", "description": "Selects between pthread based disk I/O and native Linux AIO.",
"type": "string", "type": "string",
"default": "threads", "default": "threads",
"enum": ["threads", "native"] "enum": [
"threads",
"native"
]
}, },
"cpu-count": { "cpu-count": {
"title": "CPU count", "title": "CPU count",
...@@ -302,7 +327,41 @@ ...@@ -302,7 +327,41 @@
"title": "Use keyboard layout language", "title": "Use keyboard layout language",
"description": "Use keyboard layout language (for example fr for French). Can be usefull with VNC display", "description": "Use keyboard layout language (for example fr for French). Can be usefull with VNC display",
"type": "string", "type": "string",
"enum": ["ar", "da", "de", "de-ch", "en-gb", "en-us", "es", "et", "fi", "fo", "fr", "fr-be", "fr-ca", "fr-ch", "hr", "hu", "is", "it", "ja", "lt", "lv", "mk", "nl", "nl-be", "no", "pl", "pt", "pt-br", "ru", "sl", "sv", "th", "tr"], "enum": [
"ar",
"da",
"de",
"de-ch",
"en-gb",
"en-us",
"es",
"et",
"fi",
"fo",
"fr",
"fr-be",
"fr-ca",
"fr-ch",
"hr",
"hu",
"is",
"it",
"ja",
"lt",
"lv",
"mk",
"nl",
"nl-be",
"no",
"pl",
"pt",
"pt-br",
"ru",
"sl",
"sv",
"th",
"tr"
],
"default": "fr" "default": "fr"
}, },
"nbd-host": { "nbd-host": {
...@@ -366,7 +425,14 @@ ...@@ -366,7 +425,14 @@
"description": "Type of QEMU disk drive, to create.", "description": "Type of QEMU disk drive, to create.",
"type": "string", "type": "string",
"default": "qcow2", "default": "qcow2",
"enum": ["qcow2", "raw", "vdi", "vmdk", "cloop", "qed"] "enum": [
"qcow2",
"raw",
"vdi",
"vmdk",
"cloop",
"qed"
]
}, },
"wipe-disk-ondestroy": { "wipe-disk-ondestroy": {
"title": "Wipe disks when destroy the VM", "title": "Wipe disks when destroy the VM",
......
{ {
"type": "object", "type": "object",
"$schema": "http://json-schema.org/draft-04/schema", "$schema": "http://json-schema.org/draft-04/schema",
"title": "Input Parameters", "title": "Input Parameters",
"properties": { "properties": {
"enable-device-hotplug": { "enable-device-hotplug": {
...@@ -53,31 +52,53 @@ ...@@ -53,31 +52,53 @@
"description": "Type of QEMU disk drive.", "description": "Type of QEMU disk drive.",
"type": "string", "type": "string",
"default": "virtio", "default": "virtio",
"enum": ["ide", "scsi", "sd", "mtd", "floppy", "pflash", "virtio"] "enum": [
"ide",
"scsi",
"sd",
"mtd",
"floppy",
"pflash",
"virtio"
]
}, },
"disk-format": { "disk-format": {
"title": "Type of disk drive to create by QEMU.", "title": "Type of disk drive to create by QEMU.",
"description": "Type of QEMU disk drive, to create.", "description": "Type of QEMU disk drive, to create.",
"type": "string", "type": "string",
"default": "qcow2", "default": "qcow2",
"enum": ["qcow2", "raw", "vdi", "vmdk", "cloop", "qed"] "enum": [
"qcow2",
"raw",
"vdi",
"vmdk",
"cloop",
"qed"
]
}, },
"disk-cache": { "disk-cache": {
"title": "Cache option to use with Disk.", "title": "Cache option to use with Disk.",
"description": "Disk cache controls how the host cache is used to access block data.", "description": "Disk cache controls how the host cache is used to access block data.",
"type": "string", "type": "string",
"default": "writeback", "default": "writeback",
"enum": ["none", "writeback", "unsafe", "directsync", "writethrough"] "enum": [
"none",
"writeback",
"unsafe",
"directsync",
"writethrough"
]
}, },
"disk-aio": { "disk-aio": {
"title": "Disk aio to use.", "title": "Disk aio to use.",
"description": "Selects between pthread based disk I/O and native Linux AIO.", "description": "Selects between pthread based disk I/O and native Linux AIO.",
"type": "string", "type": "string",
"default": "threads", "default": "threads",
"enum": ["threads", "native"] "enum": [
"threads",
"native"
]
}, },
"cpu-count": { "cpu-count": {
"title": "CPU count", "title": "CPU count",
"description": "Number of CPU cores.", "description": "Number of CPU cores.",
...@@ -107,19 +128,55 @@ ...@@ -107,19 +128,55 @@
"description": "Select the emulated CPU model. Ex: SandyBridge,+erms,+smep,+smx,+vmx", "description": "Select the emulated CPU model. Ex: SandyBridge,+erms,+smep,+smx,+vmx",
"type": "string" "type": "string"
}, },
"keyboard-layout-language": { "keyboard-layout-language": {
"title": "Use keyboard layout language", "title": "Use keyboard layout language",
"description": "Use keyboard layout language (for example fr for French). Can be usefull with VNC display", "description": "Use keyboard layout language (for example fr for French). Can be usefull with VNC display",
"type": "string", "type": "string",
"enum": ["ar", "da", "de", "de-ch", "en-gb", "en-us", "es", "et", "fi", "fo", "fr", "fr-be", "fr-ca", "fr-ch", "hr", "hu", "is", "it", "ja", "lt", "lv", "mk", "nl", "nl-be", "no", "pl", "pt", "pt-br", "ru", "sl", "sv", "th", "tr"] "enum": [
"ar",
"da",
"de",
"de-ch",
"en-gb",
"en-us",
"es",
"et",
"fi",
"fo",
"fr",
"fr-be",
"fr-ca",
"fr-ch",
"hr",
"hu",
"is",
"it",
"ja",
"lt",
"lv",
"mk",
"nl",
"nl-be",
"no",
"pl",
"pt",
"pt-br",
"ru",
"sl",
"sv",
"th",
"tr"
]
}, },
"nbd-host": { "nbd-host": {
"title": "NBD hostname", "title": "NBD hostname",
"description": "hostname (or IP) of the NBD server containing the boot image.", "description": "hostname (or IP) of the NBD server containing the boot image.",
"type": "string", "type": "string",
"format": ["host-name", "ip-address", "ipv6"], "format": [
"host-name",
"ip-address",
"ipv6"
],
"default": "debian.nbd.vifib.net" "default": "debian.nbd.vifib.net"
}, },
"nbd-port": { "nbd-port": {
...@@ -130,12 +187,15 @@ ...@@ -130,12 +187,15 @@
"minimum": 1, "minimum": 1,
"maximum": 65535 "maximum": 65535
}, },
"nbd2-host": { "nbd2-host": {
"title": "Second NBD hostname", "title": "Second NBD hostname",
"description": "hostname (or IP) of the second NBD server (containing drivers for example).", "description": "hostname (or IP) of the second NBD server (containing drivers for example).",
"type": "string", "type": "string",
"format": ["host-name", "ip-address", "ipv6"] "format": [
"host-name",
"ip-address",
"ipv6"
]
}, },
"nbd2-port": { "nbd2-port": {
"title": "Second NBD port", "title": "Second NBD port",
...@@ -144,7 +204,6 @@ ...@@ -144,7 +204,6 @@
"minimum": 1, "minimum": 1,
"maximum": 65535 "maximum": 65535
}, },
"virtual-hard-drive-url": { "virtual-hard-drive-url": {
"title": "Existing disk image URL", "title": "Existing disk image URL",
"description": "If specified, will download an existing disk image (qcow2, raw, ...), and will use it as main virtual hard drive. Can be used to download and use an already installed and customized virtual hard drive.", "description": "If specified, will download an existing disk image (qcow2, raw, ...), and will use it as main virtual hard drive. Can be used to download and use an already installed and customized virtual hard drive.",
...@@ -168,7 +227,6 @@ ...@@ -168,7 +227,6 @@
"type": "boolean", "type": "boolean",
"default": true "default": true
}, },
"external-disk-number": { "external-disk-number": {
"title": "Number of additional disk to create for virtual machine", "title": "Number of additional disk to create for virtual machine",
"description": "Specify the number of additional disk to create for virtual machine in data folder of SlapOS Node. Requires instance_storage_home to be configured on SlapOS Node.", "description": "Specify the number of additional disk to create for virtual machine in data folder of SlapOS Node. Requires instance_storage_home to be configured on SlapOS Node.",
...@@ -189,9 +247,15 @@ ...@@ -189,9 +247,15 @@
"description": "Type of QEMU disk drive, to create.", "description": "Type of QEMU disk drive, to create.",
"type": "string", "type": "string",
"default": "qcow2", "default": "qcow2",
"enum": ["qcow2", "raw", "vdi", "vmdk", "cloop", "qed"] "enum": [
"qcow2",
"raw",
"vdi",
"vmdk",
"cloop",
"qed"
]
}, },
"wipe-disk-ondestroy": { "wipe-disk-ondestroy": {
"title": "Wipe disks when destroy the VM", "title": "Wipe disks when destroy the VM",
"description": "Say if disks should be wiped by writing new data over every single bit before delete them. This option is used to securely delete VM disks", "description": "Say if disks should be wiped by writing new data over every single bit before delete them. This option is used to securely delete VM disks",
...@@ -206,7 +270,6 @@ ...@@ -206,7 +270,6 @@
"minimum": 1, "minimum": 1,
"maximum": 5 "maximum": 5
}, },
"use-tap": { "use-tap": {
"title": "Use QEMU TAP network interface", "title": "Use QEMU TAP network interface",
"description": "Use QEMU TAP network interface, might require a bridge on SlapOS Node.", "description": "Use QEMU TAP network interface, might require a bridge on SlapOS Node.",
...@@ -237,17 +300,17 @@ ...@@ -237,17 +300,17 @@
"default": false "default": false
}, },
"monitor-interface-url": { "monitor-interface-url": {
"title": "Monitor Web Interface URL", "title": "Monitor Web Interface URL",
"description": "Give Url of HTML web interface that will be used to render this monitor instance.", "description": "Give Url of HTML web interface that will be used to render this monitor instance.",
"type": "string", "type": "string",
"format": "uri", "format": "uri",
"default": "https://monitor.app.officejs.com" "default": "https://monitor.app.officejs.com"
}, },
"monitor-cors-domains": { "monitor-cors-domains": {
"title": "Monitor CORS domains", "title": "Monitor CORS domains",
"description": "List of cors domains separated with space. Needed for ajax query on this monitor instance from a different domain.", "description": "List of cors domains separated with space. Needed for ajax query on this monitor instance from a different domain.",
"type": "string", "type": "string",
"default": "monitor.app.officejs.com" "default": "monitor.app.officejs.com"
}, },
"enable-http-server": { "enable-http-server": {
"title": "Enable local http server", "title": "Enable local http server",
......
...@@ -8,7 +8,6 @@ ...@@ -8,7 +8,6 @@
"format": "uri", "format": "uri",
"require": true "require": true
}, },
"url": { "url": {
"title": "URL", "title": "URL",
"description": "URL used to connect to the service.", "description": "URL used to connect to the service.",
......
{ {
"type": "object", "type": "object",
"$schema": "http://json-schema.org/draft-04/schema", "$schema": "http://json-schema.org/draft-04/schema",
"allOf": [ "allOf": [
{ {
"$ref": "instance-kvm-input-schema.json#/" "$ref": "instance-kvm-input-schema.json#/"
},
{
"properties": {
"resilient-clone-number": {
"title": "Amount of backup(s) to create",
"description": "Amount of backup(s) to create. Each backup consists of a Pull Backup Server and a clone.",
"type": "integer",
"default": 1,
"optional": true
}, },
{ "-sla-0-computer_guid": {
"properties": { "title": "Target computer for main instance",
"resilient-clone-number": { "description": "Target computer GUID for main instance.",
"title": "Amount of backup(s) to create", "type": "string",
"description": "Amount of backup(s) to create. Each backup consists of a Pull Backup Server and a clone.", "optional": true
"type": "integer", },
"default": 1, "-sla-1-computer_guid": {
"optional": true "title": "Target computer for first clone",
}, "description": "Target computer for first clone and PBS.",
"-sla-0-computer_guid": { "type": "string",
"title": "Target computer for main instance", "optional": true
"description": "Target computer GUID for main instance.", },
"type": "string", "-sla-pbs1-computer_guid": {
"optional": true "title": "Target computer for first PBS",
}, "description": "Target computer for first PBS instance.",
"-sla-1-computer_guid": { "type": "string",
"title": "Target computer for first clone", "optional": true
"description": "Target computer for first clone and PBS.", },
"type": "string", "-sla-2-computer_guid": {
"optional": true "title": "Target computer for second clone",
}, "description": "Target computer for second clone and PBS.",
"-sla-pbs1-computer_guid": { "type": "string",
"title": "Target computer for first PBS", "optional": true
"description": "Target computer for first PBS instance.", },
"type": "string", "-sla-pbs2-computer_guid": {
"optional": true "title": "Target computer for second PBS",
}, "description": "Target computer for second PBS instance.",
"-sla-2-computer_guid": { "type": "string",
"title": "Target computer for second clone", "optional": true
"description": "Target computer for second clone and PBS.", },
"type": "string", "resiliency-backup-periodicity": {
"optional": true "title": "Periodicity of backup",
}, "description": "Periodicity of backup, in cron format.",
"-sla-pbs2-computer_guid": { "type": "string",
"title": "Target computer for second PBS", "optional": true
"description": "Target computer for second PBS instance.", },
"type": "string", "remove-backup-older-than": {
"optional": true "title": "Remove backups older than...",
}, "description": "Remove all the backups in PBS that are older than specified value. It should be rdiff-backup-compatible.",
"resiliency-backup-periodicity": { "type": "string",
"title": "Periodicity of backup", "default": "2W",
"description": "Periodicity of backup, in cron format.", "optional": true
"type": "string", },
"optional": true "ignore-known-hosts-file": {
}, "title": "Ignore known_hosts file",
"remove-backup-older-than": { "description": "Set either to fill known_hosts file for ssh or not. Useful if main instance and PBS are using the same IP (slapos proxy, webrunner).",
"title": "Remove backups older than...", "type": "boolean",
"description": "Remove all the backups in PBS that are older than specified value. It should be rdiff-backup-compatible.", "default": false,
"type": "string", "optional": true
"default": "2W",
"optional": true
},
"ignore-known-hosts-file": {
"title": "Ignore known_hosts file",
"description": "Set either to fill known_hosts file for ssh or not. Useful if main instance and PBS are using the same IP (slapos proxy, webrunner).",
"type": "boolean",
"default": false,
"optional": true
}
}
} }
] }
}
]
} }
{ {
"name": "KVM", "name": "KVM",
"description": "KVM", "description": "KVM",
"serialisation": "xml", "serialisation": "xml",
"software-type": { "software-type": {
"default": { "default": {
"title": "Default", "title": "Default",
"description": "Standalone KVM", "description": "Standalone KVM",
"request": "instance-kvm-input-schema.json", "request": "instance-kvm-input-schema.json",
"response": "instance-kvm-output-schema.json", "response": "instance-kvm-output-schema.json",
"index": 0 "index": 0
}, },
"kvm-resilient": { "kvm-resilient": {
"title": "Resilient", "title": "Resilient",
"description": "Resilient KVM", "description": "Resilient KVM",
"request": "instance-kvm-resilient-input-schema.json", "request": "instance-kvm-resilient-input-schema.json",
"response": "instance-kvm-output-schema.json", "response": "instance-kvm-output-schema.json",
"index": 1 "index": 1
}, },
"kvm-cluster": { "kvm-cluster": {
"title": "Cluster", "title": "Cluster",
"description": "Cluster KVM", "description": "Cluster KVM",
"serialisation": "json-in-xml", "serialisation": "json-in-xml",
"request": "instance-kvm-cluster-input-schema.json", "request": "instance-kvm-cluster-input-schema.json",
"response": "instance-kvm-output-schema.json", "response": "instance-kvm-output-schema.json",
"index": 2 "index": 2
}
} }
}
} }
...@@ -2,7 +2,9 @@ ...@@ -2,7 +2,9 @@
"$schema": "http://json-schema.org/draft-04/schema#", "$schema": "http://json-schema.org/draft-04/schema#",
"description": "Parameters to instantiate a NEO cluster. See https://lab.nexedi.com/nexedi/neoppod/blob/master/neo.conf for more information.", "description": "Parameters to instantiate a NEO cluster. See https://lab.nexedi.com/nexedi/neoppod/blob/master/neo.conf for more information.",
"additionalProperties": false, "additionalProperties": false,
"require": ["cluster"], "require": [
"cluster"
],
"properties": { "properties": {
"cluster": { "cluster": {
"description": "Cluster unique identifier. Your last line of defense against mixing up NEO clusters and corrupting your data. Choose a unique value for each of your cluster.", "description": "Cluster unique identifier. Your last line of defense against mixing up NEO clusters and corrupting your data. Choose a unique value for each of your cluster.",
...@@ -30,7 +32,9 @@ ...@@ -30,7 +32,9 @@
"description": "[NEO SR only] Where to request instances. Each key is a query string for criterions (e.g. \"computer_guid=foo\"), and each value is a list of partition references ('node-0', 'node-1', ...). The prefix 'node-' is mandatory and the number must start from 0. The total number of nodes here must be equal to the length of node-list.", "description": "[NEO SR only] Where to request instances. Each key is a query string for criterions (e.g. \"computer_guid=foo\"), and each value is a list of partition references ('node-0', 'node-1', ...). The prefix 'node-' is mandatory and the number must start from 0. The total number of nodes here must be equal to the length of node-list.",
"additionalProperties": { "additionalProperties": {
"type": "array", "type": "array",
"items": { "type": "string" }, "items": {
"type": "string"
},
"uniqueItems": true "uniqueItems": true
}, },
"type": "object" "type": "object"
...@@ -71,14 +75,14 @@ ...@@ -71,14 +75,14 @@
"type": "integer" "type": "integer"
}, },
"data-deduplication": { "data-deduplication": {
"description": "Set the --dedup option for storage nodes.", "description": "Set the --dedup option for storage nodes.",
"default": false, "default": false,
"type": "boolean" "type": "boolean"
}, },
"disable-drop-partitions": { "disable-drop-partitions": {
"description": "Set the --disable-drop-partitions option for storage nodes.", "description": "Set the --disable-drop-partitions option for storage nodes.",
"default": false, "default": false,
"type": "boolean" "type": "boolean"
}, },
"mysql": { "mysql": {
"description": "Dictionary containing parameters for MySQL.", "description": "Dictionary containing parameters for MySQL.",
......
{ {
"type": "object", "type": "object",
"$schema": "http://json-schema.org/draft-04/schema", "$schema": "http://json-schema.org/draft-04/schema",
"title": "Input Parameters", "title": "Input Parameters",
"properties": { "properties": {
"-dns-type": { "-dns-type": {
"title": "DNS Software type", "title": "DNS Software type",
"description": "Software type of DNS nodes", "description": "Software type of DNS nodes",
"default": "single-default", "default": "single-default",
"type": "string" "type": "string"
}, },
"-dns-software-release-url": { "-dns-software-release-url": {
"title": "DNS Software Release", "title": "DNS Software Release",
"description": "Url of the software release to be used for the nodes", "description": "Url of the software release to be used for the nodes",
"default": "", "default": "",
"type": "string" "type": "string"
}, },
"-dns-quantity": { "-dns-quantity": {
"title": "DNS Quantity", "title": "DNS Quantity",
"description": "DNS Nodes Quantity", "description": "DNS Nodes Quantity",
"default": 1, "default": 1,
"type": "integer" "type": "integer"
}, },
"-dns-i-state": { "-dns-i-state": {
"title": "Requested state of node i", "title": "Requested state of node i",
"description": "Requested State of node i of the replication. i must inferior or equal to '-dns-quantity'", "description": "Requested State of node i of the replication. i must inferior or equal to '-dns-quantity'",
"default": "started", "default": "started",
"type": "string" "type": "string"
}, },
"-sla-i-sla_parameter": { "-sla-i-sla_parameter": {
"title": "sla_parameter used to request node i", "title": "sla_parameter used to request node i",
"description": "Parameter used to provide sla parameter to request dns nodes", "description": "Parameter used to provide sla parameter to request dns nodes",
"default": "", "default": "",
"type": "string" "type": "string"
}, },
"zone": { "zone": {
"title": "Zone", "title": "Zone",
"description": "Zone to be handled by the DNS cluster", "description": "Zone to be handled by the DNS cluster",
...@@ -47,33 +40,30 @@ ...@@ -47,33 +40,30 @@
"default": "domain.com", "default": "domain.com",
"pattern": "^([a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?\\.)+[a-zA-Z]{2,6}$" "pattern": "^([a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?\\.)+[a-zA-Z]{2,6}$"
}, },
"server-admin": { "server-admin": {
"title": "Zone Administrator Email", "title": "Zone Administrator Email",
"description": "Email of the zone administrator, it is used to generate SOA value", "description": "Email of the zone administrator, it is used to generate SOA value",
"type": "string", "type": "string",
"default": "admin@domain.com" "default": "admin@domain.com"
}, },
"dns-name-template-string": { "dns-name-template-string": {
"title": "DNS domains template string", "title": "DNS domains template string",
"description": "Template used to generate DNS domain name", "description": "Template used to generate DNS domain name",
"type": "string", "type": "string",
"default": "ns%s. + zone" "default": "ns%s. + zone"
}, },
"monitor-interface-url": { "monitor-interface-url": {
"title": "Monitor Web Interface URL", "title": "Monitor Web Interface URL",
"description": "Give Url of HTML web interface that will be used to render this monitor instance.", "description": "Give Url of HTML web interface that will be used to render this monitor instance.",
"type": "string", "type": "string",
"format": "uri", "format": "uri",
"default": "https://monitor.app.officejs.com" "default": "https://monitor.app.officejs.com"
}, },
"monitor-cors-domains": { "monitor-cors-domains": {
"title": "Monitor CORS domains", "title": "Monitor CORS domains",
"description": "List of cors domains separated with space. Needed for ajax query on this monitor instance from a different domain.", "description": "List of cors domains separated with space. Needed for ajax query on this monitor instance from a different domain.",
"type": "string", "type": "string",
"default": "monitor.app.officejs.com" "default": "monitor.app.officejs.com"
} }
} }
} }
{ {
"type": "object", "type": "object",
"$schema": "http://json-schema.org/draft-04/schema", "$schema": "http://json-schema.org/draft-04/schema",
"title": "Input Parameters", "title": "Input Parameters",
"properties": { "properties": {
"record": { "record": {
"title": "Record", "title": "Record",
"description": "Record for the configuration", "description": "Record for the configuration",
"type": "string" "type": "string"
}, },
"origin": { "origin": {
"title": "Origin", "title": "Origin",
"description": "Used to qualify RR in the configuration. i.e.: if your origin is a.example.com and the RR for Europe is 'eu' the european clients will use eu.a.exmple.com", "description": "Used to qualify RR in the configuration. i.e.: if your origin is a.example.com and the RR for Europe is 'eu' the european clients will use eu.a.exmple.com",
"type": "string" "type": "string"
}, },
"default": { "default": {
"title": "Default RR", "title": "Default RR",
"description": "Defautl record to use when the ip is not regognized", "description": "Defautl record to use when the ip is not regognized",
"type": "string" "type": "string"
}, },
"europe": { "europe": {
"title": "Europe RR", "title": "Europe RR",
"description": "Records to use for Europe", "description": "Records to use for Europe",
"default": "eu", "default": "eu",
"type": "string" "type": "string"
}, },
"africa": { "africa": {
"title": "Africa RR", "title": "Africa RR",
"description": "Records to use for Africa", "description": "Records to use for Africa",
"default": "af", "default": "af",
"type": "string" "type": "string"
}, },
"south-america": { "south-america": {
"title": "South America RR", "title": "South America RR",
"description": "Records to use for South America", "description": "Records to use for South America",
"default": "sa", "default": "sa",
"type": "string" "type": "string"
}, },
"north-america": { "north-america": {
"title": "North America RR", "title": "North America RR",
"description": "Records to use for North America", "description": "Records to use for North America",
"default": "na", "default": "na",
"type": "string" "type": "string"
}, },
"china": { "china": {
"title": "China RR", "title": "China RR",
"description": "Records to use for China", "description": "Records to use for China",
"default": "cn", "default": "cn",
"type": "string" "type": "string"
}, },
"japan": { "japan": {
"title": "Japan RR", "title": "Japan RR",
"description": "Records to use for Japan", "description": "Records to use for Japan",
"default": "jp", "default": "jp",
"type": "string" "type": "string"
}, },
"hong-kong": { "hong-kong": {
"title": "Honk Kong RR", "title": "Honk Kong RR",
"description": "Records to use for Hong Kong", "description": "Records to use for Hong Kong",
"default": "hk", "default": "hk",
"type": "string" "type": "string"
}, },
"east-asia": { "east-asia": {
"title": "East Asia RR", "title": "East Asia RR",
"description": "Records to use for East Asia", "description": "Records to use for East Asia",
"default": "as", "default": "as",
"type": "string" "type": "string"
}, },
"west-asia": { "west-asia": {
"title": "West Asia RR", "title": "West Asia RR",
"description": "Records to use for West Asia", "description": "Records to use for West Asia",
"default": "eu", "default": "eu",
"type": "string" "type": "string"
}, },
"oceania": { "oceania": {
"title": "Oceania RR", "title": "Oceania RR",
"description": "Records to use for Oceania", "description": "Records to use for Oceania",
......
{ {
"$schema": "http://json-schema.org/draft-04/schema#", "$schema": "http://json-schema.org/draft-04/schema#",
"properties": { "properties": {
"ipv6-prefix": { "ipv6-prefix": {
"title": "Ipv6 prefix to use to setup the new re6st network", "title": "Ipv6 prefix to use to setup the new re6st network",
"description": "Prefix ipv6 used by re6st to setup network. It is something like 2001:db8:42::/48", "description": "Prefix ipv6 used by re6st to setup network. It is something like 2001:db8:42::/48",
"type": "string" "type": "string"
}, },
"key-size": { "key-size": {
"title": "Number of bit to use for certificate generation", "title": "Number of bit to use for certificate generation",
"description": "Specify the size of certificate generated by re6st. by default, generate 2048-bit key length", "description": "Specify the size of certificate generated by re6st. by default, generate 2048-bit key length",
"type": "integer", "type": "integer",
"minimum": 1024, "minimum": 1024,
"default": 2048 "default": 2048
}, },
"prefix-length": { "prefix-length": {
"title": "Default length of allocated prefixes.", "title": "Default length of allocated prefixes.",
"description": "Default length of allocated prefixes.", "description": "Default length of allocated prefixes.",
"type": "integer", "type": "integer",
"default": 16 "default": 16
}, },
"anonymous-prefix-length": { "anonymous-prefix-length": {
"title": "Length of allocated anonymous prefixes.", "title": "Length of allocated anonymous prefixes.",
"description": "Length of allocated anonymous prefixes. 0 is unset.", "description": "Length of allocated anonymous prefixes. 0 is unset.",
"type": "integer", "type": "integer",
"default": 0 "default": 0
}, },
"mailhost": { "mailhost": {
"title": "SMTP host to send confirmation emails.", "title": "SMTP host to send confirmation emails.",
"description": "SMTP host to send confirmation emails. Not needed if when token is requested from slave instances.", "description": "SMTP host to send confirmation emails. Not needed if when token is requested from slave instances.",
"type": "string", "type": "string",
"default": "127.0.0.1" "default": "127.0.0.1"
}, },
"ipv4-net": { "ipv4-net": {
"title": "Enable ipv4 (ip/NET P_LENGTH).", "title": "Enable ipv4 (ip/NET P_LENGTH).",
"description": "Enable ipv4 (ip/NET P_LENGTH). Each node is assigned a subnet of length PLEN, inside network IP/N. Ex: 10.42.0.0/16 8", "description": "Enable ipv4 (ip/NET P_LENGTH). Each node is assigned a subnet of length PLEN, inside network IP/N. Ex: 10.42.0.0/16 8",
"type": "string", "type": "string",
"default": "" "default": ""
}, },
"client-count": { "client-count": {
"title": "Number of client tunnels to set up.", "title": "Number of client tunnels to set up.",
"description": "Number of client tunnels to set up.", "description": "Number of client tunnels to set up.",
"type": "integer", "type": "integer",
"default": 10 "default": 10
}, },
"tunnel-refresh": { "tunnel-refresh": {
"title": "Interval in seconds between two tunnel refresh.", "title": "Interval in seconds between two tunnel refresh.",
"description": "Interval in seconds between two tunnel refresh: the worst tunnel is closed if the number of client tunnels has reached its maximum number (client-count).", "description": "Interval in seconds between two tunnel refresh: the worst tunnel is closed if the number of client tunnels has reached its maximum number (client-count).",
"type": "integer", "type": "integer",
"default": 300 "default": 300
}, },
"max-clients": { "max-clients": {
"title": "Maximum number of accepted clients per OpenVPN server.", "title": "Maximum number of accepted clients per OpenVPN server.",
"description": "Maximum number of accepted clients per OpenVPN server. (if unset or 0: client-count * 2, which actually represents the average number of tunnels to other peers)", "description": "Maximum number of accepted clients per OpenVPN server. (if unset or 0: client-count * 2, which actually represents the average number of tunnels to other peers)",
"type": "integer", "type": "integer",
"default": 0 "default": 0
}, },
"hello": { "hello": {
"title": "Hello interval in seconds, for both wired and wireless connections.", "title": "Hello interval in seconds, for both wired and wireless connections.",
"description": "Hello interval in seconds, for both wired and wireless connections. OpenVPN ping-exit option is set to 4 times the hello interval. It takes between 3 and 4 times the hello interval for Babel to re-establish connection with a node for which the direct connection has been cut.", "description": "Hello interval in seconds, for both wired and wireless connections. OpenVPN ping-exit option is set to 4 times the hello interval. It takes between 3 and 4 times the hello interval for Babel to re-establish connection with a node for which the direct connection has been cut.",
"type": "integer", "type": "integer",
"default": 15 "default": 15
}, },
"min-protocol": { "min-protocol": {
"title": "Reject nodes that are too old.", "title": "Reject nodes that are too old.",
"description": "Reject nodes that are too old. Default is unset.", "description": "Reject nodes that are too old. Default is unset.",
"type": "integer", "type": "integer",
"default": -1 "default": -1
}, },
"encrypt": { "encrypt": {
"title": "Specify that tunnels should be encrypted.", "title": "Specify that tunnels should be encrypted.",
"description": "Specify that tunnels should be encrypted.", "description": "Specify that tunnels should be encrypted.",
"type": "boolean", "type": "boolean",
"default": false "default": false
}, },
"same-country": { "same-country": {
"title": "Same Country", "title": "Same Country",
"description": "Prevent tunnelling accross borders of listed countries", "description": "Prevent tunnelling accross borders of listed countries",
"type": "string", "type": "string",
"default": "" "default": ""
}
} }
} }
\ No newline at end of file }
...@@ -8,4 +8,4 @@ ...@@ -8,4 +8,4 @@
} }
}, },
"type": "object" "type": "object"
} }
\ No newline at end of file
{ {
"$schema": "http://json-schema.org/draft-04/schema#", "$schema": "http://json-schema.org/draft-04/schema#",
"properties": { "properties": {}
}
} }
{ {
"name": "RE6STNET", "name": "RE6STNET",
"description": "Master instance of re6st (Resilient, Scalable, IPv6 Network application)", "description": "Master instance of re6st (Resilient, Scalable, IPv6 Network application)",
"serialisation": "xml", "serialisation": "xml",
"software-type": { "software-type": {
"default": { "default": {
"title": "Default", "title": "Default",
"description": "Re6st registry", "description": "Re6st registry",
"request": "instance-re6stnet-input-schema.json", "request": "instance-re6stnet-input-schema.json",
"response": "instance-re6stnet-output-schema.json", "response": "instance-re6stnet-output-schema.json",
"index": 0 "index": 0
}, },
"default-slave": { "default-slave": {
"title": "Re6st Token", "title": "Re6st Token",
"description": "Re6st registry", "description": "Re6st registry",
"software-type": "default", "software-type": "default",
"request": "instance-re6stnet-slave-input-schema.json", "request": "instance-re6stnet-slave-input-schema.json",
"response": "instance-re6stnet-output-schema.json", "response": "instance-re6stnet-output-schema.json",
"shared": true, "shared": true,
"index": 1 "index": 1
}
} }
}
} }
{ {
"$schema": "http://json-schema.org/draft-04/schema#", "$schema": "http://json-schema.org/draft-04/schema#",
"properties": { "properties": {
"user-authorized-key": { "user-authorized-key": {
"title": "User Authorized Key", "title": "User Authorized Key",
"description": "SSH public key in order to connect to the SSH server of this runner instance.", "description": "SSH public key in order to connect to the SSH server of this runner instance.",
"textarea": true, "textarea": true,
"type": "string" "type": "string"
}, },
"instance-amount": { "instance-amount": {
"title": "Partition Amount", "title": "Partition Amount",
"description": "Number of slappart to deploy inside the runner (default is 10). Needs instance to be restarted.", "description": "Number of slappart to deploy inside the runner (default is 10). Needs instance to be restarted.",
"type": "integer", "type": "integer",
"minimum": 1, "minimum": 1,
"maximum": 40 "maximum": 40
}, },
"slapos-software": { "slapos-software": {
"title": "Pre-selected Software Release", "title": "Pre-selected Software Release",
"description": "a relative path from the slapos git repo to a folder containing a software release, which will be automaticaly deployed while the runner instanciation, and only if the parameter auto-deploy is set to 'true'. For example: 'software/helloworld", "description": "a relative path from the slapos git repo to a folder containing a software release, which will be automaticaly deployed while the runner instanciation, and only if the parameter auto-deploy is set to 'true'. For example: 'software/helloworld",
"type": "string" "type": "string"
}, },
"auto-deploy": { "auto-deploy": {
"title": "Automatically Deploy Software", "title": "Automatically Deploy Software",
"description": "Authorizes the software declared with 'slapos-software' to be automatically deployed, or not. Needs instance to be restarted. (default is false)", "description": "Authorizes the software declared with 'slapos-software' to be automatically deployed, or not. Needs instance to be restarted. (default is false)",
"type": "boolean" "type": "boolean"
}, },
"slapos-repository": { "slapos-repository": {
"title": "SlapOS Git Repository URL", "title": "SlapOS Git Repository URL",
"description": "url of the default git repository that will be download by the runner while its instanciation. Will be cloned in a directory named 'slapos' (default is https://lab.nexedi.com/nexedi/slapos.git)", "description": "url of the default git repository that will be download by the runner while its instanciation. Will be cloned in a directory named 'slapos' (default is https://lab.nexedi.com/nexedi/slapos.git)",
"type": "string", "type": "string",
"format": "uri", "format": "uri",
"pattern": "^(http|https|ftp)://" "pattern": "^(http|https|ftp)://"
}, },
"slapos-reference": { "slapos-reference": {
"title": "SlapOS Git Branch Name", "title": "SlapOS Git Branch Name",
"description": "Branch or hash on which the default repository will checkout (default is master)", "description": "Branch or hash on which the default repository will checkout (default is master)",
"type": "string" "type": "string"
}, },
"auto-deploy-instance": { "auto-deploy-instance": {
"title": "Automatically Deploy Instances", "title": "Automatically Deploy Instances",
"description": "Prevent the runner from deploying and starting instances. Needs instance to be restarted. It is set to false for instances of type 'import' in resiliency in any case (default is false)", "description": "Prevent the runner from deploying and starting instances. Needs instance to be restarted. It is set to false for instances of type 'import' in resiliency in any case (default is false)",
"type": "boolean" "type": "boolean"
}, },
"autorun": { "autorun": {
"title": "Automatically Run Sofware/Instance", "title": "Automatically Run Sofware/Instance",
"description": "Let automaticaly build and run a declared software with 'slapos-software'. Only works if 'slapos-software' is set, and 'auto-deploy' is true. Needs instance to be restarted. (default is false)", "description": "Let automaticaly build and run a declared software with 'slapos-software'. Only works if 'slapos-software' is set, and 'auto-deploy' is true. Needs instance to be restarted. (default is false)",
"type": "boolean" "type": "boolean"
}, },
"slapos-software-type": { "slapos-software-type": {
"title": "Deployed Instance Software Type" , "title": "Deployed Instance Software Type",
"description": "Software type of your instance inside the runner", "description": "Software type of your instance inside the runner",
"type": "string" "type": "string"
}, },
"cpu-usage-ratio": { "cpu-usage-ratio": {
"title": "CPU Usage Ratio", "title": "CPU Usage Ratio",
"description": "Ratio of the CPU use for compilation, if value is set to n, compilation will use number-of-cpu/n of cpus (need instance restart)", "description": "Ratio of the CPU use for compilation, if value is set to n, compilation will use number-of-cpu/n of cpus (need instance restart)",
"type": "integer", "type": "integer",
"default" : 4 "default": 4
}, },
"no-ipv4-frontend": { "no-ipv4-frontend": {
"title": "No IPv4 frontend", "title": "No IPv4 frontend",
"description": "Prevent the slaprunner to order an IPv4 frontend for itself", "description": "Prevent the slaprunner to order an IPv4 frontend for itself",
"enum": ["true", "false"], "enum": [
"default": "false" "true",
}, "false"
"custom-frontend-backend-url": { ],
"title": "Custom Frontend Backend URL", "default": "false"
"description": "return an ipv4 frontend of the given ipv6(+optional port)", },
"type": "string", "custom-frontend-backend-url": {
"format": "uri" "title": "Custom Frontend Backend URL",
}, "description": "return an ipv4 frontend of the given ipv6(+optional port)",
"custom-frontend-backend-type": { "type": "string",
"title": "Custom Frontend Backend Type", "format": "uri"
"description": "The type of the frontend slave instance to ask", },
"type": "string", "custom-frontend-backend-type": {
"enum": ["zope"] "title": "Custom Frontend Backend Type",
}, "description": "The type of the frontend slave instance to ask",
"custom-frontend-basic-auth": { "type": "string",
"title": "Custom Frontend Basic Auth", "enum": [
"description": "if the ip given with 'custom-frontend-backend-url' is secure, set it to true for the promise do not fail", "zope"
"type": "boolean" ]
}, },
"custom-frontend-instance-guid": { "custom-frontend-basic-auth": {
"title": "Custom Frontend Instance GUID", "title": "Custom Frontend Basic Auth",
"description": "Instance guid of the frontend you whish to use", "description": "if the ip given with 'custom-frontend-backend-url' is secure, set it to true for the promise do not fail",
"type": "string" "type": "boolean"
}, },
"custom-frontend-software-type": { "custom-frontend-instance-guid": {
"title": "Custom Frontend Software Type", "title": "Custom Frontend Instance GUID",
"description": "SoftwareType of the frontend you request (default is RootSoftwareInstance)", "description": "Instance guid of the frontend you whish to use",
"type": "string", "type": "string"
"enum": ["RootSoftwareInstance", "default"] },
}, "custom-frontend-software-type": {
"custom-frontend-software-url": { "title": "Custom Frontend Software Type",
"title": "Custom Frontend Software URL", "description": "SoftwareType of the frontend you request (default is RootSoftwareInstance)",
"description": "Software Url of the frontend you request (ie.: http://git.erp5.org/gitweb/slapos.git/blob_plain/HEAD:/software/apache-frontend/software.cfg)", "type": "string",
"type": "string", "enum": [
"format": "uri" "RootSoftwareInstance",
}, "default"
"check-custom-frontend-promise": { ]
"title": "Check Custom Frontend Promise", },
"description": "Enable a promise to check that HTTP frontend created from custom-frontend-backend-url is available", "custom-frontend-software-url": {
"type": "string", "title": "Custom Frontend Software URL",
"enum": ["true", "false"], "description": "Software Url of the frontend you request (ie.: http://git.erp5.org/gitweb/slapos.git/blob_plain/HEAD:/software/apache-frontend/software.cfg)",
"default": "false" "type": "string",
}, "format": "uri"
"monitor-port": { },
"title": "Monitor Port", "check-custom-frontend-promise": {
"description": "Allow to manually change the port on wich the apache server running monitoring interface is listening. The default value for the webrunner is different from the default value of the standalone stack-monitor server (default 9684)", "title": "Check Custom Frontend Promise",
"type": "integer", "description": "Enable a promise to check that HTTP frontend created from custom-frontend-backend-url is available",
"minimum": 9683, "type": "string",
"exclusiveMinimum": true "enum": [
}, "true",
"monitor-interface-url": { "false"
"title": "Monitor Web Interface URL", ],
"description": "Give Url of HTML web interface that will be used to render this monitor instance.", "default": "false"
"type": "string", },
"format": "uri", "monitor-port": {
"default": "https://monitor.app.officejs.com" "title": "Monitor Port",
}, "description": "Allow to manually change the port on wich the apache server running monitoring interface is listening. The default value for the webrunner is different from the default value of the standalone stack-monitor server (default 9684)",
"monitor-cors-domains": { "type": "integer",
"title": "Monitor CORS domains", "minimum": 9683,
"description": "List of cors domains separated with space. Needed for ajax query on this monitor instance from a different domain.", "exclusiveMinimum": true
"type": "string", },
"default": "monitor.app.officejs.com" "monitor-interface-url": {
}, "title": "Monitor Web Interface URL",
"instance-name": { "description": "Give Url of HTML web interface that will be used to render this monitor instance.",
"title": "Instance Name", "type": "string",
"description": "Name of the instance, to show in the window title", "format": "uri",
"type": "string" "default": "https://monitor.app.officejs.com"
} },
"monitor-cors-domains": {
"title": "Monitor CORS domains",
"description": "List of cors domains separated with space. Needed for ajax query on this monitor instance from a different domain.",
"type": "string",
"default": "monitor.app.officejs.com"
},
"instance-name": {
"title": "Instance Name",
"description": "Name of the instance, to show in the window title",
"type": "string"
} }
}
} }
...@@ -40,4 +40,4 @@ ...@@ -40,4 +40,4 @@
} }
}, },
"type": "object" "type": "object"
} }
\ No newline at end of file
{ {
"type": "object", "type": "object",
"$schema": "http://json-schema.org/draft-04/schema", "$schema": "http://json-schema.org/draft-04/schema",
"allOf": [ "allOf": [
{ {
"$ref": "instance-runner-input-schema.json#/" "$ref": "instance-runner-input-schema.json#/"
},
{
"properties": {
"resilient-clone-number": {
"title": "Amount of backup(s) to create",
"description": "Amount of backup(s) to create. Each backup consists of a Pull Backup Server and a clone.",
"type": "integer",
"default": 1,
"minimum": 0,
"maximum": 2,
"optional": true
}, },
{ "-sla-runner0-computer_guid": {
"properties": { "title": "Target computer for main instance",
"resilient-clone-number": { "description": "Target computer GUID for main instance.",
"title": "Amount of backup(s) to create", "type": "string",
"description": "Amount of backup(s) to create. Each backup consists of a Pull Backup Server and a clone.", "optional": true
"type": "integer", },
"default": 1, "-sla-runner1-computer_guid": {
"minimum": 0, "title": "Target computer for first clone",
"maximum": 2, "description": "Target computer for first clone instance.",
"optional": true "type": "string",
}, "optional": true
"-sla-runner0-computer_guid": { },
"title": "Target computer for main instance", "-sla-pbs1-computer_guid": {
"description": "Target computer GUID for main instance.", "title": "Target computer for first PBS",
"type": "string", "description": "Target computer for first PBS instance.",
"optional": true "type": "string",
}, "optional": true
"-sla-runner1-computer_guid": { },
"title": "Target computer for first clone", "-sla-runner2-computer_guid": {
"description": "Target computer for first clone instance.", "title": "Target computer for second clone",
"type": "string", "description": "Target computer for second clone instance.",
"optional": true "type": "string",
}, "optional": true
"-sla-pbs1-computer_guid": { },
"title": "Target computer for first PBS", "-sla-pbs2-computer_guid": {
"description": "Target computer for first PBS instance.", "title": "Target computer for second PBS",
"type": "string", "description": "Target computer for second PBS instance.",
"optional": true "type": "string",
}, "optional": true
"-sla-runner2-computer_guid": { },
"title": "Target computer for second clone", "resiliency-backup-periodicity": {
"description": "Target computer for second clone instance.", "title": "Periodicity of backup",
"type": "string", "description": "Periodicity of backup, in cron format.",
"optional": true "type": "string",
}, "optional": true
"-sla-pbs2-computer_guid": { },
"title": "Target computer for second PBS", "remove-backup-older-than": {
"description": "Target computer for second PBS instance.", "title": "Remove backups older than...",
"type": "string", "description": "Remove all the backups in PBS that are older than specified value. It should be rdiff-backup-compatible.",
"optional": true "type": "string",
}, "default": "2W",
"resiliency-backup-periodicity": { "optional": true
"title": "Periodicity of backup", },
"description": "Periodicity of backup, in cron format.", "ignore-known-hosts-file": {
"type": "string", "title": "Ignore known_hosts file",
"optional": true "description": "Set either to fill known_hosts file for ssh or not. Useful if main instance and PBS are using the same IP (slapos proxy, webrunner).",
}, "type": "boolean",
"remove-backup-older-than": { "default": false,
"title": "Remove backups older than...", "optional": true
"description": "Remove all the backups in PBS that are older than specified value. It should be rdiff-backup-compatible.",
"type": "string",
"default": "2W",
"optional": true
},
"ignore-known-hosts-file": {
"title": "Ignore known_hosts file",
"description": "Set either to fill known_hosts file for ssh or not. Useful if main instance and PBS are using the same IP (slapos proxy, webrunner).",
"type": "boolean",
"default": false,
"optional": true
}
}
} }
] }
} }
\ No newline at end of file ]
}
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
"index": 0 "index": 0
}, },
"resilient": { "resilient": {
"title": "Resilient", "title": "Resilient",
"description": "Resilient Runner", "description": "Resilient Runner",
"request": "instance-runner-resilient-input-schema.json", "request": "instance-runner-resilient-input-schema.json",
"response": "instance-runner-output-schema.json", "response": "instance-runner-output-schema.json",
......
...@@ -3,12 +3,15 @@ ...@@ -3,12 +3,15 @@
"extends": "./schema-definitions.json#", "extends": "./schema-definitions.json#",
"properties": { "properties": {
"tcpv4-port": { "tcpv4-port": {
"allOf": [{ "allOf": [
"$ref": "#/definitions/tcpv4port" {
}, { "$ref": "#/definitions/tcpv4port"
"description": "Start allocating ports at this value, going upward", },
"default": 6001 {
}] "description": "Start allocating ports at this value, going upward",
"default": 6001
}
]
}, },
"backend-url": { "backend-url": {
"description": "The backend url that varnish will cache", "description": "The backend url that varnish will cache",
......
...@@ -3,7 +3,6 @@ ...@@ -3,7 +3,6 @@
"title": "Resiliency Parameters", "title": "Resiliency Parameters",
"description": "List of possible parameters used in the resilient stack", "description": "List of possible parameters used in the resilient stack",
"type": "object", "type": "object",
"properties": { "properties": {
"-sla-0-computer_guid": { "-sla-0-computer_guid": {
"title": "Target computer for main instance", "title": "Target computer for main instance",
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment