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 adding custom filters, configuring standard properties like status, and controlling marketplace visibility.
Data Product Status
You can customize the status property for data products and output ports.
Supported Properties
The following properties can be customized:
| Section | Property | Type | Description |
|---|---|---|---|
dataProduct.root | status | enum | Data product lifecycle status (proposed, in development, draft, active, deprecated, retired) |
dataProduct.outputPorts | status | enum | Output port lifecycle status |
Configuration
Customize the allowed status values for data products and control which statuses are visible in the marketplace:
dataProduct:
root:
standardProperties:
- property: status
enum:
- value: draft
label: Draft
- value: active
label: Active
- value: end-of-life
label: End of Life
| Property | Type | Description |
|---|---|---|
property | string | Must be "status" |
required | boolean | Whether the field is required |
enum | array | List of allowed status values (see enum formats below) |
Data Product Enum Formats
Enums for data product properties can be defined as simple strings or as objects with additional metadata:
Simple strings:
enum:
- draft
- active
- retired
Value-label pairs 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 true, the option is disabled in the UI |
Marketplace Visibility:
When showInMarketplace is false, data products with that status will be hidden from the marketplace view but still visible in the data product list.
Disabled Conditions:
Use disabledCondition to enforce business rules, such as preventing backwards status transitions. The condition is evaluated when the form is rendered:
- Reference current property value:
status == 'active' - Combine conditions:
status == 'active' || status == 'deprecated' - Common use case: Prevent moving back to earlier lifecycle stages
When a condition evaluates to true, the option is disabled (grayed out) in the dropdown. This is particularly useful for enforcing lifecycle workflows where statuses can only move forward.
Custom Filters
Custom filters appear in the data product list sidebar and allow users to filter data products 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 (e.g., subjectArea) |
Output Ports Configuration
Configure standard properties for output ports separately from the root data product:
dataProduct:
outputPorts:
standardProperties:
- property: status
enum:
- active
- deprecated
- retired
This allows you to have different status values for output ports than for the parent data product.
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: custom.dataOwner
title: Data Owner
type: text
required: true
description: The person responsible for this data contract
- property: custom.costCenter
title: Cost Center
type: text
placeholder: e.g., CC-12345
- property: custom.confidentialityLevel
title: Confidentiality Level
type: select
enum:
- public
- internal
- confidential
- restricted
default: internal
schema.properties:
customProperties:
- property: custom.piiHandling
title: PII Handling
type: select
enum:
- none
- masked
- encrypted
| 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:
root:
customProperties:
- property: custom.dataOwner
title: Data Owner
type: text
required: true
- property: custom.costCenter
title: Cost Center
type: text
- property: custom.dataClassification
title: Data Classification
type: select
enum:
- public
- internal
- confidential
customSections:
- section: governance
title: Governance
positionAfter: owner
customProperties:
- custom.dataOwner
- custom.costCenter
- custom.dataClassification
| 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:
customFilters:
- displayName: Subject Area
customField: subjectArea
- displayName: Business Domain
customField: businessDomain
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: end-of-life
label: End of Life
showInMarketplace: false
disabledCondition: "status == 'active' || status == 'deprecated'"
outputPorts:
standardProperties:
- property: status
enum:
- active
- deprecated
- retired
dataContract:
root:
standardProperties:
- property: status
enum:
- draft
- active
- retired
customProperties:
- property: custom.dataOwner
title: Data Owner
type: text
required: true
- property: custom.costCenter
title: Cost Center
type: text
customSections:
- section: governance
title: Governance
positionAfter: owner
customProperties:
- custom.dataOwner
- custom.costCenter
schema.properties:
standardProperties:
- property: classification
hidden: true
customProperties:
- property: custom.piiHandling
title: PII Handling
type: select
enum:
- none
- masked
- encrypted
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