{ "$schema": "http://json-schema.org/draft-04/schema#", "description": "Parameters to instantiate ERP5", "additionalProperties": false, "properties": { "sla-dict": { "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": { "type": "array", "items": { "type": "string" }, "uniqueItems": true }, "type": "object" }, "site-id": { "description": "ERP5Site object's id. An empty value disables automatic site creation.", "default": "erp5", "type": "string" }, "bt5": { "description": "Business Template to install at automatic site creation. By default, all configurators are installed.", "type": "string" }, "id-store-interval": { "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.", "type": "integer" }, "timezone": { "description": "Zope's timezone. Possible values are determined by host's libc, and typically come from a separate package (tzdata, ...)", "default": "UTC", "type": "string" }, "deadlock-debugger-password": { "description": "Password for /manage_debug_threads", "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": { "description": "List of logins which should get the Developper role (required to modify portal_components' content), defaulting to inituser-login's value", "items": { "pattern": "^\\S+$", "type": "string" }, "uniqueItems": true, "type": "array" }, "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": { "description": "Front-end slave instance request parameters", "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": { "description": "The domain name to request front-end to respond as.", "default": "", "type": "string" }, "software-type": { "description": "Request a front-end slave instance of this software type.", "default": "RootSoftwareInstance", "type": "object" }, "virtualhostroot-http-port": { "description": "Front-end slave http port. Port where http requests to frontend will be redirected.", "default": 80, "type": "integer" }, "virtualhostroot-https-port": { "description": "Front-end slave https port. Port where https requests to frontend will be redirected.", "default": 443, "type": "integer" } }, "type": "object" }, "zope-partition-dict": { "description": "Zope layout definition", "default": { "1": {} }, "patternProperties": { ".*": { "additionalProperties": false, "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" }, "instance-count": { "description": "Number of Zopes to setup on this partition", "default": 1, "type": "integer" }, "thread-amount": { "description": "Number of worker threads for each created Zope process", "default": 4, "type": "integer" }, "timerserver-interval": { "description": "Timerserver tick perdiod, in seconds, or 0 to disable", "default": 5, "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" }, "ssl-authentication": { "title": "Enable SSL Client authentication on this zope instance.", "description": "If set to true, will set SSL Client verification to required on apache VirtualHost which allow to access this zope instance.", "type": "boolean", "default": false }, "webdav": { "description": "Serve webdav queries, implies timerserver-interval=0 (disabled). Mixing webdav and non-webdav nodes in a single family will give unspecified results.", "default": false, "type": "boolean" }, "longrequest-logger-interval": { "description": "Period, in seconds, with which LongRequestLogger polls worker thread stack traces, or -1 to disable", "default": -1, "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" }, "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" }, "kumofs": { "description": "Persistent memcached service", "additionalProperties": { "$ref": "./instance-kumofs-schema.json#/properties" }, "type": "object" }, "memcached": { "description": "Volatile memcached service", "additionalProperties": { "$ref": "./instance-kumofs-schema.json#/properties" }, "type": "object" }, "cloudooo-url": { "description": "Format conversion service URL", "pattern": "^https?://", "type": "string" }, "cloudooo-retry-count": { "description": "Define retry count for cloudooo in network error case in test", "type": "integer", "default": 2 }, "smtp": { "description": "Mail queuing and relay service", "additionalProperties": { "$ref": "./instance-smtp-schema.json#/properties" }, "type": "object" }, "mariadb": { "description": "Relational database service", "additionalProperties": { "$ref": "./instance-mariadb-schema.json#/properties" }, "type": "object" }, "zodb-zeo": { "description": "Common settings ZEO servers", "properties": { "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" }, "tidstorage-repozo-path": { "description": "Directory for backup timestamp and tidstorage status files.", "default": "~/srv/backup/tidstorage", "type": "string" } }, "type": "object" }, "zodb": { "description": "Zope Object DataBase mountpoints. See https://github.com/zopefoundation/ZODB/blob/3.10/src/ZODB/component.xml for extra options.", "items": { "required": [ "type" ], "properties": { "name": { "description": "Database name", "default": "main", "type": "string" }, "mount-point": { "description": "Mount point", "default": "/", "type": "string" }, "type": { "description": "Storage type", "enum": [ "zeo", "neo" ], "type": "string" }, "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": [ { "$ref": "./instance-zeo-schema.json" }, { "$ref": "../neoppod/instance-neo-input-schema.json" } ] }, "storage-dict": { "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": { "ssl": { "description": "For external NEO. Pass false if you want to disable SSL or pass custom values for ca/cert/key.", "default": true, "type": "boolean" } }, "additionalProperties": { "type": "string" }, "type": "object" } }, "additionalProperties": { "type": "string" }, "type": "object" }, "type": "array" }, "jupyter": { "description": "Jupyter subinstance parameters", "properties": { "enable": { "description": "Whether to enable creation of associated Jupyter subinstance", "default": false, "type": "boolean" }, "zope-family": { "description": "Zope family to connect Jupyter to by default", "default": "<first instantiated Zope family>", "type": "string" } }, "type": "object" }, "wendelin-core-zblk-fmt": { "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": "", "type": "string" }, "caucase": { "description": "Caucase certificate authority parameters", "properties": { "url": { "title": "Caucase URL", "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.", "default": "", "type": "string", "format": "uri" }, "crl-update-periodicity": { "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.", "type": "string", "default": "0 0 * * *" } }, "additionalProperties": { "$ref": "../caucase/instance-caucase-input-schema.json#/properties" }, "type": "object" } } }