All checks were successful
continuous-integration/drone/push Build is passing
- Updated collection.json to include upload defaults, audit logging, query limits, and more. - Enhanced collectionNavigation.json with viewHint configurations. - Added project-wide upload defaults and hook configurations in config.json. - Expanded field.json to support new field types, validations, and properties. - Improved fieldMeta.json with additional widget configurations and properties. - Updated hooks.json to include new bulk operation hooks and audit logging. - Enhanced imageFilter.json with additional image processing options. - Added timeout properties to job.json for better execution control. - Refined permissions.json to allow more granular control over HTTP method permissions and added filter and field visibility options.
1075 lines
46 KiB
JSON
1075 lines
46 KiB
JSON
{
|
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
"title": "JSON Schema tibi-server field meta configuration",
|
|
"description": "tibi-server field meta linter",
|
|
"type": "object",
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/definitions/minimum"
|
|
},
|
|
{
|
|
"$ref": "#/definitions/minimum",
|
|
"patternProperties": {
|
|
"^x-.*|widget|inputProps$": {
|
|
"$comment": "stub for allOf"
|
|
}
|
|
},
|
|
"allOf": [
|
|
{
|
|
"properties": {
|
|
"widget": {
|
|
"enum": [
|
|
"text",
|
|
"checkbox"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"properties": {
|
|
"inputProps": {
|
|
"type": "object",
|
|
"properties": {
|
|
"multiline": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$ref": "#/definitions/minimum",
|
|
"patternProperties": {
|
|
"^x-.*|widget$": {
|
|
"$comment": "stub for allOf"
|
|
}
|
|
},
|
|
"allOf": [
|
|
{
|
|
"properties": {
|
|
"widget": {
|
|
"enum": [
|
|
"previewBasedObjectArray"
|
|
]
|
|
}
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$ref": "#/definitions/minimum",
|
|
"patternProperties": {
|
|
"^x-.*|widget$": {
|
|
"$comment": "stub for allOf"
|
|
}
|
|
},
|
|
"allOf": [
|
|
{
|
|
"properties": {
|
|
"widget": {
|
|
"enum": [
|
|
"richtext",
|
|
"richText"
|
|
]
|
|
}
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$ref": "#/definitions/minimum",
|
|
"patternProperties": {
|
|
"^x-.*|widget|choices$": {
|
|
"$comment": "stub for allOf"
|
|
}
|
|
},
|
|
"allOf": [
|
|
{
|
|
"required": [
|
|
"choices"
|
|
],
|
|
"properties": {
|
|
"widget": {
|
|
"enum": [
|
|
"checkboxArray",
|
|
"select",
|
|
"selectArray",
|
|
"chipArray"
|
|
]
|
|
},
|
|
"choices": {
|
|
"oneOf": [
|
|
{
|
|
"type": "object",
|
|
"description": "endpoint configuration",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"endpoint": {
|
|
"type": "string",
|
|
"description": "endpoint URL or path"
|
|
},
|
|
"params": {
|
|
"type": "object",
|
|
"description": "query parameters"
|
|
},
|
|
"mapping": {
|
|
"type": "object",
|
|
"description": "data mapping",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"id": {
|
|
"type": "string",
|
|
"description": "name of id field"
|
|
},
|
|
"name": {
|
|
"type": "string",
|
|
"description": "name of name/description field"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"type": "array",
|
|
"description": "choices to select from",
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"oneOf": [
|
|
{
|
|
"type": "null"
|
|
},
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "number"
|
|
}
|
|
]
|
|
},
|
|
"name": {
|
|
"description": "name is human readable value",
|
|
"$ref": "definitions.json#/definitions/i18nString"
|
|
},
|
|
"chipStyle": {
|
|
"$ref": "https://raw.githubusercontent.com/rcorp/css-schema/master/schema.json"
|
|
}
|
|
},
|
|
"required": [
|
|
"id",
|
|
"name"
|
|
]
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$ref": "#/definitions/minimum",
|
|
"patternProperties": {
|
|
"^x-.*|widget$": {
|
|
"$comment": "stub for allOf"
|
|
}
|
|
},
|
|
"allOf": [
|
|
{
|
|
"properties": {
|
|
"widget": {
|
|
"enum": [
|
|
"date",
|
|
"datetime"
|
|
]
|
|
}
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$ref": "#/definitions/minimum",
|
|
"patternProperties": {
|
|
"^x-.*|widget$": {
|
|
"$comment": "stub for allOf"
|
|
}
|
|
},
|
|
"allOf": [
|
|
{
|
|
"properties": {
|
|
"widget": {
|
|
"enum": [
|
|
"file",
|
|
"image"
|
|
]
|
|
}
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$ref": "#/definitions/minimum",
|
|
"patternProperties": {
|
|
"^x-.*|widget$": {
|
|
"$comment": "stub for allOf"
|
|
}
|
|
},
|
|
"allOf": [
|
|
{
|
|
"properties": {
|
|
"widget": {
|
|
"enum": [
|
|
"json"
|
|
]
|
|
}
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$ref": "#/definitions/minimum",
|
|
"patternProperties": {
|
|
"^x-.*|widget$": {
|
|
"$comment": "stub for allOf"
|
|
}
|
|
},
|
|
"allOf": [
|
|
{
|
|
"properties": {
|
|
"widget": {
|
|
"enum": [
|
|
"tabs"
|
|
]
|
|
}
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$ref": "#/definitions/minimum",
|
|
"patternProperties": {
|
|
"^x-.*|widget|foreign$": {
|
|
"$comment": "stub for allOf"
|
|
}
|
|
},
|
|
"allOf": [
|
|
{
|
|
"properties": {
|
|
"widget": {
|
|
"enum": [
|
|
"foreignKey"
|
|
]
|
|
},
|
|
"foreign": {
|
|
"additionalProperties": false,
|
|
"description": "foreign key configuration",
|
|
"type": "object",
|
|
"properties": {
|
|
"collection": {
|
|
"type": "string",
|
|
"description": "collection name"
|
|
},
|
|
"id": {
|
|
"type": "string",
|
|
"description": "id field name"
|
|
},
|
|
"projection": {
|
|
"type": "string",
|
|
"description": "projection name used for fetching initial foreign entries from database"
|
|
},
|
|
"sort": {
|
|
"type": "string",
|
|
"description": "sort field name (-field for descending)"
|
|
},
|
|
"subNavigation": {
|
|
"type": "number",
|
|
"description": "sub navigation index in foreign collection"
|
|
},
|
|
"render": {
|
|
"description": "field name or eval object which returns string",
|
|
"oneOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"$ref": "definitions.json#/definitions/evalObjectWithRaw"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"defaultCollectionViews": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"defaultCollectionViews"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$ref": "#/definitions/minimum",
|
|
"patternProperties": {
|
|
"^x-.*|widget|baseHref|cssHref|imageSelect|fileSelect|videoSelect|customTags|style$": {
|
|
"$comment": "stub for allOf"
|
|
}
|
|
},
|
|
"allOf": [
|
|
{
|
|
"properties": {
|
|
"widget": {
|
|
"enum": [
|
|
"contentbuilder"
|
|
]
|
|
},
|
|
"baseHref": {
|
|
"description": "base href for relative links inside of ContentBuilder",
|
|
"oneOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"$ref": "definitions.json#/definitions/evalObject"
|
|
}
|
|
]
|
|
},
|
|
"cssHref": {
|
|
"description": "href to css file for use with ContentBuilder",
|
|
"oneOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"$ref": "definitions.json#/definitions/evalObject"
|
|
}
|
|
]
|
|
},
|
|
"imageSelect": {
|
|
"description": "target for image selection",
|
|
"$ref": "#definitions/assetsTarget"
|
|
},
|
|
"fileSelect": {
|
|
"description": "target for file selection",
|
|
"$ref": "#definitions/assetsTarget"
|
|
},
|
|
"videoSelect": {
|
|
"description": "target for video selection",
|
|
"$ref": "#definitions/assetsTarget"
|
|
},
|
|
"customTags": {
|
|
"description": "custom tags to add to ContentBuilder",
|
|
"oneOf": [
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": [
|
|
"placeholder",
|
|
"label"
|
|
],
|
|
"properties": {
|
|
"placeholder": {
|
|
"type": "string",
|
|
"description": "placeholder inside html code"
|
|
},
|
|
"label": {
|
|
"$ref": "definitions.json#/definitions/i18nString"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"$ref": "definitions.json#/definitions/evalObject"
|
|
}
|
|
]
|
|
},
|
|
"style": {
|
|
"description": "css style to inject into ContentBuilder",
|
|
"oneOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"$ref": "definitions.json#/definitions/evalObject"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$ref": "#/definitions/minimum",
|
|
"patternProperties": {
|
|
"^x-.*|widget|pagebuilder$": {
|
|
"$comment": "stub for allOf"
|
|
}
|
|
},
|
|
"allOf": [
|
|
{
|
|
"properties": {
|
|
"widget": {
|
|
"enum": [
|
|
"pagebuilder",
|
|
"pageBuilder"
|
|
]
|
|
},
|
|
"pagebuilder": {
|
|
"type": "object",
|
|
"description": "Pagebuilder widget configuration. Field-level settings override collection-level fallbacks.",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"mode": {
|
|
"type": "string",
|
|
"enum": [
|
|
"overlay",
|
|
"inline",
|
|
"both"
|
|
],
|
|
"description": "[Planned] Editor mode. Currently only 'overlay' is implemented. 'inline' and 'both' are planned."
|
|
},
|
|
"defaultViewport": {
|
|
"type": "number",
|
|
"description": "Default viewport width in pixels for the preview. Common presets: 1280 (Desktop), 768 (Tablet), 375 (Phone). Default: 1280. Overrides collection-level fallback."
|
|
},
|
|
"blockTypeField": {
|
|
"type": "string",
|
|
"description": "Name of the sub-field that holds the block type identifier. Default: 'blockType'. Overrides collection-level fallback."
|
|
},
|
|
"blockRegistry": {
|
|
"type": "object",
|
|
"description": "Block registry configuration for loading available block definitions.",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"file": {
|
|
"type": "string",
|
|
"description": "URL to an ES module that default-exports a BlockRegistry (Record<string, BlockDefinition>). Overrides collection-level fallback."
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$ref": "#/definitions/minimum",
|
|
"patternProperties": {
|
|
"^x-.*|widget|pagebuilder$": {
|
|
"$comment": "stub for allOf"
|
|
}
|
|
},
|
|
"allOf": [
|
|
{
|
|
"properties": {
|
|
"widget": {
|
|
"enum": [
|
|
"pagebuilder",
|
|
"pageBuilder"
|
|
]
|
|
},
|
|
"pagebuilder": {
|
|
"type": "object",
|
|
"description": "Pagebuilder widget configuration. Field-level settings override collection-level fallbacks.",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"mode": {
|
|
"type": "string",
|
|
"enum": [
|
|
"overlay",
|
|
"inline",
|
|
"both"
|
|
],
|
|
"description": "[Planned] Editor mode. Currently only 'overlay' is implemented. 'inline' and 'both' are planned."
|
|
},
|
|
"defaultViewport": {
|
|
"type": "number",
|
|
"description": "Default viewport width in pixels for the preview. Common presets: 1280 (Desktop), 768 (Tablet), 375 (Phone). Default: 1280. Overrides collection-level fallback."
|
|
},
|
|
"blockTypeField": {
|
|
"type": "string",
|
|
"description": "Name of the sub-field that holds the block type identifier. Default: 'blockType'. Overrides collection-level fallback."
|
|
},
|
|
"blockRegistry": {
|
|
"type": "object",
|
|
"description": "Block registry configuration for loading available block definitions.",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"file": {
|
|
"type": "string",
|
|
"description": "URL to an ES module that default-exports a BlockRegistry (Record<string, BlockDefinition>). Overrides collection-level fallback."
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$ref": "#/definitions/minimum",
|
|
"patternProperties": {
|
|
"^x-.*|widget|pagebuilder$": {
|
|
"$comment": "stub for allOf"
|
|
}
|
|
},
|
|
"allOf": [
|
|
{
|
|
"properties": {
|
|
"widget": {
|
|
"enum": [
|
|
"pagebuilder",
|
|
"pageBuilder"
|
|
]
|
|
},
|
|
"pagebuilder": {
|
|
"type": "object",
|
|
"description": "Pagebuilder widget configuration. Field-level settings override collection-level fallbacks.",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"mode": {
|
|
"type": "string",
|
|
"enum": [
|
|
"overlay",
|
|
"inline",
|
|
"both"
|
|
],
|
|
"description": "[Planned] Editor mode. Currently only 'overlay' is implemented. 'inline' and 'both' are planned."
|
|
},
|
|
"defaultViewport": {
|
|
"type": "number",
|
|
"description": "Default viewport width in pixels for the preview. Common presets: 1280 (Desktop), 768 (Tablet), 375 (Phone). Default: 1280. Overrides collection-level fallback."
|
|
},
|
|
"blockTypeField": {
|
|
"type": "string",
|
|
"description": "Name of the sub-field that holds the block type identifier. Default: 'blockType'. Overrides collection-level fallback."
|
|
},
|
|
"blockRegistry": {
|
|
"type": "object",
|
|
"description": "Block registry configuration for loading available block definitions.",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"file": {
|
|
"type": "string",
|
|
"description": "URL to an ES module that default-exports a BlockRegistry (Record<string, BlockDefinition>). Overrides collection-level fallback."
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"definitions": {
|
|
"minimum": {
|
|
"additionalProperties": false,
|
|
"patternProperties": {
|
|
"^x\\-": {
|
|
"description": "template property"
|
|
}
|
|
},
|
|
"properties": {
|
|
"folding": {
|
|
"type": "object",
|
|
"description": "folding configuration for array fields",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"previewUnfolded": {
|
|
"description": "preview for unfolded array element",
|
|
"oneOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"$ref": "definitions.json#/definitions/evalObjectWithRaw"
|
|
}
|
|
]
|
|
},
|
|
"previewFolded": {
|
|
"description": "preview for folded array element",
|
|
"oneOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"$ref": "definitions.json#/definitions/evalObjectWithRaw"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"hide": {
|
|
"type": "boolean",
|
|
"description": "hide field widget"
|
|
},
|
|
"direction": {
|
|
"type": "string",
|
|
"enum": [
|
|
"horizontal",
|
|
"vertical"
|
|
]
|
|
},
|
|
"pathStep": {
|
|
"type": "object",
|
|
"properties": {
|
|
"title": {
|
|
"type": "string"
|
|
},
|
|
"icon": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"title"
|
|
]
|
|
},
|
|
"preview": {
|
|
"description": "preview configuration for array elements",
|
|
"oneOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"$ref": "definitions.json#/definitions/evalObjectWithRaw"
|
|
}
|
|
]
|
|
},
|
|
"metaElements": {
|
|
"oneOf": [
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"source": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"source"
|
|
]
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"source": {
|
|
"type": "string",
|
|
"const": "layout"
|
|
}
|
|
},
|
|
"required": [
|
|
"source"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"tablist": {
|
|
"type": "object",
|
|
"properties": {
|
|
"tabs": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"label": {
|
|
"type": "string"
|
|
},
|
|
"subFields": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"source": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"source"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"name",
|
|
"label",
|
|
"subFields"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"tabs"
|
|
]
|
|
}
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"openapi": {
|
|
"type": "object"
|
|
},
|
|
"label": {
|
|
"$ref": "definitions.json#/definitions/i18nString",
|
|
"description": "label for field"
|
|
},
|
|
"addElementLabel": {
|
|
"$ref": "definitions.json#/definitions/i18nString",
|
|
"description": "label for adding element to list"
|
|
},
|
|
"helperText": {
|
|
"$ref": "definitions.json#/definitions/i18nString",
|
|
"description": "helper text for field"
|
|
},
|
|
"filter": {
|
|
"type": "object",
|
|
"description": "filter configuration for list view of this field",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"description": "filter type",
|
|
"enum": [
|
|
"default",
|
|
"select",
|
|
"bool",
|
|
"boolean",
|
|
"input",
|
|
"number",
|
|
"foreignKey"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"css": {
|
|
"description": "css styles for field widgets",
|
|
"oneOf": [
|
|
{
|
|
"$comment": "for include tag",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"input": {
|
|
"description": "css styles for input widget",
|
|
"oneOf": [
|
|
{
|
|
"$comment": "for include tag",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"wrapper": {
|
|
"description": "css styles for input widget wrapper",
|
|
"$ref": "#/definitions/css"
|
|
},
|
|
"element": {
|
|
"description": "css styles for input widget sub elements",
|
|
"$ref": "#/definitions/css"
|
|
},
|
|
"foreignEntry": {
|
|
"description": "css styles for input widget linked foreign entries",
|
|
"$ref": "#/definitions/css"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"view": {
|
|
"description": "css styles for input widget",
|
|
"oneOf": [
|
|
{
|
|
"$comment": "for include tag",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"wrapper": {
|
|
"description": "css styles for view widget wrapper",
|
|
"$ref": "#/definitions/css"
|
|
},
|
|
"element": {
|
|
"description": "css styles for view widget sub elements",
|
|
"$ref": "#/definitions/css"
|
|
},
|
|
"foreignEntry": {
|
|
"description": "css styles for input widget linked foreign entries",
|
|
"$ref": "#/definitions/css"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"dependsOn": {
|
|
"description": "depends on rule",
|
|
"oneOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"eval": {
|
|
"type": "string",
|
|
"description": "javascript code which hides field widget if evaluates to false with $, $this, $parent and $stack variables"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"containerProps": {
|
|
"type": "object",
|
|
"properties": {
|
|
"class": {
|
|
"type": "string"
|
|
},
|
|
"layout": {
|
|
"type": "object",
|
|
"properties": {
|
|
"breakBefore": {
|
|
"type": "boolean"
|
|
},
|
|
"breakAfter": {
|
|
"type": "boolean"
|
|
},
|
|
"size": {
|
|
"oneOf": [
|
|
{
|
|
"type": "string",
|
|
"description": "shorthand: single size for all breakpoints (e.g. col-3)"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"description": "responsive sizes per breakpoint",
|
|
"properties": {
|
|
"default": {
|
|
"type": "string"
|
|
},
|
|
"small": {
|
|
"type": "string"
|
|
},
|
|
"large": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"inputProps": {
|
|
"type": "object",
|
|
"additionalProperties": true
|
|
},
|
|
"defaultValue": {
|
|
"description": "default value or code to get the value",
|
|
"oneOf": [
|
|
{
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
},
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"eval": {
|
|
"type": "string",
|
|
"description": "js code with $navigation variable"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"valueMap": {
|
|
"type": "object",
|
|
"description": "map values to icons",
|
|
"patternProperties": {
|
|
".*": {
|
|
"oneOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"muiIcon": {
|
|
"type": "string"
|
|
},
|
|
"style": {
|
|
"$comment": "https://raw.githubusercontent.com/rcorp/css-schema/master/schema.json"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"widget": {
|
|
"type": "string",
|
|
"description": "widget type for rendering the field in admin UI"
|
|
},
|
|
"position": {
|
|
"type": "string",
|
|
"description": "field position in the editor layout: 'main' (default), 'sidebar' (default settings card), or 'sidebar:<group>' (named sidebar card, e.g. 'sidebar:SEO')"
|
|
},
|
|
"section": {
|
|
"description": "section grouping for the field in the editor",
|
|
"$ref": "definitions.json#/definitions/i18nString"
|
|
},
|
|
"choices": {
|
|
"description": "choices for select/chipArray/checkboxArray widgets",
|
|
"oneOf": [
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object"
|
|
}
|
|
},
|
|
{
|
|
"type": "object"
|
|
}
|
|
]
|
|
},
|
|
"foreign": {
|
|
"type": "object",
|
|
"description": "foreign key configuration for foreignKey/foreignFile widgets"
|
|
},
|
|
"downscale": {
|
|
"type": "object",
|
|
"description": "image downscale configuration for file/image widgets",
|
|
"properties": {
|
|
"maxWidth": {
|
|
"type": "number",
|
|
"description": "maximum width in pixels"
|
|
},
|
|
"maxHeight": {
|
|
"type": "number",
|
|
"description": "maximum height in pixels"
|
|
},
|
|
"quality": {
|
|
"type": "number",
|
|
"description": "JPEG quality (0-100)"
|
|
}
|
|
}
|
|
},
|
|
"drillDown": {
|
|
"type": "boolean",
|
|
"description": "whether object subFields should be rendered inline (false) or as drill-down navigation (true, default)"
|
|
},
|
|
"readonly": {
|
|
"type": "boolean",
|
|
"description": "if true, the field is displayed as a read-only view (table/card style) instead of an editable widget. Use inputProps for a disabled input instead."
|
|
}
|
|
}
|
|
},
|
|
"assetsTarget": {
|
|
"oneOf": [
|
|
{
|
|
"type": "string",
|
|
"description": "url for assets view"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"collection": {
|
|
"type": "string",
|
|
"description": "collection name"
|
|
},
|
|
"subNavigation": {
|
|
"type": "number",
|
|
"description": "sub navigation index in collections meta.subNavigation"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"$ref": "definitions.json#/definitions/evalObject"
|
|
}
|
|
]
|
|
},
|
|
"css": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"$ref": "https://raw.githubusercontent.com/rcorp/css-schema/master/schema.json"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"eval": {
|
|
"type": "string",
|
|
"description": "javascript code evaled to string or css object"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|