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.

RequirementLevelTestsHalcyonlws-serversparq-lws-coreCommunity Solid Serverlws-drupallwsd
LanguageJavaJavaRustTypeScriptPHPJavaScript
id-token-alg-not-noneMUSTauth/oidc/manifest#authn-oidc-alg-nonePASSPASSPASSPASSPASSPASS
id-token-aud-claimMUSTauth/oidc/manifest#authn-oidc-valid-id-tokenPASSPASSPASSPASSPASSPASS
id-token-azp-claimMUSTauth/oidc/manifest#authn-oidc-valid-id-token auth/oidc/manifest#authn-oidc-missing-azpPASSPASSPASSPASSPASSPASS
id-token-iss-claimMUSTauth/oidc/manifest#authn-oidc-valid-id-tokenPASSPASSPASSPASSPASSPASS
id-token-sub-claimMUSTauth/oidc/manifest#authn-oidc-valid-id-tokenPASSPASSPASSPASSPASSPASS
id-token-token-type-uriMUSTauth/oidc/manifest#authn-oidc-valid-id-tokenPASSPASSPASSPASSPASSPASS
validation-dereference-subject-cidMUSTauth/oidc/manifest#authn-oidc-valid-id-token auth/oidc/manifest#authn-oidc-untrusted-issuerPASSPASSPASSPASSPASSPASS
validation-locate-issuer-service-and-verifyMUSTauth/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-issuerPASSPASSPASSPASSPASSPASS
audience-restrictionMUSTauth/saml/manifest#authn-saml-valid-assertionINAPPLICABLEINAPPLICABLEPASSINAPPLICABLEINAPPLICABLEINAPPLICABLE
issuer-assertionMUSTauth/saml/manifest#authn-saml-valid-assertionINAPPLICABLEINAPPLICABLEPASSINAPPLICABLEINAPPLICABLEINAPPLICABLE
nameid-subjectMUSTauth/saml/manifest#authn-saml-valid-assertionINAPPLICABLEINAPPLICABLEPASSINAPPLICABLEINAPPLICABLEINAPPLICABLE
recipient-client-idMUSTauth/saml/manifest#authn-saml-valid-assertionINAPPLICABLEINAPPLICABLEPASSINAPPLICABLEINAPPLICABLEINAPPLICABLE
signed-and-required-assertionsMUSTauth/saml/manifest#authn-saml-valid-assertion auth/saml/manifest#authn-saml-unsignedINAPPLICABLEINAPPLICABLEPASSINAPPLICABLEINAPPLICABLEINAPPLICABLE
token-type-saml2MUSTauth/saml/manifest#authn-saml-valid-assertionINAPPLICABLEINAPPLICABLEPASSINAPPLICABLEINAPPLICABLEINAPPLICABLE
validation-signatureMUSTauth/saml/manifest#authn-saml-valid-assertion auth/saml/manifest#authn-saml-invalid-signatureINAPPLICABLEINAPPLICABLEPASSINAPPLICABLEINAPPLICABLEINAPPLICABLE
alg-not-noneMUSTauth/cid/manifest#authn-cid-alg-none auth/cid/manifest#authn-cid-didkey-alg-nonePASSPASSPASSPASSPASSPASS
aud-includes-asMUSTauth/cid/manifest#authn-cid-valid-credential auth/cid/manifest#authn-cid-didkey-valid-credential auth/cid/manifest#authn-cid-didkey-audience-excludes-asPASSPASSPASSPASSPASSPASS
client-id-claimMUSTauth/cid/manifest#authn-cid-valid-credential auth/cid/manifest#authn-cid-didkey-valid-credentialPASSPASSPASSPASSPASSPASS
exp-claimMUSTauth/cid/manifest#authn-cid-valid-credential auth/cid/manifest#authn-cid-didkey-valid-credential auth/cid/manifest#authn-cid-didkey-missing-expPASSPASSPASSPASSPASSPASS
iat-claimMUSTauth/cid/manifest#authn-cid-valid-credential auth/cid/manifest#authn-cid-didkey-valid-credential auth/cid/manifest#authn-cid-didkey-missing-iatPASSPASSPASSPASSPASSPASS
iss-claimMUSTauth/cid/manifest#authn-cid-valid-credential auth/cid/manifest#authn-cid-didkey-valid-credentialPASSPASSPASSPASSPASSPASS
sub-claimMUSTauth/cid/manifest#authn-cid-valid-credential auth/cid/manifest#authn-cid-didkey-valid-credentialPASSPASSPASSPASSPASSPASS
sub-iss-client-same-uriMUSTauth/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-idPASSPASSPASSPASSPASSPASS
token-type-jwtMUSTauth/cid/manifest#authn-cid-valid-credential auth/cid/manifest#authn-cid-didkey-valid-credentialPASSPASSPASSPASSPASSPASS
validation-all-claimsMUSTauth/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-iatPASSPASSPASSPASSPASSPASS
validation-dereference-sub-cidMUSTauth/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-credentialPASSPASSPASSPASSPASSPASS
validation-exp-in-futureMUSTauth/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-expiredPASSPASSPASSPASSPASSPASS
validation-kid-verification-methodMUSTauth/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-signaturePASSPASSPASSFAILPASSPASS
validation-reject-alg-noneMUSTauth/cid/manifest#authn-cid-alg-nonePASSPASSPASSPASSPASSPASS
access-access-collectionMUSTcore/access_grants#access-grant-document-shape core/access_grants#access-grant-incomplete-refusedPASSPASSPASSPASSPASSPASS
access-access-requiredMUSTcore/access_grants#access-grant-document-shape core/access_grants#access-grant-incomplete-refusedPASSPASSPASSPASSPASSPASS
access-endpoints-are-lws-containersMUSTcore/access_grants#access-grant-endpoint-is-containerPASSPASSPASSPASSPASSPASS
access-endpoints-get-post-deleteSHOULDcore/access_grants#access-grant-revokePASSPASSPASSPASSPASSPASS
access-endpoints-jsonld-payloadsMUSTcore/access_grants#access-grant-createPASSPASSPASSPASSPASSPASS
access-extra-properties-allowedMAYcore/access_grants#access-grant-extra-properties-acceptedPASSPASSPASSPASSPASSPASS
access-inbox-notificationsSHOULDcore/access_grants#access-grant-inbox-notifiedPASSPASSPASSPASSPASSPASS
access-inbox-optionalMAYcore/access_grants#access-grant-extra-properties-acceptedPASSPASSPASSPASSPASSPASS
access-inbox-uriMUSTcore/access_grants#access-grant-incomplete-refusedPASSPASSPASSPASSPASSPASS
access-jsonld-context-lws-v1MUSTcore/access_grants#access-grant-document-shapePASSPASSPASSPASSPASSPASS
access-notification-data-modelMUSTcore/access_grants#access-grant-inbox-notifiedPASSPASSPASSPASSPASSPASS
access-notification-deliveryMUSTcore/access_grants#access-grant-inbox-notifiedPASSPASSPASSPASSPASSPASS
access-notification-eventsSHOULDcore/access_grants#access-grant-inbox-notifiedPASSPASSPASSPASSPASSPASS
access-notify-grant-createdSHOULDUNCOVEREDUNCOVEREDUNCOVEREDUNCOVEREDUNCOVEREDUNCOVERED
access-notify-other-eventsMAYUNCOVEREDUNCOVEREDUNCOVEREDUNCOVEREDUNCOVEREDUNCOVERED
access-notify-request-createdSHOULDUNCOVEREDUNCOVEREDUNCOVEREDUNCOVEREDUNCOVEREDUNCOVERED
access-post-location-headerMUSTcore/access_grants#access-grant-create core/access_grants#access-request-createPASSPASSPASSPASSPASSPASS
access-services-advertisedMUSTcore/access_grants#access-grant-endpoint-is-containerPASSPASSPASSPASSPASSPASS
access-storage-requiredMUSTcore/access_grants#access-grant-document-shape core/access_grants#access-grant-incomplete-refusedPASSPASSPASSPASSPASSPASS
access-storage-uriMUSTcore/access_grants#access-grant-createPASSPASSPASSPASSPASSPASS
access-type-requiredMUSTcore/access_grants#access-grant-document-shape core/access_grants#access-grant-incomplete-refusedPASSPASSPASSPASSPASSPASS
access-type-valuesMUSTcore/access_grants#access-grant-create core/access_grants#access-request-createPASSPASSPASSPASSPASSPASS
authn-audience-restriction-recommendedSHOULDauth/cid/manifest#authn-cid-didkey-audience-excludes-asPASSPASSPASSPASSPASSPASS
authn-client-claimMUSTauth/oidc/manifest#authn-oidc-missing-azp auth/cid/manifest#authn-cid-didkey-missing-client-idPASSPASSPASSPASSPASSPASS
authn-credential-signedMUSTauth/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-unsignedPASSPASSPASSPASSPASSPASS
authn-credential-tamper-evident-claimsMUSTauth/cid/manifest#authn-cid-didkey-missing-subject auth/cid/manifest#authn-cid-didkey-missing-issuer auth/cid/manifest#authn-cid-didkey-missing-client-idPASSPASSPASSPASSPASSPASS
authn-issuer-claim-uriMUSTauth/cid/manifest#authn-cid-didkey-missing-issuerPASSPASSPASSPASSPASSPASS
authn-issuer-trust-out-of-bandMAYUNCOVEREDUNCOVEREDUNCOVEREDUNCOVEREDUNCOVEREDUNCOVERED
authn-subject-claim-uriMUSTauth/cid/manifest#authn-cid-didkey-missing-subjectPASSPASSPASSPASSPASSPASS
authn-suite-token-type-uriMUSTcore/authorization_server#authz-metadata-subject-token-types-are-urisPASSPASSPASSPASSPASSPASS
authz-401-www-authenticate-challengeMUSTcore/storage_authorization#getContainer-private-unauthorized core/storage_authorization#createDataResource-unauthorized core/storage_authorization#updateDataResource-unauthorized core/storage_authorization#deleteDataResource-unauthorizedPASSPASSPASSPASSPASSPASS
authz-access-token-aud-claimMUSTcore/storage_authorization#authz-token-wrong-audience-rejected core/storage_authorization#authz-token-multiple-audiences-rejected core/authorization_server#authz-token-exchange-validPASSPASSPASSPASSPASSPASS
authz-access-token-client-id-claimMUSTcore/authorization_server#authz-token-exchange-validPASSPASSPASSPASSPASSPASS
authz-access-token-exp-short-livedMUSTcore/authorization_server#authz-token-exchange-validPASSPASSPASSPASSPASSPASS
authz-access-token-iat-claimMUSTcore/authorization_server#authz-token-exchange-validPASSPASSPASSPASSPASSPASS
authz-access-token-iss-claimMUSTcore/storage_authorization#authz-token-wrong-issuer-rejected core/authorization_server#authz-token-exchange-validPASSPASSPASSPASSPASSPASS
authz-access-token-jti-claimMUSTcore/authorization_server#authz-token-exchange-validPASSPASSPASSPASSPASSPASS
authz-access-token-sub-claimMUSTcore/authorization_server#authz-token-exchange-validPASSPASSPASSPASSPASSPASS
authz-bearer-presentation-rfc6750MUSTcore/storage_authorization#getContainer-authenticated-ownerPASSPASSPASSPASSPASSPASS
authz-challenge-as-uri-paramMUSTcore/storage_authorization#getContainer-private-unauthorizedPASSPASSPASSPASSPASSPASS
authz-challenge-extra-paramsMAYUNCOVEREDUNCOVEREDUNCOVEREDUNCOVEREDUNCOVEREDUNCOVERED
authz-challenge-realm-paramMUSTcore/storage_authorization#getContainer-private-unauthorizedPASSPASSPASSPASSPASSPASS
authz-invalid-token-401-error-paramMUSTcore/storage_authorization#authz-expired-token-rejected core/storage_authorization#authz-token-bad-signature-rejectedPASSPASSPASSPASSPASSPASS
authz-jwt-signature-jwks-rotationMUSTcore/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-storagePASSPASSPASSPASSPASSPASS
authz-metadata-subject-identifier-typesSHOULDcore/authorization_server#authz-metadata-subject-identifier-typesPASSPASSPASSPASSPASSPASS
authz-metadata-subject-token-typesSHOULDcore/authorization_server#authz-metadata-subject-token-types core/authorization_server#authz-metadata-subject-token-types-are-urisPASSPASSPASSPASSPASSPASS
authz-oauth2-baselineMAYUNCOVEREDUNCOVEREDUNCOVEREDUNCOVEREDUNCOVEREDUNCOVERED
authz-policy-denial-rejectedMUSTcore/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-agentPASSPASSPASSPASSPASSPASS
authz-server-metadata-well-knownMUSTcore/authorization_server#authz-server-metadata-well-knownPASSPASSPASSPASSPASSPASS
authz-token-error-rfc6749MUSTcore/authorization_server#authz-token-exchange-invalid-resource core/authorization_server#authz-token-exchange-missing-resource core/authorization_server#authz-token-exchange-missing-subject-tokenPASSPASSPASSPASSPASSPASS
authz-token-exchange-grantMUSTcore/authorization_server#authz-server-metadata-well-known core/authorization_server#authz-token-exchange-validPASSPASSPASSPASSPASSPASS
authz-token-exchange-resource-paramMUSTcore/authorization_server#authz-token-exchange-valid core/authorization_server#authz-token-exchange-invalid-resource core/authorization_server#authz-token-exchange-missing-resourcePASSPASSPASSPASSPASSPASS
authz-token-exchange-subject-token-paramMUSTcore/authorization_server#authz-token-exchange-valid core/authorization_server#authz-token-exchange-missing-subject-tokenPASSPASSPASSPASSPASSPASS
authz-token-response-rfc6749-rfc9068MUSTcore/authorization_server#authz-token-exchange-validPASSPASSPASSPASSPASSPASS
authz-token-validation-checklistMUSTcore/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-storagePASSPASSPASSPASSPASSPASS
authz-validate-before-issuingMUSTcore/authorization_server#authz-token-exchange-validPASSPASSPASSPASSPASSPASS
conditional-requests-supportedSHOULDcore/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-412PASSPASSPASSPASSPASSPASS
conformance-server-classMUSTUNCOVEREDUNCOVEREDUNCOVEREDUNCOVEREDUNCOVEREDUNCOVERED
conneg-media-type-equivalenceMUSTcore/containers#container-conneg core/containers#container-conneg-weightedPASSPASSPASSPASSPASSPASS
conneg-vary-acceptSHOULDcore/containers#container-conneg-varyPASSPASSPASSPASSPASSPASS
contained-description-recommended-membersSHOULDcore/containers#contained-resource-size-modifiedPASSPASSPASSPASSPASSPASS
contained-description-required-membersMUSTcore/containers#getContainer-containmentIntegrityPASSPASSPASSPASSPASSPASS
contained-format-for-dataresourcesMUSTcore/containers#getContainer-containmentIntegrity core/containers#contained-resource-formatPASSPASSPASSPASSPASSPASS
contained-resource-type-valuesMUSTcore/containers#contained-resource-type-valuesPASSPASSPASSPASSPASSPASS
container-empty-items-arrayMUSTcore/containers#createContainer core/containers#getContainer-containmentIntegrityPASSPASSPASSPASSPASSPASS
container-listing-authorization-visibilityMUSTcore/containers#getContainer-containmentIntegrityPASSPASSPASSPASSPASSPASS
container-model-membersMAYUNCOVEREDUNCOVEREDUNCOVEREDUNCOVEREDUNCOVEREDUNCOVERED
container-representation-required-propertiesMUSTcore/containers#getContainerPASSPASSPASSPASSPASSPASS
container-totalitems-accuracySHOULDcore/containers#container-total-items-accuratePASSPASSPASSPASSPASSPASS
containment-create-atomic-itemsMUSTcore/containers#getContainer-containmentIntegrityPASSPASSPASSPASSPASSPASS
containment-delete-atomic-itemsMUSTcore/containers#delete-empty-container core/data_resources#deleteDataResource core/conditional_requests#delete-updates-parent-strong-etagPASSPASSPASSPASSPASSPASS
containment-integrityMUSTcore/containers#containment-hierarchy-consistentPASSPASSPASSPASSPASSPASS
containment-no-cyclesMUSTUNCOVEREDUNCOVEREDUNCOVEREDUNCOVEREDUNCOVEREDUNCOVERED
containment-no-orphansMUSTcore/containers#containment-hierarchy-consistentPASSPASSPASSPASSPASSPASS
containment-rel-up-get-headMUSTcore/containers#getContainer core/data_resources#readDataResource core/data_resources#data-resource-head-parity core/linksets#linkset-up-not-redirectedPASSPASSPASSPASSPASSPASS
create-401-storage-linkSHOULDcore/discovery#discovery-unauthorized-response-headersPASSPASSPASSPASSPASSPASS
create-container-type-linkMUSTcore/containers#createContainerPASSPASSPASSPASSPASSPASS
create-linkset-before-successMUSTcore/data_resources#createDataResourcePASSPASSPASSPASSPASSPASS
create-post-201-location-linksMUSTcore/containers#createContainer core/containers#createContainer-type-link core/data_resources#createDataResource core/data_resources#createDataResource-type-link core/linksets#linkset-ready-at-createPASSPASSPASSPASSPASSPASS
create-post-missing-container-404MUSTcore/data_resources#create-in-missing-container-rejected core/data_resources#create-in-missing-container-404PASSPASSPASSPASSPASSPASS
create-post-not-idempotentSHOULDcore/data_resources#create-post-twice-distinctPASSPASSPASSPASSPASSPASS
create-server-managed-metadata-protectedMUSTcore/data_resources#create-server-managed-links-protectedPASSPASSPASSPASSPASSPASS
delete-401-403-404-semanticsMUSTcore/storage_authorization#deleteDataResource-unauthorized core/storage_authorization#authz-non-owner-delete-rejectedPASSPASSPASSPASSPASSPASS
delete-if-match-optionalMAYcore/conditional_requests#conditional-delete-stale-if-match-412PASSPASSPASSPASSPASSPASS
delete-non-empty-container-409-depthMUSTcore/containers#delete-non-empty-container-409 core/containers#delete-container-recursive core/containers#delete-container-recursive-deepPASSPASSPASSPASSPASSPASS
delete-removes-from-parent-listingMUSTcore/containers#delete-container-recursive-deep core/conditional_requests#delete-updates-parent-strong-etagPASSPASSPASSPASSPASSPASS
delete-success-204-conditionalMUSTcore/containers#delete-empty-container core/data_resources#deleteDataResource core/conditional_requests#conditional-delete-stale-if-match-412PASSPASSPASSPASSPASSPASS
error-rfc9457-problem-detailsSHOULDcore/data_resources#error-problem-detailsPASSPASSPASSPASSPASSPASS
get-data-resource-content-range-etagMUSTcore/data_resources#createDataResource core/data_resources#readDataResource core/data_resources#data-resource-range-requestPASSPASSPASSPASSPASSPASS
head-parity-with-getMUSTcore/containers#container-head-parity core/data_resources#data-resource-head-parityPASSPASSPASSPASSPASSPASS
iana-ld-json-profile-equivalenceSHOULDcore/containers#container-ld-json-lws-profilePASSPASSPASSPASSPASSPASS
link-storage-on-responsesMUSTcore/discovery#discovery-get-links-storageDescription core/discovery#discovery-link-storage-on-data-resource core/containers#getContainer core/data_resources#readDataResourcePASSPASSPASSPASSPASSPASS
link-up-on-non-root-resourcesMUSTcore/data_resources#readDataResourcePASSPASSPASSPASSPASSPASS
linkset-accept-patch-json-patchMUSTcore/linksets#linkset-advertises-patchPASSPASSPASSFAILPASSPASS
linkset-allow-get-patchMUSTcore/linksets#linkset-advertises-patchPASSPASSPASSFAILPASSPASS
linkset-etag-get-headMUSTcore/linksets#getLinksetPASSPASSPASSPASSPASSPASS
linkset-lifecycle-tied-to-resourceMUSTcore/containers#delete-container-recursive-deep core/linksets#linkset-removed-with-resourcePASSPASSPASSPASSPASSPASS
linkset-media-type-jsonMUSTcore/linksets#getLinksetPASSPASSPASSPASSPASSPASS
linkset-optional-methods-advertisedMUSTcore/linksets#linkset-put-405-when-unsupportedPASSINAPPLICABLEPASSPASSINAPPLICABLEPASS
linkset-patch-json-patchMUSTcore/linksets#linkset-patch-json-patchPASSPASSPASSFAILPASSPASS
linkset-precondition-failed-412MUSTcore/linksets#linkset-conditional-412PASSPASSPASSFAILPASSPASS
linkset-put-405-if-unsupportedMUSTcore/linksets#linkset-put-405-when-unsupportedPASSINAPPLICABLEPASSPASSINAPPLICABLEPASS
linkset-restricted-linksMAYcore/linksets#linkset-up-not-redirectedPASSPASSPASSPASSPASSPASS
linkset-server-managed-atomicMUSTcore/linksets#linkset-removed-with-resource core/linksets#linkset-ready-at-createPASSPASSPASSPASSPASSPASS
linkset-standalone-rfc9264MUSTcore/linksets#getLinkset core/linksets#linkset-patch-stays-linksetPASSPASSPASSPASSPASSPASS
lws-cid-media-type-storage-descriptionMUSTcore/discovery#discovery-storage-descriptionPASSPASSPASSPASSPASSPASS
lws-json-media-type-container-representationMUSTcore/containers#container-connegPASSPASSPASSPASSPASSPASS
lws-profile-equivalenceSHOULDcore/containers#container-ld-json-lws-profilePASSPASSPASSPASSPASSPASS
metadata-capability-advertisingMUSTcore/linksets#linkset-advertises-patchPASSPASSPASSFAILPASSPASS
notification-activity-as2-conformanceMUSTcore/notifications#notification-delivered-createPASSPASSPASSFAILPASSPASS
notification-activity-idMUSTcore/notifications#notification-delivered-createPASSPASSPASSFAILPASSPASS
notification-activity-objectMUSTcore/notifications#notification-delivered-createPASSPASSPASSFAILPASSPASS
notification-activity-object-idMUSTcore/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-onlyPASSPASSPASSFAILPASSPASS
notification-activity-object-typeMUSTcore/notifications#notification-delivered-createPASSPASSPASSFAILPASSPASS
notification-activity-optional-propertiesMAYcore/notifications#notification-actor-omittedPASSPASSPASSFAILPASSPASS
notification-activity-publishedMUSTcore/notifications#notification-delivered-createPASSPASSPASSFAILPASSPASS
notification-activity-typeMUSTcore/notifications#notification-delivered-create core/notifications#notification-delivered-update core/notifications#notification-delivered-deletePASSPASSPASSFAILPASSPASS
notification-activity-types-additionalMAYUNCOVEREDUNCOVEREDUNCOVEREDUNCOVEREDUNCOVEREDUNCOVERED
notification-activity-types-supportedMUSTcore/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-onlyPASSPASSPASSFAILPASSPASS
notification-batchingMAYUNCOVEREDUNCOVEREDUNCOVEREDUNCOVEREDUNCOVEREDUNCOVERED
notification-envelope-activityMUSTcore/notifications#notification-delivered-createPASSPASSPASSFAILPASSPASS
notification-envelope-storageMUSTcore/notifications#notification-delivered-createPASSPASSPASSFAILPASSPASS
notification-envelope-typeMUSTcore/notifications#notification-delivered-createPASSPASSPASSFAILPASSPASS
notification-suite-subscription-type-identifierMUSTcore/notifications#subscription-createPASSPASSPASSFAILPASSPASS
notifications-advertise-notificationserviceMUSTcore/notifications#notification-service-advertisedPASSPASSPASSPASSPASSPASS
notificationservice-additional-propertiesMAYUNCOVEREDUNCOVEREDUNCOVEREDUNCOVEREDUNCOVEREDUNCOVERED
notificationservice-endpoint-and-subscription-typesMUSTcore/notifications#notification-service-advertisedPASSPASSPASSPASSPASSPASS
operations-core-four-atomicMUSTUNCOVEREDUNCOVEREDUNCOVEREDUNCOVEREDUNCOVEREDUNCOVERED
pagination-200-totalitems-all-pagesMUSTcore/pagination#pagination-first-page core/pagination#pagination-next-page core/pagination#pagination-totalitems-all-pagesINAPPLICABLEPASSPASSINAPPLICABLEPASSPASS
pagination-first-page-flowMAYcore/pagination#pagination-first-pageINAPPLICABLEPASSPASSINAPPLICABLEPASSPASS
pagination-link-firstMUSTcore/pagination#pagination-first-page core/pagination#pagination-next-page core/pagination#pagination-single-page core/pagination#pagination-last-page index/manifest#type-search-next-pagePASSPASSPASSINAPPLICABLEPASSPASS
pagination-link-lastMAYcore/pagination#pagination-last-pageINAPPLICABLEPASSPASSINAPPLICABLEPASSPASS
pagination-link-nextMUSTcore/pagination#pagination-single-page core/pagination#pagination-last-pagePASSPASSPASSINAPPLICABLEPASSPASS
pagination-link-prevMUSTcore/pagination#pagination-first-page core/pagination#pagination-single-pagePASSPASSPASSINAPPLICABLEPASSPASS
pagination-over-thresholdSHOULDUNCOVEREDUNCOVEREDUNCOVEREDUNCOVEREDUNCOVEREDUNCOVERED
patch-json-patch-baselineMUSTcore/data_resources#patch-json-patch-baseline core/data_resources#patch-json-patch-atomicPASSPASSPASSFAILPASSPASS
policy-action-requiredMUSTcore/access_grants#access-grant-document-shape core/access_grants#access-grant-incomplete-refusedPASSPASSPASSPASSPASSPASS
policy-action-valuesMUSTcore/access_grants#access-grant-authenticated-agentPASSPASSPASSPASSPASSPASS
policy-assignee-requiredMUSTcore/access_grants#access-grant-document-shape core/access_grants#access-grant-incomplete-refusedPASSPASSPASSPASSPASSPASS
policy-assignee-uri-foaf-agentMUSTcore/access_grants#getContainer-public-read core/access_grants#readDataResource-public-readPASSPASSPASSPASSPASSPASS
policy-constraint-left-operandsMUSTcore/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-clientPASSPASSPASSPASSPASSPASS
policy-constraint-objectsMUSTcore/access_grants#access-grant-constraints-all-satisfied core/access_grants#access-grant-left-operands-acceptedPASSPASSPASSPASSPASSPASS
policy-constraint-optionalMAYcore/access_grants#access-grant-extra-properties-acceptedPASSPASSPASSPASSPASSPASS
policy-constraints-all-satisfiedMUSTcore/access_grants#access-grant-constraints-all-satisfiedPASSPASSPASSPASSPASSPASS
policy-constraints-conjunction-semanticsMUSTcore/access_grants#access-grant-constraints-all-satisfiedPASSPASSPASSPASSPASSPASS
policy-target-extra-typesMAYUNCOVEREDUNCOVEREDUNCOVEREDUNCOVEREDUNCOVEREDUNCOVERED
policy-target-objectMUSTcore/access_grants#access-grant-document-shape core/access_grants#access-grant-incomplete-refusedPASSPASSPASSPASSPASSPASS
policy-target-optionalMAYUNCOVEREDUNCOVEREDUNCOVEREDUNCOVEREDUNCOVEREDUNCOVERED
policy-type-access-policyMUSTcore/access_grants#access-grant-document-shape core/access_grants#access-grant-incomplete-refusedPASSPASSPASSPASSPASSPASS
policy-type-requiredMUSTcore/access_grants#access-grant-document-shape core/access_grants#access-grant-incomplete-refusedPASSPASSPASSPASSPASSPASS
privacy-notification-actor-omittedSHOULDcore/notifications#notification-actor-omittedPASSPASSPASSFAILPASSPASS
privacy-notification-authorized-resources-onlySHOULDcore/notifications#notification-not-delivered-for-unreadable-resourcePASSINAPPLICABLEPASSINAPPLICABLEINAPPLICABLEINAPPLICABLE
put-clients-use-conditional-requestsSHOULDUNCOVEREDUNCOVEREDUNCOVEREDUNCOVEREDUNCOVEREDUNCOVERED
read-401-www-authenticate-discoverabilitySHOULDcore/discovery#discovery-unauthorized-response-headers core/storage_authorization#getContainer-private-unauthorizedPASSPASSPASSPASSPASSPASS
read-container-etag-type-linksMUSTcore/containers#getContainerPASSPASSPASSPASSPASSPASS
read-container-listing-authz-filteredMAYcore/access_grants#container-listing-filtered-metadataPASSPASSPASSPASSPASSPASS
read-container-listing-member-metadataMUSTcore/containers#contained-resource-formatPASSPASSPASSPASSPASSPASS
read-type-distinction-metadata-linksMUSTcore/containers#getContainer core/data_resources#readDataResourcePASSPASSPASSPASSPASSPASS
security-notification-access-controlMUSTcore/notifications#subscription-unreadable-topic-refused core/notifications#subscription-after-revocation-refused core/notifications#notification-not-delivered-for-unreadable-resource core/notifications#notification-stops-after-revocationPASSPASSPASSINAPPLICABLEPASSPASS
status-204-410-deletionsMAYcore/data_resources#deleteDataResourcePASSPASSPASSPASSPASSPASS
storage-capability-id-optionalMUSTcore/discovery#discovery-storage-description-ids-are-urisPASSPASSPASSPASSPASSPASS
storage-capability-propertyMUSTcore/discovery#discovery-storage-description-ids-are-urisPASSPASSPASSPASSPASSPASS
storage-capability-type-requiredMUSTcore/discovery#discovery-storage-descriptionPASSPASSPASSPASSPASSPASS
storage-description-id-requiredMUSTcore/discovery#discovery-storage-descriptionPASSPASSPASSPASSPASSPASS
storage-description-link-headerMUSTcore/discovery#discovery-get-links-storageDescription core/discovery#discovery-link-storage-on-data-resourcePASSPASSPASSPASSPASSPASS
storage-description-lws-cidMUSTcore/discovery#discovery-storage-descriptionPASSPASSPASSPASSPASSPASS
storage-description-storageroot-serviceMUSTcore/discovery#discovery-storage-description core/discovery#discovery-storage-root-is-containerPASSPASSPASSPASSPASSPASS
storage-description-type-storageMUSTcore/discovery#discovery-storage-descriptionPASSPASSPASSPASSPASSPASS
storage-service-endpoint-requiredMUSTcore/discovery#discovery-storage-descriptionPASSPASSPASSPASSPASSPASS
storage-service-id-optionalMUSTcore/discovery#discovery-storage-description-ids-are-urisPASSPASSPASSPASSPASSPASS
storage-service-propertyMUSTcore/discovery#discovery-storage-descriptionPASSPASSPASSPASSPASSPASS
storage-service-type-requiredMUSTcore/discovery#discovery-storage-descriptionPASSPASSPASSPASSPASSPASS
storage-uri-returns-lws-cid-documentMUSTcore/discovery#discovery-storage-description core/discovery#discovery-storage-description-default-media-typePASSPASSPASSPASSPASSPASS
subscription-authorization-on-createMUSTcore/notifications#subscription-unreadable-topic-refused core/notifications#subscription-after-revocation-refusedPASSPASSPASSINAPPLICABLEPASSPASS
subscription-authorization-on-deliveryMUSTcore/notifications#notification-not-delivered-for-unreadable-resource core/notifications#notification-stops-after-revocationPASSPASSPASSINAPPLICABLEPASSPASS
subscription-authorization-revokedMUSTcore/notifications#notification-stops-after-revocationPASSPASSPASSINAPPLICABLEPASSPASS
subscription-create-post-lws-jsonMUSTcore/notifications#subscription-createPASSPASSPASSFAILPASSPASS
subscription-request-additional-fieldsMAYcore/notifications#subscription-createPASSPASSPASSFAILPASSPASS
subscription-request-required-fieldsMUSTcore/notifications#subscription-create core/notifications#subscription-missing-type-refused core/notifications#subscription-missing-topic-refusedPASSPASSPASSFAILPASSPASS
subscription-request-topicMUSTcore/notifications#subscription-create core/notifications#subscription-missing-topic-refusedPASSPASSPASSFAILPASSPASS
subscription-request-typeMUSTcore/notifications#subscription-create core/notifications#subscription-missing-type-refused core/notifications#subscription-unadvertised-type-refusedPASSPASSPASSFAILPASSPASS
subscription-response-lws-jsonMUSTcore/notifications#subscription-createPASSPASSPASSFAILPASSPASS
subscription-response-subscription-urlMUSTcore/notifications#subscription-createPASSPASSPASSFAILPASSPASS
subscription-response-typeMUSTcore/notifications#subscription-createPASSPASSPASSFAILPASSPASS
update-content-vs-metadata-prefer-set-linksetMUSTcore/data_resources#updateDataResourcePASSPASSPASSPASSPASSPASS
uri-independent-of-hierarchySHOULDcore/data_resources#create-post-twice-distinctPASSPASSPASSPASSPASSPASS
accept-query-advertisedSHOULDindex/manifest#type-search-accept-query-advertisedPASSPASSPASSINAPPLICABLEPASSPASS
accept-query-no-disclosureMUSTindex/manifest#type-search-accept-query-advertisedPASSPASSPASSINAPPLICABLEPASSPASS
at-members-ignoredMUSTindex/manifest#type-search-at-members-ignoredPASSPASSPASSINAPPLICABLEPASSPASS
authorization-enforcedMUSTindex/manifest#type-index-lists-readable-types index/manifest#type-index-omits-unreadable-type index/manifest#type-search-authorization-filteredPASSPASSPASSINAPPLICABLEPASSPASS
baseline-format-supportedMUSTindex/manifest#type-search-by-typePASSPASSPASSINAPPLICABLEPASSPASS
consistency-not-for-authorizationMUSTindex/manifest#type-search-revoked-not-shownPASSPASSPASSINAPPLICABLEPASSPASS
content-location-protectedMUSTindex/manifest#type-search-content-location-protectedINAPPLICABLEINAPPLICABLEPASSINAPPLICABLEINAPPLICABLEINAPPLICABLE
content-types-identicalMUSTindex/manifest#type-search-content-types-identicalPASSPASSPASSINAPPLICABLEPASSPASS
counts-filteredMUSTindex/manifest#type-search-authorization-filteredPASSPASSPASSINAPPLICABLEPASSPASS
current-authorizationMUSTindex/manifest#type-search-revoked-not-shownPASSPASSPASSINAPPLICABLEPASSPASS
derived-index-filteredMUSTindex/manifest#type-search-authorization-filtered index/manifest#type-search-revoked-not-shownPASSPASSPASSINAPPLICABLEPASSPASS
duplicate-groups-ignoredMUSTindex/manifest#type-search-duplicate-groupsPASSPASSPASSINAPPLICABLEPASSPASS
empty-group-rejectedMUSTindex/manifest#type-search-empty-group-rejectedPASSPASSPASSINAPPLICABLEPASSPASS
eventually-consistentMAYUNCOVEREDUNCOVEREDUNCOVEREDUNCOVEREDUNCOVEREDUNCOVERED
expired-page-404-410MUSTindex/manifest#type-search-unrecognized-page-linkPASSPASSPASSINAPPLICABLEPASSINAPPLICABLE
extensions-uphold-authorizationMUSTUNCOVEREDUNCOVEREDUNCOVEREDUNCOVEREDUNCOVEREDUNCOVERED
grammar-not-extendedMUSTindex/manifest#type-search-bad-element-rejectedPASSPASSPASSINAPPLICABLEPASSPASS
invalid-iri-400MUSTindex/manifest#type-search-relative-iri-rejectedPASSPASSPASSINAPPLICABLEPASSPASS
malformed-filter-400MUSTindex/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-rejectedPASSPASSPASSINAPPLICABLEPASSPASS
missing-content-type-400MUSTindex/manifest#type-search-missing-content-type-rejectedPASSPASSPASSINAPPLICABLEPASSPASS
no-existence-disclosureMUSTindex/manifest#type-index-omits-unreadable-type index/manifest#type-search-authorization-filteredPASSPASSPASSINAPPLICABLEPASSPASS
no-match-not-errorMUSTindex/manifest#type-search-no-match index/manifest#type-search-unindexed-relationPASSPASSPASSINAPPLICABLEPASSPASS
no-shared-cacheMUSTindex/manifest#type-index-not-shared index/manifest#type-search-not-sharedPASSPASSPASSINAPPLICABLEPASSPASS
no-silent-narrowingMUSTindex/manifest#type-search-too-complexPASSPASSPASSINAPPLICABLEPASSPASS
not-acceptable-406MUSTindex/manifest#type-search-not-acceptablePASSPASSPASSINAPPLICABLEPASSPASS
other-formatsMAYUNCOVEREDUNCOVEREDUNCOVEREDUNCOVEREDUNCOVEREDUNCOVERED
other-response-formatsMAYindex/manifest#type-search-vary-acceptPASSPASSPASSINAPPLICABLEPASSPASS
query-content-type-requiredMUSTindex/manifest#type-search-missing-content-type-rejectedPASSPASSPASSINAPPLICABLEPASSPASS
query-safe-idempotentMAYindex/manifest#type-search-safePASSPASSPASSINAPPLICABLEPASSPASS
reflect-change-boundedSHOULDindex/manifest#type-index-lists-readable-types index/manifest#type-search-by-type index/manifest#type-search-reflects-update index/manifest#type-search-reflects-deletePASSPASSPASSINAPPLICABLEPASSPASS
relation-sources-identicalMUSTindex/manifest#type-search-relation-from-link-headerPASSPASSPASSINAPPLICABLEPASSPASS
relations-may-be-indexedMAYindex/manifest#type-search-unindexed-relation index/manifest#type-search-relation-filter index/manifest#type-search-relation-cnf index/manifest#type-search-relation-from-link-headerPASSPASSPASSINAPPLICABLEPASSPASS
relations-not-enumeratedMUSTUNCOVEREDUNCOVEREDUNCOVEREDUNCOVEREDUNCOVEREDUNCOVERED
responses-privateMUSTindex/manifest#type-index-not-shared index/manifest#type-search-not-sharedPASSPASSPASSINAPPLICABLEPASSPASS
result-item-id-typeMUSTindex/manifest#type-search-by-type index/manifest#type-search-next-pagePASSPASSPASSINAPPLICABLEPASSPASS
result-item-metadataMAYUNCOVEREDUNCOVEREDUNCOVEREDUNCOVEREDUNCOVEREDUNCOVERED
revoked-not-shownMUSTindex/manifest#type-search-revoked-not-shownPASSPASSPASSINAPPLICABLEPASSPASS
search-default-containerpageMUSTindex/manifest#type-search-by-type index/manifest#type-search-no-match index/manifest#type-search-not-acceptable index/manifest#type-search-next-pagePASSPASSPASSINAPPLICABLEPASSPASS
service-advertisedMUSTindex/manifest#index-services-advertisedPASSPASSPASSINAPPLICABLEPASSPASS
service-endpointMUSTindex/manifest#index-services-advertisedPASSPASSPASSINAPPLICABLEPASSPASS
service-extra-propertiesMAYUNCOVEREDUNCOVEREDUNCOVEREDUNCOVEREDUNCOVEREDUNCOVERED
services-optionalMAYindex/manifest#index-services-advertisedPASSPASSPASSINAPPLICABLEPASSPASS
structural-relations-not-indexedMUSTindex/manifest#type-search-structural-relation-not-indexedPASSPASSPASSINAPPLICABLEPASSPASS
too-complex-422MUSTindex/manifest#type-search-too-complexPASSPASSPASSINAPPLICABLEPASSPASS
type-filterMAYindex/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-cnfPASSPASSPASSINAPPLICABLEPASSPASS
type-key-supportedMUSTindex/manifest#type-search-by-type index/manifest#type-search-and-or index/manifest#type-search-native-classesPASSPASSPASSINAPPLICABLEPASSPASS
types-from-contentMAYindex/manifest#type-search-type-from-contentPASSPASSPASSINAPPLICABLEPASSPASS
types-from-link-headersSHOULDindex/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-headerPASSPASSPASSINAPPLICABLEPASSPASS
unauthorized-omittedMUSTindex/manifest#type-index-omits-unreadable-type index/manifest#type-search-authorization-filteredPASSPASSPASSINAPPLICABLEPASSPASS
unindexed-relation-indistinguishableMUSTindex/manifest#type-search-unindexed-relation index/manifest#type-search-structural-relation-not-indexedPASSPASSPASSINAPPLICABLEPASSPASS
unsupported-format-415MUSTindex/manifest#type-search-unsupported-format-rejectedPASSPASSPASSINAPPLICABLEPASSPASS
unsupported-format-accept-querySHOULDindex/manifest#type-search-unsupported-format-accept-queryPASSPASSPASSINAPPLICABLEPASSPASS
vary-acceptMUSTindex/manifest#type-search-vary-acceptPASSPASSPASSINAPPLICABLEPASSPASS
delivery-deactivation-optionalMAYnotifications/webhook/manifest#webhook-subscription-deactivatedPASSPASSPASSFAILPASSPASS
delivery-lws-jsonMUSTnotifications/webhook/manifest#webhook-delivery-lws-jsonPASSPASSPASSFAILPASSPASS
delivery-retry-optionalMAYnotifications/webhook/manifest#webhook-delivery-retriedPASSPASSPASSFAILPASSPASS
delivery-signedSHOULDnotifications/webhook/manifest#webhook-delivery-signedPASSPASSPASSFAILPASSPASS
inbox-verifies-signatureMUSTnotifications/webhook/manifest#webhook-signature-verifiesPASSPASSPASSFAILPASSPASS
keyid-url-with-fragmentMUSTnotifications/webhook/manifest#webhook-signing-key-publishedPASSPASSPASSFAILPASSPASS
receiver-verification-stepsMUSTnotifications/webhook/manifest#webhook-signature-verifiesPASSPASSPASSFAILPASSPASS
response-expires-optionalMAYnotifications/webhook/manifest#webhook-subscription-expires-supportedPASSPASSPASSFAILPASSPASS
response-type-webhookMUSTnotifications/webhook/manifest#webhook-subscription-responsePASSPASSPASSFAILPASSPASS
signature-covered-componentsMUSTnotifications/webhook/manifest#webhook-signature-components notifications/webhook/manifest#webhook-signature-verifiesPASSPASSPASSFAILPASSPASS
signature-input-created-keyidMUSTnotifications/webhook/manifest#webhook-signature-components notifications/webhook/manifest#webhook-signing-key-publishedPASSPASSPASSFAILPASSPASS
signing-key-publishedMUSTnotifications/webhook/manifest#webhook-signing-key-published notifications/webhook/manifest#webhook-signature-verifiesPASSPASSPASSFAILPASSPASS
storage-description-id-matchesMUSTnotifications/webhook/manifest#webhook-signing-key-publishedPASSPASSPASSFAILPASSPASS
subscription-expires-optionalMAYnotifications/webhook/manifest#webhook-subscription-expires-supportedPASSPASSPASSFAILPASSPASS
subscription-get-deleteMUSTnotifications/webhook/manifest#webhook-subscription-get-deletePASSPASSPASSFAILPASSPASS
subscription-inbox-requiredMUSTnotifications/webhook/manifest#webhook-subscription-responsePASSPASSPASSFAILPASSPASS
subscription-listing-containerMUSTnotifications/webhook/manifest#webhook-subscription-listed notifications/webhook/manifest#webhook-subscription-get-deletePASSPASSPASSFAILPASSPASS
subscription-type-and-fieldsMUSTnotifications/webhook/manifest#webhook-subscription-response notifications/webhook/manifest#webhook-subscription-expires-supportedPASSPASSPASSFAILPASSPASS
subscription-type-identifierMUSTnotifications/webhook/manifest#webhook-subscription-responsePASSPASSPASSFAILPASSPASS