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 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
PropertyTypeRequiredDescription
displayNamestringYesThe label shown in the UI for this filter
customFieldstringYesThe 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:

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

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