Skip to content
Alpha: Odal Node is in active development. APIs, schemas and docs will change before 1.0.

A passport's lifecycle

A passport starts as a draft and, once published, can never be edited or deleted. Everything that happens to it afterwards is recorded as a new state, so its history can still be checked years later.

State How it gets there What a reader sees
Draft Import, or create Nothing: drafts are not public, and the only editable state
Published odal passport publish signs it with your key The passport, filtered by the reader’s access rights
Suspended odal passport suspend <id>, for example during a recall 410 Gone
Superseded Replaced by a correction or by another passport The earlier version, still readable
Retired odal passport retire <id> (terminal) Read-only, still resolvable
End of life odal passport eol <id> --reason … (terminal) Read-only, still resolvable
  • Correct a mistake: odal passport amend <id> --patch correction.json --reason "…" issues a successor carrying the correction. The original moves to superseded, and the new record has a new ID. Only content can be corrected (product name, carbon and repairability figures, product-group data, component links); the product group, schema version, manufacturer and lineage are fixed when the passport is first issued.
  • Replace with an existing passport: odal passport supersede <id> --superseded-by <new-id> retires a passport in favour of one that is already published and already points back at it. Use it when the replacement was created on its own rather than as a correction.

A code already printed on a product keeps resolving after its passport is corrected or replaced.

odal passport eol <id> --reason recycled records how a product left service: recycled, destroyed, exported or lost, with an optional derogation and its citation where the law allows one. The passport is retained, never deleted; it outlives the product.

When a product is repurposed or remanufactured, its new passport can record which passport, or passports, it was derived from and which operation produced it. For batteries this is Art. 77(7)’s link to the original battery’s passport.

A passport can point to the passports of its components, each pinned by a hash of its signed public view. odal passport tree <id> walks the whole tree and verifies every link.

Every change is written to an append-only, hash-chained audit trail, and the database itself refuses edits to a published passport. odal passport history <id> shows the trail; an evidence dossier carries it in a form anyone can check.

Terminal window
odal passport list --status published
odal passport find --product-group battery --identifier 09506000134352
odal passport export --format csv -o passports.csv