diff --git a/common.js b/common.js index abc69fa..1af5313 100644 --- a/common.js +++ b/common.js @@ -5,38 +5,6 @@ var vcwg = { // Add as the respecConfig localBiblio variable // Extend or override global respec references localBiblio: { - "RFC-6596": { - title: "The Canonical Link Relation", - date:" April 2012", - href: "https://www.rfc-editor.org/rfc/rfc6596", - authors: [ - "M. Ohye", - "J. Kupke" - ] - }, - "RFC-3986": { - title: "Uniform Resource Identifier (URI): Generic Syntax", - date:" January 2005", - href: "https://www.rfc-editor.org/rfc/rfc3986", - authors: [ - "T. Berners-Lee", - "R. Fielding", - "L. Masinter" - ] - }, - "VC-DATA-MODEL-2": { - title: "Verifiable Credentials Data Model v2.0", - href: "https://www.w3.org/TR/vc-data-model-2.0/", - authors: [ - "Manu Sporny", - "Orie Steele", - "Michael B. Jones", - "Gabe Cohen", - "Oliver Terbu" - ], - status: "Working Draft", - publisher: "W3C Verifiable Credentials Working Group" - }, "JSON-SCHEMA": { href: "https://json-schema.org/specification.html", title: "JSON Schema: A Media Type for Describing JSON Documents", @@ -57,63 +25,18 @@ var vcwg = { title: "JSON Schema Draft-07 Release Notes", publisher: "OpenJS Foundation" }, - "DID-CORE": { - href: "https://w3c.github.io/did-core/", - title: "Decentralized Identifiers (DIDs) v1.0", - publisher: "W3C" - }, - "JSON-LD": { - href: "https://w3c.github.io/json-ld-syntax/", - title: "JSON-LD 1.1: A JSON-based Serialization for Linked Data", - publisher: "W3C" - }, "VC-JOSE-COSE": { href: "https://www.w3.org/TR/vc-jose-cose/", title: "Securing Verifiable Credentials using JOSE and COSE", authors: ["Orie Steele", "Michael Jones", "Michael Prorock"], publisher: "W3C" }, - "VC-DATA-INTEGRITY": { - title: "Verifiable Credential Data Integrity 1.0", - href: "https://www.w3.org/TR/vc-data-integrity/", - authors: ["David Longley", "Manu Sporny"], - status: "Working Draft", - publisher: "W3C Verifiable Credentials Working Group" - }, - "JOSE": { - href: "https://jose.readthedocs.io/en/latest/", - title: "Javascript Object Signing and Encryption (JOSE)", - publisher: "IETF" - }, - "JSON-SCHEMA-IMPLMENTATIONS": { - href: "https://json-schema.org/implementations.html", - title: "JSON Schema Implementations", - publisher: "json-schema-org" - }, "SD-JWT": { title: "Selective Disclosure for JWTs (SD-JWT)", href: "https://datatracker.ietf.org/doc/html/draft-ietf-oauth-selective-disclosure-jwt-05", - authors: [ "Daniel Fett" , "Kristina Yasuda" , "Brian Campbell"], + authors: ["Daniel Fett", "Kristina Yasuda", "Brian Campbell"], status: "Internet-Draft", publisher: "IETF" - }, - "OAS": { - title: "OpenAPI Specification Version 3.1.0", - href: "https://swagger.io/specification/", - authors: [ - "Darrel Miller", - "Jeremy Whitlock", - "Marsh Gardiner ", - "Mike Ralphson", - "Ron Ratovsky", - "Uri Sarid", - ], - publisher: "OpenAPI Initiative", - }, - "YAML": { - href: "https://yaml.org/spec/1.2.2/", - title: "YAML Ain’t Markup Language (YAML™) version 1.2", - publisher:"YAML Language Development Team" } } }; diff --git a/index.html b/index.html index d03a681..d125659 100644 --- a/index.html +++ b/index.html @@ -21,6 +21,7 @@ previousPublishDate: "2022-04-05", localBiblio: vcwg.localBiblio, doJsonLd: true, + xref: true, github: "https://github.com/w3c/vc-json-schema/", includePermalinks: false, edDraftURI: "https://w3c.github.io/vc-json-schema/", @@ -105,13 +106,13 @@

Abstract

- Among other things, the [[VC-DATA-MODEL-2]] specifies the models used for Verifiable Credentials, + Among other things, the [[VC-DATA-MODEL-2.0]] specifies the models used for Verifiable Credentials, Verifiable Presentations, and explains the relationships between three parties: issuers, holders, and verifiers. Verifiability, extensibility, and semantic interoperability are critical pieces of functionality referenced throughout - the [[VC-DATA-MODEL-2]]. This specification provides a mechanism to make use of a Credential Schema in + the [[VC-DATA-MODEL-2.0]]. This specification provides a mechanism to make use of a Credential Schema in Verifiable Credential, leveraging the existing - Data Schemas concept. + Data Schemas concept.

@@ -151,17 +152,18 @@

Terminology

Data Model

The following sections outline the data models for this document, of which there are two: - JsonSchema for usage of a [[JSON-Schema]] directly in a credentialSchema - property, and JsonSchemaCredential for usage of a [[JSON-Schema]] represented as a + JsonSchema for usage of a [[JSON-SCHEMA]] directly in a credentialSchema + property, and JsonSchemaCredential for usage of a [[JSON-SCHEMA]] represented as a verifiable credential.

Implementers may find use in packaging a JSON Schema as a verifiable credential when they wish to - leverage features of the [[VC-DATA-MODEL-2]], answering questions such as: + leverage features of the [[VC-DATA-MODEL-2.0]], answering questions such as:

@@ -176,7 +178,7 @@

JsonSchema

JsonSchema type value the result is a valid JSON Schema document according to its specification version.

- The specification version of [[JSON-Schema]] can be any version noted in the section + The specification version of [[JSON-SCHEMA]] can be any version noted in the section on JSON Schema Specifications.

@@ -191,7 +193,7 @@

JsonSchema

id The constraints on the id property are listed in the Verifiable Credentials - Data Model specification [[VC-DATA-MODEL-2]]. The value MUST be a URL that identifies + Data Model specification [[VC-DATA-MODEL-2.0]]. The value MUST be a URL that identifies the schema associated with the verifiable credential. @@ -314,7 +316,7 @@

JsonSchemaCredential

id The constraints on the id property are listed in the Verifiable Credentials - Data Model specification [[VC-DATA-MODEL-2]]. The value MUST be a URL that identifies + Data Model specification [[VC-DATA-MODEL-2.0]]. The value MUST be a URL that identifies the verifiable credential which contains a credential schema. @@ -324,7 +326,7 @@

JsonSchemaCredential

credentialSubject.id The credentialSubject's id property MUST follow the guidance - provided for identifiers in the [[VC-DATA-MODEL-2]] + provided for identifiers in the [[VC-DATA-MODEL-2.0]] specification. @@ -470,7 +472,7 @@

jsonSchema

JSON Schema Specifications

The following section describes the allowed specifications for - using a [[JSON-Schema]] with a credential schema. + using a [[JSON-SCHEMA]] with a credential schema.

To promote conformance and enable interoperability, implementers MUST @@ -533,8 +535,8 @@

Reserved Keywords

$id

Across JSON Schema specifications, the $id keyword identifies a schema resource - with its canonical [[RFC-6596]] URI. The $id MUST be present and its value - MUST represent a valid URI-reference [[RFC-3986]]. + with its canonical [[RFC6596]] URI. The $id MUST be present and its value + MUST represent a valid URI-reference [[RFC3986]].

It is RECOMMENDED that the value of the $id property match the id @@ -573,7 +575,7 @@

Representations of JSON Schema

syntax with .json as the file extension.

- Implementers MAY use OpenAPI Specification's [[OAS]] [[YAML]] representation + Implementers MAY use OpenAPI Specification's [[[OPENAPIS-3.1.0]]] [[YAML]] representation of a [[JSON-SCHEMA]] with .yaml as the file extension.

@@ -616,7 +618,8 @@

Integrity Validation

Credential Schemas MAY be packaged as verifiable credentials as defined by usage of the JsonSchemaCredential type. The credential containing a credential schema may include a proof, either - embedded according to [[VC-DATA-INTEGRITY]] or packaged as a [[VC-JOSE-COSE]]. + embedded according to + Securing Verifiable Credentials.

Secured credentials representing credential schemas SHOULD first be validated @@ -624,13 +627,13 @@

Integrity Validation

before proceeding with additional processing.

- Provide examples for Data Integrity and VC-JOSE-COSE Credential Schemas + Provide examples for secured credential schemas.

Credential Schemas of type JsonSchema MAY be annotated with integrity information by adding the `digestSRI` property to the `credentialSchema` value in the Verifiable Credential which contains the schema, using the method specified in - Subresource Integrity. + Integrity of Related Resources. It is RECOMMENDED that validation of the integrity of the schema be done before evaluation.

@@ -853,7 +856,7 @@

Credential Property Validation

Additional Properties

- In using [[JSON-Schema]] it is advised that implementers avoid + When using [[JSON-SCHEMA]], it is advised that implementers avoid setting the additionalProperties to false. Doing so could inadvertently exclude properties in a credential from passing validation. @@ -919,7 +922,8 @@

Content Integrity Protection

of a credential schema via its digital signature.

- As an alternative, the aforementioned [[SRI]] scheme may be used to provide content integrity + As an alternative, the aforementioned + Integrity of Related Resources scheme may be used to provide content integrity protection, ensuring that the underlying credential schema resource has not been tampered with.

@@ -935,7 +939,7 @@

Storage

Multiple Schemas

A common use case is to include multiple schemas to validate against a single - verifiable Credential. One such use case is to utilize the JSON Schema defined by the [[VC-DATA-MODEL-2]] in addition to a schema to validate a specific property in the credential, such as the credentialSubject. Multiple schemas MAY be combined using native constructs from the [[JSON-SCHEMA]] specification, through utilizing properties such as oneOf, anyOf, or allOf. + verifiable Credential. One such use case is to use the JSON Schema defined by the [[VC-DATA-MODEL-2.0]] in addition to a schema to validate a specific property in the credential, such as the credentialSubject. Multiple schemas MAY be combined using native constructs from the [[JSON-SCHEMA]] specification, through use of properties such as oneOf, anyOf, or allOf.

An example of how to construct such a schema using the [[JSON-SCHEMA]] property @@ -1037,8 +1041,8 @@

Multiple Schemas

Validity of a Verifiable Credential

Validation against a [[JSON-SCHEMA]] may be confused with - validation - or verification + validation + or verification of a Verifiable Credential. A valid credential according to a [[JSON-SCHEMA]] refers only to the structure of the claims comprising a Verifiable Credential. This idea of validity does not imply anything about the validity of the Verifiable Credential itself. @@ -1050,11 +1054,11 @@

Validity of a Verifiable Credential

Relationship to Verifiable Credential Type Property

It is common to define a credential schema that will be set for - Verifiable Credentials whose type + Verifiable Credentials whose type property contains a specific type. In this scenario, it is advised to use the value of the specific type in the id or in a name or description property. - of a [[JSON-Schema]]. + of a [[JSON-SCHEMA]].

The example below illustrates this for EmailCredential: @@ -1211,7 +1215,7 @@

Accessibility Considerations

JSON Schemas are designed to be a machine-readable format which provides static validation. As such, human readability is a secondary concern. When using a verifiable credential to represent a schema, we recommend following the - guidance in the VC Data Model. + guidance in the VC Data Model.

@@ -1232,7 +1236,7 @@

Internationalization Considerations

When using a verifiable credential to represent a schema, we recommend following the - guidance in the VC Data Model. + guidance in the VC Data Model.

@@ -1248,8 +1252,8 @@

JsonSchema

JSON Schema specifications.

- When using the JsonSchema type with a YAML - representation of a JSON Schema, defined by [[OAS]], the types application/openapi+yaml + When using the JsonSchema type with a [[YAML]] + representation of a [[JSON-SCHEMA]], defined by [[[OPENAPIS-3.1.0]]], the types application/openapi+yaml or application/yaml may be used.

@@ -1259,7 +1263,7 @@

JsonSchemaCredential

This specification acknowledges the use of the application/vc+ld+json, application/vc+ld+json+jwt, and application/vc+ld+json+sd-jwt Media Types specifically for identifying a [[JSON-SCHEMA]] with usage of the - JsonSchemaCredential type, as registered in the [[VC-DATA-MODEL-2]], [[VC-JOSE-COSE]], and [[SD-JWT]] specifications respectively. + JsonSchemaCredential type, as registered in the [[VC-DATA-MODEL-2.0]], [[VC-JOSE-COSE]], and [[SD-JWT]] specifications respectively.