Skip to content

Instantly share code, notes, and snippets.

@piretek
Created December 21, 2023 13:36
Show Gist options
  • Save piretek/26b0f63e0ca73e0da7a524926b3e8835 to your computer and use it in GitHub Desktop.
Save piretek/26b0f63e0ca73e0da7a524926b3e8835 to your computer and use it in GitHub Desktop.
test
{
"$ref": "#/definitions/no-code-schema",
"definitions": {
"rootBuildingBlock": {
"type": "object",
"properties": {
"blockType": {
"type": "string",
"const": "ROOT"
},
"class": {
"type": "array",
"items": {
"type": "string"
}
},
"condition": {
"type": "object",
"properties": {
"visibility": {
"anyOf": [
{
"type": "object",
"properties": {
"compareTo": {
"anyOf": [
{
"type": "object",
"properties": {
"dataOrigin": {
"type": "string",
"const": "context"
},
"dataPath": {
"type": "string",
"description": "Path to data in context starts with '$context'"
}
},
"required": [
"dataOrigin",
"dataPath"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"dataOrigin": {
"type": "string",
"const": "static"
},
"data": {}
},
"required": [
"dataOrigin"
],
"additionalProperties": false
}
]
},
"operator": {
"type": "string",
"enum": [
"eq",
"neq",
"gt",
"gte",
"lt",
"lte"
]
},
"value": {
"anyOf": [
{
"$ref": "#/definitions/rootBuildingBlock/properties/condition/properties/visibility/anyOf/0/properties/compareTo/anyOf/0"
},
{
"$ref": "#/definitions/rootBuildingBlock/properties/condition/properties/visibility/anyOf/0/properties/compareTo/anyOf/1"
}
]
}
},
"required": [
"compareTo",
"operator",
"value"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"compareTo": {
"$ref": "#/definitions/rootBuildingBlock/properties/condition/properties/visibility/anyOf/0/properties/compareTo"
},
"operator": {
"type": "string",
"enum": [
"notEmpty",
"empty"
]
}
},
"required": [
"compareTo",
"operator"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"compareTo": {
"$ref": "#/definitions/rootBuildingBlock/properties/condition/properties/visibility/anyOf/0/properties/compareTo"
},
"operator": {
"type": "string",
"enum": [
"isTrue",
"isFalse"
]
}
},
"required": [
"compareTo",
"operator"
],
"additionalProperties": false
}
]
}
},
"required": [
"visibility"
],
"additionalProperties": false
},
"styles": {
"type": "array",
"items": {
"type": "string"
}
},
"children": {
"type": "array",
"items": {
"$ref": "#/definitions/pageBuildingBlock"
},
"minItems": 1
}
},
"required": [
"blockType",
"children"
],
"additionalProperties": false
},
"pageBuildingBlock": {
"type": "object",
"properties": {
"blockType": {
"type": "string",
"const": "PAGE"
},
"class": {
"$ref": "#/definitions/rootBuildingBlock/properties/class"
},
"condition": {
"$ref": "#/definitions/rootBuildingBlock/properties/condition"
},
"styles": {
"$ref": "#/definitions/rootBuildingBlock/properties/styles"
},
"pageMetadata": {
"type": "object",
"properties": {
"title": {
"type": "string"
},
"path": {
"type": "string"
}
},
"required": [
"title",
"path"
],
"additionalProperties": false
},
"context": {
"type": "object",
"properties": {
"parentContextVariableName": {
"type": "string",
"description": "Defines variable under which context is registered in parent context"
}
},
"additionalProperties": false
},
"children": {
"type": "array",
"items": {
"anyOf": [
{
"$ref": "#/definitions/rootBuildingBlock"
},
{
"$ref": "#/definitions/pageBuildingBlock"
},
{
"$ref": "#/definitions/containerBuildingBlock"
},
{
"$ref": "#/definitions/rowBuildingBlock"
},
{
"$ref": "#/definitions/columnBuildingBlock"
},
{
"type": "object",
"properties": {
"blockType": {
"type": "string",
"const": "BUTTON"
},
"class": {
"$ref": "#/definitions/rootBuildingBlock/properties/class"
},
"condition": {
"$ref": "#/definitions/rootBuildingBlock/properties/condition"
},
"styles": {
"$ref": "#/definitions/rootBuildingBlock/properties/styles"
},
"buttonMetadata": {
"type": "object",
"properties": {
"label": {
"type": "string"
},
"onClick": {
"anyOf": [
{
"type": "object",
"properties": {
"action": {
"type": "string",
"const": "debugLog"
},
"actionData": {
"type": "object",
"properties": {
"source": {
"$ref": "#/definitions/rootBuildingBlock/properties/condition/properties/visibility/anyOf/0/properties/value"
}
},
"required": [
"source"
],
"additionalProperties": false
}
},
"required": [
"action",
"actionData"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"action": {
"type": "string",
"const": "updateOptions"
},
"actionData": {
"type": "object",
"properties": {
"sourceValue": {
"type": "string"
},
"destValues": {
"type": "object",
"properties": {
"sourceValue": {
"type": "object",
"properties": {
"valueType": {
"type": "string",
"enum": [
"string",
"number",
"boolean"
]
}
},
"required": [
"valueType"
],
"additionalProperties": false
}
},
"required": [
"sourceValue"
],
"additionalProperties": false
}
},
"required": [
"sourceValue",
"destValues"
],
"additionalProperties": false
}
},
"required": [
"action",
"actionData"
],
"additionalProperties": false
}
]
}
},
"required": [
"label",
"onClick"
],
"additionalProperties": false
}
},
"required": [
"blockType",
"buttonMetadata"
],
"additionalProperties": false
},
{
"$ref": "#/definitions/formBuildingBlock"
},
{
"$ref": "#/definitions/formArrayBuildingBlock"
},
{
"$ref": "#/definitions/textInputBuildingBlock"
},
{
"type": "object",
"properties": {
"blockType": {
"type": "string",
"const": "NUMBER"
},
"class": {
"$ref": "#/definitions/rootBuildingBlock/properties/class"
},
"condition": {
"$ref": "#/definitions/rootBuildingBlock/properties/condition"
},
"styles": {
"$ref": "#/definitions/rootBuildingBlock/properties/styles"
},
"formFieldMetadata": {
"type": "object",
"properties": {
"key": {
"type": "string"
},
"label": {
"type": "string"
},
"context": {
"type": "object",
"properties": {
"contextVariableName": {
"type": "string",
"description": "Defines variable under which control value is stored in context"
}
},
"required": [
"contextVariableName"
],
"additionalProperties": false
}
},
"required": [
"key",
"label"
],
"additionalProperties": false
},
"suffixIcon": {
"type": "string"
},
"min": {
"type": "number"
},
"max": {
"type": "number"
},
"step": {
"type": "number"
}
},
"required": [
"blockType",
"formFieldMetadata"
],
"additionalProperties": false
},
{
"$ref": "#/definitions/checkboxBuildingBlock"
},
{
"$ref": "#/definitions/selectBuildingBlock"
},
{
"type": "object",
"properties": {
"blockType": {
"type": "string",
"const": "AUTOCOMPLETE"
},
"class": {
"$ref": "#/definitions/rootBuildingBlock/properties/class"
},
"condition": {
"$ref": "#/definitions/rootBuildingBlock/properties/condition"
},
"styles": {
"$ref": "#/definitions/rootBuildingBlock/properties/styles"
},
"formFieldMetadata": {
"$ref": "#/definitions/pageBuildingBlock/properties/children/items/anyOf/9/properties/formFieldMetadata"
},
"typingTriggerParamName": {
"type": "string",
"description": "Name of param to be sent to service datasource. If not present, autocomplete will filter data locally."
},
"datasource": {
"anyOf": [
{
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "service"
},
"url": {
"type": "string"
},
"method": {
"type": "string",
"enum": [
"GET",
"POST"
]
},
"params": {
"type": "array",
"items": {
"type": "string"
}
},
"paramsMapping": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"properties": {
"param": {
"type": "string"
},
"externalParam": {
"type": "string"
}
},
"required": [
"param",
"externalParam"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"param": {
"type": "string"
},
"paramValue": {
"type": "string"
}
},
"required": [
"param",
"paramValue"
],
"additionalProperties": false
}
]
}
},
"responseMapping": {
"type": "array",
"items": {
"type": "object",
"properties": {
"responseKey": {
"type": "string",
"description": "Property or property path of response object"
},
"objectKey": {
"type": "string",
"const": "values"
}
},
"required": [
"responseKey",
"objectKey"
],
"additionalProperties": false
},
"minItems": 1,
"maxItems": 1
},
"body": {}
},
"required": [
"type",
"url",
"method",
"responseMapping"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "static"
},
"data": {}
},
"required": [
"type"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "context"
},
"dataPath": {
"type": "string"
}
},
"required": [
"type",
"dataPath"
],
"additionalProperties": false
}
]
},
"labelMapper": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "property"
},
"property": {
"type": "string"
}
},
"required": [
"type",
"property"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "separator"
},
"separator": {
"type": "string"
}
},
"required": [
"type",
"separator"
],
"additionalProperties": false
}
]
},
"minItems": 1
},
"actions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"source": {
"type": "array",
"items": {
"anyOf": [
{
"$ref": "#/definitions/pageBuildingBlock/properties/children/items/anyOf/12/properties/datasource/anyOf/1"
},
{
"$ref": "#/definitions/pageBuildingBlock/properties/children/items/anyOf/12/properties/datasource/anyOf/2"
},
{
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "queryParams"
},
"params": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 1
}
},
"required": [
"type",
"params"
],
"additionalProperties": false
}
]
},
"minItems": 1
},
"action": {
"type": "array",
"items": {
"type": "object",
"properties": {
"action": {
"type": "string",
"const": "changeDatasource"
},
"datasource": {
"anyOf": [
{
"type": "object",
"properties": {
"type": {
"$ref": "#/definitions/pageBuildingBlock/properties/children/items/anyOf/12/properties/datasource/anyOf/0/properties/type"
},
"url": {
"$ref": "#/definitions/pageBuildingBlock/properties/children/items/anyOf/12/properties/datasource/anyOf/0/properties/url"
},
"method": {
"$ref": "#/definitions/pageBuildingBlock/properties/children/items/anyOf/12/properties/datasource/anyOf/0/properties/method"
},
"params": {
"$ref": "#/definitions/pageBuildingBlock/properties/children/items/anyOf/12/properties/datasource/anyOf/0/properties/params"
},
"paramsMapping": {
"$ref": "#/definitions/pageBuildingBlock/properties/children/items/anyOf/12/properties/datasource/anyOf/0/properties/paramsMapping"
},
"responseMapping": {
"type": "array",
"items": {
"type": "object",
"properties": {
"responseKey": {
"type": "string",
"description": "Property or property path of response object"
},
"objectKey": {
"type": "string",
"description": "Property or path of mapped object. If empty mapper will take value from response[responseKey]"
}
},
"required": [
"responseKey"
],
"additionalProperties": false
},
"minItems": 1
},
"body": {
"$ref": "#/definitions/pageBuildingBlock/properties/children/items/anyOf/12/properties/datasource/anyOf/0/properties/body"
}
},
"required": [
"type",
"url",
"method"
],
"additionalProperties": false
},
{
"$ref": "#/definitions/pageBuildingBlock/properties/children/items/anyOf/12/properties/datasource/anyOf/1"
}
]
}
},
"required": [
"action",
"datasource"
],
"additionalProperties": false
},
"minItems": 1
}
},
"required": [
"source",
"action"
],
"additionalProperties": false
}
}
},
"required": [
"blockType",
"formFieldMetadata",
"datasource"
],
"additionalProperties": false
},
{
"$ref": "#/definitions/datePickerBuildingBlock"
},
{
"$ref": "#/definitions/tableBuildingBlock"
},
{
"type": "object",
"properties": {
"blockType": {
"type": "string",
"const": "LABEL"
},
"class": {
"$ref": "#/definitions/rootBuildingBlock/properties/class"
},
"condition": {
"$ref": "#/definitions/rootBuildingBlock/properties/condition"
},
"styles": {
"$ref": "#/definitions/rootBuildingBlock/properties/styles"
},
"labelMetadata": {
"type": "object",
"properties": {
"label": {
"type": "string"
}
},
"required": [
"label"
],
"additionalProperties": false
}
},
"required": [
"blockType",
"labelMetadata"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"blockType": {
"type": "string",
"const": "CAMUNDA"
},
"class": {
"$ref": "#/definitions/rootBuildingBlock/properties/class"
},
"condition": {
"$ref": "#/definitions/rootBuildingBlock/properties/condition"
},
"styles": {
"$ref": "#/definitions/rootBuildingBlock/properties/styles"
},
"actions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"source": {
"type": "array",
"items": {
"$ref": "#/definitions/pageBuildingBlock/properties/children/items/anyOf/12/properties/actions/items/properties/source/items/anyOf/2"
},
"minItems": 1,
"maxItems": 1
},
"action": {
"type": "array",
"items": {
"$ref": "#/definitions/pageBuildingBlock/properties/children/items/anyOf/12/properties/actions/items/properties/action/items"
},
"minItems": 1
}
},
"required": [
"source",
"action"
],
"additionalProperties": false
}
}
},
"required": [
"blockType",
"actions"
],
"additionalProperties": false
}
]
},
"minItems": 1
}
},
"required": [
"blockType",
"children"
],
"additionalProperties": false
},
"containerBuildingBlock": {
"type": "object",
"properties": {
"blockType": {
"type": "string",
"const": "CONTAINER"
},
"class": {
"$ref": "#/definitions/rootBuildingBlock/properties/class"
},
"condition": {
"$ref": "#/definitions/rootBuildingBlock/properties/condition"
},
"styles": {
"$ref": "#/definitions/rootBuildingBlock/properties/styles"
},
"children": {
"type": "array",
"items": {
"$ref": "#/definitions/pageBuildingBlock/properties/children/items"
},
"minItems": 0
}
},
"required": [
"blockType",
"children"
],
"additionalProperties": false
},
"rowBuildingBlock": {
"type": "object",
"properties": {
"blockType": {
"type": "string",
"const": "ROW"
},
"class": {
"$ref": "#/definitions/rootBuildingBlock/properties/class"
},
"condition": {
"type": "object",
"properties": {
"visibility": {
"$ref": "#/definitions/rootBuildingBlock/properties/condition/properties/visibility"
}
},
"required": [
"visibility"
],
"additionalProperties": false
},
"styles": {
"$ref": "#/definitions/rootBuildingBlock/properties/styles"
},
"children": {
"type": "array",
"items": {
"anyOf": [
{
"$ref": "#/definitions/columnBuildingBlock"
},
{
"$ref": "#/definitions/formBuildingBlock"
}
]
},
"minItems": 1
}
},
"required": [
"blockType",
"children"
],
"additionalProperties": false
},
"columnBuildingBlock": {
"type": "object",
"properties": {
"blockType": {
"type": "string",
"const": "COLUMN"
},
"class": {
"$ref": "#/definitions/rootBuildingBlock/properties/class"
},
"condition": {
"$ref": "#/definitions/rootBuildingBlock/properties/condition"
},
"styles": {
"$ref": "#/definitions/rootBuildingBlock/properties/styles"
},
"children": {
"type": "array",
"items": {
"$ref": "#/definitions/pageBuildingBlock/properties/children/items"
},
"minItems": 1
}
},
"required": [
"blockType",
"children"
],
"additionalProperties": false
},
"formBuildingBlock": {
"type": "object",
"properties": {
"blockType": {
"type": "string",
"const": "FORM"
},
"class": {
"$ref": "#/definitions/rootBuildingBlock/properties/class"
},
"condition": {
"$ref": "#/definitions/rootBuildingBlock/properties/condition"
},
"styles": {
"$ref": "#/definitions/rootBuildingBlock/properties/styles"
},
"formMetadata": {
"type": "object",
"properties": {
"key": {
"type": "string",
"description": "Defines key of form in parent form. If not defined, form is root form"
},
"label": {
"type": "string"
},
"fields": {
"type": "array",
"items": {
"$ref": "#/definitions/formMetadataField"
},
"minItems": 1,
"description": "Defines form field in form"
},
"context": {
"allOf": [
{
"$ref": "#/definitions/pageBuildingBlock/properties/children/items/anyOf/9/properties/formFieldMetadata/properties/context"
},
{
"$ref": "#/definitions/pageBuildingBlock/properties/context"
},
{
"anyOf": [
{
"not": {}
},
{
"type": "object",
"properties": {
"observed": {
"type": "array",
"items": {
"type": "string"
},
"description": "Defines variable under which context is registered in parent context"
}
},
"additionalProperties": false
}
]
}
]
},
"actions": {
"type": "object",
"properties": {
"onQueryParams": {
"type": "object",
"properties": {
"action": {
"$ref": "#/definitions/pageBuildingBlock/properties/children/items/anyOf/12/properties/actions/items/properties/action/items/properties/action"
},
"datasource": {
"$ref": "#/definitions/pageBuildingBlock/properties/children/items/anyOf/12/properties/actions/items/properties/action/items/properties/datasource"
},
"queryParams": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 1
}
},
"required": [
"action",
"datasource",
"queryParams"
],
"additionalProperties": false
}
},
"additionalProperties": false
}
},
"required": [
"fields"
],
"additionalProperties": false
},
"children": {
"type": "array",
"items": {
"$ref": "#/definitions/pageBuildingBlock/properties/children/items"
},
"minItems": 1
}
},
"required": [
"blockType",
"formMetadata",
"children"
],
"additionalProperties": false
},
"formArrayBuildingBlock": {
"type": "object",
"properties": {
"blockType": {
"type": "string",
"const": "FORM_ARRAY"
},
"class": {
"$ref": "#/definitions/rootBuildingBlock/properties/class"
},
"condition": {
"$ref": "#/definitions/rootBuildingBlock/properties/condition"
},
"styles": {
"$ref": "#/definitions/rootBuildingBlock/properties/styles"
},
"arrayContainerClass": {
"type": "array",
"items": {
"type": "string"
}
},
"formFieldMetadata": {
"type": "object",
"properties": {
"key": {
"$ref": "#/definitions/pageBuildingBlock/properties/children/items/anyOf/9/properties/formFieldMetadata/properties/key"
},
"label": {
"$ref": "#/definitions/pageBuildingBlock/properties/children/items/anyOf/9/properties/formFieldMetadata/properties/label"
},
"context": {
"$ref": "#/definitions/pageBuildingBlock/properties/children/items/anyOf/9/properties/formFieldMetadata/properties/context"
}
},
"required": [
"key",
"label"
],
"additionalProperties": false,
"description": "Connects FormArray with control in parent form"
},
"formMetadata": {
"type": "object",
"properties": {
"fields": {
"type": "array",
"items": {
"$ref": "#/definitions/formMetadataField"
},
"minItems": 1,
"description": "Defines form field in form"
}
},
"required": [
"fields"
],
"additionalProperties": false,
"description": "Form metadata for array items"
},
"children": {
"type": "array",
"items": {
"$ref": "#/definitions/pageBuildingBlock/properties/children/items"
},
"minItems": 1
}
},
"required": [
"blockType",
"formFieldMetadata",
"formMetadata",
"children"
],
"additionalProperties": false
},
"formMetadataField": {
"type": "object",
"properties": {
"key": {
"type": "string"
},
"required": {
"type": "boolean"
},
"disabled": {
"type": "boolean"
},
"controlType": {
"type": "string",
"enum": [
"control",
"array",
"subform"
]
}
},
"required": [
"key",
"controlType"
],
"additionalProperties": false,
"description": "Defines form field in form"
},
"textInputBuildingBlock": {
"type": "object",
"properties": {
"blockType": {
"type": "string",
"const": "TEXT"
},
"class": {
"$ref": "#/definitions/rootBuildingBlock/properties/class"
},
"condition": {
"$ref": "#/definitions/rootBuildingBlock/properties/condition"
},
"styles": {
"$ref": "#/definitions/rootBuildingBlock/properties/styles"
},
"formFieldMetadata": {
"$ref": "#/definitions/pageBuildingBlock/properties/children/items/anyOf/9/properties/formFieldMetadata"
},
"suffixIcon": {
"$ref": "#/definitions/pageBuildingBlock/properties/children/items/anyOf/9/properties/suffixIcon"
}
},
"required": [
"blockType",
"formFieldMetadata"
],
"additionalProperties": false
},
"checkboxBuildingBlock": {
"type": "object",
"properties": {
"blockType": {
"type": "string",
"const": "CHECKBOX"
},
"class": {
"$ref": "#/definitions/rootBuildingBlock/properties/class"
},
"condition": {
"$ref": "#/definitions/rootBuildingBlock/properties/condition"
},
"styles": {
"$ref": "#/definitions/rootBuildingBlock/properties/styles"
},
"formFieldMetadata": {
"$ref": "#/definitions/pageBuildingBlock/properties/children/items/anyOf/9/properties/formFieldMetadata"
}
},
"required": [
"blockType",
"formFieldMetadata"
],
"additionalProperties": false
},
"selectBuildingBlock": {
"type": "object",
"properties": {
"blockType": {
"type": "string",
"const": "SELECT"
},
"class": {
"$ref": "#/definitions/rootBuildingBlock/properties/class"
},
"condition": {
"$ref": "#/definitions/rootBuildingBlock/properties/condition"
},
"styles": {
"$ref": "#/definitions/rootBuildingBlock/properties/styles"
},
"formFieldMetadata": {
"$ref": "#/definitions/pageBuildingBlock/properties/children/items/anyOf/9/properties/formFieldMetadata"
},
"datasource": {
"anyOf": [
{
"$ref": "#/definitions/pageBuildingBlock/properties/children/items/anyOf/12/properties/datasource/anyOf/0"
},
{
"$ref": "#/definitions/pageBuildingBlock/properties/children/items/anyOf/12/properties/datasource/anyOf/1"
},
{
"$ref": "#/definitions/pageBuildingBlock/properties/children/items/anyOf/12/properties/datasource/anyOf/2"
}
]
},
"labelMapper": {
"$ref": "#/definitions/pageBuildingBlock/properties/children/items/anyOf/12/properties/labelMapper"
},
"actions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"source": {
"type": "array",
"items": {
"anyOf": [
{
"$ref": "#/definitions/pageBuildingBlock/properties/children/items/anyOf/12/properties/datasource/anyOf/1"
},
{
"$ref": "#/definitions/pageBuildingBlock/properties/children/items/anyOf/12/properties/datasource/anyOf/2"
},
{
"$ref": "#/definitions/pageBuildingBlock/properties/children/items/anyOf/12/properties/actions/items/properties/source/items/anyOf/2"
}
]
},
"minItems": 1
},
"action": {
"type": "array",
"items": {
"$ref": "#/definitions/pageBuildingBlock/properties/children/items/anyOf/12/properties/actions/items/properties/action/items"
},
"minItems": 1
}
},
"required": [
"source",
"action"
],
"additionalProperties": false
}
}
},
"required": [
"blockType",
"formFieldMetadata",
"datasource"
],
"additionalProperties": false
},
"datePickerBuildingBlock": {
"type": "object",
"properties": {
"blockType": {
"type": "string",
"const": "DATE"
},
"class": {
"type": "array",
"items": {
"type": "string"
}
},
"condition": {
"$ref": "#/definitions/rootBuildingBlock/properties/condition"
},
"styles": {
"$ref": "#/definitions/rootBuildingBlock/properties/styles"
},
"type": {
"type": "string",
"enum": [
"date",
"datetime",
"month",
"time",
"year"
],
"description": "datetime if not present"
},
"formFieldMetadata": {
"$ref": "#/definitions/pageBuildingBlock/properties/children/items/anyOf/9/properties/formFieldMetadata"
}
},
"required": [
"blockType",
"formFieldMetadata"
],
"additionalProperties": false
},
"tableBuildingBlock": {
"type": "object",
"properties": {
"blockType": {
"type": "string",
"const": "TABLE"
},
"class": {
"$ref": "#/definitions/rootBuildingBlock/properties/class"
},
"condition": {
"$ref": "#/definitions/rootBuildingBlock/properties/condition"
},
"styles": {
"$ref": "#/definitions/rootBuildingBlock/properties/styles"
},
"tableMetadata": {
"type": "object",
"properties": {
"columns": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "TEXT"
},
"dataKey": {
"type": "string"
},
"displayName": {
"type": "string"
}
},
"required": [
"type",
"dataKey",
"displayName"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "NUMBER"
},
"dataKey": {
"type": "string"
},
"displayName": {
"type": "string"
}
},
"required": [
"type",
"dataKey",
"displayName"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "BOOLEAN"
},
"dataKey": {
"type": "string"
},
"displayName": {
"type": "string"
}
},
"required": [
"type",
"dataKey",
"displayName"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "ENUM"
},
"dataKey": {
"type": "string"
},
"displayName": {
"type": "string"
},
"mapValues": {
"type": "array",
"items": {
"type": "object",
"properties": {
"key": {
"type": "string"
},
"value": {
"type": "string"
}
},
"required": [
"key",
"value"
],
"additionalProperties": false
},
"minItems": 1
}
},
"required": [
"type",
"dataKey",
"displayName",
"mapValues"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "DATE"
},
"dataKey": {
"type": "string"
},
"displayName": {
"type": "string"
},
"format": {
"type": "string",
"enum": [
"DATE",
"DATETIME",
"TIMESTAMP"
]
}
},
"required": [
"type",
"dataKey",
"displayName",
"format"
],
"additionalProperties": false
}
]
},
"minItems": 1
},
"actions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"icon": {
"type": "string"
},
"isDisabled": {
"type": "string"
},
"onAction": {
"anyOf": [
{
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "REDIRECT"
},
"redirectUrl": {
"type": "string"
},
"queryParams": {
"type": "array",
"items": {
"type": "object",
"properties": {
"key": {
"type": "string"
},
"value": {
"type": "string"
},
"calculatedValue": {
"type": "string"
}
},
"required": [
"key"
],
"additionalProperties": false
},
"minItems": 0
},
"pathVariables": {
"type": "array",
"items": {
"type": "object",
"properties": {
"key": {
"type": "string"
},
"value": {
"type": "string"
},
"calculatedValue": {
"type": "string"
}
},
"required": [
"key"
],
"additionalProperties": false
}
},
"openInNewTab": {
"type": "boolean"
}
},
"required": [
"type",
"redirectUrl"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "CUSTOM"
},
"customAction": {
"type": "string"
}
},
"required": [
"type",
"customAction"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "MODAL"
},
"modalComponentName": {
"type": "string"
}
},
"required": [
"type",
"modalComponentName"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "API_CALL"
},
"requestUrl": {
"type": "string"
},
"method": {
"type": "string",
"enum": [
"GET",
"POST",
"PUT",
"DELETE"
]
},
"queryParams": {
"type": "array",
"items": {
"type": "object",
"properties": {
"key": {
"type": "string"
},
"value": {
"type": "string"
},
"calculatedValue": {
"type": "string"
}
},
"required": [
"key"
],
"additionalProperties": false
}
},
"pathVariables": {
"type": "array",
"items": {
"type": "object",
"properties": {
"key": {
"type": "string"
},
"value": {
"type": "string"
},
"calculatedValue": {
"type": "string"
}
},
"required": [
"key"
],
"additionalProperties": false
}
},
"requestBody": {
"type": "object",
"properties": {
"value": {},
"calculatedValue": {
"type": "string"
}
},
"additionalProperties": false
}
},
"required": [
"type",
"requestUrl",
"method"
],
"additionalProperties": false
}
]
}
},
"required": [
"name",
"icon",
"onAction"
],
"additionalProperties": false
},
"minItems": 0
},
"tableSource": {
"type": "object",
"properties": {
"isClientSide": {
"type": "boolean"
},
"rows": {
"type": "array",
"description": "Required only, if isClientSIde=true"
},
"url": {
"type": "string",
"description": "Required only, if isClientSide=false"
},
"method": {
"type": "string",
"enum": [
"GET",
"POST"
],
"description": "Required only, if isClientSide=false"
},
"isServerPaginationEnabled": {
"type": "boolean"
},
"dataEntrypoint": {
"type": "string"
},
"queryParams": {
"type": "array",
"items": {
"type": "object",
"properties": {
"key": {
"type": "string"
},
"value": {
"type": "string"
}
},
"required": [
"key",
"value"
],
"additionalProperties": false
}
}
},
"additionalProperties": false
}
},
"required": [
"columns",
"actions",
"tableSource"
],
"additionalProperties": false
}
},
"required": [
"blockType",
"tableMetadata"
],
"additionalProperties": false
},
"no-code-schema": {
"$ref": "#/definitions/pageBuildingBlock/properties/children/items"
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment