instance-erp5-input-schema.json 5.38 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "extends": "./schema-definitions.json#",
  "description": "Parameters to instantiate ERP5",
  "additionalProperties": false,
  "properties": {
    "site-id": {
      "description": "ERP5Site object's id",
      "default": "erp5",
      "type": "string"
    },
    "timezone": {
      "description": "Main site's timezone",
      "default": "UTC",
      "type": "string"
    },
17 18 19 20 21
    "deadlock-debugger-password": {
      "description": "Password for /manage_debug_threads",
      "default": "random",
      "type": "string"
    }
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148
    "zope-partition-dict": {
      "description": "Zope layout definition",
      "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 frontend (=client-facing ip & port). 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": 1,
              "type": "integer"
            },
            "timerserver-interval": {
              "description": "Timerserver tick perdiod, in seconds, or 0 to disable",
              "default": 5,
              "type": "integer"
            },
            "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"
            },
            "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
              }]
            },
            "computer-guid": {
              "description": "GUID of computer instance must be requested on",
              "type": "string"
            }
          },
          "type": "object"
        }
      },
      "type": "object"
    },
    "frontend": {
      "additionalProperties": false,
      "properties": {
        "software-url": {
          "description": "Software URL of an existing frontend, no frontend will be requested if this value is empty",
          "default": "",
          "type": "string"
        },
        "instance-guid": {
          "description": "Frontend's instance GUID, required if software-url is non-empty (not perfect: if frontend is moved and its instance GUID changes, you need to update this value)",
          "type": "string"
        },
        "software-type": {
          "description": "Frontend software type in given software relase",
          "default": "RootSoftwareInsance",
          "type": "string"
        },
        "domain": {
          "description": "Domain name belonging to this instance",
          "default": "",
          "type": "string"
        }
      },
      "default": {},
      "type": "object"
    },
    "kumofs-computer-guid": {
      "description": "GUID of computer instance must be requested on",
      "type": "string"
    },
    "kumofs": {
      "description": "Persistent memcached service",
      "additionalProperties": {
        "$ref": "./instance-kumofs-input-schema.json#properties"
      },
      "type": "object"
    },
    "memcached-computer-guid": {
      "description": "GUID of computer instance must be requested on",
      "type": "string"
    },
    "memcached": {
      "description": "Volatile memcached service",
      "additionalProperties": {
        "$ref": "./instance-kumofs-input-schema.json#properties"
      },
      "type": "object"
    },
    "cloudooo-computer-guid": {
      "description": "GUID of computer instance must be requested on",
      "type": "string"
    },
    "cloudooo": {
      "description": "Format conversion service",
      "additionalProperties": {
        "$ref": "./instance-cloudooo-input-schema.json#properties"
      },
      "type": "object"
    },
    "mariadb-computer-guid": {
      "description": "GUID of computer instance must be requested on",
      "type": "string"
    },
    "mariadb": {
      "description": "Relational database service",
      "additionalProperties": {
        "$ref": "./instance-mariadb-input-schema.json#properties"
      },
      "type": "object"
    },
    "zodb-software-type": {
      "description": "Zope Object DataBase implementation",
      "default": "zeo",
149
      "enum": ["zeo", "neo"],
150 151 152 153 154
      "type": "string"
    },
    "zodb": {
      "description": "Zope Object DataBase service",
      "oneOf": [
155
        {"$ref": "./instance-neo-input-schema.json#properties"},
156 157 158 159 160
        {"$ref": "./instance-zeo-input-schema.json#properties"}
      ]
    }
  }
}