Results of the Touchstone conformance harness for the W3C Linked Web Storage (LWS) protocol, run against LWS server implementations. Each row is a requirement from the LWS specifications (the 5 October 2026 core Working Draft, the authentication suites' latest Working Drafts, and the editor's drafts of the webhook notification and index specifications), the tests that exercise it, and the result for each server. The results for LWS clients are on LWS Client Conformance.
- Halcyon [ 0.9.0 (next, 00f79d5) ] — tested 2026-10-14 16:39:36 EDT (Touchstone run 5cce1d60): 205 tests, 190 passed, 0 failed, 15 inapplicable. Conformant: no MUST test failed.
- lws-server [ 1.0.0 (master, ad6831f) ] — tested 2026-10-14 16:33:27 EDT (Touchstone run d9766122): 205 tests, 193 passed, 0 failed, 12 inapplicable. Conformant: no MUST test failed.
- sparq-lws-core [ 0.1.0 (sparq PR #6650, 5501efa) ] — tested 2026-10-14 16:26:19 EDT (Touchstone run 07b2001a): 205 tests, 204 passed, 0 failed, 1 inapplicable. Conformant: no MUST test failed.
- Community Solid Server [ 8.0.0-alpha.3 (PR #126, 311b367) ] — tested 2026-10-14 16:26:31 EDT (Touchstone run d3e26fa7): 205 tests, 129 passed, 24 failed, 52 inapplicable. Not conformant: 19 MUST tests failed.
- lws-drupal [ path-issuer, c18d4be ] — tested 2026-10-14 16:26:49 EDT (Touchstone run 869a452f): 205 tests, 198 passed, 0 failed, 7 inapplicable. Conformant: no MUST test failed.
- lwsd [ 0.0.5 (main, dd1871b) ] — tested 2026-10-14 17:10:32 EDT (Touchstone run 0f2a5cf9): 205 tests, 197 passed, 0 failed, 8 inapplicable. Conformant: no MUST test failed.
PASS / FAIL: every test covering the requirement passed / at least one failed. INAPPLICABLE: the tests need a capability that deployment did not provide (for example identity fixtures the server can reach), so there is no evidence either way. UNCOVERED: no Touchstone test exercises the requirement yet. A test name is coloured by its worse outcome across the servers tested. The name of a server that is not conformant (a MUST test failed or ended cantTell) is shown on red. Times are when each run started, in US Eastern time.
| Requirement | Level | Tests | Halcyon | lws-server | sparq-lws-core | Community Solid Server | lws-drupal | lwsd |
|---|---|---|---|---|---|---|---|---|
| Language | Java | Java | Rust | TypeScript | PHP | JavaScript | ||
| id-token-alg-not-none | MUST | auth/oidc/manifest#authn-oidc-alg-none | PASS | PASS | PASS | PASS | PASS | PASS |
| id-token-aud-claim | MUST | auth/oidc/manifest#authn-oidc-valid-id-token | PASS | PASS | PASS | PASS | PASS | PASS |
| id-token-azp-claim | MUST | auth/oidc/manifest#authn-oidc-valid-id-token auth/oidc/manifest#authn-oidc-missing-azp | PASS | PASS | PASS | PASS | PASS | PASS |
| id-token-iss-claim | MUST | auth/oidc/manifest#authn-oidc-valid-id-token | PASS | PASS | PASS | PASS | PASS | PASS |
| id-token-sub-claim | MUST | auth/oidc/manifest#authn-oidc-valid-id-token | PASS | PASS | PASS | PASS | PASS | PASS |
| id-token-token-type-uri | MUST | auth/oidc/manifest#authn-oidc-valid-id-token | PASS | PASS | PASS | PASS | PASS | PASS |
| validation-dereference-subject-cid | MUST | auth/oidc/manifest#authn-oidc-valid-id-token auth/oidc/manifest#authn-oidc-untrusted-issuer | PASS | PASS | PASS | PASS | PASS | PASS |
| validation-locate-issuer-service-and-verify | MUST | auth/oidc/manifest#authn-oidc-valid-id-token auth/oidc/manifest#authn-oidc-expired-id-token auth/oidc/manifest#authn-oidc-bad-signature auth/oidc/manifest#authn-oidc-untrusted-issuer | PASS | PASS | PASS | PASS | PASS | PASS |
| audience-restriction | MUST | auth/saml/manifest#authn-saml-valid-assertion | INAPPLICABLE | INAPPLICABLE | PASS | INAPPLICABLE | INAPPLICABLE | INAPPLICABLE |
| issuer-assertion | MUST | auth/saml/manifest#authn-saml-valid-assertion | INAPPLICABLE | INAPPLICABLE | PASS | INAPPLICABLE | INAPPLICABLE | INAPPLICABLE |
| nameid-subject | MUST | auth/saml/manifest#authn-saml-valid-assertion | INAPPLICABLE | INAPPLICABLE | PASS | INAPPLICABLE | INAPPLICABLE | INAPPLICABLE |
| recipient-client-id | MUST | auth/saml/manifest#authn-saml-valid-assertion | INAPPLICABLE | INAPPLICABLE | PASS | INAPPLICABLE | INAPPLICABLE | INAPPLICABLE |
| signed-and-required-assertions | MUST | auth/saml/manifest#authn-saml-valid-assertion auth/saml/manifest#authn-saml-unsigned | INAPPLICABLE | INAPPLICABLE | PASS | INAPPLICABLE | INAPPLICABLE | INAPPLICABLE |
| token-type-saml2 | MUST | auth/saml/manifest#authn-saml-valid-assertion | INAPPLICABLE | INAPPLICABLE | PASS | INAPPLICABLE | INAPPLICABLE | INAPPLICABLE |
| validation-signature | MUST | auth/saml/manifest#authn-saml-valid-assertion auth/saml/manifest#authn-saml-invalid-signature | INAPPLICABLE | INAPPLICABLE | PASS | INAPPLICABLE | INAPPLICABLE | INAPPLICABLE |
| alg-not-none | MUST | auth/cid/manifest#authn-cid-alg-none auth/cid/manifest#authn-cid-didkey-alg-none | PASS | PASS | PASS | PASS | PASS | PASS |
| aud-includes-as | MUST | auth/cid/manifest#authn-cid-valid-credential auth/cid/manifest#authn-cid-didkey-valid-credential auth/cid/manifest#authn-cid-didkey-audience-excludes-as | PASS | PASS | PASS | PASS | PASS | PASS |
| client-id-claim | MUST | auth/cid/manifest#authn-cid-valid-credential auth/cid/manifest#authn-cid-didkey-valid-credential | PASS | PASS | PASS | PASS | PASS | PASS |
| exp-claim | MUST | auth/cid/manifest#authn-cid-valid-credential auth/cid/manifest#authn-cid-didkey-valid-credential auth/cid/manifest#authn-cid-didkey-missing-exp | PASS | PASS | PASS | PASS | PASS | PASS |
| iat-claim | MUST | auth/cid/manifest#authn-cid-valid-credential auth/cid/manifest#authn-cid-didkey-valid-credential auth/cid/manifest#authn-cid-didkey-missing-iat | PASS | PASS | PASS | PASS | PASS | PASS |
| iss-claim | MUST | auth/cid/manifest#authn-cid-valid-credential auth/cid/manifest#authn-cid-didkey-valid-credential | PASS | PASS | PASS | PASS | PASS | PASS |
| sub-claim | MUST | auth/cid/manifest#authn-cid-valid-credential auth/cid/manifest#authn-cid-didkey-valid-credential | PASS | PASS | PASS | PASS | PASS | PASS |
| sub-iss-client-same-uri | MUST | auth/cid/manifest#authn-cid-valid-credential auth/cid/manifest#authn-cid-claims-mismatch auth/cid/manifest#authn-cid-didkey-valid-credential auth/cid/manifest#authn-cid-didkey-claims-mismatch auth/cid/manifest#authn-cid-didkey-missing-subject auth/cid/manifest#authn-cid-didkey-missing-issuer auth/cid/manifest#authn-cid-didkey-missing-client-id | PASS | PASS | PASS | PASS | PASS | PASS |
| token-type-jwt | MUST | auth/cid/manifest#authn-cid-valid-credential auth/cid/manifest#authn-cid-didkey-valid-credential | PASS | PASS | PASS | PASS | PASS | PASS |
| validation-all-claims | MUST | auth/cid/manifest#authn-cid-valid-credential auth/cid/manifest#authn-cid-claims-mismatch auth/cid/manifest#authn-cid-didkey-valid-credential auth/cid/manifest#authn-cid-didkey-alg-none auth/cid/manifest#authn-cid-didkey-claims-mismatch auth/cid/manifest#authn-cid-didkey-audience-excludes-as auth/cid/manifest#authn-cid-didkey-missing-exp auth/cid/manifest#authn-cid-didkey-missing-iat | PASS | PASS | PASS | PASS | PASS | PASS |
| validation-dereference-sub-cid | MUST | auth/cid/manifest#authn-cid-valid-credential auth/cid/manifest#authn-cid-document-id-mismatch auth/cid/manifest#authn-cid-referenced-method auth/cid/manifest#authn-cid-didkey-valid-credential | PASS | PASS | PASS | PASS | PASS | PASS |
| validation-exp-in-future | MUST | auth/cid/manifest#authn-cid-valid-credential auth/cid/manifest#authn-cid-expired auth/cid/manifest#authn-cid-didkey-valid-credential auth/cid/manifest#authn-cid-didkey-expired | PASS | PASS | PASS | PASS | PASS | PASS |
| validation-kid-verification-method | MUST | auth/cid/manifest#authn-cid-valid-credential auth/cid/manifest#authn-cid-unknown-kid auth/cid/manifest#authn-cid-bad-signature auth/cid/manifest#authn-cid-key-not-for-authentication auth/cid/manifest#authn-cid-key-revoked auth/cid/manifest#authn-cid-foreign-controller auth/cid/manifest#authn-cid-referenced-method auth/cid/manifest#authn-cid-didkey-valid-credential auth/cid/manifest#authn-cid-didkey-invalid-signature | PASS | PASS | PASS | FAIL | PASS | PASS |
| validation-reject-alg-none | MUST | auth/cid/manifest#authn-cid-alg-none | PASS | PASS | PASS | PASS | PASS | PASS |
| access-access-collection | MUST | core/access_grants#access-grant-document-shape core/access_grants#access-grant-incomplete-refused | PASS | PASS | PASS | PASS | PASS | PASS |
| access-access-required | MUST | core/access_grants#access-grant-document-shape core/access_grants#access-grant-incomplete-refused | PASS | PASS | PASS | PASS | PASS | PASS |
| access-endpoints-are-lws-containers | MUST | core/access_grants#access-grant-endpoint-is-container | PASS | PASS | PASS | PASS | PASS | PASS |
| access-endpoints-get-post-delete | SHOULD | core/access_grants#access-grant-revoke | PASS | PASS | PASS | PASS | PASS | PASS |
| access-endpoints-jsonld-payloads | MUST | core/access_grants#access-grant-create | PASS | PASS | PASS | PASS | PASS | PASS |
| access-extra-properties-allowed | MAY | core/access_grants#access-grant-extra-properties-accepted | PASS | PASS | PASS | PASS | PASS | PASS |
| access-inbox-notifications | SHOULD | core/access_grants#access-grant-inbox-notified | PASS | PASS | PASS | PASS | PASS | PASS |
| access-inbox-optional | MAY | core/access_grants#access-grant-extra-properties-accepted | PASS | PASS | PASS | PASS | PASS | PASS |
| access-inbox-uri | MUST | core/access_grants#access-grant-incomplete-refused | PASS | PASS | PASS | PASS | PASS | PASS |
| access-jsonld-context-lws-v1 | MUST | core/access_grants#access-grant-document-shape | PASS | PASS | PASS | PASS | PASS | PASS |
| access-notification-data-model | MUST | core/access_grants#access-grant-inbox-notified | PASS | PASS | PASS | PASS | PASS | PASS |
| access-notification-delivery | MUST | core/access_grants#access-grant-inbox-notified | PASS | PASS | PASS | PASS | PASS | PASS |
| access-notification-events | SHOULD | core/access_grants#access-grant-inbox-notified | PASS | PASS | PASS | PASS | PASS | PASS |
| access-notify-grant-created | SHOULD | UNCOVERED | UNCOVERED | UNCOVERED | UNCOVERED | UNCOVERED | UNCOVERED | |
| access-notify-other-events | MAY | UNCOVERED | UNCOVERED | UNCOVERED | UNCOVERED | UNCOVERED | UNCOVERED | |
| access-notify-request-created | SHOULD | UNCOVERED | UNCOVERED | UNCOVERED | UNCOVERED | UNCOVERED | UNCOVERED | |
| access-post-location-header | MUST | core/access_grants#access-grant-create core/access_grants#access-request-create | PASS | PASS | PASS | PASS | PASS | PASS |
| access-services-advertised | MUST | core/access_grants#access-grant-endpoint-is-container | PASS | PASS | PASS | PASS | PASS | PASS |
| access-storage-required | MUST | core/access_grants#access-grant-document-shape core/access_grants#access-grant-incomplete-refused | PASS | PASS | PASS | PASS | PASS | PASS |
| access-storage-uri | MUST | core/access_grants#access-grant-create | PASS | PASS | PASS | PASS | PASS | PASS |
| access-type-required | MUST | core/access_grants#access-grant-document-shape core/access_grants#access-grant-incomplete-refused | PASS | PASS | PASS | PASS | PASS | PASS |
| access-type-values | MUST | core/access_grants#access-grant-create core/access_grants#access-request-create | PASS | PASS | PASS | PASS | PASS | PASS |
| authn-audience-restriction-recommended | SHOULD | auth/cid/manifest#authn-cid-didkey-audience-excludes-as | PASS | PASS | PASS | PASS | PASS | PASS |
| authn-client-claim | MUST | auth/oidc/manifest#authn-oidc-missing-azp auth/cid/manifest#authn-cid-didkey-missing-client-id | PASS | PASS | PASS | PASS | PASS | PASS |
| authn-credential-signed | MUST | auth/oidc/manifest#authn-oidc-alg-none auth/oidc/manifest#authn-oidc-bad-signature auth/cid/manifest#authn-cid-bad-signature auth/cid/manifest#authn-cid-alg-none auth/cid/manifest#authn-cid-didkey-invalid-signature auth/cid/manifest#authn-cid-didkey-alg-none auth/saml/manifest#authn-saml-invalid-signature auth/saml/manifest#authn-saml-unsigned | PASS | PASS | PASS | PASS | PASS | PASS |
| authn-credential-tamper-evident-claims | MUST | auth/cid/manifest#authn-cid-didkey-missing-subject auth/cid/manifest#authn-cid-didkey-missing-issuer auth/cid/manifest#authn-cid-didkey-missing-client-id | PASS | PASS | PASS | PASS | PASS | PASS |
| authn-issuer-claim-uri | MUST | auth/cid/manifest#authn-cid-didkey-missing-issuer | PASS | PASS | PASS | PASS | PASS | PASS |
| authn-issuer-trust-out-of-band | MAY | UNCOVERED | UNCOVERED | UNCOVERED | UNCOVERED | UNCOVERED | UNCOVERED | |
| authn-subject-claim-uri | MUST | auth/cid/manifest#authn-cid-didkey-missing-subject | PASS | PASS | PASS | PASS | PASS | PASS |
| authn-suite-token-type-uri | MUST | core/authorization_server#authz-metadata-subject-token-types-are-uris | PASS | PASS | PASS | PASS | PASS | PASS |
| authz-401-www-authenticate-challenge | MUST | core/storage_authorization#getContainer-private-unauthorized core/storage_authorization#createDataResource-unauthorized core/storage_authorization#updateDataResource-unauthorized core/storage_authorization#deleteDataResource-unauthorized | PASS | PASS | PASS | PASS | PASS | PASS |
| authz-access-token-aud-claim | MUST | core/storage_authorization#authz-token-wrong-audience-rejected core/storage_authorization#authz-token-multiple-audiences-rejected core/authorization_server#authz-token-exchange-valid | PASS | PASS | PASS | PASS | PASS | PASS |
| authz-access-token-client-id-claim | MUST | core/authorization_server#authz-token-exchange-valid | PASS | PASS | PASS | PASS | PASS | PASS |
| authz-access-token-exp-short-lived | MUST | core/authorization_server#authz-token-exchange-valid | PASS | PASS | PASS | PASS | PASS | PASS |
| authz-access-token-iat-claim | MUST | core/authorization_server#authz-token-exchange-valid | PASS | PASS | PASS | PASS | PASS | PASS |
| authz-access-token-iss-claim | MUST | core/storage_authorization#authz-token-wrong-issuer-rejected core/authorization_server#authz-token-exchange-valid | PASS | PASS | PASS | PASS | PASS | PASS |
| authz-access-token-jti-claim | MUST | core/authorization_server#authz-token-exchange-valid | PASS | PASS | PASS | PASS | PASS | PASS |
| authz-access-token-sub-claim | MUST | core/authorization_server#authz-token-exchange-valid | PASS | PASS | PASS | PASS | PASS | PASS |
| authz-bearer-presentation-rfc6750 | MUST | core/storage_authorization#getContainer-authenticated-owner | PASS | PASS | PASS | PASS | PASS | PASS |
| authz-challenge-as-uri-param | MUST | core/storage_authorization#getContainer-private-unauthorized | PASS | PASS | PASS | PASS | PASS | PASS |
| authz-challenge-extra-params | MAY | UNCOVERED | UNCOVERED | UNCOVERED | UNCOVERED | UNCOVERED | UNCOVERED | |
| authz-challenge-realm-param | MUST | core/storage_authorization#getContainer-private-unauthorized | PASS | PASS | PASS | PASS | PASS | PASS |
| authz-invalid-token-401-error-param | MUST | core/storage_authorization#authz-expired-token-rejected core/storage_authorization#authz-token-bad-signature-rejected | PASS | PASS | PASS | PASS | PASS | PASS |
| authz-jwt-signature-jwks-rotation | MUST | core/storage_authorization#authz-token-bad-signature-rejected core/storage_authorization#authz-token-alg-none-rejected core/storage_authorization#authz-token-unknown-key-rejected core/authorization_server#authz-issued-token-accepted-by-storage | PASS | PASS | PASS | PASS | PASS | PASS |
| authz-metadata-subject-identifier-types | SHOULD | core/authorization_server#authz-metadata-subject-identifier-types | PASS | PASS | PASS | PASS | PASS | PASS |
| authz-metadata-subject-token-types | SHOULD | core/authorization_server#authz-metadata-subject-token-types core/authorization_server#authz-metadata-subject-token-types-are-uris | PASS | PASS | PASS | PASS | PASS | PASS |
| authz-oauth2-baseline | MAY | UNCOVERED | UNCOVERED | UNCOVERED | UNCOVERED | UNCOVERED | UNCOVERED | |
| authz-policy-denial-rejected | MUST | core/storage_authorization#authz-non-owner-read-rejected core/storage_authorization#authz-non-owner-write-rejected core/storage_authorization#authz-non-owner-delete-rejected core/access_grants#access-grant-authenticated-agent | PASS | PASS | PASS | PASS | PASS | PASS |
| authz-server-metadata-well-known | MUST | core/authorization_server#authz-server-metadata-well-known | PASS | PASS | PASS | PASS | PASS | PASS |
| authz-token-error-rfc6749 | MUST | core/authorization_server#authz-token-exchange-invalid-resource core/authorization_server#authz-token-exchange-missing-resource core/authorization_server#authz-token-exchange-missing-subject-token | PASS | PASS | PASS | PASS | PASS | PASS |
| authz-token-exchange-grant | MUST | core/authorization_server#authz-server-metadata-well-known core/authorization_server#authz-token-exchange-valid | PASS | PASS | PASS | PASS | PASS | PASS |
| authz-token-exchange-resource-param | MUST | core/authorization_server#authz-token-exchange-valid core/authorization_server#authz-token-exchange-invalid-resource core/authorization_server#authz-token-exchange-missing-resource | PASS | PASS | PASS | PASS | PASS | PASS |
| authz-token-exchange-subject-token-param | MUST | core/authorization_server#authz-token-exchange-valid core/authorization_server#authz-token-exchange-missing-subject-token | PASS | PASS | PASS | PASS | PASS | PASS |
| authz-token-response-rfc6749-rfc9068 | MUST | core/authorization_server#authz-token-exchange-valid | PASS | PASS | PASS | PASS | PASS | PASS |
| authz-token-validation-checklist | MUST | core/storage_authorization#getContainer-authenticated-owner core/storage_authorization#authz-expired-token-rejected core/storage_authorization#authz-token-alg-none-rejected core/storage_authorization#authz-token-unknown-key-rejected core/storage_authorization#authz-token-wrong-audience-rejected core/storage_authorization#authz-token-wrong-issuer-rejected core/storage_authorization#authz-token-not-yet-valid-rejected core/storage_authorization#authz-token-issued-in-future-rejected core/storage_authorization#authz-token-multiple-audiences-rejected core/authorization_server#authz-issued-token-accepted-by-storage | PASS | PASS | PASS | PASS | PASS | PASS |
| authz-validate-before-issuing | MUST | core/authorization_server#authz-token-exchange-valid | PASS | PASS | PASS | PASS | PASS | PASS |
| conditional-requests-supported | SHOULD | core/conditional_requests#conditional-get-304 core/conditional_requests#conditional-delete-stale-if-match-412 core/conditional_requests#conditional-get-if-modified-since-304 core/conditional_requests#conditional-get-if-unmodified-since-412 | PASS | PASS | PASS | PASS | PASS | PASS |
| conformance-server-class | MUST | UNCOVERED | UNCOVERED | UNCOVERED | UNCOVERED | UNCOVERED | UNCOVERED | |
| conneg-media-type-equivalence | MUST | core/containers#container-conneg core/containers#container-conneg-weighted | PASS | PASS | PASS | PASS | PASS | PASS |
| conneg-vary-accept | SHOULD | core/containers#container-conneg-vary | PASS | PASS | PASS | PASS | PASS | PASS |
| contained-description-recommended-members | SHOULD | core/containers#contained-resource-size-modified | PASS | PASS | PASS | PASS | PASS | PASS |
| contained-description-required-members | MUST | core/containers#getContainer-containmentIntegrity | PASS | PASS | PASS | PASS | PASS | PASS |
| contained-format-for-dataresources | MUST | core/containers#getContainer-containmentIntegrity core/containers#contained-resource-format | PASS | PASS | PASS | PASS | PASS | PASS |
| contained-resource-type-values | MUST | core/containers#contained-resource-type-values | PASS | PASS | PASS | PASS | PASS | PASS |
| container-empty-items-array | MUST | core/containers#createContainer core/containers#getContainer-containmentIntegrity | PASS | PASS | PASS | PASS | PASS | PASS |
| container-listing-authorization-visibility | MUST | core/containers#getContainer-containmentIntegrity | PASS | PASS | PASS | PASS | PASS | PASS |
| container-model-members | MAY | UNCOVERED | UNCOVERED | UNCOVERED | UNCOVERED | UNCOVERED | UNCOVERED | |
| container-representation-required-properties | MUST | core/containers#getContainer | PASS | PASS | PASS | PASS | PASS | PASS |
| container-totalitems-accuracy | SHOULD | core/containers#container-total-items-accurate | PASS | PASS | PASS | PASS | PASS | PASS |
| containment-create-atomic-items | MUST | core/containers#getContainer-containmentIntegrity | PASS | PASS | PASS | PASS | PASS | PASS |
| containment-delete-atomic-items | MUST | core/containers#delete-empty-container core/data_resources#deleteDataResource core/conditional_requests#delete-updates-parent-strong-etag | PASS | PASS | PASS | PASS | PASS | PASS |
| containment-integrity | MUST | core/containers#containment-hierarchy-consistent | PASS | PASS | PASS | PASS | PASS | PASS |
| containment-no-cycles | MUST | UNCOVERED | UNCOVERED | UNCOVERED | UNCOVERED | UNCOVERED | UNCOVERED | |
| containment-no-orphans | MUST | core/containers#containment-hierarchy-consistent | PASS | PASS | PASS | PASS | PASS | PASS |
| containment-rel-up-get-head | MUST | core/containers#getContainer core/data_resources#readDataResource core/data_resources#data-resource-head-parity core/linksets#linkset-up-not-redirected | PASS | PASS | PASS | PASS | PASS | PASS |
| create-401-storage-link | SHOULD | core/discovery#discovery-unauthorized-response-headers | PASS | PASS | PASS | PASS | PASS | PASS |
| create-container-type-link | MUST | core/containers#createContainer | PASS | PASS | PASS | PASS | PASS | PASS |
| create-linkset-before-success | MUST | core/data_resources#createDataResource | PASS | PASS | PASS | PASS | PASS | PASS |
| create-post-201-location-links | MUST | core/containers#createContainer core/containers#createContainer-type-link core/data_resources#createDataResource core/data_resources#createDataResource-type-link core/linksets#linkset-ready-at-create | PASS | PASS | PASS | PASS | PASS | PASS |
| create-post-missing-container-404 | MUST | core/data_resources#create-in-missing-container-rejected core/data_resources#create-in-missing-container-404 | PASS | PASS | PASS | PASS | PASS | PASS |
| create-post-not-idempotent | SHOULD | core/data_resources#create-post-twice-distinct | PASS | PASS | PASS | PASS | PASS | PASS |
| create-server-managed-metadata-protected | MUST | core/data_resources#create-server-managed-links-protected | PASS | PASS | PASS | PASS | PASS | PASS |
| delete-401-403-404-semantics | MUST | core/storage_authorization#deleteDataResource-unauthorized core/storage_authorization#authz-non-owner-delete-rejected | PASS | PASS | PASS | PASS | PASS | PASS |
| delete-if-match-optional | MAY | core/conditional_requests#conditional-delete-stale-if-match-412 | PASS | PASS | PASS | PASS | PASS | PASS |
| delete-non-empty-container-409-depth | MUST | core/containers#delete-non-empty-container-409 core/containers#delete-container-recursive core/containers#delete-container-recursive-deep | PASS | PASS | PASS | PASS | PASS | PASS |
| delete-removes-from-parent-listing | MUST | core/containers#delete-container-recursive-deep core/conditional_requests#delete-updates-parent-strong-etag | PASS | PASS | PASS | PASS | PASS | PASS |
| delete-success-204-conditional | MUST | core/containers#delete-empty-container core/data_resources#deleteDataResource core/conditional_requests#conditional-delete-stale-if-match-412 | PASS | PASS | PASS | PASS | PASS | PASS |
| error-rfc9457-problem-details | SHOULD | core/data_resources#error-problem-details | PASS | PASS | PASS | PASS | PASS | PASS |
| get-data-resource-content-range-etag | MUST | core/data_resources#createDataResource core/data_resources#readDataResource core/data_resources#data-resource-range-request | PASS | PASS | PASS | PASS | PASS | PASS |
| head-parity-with-get | MUST | core/containers#container-head-parity core/data_resources#data-resource-head-parity | PASS | PASS | PASS | PASS | PASS | PASS |
| iana-ld-json-profile-equivalence | SHOULD | core/containers#container-ld-json-lws-profile | PASS | PASS | PASS | PASS | PASS | PASS |
| link-storage-on-responses | MUST | core/discovery#discovery-get-links-storageDescription core/discovery#discovery-link-storage-on-data-resource core/containers#getContainer core/data_resources#readDataResource | PASS | PASS | PASS | PASS | PASS | PASS |
| link-up-on-non-root-resources | MUST | core/data_resources#readDataResource | PASS | PASS | PASS | PASS | PASS | PASS |
| linkset-accept-patch-json-patch | MUST | core/linksets#linkset-advertises-patch | PASS | PASS | PASS | FAIL | PASS | PASS |
| linkset-allow-get-patch | MUST | core/linksets#linkset-advertises-patch | PASS | PASS | PASS | FAIL | PASS | PASS |
| linkset-etag-get-head | MUST | core/linksets#getLinkset | PASS | PASS | PASS | PASS | PASS | PASS |
| linkset-lifecycle-tied-to-resource | MUST | core/containers#delete-container-recursive-deep core/linksets#linkset-removed-with-resource | PASS | PASS | PASS | PASS | PASS | PASS |
| linkset-media-type-json | MUST | core/linksets#getLinkset | PASS | PASS | PASS | PASS | PASS | PASS |
| linkset-optional-methods-advertised | MUST | core/linksets#linkset-put-405-when-unsupported | PASS | INAPPLICABLE | PASS | PASS | INAPPLICABLE | PASS |
| linkset-patch-json-patch | MUST | core/linksets#linkset-patch-json-patch | PASS | PASS | PASS | FAIL | PASS | PASS |
| linkset-precondition-failed-412 | MUST | core/linksets#linkset-conditional-412 | PASS | PASS | PASS | FAIL | PASS | PASS |
| linkset-put-405-if-unsupported | MUST | core/linksets#linkset-put-405-when-unsupported | PASS | INAPPLICABLE | PASS | PASS | INAPPLICABLE | PASS |
| linkset-restricted-links | MAY | core/linksets#linkset-up-not-redirected | PASS | PASS | PASS | PASS | PASS | PASS |
| linkset-server-managed-atomic | MUST | core/linksets#linkset-removed-with-resource core/linksets#linkset-ready-at-create | PASS | PASS | PASS | PASS | PASS | PASS |
| linkset-standalone-rfc9264 | MUST | core/linksets#getLinkset core/linksets#linkset-patch-stays-linkset | PASS | PASS | PASS | PASS | PASS | PASS |
| lws-cid-media-type-storage-description | MUST | core/discovery#discovery-storage-description | PASS | PASS | PASS | PASS | PASS | PASS |
| lws-json-media-type-container-representation | MUST | core/containers#container-conneg | PASS | PASS | PASS | PASS | PASS | PASS |
| lws-profile-equivalence | SHOULD | core/containers#container-ld-json-lws-profile | PASS | PASS | PASS | PASS | PASS | PASS |
| metadata-capability-advertising | MUST | core/linksets#linkset-advertises-patch | PASS | PASS | PASS | FAIL | PASS | PASS |
| notification-activity-as2-conformance | MUST | core/notifications#notification-delivered-create | PASS | PASS | PASS | FAIL | PASS | PASS |
| notification-activity-id | MUST | core/notifications#notification-delivered-create | PASS | PASS | PASS | FAIL | PASS | PASS |
| notification-activity-object | MUST | core/notifications#notification-delivered-create | PASS | PASS | PASS | FAIL | PASS | PASS |
| notification-activity-object-id | MUST | core/notifications#notification-delivered-create core/notifications#notification-delivered-update core/notifications#notification-delivered-delete core/notifications#notification-delivered-in-subcontainer core/notifications#notification-scope-data-resource-only | PASS | PASS | PASS | FAIL | PASS | PASS |
| notification-activity-object-type | MUST | core/notifications#notification-delivered-create | PASS | PASS | PASS | FAIL | PASS | PASS |
| notification-activity-optional-properties | MAY | core/notifications#notification-actor-omitted | PASS | PASS | PASS | FAIL | PASS | PASS |
| notification-activity-published | MUST | core/notifications#notification-delivered-create | PASS | PASS | PASS | FAIL | PASS | PASS |
| notification-activity-type | MUST | core/notifications#notification-delivered-create core/notifications#notification-delivered-update core/notifications#notification-delivered-delete | PASS | PASS | PASS | FAIL | PASS | PASS |
| notification-activity-types-additional | MAY | UNCOVERED | UNCOVERED | UNCOVERED | UNCOVERED | UNCOVERED | UNCOVERED | |
| notification-activity-types-supported | MUST | core/notifications#notification-delivered-create core/notifications#notification-delivered-update core/notifications#notification-delivered-delete core/notifications#notification-delivered-in-subcontainer core/notifications#notification-scope-data-resource-only | PASS | PASS | PASS | FAIL | PASS | PASS |
| notification-batching | MAY | UNCOVERED | UNCOVERED | UNCOVERED | UNCOVERED | UNCOVERED | UNCOVERED | |
| notification-envelope-activity | MUST | core/notifications#notification-delivered-create | PASS | PASS | PASS | FAIL | PASS | PASS |
| notification-envelope-storage | MUST | core/notifications#notification-delivered-create | PASS | PASS | PASS | FAIL | PASS | PASS |
| notification-envelope-type | MUST | core/notifications#notification-delivered-create | PASS | PASS | PASS | FAIL | PASS | PASS |
| notification-suite-subscription-type-identifier | MUST | core/notifications#subscription-create | PASS | PASS | PASS | FAIL | PASS | PASS |
| notifications-advertise-notificationservice | MUST | core/notifications#notification-service-advertised | PASS | PASS | PASS | PASS | PASS | PASS |
| notificationservice-additional-properties | MAY | UNCOVERED | UNCOVERED | UNCOVERED | UNCOVERED | UNCOVERED | UNCOVERED | |
| notificationservice-endpoint-and-subscription-types | MUST | core/notifications#notification-service-advertised | PASS | PASS | PASS | PASS | PASS | PASS |
| operations-core-four-atomic | MUST | UNCOVERED | UNCOVERED | UNCOVERED | UNCOVERED | UNCOVERED | UNCOVERED | |
| pagination-200-totalitems-all-pages | MUST | core/pagination#pagination-first-page core/pagination#pagination-next-page core/pagination#pagination-totalitems-all-pages | INAPPLICABLE | PASS | PASS | INAPPLICABLE | PASS | PASS |
| pagination-first-page-flow | MAY | core/pagination#pagination-first-page | INAPPLICABLE | PASS | PASS | INAPPLICABLE | PASS | PASS |
| pagination-link-first | MUST | core/pagination#pagination-first-page core/pagination#pagination-next-page core/pagination#pagination-single-page core/pagination#pagination-last-page index/manifest#type-search-next-page | PASS | PASS | PASS | INAPPLICABLE | PASS | PASS |
| pagination-link-last | MAY | core/pagination#pagination-last-page | INAPPLICABLE | PASS | PASS | INAPPLICABLE | PASS | PASS |
| pagination-link-next | MUST | core/pagination#pagination-single-page core/pagination#pagination-last-page | PASS | PASS | PASS | INAPPLICABLE | PASS | PASS |
| pagination-link-prev | MUST | core/pagination#pagination-first-page core/pagination#pagination-single-page | PASS | PASS | PASS | INAPPLICABLE | PASS | PASS |
| pagination-over-threshold | SHOULD | UNCOVERED | UNCOVERED | UNCOVERED | UNCOVERED | UNCOVERED | UNCOVERED | |
| patch-json-patch-baseline | MUST | core/data_resources#patch-json-patch-baseline core/data_resources#patch-json-patch-atomic | PASS | PASS | PASS | FAIL | PASS | PASS |
| policy-action-required | MUST | core/access_grants#access-grant-document-shape core/access_grants#access-grant-incomplete-refused | PASS | PASS | PASS | PASS | PASS | PASS |
| policy-action-values | MUST | core/access_grants#access-grant-authenticated-agent | PASS | PASS | PASS | PASS | PASS | PASS |
| policy-assignee-required | MUST | core/access_grants#access-grant-document-shape core/access_grants#access-grant-incomplete-refused | PASS | PASS | PASS | PASS | PASS | PASS |
| policy-assignee-uri-foaf-agent | MUST | core/access_grants#getContainer-public-read core/access_grants#readDataResource-public-read | PASS | PASS | PASS | PASS | PASS | PASS |
| policy-constraint-left-operands | MUST | core/access_grants#access-grant-constraints-all-satisfied core/access_grants#access-grant-left-operands-accepted core/access_grants#access-grant-constraint-format core/access_grants#access-grant-constraint-type core/access_grants#access-grant-constraint-client | PASS | PASS | PASS | PASS | PASS | PASS |
| policy-constraint-objects | MUST | core/access_grants#access-grant-constraints-all-satisfied core/access_grants#access-grant-left-operands-accepted | PASS | PASS | PASS | PASS | PASS | PASS |
| policy-constraint-optional | MAY | core/access_grants#access-grant-extra-properties-accepted | PASS | PASS | PASS | PASS | PASS | PASS |
| policy-constraints-all-satisfied | MUST | core/access_grants#access-grant-constraints-all-satisfied | PASS | PASS | PASS | PASS | PASS | PASS |
| policy-constraints-conjunction-semantics | MUST | core/access_grants#access-grant-constraints-all-satisfied | PASS | PASS | PASS | PASS | PASS | PASS |
| policy-target-extra-types | MAY | UNCOVERED | UNCOVERED | UNCOVERED | UNCOVERED | UNCOVERED | UNCOVERED | |
| policy-target-object | MUST | core/access_grants#access-grant-document-shape core/access_grants#access-grant-incomplete-refused | PASS | PASS | PASS | PASS | PASS | PASS |
| policy-target-optional | MAY | UNCOVERED | UNCOVERED | UNCOVERED | UNCOVERED | UNCOVERED | UNCOVERED | |
| policy-type-access-policy | MUST | core/access_grants#access-grant-document-shape core/access_grants#access-grant-incomplete-refused | PASS | PASS | PASS | PASS | PASS | PASS |
| policy-type-required | MUST | core/access_grants#access-grant-document-shape core/access_grants#access-grant-incomplete-refused | PASS | PASS | PASS | PASS | PASS | PASS |
| privacy-notification-actor-omitted | SHOULD | core/notifications#notification-actor-omitted | PASS | PASS | PASS | FAIL | PASS | PASS |
| privacy-notification-authorized-resources-only | SHOULD | core/notifications#notification-not-delivered-for-unreadable-resource | PASS | INAPPLICABLE | PASS | INAPPLICABLE | INAPPLICABLE | INAPPLICABLE |
| put-clients-use-conditional-requests | SHOULD | UNCOVERED | UNCOVERED | UNCOVERED | UNCOVERED | UNCOVERED | UNCOVERED | |
| read-401-www-authenticate-discoverability | SHOULD | core/discovery#discovery-unauthorized-response-headers core/storage_authorization#getContainer-private-unauthorized | PASS | PASS | PASS | PASS | PASS | PASS |
| read-container-etag-type-links | MUST | core/containers#getContainer | PASS | PASS | PASS | PASS | PASS | PASS |
| read-container-listing-authz-filtered | MAY | core/access_grants#container-listing-filtered-metadata | PASS | PASS | PASS | PASS | PASS | PASS |
| read-container-listing-member-metadata | MUST | core/containers#contained-resource-format | PASS | PASS | PASS | PASS | PASS | PASS |
| read-type-distinction-metadata-links | MUST | core/containers#getContainer core/data_resources#readDataResource | PASS | PASS | PASS | PASS | PASS | PASS |
| security-notification-access-control | MUST | core/notifications#subscription-unreadable-topic-refused core/notifications#subscription-after-revocation-refused core/notifications#notification-not-delivered-for-unreadable-resource core/notifications#notification-stops-after-revocation | PASS | PASS | PASS | INAPPLICABLE | PASS | PASS |
| status-204-410-deletions | MAY | core/data_resources#deleteDataResource | PASS | PASS | PASS | PASS | PASS | PASS |
| storage-capability-id-optional | MUST | core/discovery#discovery-storage-description-ids-are-uris | PASS | PASS | PASS | PASS | PASS | PASS |
| storage-capability-property | MUST | core/discovery#discovery-storage-description-ids-are-uris | PASS | PASS | PASS | PASS | PASS | PASS |
| storage-capability-type-required | MUST | core/discovery#discovery-storage-description | PASS | PASS | PASS | PASS | PASS | PASS |
| storage-description-id-required | MUST | core/discovery#discovery-storage-description | PASS | PASS | PASS | PASS | PASS | PASS |
| storage-description-link-header | MUST | core/discovery#discovery-get-links-storageDescription core/discovery#discovery-link-storage-on-data-resource | PASS | PASS | PASS | PASS | PASS | PASS |
| storage-description-lws-cid | MUST | core/discovery#discovery-storage-description | PASS | PASS | PASS | PASS | PASS | PASS |
| storage-description-storageroot-service | MUST | core/discovery#discovery-storage-description core/discovery#discovery-storage-root-is-container | PASS | PASS | PASS | PASS | PASS | PASS |
| storage-description-type-storage | MUST | core/discovery#discovery-storage-description | PASS | PASS | PASS | PASS | PASS | PASS |
| storage-service-endpoint-required | MUST | core/discovery#discovery-storage-description | PASS | PASS | PASS | PASS | PASS | PASS |
| storage-service-id-optional | MUST | core/discovery#discovery-storage-description-ids-are-uris | PASS | PASS | PASS | PASS | PASS | PASS |
| storage-service-property | MUST | core/discovery#discovery-storage-description | PASS | PASS | PASS | PASS | PASS | PASS |
| storage-service-type-required | MUST | core/discovery#discovery-storage-description | PASS | PASS | PASS | PASS | PASS | PASS |
| storage-uri-returns-lws-cid-document | MUST | core/discovery#discovery-storage-description core/discovery#discovery-storage-description-default-media-type | PASS | PASS | PASS | PASS | PASS | PASS |
| subscription-authorization-on-create | MUST | core/notifications#subscription-unreadable-topic-refused core/notifications#subscription-after-revocation-refused | PASS | PASS | PASS | INAPPLICABLE | PASS | PASS |
| subscription-authorization-on-delivery | MUST | core/notifications#notification-not-delivered-for-unreadable-resource core/notifications#notification-stops-after-revocation | PASS | PASS | PASS | INAPPLICABLE | PASS | PASS |
| subscription-authorization-revoked | MUST | core/notifications#notification-stops-after-revocation | PASS | PASS | PASS | INAPPLICABLE | PASS | PASS |
| subscription-create-post-lws-json | MUST | core/notifications#subscription-create | PASS | PASS | PASS | FAIL | PASS | PASS |
| subscription-request-additional-fields | MAY | core/notifications#subscription-create | PASS | PASS | PASS | FAIL | PASS | PASS |
| subscription-request-required-fields | MUST | core/notifications#subscription-create core/notifications#subscription-missing-type-refused core/notifications#subscription-missing-topic-refused | PASS | PASS | PASS | FAIL | PASS | PASS |
| subscription-request-topic | MUST | core/notifications#subscription-create core/notifications#subscription-missing-topic-refused | PASS | PASS | PASS | FAIL | PASS | PASS |
| subscription-request-type | MUST | core/notifications#subscription-create core/notifications#subscription-missing-type-refused core/notifications#subscription-unadvertised-type-refused | PASS | PASS | PASS | FAIL | PASS | PASS |
| subscription-response-lws-json | MUST | core/notifications#subscription-create | PASS | PASS | PASS | FAIL | PASS | PASS |
| subscription-response-subscription-url | MUST | core/notifications#subscription-create | PASS | PASS | PASS | FAIL | PASS | PASS |
| subscription-response-type | MUST | core/notifications#subscription-create | PASS | PASS | PASS | FAIL | PASS | PASS |
| update-content-vs-metadata-prefer-set-linkset | MUST | core/data_resources#updateDataResource | PASS | PASS | PASS | PASS | PASS | PASS |
| uri-independent-of-hierarchy | SHOULD | core/data_resources#create-post-twice-distinct | PASS | PASS | PASS | PASS | PASS | PASS |
| accept-query-advertised | SHOULD | index/manifest#type-search-accept-query-advertised | PASS | PASS | PASS | INAPPLICABLE | PASS | PASS |
| accept-query-no-disclosure | MUST | index/manifest#type-search-accept-query-advertised | PASS | PASS | PASS | INAPPLICABLE | PASS | PASS |
| at-members-ignored | MUST | index/manifest#type-search-at-members-ignored | PASS | PASS | PASS | INAPPLICABLE | PASS | PASS |
| authorization-enforced | MUST | index/manifest#type-index-lists-readable-types index/manifest#type-index-omits-unreadable-type index/manifest#type-search-authorization-filtered | PASS | PASS | PASS | INAPPLICABLE | PASS | PASS |
| baseline-format-supported | MUST | index/manifest#type-search-by-type | PASS | PASS | PASS | INAPPLICABLE | PASS | PASS |
| consistency-not-for-authorization | MUST | index/manifest#type-search-revoked-not-shown | PASS | PASS | PASS | INAPPLICABLE | PASS | PASS |
| content-location-protected | MUST | index/manifest#type-search-content-location-protected | INAPPLICABLE | INAPPLICABLE | PASS | INAPPLICABLE | INAPPLICABLE | INAPPLICABLE |
| content-types-identical | MUST | index/manifest#type-search-content-types-identical | PASS | PASS | PASS | INAPPLICABLE | PASS | PASS |
| counts-filtered | MUST | index/manifest#type-search-authorization-filtered | PASS | PASS | PASS | INAPPLICABLE | PASS | PASS |
| current-authorization | MUST | index/manifest#type-search-revoked-not-shown | PASS | PASS | PASS | INAPPLICABLE | PASS | PASS |
| derived-index-filtered | MUST | index/manifest#type-search-authorization-filtered index/manifest#type-search-revoked-not-shown | PASS | PASS | PASS | INAPPLICABLE | PASS | PASS |
| duplicate-groups-ignored | MUST | index/manifest#type-search-duplicate-groups | PASS | PASS | PASS | INAPPLICABLE | PASS | PASS |
| empty-group-rejected | MUST | index/manifest#type-search-empty-group-rejected | PASS | PASS | PASS | INAPPLICABLE | PASS | PASS |
| eventually-consistent | MAY | UNCOVERED | UNCOVERED | UNCOVERED | UNCOVERED | UNCOVERED | UNCOVERED | |
| expired-page-404-410 | MUST | index/manifest#type-search-unrecognized-page-link | PASS | PASS | PASS | INAPPLICABLE | PASS | INAPPLICABLE |
| extensions-uphold-authorization | MUST | UNCOVERED | UNCOVERED | UNCOVERED | UNCOVERED | UNCOVERED | UNCOVERED | |
| grammar-not-extended | MUST | index/manifest#type-search-bad-element-rejected | PASS | PASS | PASS | INAPPLICABLE | PASS | PASS |
| invalid-iri-400 | MUST | index/manifest#type-search-relative-iri-rejected | PASS | PASS | PASS | INAPPLICABLE | PASS | PASS |
| malformed-filter-400 | MUST | index/manifest#type-search-empty-group-rejected index/manifest#type-search-type-not-array-rejected index/manifest#type-search-bad-element-rejected index/manifest#type-search-malformed-json-rejected | PASS | PASS | PASS | INAPPLICABLE | PASS | PASS |
| missing-content-type-400 | MUST | index/manifest#type-search-missing-content-type-rejected | PASS | PASS | PASS | INAPPLICABLE | PASS | PASS |
| no-existence-disclosure | MUST | index/manifest#type-index-omits-unreadable-type index/manifest#type-search-authorization-filtered | PASS | PASS | PASS | INAPPLICABLE | PASS | PASS |
| no-match-not-error | MUST | index/manifest#type-search-no-match index/manifest#type-search-unindexed-relation | PASS | PASS | PASS | INAPPLICABLE | PASS | PASS |
| no-shared-cache | MUST | index/manifest#type-index-not-shared index/manifest#type-search-not-shared | PASS | PASS | PASS | INAPPLICABLE | PASS | PASS |
| no-silent-narrowing | MUST | index/manifest#type-search-too-complex | PASS | PASS | PASS | INAPPLICABLE | PASS | PASS |
| not-acceptable-406 | MUST | index/manifest#type-search-not-acceptable | PASS | PASS | PASS | INAPPLICABLE | PASS | PASS |
| other-formats | MAY | UNCOVERED | UNCOVERED | UNCOVERED | UNCOVERED | UNCOVERED | UNCOVERED | |
| other-response-formats | MAY | index/manifest#type-search-vary-accept | PASS | PASS | PASS | INAPPLICABLE | PASS | PASS |
| query-content-type-required | MUST | index/manifest#type-search-missing-content-type-rejected | PASS | PASS | PASS | INAPPLICABLE | PASS | PASS |
| query-safe-idempotent | MAY | index/manifest#type-search-safe | PASS | PASS | PASS | INAPPLICABLE | PASS | PASS |
| reflect-change-bounded | SHOULD | index/manifest#type-index-lists-readable-types index/manifest#type-search-by-type index/manifest#type-search-reflects-update index/manifest#type-search-reflects-delete | PASS | PASS | PASS | INAPPLICABLE | PASS | PASS |
| relation-sources-identical | MUST | index/manifest#type-search-relation-from-link-header | PASS | PASS | PASS | INAPPLICABLE | PASS | PASS |
| relations-may-be-indexed | MAY | index/manifest#type-search-unindexed-relation index/manifest#type-search-relation-filter index/manifest#type-search-relation-cnf index/manifest#type-search-relation-from-link-header | PASS | PASS | PASS | INAPPLICABLE | PASS | PASS |
| relations-not-enumerated | MUST | UNCOVERED | UNCOVERED | UNCOVERED | UNCOVERED | UNCOVERED | UNCOVERED | |
| responses-private | MUST | index/manifest#type-index-not-shared index/manifest#type-search-not-shared | PASS | PASS | PASS | INAPPLICABLE | PASS | PASS |
| result-item-id-type | MUST | index/manifest#type-search-by-type index/manifest#type-search-next-page | PASS | PASS | PASS | INAPPLICABLE | PASS | PASS |
| result-item-metadata | MAY | UNCOVERED | UNCOVERED | UNCOVERED | UNCOVERED | UNCOVERED | UNCOVERED | |
| revoked-not-shown | MUST | index/manifest#type-search-revoked-not-shown | PASS | PASS | PASS | INAPPLICABLE | PASS | PASS |
| search-default-containerpage | MUST | index/manifest#type-search-by-type index/manifest#type-search-no-match index/manifest#type-search-not-acceptable index/manifest#type-search-next-page | PASS | PASS | PASS | INAPPLICABLE | PASS | PASS |
| service-advertised | MUST | index/manifest#index-services-advertised | PASS | PASS | PASS | INAPPLICABLE | PASS | PASS |
| service-endpoint | MUST | index/manifest#index-services-advertised | PASS | PASS | PASS | INAPPLICABLE | PASS | PASS |
| service-extra-properties | MAY | UNCOVERED | UNCOVERED | UNCOVERED | UNCOVERED | UNCOVERED | UNCOVERED | |
| services-optional | MAY | index/manifest#index-services-advertised | PASS | PASS | PASS | INAPPLICABLE | PASS | PASS |
| structural-relations-not-indexed | MUST | index/manifest#type-search-structural-relation-not-indexed | PASS | PASS | PASS | INAPPLICABLE | PASS | PASS |
| too-complex-422 | MUST | index/manifest#type-search-too-complex | PASS | PASS | PASS | INAPPLICABLE | PASS | PASS |
| type-filter | MAY | index/manifest#type-search-by-type index/manifest#type-search-and-or index/manifest#type-search-native-classes index/manifest#type-search-empty-key-absent index/manifest#type-search-relation-cnf | PASS | PASS | PASS | INAPPLICABLE | PASS | PASS |
| type-key-supported | MUST | index/manifest#type-search-by-type index/manifest#type-search-and-or index/manifest#type-search-native-classes | PASS | PASS | PASS | INAPPLICABLE | PASS | PASS |
| types-from-content | MAY | index/manifest#type-search-type-from-content | PASS | PASS | PASS | INAPPLICABLE | PASS | PASS |
| types-from-link-headers | SHOULD | index/manifest#type-search-native-classes index/manifest#type-search-type-from-link-header index/manifest#type-search-reflects-update index/manifest#type-search-relation-from-link-header | PASS | PASS | PASS | INAPPLICABLE | PASS | PASS |
| unauthorized-omitted | MUST | index/manifest#type-index-omits-unreadable-type index/manifest#type-search-authorization-filtered | PASS | PASS | PASS | INAPPLICABLE | PASS | PASS |
| unindexed-relation-indistinguishable | MUST | index/manifest#type-search-unindexed-relation index/manifest#type-search-structural-relation-not-indexed | PASS | PASS | PASS | INAPPLICABLE | PASS | PASS |
| unsupported-format-415 | MUST | index/manifest#type-search-unsupported-format-rejected | PASS | PASS | PASS | INAPPLICABLE | PASS | PASS |
| unsupported-format-accept-query | SHOULD | index/manifest#type-search-unsupported-format-accept-query | PASS | PASS | PASS | INAPPLICABLE | PASS | PASS |
| vary-accept | MUST | index/manifest#type-search-vary-accept | PASS | PASS | PASS | INAPPLICABLE | PASS | PASS |
| delivery-deactivation-optional | MAY | notifications/webhook/manifest#webhook-subscription-deactivated | PASS | PASS | PASS | FAIL | PASS | PASS |
| delivery-lws-json | MUST | notifications/webhook/manifest#webhook-delivery-lws-json | PASS | PASS | PASS | FAIL | PASS | PASS |
| delivery-retry-optional | MAY | notifications/webhook/manifest#webhook-delivery-retried | PASS | PASS | PASS | FAIL | PASS | PASS |
| delivery-signed | SHOULD | notifications/webhook/manifest#webhook-delivery-signed | PASS | PASS | PASS | FAIL | PASS | PASS |
| inbox-verifies-signature | MUST | notifications/webhook/manifest#webhook-signature-verifies | PASS | PASS | PASS | FAIL | PASS | PASS |
| keyid-url-with-fragment | MUST | notifications/webhook/manifest#webhook-signing-key-published | PASS | PASS | PASS | FAIL | PASS | PASS |
| receiver-verification-steps | MUST | notifications/webhook/manifest#webhook-signature-verifies | PASS | PASS | PASS | FAIL | PASS | PASS |
| response-expires-optional | MAY | notifications/webhook/manifest#webhook-subscription-expires-supported | PASS | PASS | PASS | FAIL | PASS | PASS |
| response-type-webhook | MUST | notifications/webhook/manifest#webhook-subscription-response | PASS | PASS | PASS | FAIL | PASS | PASS |
| signature-covered-components | MUST | notifications/webhook/manifest#webhook-signature-components notifications/webhook/manifest#webhook-signature-verifies | PASS | PASS | PASS | FAIL | PASS | PASS |
| signature-input-created-keyid | MUST | notifications/webhook/manifest#webhook-signature-components notifications/webhook/manifest#webhook-signing-key-published | PASS | PASS | PASS | FAIL | PASS | PASS |
| signing-key-published | MUST | notifications/webhook/manifest#webhook-signing-key-published notifications/webhook/manifest#webhook-signature-verifies | PASS | PASS | PASS | FAIL | PASS | PASS |
| storage-description-id-matches | MUST | notifications/webhook/manifest#webhook-signing-key-published | PASS | PASS | PASS | FAIL | PASS | PASS |
| subscription-expires-optional | MAY | notifications/webhook/manifest#webhook-subscription-expires-supported | PASS | PASS | PASS | FAIL | PASS | PASS |
| subscription-get-delete | MUST | notifications/webhook/manifest#webhook-subscription-get-delete | PASS | PASS | PASS | FAIL | PASS | PASS |
| subscription-inbox-required | MUST | notifications/webhook/manifest#webhook-subscription-response | PASS | PASS | PASS | FAIL | PASS | PASS |
| subscription-listing-container | MUST | notifications/webhook/manifest#webhook-subscription-listed notifications/webhook/manifest#webhook-subscription-get-delete | PASS | PASS | PASS | FAIL | PASS | PASS |
| subscription-type-and-fields | MUST | notifications/webhook/manifest#webhook-subscription-response notifications/webhook/manifest#webhook-subscription-expires-supported | PASS | PASS | PASS | FAIL | PASS | PASS |
| subscription-type-identifier | MUST | notifications/webhook/manifest#webhook-subscription-response | PASS | PASS | PASS | FAIL | PASS | PASS |