DMTF fixtures — the external anchor for draupnir's Redfish server
These files are not written by this project. They are DMTF's own published schema, message registry and mockup, vendored verbatim so tests/redfish_server_conformance.rs checks src/redfish_server.rs against something outside this repository.
Why they are here at all
draupnir owns both ends of the Redfish protocol: the client (src/redfish.rs) and, behind the redfish-server feature, the server (src/redfish_server.rs). A test that drove one with the other would be a mirror — both ends can be wrong in the same way and every assertion still passes. A loopback green proves self-consistency, not Redfish.
So conformance is asserted against the files below, and only transport uses the client. If a property name, an @odata.type version, an enum token or an error template drifts from DMTF's, the conformance test goes red no matter how happily the two draupnir halves agree with each other.
What was fetched, from where, when
Fetched 2026-08-15 over HTTPS from redfish.dmtf.org and raw.githubusercontent.com. (www.dmtf.org/sites/default/files/standards/documents/DSP2043_*.zip — the packaged mockup bundle — answered HTTP 403 from this box; the same mockup content is published in DMTF's Redfish-Mockup-Server repository and was taken from there instead. See "Walls" below.)
Schemas — https://redfish.dmtf.org/schemas/v1/<file>
| file | sha256 |
schemas/ServiceRoot.v1_16_1.json |
d8dbb8748ec06e43c03a972e0f7d398286fe95ea908f9b184e8d5a8da391b519 |
schemas/ComputerSystem.v1_22_0.json |
3ba322e18e5d9445c51157fe4b2b3e835bf3992b4a4e60733bf6202342ee615e |
schemas/ComputerSystem.json |
8df03de13e06e4e5b16fd3bfaa806567b364a2f26f63492130023078c83e0c23 |
schemas/ComputerSystemCollection.json |
c17c1b287bc2320dfbd3bb3d7ec644ab2726d31f33cbfeac96d6109c3324bc4e |
schemas/VirtualMedia.v1_6_3.json |
d4c4aa15fd15989243c33c188665f6705f5e2bd1e8424b739178591214190e21 |
schemas/VirtualMediaCollection.json |
71ec62b65aa41a33ae66ae3ef01e194e61956df2227ce1d4a620ff1f487ba799 |
schemas/SessionCollection.json |
96dbe3f737e6b6708d40b84187e6bf6e442186567b84cf2615cf24c2bb75a143 |
schemas/Resource.json |
a600172f7b9090c95efad59e3329cbed5d7140d758ab22645785d16ef243bd1c |
schemas/redfish-error.v1_0_2.json |
6ba0f876b30d7c118ee0645c72f3cb3df865a139a5eea757dd66cb4e16aebd24 |
schemas/Message.v1_1_2.json |
d543ea0eb8f4aa9fea14f3b3419011f5262466e8e5cc3308966eef57c57445dd |
Message registry — https://redfish.dmtf.org/registries/Base.1.19.0.json
| file | sha256 |
registries/Base.1.19.0.json |
b44a0bdc30e2834eb7f1cf0aaadd5d8ce1ee27008632b87e210964a018675c9e |
Mockup — https://raw.githubusercontent.com/DMTF/Redfish-Mockup-Server/main/public-rackmount1/<path>
DMTF's published public-rackmount1 mockup (the rack-mount server example that ships with DMTF's own Redfish Mockup Server). Only the five resources draupnir's client touches were vendored.
| file | sha256 |
mockup/public-rackmount1/index.json |
3cdbdf2c7bc87d35b4fe7124be221da3e846f1815ebb963178f039114a55383e |
mockup/public-rackmount1/Systems/index.json |
4dd474ce66cd7e11426d781c706dc8c31aff50f8bf57f64dfea8e7eee3f0b765 |
mockup/public-rackmount1/Systems/437XR1138R2/index.json |
af03202a1bcd4f16ee8dab92364fc7b1f78cb3088f74d3b79294e9c22ee2957b |
mockup/public-rackmount1/Systems/437XR1138R2/VirtualMedia/index.json |
7402719f415af8b1a340f297051a844949d8d6ad6e3be138e31118a69f29e268 |
mockup/public-rackmount1/Systems/437XR1138R2/VirtualMedia/CD1/index.json |
d94e82a2a901965b36d1b710a8d07a2b67d06948c4a548e3165cf4a12a65ff67 |
Verify with sha256sum from this directory; the conformance test also checks each file's hash at run time, so a fixture edited to make a test pass is itself red.
What the conformance test does with them
- No invented property. Every key our resources emit must be a property the matching DMTF schema declares (or an OData/Redfish annotation the schema's
patternPropertiesallows). - Nothing required is missing. Every name in the schema's
requiredarray is present in our resource. - The
@odata.typeis real.#Ns.vX_Y_Z.Typemust be a definition the vendored schema file for that version actually declares. - The advertised values are DMTF's.
ResetType@Redfish.AllowableValues⊆Resource.json#/definitions/ResetType;BootSourceOverrideTarget@Redfish.AllowableValues⊆ComputerSystem.json#/definitions/BootSource;BootSourceOverrideEnabled∈ its own enum. - The mockup's shape is honoured. Where DMTF's mockup carries structure our server also claims — the
Actionsblock and itstarget, the collectionMembers/Members@odata.countpair, theBootobject — the shapes must match. - The errors are the registry's. Every message
src/redfish_server.rscan emit is compared field-for-field against the Base registry entry of the sameId(Message,MessageSeverity,NumberOfArgs,Resolution), and each liveerrorpayload is checked againstredfish-error.v1_0_2.
Copyright
The schema, registry and mockup files carry DMTF's copyright notice (Copyright 2014-2024 DMTF) inside them. They are redistributed unmodified as test fixtures under DMTF's published-schema terms. Nothing here is draupnir's work.
Walls hit while assembling this
https://www.dmtf.org/sites/default/files/standards/documents/DSP2043_2024.3.zip(also_2023.3,_2019.1) → HTTP 403, 5 620-byte block page, measured 2026-08-15. The packaged DSP2043 mockup bundle could not be downloaded from this box; the same mockup content was taken from DMTF'sRedfish-Mockup-Serverrepository instead.https://redfish.dmtf.org/redfish/v1is DMTF's Mockups landing page (HTML), not a live mockup service — there is no public Redfish endpoint on that host to diff against.