Skip to main content

Event conventions

Common questions about transport, authentication, naming conventions, supported data sources, and lineage behavior for Generic OpenLineage.

What transport and authentication methods does Atlan support?

Atlan supports only HTTP transport with API key authentication. Configure your source to emit OpenLineage events over HTTP and include the API key generated in the Atlan Admin Panel in each request using the Authorization: Bearer <API_KEY> header.

What naming conventions apply to OpenLineage events?

  • Parent events (DAG/APPLICATION level) use job.facets.jobType.jobType: "DAG" or "APPLICATION"
  • Child events (task level) include run.facets.parent linking back to the parent run ID
  • Job naming for child tasks follows the convention <dag-name>.<task-name>
  • Namespace in events must match the connection name configured in Atlan

What data sources does Generic OpenLineage support for lineage?

The connector supports lineage to and from the following data sources:

Relational sources (with column-level lineage support):

  • PostgreSQL, Oracle, MySQL, Microsoft SQL Server
  • Trino, Redshift, Teradata, Athena
  • Snowflake, BigQuery, Hive, Glue

Non-relational sources:

  • Amazon S3, Google Cloud Storage, Azure Data Lake Storage (ADLS)
  • Kafka, HDFS, local files

How does hierarchical vs. non-hierarchical mode affect lineage creation?

When child tasks are present, Atlan creates lineage at the child task level (hierarchical mode). Each child FlowControlOperation references its Process via the flowDataResults relationship. When no child tasks are present—for example, a standalone Spark application—lineage is created directly at the parent level, and the parent FlowControlOperation references its Process via flowDataResults.

How does cross-system lineage work?

The connector supports cross-system flow control relationships. When a Spark application is triggered by an Airflow task, the Spark parent FlowControlOperation gets a flowControlledBy reference to the Airflow child FlowControlOperation. This relationship is derived from the run.facets.parent facet in the OpenLineage event.

See also