flowchart LR
imp[sentier-importers] -->|PR| map[sentier-mappings]
con[Contributors] -->|PR| map
inv[sentier-inventory] -->|source ids| map
map -->|resolve| met[sentier-methods]
map -->|"resolve, code only"| eco[ecoinvent]
map -->|fetch| bw[sentier-brightway]
Cross-source bridges for the Sentier platform, stored as randonneur JSON packages.
- A Data Layer repo: loadable artifacts only, no fetch, parse, or calculate code.
- Bridges link inventory source ids to method flow keys and to ecoinvent codes.
- Written in by
sentier-importersand by contributors, always via PR. - Read by
sentier-brightway, which fetches a pinned ref ofdata/at build time. - The why lives in sentier.dev.
Nothing to install. The validator needs jsonschema[format] and pytest; uv run fetches them.
Validate every pair against the schemas (what CI runs):
uv run --with-requirements scripts/requirements.txt python scripts/validate.pyRun the validator's own tests:
uv run --with-requirements scripts/requirements.txt pytest -q testsschema/ JSON Schemas for packages and metadata.json, plus conventions
data/ one folder per source__target pair
scripts/ validate.py, the CI validator, and its requirements.txt
tests/ pytest suite for validate.py
| Pair | Kind | Packages | Entries |
|---|---|---|---|
agribalyse-3.2__ecoinvent-3.9.1 |
foreground to background | stub, target_proprietary: true |
0 |
agribalyse-3.2__ef-3.1 |
elementary flow to CF | biosphere.json |
1,095 |
bafu-2026-v1__ef-3.1 |
elementary flow to CF | biosphere-1-curated to biosphere-4-nomenclature |
2,566 |
eaternity-bafu-ext__ef-3.1 |
elementary flow to CF | biosphere.json |
19,275 |
ecoinvent-biosphere3__eaternity-bafu-ext |
flow to flow | biosphere.json |
1,371 |
- Folder name:
data/<source>__<target>/, lower-kebab, version-suffixed ids, no rank prefix. - One package per kind:
<kind>.json. Several of one kind:<kind>-<n>-<slug>.json,nfrom 1. nis build order and precedence within the pair only. An earlier file wins on a shared source key.- The validator guarantees the packages of one pair never disagree on a source key.
metadata.jsonlists the packages in order plus any sidecars (non-normative review or coverage files).
| Kind | Bridge spans | File | Target encoding |
|---|---|---|---|
| Foreground to background | inventory source to ecoinvent | technosphere.json |
{database, code}, opaque code only |
| Process to process | inventory source to inventory source | technosphere.json |
full open identifiers |
| Elementary flow to CF | inventory flows to method flow keys | biosphere.json |
full open identifiers |
No proprietary ecoinvent data:
- A bridge that targets ecoinvent sets
target_proprietary: truein itsmetadata.json. - Its targets carry only
databaseandcode. - Never
name,reference product,location, amounts, or flows. - A licensed ecoinvent holder resolves the code locally at link time.
scripts/validate.pyenforces this on every PR.
metadata.schema.json: pair identity and the orderedpackageslist,schema_version0.2.0.randonneur-package.schema.json: the randonneur package profile.- Verbs, precedence, and conventions: schema/README.md.
- Open a PR against
main. CI runs the validator and its tests on every PR. - Put new data in a pair folder whose
metadata.jsonlists every package and sidecar.
MIT — open by default, client-loadable.