Skip to main content
Dagster schedules computations and tracks assets. Bijection fixes each admitted input cut, hands execution to your compute resource, and verifies the complete output group. bijection-dagster connects these through the shared bijection.orchestration Python SDK. Install the application Python SDK and packages/dagster from your Bijection source distribution into your code-location environment. The adapter supports Dagster >=1.13.26,<1.14. Your pipeline needs typed dataset ports, an immutable program pin and an installed execution handoff. Generate its Python client and adapter bindings:
For an unpartitioned pipeline exported as revenue:refresh with one revenue output and an orders input:
Put the generated package on the Python import path. Reference storage must be durable and shared by your workers; install the relevant fsspec filesystem driver. It stores exact result handles, while Bijection’s existing storage owners retain the data. Handles and materialization metadata contain no credentials. An accepted materialization identifies one member of a complete verified result. All outputs of a pipeline materialize together as one non-subsettable multi-asset. completion="selected" and "served" observe subsequent selection and serving; these waits do not make a selection decision. Native verification appears in asset metadata. Framework-reported checks retain their own meaning. Serving waits require a native proof of the exact output group; merely opening a retained lease does not establish serving. Use bd.upstream_result(upstream_asset) for exact accepted upstream versions. Recovery occurs before resolving newer materializations. Step retries retain the original evaluation, parameters, program and input cut. New materialization runs get a new occurrence. The bijection/invocation run tag explicitly preserves an occurrence across recovery runs. Changed parameters under the same occurrence are refused. Observation timeouts detach without cancelling computation. Daily partition bindings require a matching pipeline partitioning declaration with UTC half-open bounds mapped to two int64 parameters. They use bd.partition.window_start_ms() and window_end_ms(). Each evaluation covers one partition. Partition results stay separate from application selection; complete dataset assembly and explicit selection are separate computations or decisions. The partition label does not establish source completeness or historical input retention. Other partition mappings and continuous jobs are unsupported. Validate and export the code location, then check it against the analyzed app:
Select that manifest in bijection.json so ordinary deploy preparation checks and captures its exact bytes:
An installed preflight uses the scheduler’s own credential:
--target must match the credential’s deployment URL. Checks report ok, refused, or unverified; preflight executes no job. Parameter-dependent authority and actual computation remain enforced when work is admitted and run. Deploy the application, preflight the matching code-location artifact, then activate its schedules. Admission checks the expected contract again. Capture a coordinated release after building the Dagster image:
The image variable names an immutable sha256:… digest. The release separately records logical contracts, installed definitions, program pins, binding digests, generated package file hashes and SDK/adapter versions. Native preparation captures and checks it. Missing release evidence stays unverified. Configure BijectionResource(release_file=..., generated_package=..., code_location_image_digest=...) to check the actual loaded binding, package bytes and versions before admission. Image identity is a deployment claim; these checks do not attest execution. Private program configuration and credentials remain outside generated contracts. Native admission bounds each pipeline to sixteen open evaluations. Use a binding’s concurrency_pool with a configured Dagster instance limit to bound scheduling; customer compute owns execution limits. Daily definitions require midnight UTC windows and YYYY-MM-DD keys without exclusions. bd.run_config generates typed Dagster fields and validates their native values before dispatch. Optional BijectionResource.lineage_namespace reports accepted result identities through the existing authenticated OpenLineage /api/lineage owner. Install its reporting source and grant the scheduler namespace. The custom correlation facet is opaque reported evidence, carrying no native acceptance or selection authority. Set lineage_required=True to make reporting failure fail projection; retries still observe the existing evaluation.