Your browser sucks, JavaScript disabled! Gunnar's console needs JavaScript and WebAssembly. Git over SSH on port 2222 does not.

mikronova/draupnir

tests/fixtures/dmtf/PROVENANCE.md

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

  1. 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 patternProperties allows).
  2. Nothing required is missing. Every name in the schema's required array is present in our resource.
  3. The @odata.type is real. #Ns.vX_Y_Z.Type must be a definition the vendored schema file for that version actually declares.
  4. The advertised values are DMTF's. ResetType@Redfish.AllowableValues ⊆ Resource.json#/definitions/ResetType; BootSourceOverrideTarget@Redfish.AllowableValues ⊆ ComputerSystem.json#/definitions/BootSource; BootSourceOverrideEnabled ∈ its own enum.
  5. The mockup's shape is honoured. Where DMTF's mockup carries structure our server also claims — the Actions block and its target, the collection Members/Members@odata.count pair, the Boot object — the shapes must match.
  6. The errors are the registry's. Every message src/redfish_server.rs can emit is compared field-for-field against the Base registry entry of the same Id (Message, MessageSeverity, NumberOfArgs, Resolution), and each live error payload is checked against redfish-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