Input Ports

An input port documents the upstream data a data product consumes. In the Open Data Product Standard (ODPS), input ports live in the inputPorts array of the data product and usually reference the data contract of the data they consume.

Input ports make the data flow into a data product explicit: they show, on the data product itself, where its source data comes from and which contract describes it.

Two ways an input port appears

On a data product's details page, the Input Ports section can contain two kinds of cards:

  • Declared input ports — input ports defined in the data product's ODPS inputPorts array. The author declares them in the YAML and (optionally) links a data contract via contractId. These cards are labeled Input Port.
  • Input ports via access requests — when a data product is granted access to another data product's output port through the access approval workflow, Entropy Data derives an input port from that granted access agreement and shows it here. These cards are labeled Input Port via Access Request.

Both kinds are shown together, so the Input Ports section is a complete picture of everything the data product consumes — what it declares for itself and what it has been granted access to.

Input Ports vs. Access Agreements

Input ports and access agreements are related but answer different questions:

Input Port (ODPS)Access Agreement
Question it answersWhat data does this product consume?Is this consumer allowed to use that output port?
Defined byThe data product author, in the inputPorts array of the ODPS specificationThe request → approval workflow between a consumer and a provider
ScopeA documented dependency on an upstream data contractA governed permission for a specific output port of a specific provider
Carriesname, version, contractId, tags, authoritative definitions, custom propertiesPurpose, access period (start / end / next reassessment), status, the parties involved
LifecycleEdited as part of the data product specificationRequested, approved, rejected, expired, revoked
Where it livesIn the data product's YAMLAs a separate access resource, managed in the workflow

A useful way to think about it:

  • A declared input port is a statement of intent — “this data product consumes that data, described by this contract.” It is part of how the data product describes itself, independent of permissions.
  • An access agreement is a governed grant — “this consumer may use that output port.” It is created and managed through the approval workflow and carries the governance metadata (purpose, validity period, status).

When an access agreement is granted, Entropy Data surfaces it in the consuming data product's Input Ports section as a convenience, so the section reflects both declared dependencies and granted access in one place. The card for a granted agreement additionally shows its purpose and access period, mirroring the access details.

Declaring an input port in YAML

A declared input port is an entry in the inputPorts array. It links the data contract that describes the consumed data through contractId:

inputPorts:
  - name: orders-feed
    version: "1.0.0"
    contractId: orders-contract
    tags:
      - pii
    authoritativeDefinitions:
      - type: businessDefinition
        url: https://example.com/semantics/orders
    customProperties:
      - property: description
        value: Order events consumed from the Orders data product.

The referenced contractId is resolved to a data contract in your organization. If the contract is described only by input ports — that is, no output port in your organization publishes it — the card marks it as an Input Port Data Contract to distinguish it from a shared, published contract.