Docs: Updating custom properties guide (#21252)

This commit is contained in:
Nick Acosta 2025-05-19 07:48:36 -07:00 committed by GitHub
parent c4698d4d75
commit b24c9f7ce3
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
15 changed files with 163 additions and 84 deletions

View File

@ -7,11 +7,11 @@ slug: /developers/how-to-add-custom-property-to-an-entity
This tutorial will create a custom property for a `table` entity.
Let's assume in your organization you want to keep track of table size, so to achieve that you will be creating a custom property for table entities and then providing a value to that property for each table.
A custom property can store a value for each entity, such as a table's size for each `table` entity.
### Step 1: Get the table entity type.
All OpenMetadata APIs are secured so make sure to add the proper headers.
All OpenMetadata APIs are secured so make sure to add the proper headers. API requests can be sent with your [JWT token](https://docs.open-metadata.org/latest/sdk#bot-token)
```commandline
curl -X GET http://localhost:8585/api/v1/metadata/types/name/table
@ -23,46 +23,47 @@ After the API call, you will get a response like this.
{
"id": "7f0b032f-cdc8-4573-abb0-22165dcd8e07",
"name": "table",
...
}
```
Now take the `id` from above response `7f0b032f-cdc8-4573-abb0-22165dcd8e07`.
Take note of the `id` that corresponds to `"name": "table"` from the above response... `7f0b032f-cdc8-4573-abb0-22165dcd8e07`.
### Step 2: Get the field types with `category=field`
> From UI OpenMetadata only supports three field types
> OpenMetadata's UI supports three field types:
>
> - String
> - Markdown
> - Integer
```commandline
curl -X GET http://localhost:8585/api/v1/metadata/types?category=field
curl -X GET http://localhost:8585/api/v1/metadata/types?category=field&limit=20
```
This API will return all the available field types, for this tutorial grab the id of the `string` field type. i.e `7531f881-c37c-4e39-9154-4bdf0802e05e`
This API call will return available field types, grab the id of the `"name": "string"` field type. i.e `7531f881-c37c-4e39-9154-4bdf0802e05e`
### Step 3: Make a PUT call to create the custom property for the table entity
### Step 3: Make a call to create the custom property for the table entity
Create a payload using the field type id from the previous step and send a PUT request to the table id from the first request to create the custom property for tables.
```commandline
curl -X PUT http://localhost:8585/api/v1/metadata/types/7f0b032f-cdc8-4573-abb0-22165dcd8e07
```
**Payload**
```json
{
curl -X PUT http://localhost:8585/api/v1/metadata/types/7f0b032f-cdc8-4573-abb0-22165dcd8e07 \ #table id from step 1
-H "Content-Type: application/json" \
-d '{
"description": "Property for tracking the tableSize.",
"name": "tableSize",
"propertyType": {
"id": "7531f881-c37c-4e39-9154-4bdf0802e05e",
"id": "7531f881-c37c-4e39-9154-4bdf0802e05e", #string field type id from step 2
"type": "type"
}
}
}'
```
### Step 4: Get the custom properties for the table entity
Verify the previous step with the following request. Look in `"customProperties"` for our new property.
```commandline
curl -X GET http://localhost:8585/api/v1/metadata/types/name/table?fields=customProperties
```
@ -91,22 +92,24 @@ curl -X GET http://localhost:8585/api/v1/metadata/types/name/table?fields=custom
}
```
So for all table entities, we have `tableSize` custom property available now, lets add the value for it for the `raw_product_catalog` table.
So for all table entities, we have a `tableSize` custom property available now, lets add the value for it for the `raw_product_catalog` table.
### Step 5: Add/Edit the value of the custom property for the entity.
All the custom properties value for the entity will be stored in the `extension` attribute.
Lets assume you have `raw_product_catalog` table and its id is `208598fc-bd5f-458c-bf98-59224e1620c7` so our PATCH API request will be like this.
Lets assume you have `raw_product_catalog` table, find it's id with the API call below.
```commandline
curl -X PATCH http://localhost:8585/api/v1/tables/208598fc-bd5f-458c-bf98-59224e1620c7 -H 'Content-Type: application/json-patch+json'
curl -X GET http://localhost:8585/api/v1/tables?limit=1000
```
For the first time if we want to add the value to the custom property then the payload should be like this.
If the table's id was `208598fc-bd5f-458c-bf98-59224e1620c7` and we are adding a value to the custom property for the first time, our PATCH API request will be like this.
```json
[
```commandline
curl -X PATCH http://localhost:8585/api/v1/tables/208598fc-bd5f-458c-bf98-59224e1620c7 \
--header 'Content-Type: application/json-patch+json' \
--data '[
{
"op": "add",
"path": "/extension",
@ -114,17 +117,32 @@ For the first time if we want to add the value to the custom property then the p
"tableSize": "50GB"
}
}
]
]'
```
When Changing the value of the custom property payload should be like this,
When Changing the value of the custom property the request should be like this,
```json
[
```commandline
curl -X PATCH http://localhost:8585/api/v1/tables/208598fc-bd5f-458c-bf98-59224e1620c7 \
--header 'Content-Type: application/json-patch+json' \
--data '[
{
"op": "replace",
"path": "/extension/tableSize",
"value": "60GB"
}
]
]'
```
When finished your new custom property should be present and updated for the `raw_product_catalog` table
{% image src="/images/v1.6/developers/custom-properties.png" alt="Custom property added to table" caption=" " /%}
### Step 5: Delete custom property.
To finish this tutorial, delete the newly created custom property, `tableSize` by going to [**Settings >> Custom Properties >> Tables**](http://localhost:8585/settings/customProperties/tables).
Click **Delete Property**, then **Confirm**.
{% image src="/images/v1.6/developers/delete-custom-properties.png" alt="Delete custom property added to table" caption=" " /%}

View File

@ -57,10 +57,18 @@ alt="Enter the Value for a Custom Property"
caption="Enter the Value for a Custom Property"
/%}
To delete a Custom Property for a particular asset, such as tables, navigate to **Settings >> Custom Properties >> Tables** and click on **Delete Property**
{% image
src="/images/v1.6/how-to-guides/discovery/custom4.png"
alt="Delete a Custom Property"
caption="Delete a Custom Property"
/%}
{%inlineCallout
color="violet-70"
bold="Overview of Announcements"
icon="MdArrowForward"
href="/how-to-guides/guide-for-data-users/announcements"%}
Learn more about the announcements in OpenMetadata
{%/inlineCallout%}
{%/inlineCallout%}

View File

@ -7,11 +7,11 @@ slug: /developers/how-to-add-custom-property-to-an-entity
This tutorial will create a custom property for a `table` entity.
Let's assume in your organization you want to keep track of table size, so to achieve that you will be creating a custom property for table entities and then providing a value to that property for each table.
A custom property can store a value for each entity, such as a table's size for each `table` entity.
### Step 1: Get the table entity type.
All OpenMetadata APIs are secured so make sure to add the proper headers.
All OpenMetadata APIs are secured so make sure to add the proper headers. API requests can be sent with your [JWT token](https://docs.open-metadata.org/latest/sdk#bot-token)
```commandline
curl -X GET http://localhost:8585/api/v1/metadata/types/name/table
@ -26,43 +26,43 @@ After the API call, you will get a response like this.
}
```
Now take the `id` from above response `7f0b032f-cdc8-4573-abb0-22165dcd8e07`.
Take note of the `id` that corresponds to `"name": "table"` from the above response... `7f0b032f-cdc8-4573-abb0-22165dcd8e07`.
### Step 2: Get the field types with `category=field`
> From UI OpenMetadata only supports three field types
> OpenMetadata's UI supports three field types:
>
> - String
> - Markdown
> - Integer
```commandline
curl -X GET http://localhost:8585/api/v1/metadata/types?category=field
curl -X GET http://localhost:8585/api/v1/metadata/types?category=field&limit=20
```
This API will return all the available field types, for this tutorial grab the id of the `string` field type. i.e `7531f881-c37c-4e39-9154-4bdf0802e05e`
This API call will return available field types, grab the id of the `"name": "string"` field type. i.e `7531f881-c37c-4e39-9154-4bdf0802e05e`
### Step 3: Make a PUT call to create the custom property for the table entity
### Step 3: Make a call to create the custom property for the table entity
Create a payload using the field type id from the previous step and send a PUT request to the table id from the first request to create the custom property for tables.
```commandline
curl -X PUT http://localhost:8585/api/v1/metadata/types/7f0b032f-cdc8-4573-abb0-22165dcd8e07
```
**Payload**
```json
{
curl -X PUT http://localhost:8585/api/v1/metadata/types/7f0b032f-cdc8-4573-abb0-22165dcd8e07 \ #table id from step 1
-H "Content-Type: application/json" \
-d '{
"description": "Property for tracking the tableSize.",
"name": "tableSize",
"propertyType": {
"id": "7531f881-c37c-4e39-9154-4bdf0802e05e",
"id": "7531f881-c37c-4e39-9154-4bdf0802e05e", #string field type id from step 2
"type": "type"
}
}
}'
```
### Step 4: Get the custom properties for the table entity
Verify the previous step with the following request. Look in `"customProperties"` for our new property.
```commandline
curl -X GET http://localhost:8585/api/v1/metadata/types/name/table?fields=customProperties
```
@ -91,22 +91,24 @@ curl -X GET http://localhost:8585/api/v1/metadata/types/name/table?fields=custom
}
```
So for all table entities, we have `tableSize` custom property available now, lets add the value for it for the `raw_product_catalog` table.
So for all table entities, we have a `tableSize` custom property available now, lets add the value for it for the `raw_product_catalog` table.
### Step 5: Add/Edit the value of the custom property for the entity.
All the custom properties value for the entity will be stored in the `extension` attribute.
Lets assume you have `raw_product_catalog` table and its id is `208598fc-bd5f-458c-bf98-59224e1620c7` so our PATCH API request will be like this.
Lets assume you have `raw_product_catalog` table, find it's id with the API call below.
```commandline
curl -X PATCH http://localhost:8585/api/v1/tables/208598fc-bd5f-458c-bf98-59224e1620c7 -H 'Content-Type: application/json-patch+json'
curl -X GET http://localhost:8585/api/v1/tables?limit=1000
```
For the first time if we want to add the value to the custom property then the payload should be like this.
If the table's id was `208598fc-bd5f-458c-bf98-59224e1620c7` and we are adding a value to the custom property for the first time, our PATCH API request will be like this.
```json
[
```commandline
curl -X PATCH http://localhost:8585/api/v1/tables/208598fc-bd5f-458c-bf98-59224e1620c7 \
--header 'Content-Type: application/json-patch+json' \
--data '[
{
"op": "add",
"path": "/extension",
@ -114,17 +116,32 @@ For the first time if we want to add the value to the custom property then the p
"tableSize": "50GB"
}
}
]
]'
```
When Changing the value of the custom property payload should be like this,
When Changing the value of the custom property the request should be like this,
```json
[
```commandline
curl -X PATCH http://localhost:8585/api/v1/tables/208598fc-bd5f-458c-bf98-59224e1620c7 \
--header 'Content-Type: application/json-patch+json' \
--data '[
{
"op": "replace",
"path": "/extension/tableSize",
"value": "60GB"
}
]
]'
```
When finished your new custom property should be present and updated for the `raw_product_catalog` table
{% image src="/images/v1.7/developers/custom-properties.png" alt="Custom property added to table" caption=" " /%}
### Step 5: Delete custom property.
To finish this tutorial, delete the newly created custom property, `tableSize` by going to [**Settings >> Custom Properties >> Tables**](http://localhost:8585/settings/customProperties/tables).
Click **Delete Property**, then **Confirm**.
{% image src="/images/v1.7/developers/delete-custom-properties.png" alt="Delete custom property added to table" caption=" " /%}

View File

@ -57,10 +57,19 @@ alt="Enter the Value for a Custom Property"
caption="Enter the Value for a Custom Property"
/%}
To delete a Custom Property for a particular asset, such as tables, navigate to **Settings >> Custom Properties >> Tables** and
click on **Delete Property**
{% image
src="/images/v1.7/how-to-guides/discovery/custom4.png"
alt="Delete a Custom Property"
caption="Delete a Custom Property"
/%}
{%inlineCallout
color="violet-70"
bold="Overview of Announcements"
icon="MdArrowForward"
href="/how-to-guides/guide-for-data-users/announcements"%}
Learn more about the announcements in OpenMetadata
{%/inlineCallout%}
{%/inlineCallout%}

View File

@ -7,11 +7,11 @@ slug: /developers/how-to-add-custom-property-to-an-entity
This tutorial will create a custom property for a `table` entity.
Let's assume in your organization you want to keep track of table size, so to achieve that you will be creating a custom property for table entities and then providing a value to that property for each table.
A custom property can store a value for each entity, such as a table's size for each `table` entity.
### Step 1: Get the table entity type.
All OpenMetadata APIs are secured so make sure to add the proper headers.
All OpenMetadata APIs are secured so make sure to add the proper headers. API requests can be sent with your [JWT token](https://docs.open-metadata.org/latest/sdk#bot-token)
```commandline
curl -X GET http://localhost:8585/api/v1/metadata/types/name/table
@ -23,46 +23,47 @@ After the API call, you will get a response like this.
{
"id": "7f0b032f-cdc8-4573-abb0-22165dcd8e07",
"name": "table",
...
}
```
Now take the `id` from above response `7f0b032f-cdc8-4573-abb0-22165dcd8e07`.
Take note of the `id` that corresponds to `"name": "table"` from the above response... `7f0b032f-cdc8-4573-abb0-22165dcd8e07`.
### Step 2: Get the field types with `category=field`
> From UI OpenMetadata only supports three field types
> OpenMetadata's UI supports three field types:
>
> - String
> - Markdown
> - Integer
```commandline
curl -X GET http://localhost:8585/api/v1/metadata/types?category=field
curl -X GET http://localhost:8585/api/v1/metadata/types?category=field&limit=20
```
This API will return all the available field types, for this tutorial grab the id of the `string` field type. i.e `7531f881-c37c-4e39-9154-4bdf0802e05e`
This API call will return available field types, grab the id of the `"name": "string"` field type. i.e `7531f881-c37c-4e39-9154-4bdf0802e05e`
### Step 3: Make a PUT call to create the custom property for the table entity
### Step 3: Make a call to create the custom property for the table entity
Create a payload using the field type id from the previous step and send a PUT request to the table id from the first request to create the custom property for tables.
```commandline
curl -X PUT http://localhost:8585/api/v1/metadata/types/7f0b032f-cdc8-4573-abb0-22165dcd8e07
```
**Payload**
```json
{
curl -X PUT http://localhost:8585/api/v1/metadata/types/7f0b032f-cdc8-4573-abb0-22165dcd8e07 \ #table id from step 1
-H "Content-Type: application/json" \
-d '{
"description": "Property for tracking the tableSize.",
"name": "tableSize",
"propertyType": {
"id": "7531f881-c37c-4e39-9154-4bdf0802e05e",
"id": "7531f881-c37c-4e39-9154-4bdf0802e05e", #string field type id from step 2
"type": "type"
}
}
}'
```
### Step 4: Get the custom properties for the table entity
Verify the previous step with the following request. Look in `"customProperties"` for our new property.
```commandline
curl -X GET http://localhost:8585/api/v1/metadata/types/name/table?fields=customProperties
```
@ -91,22 +92,24 @@ curl -X GET http://localhost:8585/api/v1/metadata/types/name/table?fields=custom
}
```
So for all table entities, we have `tableSize` custom property available now, lets add the value for it for the `raw_product_catalog` table.
So for all table entities, we have a `tableSize` custom property available now, lets add the value for it for the `raw_product_catalog` table.
### Step 5: Add/Edit the value of the custom property for the entity.
All the custom properties value for the entity will be stored in the `extension` attribute.
Lets assume you have `raw_product_catalog` table and its id is `208598fc-bd5f-458c-bf98-59224e1620c7` so our PATCH API request will be like this.
Lets assume you have `raw_product_catalog` table, find it's id with the API call below.
```commandline
curl -X PATCH http://localhost:8585/api/v1/tables/208598fc-bd5f-458c-bf98-59224e1620c7 -H 'Content-Type: application/json-patch+json'
curl -X GET http://localhost:8585/api/v1/tables?limit=1000
```
For the first time if we want to add the value to the custom property then the payload should be like this.
If the table's id was `208598fc-bd5f-458c-bf98-59224e1620c7` and we are adding a value to the custom property for the first time, our PATCH API request will be like this.
```json
[
```commandline
curl -X PATCH http://localhost:8585/api/v1/tables/208598fc-bd5f-458c-bf98-59224e1620c7 \
--header 'Content-Type: application/json-patch+json' \
--data '[
{
"op": "add",
"path": "/extension",
@ -114,17 +117,32 @@ For the first time if we want to add the value to the custom property then the p
"tableSize": "50GB"
}
}
]
]'
```
When Changing the value of the custom property payload should be like this,
When Changing the value of the custom property the request should be like this,
```json
[
```commandline
curl -X PATCH http://localhost:8585/api/v1/tables/208598fc-bd5f-458c-bf98-59224e1620c7 \
--header 'Content-Type: application/json-patch+json' \
--data '[
{
"op": "replace",
"path": "/extension/tableSize",
"value": "60GB"
}
]
]'
```
When finished your new custom property should be present and updated for the `raw_product_catalog` table
{% image src="/images/v1.8/developers/custom-properties.png" alt="Custom property added to table" caption=" " /%}
### Step 5: Delete custom property.
To finish this tutorial, delete the newly created custom property, `tableSize` by going to [**Settings >> Custom Properties >> Tables**](http://localhost:8585/settings/customProperties/tables).
Click **Delete Property**, then **Confirm**.
{% image src="/images/v1.8/developers/delete-custom-properties.png" alt="Delete custom property added to table" caption=" " /%}

View File

@ -57,10 +57,19 @@ alt="Enter the Value for a Custom Property"
caption="Enter the Value for a Custom Property"
/%}
To delete a Custom Property for a particular asset, such as tables, navigate to **Settings >> Custom Properties >> Tables** and
click on **Delete Property**
{% image
src="/images/v1.8/how-to-guides/discovery/custom4.png"
alt="Delete a Custom Property"
caption="Delete a Custom Property"
/%}
{%inlineCallout
color="violet-70"
bold="Overview of Announcements"
icon="MdArrowForward"
href="/how-to-guides/guide-for-data-users/announcements"%}
Learn more about the announcements in OpenMetadata
{%/inlineCallout%}
{%/inlineCallout%}

Binary file not shown.

After

Width:  |  Height:  |  Size: 215 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 195 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 394 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 215 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 195 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 394 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 215 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 195 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 394 KiB