Custom Properties¶
Extending entities with custom metadata properties.
Overview¶
Custom properties allow organizations to extend OpenMetadata schemas with additional fields specific to their needs.
Custom Property Definition¶
Schema: type/customProperty.json
Define a custom property:
{
"name": "dataClassification",
"description": "Internal data classification level",
"propertyType": {
"name": "enum",
"values": ["Public", "Internal", "Confidential", "Restricted"]
}
}
Property Types¶
String¶
Integer¶
Enum¶
{
"name": "criticality",
"propertyType": {
"name": "enum",
"values": ["Low", "Medium", "High", "Critical"]
}
}
Markdown¶
Entity Reference¶
Using Custom Properties¶
On Tables¶
{
"name": "customers",
"customProperties": {
"dataClassification": "Confidential",
"projectCode": "CRM-2024",
"retentionDays": 2555
}
}
On Dashboards¶
{
"name": "sales_dashboard",
"customProperties": {
"refreshFrequency": "hourly",
"businessUnit": "Sales"
}
}
Entity Extension¶
Add custom properties to entity types:
{
"entityType": "table",
"customProperties": [
{
"name": "costCenter",
"propertyType": {"name": "string"}
},
{
"name": "dataRetentionPolicy",
"propertyType": {"name": "enum", "values": ["30days", "90days", "1year", "indefinite"]}
}
]
}
Best Practices¶
- Naming: Use camelCase
- Types: Choose appropriate types
- Validation: Use enums for controlled values
- Documentation: Always add descriptions
- Consistency: Use same properties across similar entities
- Migration: Plan for property evolution