Skip to content

BLDX-1076: Add GENERIC_OPENLINEAGE connector type and make emit() accept connector_type#908

Merged
luke-hoffman1 merged 4 commits into
mainfrom
mothership/BLDX-1076/generic-openlineage-connector
Apr 29, 2026
Merged

BLDX-1076: Add GENERIC_OPENLINEAGE connector type and make emit() accept connector_type#908
luke-hoffman1 merged 4 commits into
mainfrom
mothership/BLDX-1076/generic-openlineage-connector

Conversation

@mothership-ai
Copy link
Copy Markdown

@mothership-ai mothership-ai Bot commented Apr 21, 2026

Session owner: @mothershipbeta

Summary

  • Adds GENERIC_OPENLINEAGE = ("generic-openlineage", AtlanConnectionCategory.ELT) to AtlanConnectorType so PyAtlan can target the marketplace generic-openlineage (GOLC) ingestion endpoint at /events/openlineage/generic-openlineage/api/v1/lineage.
  • Relaxes the hardcoded AtlanConnectorType.SPARK in OpenLineageEvent.emit() / emit_async() — both now accept an optional connector_type kwarg defaulting to SPARK (matching the pattern already used by emit_raw() / emit_raw_async()).
  • Mirrored in both pyatlan/model/open_lineage/event.py and pyatlan_v9/model/open_lineage/event.py. The v9 enum module re-exports from the main module, so the new enum value is automatically available under pyatlan_v9 as well.
  • Adds unit tests covering the enum value, the routing path to generic-openlineage/api/v1/lineage, the new connector_type kwarg on emit(), and preservation of the SPARK default.

Context

PyAtlan (v9.4.0) had no way to push OpenLineage events to the GOLC endpoint — AtlanConnectorType.OPENLINEAGE resolves to events/openlineage/openlineage/... which is not configured, and SPARK resolves to events/openlineage/spark/... which routes to a different workflow. See BLDX-1076 for the full problem statement and endpoint routing reference (pyatlan/client/common/open_lineage.py::OpenLineageSend.prepare_request).

Blast radius

Both changes are purely additive and backwards-compatible:

  • New enum entry — no switch/match statements read this set.
  • emit() / emit_async() gain a kwarg with the same effective default — all existing call-sites continue to work unchanged.

Test plan

  • Added unit tests in tests/unit/model/open_lineage/open_lineage_test.py
  • pytest tests/unit/model/open_lineage/open_lineage_test.py — 27 passed
  • pytest tests/unit/model/ — 839 passed (no regressions in adjacent unit tests)
  • Integration test against a tenant with the GOLC workflow configured (not runnable from CI — GOLC marketplace workflow must be deployed on the target tenant). Recommend adding once a GOLC-enabled QA tenant is available.

🤖 Generated with Claude Code

…ept connector_type

Add GENERIC_OPENLINEAGE = ("generic-openlineage", ELT) to AtlanConnectorType
so PyAtlan can target the marketplace generic-openlineage (GOLC) endpoint at
/events/openlineage/generic-openlineage/api/v1/lineage.

Make OpenLineageEvent.emit() / emit_async() accept an optional connector_type
kwarg (defaulting to SPARK for backwards compatibility), mirroring the
existing pattern on emit_raw()/emit_raw_async(). Applied to both the current
and pyatlan_v9 copies of event.py.

Unit tests cover:
- GENERIC_OPENLINEAGE enum value
- Routing to /events/openlineage/generic-openlineage/api/v1/lineage
- emit() honors the connector_type kwarg
- emit() default is still SPARK
Copy link
Copy Markdown
Member

@Aryamanz29 Aryamanz29 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM - thanks!

- Fix ruff formatting in event.py and open_lineage_test.py
- Add integration test for emit() with GENERIC_OPENLINEAGE connector type
@luke-hoffman1 luke-hoffman1 merged commit efbc281 into main Apr 29, 2026
66 of 74 checks passed
@luke-hoffman1 luke-hoffman1 deleted the mothership/BLDX-1076/generic-openlineage-connector branch April 29, 2026 11:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants