mirror of https://github.com/abpframework/abp.git
32 changed files with 0 additions and 1323 deletions
@ -1,23 +0,0 @@ |
|||||
{ |
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema", |
|
||||
"$id": "command-interceptor-descriptor.schema.json", |
|
||||
"title": "CommandInterceptorDescriptor", |
|
||||
"description": "Describes a command interceptor", |
|
||||
"type": "object", |
|
||||
"properties": { |
|
||||
"commandName": { |
|
||||
"type": "string", |
|
||||
"description": "Name of the command to intercept", |
|
||||
"enum": ["Create", "Update", "Delete"] |
|
||||
}, |
|
||||
"type": { |
|
||||
"$ref": "interceptor-type.schema.json" |
|
||||
}, |
|
||||
"javascript": { |
|
||||
"type": "string", |
|
||||
"description": "JavaScript code to execute" |
|
||||
} |
|
||||
}, |
|
||||
"required": ["commandName", "type", "javascript"], |
|
||||
"additionalProperties": false |
|
||||
} |
|
||||
@ -1,8 +0,0 @@ |
|||||
{ |
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema", |
|
||||
"$id": "dashboard-aggregation-type.schema.json", |
|
||||
"title": "DashboardAggregationType", |
|
||||
"description": "The type of aggregation to perform", |
|
||||
"type": "string", |
|
||||
"enum": ["count", "sum", "average", "min", "max", "percentFilled", "percentEmpty"] |
|
||||
} |
|
||||
@ -1,74 +0,0 @@ |
|||||
{ |
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema", |
|
||||
"$id": "dashboard-chart-descriptor.schema.json", |
|
||||
"title": "DashboardChartDescriptor", |
|
||||
"description": "Configuration for a chart visualization", |
|
||||
"type": "object", |
|
||||
"properties": { |
|
||||
"chartType": { |
|
||||
"$ref": "dashboard-chart-type.schema.json" |
|
||||
}, |
|
||||
"xAxis": { |
|
||||
"type": "object", |
|
||||
"properties": { |
|
||||
"property": { |
|
||||
"type": "string", |
|
||||
"description": "Property name to group by on the X-axis" |
|
||||
}, |
|
||||
"useForeignDisplay": { |
|
||||
"type": "boolean", |
|
||||
"description": "Show the FK display property instead of the raw ID", |
|
||||
"default": false |
|
||||
}, |
|
||||
"dateGrouping": { |
|
||||
"type": "string", |
|
||||
"enum": ["day", "week", "month", "quarter", "year"], |
|
||||
"description": "Grouping interval for DateTime properties" |
|
||||
} |
|
||||
}, |
|
||||
"required": ["property"], |
|
||||
"additionalProperties": false |
|
||||
}, |
|
||||
"yAxis": { |
|
||||
"type": "array", |
|
||||
"items": { |
|
||||
"type": "object", |
|
||||
"properties": { |
|
||||
"aggregation": { |
|
||||
"$ref": "dashboard-aggregation-type.schema.json" |
|
||||
}, |
|
||||
"property": { |
|
||||
"type": "string", |
|
||||
"description": "Property name for sum/average/min/max" |
|
||||
}, |
|
||||
"label": { |
|
||||
"type": "string", |
|
||||
"description": "Display label for this series" |
|
||||
}, |
|
||||
"color": { |
|
||||
"type": "string" |
|
||||
} |
|
||||
}, |
|
||||
"required": ["aggregation"], |
|
||||
"additionalProperties": false |
|
||||
}, |
|
||||
"minItems": 1 |
|
||||
}, |
|
||||
"size": { |
|
||||
"type": "string", |
|
||||
"enum": ["small", "medium", "large"], |
|
||||
"default": "medium" |
|
||||
}, |
|
||||
"barOrientation": { |
|
||||
"type": "string", |
|
||||
"enum": ["vertical", "horizontal"], |
|
||||
"default": "vertical" |
|
||||
}, |
|
||||
"showRecordCount": { |
|
||||
"type": "boolean", |
|
||||
"default": false |
|
||||
} |
|
||||
}, |
|
||||
"required": ["chartType", "xAxis", "yAxis"], |
|
||||
"additionalProperties": false |
|
||||
} |
|
||||
@ -1,8 +0,0 @@ |
|||||
{ |
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema", |
|
||||
"$id": "dashboard-chart-type.schema.json", |
|
||||
"title": "DashboardChartType", |
|
||||
"description": "The type of chart", |
|
||||
"type": "string", |
|
||||
"enum": ["bar", "line", "pie", "donut"] |
|
||||
} |
|
||||
@ -1,23 +0,0 @@ |
|||||
{ |
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema", |
|
||||
"$id": "dashboard-descriptor.schema.json", |
|
||||
"title": "DashboardDescriptor", |
|
||||
"description": "Describes a dashboard configuration with groups and visualizations", |
|
||||
"type": "object", |
|
||||
"properties": { |
|
||||
"description": { |
|
||||
"type": "string", |
|
||||
"description": "Description text shown below the dashboard title" |
|
||||
}, |
|
||||
"groups": { |
|
||||
"type": "array", |
|
||||
"description": "Dashboard groups, each bound to a single entity", |
|
||||
"items": { |
|
||||
"$ref": "dashboard-group-descriptor.schema.json" |
|
||||
}, |
|
||||
"minItems": 1 |
|
||||
} |
|
||||
}, |
|
||||
"required": ["groups"], |
|
||||
"additionalProperties": false |
|
||||
} |
|
||||
@ -1,38 +0,0 @@ |
|||||
{ |
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema", |
|
||||
"$id": "dashboard-filter-descriptor.schema.json", |
|
||||
"title": "DashboardFilterDescriptor", |
|
||||
"description": "Static filter applied to a dashboard group or visualization", |
|
||||
"type": "object", |
|
||||
"properties": { |
|
||||
"operator": { |
|
||||
"type": "string", |
|
||||
"enum": ["and", "or"], |
|
||||
"default": "and" |
|
||||
}, |
|
||||
"conditions": { |
|
||||
"type": "array", |
|
||||
"items": { |
|
||||
"type": "object", |
|
||||
"properties": { |
|
||||
"property": { |
|
||||
"type": "string", |
|
||||
"description": "Property name to filter on" |
|
||||
}, |
|
||||
"filterType": { |
|
||||
"type": "string", |
|
||||
"enum": ["equal", "notEqual", "contains", "greaterThan", "lessThan", "isNull", "isNotNull"], |
|
||||
"default": "equal" |
|
||||
}, |
|
||||
"value": { |
|
||||
"description": "Filter value" |
|
||||
} |
|
||||
}, |
|
||||
"required": ["property", "filterType"], |
|
||||
"additionalProperties": false |
|
||||
} |
|
||||
} |
|
||||
}, |
|
||||
"required": ["conditions"], |
|
||||
"additionalProperties": false |
|
||||
} |
|
||||
@ -1,54 +0,0 @@ |
|||||
{ |
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema", |
|
||||
"$id": "dashboard-group-descriptor.schema.json", |
|
||||
"title": "DashboardGroupDescriptor", |
|
||||
"description": "A dashboard group bound to a single entity, containing visualizations", |
|
||||
"type": "object", |
|
||||
"properties": { |
|
||||
"name": { |
|
||||
"type": "string", |
|
||||
"description": "Unique identifier for this group within the dashboard", |
|
||||
"minLength": 1 |
|
||||
}, |
|
||||
"title": { |
|
||||
"type": "string", |
|
||||
"description": "Display title for the group section" |
|
||||
}, |
|
||||
"entityName": { |
|
||||
"type": "string", |
|
||||
"description": "Full entity name this group sources data from", |
|
||||
"minLength": 1 |
|
||||
}, |
|
||||
"filter": { |
|
||||
"$ref": "dashboard-filter-descriptor.schema.json" |
|
||||
}, |
|
||||
"userFilters": { |
|
||||
"type": "array", |
|
||||
"description": "Properties exposed as dynamic filters for end users", |
|
||||
"items": { |
|
||||
"$ref": "dashboard-user-filter-descriptor.schema.json" |
|
||||
} |
|
||||
}, |
|
||||
"appearance": { |
|
||||
"type": "object", |
|
||||
"properties": { |
|
||||
"useBackground": { |
|
||||
"type": "boolean", |
|
||||
"description": "Show light background color for this group", |
|
||||
"default": false |
|
||||
} |
|
||||
}, |
|
||||
"additionalProperties": false |
|
||||
}, |
|
||||
"visualizations": { |
|
||||
"type": "array", |
|
||||
"description": "Visualizations within this group", |
|
||||
"items": { |
|
||||
"$ref": "dashboard-visualization-descriptor.schema.json" |
|
||||
}, |
|
||||
"minItems": 1 |
|
||||
} |
|
||||
}, |
|
||||
"required": ["name", "visualizations"], |
|
||||
"additionalProperties": false |
|
||||
} |
|
||||
@ -1,55 +0,0 @@ |
|||||
{ |
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema", |
|
||||
"$id": "dashboard-list-descriptor.schema.json", |
|
||||
"title": "DashboardListDescriptor", |
|
||||
"description": "Configuration for a list/table visualization", |
|
||||
"type": "object", |
|
||||
"properties": { |
|
||||
"fields": { |
|
||||
"type": "array", |
|
||||
"items": { "type": "string" }, |
|
||||
"description": "Property names to display as columns" |
|
||||
}, |
|
||||
"sortBy": { |
|
||||
"type": "object", |
|
||||
"properties": { |
|
||||
"property": { "type": "string" }, |
|
||||
"direction": { |
|
||||
"type": "string", |
|
||||
"enum": ["asc", "desc"], |
|
||||
"default": "asc" |
|
||||
} |
|
||||
}, |
|
||||
"required": ["property"], |
|
||||
"additionalProperties": false |
|
||||
}, |
|
||||
"maxRows": { |
|
||||
"type": "integer", |
|
||||
"minimum": 1, |
|
||||
"maximum": 50, |
|
||||
"default": 10 |
|
||||
}, |
|
||||
"rowHeight": { |
|
||||
"type": "string", |
|
||||
"enum": ["compact", "normal", "tall"], |
|
||||
"default": "compact" |
|
||||
}, |
|
||||
"colorBy": { |
|
||||
"type": "object", |
|
||||
"properties": { |
|
||||
"type": { |
|
||||
"type": "string", |
|
||||
"enum": ["property", "conditions"] |
|
||||
}, |
|
||||
"property": { |
|
||||
"type": "string", |
|
||||
"description": "Enum property name for automatic coloring" |
|
||||
} |
|
||||
}, |
|
||||
"required": ["type"], |
|
||||
"additionalProperties": false |
|
||||
} |
|
||||
}, |
|
||||
"required": ["fields"], |
|
||||
"additionalProperties": false |
|
||||
} |
|
||||
@ -1,48 +0,0 @@ |
|||||
{ |
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema", |
|
||||
"$id": "dashboard-number-descriptor.schema.json", |
|
||||
"title": "DashboardNumberDescriptor", |
|
||||
"description": "Configuration for a number/KPI visualization", |
|
||||
"type": "object", |
|
||||
"properties": { |
|
||||
"aggregation": { |
|
||||
"$ref": "dashboard-aggregation-type.schema.json" |
|
||||
}, |
|
||||
"aggregationProperty": { |
|
||||
"type": "string", |
|
||||
"description": "Property name for sum/average/min/max aggregations" |
|
||||
}, |
|
||||
"format": { |
|
||||
"type": "string", |
|
||||
"enum": ["number", "currency", "percentage"], |
|
||||
"default": "number" |
|
||||
}, |
|
||||
"color": { |
|
||||
"type": "string", |
|
||||
"description": "Display color name (blue, green, red, purple, orange, indigo, amber, teal)" |
|
||||
}, |
|
||||
"useBackgroundColor": { |
|
||||
"type": "boolean", |
|
||||
"default": false |
|
||||
}, |
|
||||
"conditionalColors": { |
|
||||
"type": "array", |
|
||||
"items": { |
|
||||
"type": "object", |
|
||||
"properties": { |
|
||||
"operator": { |
|
||||
"type": "string", |
|
||||
"enum": ["greaterThan", "lessThan", "equals", "between"] |
|
||||
}, |
|
||||
"value": { "type": "number" }, |
|
||||
"valueTo": { "type": "number" }, |
|
||||
"color": { "type": "string" } |
|
||||
}, |
|
||||
"required": ["operator", "value", "color"], |
|
||||
"additionalProperties": false |
|
||||
} |
|
||||
} |
|
||||
}, |
|
||||
"required": ["aggregation"], |
|
||||
"additionalProperties": false |
|
||||
} |
|
||||
@ -1,29 +0,0 @@ |
|||||
{ |
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema", |
|
||||
"$id": "dashboard-position-descriptor.schema.json", |
|
||||
"title": "DashboardPositionDescriptor", |
|
||||
"description": "Grid position for a visualization (4-column grid)", |
|
||||
"type": "object", |
|
||||
"properties": { |
|
||||
"row": { |
|
||||
"type": "integer", |
|
||||
"minimum": 0, |
|
||||
"description": "Row index (0-based)" |
|
||||
}, |
|
||||
"col": { |
|
||||
"type": "integer", |
|
||||
"minimum": 0, |
|
||||
"maximum": 3, |
|
||||
"description": "Column index (0-based, max 3)" |
|
||||
}, |
|
||||
"colSpan": { |
|
||||
"type": "integer", |
|
||||
"minimum": 1, |
|
||||
"maximum": 4, |
|
||||
"default": 1, |
|
||||
"description": "Number of columns this visualization spans" |
|
||||
} |
|
||||
}, |
|
||||
"required": ["row", "col", "colSpan"], |
|
||||
"additionalProperties": false |
|
||||
} |
|
||||
@ -1,21 +0,0 @@ |
|||||
{ |
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema", |
|
||||
"$id": "dashboard-user-filter-descriptor.schema.json", |
|
||||
"title": "DashboardUserFilterDescriptor", |
|
||||
"description": "An interactive filter exposed to end users as a dropdown or input", |
|
||||
"type": "object", |
|
||||
"properties": { |
|
||||
"property": { |
|
||||
"type": "string", |
|
||||
"description": "Property name to filter on", |
|
||||
"minLength": 1 |
|
||||
}, |
|
||||
"displayType": { |
|
||||
"type": "string", |
|
||||
"enum": ["dropdown", "dateRange", "text", "range"], |
|
||||
"default": "dropdown" |
|
||||
} |
|
||||
}, |
|
||||
"required": ["property"], |
|
||||
"additionalProperties": false |
|
||||
} |
|
||||
@ -1,70 +0,0 @@ |
|||||
{ |
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema", |
|
||||
"$id": "dashboard-visualization-descriptor.schema.json", |
|
||||
"title": "DashboardVisualizationDescriptor", |
|
||||
"description": "A single visualization element (number, chart, or list) within a dashboard group", |
|
||||
"type": "object", |
|
||||
"properties": { |
|
||||
"name": { |
|
||||
"type": "string", |
|
||||
"description": "Unique identifier within the group", |
|
||||
"minLength": 1 |
|
||||
}, |
|
||||
"type": { |
|
||||
"$ref": "dashboard-visualization-type.schema.json" |
|
||||
}, |
|
||||
"title": { |
|
||||
"type": "string", |
|
||||
"description": "Display title for the visualization" |
|
||||
}, |
|
||||
"description": { |
|
||||
"type": "string", |
|
||||
"description": "Optional description text" |
|
||||
}, |
|
||||
"position": { |
|
||||
"$ref": "dashboard-position-descriptor.schema.json" |
|
||||
}, |
|
||||
"filter": { |
|
||||
"$ref": "dashboard-filter-descriptor.schema.json" |
|
||||
}, |
|
||||
"showDescriptionAsTooltip": { |
|
||||
"type": "boolean", |
|
||||
"default": false |
|
||||
}, |
|
||||
"clickToSeeRecords": { |
|
||||
"type": "boolean", |
|
||||
"description": "Allow users to click to see underlying records", |
|
||||
"default": false |
|
||||
}, |
|
||||
"entityName": { |
|
||||
"type": "string", |
|
||||
"description": "Override entity for this visualization. If omitted, uses the group's entityName.", |
|
||||
"minLength": 1 |
|
||||
}, |
|
||||
"number": { |
|
||||
"$ref": "dashboard-number-descriptor.schema.json" |
|
||||
}, |
|
||||
"chart": { |
|
||||
"$ref": "dashboard-chart-descriptor.schema.json" |
|
||||
}, |
|
||||
"list": { |
|
||||
"$ref": "dashboard-list-descriptor.schema.json" |
|
||||
} |
|
||||
}, |
|
||||
"required": ["name", "type", "title", "position"], |
|
||||
"allOf": [ |
|
||||
{ |
|
||||
"if": { "properties": { "type": { "const": "number" } } }, |
|
||||
"then": { "required": ["number"] } |
|
||||
}, |
|
||||
{ |
|
||||
"if": { "properties": { "type": { "const": "chart" } } }, |
|
||||
"then": { "required": ["chart"] } |
|
||||
}, |
|
||||
{ |
|
||||
"if": { "properties": { "type": { "const": "list" } } }, |
|
||||
"then": { "required": ["list"] } |
|
||||
} |
|
||||
], |
|
||||
"additionalProperties": false |
|
||||
} |
|
||||
@ -1,8 +0,0 @@ |
|||||
{ |
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema", |
|
||||
"$id": "dashboard-visualization-type.schema.json", |
|
||||
"title": "DashboardVisualizationType", |
|
||||
"description": "The type of dashboard visualization", |
|
||||
"type": "string", |
|
||||
"enum": ["number", "chart", "list"] |
|
||||
} |
|
||||
@ -1,45 +0,0 @@ |
|||||
{ |
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema", |
|
||||
"$id": "urn:abp:lowcode:endpoint-descriptor", |
|
||||
"title": "Custom Endpoint Descriptor", |
|
||||
"description": "Defines a custom HTTP endpoint that executes JavaScript code", |
|
||||
"type": "object", |
|
||||
"properties": { |
|
||||
"name": { |
|
||||
"type": "string", |
|
||||
"description": "Unique identifier for the endpoint" |
|
||||
}, |
|
||||
"route": { |
|
||||
"type": "string", |
|
||||
"description": "URL route pattern (e.g., '/api/custom/products/{id}')" |
|
||||
}, |
|
||||
"method": { |
|
||||
"type": "string", |
|
||||
"description": "HTTP method", |
|
||||
"enum": ["GET", "POST", "PUT", "DELETE", "PATCH"], |
|
||||
"default": "GET" |
|
||||
}, |
|
||||
"javascript": { |
|
||||
"type": "string", |
|
||||
"description": "JavaScript code to execute. Has access to context object with request, db, currentUser, emailSender." |
|
||||
}, |
|
||||
"requireAuthentication": { |
|
||||
"type": "boolean", |
|
||||
"description": "Whether authentication is required", |
|
||||
"default": true |
|
||||
}, |
|
||||
"requiredPermissions": { |
|
||||
"type": "array", |
|
||||
"description": "Permission names required to access the endpoint", |
|
||||
"items": { |
|
||||
"type": "string" |
|
||||
} |
|
||||
}, |
|
||||
"description": { |
|
||||
"type": "string", |
|
||||
"description": "Optional description for documentation" |
|
||||
} |
|
||||
}, |
|
||||
"required": ["name", "route", "javascript"], |
|
||||
"additionalProperties": false |
|
||||
} |
|
||||
@ -1,42 +0,0 @@ |
|||||
{ |
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema", |
|
||||
"$id": "entity-descriptor.schema.json", |
|
||||
"title": "EntityDescriptor", |
|
||||
"description": "Describes an entity configuration", |
|
||||
"type": "object", |
|
||||
"properties": { |
|
||||
"name": { |
|
||||
"type": "string", |
|
||||
"description": "Full name of the entity (e.g., 'Namespace.EntityName')", |
|
||||
"minLength": 1 |
|
||||
}, |
|
||||
"displayProperty": { |
|
||||
"type": "string", |
|
||||
"description": "The property to be used as the display property for the entity" |
|
||||
}, |
|
||||
"parent": { |
|
||||
"type": "string", |
|
||||
"description": "Full name of the parent entity (e.g., 'Namespace.EntityName')", |
|
||||
"minLength": 1 |
|
||||
}, |
|
||||
"ui": { |
|
||||
"$ref": "entity-ui-descriptor.schema.json" |
|
||||
}, |
|
||||
"properties": { |
|
||||
"type": "array", |
|
||||
"description": "List of property descriptors", |
|
||||
"items": { |
|
||||
"$ref": "entity-property-descriptor.schema.json" |
|
||||
} |
|
||||
}, |
|
||||
"interceptors": { |
|
||||
"type": "array", |
|
||||
"description": "List of command interceptors", |
|
||||
"items": { |
|
||||
"$ref": "command-interceptor-descriptor.schema.json" |
|
||||
} |
|
||||
} |
|
||||
}, |
|
||||
"required": ["name"], |
|
||||
"additionalProperties": false |
|
||||
} |
|
||||
@ -1,58 +0,0 @@ |
|||||
{ |
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema", |
|
||||
"$id": "entity-property-descriptor.schema.json", |
|
||||
"title": "EntityPropertyDescriptor", |
|
||||
"description": "Describes a property configuration", |
|
||||
"type": "object", |
|
||||
"properties": { |
|
||||
"name": { |
|
||||
"type": "string", |
|
||||
"description": "Name of the property", |
|
||||
"minLength": 1 |
|
||||
}, |
|
||||
"type": { |
|
||||
"$ref": "entity-property-type.schema.json" |
|
||||
}, |
|
||||
"enumType": { |
|
||||
"type": "string", |
|
||||
"description": "Name of a JSON-defined enum (or full type name for code enums)" |
|
||||
}, |
|
||||
"allowSetByClients": { |
|
||||
"type": "boolean", |
|
||||
"description": "Indicates whether clients are allowed to set this property" |
|
||||
}, |
|
||||
"serverOnly": { |
|
||||
"type": "boolean", |
|
||||
"description": "When true, this property is completely hidden from clients (API responses and UI definitions). Use for sensitive data like passwords." |
|
||||
}, |
|
||||
"isMappedToDbField": { |
|
||||
"type": "boolean", |
|
||||
"description": "Indicates whether the property is mapped to a database field" |
|
||||
}, |
|
||||
"isUnique": { |
|
||||
"type": "boolean", |
|
||||
"description": "Indicates whether the property value must be unique across all entities" |
|
||||
}, |
|
||||
"isRequired": { |
|
||||
"type": "boolean", |
|
||||
"description": "When true, the property is required (not nullable). Affects DB column (NOT NULL), UI validation, and backend validation." |
|
||||
}, |
|
||||
"ui": { |
|
||||
"$ref": "entity-property-ui-descriptor.schema.json" |
|
||||
}, |
|
||||
"foreignKey": { |
|
||||
"$ref": "foreign-key-descriptor.schema.json" |
|
||||
}, |
|
||||
"validators": { |
|
||||
"type": "array", |
|
||||
"description": "Array of validators to apply to this property", |
|
||||
"items": { |
|
||||
"$ref": "validator-descriptor.schema.json" |
|
||||
} |
|
||||
} |
|
||||
}, |
|
||||
"required": [ |
|
||||
"name" |
|
||||
], |
|
||||
"additionalProperties": false |
|
||||
} |
|
||||
@ -1,25 +0,0 @@ |
|||||
{ |
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema", |
|
||||
"$id": "entity-property-type.schema.json", |
|
||||
"title": "EntityPropertyType", |
|
||||
"description": "Data type of the property", |
|
||||
"type": "string", |
|
||||
"enum": [ |
|
||||
"string", |
|
||||
"String", |
|
||||
"int", |
|
||||
"Int", |
|
||||
"long", |
|
||||
"Long", |
|
||||
"decimal", |
|
||||
"Decimal", |
|
||||
"dateTime", |
|
||||
"DateTime", |
|
||||
"boolean", |
|
||||
"Boolean", |
|
||||
"guid", |
|
||||
"Guid", |
|
||||
"enum", |
|
||||
"Enum" |
|
||||
] |
|
||||
} |
|
||||
@ -1,32 +0,0 @@ |
|||||
{ |
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema", |
|
||||
"$id": "entity-property-ui-descriptor.schema.json", |
|
||||
"title": "EntityPropertyUIDescriptor", |
|
||||
"description": "UI configuration for a property", |
|
||||
"type": "object", |
|
||||
"properties": { |
|
||||
"displayName": { |
|
||||
"type": "string", |
|
||||
"description": "Display name for the property in UI. Falls back to property name if not set." |
|
||||
}, |
|
||||
"isAvailableOnDataTable": { |
|
||||
"type": "boolean", |
|
||||
"description": "Whether the property is shown in the data table listing" |
|
||||
}, |
|
||||
"isAvailableOnDataTableFiltering": { |
|
||||
"type": "boolean", |
|
||||
"description": "Whether the property is available for filtering in the data table" |
|
||||
}, |
|
||||
"creationFormAvailability": { |
|
||||
"$ref": "entity-property-ui-form-availability.schema.json" |
|
||||
}, |
|
||||
"editingFormAvailability": { |
|
||||
"$ref": "entity-property-ui-form-availability.schema.json" |
|
||||
}, |
|
||||
"quickLookOrder": { |
|
||||
"type": "integer", |
|
||||
"description": "Order of the property in quick look views. Higher numbers appear first. Set to -1 to exclude from quick look. If no property has a value, first 5 properties by name are shown." |
|
||||
} |
|
||||
}, |
|
||||
"additionalProperties": false |
|
||||
} |
|
||||
@ -1,15 +0,0 @@ |
|||||
{ |
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema", |
|
||||
"$id": "entity-property-ui-form-availability.schema.json", |
|
||||
"title": "EntityPropertyUIFormAvailability", |
|
||||
"description": "Availability of the property on forms", |
|
||||
"type": "string", |
|
||||
"enum": [ |
|
||||
"Available", |
|
||||
"available", |
|
||||
"Hidden", |
|
||||
"hidden", |
|
||||
"NotAvailable", |
|
||||
"notAvailable" |
|
||||
] |
|
||||
} |
|
||||
@ -1,14 +0,0 @@ |
|||||
{ |
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema", |
|
||||
"$id": "entity-ui-descriptor.schema.json", |
|
||||
"title": "EntityUIDescriptor", |
|
||||
"description": "UI configuration for the entity", |
|
||||
"type": "object", |
|
||||
"properties": { |
|
||||
"pageTitle": { |
|
||||
"type": "string", |
|
||||
"description": "Title to display on the entity's page" |
|
||||
} |
|
||||
}, |
|
||||
"additionalProperties": false |
|
||||
} |
|
||||
@ -1,41 +0,0 @@ |
|||||
{ |
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema", |
|
||||
"$id": "enum-descriptor.schema.json", |
|
||||
"title": "EnumDescriptor", |
|
||||
"description": "Describes an enum definition for use in entity properties", |
|
||||
"type": "object", |
|
||||
"properties": { |
|
||||
"name": { |
|
||||
"type": "string", |
|
||||
"description": "Unique name for the enum", |
|
||||
"minLength": 1 |
|
||||
}, |
|
||||
"values": { |
|
||||
"type": "array", |
|
||||
"description": "List of enum values", |
|
||||
"items": { |
|
||||
"type": "object", |
|
||||
"properties": { |
|
||||
"name": { |
|
||||
"type": "string", |
|
||||
"description": "Display name of the enum value" |
|
||||
}, |
|
||||
"value": { |
|
||||
"type": "integer", |
|
||||
"description": "Integer value (auto-assigned if omitted)" |
|
||||
} |
|
||||
}, |
|
||||
"required": [ |
|
||||
"name" |
|
||||
], |
|
||||
"additionalProperties": false |
|
||||
}, |
|
||||
"minItems": 1 |
|
||||
} |
|
||||
}, |
|
||||
"required": [ |
|
||||
"name", |
|
||||
"values" |
|
||||
], |
|
||||
"additionalProperties": false |
|
||||
} |
|
||||
@ -1,45 +0,0 @@ |
|||||
{ |
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema", |
|
||||
"$id": "foreign-key-descriptor.schema.json", |
|
||||
"title": "ForeignKeyDescriptor", |
|
||||
"description": "Describes a foreign key relationship", |
|
||||
"type": "object", |
|
||||
"properties": { |
|
||||
"entityName": { |
|
||||
"type": "string", |
|
||||
"description": "Full name of the related entity", |
|
||||
"minLength": 1 |
|
||||
}, |
|
||||
"displayPropertyName": { |
|
||||
"type": "string", |
|
||||
"description": "Property name to display from the related entity", |
|
||||
"minLength": 1 |
|
||||
}, |
|
||||
"access": { |
|
||||
"type": "string", |
|
||||
"description": "Access level for managing this relation from the referenced entity side. When set to 'view' or 'edit', the referenced entity can see/manage items that reference it.", |
|
||||
"enum": ["none", "view", "edit"], |
|
||||
"default": "none" |
|
||||
}, |
|
||||
"dependsOn": { |
|
||||
"type": "object", |
|
||||
"description": "Cascading dependency: filter this FK's lookup by the value of another FK property on the same entity.", |
|
||||
"properties": { |
|
||||
"propertyName": { |
|
||||
"type": "string", |
|
||||
"description": "The property name on the owning entity whose value provides the filter (e.g. 'CountryId' on Author)", |
|
||||
"minLength": 1 |
|
||||
}, |
|
||||
"filterPropertyName": { |
|
||||
"type": "string", |
|
||||
"description": "The property name on the target (lookup) entity to filter by (e.g. 'CountryId' on City)", |
|
||||
"minLength": 1 |
|
||||
} |
|
||||
}, |
|
||||
"required": ["propertyName", "filterPropertyName"], |
|
||||
"additionalProperties": false |
|
||||
} |
|
||||
}, |
|
||||
"required": ["entityName"], |
|
||||
"additionalProperties": false |
|
||||
} |
|
||||
@ -1,38 +0,0 @@ |
|||||
{ |
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema", |
|
||||
"$id": "form-descriptor.schema.json", |
|
||||
"title": "FormDescriptor", |
|
||||
"description": "Describes a named form definition bound to an entity", |
|
||||
"type": "object", |
|
||||
"properties": { |
|
||||
"name": { |
|
||||
"type": "string", |
|
||||
"description": "Unique identifier for the form", |
|
||||
"minLength": 1 |
|
||||
}, |
|
||||
"entityName": { |
|
||||
"type": "string", |
|
||||
"description": "Full name of the entity this form is bound to (e.g., 'Namespace.EntityName')", |
|
||||
"minLength": 1 |
|
||||
}, |
|
||||
"fields": { |
|
||||
"type": "array", |
|
||||
"description": "Flat list of all field definitions in this form", |
|
||||
"items": { |
|
||||
"$ref": "form-field-descriptor.schema.json" |
|
||||
} |
|
||||
}, |
|
||||
"layout": { |
|
||||
"$ref": "form-layout-descriptor.schema.json" |
|
||||
}, |
|
||||
"rules": { |
|
||||
"type": "array", |
|
||||
"description": "Conditional rules for field/group visibility and enabled state", |
|
||||
"items": { |
|
||||
"$ref": "form-rule-descriptor.schema.json" |
|
||||
} |
|
||||
} |
|
||||
}, |
|
||||
"required": ["name", "entityName", "fields", "layout"], |
|
||||
"additionalProperties": false |
|
||||
} |
|
||||
@ -1,61 +0,0 @@ |
|||||
{ |
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema", |
|
||||
"$id": "form-field-descriptor.schema.json", |
|
||||
"title": "FormFieldDescriptor", |
|
||||
"description": "Describes a single field in a form", |
|
||||
"type": "object", |
|
||||
"properties": { |
|
||||
"id": { |
|
||||
"type": "string", |
|
||||
"description": "Unique identifier for this field within the form", |
|
||||
"minLength": 1 |
|
||||
}, |
|
||||
"label": { |
|
||||
"type": "string", |
|
||||
"description": "Display label for the field", |
|
||||
"minLength": 1 |
|
||||
}, |
|
||||
"type": { |
|
||||
"$ref": "form-field-type.schema.json" |
|
||||
}, |
|
||||
"binding": { |
|
||||
"type": ["string", "null"], |
|
||||
"description": "Entity property name to bind to, or null for unbound fields. Supports dotted paths like 'Parent.Name' for related entity display." |
|
||||
}, |
|
||||
"enumType": { |
|
||||
"type": "string", |
|
||||
"description": "Full enum type name for select fields" |
|
||||
}, |
|
||||
"defaultValue": { |
|
||||
"description": "Default value for the field" |
|
||||
}, |
|
||||
"placeholder": { |
|
||||
"type": "string", |
|
||||
"description": "Placeholder text for the input" |
|
||||
}, |
|
||||
"helpText": { |
|
||||
"type": "string", |
|
||||
"description": "Help text displayed below the field" |
|
||||
}, |
|
||||
"readOnly": { |
|
||||
"type": "boolean", |
|
||||
"description": "Whether the field is read-only", |
|
||||
"default": false |
|
||||
}, |
|
||||
"modeVisibility": { |
|
||||
"type": "string", |
|
||||
"enum": ["both", "createOnly", "editOnly"], |
|
||||
"description": "Controls in which form mode the field is visible", |
|
||||
"default": "both" |
|
||||
}, |
|
||||
"validations": { |
|
||||
"type": "array", |
|
||||
"description": "Form-level validation rules (override or extend entity-level validators)", |
|
||||
"items": { |
|
||||
"$ref": "validator-descriptor.schema.json" |
|
||||
} |
|
||||
} |
|
||||
}, |
|
||||
"required": ["id", "label", "type"], |
|
||||
"additionalProperties": false |
|
||||
} |
|
||||
@ -1,18 +0,0 @@ |
|||||
{ |
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema", |
|
||||
"$id": "form-field-type.schema.json", |
|
||||
"title": "FormFieldType", |
|
||||
"description": "Available field types for form fields", |
|
||||
"type": "string", |
|
||||
"enum": [ |
|
||||
"text", |
|
||||
"textarea", |
|
||||
"number", |
|
||||
"checkbox", |
|
||||
"date", |
|
||||
"select", |
|
||||
"lookup", |
|
||||
"guid", |
|
||||
"computed" |
|
||||
] |
|
||||
} |
|
||||
@ -1,105 +0,0 @@ |
|||||
{ |
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema", |
|
||||
"$id": "form-layout-descriptor.schema.json", |
|
||||
"title": "FormLayoutDescriptor", |
|
||||
"description": "Describes the visual layout of a form (tabs > groups > field placements)", |
|
||||
"type": "object", |
|
||||
"properties": { |
|
||||
"tabs": { |
|
||||
"type": "array", |
|
||||
"description": "Ordered list of tabs in the form", |
|
||||
"minItems": 1, |
|
||||
"items": { |
|
||||
"type": "object", |
|
||||
"properties": { |
|
||||
"id": { |
|
||||
"type": "string", |
|
||||
"description": "Unique identifier for this tab", |
|
||||
"minLength": 1 |
|
||||
}, |
|
||||
"title": { |
|
||||
"type": "string", |
|
||||
"description": "Display title for the tab", |
|
||||
"minLength": 1 |
|
||||
}, |
|
||||
"isDefault": { |
|
||||
"type": "boolean", |
|
||||
"description": "Whether this is the default tab (cannot be deleted, receives orphaned fields)", |
|
||||
"default": false |
|
||||
}, |
|
||||
"groups": { |
|
||||
"type": "array", |
|
||||
"description": "Ordered list of groups within this tab", |
|
||||
"minItems": 1, |
|
||||
"items": { |
|
||||
"type": "object", |
|
||||
"properties": { |
|
||||
"id": { |
|
||||
"type": "string", |
|
||||
"description": "Unique identifier for this group", |
|
||||
"minLength": 1 |
|
||||
}, |
|
||||
"title": { |
|
||||
"type": ["string", "null"], |
|
||||
"description": "Optional display title for the group" |
|
||||
}, |
|
||||
"isDefault": { |
|
||||
"type": "boolean", |
|
||||
"description": "Whether this is the default group (cannot be deleted, receives orphaned fields)", |
|
||||
"default": false |
|
||||
}, |
|
||||
"rows": { |
|
||||
"type": "array", |
|
||||
"description": "Ordered list of layout rows; each row contains one or more cells (fields placed side-by-side)", |
|
||||
"items": { |
|
||||
"type": "object", |
|
||||
"properties": { |
|
||||
"cells": { |
|
||||
"type": "array", |
|
||||
"description": "Fields placed side-by-side in this row (total colSpan should not exceed 4)", |
|
||||
"minItems": 1, |
|
||||
"items": { |
|
||||
"type": "object", |
|
||||
"properties": { |
|
||||
"fieldId": { |
|
||||
"type": "string", |
|
||||
"description": "Reference to a field id in the form's fields array", |
|
||||
"minLength": 1 |
|
||||
}, |
|
||||
"colSpan": { |
|
||||
"type": "integer", |
|
||||
"description": "Number of grid columns this field spans (1-4)", |
|
||||
"minimum": 1, |
|
||||
"maximum": 4, |
|
||||
"default": 4 |
|
||||
}, |
|
||||
"colStart": { |
|
||||
"type": "integer", |
|
||||
"description": "Starting grid column (1-4). Omit or null to auto-place after the previous cell.", |
|
||||
"minimum": 1, |
|
||||
"maximum": 4 |
|
||||
} |
|
||||
}, |
|
||||
"required": ["fieldId"], |
|
||||
"additionalProperties": false |
|
||||
} |
|
||||
} |
|
||||
}, |
|
||||
"required": ["cells"], |
|
||||
"additionalProperties": false |
|
||||
} |
|
||||
} |
|
||||
}, |
|
||||
"required": ["id", "rows"], |
|
||||
"additionalProperties": false |
|
||||
} |
|
||||
} |
|
||||
}, |
|
||||
"required": ["id", "title", "groups"], |
|
||||
"additionalProperties": false |
|
||||
} |
|
||||
} |
|
||||
}, |
|
||||
"required": ["tabs"], |
|
||||
"additionalProperties": false |
|
||||
} |
|
||||
@ -1,71 +0,0 @@ |
|||||
{ |
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema", |
|
||||
"$id": "form-rule-descriptor.schema.json", |
|
||||
"title": "FormRuleDescriptor", |
|
||||
"description": "Describes a conditional rule with one or more actions that execute when the condition is met", |
|
||||
"type": "object", |
|
||||
"properties": { |
|
||||
"id": { |
|
||||
"type": "string", |
|
||||
"description": "Unique identifier for this rule", |
|
||||
"minLength": 1 |
|
||||
}, |
|
||||
"name": { |
|
||||
"type": "string", |
|
||||
"description": "Human-readable name for this rule (optional)" |
|
||||
}, |
|
||||
"condition": { |
|
||||
"type": "object", |
|
||||
"description": "The condition that triggers this rule", |
|
||||
"properties": { |
|
||||
"fieldId": { |
|
||||
"type": "string", |
|
||||
"description": "The field whose value is evaluated", |
|
||||
"minLength": 1 |
|
||||
}, |
|
||||
"operator": { |
|
||||
"type": "string", |
|
||||
"enum": ["equals", "notEquals", "isEmpty", "isNotEmpty"], |
|
||||
"description": "Comparison operator" |
|
||||
}, |
|
||||
"value": { |
|
||||
"description": "The value to compare against (not used for isEmpty/isNotEmpty)" |
|
||||
} |
|
||||
}, |
|
||||
"required": ["fieldId", "operator"], |
|
||||
"additionalProperties": false |
|
||||
}, |
|
||||
"actions": { |
|
||||
"type": "array", |
|
||||
"description": "Actions to perform when condition is met (executed in order)", |
|
||||
"minItems": 1, |
|
||||
"items": { |
|
||||
"type": "object", |
|
||||
"properties": { |
|
||||
"type": { |
|
||||
"type": "string", |
|
||||
"enum": ["hide", "show", "disable", "enable", "setValue"], |
|
||||
"description": "The action type" |
|
||||
}, |
|
||||
"targetType": { |
|
||||
"type": "string", |
|
||||
"enum": ["field", "group"], |
|
||||
"description": "Whether the target is a field or a group" |
|
||||
}, |
|
||||
"targetId": { |
|
||||
"type": "string", |
|
||||
"description": "The id of the target field or group", |
|
||||
"minLength": 1 |
|
||||
}, |
|
||||
"value": { |
|
||||
"description": "The value to set (only for setValue action)" |
|
||||
} |
|
||||
}, |
|
||||
"required": ["type", "targetType", "targetId"], |
|
||||
"additionalProperties": false |
|
||||
} |
|
||||
} |
|
||||
}, |
|
||||
"required": ["id", "condition", "actions"], |
|
||||
"additionalProperties": false |
|
||||
} |
|
||||
@ -1,15 +0,0 @@ |
|||||
{ |
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema", |
|
||||
"$id": "interceptor-type.schema.json", |
|
||||
"title": "InterceptorType", |
|
||||
"description": "When the interceptor runs", |
|
||||
"type": "string", |
|
||||
"enum": [ |
|
||||
"Pre", |
|
||||
"pre", |
|
||||
"Post", |
|
||||
"post", |
|
||||
"Replace", |
|
||||
"replace" |
|
||||
] |
|
||||
} |
|
||||
@ -1,113 +0,0 @@ |
|||||
{ |
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema", |
|
||||
"$id": "page-descriptor.schema.json", |
|
||||
"title": "PageDescriptor", |
|
||||
"description": "Describes a UI page bound to an entity", |
|
||||
"type": "object", |
|
||||
"properties": { |
|
||||
"name": { |
|
||||
"type": "string", |
|
||||
"description": "Unique URL-safe identifier for the page", |
|
||||
"minLength": 1 |
|
||||
}, |
|
||||
"title": { |
|
||||
"type": "string", |
|
||||
"description": "Display title for the menu item and page header", |
|
||||
"minLength": 1 |
|
||||
}, |
|
||||
"icon": { |
|
||||
"type": "string", |
|
||||
"description": "FontAwesome icon class (e.g., 'fa-solid fa-users')" |
|
||||
}, |
|
||||
"type": { |
|
||||
"$ref": "page-type.schema.json" |
|
||||
}, |
|
||||
"entityName": { |
|
||||
"type": "string", |
|
||||
"description": "Full name of the root entity this page displays (e.g., 'Namespace.EntityName'). Not required for dashboard pages.", |
|
||||
"minLength": 1 |
|
||||
}, |
|
||||
"groupByProperty": { |
|
||||
"type": "string", |
|
||||
"description": "Property name to group entities by (required for kanban). Must reference an enum property.", |
|
||||
"minLength": 1 |
|
||||
}, |
|
||||
"order": { |
|
||||
"type": "integer", |
|
||||
"description": "Menu sort order (lower values appear first)", |
|
||||
"default": 0 |
|
||||
}, |
|
||||
"formName": { |
|
||||
"type": "string", |
|
||||
"description": "Name of the form to render (required when type is 'form')", |
|
||||
"minLength": 1 |
|
||||
}, |
|
||||
"createFormName": { |
|
||||
"type": "string", |
|
||||
"description": "Name of the form to use for creating entities (for dataGrid/kanban pages)" |
|
||||
}, |
|
||||
"editFormName": { |
|
||||
"type": "string", |
|
||||
"description": "Name of the form to use for editing entities (for dataGrid/kanban pages)" |
|
||||
}, |
|
||||
"createFormDisplay": { |
|
||||
"type": "string", |
|
||||
"enum": ["modal", "page"], |
|
||||
"description": "How to display the create form", |
|
||||
"default": "modal" |
|
||||
}, |
|
||||
"editFormDisplay": { |
|
||||
"type": "string", |
|
||||
"enum": ["modal", "page"], |
|
||||
"description": "How to display the edit form", |
|
||||
"default": "modal" |
|
||||
}, |
|
||||
"dashboard": { |
|
||||
"$ref": "dashboard-descriptor.schema.json" |
|
||||
} |
|
||||
}, |
|
||||
"required": ["name", "title", "type"], |
|
||||
"allOf": [ |
|
||||
{ |
|
||||
"if": { |
|
||||
"properties": { "type": { "const": "dataGrid" } } |
|
||||
}, |
|
||||
"then": { |
|
||||
"required": ["entityName"] |
|
||||
} |
|
||||
}, |
|
||||
{ |
|
||||
"if": { |
|
||||
"properties": { "type": { "const": "kanban" } } |
|
||||
}, |
|
||||
"then": { |
|
||||
"required": ["entityName", "groupByProperty"] |
|
||||
} |
|
||||
}, |
|
||||
{ |
|
||||
"if": { |
|
||||
"properties": { "type": { "const": "calendar" } } |
|
||||
}, |
|
||||
"then": { |
|
||||
"required": ["entityName"] |
|
||||
} |
|
||||
}, |
|
||||
{ |
|
||||
"if": { |
|
||||
"properties": { "type": { "const": "form" } } |
|
||||
}, |
|
||||
"then": { |
|
||||
"required": ["entityName", "formName"] |
|
||||
} |
|
||||
}, |
|
||||
{ |
|
||||
"if": { |
|
||||
"properties": { "type": { "const": "dashboard" } } |
|
||||
}, |
|
||||
"then": { |
|
||||
"required": ["dashboard"] |
|
||||
} |
|
||||
} |
|
||||
], |
|
||||
"additionalProperties": false |
|
||||
} |
|
||||
@ -1,8 +0,0 @@ |
|||||
{ |
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema", |
|
||||
"$id": "page-type.schema.json", |
|
||||
"title": "PageType", |
|
||||
"description": "The type of page to render", |
|
||||
"type": "string", |
|
||||
"enum": ["dataGrid", "kanban", "calendar", "form", "dashboard"] |
|
||||
} |
|
||||
@ -1,69 +0,0 @@ |
|||||
{ |
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema", |
|
||||
"$id": "validator-descriptor.schema.json", |
|
||||
"title": "ValidatorDescriptor", |
|
||||
"description": "A single validator in the validators array", |
|
||||
"type": "object", |
|
||||
"required": ["type"], |
|
||||
"properties": { |
|
||||
"type": { |
|
||||
"type": "string", |
|
||||
"description": "Type of validator", |
|
||||
"enum": [ |
|
||||
"required", |
|
||||
"minLength", |
|
||||
"maxLength", |
|
||||
"stringLength", |
|
||||
"min", |
|
||||
"minimum", |
|
||||
"max", |
|
||||
"maximum", |
|
||||
"range", |
|
||||
"pattern", |
|
||||
"regularExpression", |
|
||||
"email", |
|
||||
"emailAddress", |
|
||||
"phone", |
|
||||
"url", |
|
||||
"creditCard" |
|
||||
] |
|
||||
}, |
|
||||
"message": { |
|
||||
"type": "string", |
|
||||
"description": "Custom error message for this validator" |
|
||||
}, |
|
||||
"length": { |
|
||||
"type": "integer", |
|
||||
"description": "Length value for minLength, maxLength validators", |
|
||||
"minimum": 0 |
|
||||
}, |
|
||||
"minimumLength": { |
|
||||
"type": "integer", |
|
||||
"description": "Minimum length for stringLength validator", |
|
||||
"minimum": 0 |
|
||||
}, |
|
||||
"maximumLength": { |
|
||||
"type": "integer", |
|
||||
"description": "Maximum length for stringLength validator", |
|
||||
"minimum": 0 |
|
||||
}, |
|
||||
"value": { |
|
||||
"type": "number", |
|
||||
"description": "Value for min/minimum, max/maximum validators" |
|
||||
}, |
|
||||
"minimum": { |
|
||||
"type": "number", |
|
||||
"description": "Minimum value for range validator" |
|
||||
}, |
|
||||
"maximum": { |
|
||||
"type": "number", |
|
||||
"description": "Maximum value for range validator" |
|
||||
}, |
|
||||
"pattern": { |
|
||||
"type": "string", |
|
||||
"description": "Regular expression pattern for pattern/regularExpression validators" |
|
||||
} |
|
||||
}, |
|
||||
"additionalProperties": true |
|
||||
} |
|
||||
|
|
||||
@ -1,49 +0,0 @@ |
|||||
{ |
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema", |
|
||||
"$id": "model.schema.json", |
|
||||
"title": "ABP Low Code Model", |
|
||||
"description": "Schema for ABP Low Code model.json configuration file", |
|
||||
"type": "object", |
|
||||
"properties": { |
|
||||
"$schema": { |
|
||||
"type": "string", |
|
||||
"description": "Reference to the JSON schema" |
|
||||
}, |
|
||||
"enums": { |
|
||||
"type": "array", |
|
||||
"description": "List of enum definitions", |
|
||||
"items": { |
|
||||
"$ref": "definitions/enum-descriptor.schema.json" |
|
||||
} |
|
||||
}, |
|
||||
"entities": { |
|
||||
"type": "array", |
|
||||
"description": "List of entity descriptors", |
|
||||
"items": { |
|
||||
"$ref": "definitions/entity-descriptor.schema.json" |
|
||||
} |
|
||||
}, |
|
||||
"endpoints": { |
|
||||
"type": "array", |
|
||||
"description": "List of custom HTTP endpoints that execute JavaScript code", |
|
||||
"items": { |
|
||||
"$ref": "definitions/endpoint-descriptor.schema.json" |
|
||||
} |
|
||||
}, |
|
||||
"pages": { |
|
||||
"type": "array", |
|
||||
"description": "List of UI pages that appear as menu items and define how entities are displayed", |
|
||||
"items": { |
|
||||
"$ref": "definitions/page-descriptor.schema.json" |
|
||||
} |
|
||||
}, |
|
||||
"forms": { |
|
||||
"type": "array", |
|
||||
"description": "List of named form definitions for entity create/edit", |
|
||||
"items": { |
|
||||
"$ref": "definitions/form-descriptor.schema.json" |
|
||||
} |
|
||||
} |
|
||||
}, |
|
||||
"additionalProperties": false |
|
||||
} |
|
||||
Loading…
Reference in new issue