{ "$schema": "http://json-schema.org/draft-07/schema#", "$id": "project.schema.json", "title": "Tibi project config", "type": "object", "additionalProperties": false, "patternProperties": { "^x-": {} }, "properties": { "namespace": { "type": "string", "pattern": "^[A-Za-z0-9_-]+$" }, "meta": { "type": "object", "additionalProperties": false, "properties": { "imageUrl": { "oneOf": [ { "type": "string" }, { "$ref": "defs.schema.json#/definitions/evalString" } ] }, "permissions": { "type": "array", "items": { "type": "object", "additionalProperties": false, "properties": { "name": { "type": "string" }, "label": { "$ref": "defs.schema.json#/definitions/i18nText" } }, "required": [ "name" ] } }, "collectionGroups": { "type": "array", "items": { "type": "object", "additionalProperties": false, "properties": { "name": { "type": "string" }, "label": { "$ref": "defs.schema.json#/definitions/i18nText" }, "icon": { "type": "string" } }, "required": [ "name" ] } }, "i18n": { "type": "object", "additionalProperties": false, "properties": { "defaultLanguage": { "type": "string" }, "languages": { "type": "array", "items": { "type": "object", "additionalProperties": false, "properties": { "code": { "type": "string" }, "label": { "$ref": "defs.schema.json#/definitions/i18nText" } }, "required": [ "code" ] } } }, "required": [ "defaultLanguage", "languages" ] } } }, "upload": { "$ref": "project.schema.json#/definitions/uploadConfig" }, "collections": { "type": "array", "items": { "oneOf": [ { "type": "string" }, { "$ref": "collection.schema.json" } ] } }, "jobs": { "type": "array", "items": { "oneOf": [ { "type": "string" }, { "$ref": "job.schema.json" } ] } }, "actions": { "type": "array", "items": { "oneOf": [ { "type": "string" }, { "$ref": "action.schema.json" } ] } }, "assets": { "type": "array", "items": { "oneOf": [ { "type": "string" }, { "$ref": "asset.schema.json" } ] } }, "cors": { "type": "object", "additionalProperties": false, "properties": { "merge": { "type": "boolean" }, "allowOrigins": { "type": "array", "items": { "type": "string" } }, "allowCredentials": { "type": "boolean" }, "allowHeaders": { "type": "array", "items": { "type": "string" } }, "allowMethods": { "type": "array", "items": { "type": "string" } }, "exposeHeaders": { "type": "array", "items": { "type": "string" } }, "maxAge": { "type": "integer", "minimum": 0 } } }, "admin": { "type": "object", "additionalProperties": false, "properties": { "tokens": { "type": "array", "items": { "type": "object", "additionalProperties": false, "properties": { "token": { "type": "string" }, "allowReload": { "type": "boolean" }, "allowRegenerateSearch": { "type": "boolean" } }, "required": [ "token" ] } } } }, "hook": { "type": "object", "additionalProperties": false, "properties": { "cache": { "type": "object", "additionalProperties": false, "properties": { "maxEntries": { "type": "integer", "minimum": 0 }, "defaultTTL": { "type": "string" } } }, "ratelimit": { "type": "object", "additionalProperties": false, "properties": { "backoffInitialDelay": { "type": "string" }, "backoffMaxDelay": { "type": "string" }, "backoffResetAfter": { "type": "string" }, "windowSize": { "type": "string" }, "windowMaxHits": { "type": "integer", "minimum": 0 } } } } }, "strictFields": { "type": "boolean" }, "legacy": { "type": "object", "additionalProperties": false, "properties": { "httpCodes": { "type": "boolean" } } } }, "required": [ "namespace" ], "definitions": { "uploadConfig": { "type": "object", "additionalProperties": false, "properties": { "maxBodySize": { "type": "string" }, "allowedMimeTypes": { "type": "array", "items": { "type": "string" } } } } } }