Data Products¶
Introduction to Data Products and Data Contracts¶
A data product is a reusable, active, and standardized data asset designed to deliver measurable value to its users, whether internal or external, by applying the rigorous principles of product thinking and management. It includes one or more data artifacts, such as datasets, models, and pipelines. It is enriched with metadata, including governance policies, data quality rules, data contracts, and, where applicable, a software bill of materials (SBOM) to document its dependencies and components. Ownership of a data product is aligned to a specific domain or use case, ensuring accountability, stewardship, and continuous evolution throughout its lifecycle.
Adhering to FAIR principles (findable, accessible, interoperable, and reusable), a data product is designed to be discoverable, scalable, reusable, and aligned with both business and regulatory standards, driving innovation and efficiency in modern data ecosystems.
A data product includes the following components:
-
Input ports: An input port is a standardized interface through which a data product receives data from upstream sources. It defines how external data enters the data product. Input ports enable the controlled, traceable ingestion of data, facilitating lineage tracking and quality checks before the data is transformed and served to consumers.
-
Output ports: An output port is a standardized interface through which a data product exposes its data to consumers. It defines how the data can be accessed (for example, through APIs, SQL tables, or event streams), along with its format, schema, and protocols. Output ports ensure that data products are interoperable, discoverable, and easy for other teams or systems to consume, while enforcing access controls and contracts. Each output port is associated with a data contract.
-
Internal components: Internal components include datasets and processes required to produce the output ports but not intended for end-users. These components are not represented in the current version of the platform.
A data contract is a formal agreement between a data product owner (also known as a producer) and its consumers. It defines the structure, meaning, quality expectations, and access terms of the exposed data. A data contract includes a schema definition and can also include data quality rules, Service Level Agreements (SLAs), ownership, rights, and other related information. Data contracts ensure reliable data consumption, prevent breaking changes, and promote accountability between domains.
Data Products in the Actian Data Intelligence Platform¶
The Actian Data Intelligence Platform supports data products and data contracts natively. It enables organizations to manage, govern, and maximize the value of their data assets as products:
- Define your data products and data contracts with YAML descriptors that include all relevant information for discovery and consumption (for example, name, description, terms and conditions, and custom properties).
- Synchronize data products and their data contracts from your CI/CD pipelines by using the dedicated Data Product API.
- Manage data products and their components in the Studio to enrich their documentation and publish them to the enterprise marketplace.
- Search, find, and understand data products using the graph-powered search engine and an optimized layout dedicated to the discovery of these new item types.
- Request access to data products directly in Zeenea Explorer and manage these requests in Zeenea Studio to allow an efficient and governed consumption of the data products.
The following are the key benefits of implementing data products in the Actian Data Intelligence Platform:
- Enhance Data Discovery & Accessibility
Data products are supported as native items, enabling the modeling of simple and complex data products. You can define one or more output ports for each data product to create more use-case-oriented data that meets business needs.
A dedicated and optimized search experience, powered by the knowledge graph, enables users to efficiently discover, understand, and consume data products.
- Governance by Design
By supporting data contracts, the platform encourages organizations in their efforts to shift left metadata management. Organizations can design data contracts early and integrate them into their CI/CD pipelines to ensure that business expectations from the data contract are met when deploying new data. Synchronizing data contracts ensures that metadata remains up to date.
- Scale Data Management and Governance
Together with the federated catalog, each domain can design and manage its own data products.
The platform breaks data silos and supports a data mesh approach by allowing domains to publish their data products into the Enterprise Marketplace.
Create Data Products with the API¶
Define and Upload Data Products¶
The Actian Data Intelligence Platform leverages these standards managed by Bitol (a Linux Foundation project):
These YAML files can be uploaded to the platform through a dedicated REST API. This API can be called from external tools or the CI/CD pipelines, for example, from a GitHub Action, as illustrated in the following diagram:

