Sachin Chaurasiya 55cd180ffa
feat(#16208): custom properties for Dashboard Data Models (#16628)
* feat(#16208): custom properties for Dashboard Data Models

* chore: update the padding for custom properties tab content

* Backend : Support extension field for dashboardDataModel

* ui: update ui to fetch the extension data

* feat: show custom properties on right panel

* chore: add custom properties in version page

* test: add playwright test for data model custom properties

* test: remove duplicate checks

---------

Co-authored-by: sonikashah <sonikashah94@gmail.com>
2024-06-13 20:51:47 +05:30

91 lines
3.1 KiB
JSON

{
"$id": "https://open-metadata.org/schema/api/data/createDashboardDataModel.json",
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "CreateDashboardDataModelRequest",
"description": "Create Dashboard Data Model entity request.",
"type": "object",
"javaType": "org.openmetadata.schema.api.data.CreateDashboardDataModel",
"javaInterfaces": ["org.openmetadata.schema.CreateEntity"],
"properties": {
"name": {
"description": "Name that identifies this data model.",
"$ref": "../../type/basic.json#/definitions/entityName"
},
"displayName": {
"description": "Display Name that identifies this data model. It could be title or label from the source services.",
"type": "string"
},
"description": {
"description": "Description of the data model instance. What it has and how to use it.",
"$ref": "../../type/basic.json#/definitions/markdown"
},
"tags": {
"description": "Tags for this data model.",
"type": "array",
"items": {
"$ref": "../../type/tagLabel.json"
},
"default": null
},
"dataProducts" : {
"description": "List of fully qualified names of data products this entity is part of.",
"type": "array",
"items" : {
"$ref" : "../../type/basic.json#/definitions/fullyQualifiedEntityName"
}
},
"owner": {
"description": "Owner of this data model.",
"$ref": "../../type/entityReference.json"
},
"service": {
"description": "Link to the data model service where this data model is hosted in.",
"$ref": "../../type/basic.json#/definitions/fullyQualifiedEntityName"
},
"serviceType": {
"description": "Service type where this data model is hosted in.",
"$ref": "../../entity/services/dashboardService.json#/definitions/dashboardServiceType"
},
"dataModelType": {
"$ref": "../../entity/data/dashboardDataModel.json#/definitions/dataModelType"
},
"sql": {
"description": "In case the Data Model is based on a SQL query.",
"$ref": "../../type/basic.json#/definitions/sqlQuery",
"default": null
},
"columns": {
"description": "Columns from the data model.",
"type": "array",
"items": {
"$ref": "../../entity/data/table.json#/definitions/column"
},
"default": null
},
"project": {
"description": "Name of the project / workspace / collection in which the dataModel is contained",
"type": "string"
},
"domain" : {
"description": "Fully qualified name of the domain the Dashboard Data Model belongs to.",
"type": "string"
},
"lifeCycle": {
"description": "Life Cycle of the entity",
"$ref": "../../type/lifeCycle.json"
},
"sourceHash": {
"description": "Source hash of the entity",
"type": "string",
"minLength": 1,
"maxLength": 32
},
"extension": {
"description": "Entity extension data with custom attributes added to the entity.",
"$ref": "../../type/basic.json#/definitions/entityExtension"
}
},
"required": ["name", "service", "dataModelType", "columns"],
"additionalProperties": false
}