"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.",
"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"
},
"url":{
"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":"object"
},
"cloudooo-retry-count":{
"default":2,
"description":"Define retry count for cloudooo in network error case in test",
"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",
"cloudooo-url":{
"description":"Format conversion service URL",
"pattern":"^https?://",
"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",
"description":"The domain name to request front-end to respond as.",
"type":"string"
},
"software-type":{
"default":"RootSoftwareInstance",
"description":"Request a front-end slave instance of this software type.",
"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":{
"default":80,
"description":"Front-end slave http port. Port where http requests to frontend will be redirected.",
"type":"integer"
},
"virtualhostroot-https-port":{
"default":443,
"description":"Front-end slave https port. Port where https requests to frontend will be redirected.",
"type":"integer"
}
},
"type":"object"
},
"hostalias-dict":{
"description":"Hostname-to-domain-name mapping",
"default":{},
"additionalProperties":{
"description":"A hostname to which current entry will resolve",
"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"
},
"inituser-login":{
"default":"zope",
"description":"Login of the initial/rescue user",
"type":"string"
},
"inituser-password":{
"description":"Password of the initial/rescue user",
"type":"string"
},
"jupyter":{
"description":"Jupyter subinstance 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"
"enable":{
"default":false,
"description":"Whether to enable creation of associated Jupyter subinstance",
"type":"boolean"
},
"domain":{
"description":"The domain name to request front-end to respond as.",
"default":"",
"zope-family":{
"default":"<first instantiated Zope family>",
"description":"Zope family to connect Jupyter to by 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)",
"description":"ERP5Site object's id. An empty value disables automatic site creation.",
"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",
"sla-dict":{
"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-\").",
"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"
"timezone":{
"default":"UTC",
"description":"Zope's timezone. Possible values are determined by host's libc, and typically come from a separate package (tzdata, ...)",
"type":"string"
},
"wendelin-core-zblk-fmt":{
"default":"",
"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"
},
"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"],
"additionalProperties":{
"type":"string"
},
"properties":{
"name":{
"description":"Database name",
"default":"main",
"type":"string"
},
"mount-point":{
"description":"Mount point",
"default":"/",
"description":"Mount point",
"type":"string"
},
"type":{
"description":"Storage type",
"enum":["zeo","neo"],
"name":{
"default":"main",
"description":"Database name",
"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', ...",
"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":{
"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).",
"properties":{
"ssl":{
"description":"For external NEO. Pass false if you want to disable SSL or pass custom values for ca/cert/key.",
"default":true,
"description":"For external NEO. Pass false if you want to disable SSL or pass custom values for ca/cert/key.",
"type":"boolean"
}
},
"additionalProperties":{"type":"string"},
"type":"object"
},
"type":{
"description":"Storage type",
"enum":[
"zeo",
"neo"
],
"type":"string"
}
},
"additionalProperties":{"type":"string"},
"required":[
"type"
],
"type":"object"
},
"type":"array"
},
"jupyter":{
"description":"Jupyter subinstance parameters",
"zodb-zeo":{
"description":"Common settings ZEO servers",
"properties":{
"enable":{
"description":"Whether to enable creation of associated Jupyter subinstance",
"default":false,
"type":"boolean"
"backup-periodicity":{
"default":"daily",
"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":"string"
},
"zope-family":{
"description":"Zope family to connect Jupyter to by default",
"default":"<first instantiated Zope family>",
"tcpv4-port":{
"allOf":[
{
"$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":"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.",
"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.",
"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.",
"type":"string"
},
"instance-count":{
"default":1,
"description":"Number of Zopes to setup on this partition",
"type":"integer"
},
"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)"
}
]
},
"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":{
"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.",
"description":"Values returned by ERP5 instantiation",
"additionalProperties":false,
"description":"Values returned by ERP5 instantiation",
"patternProperties":{
"family-.*":{
"description":"Zope family access information",
"pattern":"^https://",
"type":"string"
}
},
"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":{
"description":"Hosts mapping, including auto-generated entries",
"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.",
"description":"Start allocating ports at this value, going downward"
}]
"backup-periodicity":{
"default":"daily",
"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).",
"type":"string"
},
"catalog-backup":{
"description":"Backup control knobs",
"properties":{
"full-retention-days":{
"default":7,
"description":"How many days full backups must be retained, -1 meaning full backups are disabled and 0 meaning no expiration",
"minimum":-1,
"type":"integer"
},
"incremental-retention-days":{
"description":"How many days incremental backups (binlogs) must be retained, -1 meaning incremental backups are disabled and 0 meaning no expiration, defaulting to full-retention-days' value",
"minimum":-1,
"type":"integer"
}
},
"type":"object"
},
"database-list":{
"default":[
{
"name":"erp5",
"password":"insecure",
"user":"user"
}
],
"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"
},
"user":{
"description":"User name",
"type":"string"
}
},
"required":[
"name",
"user",
"password"
],
"type":"object"
},
"minItems":1,
"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":{
"description":"Backup control knobs",
"properties":{
"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,
"minimum":-1,
"type":"integer"
},
"incremental-retention-days":{
"description":"How many days incremental backups (binlogs) must be retained, -1 meaning incremental backups are disabled and 0 meaning no expiration, defaulting to full-retention-days' value",
"minimum":-1,
"type":"integer"
}
"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":"object"
},
"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).",
"default":"daily",
"type":"string"
},
"innodb-buffer-pool-size":{
"description":"See MariaDB documentation on innodb_buffer_pool_size",
"minimum":0,
"type":"integer"
"type":"array"
},
"innodb-buffer-pool-instances":{
"description":"See MariaDB documentation on innodb_buffer_pool_instances",
"minimum":1,
"type":"integer"
},
"innodb-log-file-size":{
"description":"See MariaDB documentation on innodb_log_file_size",
"innodb-buffer-pool-size":{
"description":"See MariaDB documentation on innodb_buffer_pool_size",
"minimum":0,
"type":"integer"
},
...
...
@@ -85,56 +79,72 @@
"minimum":0,
"type":"integer"
},
"innodb-log-file-size":{
"description":"See MariaDB documentation on innodb_log_file_size",
"minimum":0,
"type":"integer"
},
"long-query-time":{
"default":1,
"description":"Number of seconds above which long queries are logged",
"minimum":0,
"default":1,
"type":"number"
},
"odbc-ini":{
"default":"",
"description":"Contents of odbc.ini file, see unixodbc document",
"type":"string"
},
"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,
"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"
},
"ssl":{
"description":"Enable and define SSL support for network connections",
"default":{},
"description":"Enable and define SSL support for network connections",
"properties":{
"ca-crt":{
"description":"Certificate Authority's certificate, in PEM format",
"type":"string"
},
"crt":{
"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)",
"cipher":{
"description":"Permissible cipher specifications, separated by colons",
"type":"string"
},
"crl":{
"description":"Server's certificate revocation list, in PEM format",
"type":"string"
},
"cipher":{
"description":"Permissible cipher specifications, separated by colons",
"crt":{
"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":"object"
},
"odbc-ini":{
"description":"Contents of odbc.ini file, see unixodbc document",
"default":"",
"type":"string"
"tcpv4-port":{
"allOf":[
{
"$ref":"#/definitions/tcpv4port"
},
{
"description":"Start allocating ports at this value, going downward"
}
]
},
"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"
"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.",
"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":{
"description":"Mail alias support",
"default":{},
"description":"Mail alias support",
"patternProperties":{
".*":{
"description":"List of addresses alias expands to",
...
...
@@ -26,11 +13,27 @@
},
"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":{
"description":"Forward outgoing mails to a specific relay. If enabled, relay must support TLS-encrypted SASL authentication.",
"default":{},
"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":{
"host":{
"description":"Host name or address of relay, with optional port (ex: '[example.com]:submission'). Enclosing hostname with [] prevents MX lookup.",
...
...
@@ -41,16 +44,20 @@
"type":"string"
}
},
"default":{},
"type":"object"
},
"divert":{
"description":"Intercept all mails and send them to given addresses instead of original recipient",
"type":"array",
"items":{
"type":"string"
},
"uniqueItems":true
"tcpv4-port":{
"allOf":[
{
"$ref":"#/definitions/tcpv4port"
},
{
"description":"Start allocating ports at this value, going upward"
"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",
"description":"'%(backup)s' is expanded to partition's ZODB backup path (typically 'srv/backup/zodb'), and %(name)s with the export id",
"type":"string"
},
"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",
"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":"^[^<>:\"/\\|?*\\]\\[ ]*$",
"type":"string"
},
"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",
"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",