Customizations
Customizations allow you to tailor Entropy Data to your organization's specific needs. You can customize data product filters, the data contract editor, and the marketplace info card.
Customizations are configured per organization using a YAML configuration.
Editing Customizations
To edit your organization's customizations:
- Navigate to Organization Settings (click on your organization name in the top navigation, then select "Settings")
- Go to the Customization page
- Edit the YAML configuration in the editor
- Save your changes
Configuration Schema
The customization configuration supports three main sections:
- dataProduct: Customize data product filters, status values, and marketplace visibility
- dataContract: Customize the data contract editor
- marketplace: Customize the marketplace page
Data Product Customizations
You can customize data products by overriding standard properties, adding custom properties and custom sections, configuring custom filters, and controlling marketplace visibility.
Configurable Sections
The following sections of the data product can be customized:
| Section | Description |
|---|---|
root | Top-level data product properties (name, status, type, domain, etc.) |
description | ODPS description sub-fields (purpose, usage, limitations) |
outputPorts | Output port properties |
Standard Properties
Override the behavior of built-in data product properties:
dataProduct:
root:
standardProperties:
- property: status
required: true
enum:
- value: draft
label: Draft
showInMarketplace: false
- value: active
label: Active
showInMarketplace: true
- property: tenant
hidden: true
description:
standardProperties:
- property: purpose
required: true
description: Describe the business purpose of this data product
| Property | Type | Description |
|---|---|---|
property | string | Name of the standard property to customize (required) |
title | string | Override the display title |
description | string | Override the description/help text |
placeholder | string | Placeholder text for the input |
required | boolean | Whether the field is required |
hidden | boolean | Hide the field from the form |
readOnly | boolean | Make the field read-only |
enum | array | Restrict values to a specific list |
pattern | string | Regex pattern for validation |
patternMessage | string | Error message when pattern validation fails |
default | any | Default value |
Available Standard Properties
dataProduct.root:
| Property | Supports |
|---|---|
id | readOnly, description, placeholder |
name | readOnly, description, placeholder |
status | required, readOnly, enum (with marketplace visibility and disabled conditions) |
type | hidden, required, readOnly, title, description, enum |
domain | readOnly |
description | readOnly, description, placeholder |
tags | readOnly |
tenant | hidden, readOnly |
dataProduct.description (ODPS only):
| Property | Supports |
|---|---|
purpose | required, readOnly, description |
usage | readOnly, description |
limitations | readOnly, description |
dataProduct.outputPorts:
| Property | Supports |
|---|---|
status | enum |
Data Product Status Enum
The status property supports extended enum formats with marketplace visibility and conditional disabling:
enum:
- value: draft
label: Draft
showInMarketplace: false
- value: active
label: Active
showInMarketplace: true
- value: deprecated
label: Deprecated
showInMarketplace: true
disabledCondition: "status == 'active'"
- value: end-of-life
label: End of Life
showInMarketplace: false
disabledCondition: "status == 'active' || status == 'deprecated'"
| Property | Type | Description |
|---|---|---|
value | string | The stored value (required) |
label | string | Display label shown in the UI |
showInMarketplace | boolean | Whether data products with this status appear in the marketplace |
disabledCondition | string | Conditional expression to disable this option |
When showInMarketplace is false, data products with that status are hidden from the marketplace but still visible in the data product list.
Use disabledCondition to enforce lifecycle workflows (e.g., preventing backwards status transitions). When the condition evaluates to true, the option is grayed out in the dropdown.
Custom Properties
Add custom properties to capture organization-specific metadata on data products. Custom properties can be defined at different section levels (root, description, team, team.members, outputPorts).
dataProduct:
root:
customProperties:
- property: riskAssessment
title: Risk Assessment
description: The risk assessment according to internal policies.
type: select
enum:
- low risk
- medium risk
- high risk
- property: dataResidency
title: Data Residency
description: The region where the data is stored and processed.
type: select
enum:
- EU
- US
- APAC
- Global
- Other
| Property | Type | Description |
|---|---|---|
property | string | Property name (required) |
title | string | Display title (required) |
type | string | Input type (required). See supported types below |
description | string | Help text for the property |
required | boolean | Whether the field is required |
default | any | Default value |
placeholder | string | Placeholder text |
condition | string | Conditional display expression |
enum | array | Options for select/multiselect types |
minimum | number | Minimum value for number/integer types |
maximum | number | Maximum value for number/integer types |
minLength | integer | Minimum length for text fields |
maxLength | integer | Maximum length for text fields |
pattern | string | Regex pattern for validation |
patternMessage | string | Error message when pattern validation fails |
Supported Types
| Type | Description |
|---|---|
text | Single-line text input |
textarea | Multi-line text input |
number | Decimal number input |
integer | Whole number input |
select | Dropdown selection (single value) |
multiselect | Dropdown selection (multiple values) |
boolean | Checkbox (true/false) |
date | Date picker |
datetime | Date and time picker |
url | URL input with validation |
email | Email input with validation |
Conditional Display
Use the condition property to show or hide fields based on other property values:
customProperties:
- property: retentionPeriod
title: Retention Period
type: text
condition: "status == 'active'"
Supported operators: ==, !=, &&, ||, contains, null checks.
Custom Sections
Organize custom properties into dedicated sections on the data product detail and edit pages:
dataProduct:
root:
customProperties:
- property: riskAssessment
title: Risk Assessment
description: The risk assessment according to internal policies.
type: select
enum:
- low risk
- medium risk
- high risk
- property: dataResidency
title: Data Residency
description: The region where the data is stored and processed.
type: select
enum:
- EU
- US
- APAC
- Global
- Other
customSections:
- section: compliance
title: Compliance
description: Example of custom properties
positionAfter: description
expanded: true
customProperties:
- riskAssessment
- dataResidency
| Property | Type | Description |
|---|---|---|
section | string | Unique identifier for the section (required) |
title | string | Display title for the section (required) |
description | string | Optional description shown below the title |
positionAfter | string | Where to place the section (see positions below) |
expanded | boolean | Whether the section is expanded by default |
customProperties | string[] | List of custom property names to include |
Section Positions
The positionAfter value controls where the section appears on the page:
| Value | Placed after |
|---|---|
overview / fundamentals | The overview/fundamentals card |
description | The description section |
team | The team section |
outputPorts | The output ports section |
inputPorts | The input ports section |
Custom properties not assigned to any section are rendered inline within their parent card.
Custom Filters
Custom filters appear in the data product list sidebar and allow filtering by custom field values.
dataProduct:
customFilters:
- displayName: Subject Area
customField: subjectArea
- displayName: Business Unit
customField: businessUnit
| Property | Type | Required | Description |
|---|---|---|---|
displayName | string | Yes | The label shown in the UI for this filter |
customField | string | Yes | The name of the custom field to filter on |
Data Contract Editor Customizations
You can customize the data contract editor to show, hide, or modify standard properties, add custom properties, and organize them into custom sections.
For detailed documentation on all customization options, see the Data Contract Editor Customization documentation.
Configurable Sections
The following sections of the data contract editor can be customized:
| Section | Description | Storage Location |
|---|---|---|
root | Top-level contract properties (id, version, status, etc.) | customProperties |
description | Description section (title, description, purpose) | description.customProperties |
schema | Schema configuration | schema[*].customProperties |
schema.properties | Individual schema field properties | schema[*].properties[*].customProperties |
servers | Server/connection configuration | servers[*].customProperties |
team | Team information | team.customProperties |
team.members | Team member details | team.members[*].customProperties |
roles | Role definitions | roles[*].customProperties |
support | Support information | support[*].customProperties |
Standard Properties
You can customize standard (built-in) properties of the data contract by overriding their behavior:
dataContract:
root:
standardProperties:
- property: status
enum:
- draft
- active
- retired
- property: version
required: true
pattern: "^\\d+\\.\\d+\\.\\d+$"
patternMessage: Version must follow semantic versioning (e.g., 1.0.0)
schema.properties:
standardProperties:
- property: classification
hidden: true
| Property | Type | Description |
|---|---|---|
property | string | Name of the standard property to customize (required) |
title | string | Override the display title |
description | string | Override the description/help text |
placeholder | string | Placeholder text for the input |
required | boolean | Whether the field is required |
hidden | boolean | Hide the field from the editor |
enum | string[] | Restrict values to a specific list |
pattern | string | Regex pattern for validation |
patternMessage | string | Error message when pattern validation fails |
default | any | Default value for new contracts |
Custom Properties
Add custom properties to capture organization-specific metadata:
dataContract:
root:
customProperties:
- property: legalEntity
title: Legal Entity
description: This is an example for a custom property
type: text
schema.properties:
customProperties:
- property: businessCriticality
title: Business Criticality
type: select
enum:
- low
- medium
- high
- critical
- property: businessImpact
title: Business Impact
type: textarea
description: Impact if data is unavailable, inaccurate, or delayed (financial, operational, legal, reputational)
placeholder: e.g., Revenue loss of $10k/hour if unavailable
condition: team.name == 'sales-team'
| Property | Type | Description |
|---|---|---|
property | string | Property path, typically prefixed with custom. (required) |
title | string | Display title for the property (required) |
type | string | Input type (required). See supported types below |
description | string | Help text for the property |
required | boolean | Whether the field is required |
default | any | Default value |
placeholder | string | Placeholder text |
condition | string | Conditional display expression |
enum | string[] | Options for select/multiselect types |
minimum | number | Minimum value for number/integer types |
maximum | number | Maximum value for number/integer types |
minLength | integer | Minimum length for text fields |
maxLength | integer | Maximum length for text fields |
pattern | string | Regex pattern for validation |
patternMessage | string | Error message when pattern validation fails |
Supported Types
| Type | Description |
|---|---|
text | Single-line text input |
textarea | Multi-line text input |
number | Decimal number input |
integer | Whole number input |
select | Dropdown selection (single value) |
multiselect | Dropdown selection (multiple values) |
array | Array of text values |
boolean | Checkbox (true/false) |
date | Date picker |
datetime | Date and time picker |
url | URL input with validation |
email | Email input with validation |
Enum Formats
Enums can be defined as simple strings or as value-label pairs for more control over display:
Simple strings:
enum:
- public
- internal
- confidential
Value-label pairs:
enum:
- value: pub
label: Public
- value: int
label: Internal
- value: conf
label: Confidential
Conditional Display
Use the condition property to show or hide fields based on other property values:
customProperties:
- property: custom.retentionPeriod
title: Retention Period
type: text
condition: "status == 'active'"
Condition syntax:
- Reference root properties directly:
status == 'active' - Reference other levels with prefix:
schema.type,schema.properties.piiCategory - Supported operators:
==,!=,&&,|| - Array checks:
tags contains 'gdpr' - Null checks:
tenant != null
Custom Sections
Organize custom properties into dedicated sections in the editor:
dataContract:
schema.properties:
customProperties:
- property: businessCriticality
title: Business Criticality
type: select
enum:
- low
- medium
- high
- critical
- property: businessImpact
title: Business Impact
type: textarea
description: Impact if data is unavailable, inaccurate, or delayed
condition: team.name == 'sales-team'
customSections:
- section: business-criticality
title: Business Criticality
customProperties:
- businessCriticality
- businessImpact
| Property | Type | Description |
|---|---|---|
section | string | Unique identifier for the section (required) |
title | string | Display title for the section (required) |
positionAfter | string | Reference section ID to position this section after |
customProperties | string[] | List of custom property names to include in this section |
Marketplace Customizations
Customize the info card displayed on the marketplace page to provide organization-specific guidance.
marketplace:
infoCard:
headline: Our Data Catalog
text: Welcome to our internal data catalog. Find and request access to data products.
linkText: Learn More
linkUrl: https://wiki.example.com/data-catalog
| Property | Type | Description |
|---|---|---|
headline | string | Headline text for the info card |
text | string | Description text explaining the marketplace |
linkText | string | Text for the call-to-action link button |
linkUrl | string | URL for the link button (must be a valid URL) |
Complete Example
Here is a complete example combining all customization options:
dataProduct:
root:
standardProperties:
- property: status
required: true
enum:
- value: draft
label: Draft
showInMarketplace: false
- value: active
label: Active
showInMarketplace: true
- value: deprecated
label: Deprecated
showInMarketplace: true
disabledCondition: "status == 'active'"
- value: retired
label: Retired
showInMarketplace: false
disabledCondition: "status == 'active' || status == 'deprecated'"
- property: tenant
hidden: true
customProperties:
- property: riskAssessment
title: Risk Assessment
description: The risk assessment according to internal policies.
type: select
enum:
- low risk
- medium risk
- high risk
- property: dataResidency
title: Data Residency
description: The region where the data is stored and processed.
type: select
enum:
- EU
- US
- APAC
- Global
- Other
customSections:
- section: compliance
title: Compliance
description: Example of custom properties
positionAfter: description
expanded: true
customProperties:
- riskAssessment
- dataResidency
description:
standardProperties:
- property: purpose
required: true
outputPorts:
standardProperties:
- property: status
enum:
- active
- deprecated
- retired
dataContract:
root:
customProperties:
- property: legalEntity
title: Legal Entity
description: This is an example for a custom property
type: text
schema.properties:
customProperties:
- property: businessCriticality
title: Business Criticality
type: select
enum:
- low
- medium
- high
- critical
- property: businessImpact
title: Business Impact
type: textarea
description: Impact if data is unavailable, inaccurate, or delayed (financial, operational, legal, reputational)
placeholder: e.g., Revenue loss of $10k/hour if unavailable
condition: team.name == 'sales-team'
customSections:
- section: business-criticality
title: Business Criticality
customProperties:
- businessCriticality
- businessImpact
marketplace:
infoCard:
headline: Data Marketplace
text: Discover and request access to data products across the organization.
linkText: Documentation
linkUrl: https://docs.example.com/data-catalog