Critical response headers should have compliance tests
Nobody has claimed this yet.
Assessment
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Newbie friendliness
- 45/100
Research direction
Locate the compliance tests covering the end-2, end-5, and end-6 endpoints, then read how existing response headers are asserted. Add coverage for the required Content-Type, Docker-Content-Digest, Content-Length, and Range values described in the issue. Done means compliant implementations missing these headers fail the tests.
Written by the indexing model from the issue text.
Description
I was able to create a registry implementation that passes all the compliance tests, but still fails to work correctly with a docker push command on Docker for Windows. To me, this is a critical shortcoming of the compliance tests.
The missing functionality requires new unit tests to be written, to ensure a compliant implementation. The following behaviour is critical to for correct interoperation with the Docker for Windows engine.
end-2 required headers
The end-2 endpoint (GET /v2/<name>/blobs/<digest>) requires the following headers to be set in a compliant response:
Content-Type(to the content type as it was uploaded, e.g.application/octet-stream)Docker-Content-Digest(to the digest of the blob)Content-Length(to the length of the blob)
end-5 required headers
The end-5 endpoint (PATCH /v2/<name>/blobs/uploads/<reference>) requires the following headers to be set in a compliant response:
Range(and it must be set to the range that was uploaded e.g.0-2072) The format of this value for this header should be described in the spec.
end-6 required headers
The end-6 endpoint (PUT /v2/<name>/blobs/uploads/<reference>) requires the following headers to be set in a compliant response:
Docker-Content-Digest(to the digest of the concatenated entity - the content provided by all PATCHes and the final PUT)
Implementations under compliance test that fail to provide valid response headers for these endpoints should fail a test.
- Dominant language
- Go
- Stars
- 1.1k
- Forks
- 260
- Avg merge
- 3d 23h
- Merged PRs (30d)
- 1
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from opencontainers/distribution-spec
-
Difficulty 1/5 Under an hour Newbie friendliness 65/100
-
Difficulty 1/5 Under an hour Newbie friendliness 68/100
-
Difficulty 5/5 Over a week Newbie friendliness 35/100
opencontainers/distribution-spec#621 · 3 comments ·
-
Difficulty 5/5 Over a week Newbie friendliness 42/100
opencontainers/distribution-spec#608 · 4 comments ·
-
Difficulty 5/5 Over a week Newbie friendliness 30/100
opencontainers/distribution-spec#596 · 1 comment ·
All issues in opencontainers/distribution-spec
Similar issues
-
optimization optimization:agents-md-curator
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
githubnext/gh-aw-cao#13143 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
blinklabs-io/bursa#904 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
yanet-platform/ipfw-go#129 ·
-
bug confmap/provider/googlesecretmanagerprovider needs triage
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
open-telemetry/opentelemetry-collector-contrib#51273 · 2 comments ·
-
bug: AI Gateway client filter lists "Unknown" twice when NULL and literal Unknown clients coexist Openbug
Difficulty 2/5 1-3 hours Newbie friendliness 90/100