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:

  1. Navigate to Organization Settings (click on your organization name in the top navigation, then select "Settings")
  2. Go to the Customization page
  3. Edit the YAML configuration in the editor
  4. 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:

SectionPropertyTypeDescription
dataProduct.rootstatusenumData product lifecycle status (proposed, in development, draft, active, deprecated, retired)
dataProduct.outputPortsstatusenumOutput 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
PropertyTypeDescription
propertystringMust be "status"
requiredbooleanWhether the field is required
enumarrayList 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'"
PropertyTypeDescription
valuestringThe stored value (required)
labelstringDisplay label shown in the UI
showInMarketplacebooleanWhether data products with this status appear in the marketplace
disabledConditionstringConditional 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
PropertyTypeRequiredDescription
displayNamestringYesThe label shown in the UI for this filter
customFieldstringYesThe 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:

SectionDescriptionStorage Location
rootTop-level contract properties (id, version, status, etc.)customProperties
descriptionDescription section (title, description, purpose)description.customProperties
schemaSchema configurationschema[*].customProperties
schema.propertiesIndividual schema field propertiesschema[*].properties[*].customProperties
serversServer/connection configurationservers[*].customProperties
teamTeam informationteam.customProperties
team.membersTeam member detailsteam.members[*].customProperties
rolesRole definitionsroles[*].customProperties
supportSupport informationsupport[*].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
PropertyTypeDescription
propertystringName of the standard property to customize (required)
titlestringOverride the display title
descriptionstringOverride the description/help text
placeholderstringPlaceholder text for the input
requiredbooleanWhether the field is required
hiddenbooleanHide the field from the editor
enumstring[]Restrict values to a specific list
patternstringRegex pattern for validation
patternMessagestringError message when pattern validation fails
defaultanyDefault 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
PropertyTypeDescription
propertystringProperty path, typically prefixed with custom. (required)
titlestringDisplay title for the property (required)
typestringInput type (required). See supported types below
descriptionstringHelp text for the property
requiredbooleanWhether the field is required
defaultanyDefault value
placeholderstringPlaceholder text
conditionstringConditional display expression
enumstring[]Options for select/multiselect types
minimumnumberMinimum value for number/integer types
maximumnumberMaximum value for number/integer types
minLengthintegerMinimum length for text fields
maxLengthintegerMaximum length for text fields
patternstringRegex pattern for validation
patternMessagestringError message when pattern validation fails

Supported Types

TypeDescription
textSingle-line text input
textareaMulti-line text input
numberDecimal number input
integerWhole number input
selectDropdown selection (single value)
multiselectDropdown selection (multiple values)
arrayArray of text values
booleanCheckbox (true/false)
dateDate picker
datetimeDate and time picker
urlURL input with validation
emailEmail 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
PropertyTypeDescription
sectionstringUnique identifier for the section (required)
titlestringDisplay title for the section (required)
positionAfterstringReference section ID to position this section after
customPropertiesstring[]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
PropertyTypeDescription
headlinestringHeadline text for the info card
textstringDescription text explaining the marketplace
linkTextstringText for the call-to-action link button
linkUrlstringURL 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