The list of output ports is defined in the data product descriptor. Each output port must have a name and must be linked to a data contract ID (UUID) with its version.
outputPorts:
- name: rawtransactions
version: 1.0.0
contractId: c2798941-1b7e-4b03-9e0d-955b1a872b32
Before calling the API, bundle the data product and all referenced data contract YAML files into a single ZIP file so that the platform can process them together.
Manage Output Ports¶
Output Port Lifecycle¶
When updating a data product through the API, newly defined output port versions replace existing ones. An output port is updated only if it references the same data contract ID and version.
Output ports are read-only items in the catalog. Their documentation is fully managed through the associated data contracts, which act as the single source of truth.
Output ports that are not included in the last version of the data product descriptor are automatically deleted.
Link Output Ports to Imported Datasets¶
The data contract must define both the model of the output port (the schema section in ODCS) and the location of the related datasets (the servers section in ODCS).
schema:
- name: Transactions
physicalName: transactions
description: Real-time transaction data.
properties:
- name: Transaction ID
physicalName: transaction_id
required: true
logicalType: string
description: Unique transaction identifier
- name: Account ID
physicalName: acct_id
required: true
logicalType: string
description: Account Id
When uploading a data product or importing a dataset from a scanner, the platform uses the name and physicalName and the servers section to automatically link output ports with their physical implementations. Only connectors built on the public SDK V2 are supported.
Following is an example of a servers section for Snowflake:
servers:
- id: snowflake-server-pse
server: Snowflake server
type: snowflake
host: ABCDEFGH-IJ12345.snowflakecomputing.com
port: 8080
account: IJ12345
database: DATABASE_1
warehouse: SMALL_COMPUTE_WH
schema: SCHEMA_1
You can link the same dataset to multiple output ports and to different data products.
Note
Linked datasets do not need to belong to the same catalog.
After a link is created, the related dataset appears in the Datasets tab of the output port in the Studio and Explorer.

If not all datasets defined in the data contract are linked to the output port, a banner indicates that the data contract is not fully implemented.

