Commit 1320b5bb authored by Jérome Perrin's avatar Jérome Perrin

software/erp5: format json

with python json.tool
parent 82cf1471
{ {
"$schema": "http://json-schema.org/draft-04/schema#", "$schema": "http://json-schema.org/draft-04/schema#",
"description": "Parameters to instantiate ERP5",
"additionalProperties": false, "additionalProperties": false,
"description": "Parameters to instantiate ERP5",
"properties": { "properties": {
"sla-dict": { "bt5": {
"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": "Business Template to install at automatic site creation. By default, all configurators are installed.",
"additionalProperties": { "type": "string"
"type": "array",
"items": { "type": "string" },
"uniqueItems": true
}, },
"type": "object" "caucase": {
"additionalProperties": {
"$ref": "../caucase/instance-caucase-input-schema.json#/properties"
}, },
"site-id": { "description": "Caucase certificate authority parameters",
"description": "ERP5Site object's id. An empty value disables automatic site creation.", "properties": {
"default": "erp5", "crl-update-periodicity": {
"default": "0 0 * * *",
"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.",
"title": "Periodicity of CRL update",
"type": "string" "type": "string"
}, },
"bt5": { "url": {
"description": "Business Template to install at automatic site creation. By default, all configurators are installed.", "default": "",
"description": "URL of existing caucase instance to use. If empty, a new caucase instance will be deployed. If not empty, other properties in this section will be ignored.",
"format": "uri",
"title": "Caucase URL",
"type": "string" "type": "string"
}
}, },
"id-store-interval": { "type": "object"
"description": "Set Store Interval of default SQL Non Continuous Increasing Id Generator at automatic site creation. If unset, the value from the erp5_core Business Template is not touched.", },
"cloudooo-retry-count": {
"default": 2,
"description": "Define retry count for cloudooo in network error case in test",
"type": "integer" "type": "integer"
}, },
"timezone": { "cloudooo-url": {
"description": "Zope's timezone. Possible values are determined by host's libc, and typically come from a separate package (tzdata, ...)", "description": "Format conversion service URL",
"default": "UTC", "pattern": "^https?://",
"type": "string" "type": "string"
}, },
"deadlock-debugger-password": { "deadlock-debugger-password": {
"description": "Password for /manage_debug_threads", "description": "Password for /manage_debug_threads",
"type": "string" "type": "string"
}, },
"inituser-login": {
"description": "Login of the initial/rescue user",
"default": "zope",
"type": "string"
},
"inituser-password": {
"description": "Password of the initial/rescue user",
"type": "string"
},
"developer-list": { "developer-list": {
"description": "List of logins which should get the Developper role (required to modify portal_components' content), defaulting to inituser-login's value", "description": "List of logins which should get the Developper role (required to modify portal_components' content), defaulting to inituser-login's value",
"items": { "items": {
"pattern": "^\\S+$", "pattern": "^\\S+$",
"type": "string" "type": "string"
}, },
"uniqueItems": true, "type": "array",
"type": "array" "uniqueItems": true
},
"hostalias-dict": {
"description": "Hostname-to-domain-name mapping",
"default": {},
"additionalProperties": {
"description": "A hostname to which current entry will resolve",
"type": "string"
},
"type": "object"
},
"hosts-dict": {
"description": "Host entries to be used in addition to and/or overriding auto-generated ones (erp5-catalog-0, erp5-cloudooo, erp5-memcached-persistent, erp5-memcached-volatile and erp5-smtp)",
"patternProperties": {
".*": {
"description": "An IP or domain name to which current entry will resolve",
"type": "string"
}
},
"type": "object"
}, },
"frontend": { "frontend": {
"description": "Front-end slave instance request parameters", "description": "Front-end slave instance request parameters",
"properties": { "properties": {
"software-url": {
"description": "Front-end's software type. If this parameter is empty, no front-end instance is requested. Else, sla-dict must specify 'frontend' which is a special value matching all frontends (e.g. {\"instance_guid=bar\": [\"frontend\"]}).",
"default": "",
"type": "string"
},
"domain": { "domain": {
"description": "The domain name to request front-end to respond as.",
"default": "", "default": "",
"description": "The domain name to request front-end to respond as.",
"type": "string" "type": "string"
}, },
"software-type": { "software-type": {
"description": "Request a front-end slave instance of this software type.",
"default": "RootSoftwareInstance", "default": "RootSoftwareInstance",
"description": "Request a front-end slave instance of this software type.",
"type": "object" "type": "object"
}, },
"software-url": {
"default": "",
"description": "Front-end's software type. If this parameter is empty, no front-end instance is requested. Else, sla-dict must specify 'frontend' which is a special value matching all frontends (e.g. {\"instance_guid=bar\": [\"frontend\"]}).",
"type": "string"
},
"virtualhostroot-http-port": { "virtualhostroot-http-port": {
"description": "Front-end slave http port. Port where http requests to frontend will be redirected.",
"default": 80, "default": 80,
"description": "Front-end slave http port. Port where http requests to frontend will be redirected.",
"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.",
"default": 443, "default": 443,
"description": "Front-end slave https port. Port where https requests to frontend will be redirected.",
"type": "integer" "type": "integer"
} }
}, },
"type": "object" "type": "object"
}, },
"zope-partition-dict": { "hostalias-dict": {
"description": "Zope layout definition", "additionalProperties": {
"default": {"1": {}}, "description": "A hostname to which current entry will resolve",
"type": "string"
},
"default": {},
"description": "Hostname-to-domain-name mapping",
"type": "object"
},
"hosts-dict": {
"description": "Host entries to be used in addition to and/or overriding auto-generated ones (erp5-catalog-0, erp5-cloudooo, erp5-memcached-persistent, erp5-memcached-volatile and erp5-smtp)",
"patternProperties": { "patternProperties": {
".*": { ".*": {
"additionalProperties": false, "description": "An IP or domain name to which current entry will resolve",
"properties": {
"family": {
"description": "The family this partition is part of. For example: 'public', 'admin', 'backoffice', 'web-service'... Each family gets its own balancer entry. It has no special meaning for the system.",
"default": "default",
"type": "string" "type": "string"
}
}, },
"instance-count": { "type": "object"
"description": "Number of Zopes to setup on this partition",
"default": 1,
"type": "integer"
}, },
"thread-amount": { "id-store-interval": {
"description": "Number of worker threads for each created Zope process", "description": "Set Store Interval of default SQL Non Continuous Increasing Id Generator at automatic site creation. If unset, the value from the erp5_core Business Template is not touched.",
"default": 4,
"type": "integer" "type": "integer"
}, },
"timerserver-interval": { "inituser-login": {
"description": "Timerserver tick perdiod, in seconds, or 0 to disable", "default": "zope",
"default": 5, "description": "Login of the initial/rescue user",
"type": "number"
},
"private-dev-shm": {
"description": "Size of private /dev/shm for wendelin.core. If sysctl kernel.unprivileged_userns_clone exists, it must be set to 1.",
"type": "string" "type": "string"
}, },
"ssl-authentication": { "inituser-password": {
"title": "Enable SSL Client authentication on this zope instance.", "description": "Password of the initial/rescue user",
"description": "If set to true, will set SSL Client verification to required on apache VirtualHost which allow to access this zope instance.", "type": "string"
"type": "boolean",
"default": false
}, },
"webdav": { "jupyter": {
"description": "Serve webdav queries, implies timerserver-interval=0 (disabled). Mixing webdav and non-webdav nodes in a single family will give unspecified results.", "description": "Jupyter subinstance parameters",
"properties": {
"enable": {
"default": false, "default": false,
"description": "Whether to enable creation of associated Jupyter subinstance",
"type": "boolean" "type": "boolean"
}, },
"longrequest-logger-interval": { "zope-family": {
"description": "Period, in seconds, with which LongRequestLogger polls worker thread stack traces, or -1 to disable", "default": "<first instantiated Zope family>",
"default": -1, "description": "Zope family to connect Jupyter to by default",
"type": "integer"
},
"longrequest-logger-timeout": {
"description": "Transaction duration after which LongRequestLogger will start logging its stack trace, in seconds",
"default": 1,
"type": "integer"
},
"large-file-threshold": {
"description": "Requests bigger than this size get saved into a temporary file instead of being read completely into memory, in bytes",
"default": "10MB",
"type": "string" "type": "string"
},
"port-base": {
"allOf": [{
"$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
}]
}
},
"type": "object"
} }
}, },
"type": "object" "type": "object"
}, },
"kumofs": { "kumofs": {
"description": "Persistent memcached service",
"additionalProperties": { "additionalProperties": {
"$ref": "./instance-kumofs-schema.json#/properties" "$ref": "./instance-kumofs-schema.json#/properties"
}, },
"description": "Persistent memcached service",
"type": "object"
},
"mariadb": {
"additionalProperties": {
"$ref": "./instance-mariadb-schema.json#/properties"
},
"description": "Relational database service",
"type": "object" "type": "object"
}, },
"memcached": { "memcached": {
"description": "Volatile memcached service",
"additionalProperties": { "additionalProperties": {
"$ref": "./instance-kumofs-schema.json#/properties" "$ref": "./instance-kumofs-schema.json#/properties"
}, },
"description": "Volatile memcached service",
"type": "object" "type": "object"
}, },
"cloudooo-url": { "site-id": {
"description": "Format conversion service URL", "default": "erp5",
"pattern": "^https?://", "description": "ERP5Site object's id. An empty value disables automatic site creation.",
"type": "string" "type": "string"
}, },
"cloudooo-retry-count": { "sla-dict": {
"description": "Define retry count for cloudooo in network error case in test",
"type": "integer",
"default": 2
},
"smtp": {
"description": "Mail queuing and relay service",
"additionalProperties": { "additionalProperties": {
"$ref": "./instance-smtp-schema.json#/properties" "items": {
"type": "string"
}, },
"type": "array",
"uniqueItems": true
},
"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-\").",
"type": "object" "type": "object"
}, },
"mariadb": { "smtp": {
"description": "Relational database service",
"additionalProperties": { "additionalProperties": {
"$ref": "./instance-mariadb-schema.json#/properties" "$ref": "./instance-smtp-schema.json#/properties"
}, },
"description": "Mail queuing and relay service",
"type": "object" "type": "object"
}, },
"zodb-zeo": { "timezone": {
"description": "Common settings ZEO servers", "default": "UTC",
"properties": { "description": "Zope's timezone. Possible values are determined by host's libc, and typically come from a separate package (tzdata, ...)",
"tcpv4-port": {
"allOf": [{
"$ref": "#/definitions/tcpv4port"
}, {
"description": "Start allocating ports at this value, going upward"
}]
},
"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.",
"default": "daily",
"type": "string" "type": "string"
}, },
"tidstorage-repozo-path": { "wendelin-core-zblk-fmt": {
"description": "Directory for backup timestamp and tidstorage status files.", "default": "",
"default": "~/srv/backup/tidstorage", "description": "In wendelin.core there are 2 formats for storing data, so called ZBlk0 and ZBlk1. See https://lab.nexedi.com/nexedi/wendelin.core/blob/2e5e1d3d/bigfile/file_zodb.py#L19 for more details.",
"type": "string" "type": "string"
}
},
"type": "object"
}, },
"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"], "additionalProperties": {
"properties": {
"name": {
"description": "Database name",
"default": "main",
"type": "string" "type": "string"
}, },
"properties": {
"mount-point": { "mount-point": {
"description": "Mount point",
"default": "/", "default": "/",
"description": "Mount point",
"type": "string" "type": "string"
}, },
"type": { "name": {
"description": "Storage type", "default": "main",
"enum": ["zeo", "neo"], "description": "Database name",
"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', ...",
"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"
}
],
"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', ..."
}, },
"storage-dict": { "storage-dict": {
"additionalProperties": {
"type": "string"
},
"description": "Storage configuration. For NEO, 'logfile' is automatically set (see https://lab.nexedi.com/nexedi/neoppod/blob/master/neo/client/component.xml for other settings).", "description": "Storage configuration. For NEO, 'logfile' is automatically set (see https://lab.nexedi.com/nexedi/neoppod/blob/master/neo/client/component.xml for other settings).",
"properties": { "properties": {
"ssl": { "ssl": {
"description": "For external NEO. Pass false if you want to disable SSL or pass custom values for ca/cert/key.",
"default": true, "default": true,
"description": "For external NEO. Pass false if you want to disable SSL or pass custom values for ca/cert/key.",
"type": "boolean" "type": "boolean"
} }
}, },
"additionalProperties": {"type": "string"},
"type": "object" "type": "object"
},
"type": {
"description": "Storage type",
"enum": [
"zeo",
"neo"
],
"type": "string"
} }
}, },
"additionalProperties": {"type": "string"}, "required": [
"type"
],
"type": "object" "type": "object"
}, },
"type": "array" "type": "array"
}, },
"jupyter": { "zodb-zeo": {
"description": "Jupyter subinstance parameters", "description": "Common settings ZEO servers",
"properties": { "properties": {
"enable": { "backup-periodicity": {
"description": "Whether to enable creation of associated Jupyter subinstance", "default": "daily",
"default": false, "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.",
"type": "boolean" "type": "string"
}, },
"zope-family": { "tcpv4-port": {
"description": "Zope family to connect Jupyter to by default", "allOf": [
"default": "<first instantiated Zope family>", {
"$ref": "#/definitions/tcpv4port"
},
{
"description": "Start allocating ports at this value, going upward"
}
]
},
"tidstorage-repozo-path": {
"default": "~/srv/backup/tidstorage",
"description": "Directory for backup timestamp and tidstorage status files.",
"type": "string" "type": "string"
} }
}, },
"type": "object" "type": "object"
}, },
"wendelin-core-zblk-fmt": { "zope-partition-dict": {
"description": "In wendelin.core there are 2 formats for storing data, so called ZBlk0 and ZBlk1. See https://lab.nexedi.com/nexedi/wendelin.core/blob/2e5e1d3d/bigfile/file_zodb.py#L19 for more details.", "default": {
"default": "", "1": {}
"type": "string"
}, },
"caucase": { "description": "Zope layout definition",
"description": "Caucase certificate authority parameters", "patternProperties": {
".*": {
"additionalProperties": false,
"properties": { "properties": {
"url": { "family": {
"title": "Caucase URL", "default": "default",
"description": "URL of existing caucase instance to use. If empty, a new caucase instance will be deployed. If not empty, other properties in this section will be ignored.", "description": "The family this partition is part of. For example: 'public', 'admin', 'backoffice', 'web-service'... Each family gets its own balancer entry. It has no special meaning for the system.",
"default": "", "type": "string"
"type": "string",
"format": "uri"
}, },
"crl-update-periodicity": { "instance-count": {
"title": "Periodicity of CRL update", "default": 1,
"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": "Number of Zopes to setup on this partition",
"type": "string", "type": "integer"
"default": "0 0 * * *" },
"large-file-threshold": {
"default": "10MB",
"description": "Requests bigger than this size get saved into a temporary file instead of being read completely into memory, in bytes",
"type": "string"
},
"longrequest-logger-interval": {
"default": -1,
"description": "Period, in seconds, with which LongRequestLogger polls worker thread stack traces, or -1 to disable",
"type": "integer"
},
"longrequest-logger-timeout": {
"default": 1,
"description": "Transaction duration after which LongRequestLogger will start logging its stack trace, in seconds",
"type": "integer"
},
"port-base": {
"allOf": [
{
"$ref": "#/definitions/tcpv4port"
},
{
"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)"
} }
]
}, },
"additionalProperties": { "private-dev-shm": {
"$ref": "../caucase/instance-caucase-input-schema.json#/properties" "description": "Size of private /dev/shm for wendelin.core. If sysctl kernel.unprivileged_userns_clone exists, it must be set to 1.",
"type": "string"
},
"ssl-authentication": {
"default": false,
"description": "If set to true, will set SSL Client verification to required on apache VirtualHost which allow to access this zope instance.",
"title": "Enable SSL Client authentication on this zope instance.",
"type": "boolean"
},
"thread-amount": {
"default": 4,
"description": "Number of worker threads for each created Zope process",
"type": "integer"
},
"timerserver-interval": {
"default": 5,
"description": "Timerserver tick perdiod, in seconds, or 0 to disable",
"type": "number"
},
"webdav": {
"default": false,
"description": "Serve webdav queries, implies timerserver-interval=0 (disabled). Mixing webdav and non-webdav nodes in a single family will give unspecified results.",
"type": "boolean"
}
},
"type": "object"
}
}, },
"type": "object" "type": "object"
} }
......
{ {
"$schema": "http://json-schema.org/draft-04/schema#", "$schema": "http://json-schema.org/draft-04/schema#",
"description": "Values returned by ERP5 instantiation",
"additionalProperties": false, "additionalProperties": false,
"description": "Values returned by ERP5 instantiation",
"patternProperties": {
"family-.*": {
"description": "Zope family access information",
"pattern": "^https://",
"type": "string"
}
},
"properties": { "properties": {
"caucase-http-url": {
"description": "Caucase url on HTTP. For HTTPS URL, uses https scheme, if port is explicitely specified in http URL, take that port and add 1 and use it as https port. If it is not specified.",
"pattern": "^http://",
"type": "string"
},
"deadlock-debugger-password": {
"description": "Deadlock debugger password",
"type": "string"
},
"hosts-dict": { "hosts-dict": {
"description": "Hosts mapping, including auto-generated entries", "description": "Hosts mapping, including auto-generated entries",
"patternProperties": { "patternProperties": {
...@@ -13,10 +29,6 @@ ...@@ -13,10 +29,6 @@
}, },
"type": "object" "type": "object"
}, },
"site-id": {
"description": "Chosen ERP5Site object identifier",
"type": "string"
},
"inituser-login": { "inituser-login": {
"description": "Initial user login", "description": "Initial user login",
"type": "string" "type": "string"
...@@ -25,18 +37,9 @@ ...@@ -25,18 +37,9 @@
"description": "Initial user password", "description": "Initial user password",
"type": "string" "type": "string"
}, },
"deadlock-debugger-password": { "jupyter-url": {
"description": "Deadlock debugger password", "description": "Jupyter notebook web UI access information",
"type": "string" "pattern": "^https://",
},
"memcached-persistent-url": {
"description": "Persistent memcached access information",
"pattern": "^memcached://",
"type": "string"
},
"memcached-volatile-url": {
"description": "Volatile memcached access information",
"pattern": "^memcached://",
"type": "string" "type": "string"
}, },
"mariadb-database-list": { "mariadb-database-list": {
...@@ -45,8 +48,8 @@ ...@@ -45,8 +48,8 @@
"pattern": "^mysql://", "pattern": "^mysql://",
"type": "string" "type": "string"
}, },
"uniqueItems": true, "type": "array",
"type": "array" "uniqueItems": true
}, },
"mariadb-test-database-list": { "mariadb-test-database-list": {
"description": "Relational database access information", "description": "Relational database access information",
...@@ -54,30 +57,27 @@ ...@@ -54,30 +57,27 @@
"pattern": "^mysql://", "pattern": "^mysql://",
"type": "string" "type": "string"
}, },
"uniqueItems": true, "type": "array",
"type": "array" "uniqueItems": true
}, },
"neo-masters": { "memcached-persistent-url": {
"$ref": "../neoppod/instance-neo-output-schema.json#/properties/masters" "description": "Persistent memcached access information",
"pattern": "^memcached://",
"type": "string"
},
"memcached-volatile-url": {
"description": "Volatile memcached access information",
"pattern": "^memcached://",
"type": "string"
}, },
"neo-admins": { "neo-admins": {
"$ref": "../neoppod/instance-neo-output-schema.json#/properties/admins" "$ref": "../neoppod/instance-neo-output-schema.json#/properties/admins"
}, },
"jupyter-url": { "neo-masters": {
"description": "Jupyter notebook web UI access information", "$ref": "../neoppod/instance-neo-output-schema.json#/properties/masters"
"pattern": "^https://",
"type": "string"
},
"caucase-http-url": {
"description": "Caucase url on HTTP. For HTTPS URL, uses https scheme, if port is explicitely specified in http URL, take that port and add 1 and use it as https port. If it is not specified.",
"pattern": "^http://",
"type": "string"
}
}, },
"patternProperties": { "site-id": {
"family-.*": { "description": "Chosen ERP5Site object identifier",
"description": "Zope family access information",
"pattern": "^https://",
"type": "string" "type": "string"
} }
}, },
......
{ {
"$schema": "http://json-schema.org/draft-04/schema#", "$schema": "http://json-schema.org/draft-04/schema#",
"required": ["tcpv4-port"],
"properties": { "properties": {
"tcpv4-port": {
"allOf": [{
"$ref": "#/definitions/tcpv4port"
}, {
"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",
"default": 0, "default": 0,
"description": "If 0 use disk storage, otherwise use ram and limit data size to this many megabytes",
"type": "integer" "type": "integer"
},
"tcpv4-port": {
"allOf": [
{
"$ref": "#/definitions/tcpv4port"
},
{
"description": "Start allocating ports at this value, going upward"
} }
]
} }
},
"required": [
"tcpv4-port"
]
} }
{ {
"$schema": "http://json-schema.org/draft-04/schema#", "$schema": "http://json-schema.org/draft-04/schema#",
"required": ["tcpv4-port"],
"properties": { "properties": {
"tcpv4-port": { "backup-periodicity": {
"allOf": [{ "default": "daily",
"$ref": "#/definitions/tcpv4port" "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).",
}, {
"description": "Start allocating ports at this value, going downward"
}]
},
"database-list": {
"description": "Databases to create and respective user credentials getting all privileges on it",
"default": [{
"name": "erp5",
"user": "user",
"password": "insecure"
}],
"minItems": 1,
"items": {
"required": ["name", "user", "password"],
"properties": {
"name": {
"description": "Database name",
"type": "string"
},
"user": {
"description": "User name",
"type": "string"
},
"password": {
"description": "User password",
"type": "string" "type": "string"
}
},
"type": "object"
},
"type": "array"
},
"test-database-amount": {
"description": "The number of test databases to create, adding auto-generated entries to database-list. The same number of testrunners will be created in Zope partitions. Setting this to 0 disable the creation of test runners.",
"default": 1,
"minimum": 0,
"type": "integer"
}, },
"catalog-backup": { "catalog-backup": {
"description": "Backup control knobs", "description": "Backup control knobs",
"properties": { "properties": {
"full-retention-days": { "full-retention-days": {
"description": "How many days full backups must be retained, -1 meaning full backups are disabled and 0 meaning no expiration",
"default": 7, "default": 7,
"description": "How many days full backups must be retained, -1 meaning full backups are disabled and 0 meaning no expiration",
"minimum": -1, "minimum": -1,
"type": "integer" "type": "integer"
}, },
...@@ -60,23 +23,54 @@ ...@@ -60,23 +23,54 @@
}, },
"type": "object" "type": "object"
}, },
"backup-periodicity": { "database-list": {
"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).", "default": [
"default": "daily", {
"name": "erp5",
"password": "insecure",
"user": "user"
}
],
"description": "Databases to create and respective user credentials getting all privileges on it",
"items": {
"properties": {
"name": {
"description": "Database name",
"type": "string" "type": "string"
}, },
"innodb-buffer-pool-size": { "password": {
"description": "See MariaDB documentation on innodb_buffer_pool_size", "description": "User password",
"minimum": 0, "type": "string"
"type": "integer" },
"user": {
"description": "User name",
"type": "string"
}
},
"required": [
"name",
"user",
"password"
],
"type": "object"
},
"minItems": 1,
"type": "array"
},
"environment-variables": {
"description": "Extra environment variables for mysqld may be required to use third party ODBC libraries for CONNECT storage engine.",
"items": {
"type": "string"
},
"type": "array"
}, },
"innodb-buffer-pool-instances": { "innodb-buffer-pool-instances": {
"description": "See MariaDB documentation on innodb_buffer_pool_instances", "description": "See MariaDB documentation on innodb_buffer_pool_instances",
"minimum": 1, "minimum": 1,
"type": "integer" "type": "integer"
}, },
"innodb-log-file-size": { "innodb-buffer-pool-size": {
"description": "See MariaDB documentation on innodb_log_file_size", "description": "See MariaDB documentation on innodb_buffer_pool_size",
"minimum": 0, "minimum": 0,
"type": "integer" "type": "integer"
}, },
...@@ -85,56 +79,72 @@ ...@@ -85,56 +79,72 @@
"minimum": 0, "minimum": 0,
"type": "integer" "type": "integer"
}, },
"innodb-log-file-size": {
"description": "See MariaDB documentation on innodb_log_file_size",
"minimum": 0,
"type": "integer"
},
"long-query-time": { "long-query-time": {
"default": 1,
"description": "Number of seconds above which long queries are logged", "description": "Number of seconds above which long queries are logged",
"minimum": 0, "minimum": 0,
"default": 1,
"type": "number" "type": "number"
}, },
"odbc-ini": {
"default": "",
"description": "Contents of odbc.ini file, see unixodbc document",
"type": "string"
},
"relaxed-writes": { "relaxed-writes": {
"description": "When enabled, sets innodb_flush_log_at_trx_commit = 0, innodb_flush_method = nosync, innodb_doublewrite = 0 and sync_frm = 0 - RTFM, those options are dangerous",
"default": false, "default": false,
"description": "When enabled, sets innodb_flush_log_at_trx_commit = 0, innodb_flush_method = nosync, innodb_doublewrite = 0 and sync_frm = 0 - RTFM, those options are dangerous",
"type": "boolean" "type": "boolean"
}, },
"ssl": { "ssl": {
"description": "Enable and define SSL support for network connections",
"default": {}, "default": {},
"description": "Enable and define SSL support for network connections",
"properties": { "properties": {
"ca-crt": { "ca-crt": {
"description": "Certificate Authority's certificate, in PEM format", "description": "Certificate Authority's certificate, in PEM format",
"type": "string" "type": "string"
}, },
"crt": { "cipher": {
"description": "Server's certificate, in PEM format (mandatory to enable SSL support)", "description": "Permissible cipher specifications, separated by colons",
"type": "string"
},
"key": {
"description": "Server's key, in PEM format (mandatory to enable SSL support)",
"type": "string" "type": "string"
}, },
"crl": { "crl": {
"description": "Server's certificate revocation list, in PEM format", "description": "Server's certificate revocation list, in PEM format",
"type": "string" "type": "string"
}, },
"cipher": { "crt": {
"description": "Permissible cipher specifications, separated by colons", "description": "Server's certificate, in PEM format (mandatory to enable SSL support)",
"type": "string"
},
"key": {
"description": "Server's key, in PEM format (mandatory to enable SSL support)",
"type": "string" "type": "string"
} }
}, },
"type": "object" "type": "object"
}, },
"odbc-ini": { "tcpv4-port": {
"description": "Contents of odbc.ini file, see unixodbc document", "allOf": [
"default": "", {
"type": "string" "$ref": "#/definitions/tcpv4port"
},
"environment-variables": {
"description": "Extra environment variables for mysqld may be required to use third party ODBC libraries for CONNECT storage engine.",
"items": {
"type": "string"
}, },
"type": "array" {
"description": "Start allocating ports at this value, going downward"
} }
]
},
"test-database-amount": {
"default": 1,
"description": "The number of test databases to create, adding auto-generated entries to database-list. The same number of testrunners will be created in Zope partitions. Setting this to 0 disable the creation of test runners.",
"minimum": 0,
"type": "integer"
} }
},
"required": [
"tcpv4-port"
]
} }
{ {
"$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"],
"properties": { "properties": {
"tcpv4-port": {
"allOf": [{
"$ref": "#/definitions/tcpv4port"
}, {
"description": "Start allocating ports at this value, going upward"
}]
},
"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)",
"default": "",
"type": "string"
},
"alias-dict": { "alias-dict": {
"description": "Mail alias support",
"default": {}, "default": {},
"description": "Mail alias support",
"patternProperties": { "patternProperties": {
".*": { ".*": {
"description": "List of addresses alias expands to", "description": "List of addresses alias expands to",
...@@ -26,11 +13,27 @@ ...@@ -26,11 +13,27 @@
}, },
"type": "object" "type": "object"
}, },
"divert": {
"description": "Intercept all mails and send them to given addresses instead of original recipient",
"items": {
"type": "string"
},
"type": "array",
"uniqueItems": true
},
"postmaster": {
"default": "",
"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)",
"type": "string"
},
"relay": { "relay": {
"description": "Forward outgoing mails to a specific relay. If enabled, relay must support TLS-encrypted SASL authentication.", "default": {},
"dependencies": { "dependencies": {
"host": ["sasl-credential"] "host": [
"sasl-credential"
]
}, },
"description": "Forward outgoing mails to a specific relay. If enabled, relay must support TLS-encrypted SASL authentication.",
"properties": { "properties": {
"host": { "host": {
"description": "Host name or address of relay, with optional port (ex: '[example.com]:submission'). Enclosing hostname with [] prevents MX lookup.", "description": "Host name or address of relay, with optional port (ex: '[example.com]:submission'). Enclosing hostname with [] prevents MX lookup.",
...@@ -41,16 +44,20 @@ ...@@ -41,16 +44,20 @@
"type": "string" "type": "string"
} }
}, },
"default": {},
"type": "object" "type": "object"
}, },
"divert": { "tcpv4-port": {
"description": "Intercept all mails and send them to given addresses instead of original recipient", "allOf": [
"type": "array", {
"items": { "$ref": "#/definitions/tcpv4port"
"type": "string"
}, },
"uniqueItems": true {
"description": "Start allocating ports at this value, going upward"
} }
]
} }
},
"required": [
"tcpv4-port"
]
} }
...@@ -3,19 +3,19 @@ ...@@ -3,19 +3,19 @@
"additionalProperties": false, "additionalProperties": false,
"properties": { "properties": {
"backup": { "backup": {
"description": "'%(backup)s' is expanded to partition's ZODB backup path (typically 'srv/backup/zodb'), and %(name)s with the export id",
"default": "%(backup)s/%(name)s", "default": "%(backup)s/%(name)s",
"description": "'%(backup)s' is expanded to partition's ZODB backup path (typically 'srv/backup/zodb'), and %(name)s with the export id",
"type": "string" "type": "string"
}, },
"family": { "family": {
"description": "Opaque name used to regroup/separate mountpoints under different ZEO processes (must be valid as a file name and as a ConfigParser section name)",
"default": "default", "default": "default",
"description": "Opaque name used to regroup/separate mountpoints under different ZEO processes (must be valid as a file name and as a ConfigParser section name)",
"pattern": "^[^<>:\"/\\|?*\\]\\[ ]*$", "pattern": "^[^<>:\"/\\|?*\\]\\[ ]*$",
"type": "string" "type": "string"
}, },
"path": { "path": {
"description": "FileStorage file path, '%(zodb)s' occurrences are replaced with the path to partition's srv/zodb directory, and %(name)s with the export id",
"default": "%(zodb)s/%(name)s.fs", "default": "%(zodb)s/%(name)s.fs",
"description": "FileStorage file path, '%(zodb)s' occurrences are replaced with the path to partition's srv/zodb directory, and %(name)s with the export id",
"type": "string" "type": "string"
} }
}, },
......
{ {
"name": "ERP5",
"description": "ERP5, Open-Source ERP", "description": "ERP5, Open-Source ERP",
"name": "ERP5",
"serialisation": "json-in-xml", "serialisation": "json-in-xml",
"software-type": { "software-type": {
"default": { "default": {
"title": "Default",
"description": "No automated database modification (ERP5Site is not automatically created).", "description": "No automated database modification (ERP5Site is not automatically created).",
"index": 0,
"request": "instance-erp5-input-schema.json", "request": "instance-erp5-input-schema.json",
"response": "instance-erp5-output-schema.json", "response": "instance-erp5-output-schema.json",
"index": 0 "title": "Default"
} }
} }
} }
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