Repository navigation
v0.5.0
Date: 2026-10-29
Summary
A reference server of OpenADR 3.0.1: openleadr301, OpenLEADR openleadr-rs
v0.1.4, the last release of OpenADR 3.0. Fixtures can be of either
revision, a new fixture baseline-301 is the baseline in 3.0.1, and a
client and a server are paired only when they share a revision. Contract
1.4 and fixture schema 1.1: additions, nothing a consumer of 1.3 has to
change.
Changes
Added
- The
openleadr301image,ghcr.io/otfabric/openadr-interop-openleadr301, for linux/amd64 and linux/arm64: OpenLEADR v0.1.4 (commit92f4ba12d34cee0458af5846f170996d0b31978f) with a private PostgreSQL, server role only,openadrVersions["3.0.1"]. No MQTT, no Multicast DNS, no notifiers. The VTN listens on port 3000 whatever it is told; the adapter forwards--port(default 8080) to it and refuses--port 3000. - The
baseline-301fixture: the clients ofbaselinewith the same IDs and secrets, its ven, resource, programs and events, with targets as valuesMap objects. The targeted program and event nameVEN_NAMEsite-1. "3.0.1"inopenadrVersionsof the capability schema, and inopenadrVersionof the fixture schema, whose targets are strings in 3.1.0 and valuesMap objects in 3.0.1.make smokechecks of a 3.0.1 server (a token from/auth/token, valuesMap targets, a targeted program seen only by its VEN), and of every adapter refusing a fixture of a revision it does not serve or speak.
Changed
- Every adapter refuses a fixture of a revision it does not serve: exit 4 for
server, a usage error (exit 2) forclient. Theopenleadrandelaadnlimages serve and speak 3.1.0 only, as before. make interoppairs a client with a server only when they share an OpenADR version, and logs each pairing and each pair it leaves out.elaadnl→openleadr301is left out: 3.1.0 against 3.0.1.- The conformance suite stays of 3.1.0 and runs against
openleadronly: it asserts the 3.1.0 OpenAPI document, which 3.0.1 differs from in the shape of every targeted object. - The weekly candidate probe covers
openleadr301, following v0.1.x tags only.
Fixed
- docs/COMPATIBILITY.md and the
elaadnladapter said that ElaadNL openadr3-client 2.4.0 names the operations of a subscription "as OpenADR 3.0.1 did". It does not: 3.0.1 names themREAD,CREATE,UPDATEandDELETE, as 3.1.0 does. The library names them with HTTP methods, which 3.0.1 uses only for theoperationof a notification. The v0.4.0 notes below say the same wrong thing.
Upstream notes
Observed by running v0.1.4 with baseline-301; details in docs/COMPATIBILITY.md.
- No
/subscriptions(404), which 3.0.1 defines. - A VEN cannot delete its own report (403); only Business Logic can. While a report exists, its event and program cannot be deleted (409).
GET /programs?targetType=VEN_NAME&targetValues=…finds nothing: program targets of that type are kept apart, as the list of VENs that may see the program. A VEN is shown such a program without its targets.- A VEN client without a ven sees no programs, not even untargeted ones.
- A bearer token the VTN did not issue is answered 403, which the 3.0.1 OpenAPI document allows.
Verification
On arm64: make validate lint images smoke interop conformance-test documents conformance. Smoke 33 (openleadr), 44 (elaadnl) and 32 (openleadr301) checks; self-test 73 checks passed and 5 skipped on declared capabilities, elaadnl → openleadr301 not paired; conformance of openleadr 20 of 24 scenarios, 4 known findings; 3 capability documents and 65 client results valid against their schemas.
Images
| Image | Upstream | Digest |
|---|---|---|
ghcr.io/otfabric/openadr-interop-openleadr:v0.5.0 |
v0.2.7 | sha256:4f8eb4b1795bd3f21307346eb8cff0e3860f9c9753e841710de50a5af1353ab5 |
ghcr.io/otfabric/openadr-interop-elaadnl:v0.5.0 |
2.4.0 | sha256:3c8d2e56b87740f138d3e083303c8333a28cfe6d386aab1a9a009ae70c33d12f |
ghcr.io/otfabric/openadr-interop-openleadr301:v0.5.0 |
v0.1.4 | sha256:a2039fff5b7d3e4a3691883a543bb602b885a07ed8a3a2779fed238627c7e1a5 |
Pinning in a consumer
OPENADR_INTEROP_OPENLEADR_IMAGE=ghcr.io/otfabric/openadr-interop-openleadr@sha256:4f8eb4b1795bd3f21307346eb8cff0e3860f9c9753e841710de50a5af1353ab5
OPENADR_INTEROP_ELAADNL_IMAGE=ghcr.io/otfabric/openadr-interop-elaadnl@sha256:3c8d2e56b87740f138d3e083303c8333a28cfe6d386aab1a9a009ae70c33d12f
OPENADR_INTEROP_OPENLEADR301_IMAGE=ghcr.io/otfabric/openadr-interop-openleadr301@sha256:a2039fff5b7d3e4a3691883a543bb602b885a07ed8a3a2779fed238627c7e1a5manifest.json records the upstream versions these images were built from. The images contain third-party software under its own licences; see THIRD_PARTY_NOTICES.md and /licenses in each image. Notes: RELEASE.md.
2026-10-29:
manifest.jsonandchecksums.txtwere replaced. The first upload listed only 3.1.0 underopenadrVersions(fixed in #5); it now lists 3.1.0 and 3.0.1. Nothing else changed: the images and their digests are the same.