✨ feat(schema): enhance API configuration schemas with new properties and validations
All checks were successful
continuous-integration/drone/push Build is passing
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.
This commit is contained in:
@@ -413,6 +413,171 @@
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"$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": {
|
||||
@@ -721,18 +886,27 @@
|
||||
"type": "boolean"
|
||||
},
|
||||
"size": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"default": {
|
||||
"type": "string"
|
||||
"oneOf": [
|
||||
{
|
||||
"type": "string",
|
||||
"description": "shorthand: single size for all breakpoints (e.g. col-3)"
|
||||
},
|
||||
"small": {
|
||||
"type": "string"
|
||||
},
|
||||
"large": {
|
||||
"type": "string"
|
||||
{
|
||||
"type": "object",
|
||||
"description": "responsive sizes per breakpoint",
|
||||
"properties": {
|
||||
"default": {
|
||||
"type": "string"
|
||||
},
|
||||
"small": {
|
||||
"type": "string"
|
||||
},
|
||||
"large": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -794,6 +968,62 @@
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"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."
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -841,4 +1071,4 @@
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user