Skip to content

LineageDetails.pipeline — Pipeline vs StoredProcedure #27254

@keithSchumacher

Description

@keithSchumacher

Affected module

Ingestion + Backend + UI


Describe the bug

The pipeline field on LineageDetails (used by PUT /api/v1/lineage / AddLineageRequest) does not behave consistently with its name and typing. In practice type: "storedProcedure" works end-to-end; type: "pipeline" does not.

Ingestion

  • In generated / SDK models, the field reads as a pipeline-style reference, but EntityReference with type: "pipeline" is not supported in that slot. type: "storedProcedure" works even though the field is not named as stored-procedure-specific. In addition, there is no way to know what Entity Types are supported in the pipeline field.

Backend

  • When creating lineage with lineageDetails.pipeline set to a Pipeline entity (type: "pipeline"), the server fails silently (no clear error) and no lineage is created.

UI

  • In Edit Edge web form, the control says “Search for Pipeline, StoredProcedures”, but only stored procedures appear in search results; pipelines do not, even when pipeline entities are searchable elsewhere in the product.

To Reproduce

  1. Create a table → table lineage edge that includes lineageDetails.pipeline with a valid Pipeline entity reference (id + type: "pipeline"), using any of:

    • UI — lineage editor, Edit Edge, set pipeline on the edge details
    • Python SDKOpenMetadata.add_lineage(AddLineageRequest(...)) with LineageDetails(pipeline=EntityReference(..., type="pipeline"))
    • RESTPUT /api/v1/lineage with the same JSON shape
  2. Optionally compare with the same payload using type: "storedProcedure" and a valid stored procedure id — that path succeeds.

Image

Expected behavior

Ingestion

  • If both Pipeline and StoredProcedure are valid in lineageDetails.pipeline, the pydantic model's description should reflect both (e.g. union or explicit documentation).
  • If only StoredProcedure is supported, the field name and types should be renamed/clarified so it is not presented as a pipeline-only reference.

Backend

  • If Pipeline is supported: accept type: "pipeline" and persist it on the edge; return errors only for real validation failures.
  • If Pipeline is not supported: reject the request with a clear error (e.g. 400 + message), not a silent no-op.

UI

  • If both are supported: Edit Edge search should return both pipelines and stored procedures, matching the help text (“Pipeline, StoredProcedures”).
  • If only stored procedures are supported: update the help text (e.g. “Search for Stored Procedures” only).

Version

  • OpenMetadata: 1.12.3

Additional context

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status

    No status

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions