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 be 1.0.0.
  • info: Metadata including id, name, owner, and status.
  • domain: The business domain the product belongs to (e.g., "customer", "billing").

Lifecycle States

A product moves through a defined lifecycle:

StateDescription
draftWork in progress. Not visible to consumers.
proposedSubmitted for approval. Validated but not active.
activeApproved and in production use.
deprecatedScheduled for removal. Consumers should migrate.
retiredNo 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).

On this page