Skip to content

Data Product Types

Every data product carries a type (source-aligned, aggregate, application, data consumer, ...). An organization owner configures the types under Settings → Customization → Data Product Types. The built-in types can be enabled or disabled, given an icon, ordered, and one of them is the default; their wording (label, description, examples) is fixed in every language. On top of them, the owner adds types of the organization's own, such as "Derived Data Product", with a label, description and examples per language (with translations, and AI translation when an AI model is configured). One switch decides how a type of your own behaves: Can have output ports. Checked, it is a data product that publishes data through output ports and contracts; unchecked, it only consumes data, like the built-in data consumer. The switch locks once data products use the type. The application and AI agent behaviors exist only as built-in types.

A type's id is stored on every data product of that type (the type custom property of ODPS documents) and is used by filters, saved filters and the API. It never changes once created, so relabelling a type does not touch any data product.

Behaviors

The behavior of a type decides everything the platform does differently per type; it never depends on the id, so you can add types with ids of your own.

BehaviorOutput ports and contractsData Product ScoreCreation formMarketplace start page
data-productYes, can provide contractsPort and contract rules applyData productListed by default
applicationYes, can provide contractsPort and contract rules applyApplicationHidden by default
data-consumerNoPort and contract rules skippedData consumerHidden by default
ai-agentNoPort and contract rules skipped, AI context rule appliesAI agentHidden by default

The two Power BI types (powerbi-report, powerbi-semanticmodel) are system types: they are created by the asset import, are not offered when adding a data product, and cannot be edited.

Fields of a type

FieldDescription
IdLowercase letters, digits and hyphens ([a-z0-9][a-z0-9-]{0,63}). Immutable once created.
Can have output portsChecked, the type is a data product; unchecked, a data consumer. Fixed for built-in types (they keep their built-in behavior), locked while data products use the type.
LabelFixed for the built-in types (the platform's wording in every language). For a type of your own: the value in the organization's default language plus optional translations, as in the semantic concept editor (with AI translation when an AI model is configured). A language without a translation falls back to the default language.
DescriptionOne line under the label in the type picker. Fixed for built-in types; optional and translatable for your own types.
ExamplesAn italic line of examples, e.g. "Examples: reports, dashboards". Fixed for built-in types; optional and translatable for your own types.
IconPicked from the same icon set as a data product's icon. Empty uses the behavior's default icon.
EnabledOffered when adding a data product or changing its type. A disabled type is still resolved for the data products that carry it and still appears in filters.
Marketplace start pageWhether data products of this type are listed on the marketplace start page.
DefaultPreselected in the type picker when adding a data product, and given to data products created by importing assets (other than Power BI semantic models and reports, which become the system types). Exactly one enabled type is the default.

The list order is the order of the type picker, the type filters and the group headers on team pages.

Built-in types

An organization without own definitions runs on the built-in list: source-aligned (default), aggregate, consumer-aligned, application, dataconsumer and ai-agent, translated into every supported language. The settings page shows this list; editing, reordering or adding a type copies it into the organization's own definitions. Restore defaults discards them again.

Data products whose type id has no definition (imported values, legacy ids) keep working: the id is shown as its own label, it behaves as a data product, and the settings page lists it as Used, not defined with a Define action that turns it into a type of your own.

Disabling a type

Clear Enabled on a type to take it out of the type picker and the edit dropdown. Existing data products keep it, and filters still list it. At least one type stays enabled. A type of your own can be deleted while no data product uses it; built-in types can only be disabled.

API

The same list is available at /api/settings/dataproduct-types as JSON or YAML, for organizations that keep configuration in git. GET returns the effective list, including the system types, a read-only behavior (data-product, application, data-consumer, ai-agent, ...) and a builtIn flag while the organization has no own definitions. PUT replaces the whole list; system types in the body are ignored, and labels, descriptions, examples and outputPorts sent for a built-in id are ignored as well.

dataProductTypes:
  - id: source-aligned
    labels:
      en: Source-aligned Data Product
      de: Quellenorientiertes Data Product
    descriptions:
      en: Minimally transformed data, close to the operational source.
    default: true
  - id: derived
    labels:
      en: Derived Data Product
      de: Abgeleitetes Data Product
    descriptions:
      en: Calculated, aggregated or integrated from other data products.
    examples:
      en: "Examples: KPIs, balances from transactions, joined customer views"
  - id: external-report
    outputPorts: false
    labels:
      en: External Report
    icon: report
    showOnMarketplaceHome: false
  - id: dataconsumer
    enabled: false
curl -H "x-api-key: $API_KEY" -H "Accept: application/yaml" https://app.entropy-data.com/api/settings/dataproduct-types
curl -X PUT -H "x-api-key: $API_KEY" -H "Content-Type: application/yaml" --data-binary @dataproduct-types.yaml https://app.entropy-data.com/api/settings/dataproduct-types

A list that fails validation (duplicate ids, two defaults, no enabled type, a change of outputPorts on a type in use) is rejected with 422 and nothing is written.

Migrating from the customization YAML

Before this page existed, the type standard property under dataProduct.root in the customization YAML could restrict and relabel the type dropdown with an enum. That enum is deprecated. While an organization has no own type definitions it still applies: its values are the enabled types, in enum order, and the first one is the default. Its labels only apply to ids that are not built in. As soon as the organization saves a type on this page, the page's definitions win; remove the enum then.