The OpenLineage component,
@bijection/openlineage, is not yet distributed
on npm. Its token providers are installed from its public repository,
bijectionhq/openlineage.POST /api/lineage on your deployment’s HTTP actions host. A reporter, such as
Airflow, dbt or a Spark job, sends them as one of your services. Four things
take part:
- A source in your
defineOpenLineagedeclaration names the service and the job and dataset namespaces it may report. - A service in your access model is the reporter’s
identity. It holds a role that permits
reporton its source. - A credential authenticates the service: a key
bijection auth credential createwrites, or a machine client of your identity provider thatbijection auth credential addtrusts. - A token provider in the reporter’s OpenLineage HTTP transport turns the credential into a short-lived bearer token for each request.
Declare the source
Name the service that reports for each source, and every namespace it reports:bijection/lineage.ts
AIRFLOW__OPENLINEAGE__NAMESPACE, dbt under OPENLINEAGE_NAMESPACE and Spark
under spark.openlineage.namespace; dataset namespaces come from the
warehouse connection, such as postgres://host:5432 or
snowflake://<account>.
The service is declared in your access model with a ceiling that allows
reporting. The component asks your access policy about these resource kinds:
bijection/access.ts
bijection/lineageAccess.ts
Create a credential
A credential belongs to one deployment; create one for each of development, staging and production.- Service key
- Identity provider machine client
airflow.production.servicekey. Bijection keeps no copy. Store the file’s
one line as a secret where the reporter runs, then delete the file. The
token providers below sign a one-minute token per minute with it.airflow.
bijection auth credential revoke <credential> refuses its tokens from then on.
Grant reporting
Grant the service the reporter role on its source:Configure the reporter
Install the token provider where the reporter runs, then point the OpenLineage HTTP transport at your deployment’s HTTP actions host,https://<deployment>.bijection.run, with the endpoint api/lineage.
- Airflow
- dbt
- Spark
Install the Python token provider next to the OpenLineage provider:Then set the transport, for example as an environment variable:
credential takes the key’s one line instead of a file.
The Java provider sends no audience; with Auth0, set the API as the tenant’s
default audience.
When a report is refused
Every refusal names the check that failed and links the section of this page that fixes it, inerror.code and error.docs of the response body (in
failed_events for a batch).
Refusals are not retriable as sent. Capacity and availability failures (429
and 503) are; see the component’s limits in
Inspection.