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 list filters
- dataContract: Customize the data contract editor
- marketplace: Customize the marketplace page
Data Product Customizations
You can add custom filters to the data product list based on custom fields defined on your data products.
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) |
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
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