Manage Actian-Specific Attributes for Data Products and Output Ports¶
Manage Properties¶
You can use the data product and data contract YAML files to create or update properties of data products and output ports in the Data Intelligence Platform.
Properties must be defined using the customProperties syntax in ODPS/ODCS, with the property name zeeneaProperties.
The platform automatically determines the property type based on the syntax of the file:
- Short text: If defined as a key/value.
- Tag: If defined as an array.
- Date: If defined using a predefined format (ISO 8601).
- URL: If defined as a valid URL.
For example:
customProperties:
- property: zeeneaProperties
value:
Sensitivity: Very High
- property: zeeneaProperties
value:
Compliance: [BSA, FinCEN]
- property: zeeneaProperties
value:
Documentation: https://www.acme.com
- property: zeeneaProperties
value:
Approval date: 2025-10-27
The example above creates the following properties:
- A Short-text property
Sensitivityand apply the valueVery Highto the item. - A Tag property
Complianceand apply the valuesBSAandFinCENto the item. - A URL property
Documentationand apply the valuehttps://www.acme.comto the item. - A Date property
Approval dateand apply the value2025-10-27to the item.
Properties are managed as source documentation, similar to source properties of a dataset. They are not mapped to the data product template.
Properties created through the data product API can be used as filters or displayed in the catalog as any other source property, depending on their type, by customizing their search and display options in the Catalog Design section of the Studio.
Manage Contacts¶
You can use the data product and data contract YAML files to create or update contacts on data products and output ports in the Data Intelligence Platform using the ODPS/ODCS syntax for teams.
For example:
team:
members:
- username: ceastwood@acme.com
name: Clint Eastwood
role: data-owner
- username: daustin@acme.com
name: David Austin
role: data-steward
The example above creates contacts with a name, email address, and source responsibilities such as data-owner and data-steward. The role value must be an existing source responsibility code. If the code does not exist, the platform creates it automatically using the provided value.
If the provided code corresponds to a user-defined responsibility code (created from the Catalog Design section), the contact is not added, and the API returns a non-blocking error.
Note
The source responsibility display name can be updated in the Catalog Design section.
When team members are specified, the platform attempts to match an existing contact by email (using the username field).
If the username is not a valid email address, then the platform attempts to match an existing contact by name (using the name field, and then the username field as a last fallback).
If no existing contact matches the specified contact, the platform creates a new contact.
Manage Links with Glossary Items¶
You can use the data product YAML files to create implementation links between glossary items and data products.
Links must be defined using the customProperties syntax in ODPS/ODCS, with the property name zeeneaGlossaryRefs.
customProperties:
- property: zeeneaGlossaryRefs
value:
- "business-terms/Transaction Type"
- “business-terms/Account Type”
- “business-terms/Account ID”
- “business-terms/Customer ID
Ensure that an implementation rule is configured at the metamodel level between the Data product item type and the targeted Glossary item type in the Catalog Design section. Otherwise, the link will not be created.
Note
Links between glossary items and output ports are not supported.
Manage Links with Custom Items¶
You can use the data product YAML files to create links between custom items and data products.
Links must be defined using the customProperties syntax in ODPS/ODCS, with the property name zeeneaCustomItemRefs.
customProperties:
- property: zeeneaCustomItemRefs
value:
- regulation/Bank-Secrecy-Act
- regulation/USA-PATRIOT-Act
- regulation/FinCEN
- "data-domain/Finance | Application"
Note
Links between custom items and output ports are not supported in this version.
Manage Access Request Policies for Output Ports¶
You can use the data contract YAML files to apply an access request policy to the output port. This allows data consumers to request access to the output port.
Access request policies must be defined using the customProperties syntax in ODPS/ODCS, with the property name accessRequestPolicy.
customProperties:
- property: zeeneaProperties
value:
accessRequestPolicy: data-product-access-request-policy
The specified access request policy must already exist in the platform.
Define the Catalog of a Data Product and its Output Ports¶
If multiple catalogs are defined, you can specify the targeted catalog for your data products and their output ports in the payload of the data product API request.
You can also move a data product from its original catalog to another using the Studio. All output ports are automatically moved to the same catalog. Linked datasets are not moved automatically.
ODPS and ODCS Mapping Details in the Actian Data Intelligence Platform¶
The platform supports ODPS version 1.0.0 and ODCS version 3.1.0.
Uploaded YAML files must specify the ODPS or ODCS version used and comply with the standard version syntax and contain all required attributes as defined by the standard version. Files that do not meet these requirements are not processed.
ODPS Mapping¶
The following table shows how ODPS sections are mapped with the platform internal concepts and which sections are required:
| Section | Required | Mapping |
|---|---|---|
| Fundamentals | Yes | Partially mapped |
| Product Information | Yes | Partially mapped |
| Management Ports | No | Not mapped |
| Support and Communication Channels | No | Not mapped |
| Team | No | Partially mapped |
| Ancillary Objects: Custom Properties | No | Partially mapped |
| Ancillary Objects: Authoritative Definitions | No | Partially mapped |
| Other Properties | No | Not mapped |
- Fully mapped: All attributes are mapped to platform concepts.
- Partially mapped: Some attributes are mapped, but not the entire list.
- Not mapped: None of the attributes in this section are mapped to platform concepts.
Note
Unmapped attributes or sections are ignored when the platform ingests the YAML file.
The following sections provide detailed attribute-level information for the fully and partially mapped sections.
Fundamentals¶
| Key | Required | Mapped | Description |
|---|---|---|---|
apiVersion | Yes | Yes | Version of the standard used to build the data product. Valid value is 1.0.0. |
kind | Yes | Yes | The kind of file this is. Valid value is DataProduct. |
id | Yes | Yes | A unique identifier used to reduce the risk of dataset name collisions. This attribute must be in the format of a UUID. Otherwise, the file will not be processed. This ID is used in the key of the item. |
name | No | Yes | Name of the data product. |
version | No | Yes | Current version of the data product. Not required, but highly recommended. The version is used in the key of the item. The version combined with the id defines the unicity of a data product. Two different data products can have the same UUID but a different version. |
status | Yes | No | Current status of the data product. Valid values are proposed, draft, active, deprecated, and retired. Only active data products may be uploaded to the platform. |
domain | No | No | Business domain |
tenant | No | No | Organization identifier |
authoritativeDefinitions | No | Yes | List of links to sources that provide more details on the data contract. See Ancillary Objects: Authoritative Definitions below. |
description | No | Yes | Object containing the descriptions. |
description.purpose | No | Yes | Intended purpose for the provided data. Mapped to the source description of the data product. Syntax example: description: |
description.limitations | No | No | Technical, compliance, and legal limitations for data use. Can be set at the data contract level. |
description.usage | No | No | Recommended usage of the data. Can be set at the data contract level. |
description.authoritativeDefinitions | No | No | See Authoritative Definitions below. |
description.customProperties | No | No | See Custom Properties below. |
customProperties | No | Yes | See Custom Properties below. |
tags | No | Yes | Tags as a list. Syntax example: tags: |
Product Information¶
| Key | Required | Mapped | Description |
|---|---|---|---|
inputPorts | No | Yes | List of objects describing an input port. You need at least one, as a data product needs to get data somewhere. |
inputPorts.name | Yes | Yes | When specifying an input port, it is mapped to a data process in the Intelligence platform. |
inputPorts.version | No | Yes | For each version, a different instance of the output port is listed. The combination of the name and version is the key. A new (major) version would be a new output port, for simplicity. This is the version of a data contract attached to the related output port for another data product. The version is used with the UUID to match a specific input. |
inputPorts.contractId | No | Yes | id of the data contract attached to the referred output port. |
inputPorts.customProperties | No | No | Custom properties |
inputPorts.authoritativeDefinitions | No | No | Authoritative definitions |
inputPorts.tags | No | No | Tags |
outputPorts | Yes | Yes | List of objects describing an output port. You need at least one, as a data product without output is useless. |
outputPorts.name | Yes | Yes | |
outputPorts.version | No | Yes | For each version, a different instance of the output port is listed. The combination of the name, contractId, and version is the key. The version is used in the item unique key. |
outputPorts.contractId | No | Yes | The contract id is used in the output port unique key. |
outputPorts.type | No | No | There can be different types of output ports, each automated and handled differently. Here you can indicate the type. |
outputPorts.description | No | Yes | Human-readable short description of the output port. The description of the data contract is used as a fallback if not defined here. |
outputPorts.customProperties | No | No | Custom properties. The custom properties of the output port must be defined in the data contract. |
outputPorts.authoritativeDefinitions | No | No | Authoritative definitions. The authoritative definitions of the output port must be defined in the data contract. |
outputPorts.tags | No | No | Tags. The tags of the output port must be defined in the data contract. |
inputContracts | No | Yes | This attribute is used to specify the lineage of a specific output port. Input contracts must be part of the input ports of the data product. |
inputContracts.id | No | Yes | ID of the data contract. |
inputContracts.version | No | Yes | Version of the data contract. |
Team¶
| Key | Required | Mapped | Description |
|---|---|---|---|
team | No | Yes | Object representing a team. |
team.name | No | No | Team name. |
team.description | No | No | Team description. |
team.customProperties | No | No | Custom properties block. |
team.authoritativeDefinitions | No | No | Authoritative definitions block. |
team.tags | No | No | Tags as a list. |
team.members | No | Yes | List of members. |
team.members.username | Yes | Yes | The user's username or email. Using this attribute will create contacts with the dataOwner source responsibility in the Intelligence platform. |
team.members.name | Yes | Yes | The user's name (combine first name and last name). |
team.members.description | No | No | The user's description. |
team.members.role | Yes | Yes | The user's job role. For example, owner, data steward. This attribute is not required by the standard, but is necessary to link the contact with the right responsibility. |
team.members.dateIn | No | No | The date when the user joined the team. |
team.members.dateOut | No | No | The date when the user ceased to be part of the team. |
team.members.replacedByUsername | No | No | The username of the user who replaced the previous user. |
team.members.customProperties | No | No | Custom properties block. |
team.members.authoritativeDefinitions | No | No | Authoritative definitions block. |
team.members.tags | No | No | Tags as a list. |
Ancillary Objects¶
Custom Properties¶
| Key | Required | Mapped | Description |
|---|---|---|---|
customProperties | No | Yes | A list of key/value pairs for custom properties. The customProperties attribute is used to create or value source properties (Short text, Tag, Date, URL), link the data product with existing glossary items, or with existing custom items. Custom properties cannot be used to value template properties created in the UI. |
customProperties.property | No | Yes | The name of the key. Names should be in camel case, the same as if they were permanent properties in the contract. Possible values are: zeeneaPropertieszeeneaGlossaryRefszeeneaCustomItemRefs |
customProperties.value | No | Yes | The value of the key. Mapping in the Intelligence platform: - In case of a property, the value is the name and value of the property. - In case of a link, the value is the key of the targeted item. The targeted item must already exist in the Intelligence platform, and the link must be allowed at the metamodel level. |
customProperties.description | No | No | Optional description. |
Authoritative Definitions¶
| Key | Required | Mapped | Description |
|---|---|---|---|
authoritativeDefinitions | No | Yes | A list of type/link pairs for authoritative definitions. |
authoritativeDefinitions.type | Yes | Yes | Type of definition for authority. Recommended values are businessDefinition, transformationImplementation, videoTutorial, tutorial, and implementation. At the root level, a type can also be canonicalUrl to indicate a reference to the product's last version. Using this attribute will create a Links source property (URL type and multivalued). Syntax example: authoritativeDefinitions:Type will be used as the label and URL as the value of the hyperlink. |
authoritativeDefinitions.url | Yes | Yes | URL to the authority. |
authoritativeDefinitions.description | No | No | Optional description. |
ODCS Support¶
The following table shows how ODCS sections are mapped with the platform internal concepts and which sections are required:
| Section | Required | Mapping |
|---|---|---|
| Fundamentals | Yes | Partially mapped |
| Schema | Yes | Partially mapped |
| References | No | Not mapped |
| Data Quality | No | Not mapped |
| Support and Communication Channels | No | Not mapped |
| Pricing | No | Not mapped |
| Team | No | Partially mapped |
| Roles | No | Not mapped |
| Service-level Agreement | No | Not mapped |
| Infrastructures and Servers | No | Partially mapped |
| Custom and Other Properties | No | Partially mapped |
- Fully mapped: All attributes are supported and mapped to Actian concepts.
- Partially mapped: Some attributes are supported, but not the entire list.
- Not mapped: None of the attributes in this section are mapped to Actian concepts.
Note
Unmapped attributes or sections are ignored when the platform ingests the YAML file. However, they are stored and displayed as read-only information in the user interface.
The following sections provide detailed attribute-level information for the fully and partially mapped sections.
Fundamentals¶
| Key | Required | Mapped | Description |
|---|---|---|---|
apiVersion | Yes | Yes | Version of the standard used to build the data contract. Valid value is 3.1.0. |
kind | Yes | Yes | The kind of file this is. Valid value is DataContract. |
id | Yes | Yes | A unique identifier used to reduce the risk of dataset name collisions. This attribute must be in the format of a UUID. Otherwise, the file will not be processed. This ID is used in the key of the item. |
name | No | No | Name of the data contract. |
version | Yes | Yes | Current version of the data contract. |
status | Yes | No | Current status of the data contract. Valid values are proposed, draft, active, deprecated, and retired. |
tenant | No | No | Indicates the property the data is primarily associated with. Value is case-insensitive. |
tags | No | Yes | A list of tags that may be assigned to the elements (object or property); the tags keyword may appear at any level. Tags may be used to better categorize an element. For example, finance, sensitive, employee_record. Syntax example: tags: |
domain | No | No | Name of the logical data domain. |
dataProduct | No | No | Name of the data product. |
authoritativeDefinitions | No | Yes | List of links to sources that provide more details on the data contract. Using this attribute will create a Links source property (URL type and multivalued). Syntax example: authoritativeDefinitions:Type will be used as the label and URL as the value of the hyperlink. |
description | No | Yes | Object containing the description. |
description.purpose | No | Yes | Intended purpose for the provided data. Mapped to the source description of the output port as a fallback to the description provided in the ODPS file. Syntax example: description: |
description.limitations | No | Yes | Technical, compliance, and legal limitations for data use. Using this attribute will create a limitations source property (Rich text). |
description.usage | No | Yes | Recommended usage of the data. Using this attribute will create a usage source property (Rich text). |
description.authoritativeDefinitions | No | No | List of links to sources that provide more details on the dataset. Examples would be a link to a privacy statement, terms and conditions, license agreements, data catalog, or another tool. Using this attribute will create a Policies source property (URL-type). The type will be used as the label and the value as the URL. |
description.customProperties | No | No | Custom properties that are not part of the standard. |
Schema¶
Schema (Top-level)¶
| Key | Required | Mapped | Description |
|---|---|---|---|
schema | Yes | Yes | Array. A list of elements within the schema to be cataloged. Objects are mapped to the dataset concept and are used to link the output port to imported datasets in the platform. |
Applicable to Elements (either Objects or Properties)¶
| Key | Required | Mapped | Description |
|---|---|---|---|
name | Yes | Yes | Name of the element. Mapped for Objects only and used to link the output port to an imported dataset. |
physicalName | No | Yes | Physical name. Mapped for Objects only and used to link the output port to an imported dataset. |
physicalType | No | No | The physical element data type in the data source. For objects: table, view, topic, file. For properties: VARCHAR(2), DOUBLE, INT, etc. |
description | No | No | Description of the element. |
businessName | No | No | The business name of the element. |
authoritativeDefinitions | No | No | List of links to sources that provide more details on the element. Examples would be a link to a privacy statement, terms and conditions, license agreements, data catalog, or another tool. |
quality | No | No | List of data quality attributes. |
tags | No | No | A list of tags that may be assigned to the elements (object or property); the tags keyword may appear at any level. Tags may be used to better categorize an element. For example, finance, sensitive, employee_record. |
customProperties | No | No | Custom properties that are not part of the standard. |
Applicable to Objects¶
This section is not required and is not mapped.
Applicable to Properties¶
Some keys are more applicable when the described property is a column.
This section is not required and is not mapped.
Logical Type Options¶
Additional metadata options to more accurately define the data type.
This section is not required and is not mapped.
Team¶
| Key | Required | Mapped | Description |
|---|---|---|---|
team | No | Yes | Object representing a team. |
team.name | No | No | Team name. |
team.description | No | No | Team description. |
team.customProperties | No | No | Custom properties block. |
team.authoritativeDefinitions | No | No | Authoritative definitions block. |
team.tags | No | No | Tags as a list. |
team.members | No | Yes | List of members. |
team.members.username | Yes | Yes | The user's username or email. Using this attribute will create contacts with the dataOwner source responsibility in the Intelligence platform. |
team.members.name | No | Yes | The user's name (combine first name and last name). |
team.members.description | No | No | The user's description. |
team.members.role | Yes | Yes | The user's job role. For example, owner, data steward. This attribute is not required by the standard, but is necessary to link the contact with the right responsibility. |
team.members.dateIn | No | No | The date when the user joined the team. |
team.members.dateOut | No | No | The date when the user ceased to be part of the team. |
team.members.replacedByUsername | No | No | The username of the user who replaced the previous user. |
team.members.customProperties | No | No | Custom properties block. |
team.members.authoritativeDefinitions | No | No | Authoritative definitions block. |
team.members.tags | No | No | Tags as a list. |
Infrastructure & Servers¶
| Key | Required | Mapped | Description |
|---|---|---|---|
server | Yes | Yes | Identifier of the server. |
id | No | Yes | A unique identifier used to reduce the risk of collisions, such as a UUID. |
type | Yes | Yes | Type of the server. Can be one of: api, athena, azure, bigquery, clickhouse, cloudsql, custom, databricks, db2, denodo, dremio, duckdb, glue, hive, impala, informix, kafka, kinesis, local, mysql, oracle, postgres, postgresql, presto, pubsub, redshift, s3, sftp, snowflake, sqlserver, synapse, trino, vertica, zen. |
description | No | No | Description of the server. |
environment | No | No | Environment of the server. Examples includes: prod, preprod, dev, uat. |
roles | No | No | List of roles that have access to the server. For more information, see Roles. |
customProperties | No | No | Custom properties that are not part of the standard. |
Each server type can be customized with different properties such as host, port, database, and schema, depending on the server technology in use. Refer to the specific documentation for each server type for additional configurations.
If your server is not in the list, use the type Custom Server.
Custom and Other Properties¶
Custom Properties¶
| Key | Required | Mapped | Description |
|---|---|---|---|
customProperties | No | Yes | A list of key/value pairs for custom properties. The customProperties attribute is used to create or value source properties (Short text, Tag, Date, URL), link the output port with existing glossary items, or assign an access request policy. Custom properties cannot be used to value template properties created in the UI. |
customProperties.property | No | Yes | The name of the key. Names should be in camel case, the same as if they were permanent properties in the contract. Possible values are: zeeneaProperties zeeneaGlossaryRefs |
customProperties.value | No | Yes | The value of the key. Mapping in the Intelligence platform: - In case of a property, the value is the name and value of the property. - In case of a glossary link, the value is the key of the targeted item. The targeted item must already exist in the Intelligence platform and the link must be allowed at the metamodel level. - In case of an access request policy, the value is accessRequestPolicy: [the code of the policy]. |
contractCreatedTs | No | No | Timestamp in UTC of when the data contract was created, using ISO 8601. |
Authoritative Definitions¶
| Key | Required | Mapped | Description |
|---|---|---|---|
authoritativeDefinitions | No | Yes | A list of type/link pairs for authoritative definitions. |
authoritativeDefinitions.id | No | No | A unique identifier for the element used to create stable, refactor-safe references. Recommended for elements that will be referenced. For more information, see References. |
authoritativeDefinitions.type | Yes | Yes | Type of definition for authority. Recommended values are businessDefinition, transformationImplementation, videoTutorial, tutorial, and implementation. At the root level, a type can also be canonicalUrl to indicate a reference to the data contract's latest version. Using this attribute will create a Links source property (URL type and multivalued). Syntax example: authoritativeDefinitions:The type will be used as the label, and the URL as the value of the hyperlink. |
authoritativeDefinitions.url | Yes | Yes | URL to the authority. |
authoritativeDefinitions.description | No | No | Optional description. |
Manage Data Product Documentation in Studio¶
Data Product Template¶
You can manage the data product template and responsibilities as any other item type in the Catalog Design section. It allows curators to provide metadata in addition to that harvested from the source with the API.
You can also configure data products to implement glossary items in the Glossary metamodel section.
Note
Output ports do not have a template and cannot implement glossary items.
Important
During the Beta phase, pre-existing template properties remain on output ports. Actian will implement an automatic migration, coinciding with the feature's general availability, which will result in the deletion of all current template property values from existing items.
Data Product and Output Port Attributes¶
Data Product Attributes¶
General Information¶
Data products have the following common attributes:
- Name / Source name
- Description / Source description
- Properties / Source properties
- Contacts / Source contacts
- Glossary items
- Links with custom items
- Catalog
In Studio, curators can manage data product properties defined in the template from their side panel and details page. They can also manage these properties using bulk actions and file import.
Input Ports Tab¶
In the Input ports tab of a data product, all the sources consumed by the data product's input ports are listed. The input ports themselves are displayed only in the lineage.
Output Ports Tab¶
In the Output ports tab of a data product, all the output ports to be consumed by the end-users are listed.
Data Quality Status¶
The data quality status of a data product is calculated from the data quality status of its output ports.
Attachments¶
In Explorer, you can download the YAML descriptor of the data product.
Output Port Attributes¶
General Information¶
Output ports have the following common attributes:
- Source name
- Source description
- Source properties
- Source contacts
- Catalog (inherited from the parent data product)
Datasets Tab¶
The Datasets tab lists all the datasets and their fields that compose the output port.
Data Model Tab¶
The Data model tab shows the relationships between the datasets of the output ports.
Data Quality Tab and Status¶
The Data quality tab lists all checks performed for all the datasets that compose the output port. For each check, a link allows the user to open the side panel of the corresponding dataset.
The data quality status of the output port is calculated from the quality status of its datasets.

Attachments¶
In Explorer, you can download the YAML descriptor of the data contract attached to the output port.
Delete a Data Product¶
You can delete a data product from the Studio. When you delete a data product, its output ports are also automatically deleted. The dataset linked to the output ports is not deleted.
Share a Data Product in Marketplace¶
Data products can be shared in the marketplace when the federated catalog option is activated. When you share a data product, its output ports and the datasets that compose them are shared automatically.
Move a Data Product to Another Catalog¶
In Studio, you can move a data product to another catalog when the federated catalog option is activated. When you move a data product, its output ports and the datasets that compose them are moved automatically.
You cannot move a data product to another catalog using the data product API. Attempting to do so generates a non-blocking error.
Search for Data Products¶
In Explorer and Studio, you can search data products using their own attributes or the attributes of their output ports. Output ports are not displayed in search results. Datasets linked to output ports are displayed in search results.

Request Access to a Data Product¶
In Explorer, users can request access to data products at the output port level.
To enable access requests for data product output ports, create an access request policy in Administration. Then the access request policy must be provided in the data contract.