Products (ODPS)
Defining data ownership with Open Data Product Standard
[!NOTE] Data Products are one of several artifact types that ChooChoo can validate. The CLI validates product files against the ODPS schema — product lifecycle management (create, list, show) is planned.
A Product represents a logical unit of data or capability with clear ownership. ChooChoo validates product definitions against the Open Data Product Standard (ODPS) v1.0.0. For all supported standards, see the Standards Reference.
The Product Schema
Products are defined in products/*.yaml within your project structure. The schema is formally specified in Schema Definitions.
Required Fields
dataProductSpecification: Must be1.0.0.info: Metadata includingid,name,owner, andstatus.domain: The business domain the product belongs to (e.g., "customer", "billing").
Lifecycle States
A product moves through a defined lifecycle:
| State | Description |
|---|---|
draft | Work in progress. Not visible to consumers. |
proposed | Submitted for approval. Validated but not active. |
active | Approved and in production use. |
deprecated | Scheduled for removal. Consumers should migrate. |
retired | No longer available. |
State transitions are enforced by the validation engine. Invalid transitions (e.g., draft → active) will produce error E009 (Invalid state transition). Transitions like proposed → active require approval per your configured policies.
Example
dataProductSpecification: "1.0.0"
info:
id: customer-360
name: Customer 360 View
version: "1.0.0"
owner: [email protected]
status: active
description: Consolidated view of customer data from CRM and Billing.
domain: customer
inputPorts:
- ref: raw-crm-data
- ref: billing-events
outputPorts:
- ref: customer-table
contract: contracts/customer-360.contract.yaml
slo:
freshness: "1h"
availability: "99.9%"Dependencies
Products explicitly declare their dependencies (inputPorts) and what they expose (outputPorts). This allows ChooChoo to build the Lineage Graph and calculate the Impact Radius of changes, which feeds into the Risk Scoring algorithm.
Output ports reference Contracts, which define the schema and quality guarantees for the data being exposed.
Validation
When you run choochoo validate, the engine checks products against the ODPS schema. See the Validation Rules for the full validation order, including cross-reference resolution (ensuring referenced contracts exist).
Related Concepts
Contracts (ODCS)
Define the schema, semantics, and quality rules for data exposed by products.
Workflows (Arazzo)
Orchestrate multi-step operations that interact with products and contracts.
Lineage Graph
Visualize how products relate to contracts, agents, and each other.
Artifact Lifecycle
Understand the state machine that governs all artifact transitions.