From 1d13949d694a6e9894ac51375150b8fd89b6d959 Mon Sep 17 00:00:00 2001 From: Kristina <=> Date: Fri, 8 Dec 2023 15:53:39 -0800 Subject: [PATCH 1/4] add examples of mandatory and clarify the description --- examples/credential_metadata_jwt_vc_json.json | 1 + examples/credential_metadata_ldp_vc.json | 1 + examples/credential_metadata_mso_mdoc.json | 4 +++- openid-4-verifiable-credential-issuance-1_0.md | 6 +++--- 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/examples/credential_metadata_jwt_vc_json.json b/examples/credential_metadata_jwt_vc_json.json index 9bb60d36..825d0f6d 100644 --- a/examples/credential_metadata_jwt_vc_json.json +++ b/examples/credential_metadata_jwt_vc_json.json @@ -33,6 +33,7 @@ }, "degree": {}, "gpa": { + "mandatory": true, "display": [ { "name": "GPA" diff --git a/examples/credential_metadata_ldp_vc.json b/examples/credential_metadata_ldp_vc.json index 03e62410..cdcd41b9 100644 --- a/examples/credential_metadata_ldp_vc.json +++ b/examples/credential_metadata_ldp_vc.json @@ -44,6 +44,7 @@ }, "degree": {}, "gpa": { + "mandatory": true, "display": [ { "name": "GPA" diff --git a/examples/credential_metadata_mso_mdoc.json b/examples/credential_metadata_mso_mdoc.json index 90df2a0f..3cbef5a6 100644 --- a/examples/credential_metadata_mso_mdoc.json +++ b/examples/credential_metadata_mso_mdoc.json @@ -54,7 +54,9 @@ } ] }, - "birth_date": {} + "birth_date": { + "mandatory": true + } }, "org.iso.18013.5.1.aamva": { "organ_donor": {} diff --git a/openid-4-verifiable-credential-issuance-1_0.md b/openid-4-verifiable-credential-issuance-1_0.md index d3a60c7f..8395e738 100644 --- a/openid-4-verifiable-credential-issuance-1_0.md +++ b/openid-4-verifiable-credential-issuance-1_0.md @@ -1729,7 +1729,7 @@ The following additional Credential Issuer metadata are defined for this Credent * `credential_definition`: REQUIRED. Object containing the detailed description of the Credential type. It consists at least of the following two sub claims: * `type`: REQUIRED. Array designating the types a certain Credential type supports according to [@VC_DATA], Section 4.3. * `credentialSubject`: OPTIONAL. An object containing a list of name/value pairs, where each name identifies a claim offered in the Credential. The value can be another such object (nested data structures), or an array of such objects. To express the specifics about the claim, the most deeply nested value MAY be an object that includes a following non-exhaustive list of parameters defined by this specification: - * `mandatory`: OPTIONAL. Boolean which when set to `true` indicates the claim MUST be present in the issued Credential. If the `mandatory` property is omitted its default should be assumed to be `false`. + * `mandatory`: OPTIONAL. Boolean which, when set to `true`, indicates that the Credential Issuer will always include this claim in the issued Credential. If the `mandatory` property is omitted its default should be assumed to be `false`. * `value_type`: OPTIONAL. String value determining the type of value of the claim. A non-exhaustive list of valid values defined by this specification are `string`, `number`, and image media types such as `image/jpeg` as defined in IANA media type registry for images (https://www.iana.org/assignments/media-types/media-types.xhtml#image). * `display`: OPTIONAL. An array of objects, where each object contains display properties of a certain claim in the Credential for a certain language. Below is a non-exhaustive list of valid parameters that MAY be included: * `name`: OPTIONAL. String value of a display name for the claim. @@ -1799,7 +1799,7 @@ The following additional Credential Issuer metadata are defined for this Credent * `@context`: REQUIRED. Array as defined in [@VC_DATA], Section 4.1. * `type`: REQUIRED. Array designating the types a certain credential type supports according to [@VC_DATA], Section 4.3. * `credentialSubject`: OPTIONAL. An object containing a list of name/value pairs, where each name identifies a claim offered in the Credential. The value can be another such object (nested data structures), or an array of such objects. To express the specifics about the claim, the most deeply nested value MAY be an object that includes a following non-exhaustive list of parameters defined by this specification: - * `mandatory`: OPTIONAL. Boolean which when set to `true` indicates the claim MUST be present in the issued Credential. If the `mandatory` property is omitted its default should be assumed to be `false`. + * `mandatory`: OPTIONAL. Boolean which, when set to `true`, indicates that the Credential Issuer will always include this claim in the issued Credential. If the `mandatory` property is omitted its default should be assumed to be `false`. * `value_type`: OPTIONAL. String value determining the type of value of the claim. A non-exhaustive list of valid values defined by this specification are `string`, `number`, and image media types such as `image/jpeg` as defined in IANA media type registry for images (https://www.iana.org/assignments/media-types/media-types.xhtml#image). * `display`: OPTIONAL. An array of objects, where each object contains display properties of a certain claim in the Credential for a certain language. Below is a non-exhaustive list of valid parameters that MAY be included: * `name`: OPTIONAL. String value of a display name for the claim. @@ -1896,7 +1896,7 @@ The following additional Credential Issuer metadata are defined for this Credent * `doctype`: REQUIRED. String identifying the Credential type as defined in [@!ISO.18013-5]. * `claims`: OPTIONAL. An object containing a list of name/value pairs, where the name is a certain `namespace` as defined in [@!ISO.18013-5] (or any profile of it), and the value is an object. This object also contains a list of name/value pairs, where the name is a claim name value that is defined in the respective namespace and is offered in the Credential. The value is an object detailing the specifics of the claim with the following non-exhaustive list of parameters that MAY be included: - * `mandatory`: OPTIONAL. Boolean which when set to `true` indicates the claim MUST be present in the issued Credential. If the `mandatory` property is omitted its default should be assumed to be `false`. + * `mandatory`: OPTIONAL. Boolean which, when set to `true`, indicates that the Credential Issuer will always include this claim in the issued Credential. If the `mandatory` property is omitted its default should be assumed to be `false`. * `value_type`: OPTIONAL. String value determining the type of value of the claim. A non-exhaustive list of valid values defined by this specification are `string`, `number`, and image media types such as `image/jpeg` as defined in IANA media type registry for images (https://www.iana.org/assignments/media-types/media-types.xhtml#image). * `display`: OPTIONAL. An array of objects, where each object contains display properties of a certain claim in the Credential for a certain language. Below is a non-exhaustive list of valid parameters that MAY be included: * `name`: OPTIONAL. String value of a display name for the claim. From 680458a5003261d382d0164c1ac8ae7fab2c9fe7 Mon Sep 17 00:00:00 2001 From: Kristina <52878547+Sakurann@users.noreply.github.com> Date: Wed, 13 Dec 2023 05:11:26 -0800 Subject: [PATCH 2/4] make explicit what it means when sent to false --- openid-4-verifiable-credential-issuance-1_0.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/openid-4-verifiable-credential-issuance-1_0.md b/openid-4-verifiable-credential-issuance-1_0.md index 8395e738..24040232 100644 --- a/openid-4-verifiable-credential-issuance-1_0.md +++ b/openid-4-verifiable-credential-issuance-1_0.md @@ -1729,7 +1729,7 @@ The following additional Credential Issuer metadata are defined for this Credent * `credential_definition`: REQUIRED. Object containing the detailed description of the Credential type. It consists at least of the following two sub claims: * `type`: REQUIRED. Array designating the types a certain Credential type supports according to [@VC_DATA], Section 4.3. * `credentialSubject`: OPTIONAL. An object containing a list of name/value pairs, where each name identifies a claim offered in the Credential. The value can be another such object (nested data structures), or an array of such objects. To express the specifics about the claim, the most deeply nested value MAY be an object that includes a following non-exhaustive list of parameters defined by this specification: - * `mandatory`: OPTIONAL. Boolean which, when set to `true`, indicates that the Credential Issuer will always include this claim in the issued Credential. If the `mandatory` property is omitted its default should be assumed to be `false`. + * `mandatory`: OPTIONAL. Boolean which, when set to `true`, indicates that the Credential Issuer will always include this claim in the issued Credential. If set to `false`, the Credential Issuer can choose not to include the claim. If the `mandatory` parameter is omitted, the default should be assumed to be `false`. * `value_type`: OPTIONAL. String value determining the type of value of the claim. A non-exhaustive list of valid values defined by this specification are `string`, `number`, and image media types such as `image/jpeg` as defined in IANA media type registry for images (https://www.iana.org/assignments/media-types/media-types.xhtml#image). * `display`: OPTIONAL. An array of objects, where each object contains display properties of a certain claim in the Credential for a certain language. Below is a non-exhaustive list of valid parameters that MAY be included: * `name`: OPTIONAL. String value of a display name for the claim. @@ -1799,7 +1799,7 @@ The following additional Credential Issuer metadata are defined for this Credent * `@context`: REQUIRED. Array as defined in [@VC_DATA], Section 4.1. * `type`: REQUIRED. Array designating the types a certain credential type supports according to [@VC_DATA], Section 4.3. * `credentialSubject`: OPTIONAL. An object containing a list of name/value pairs, where each name identifies a claim offered in the Credential. The value can be another such object (nested data structures), or an array of such objects. To express the specifics about the claim, the most deeply nested value MAY be an object that includes a following non-exhaustive list of parameters defined by this specification: - * `mandatory`: OPTIONAL. Boolean which, when set to `true`, indicates that the Credential Issuer will always include this claim in the issued Credential. If the `mandatory` property is omitted its default should be assumed to be `false`. + * `mandatory`: OPTIONAL. Boolean which, when set to `true`, indicates that the Credential Issuer will always include this claim in the issued Credential. If set to `false`, the Credential Issuer can choose not to include the claim. If the `mandatory` parameter is omitted, the default should be assumed to be `false`. * `value_type`: OPTIONAL. String value determining the type of value of the claim. A non-exhaustive list of valid values defined by this specification are `string`, `number`, and image media types such as `image/jpeg` as defined in IANA media type registry for images (https://www.iana.org/assignments/media-types/media-types.xhtml#image). * `display`: OPTIONAL. An array of objects, where each object contains display properties of a certain claim in the Credential for a certain language. Below is a non-exhaustive list of valid parameters that MAY be included: * `name`: OPTIONAL. String value of a display name for the claim. @@ -1896,7 +1896,7 @@ The following additional Credential Issuer metadata are defined for this Credent * `doctype`: REQUIRED. String identifying the Credential type as defined in [@!ISO.18013-5]. * `claims`: OPTIONAL. An object containing a list of name/value pairs, where the name is a certain `namespace` as defined in [@!ISO.18013-5] (or any profile of it), and the value is an object. This object also contains a list of name/value pairs, where the name is a claim name value that is defined in the respective namespace and is offered in the Credential. The value is an object detailing the specifics of the claim with the following non-exhaustive list of parameters that MAY be included: - * `mandatory`: OPTIONAL. Boolean which, when set to `true`, indicates that the Credential Issuer will always include this claim in the issued Credential. If the `mandatory` property is omitted its default should be assumed to be `false`. + * `mandatory`: OPTIONAL. Boolean which, when set to `true`, indicates that the Credential Issuer will always include this claim in the issued Credential. If set to `false`, the Credential Issuer can choose not to include the claim. If the `mandatory` parameter is omitted, the default should be assumed to be `false`. * `value_type`: OPTIONAL. String value determining the type of value of the claim. A non-exhaustive list of valid values defined by this specification are `string`, `number`, and image media types such as `image/jpeg` as defined in IANA media type registry for images (https://www.iana.org/assignments/media-types/media-types.xhtml#image). * `display`: OPTIONAL. An array of objects, where each object contains display properties of a certain claim in the Credential for a certain language. Below is a non-exhaustive list of valid parameters that MAY be included: * `name`: OPTIONAL. String value of a display name for the claim. From fa392546d771581bfec69b3ec70d7037bec89c13 Mon Sep 17 00:00:00 2001 From: Kristina <52878547+Sakurann@users.noreply.github.com> Date: Thu, 14 Dec 2023 09:17:54 -0800 Subject: [PATCH 3/4] Apply suggestions from code review Co-authored-by: Oliver Terbu <43441584+awoie@users.noreply.github.com> --- openid-4-verifiable-credential-issuance-1_0.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/openid-4-verifiable-credential-issuance-1_0.md b/openid-4-verifiable-credential-issuance-1_0.md index 24040232..2c87b6b5 100644 --- a/openid-4-verifiable-credential-issuance-1_0.md +++ b/openid-4-verifiable-credential-issuance-1_0.md @@ -1729,7 +1729,7 @@ The following additional Credential Issuer metadata are defined for this Credent * `credential_definition`: REQUIRED. Object containing the detailed description of the Credential type. It consists at least of the following two sub claims: * `type`: REQUIRED. Array designating the types a certain Credential type supports according to [@VC_DATA], Section 4.3. * `credentialSubject`: OPTIONAL. An object containing a list of name/value pairs, where each name identifies a claim offered in the Credential. The value can be another such object (nested data structures), or an array of such objects. To express the specifics about the claim, the most deeply nested value MAY be an object that includes a following non-exhaustive list of parameters defined by this specification: - * `mandatory`: OPTIONAL. Boolean which, when set to `true`, indicates that the Credential Issuer will always include this claim in the issued Credential. If set to `false`, the Credential Issuer can choose not to include the claim. If the `mandatory` parameter is omitted, the default should be assumed to be `false`. + * `mandatory`: OPTIONAL. Boolean which, when set to `true`, indicates that the Credential Issuer will always include this claim in the issued Credential. If set to `false`, the claim is not included in the issued Credential if the wallet did not request the inclusion of the claim in the Authorization Request, or if the Issuer chose to not include the claim. If the `mandatory` parameter is omitted, the default should be assumed to be `false`. * `value_type`: OPTIONAL. String value determining the type of value of the claim. A non-exhaustive list of valid values defined by this specification are `string`, `number`, and image media types such as `image/jpeg` as defined in IANA media type registry for images (https://www.iana.org/assignments/media-types/media-types.xhtml#image). * `display`: OPTIONAL. An array of objects, where each object contains display properties of a certain claim in the Credential for a certain language. Below is a non-exhaustive list of valid parameters that MAY be included: * `name`: OPTIONAL. String value of a display name for the claim. @@ -1799,7 +1799,7 @@ The following additional Credential Issuer metadata are defined for this Credent * `@context`: REQUIRED. Array as defined in [@VC_DATA], Section 4.1. * `type`: REQUIRED. Array designating the types a certain credential type supports according to [@VC_DATA], Section 4.3. * `credentialSubject`: OPTIONAL. An object containing a list of name/value pairs, where each name identifies a claim offered in the Credential. The value can be another such object (nested data structures), or an array of such objects. To express the specifics about the claim, the most deeply nested value MAY be an object that includes a following non-exhaustive list of parameters defined by this specification: - * `mandatory`: OPTIONAL. Boolean which, when set to `true`, indicates that the Credential Issuer will always include this claim in the issued Credential. If set to `false`, the Credential Issuer can choose not to include the claim. If the `mandatory` parameter is omitted, the default should be assumed to be `false`. + * `mandatory`: OPTIONAL. Boolean which, when set to `true`, indicates that the Credential Issuer will always include this claim in the issued Credential. If set to `false`, the claim is not included in the issued Credential if the wallet did not request the inclusion of the claim in the Authorization Request, or if the Issuer chose to not include the claim. If the `mandatory` parameter is omitted, the default should be assumed to be `false`. * `value_type`: OPTIONAL. String value determining the type of value of the claim. A non-exhaustive list of valid values defined by this specification are `string`, `number`, and image media types such as `image/jpeg` as defined in IANA media type registry for images (https://www.iana.org/assignments/media-types/media-types.xhtml#image). * `display`: OPTIONAL. An array of objects, where each object contains display properties of a certain claim in the Credential for a certain language. Below is a non-exhaustive list of valid parameters that MAY be included: * `name`: OPTIONAL. String value of a display name for the claim. @@ -1896,7 +1896,7 @@ The following additional Credential Issuer metadata are defined for this Credent * `doctype`: REQUIRED. String identifying the Credential type as defined in [@!ISO.18013-5]. * `claims`: OPTIONAL. An object containing a list of name/value pairs, where the name is a certain `namespace` as defined in [@!ISO.18013-5] (or any profile of it), and the value is an object. This object also contains a list of name/value pairs, where the name is a claim name value that is defined in the respective namespace and is offered in the Credential. The value is an object detailing the specifics of the claim with the following non-exhaustive list of parameters that MAY be included: - * `mandatory`: OPTIONAL. Boolean which, when set to `true`, indicates that the Credential Issuer will always include this claim in the issued Credential. If set to `false`, the Credential Issuer can choose not to include the claim. If the `mandatory` parameter is omitted, the default should be assumed to be `false`. + * `mandatory`: OPTIONAL. Boolean which, when set to `true`, indicates that the Credential Issuer will always include this claim in the issued Credential. If set to `false`, the claim is not included in the issued Credential if the wallet did not request the inclusion of the claim in the Authorization Request, or if the Issuer chose to not include the claim. If the `mandatory` parameter is omitted, the default should be assumed to be `false`. * `value_type`: OPTIONAL. String value determining the type of value of the claim. A non-exhaustive list of valid values defined by this specification are `string`, `number`, and image media types such as `image/jpeg` as defined in IANA media type registry for images (https://www.iana.org/assignments/media-types/media-types.xhtml#image). * `display`: OPTIONAL. An array of objects, where each object contains display properties of a certain claim in the Credential for a certain language. Below is a non-exhaustive list of valid parameters that MAY be included: * `name`: OPTIONAL. String value of a display name for the claim. From b47c0d093c44573aafef259781a426f1827b453c Mon Sep 17 00:00:00 2001 From: Kristina <52878547+Sakurann@users.noreply.github.com> Date: Thu, 14 Dec 2023 09:22:20 -0800 Subject: [PATCH 4/4] Apply suggestions from code review --- openid-4-verifiable-credential-issuance-1_0.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/openid-4-verifiable-credential-issuance-1_0.md b/openid-4-verifiable-credential-issuance-1_0.md index 2c87b6b5..34c69839 100644 --- a/openid-4-verifiable-credential-issuance-1_0.md +++ b/openid-4-verifiable-credential-issuance-1_0.md @@ -1729,7 +1729,7 @@ The following additional Credential Issuer metadata are defined for this Credent * `credential_definition`: REQUIRED. Object containing the detailed description of the Credential type. It consists at least of the following two sub claims: * `type`: REQUIRED. Array designating the types a certain Credential type supports according to [@VC_DATA], Section 4.3. * `credentialSubject`: OPTIONAL. An object containing a list of name/value pairs, where each name identifies a claim offered in the Credential. The value can be another such object (nested data structures), or an array of such objects. To express the specifics about the claim, the most deeply nested value MAY be an object that includes a following non-exhaustive list of parameters defined by this specification: - * `mandatory`: OPTIONAL. Boolean which, when set to `true`, indicates that the Credential Issuer will always include this claim in the issued Credential. If set to `false`, the claim is not included in the issued Credential if the wallet did not request the inclusion of the claim in the Authorization Request, or if the Issuer chose to not include the claim. If the `mandatory` parameter is omitted, the default should be assumed to be `false`. + * `mandatory`: OPTIONAL. Boolean which, when set to `true`, indicates that the Credential Issuer will always include this claim in the issued Credential. If set to `false`, the claim is not included in the issued Credential if the wallet did not request the inclusion of the claim, and/or if the Credential Issuer chose to not include the claim. If the `mandatory` parameter is omitted, the default should be assumed to be `false`. * `value_type`: OPTIONAL. String value determining the type of value of the claim. A non-exhaustive list of valid values defined by this specification are `string`, `number`, and image media types such as `image/jpeg` as defined in IANA media type registry for images (https://www.iana.org/assignments/media-types/media-types.xhtml#image). * `display`: OPTIONAL. An array of objects, where each object contains display properties of a certain claim in the Credential for a certain language. Below is a non-exhaustive list of valid parameters that MAY be included: * `name`: OPTIONAL. String value of a display name for the claim. @@ -1799,7 +1799,7 @@ The following additional Credential Issuer metadata are defined for this Credent * `@context`: REQUIRED. Array as defined in [@VC_DATA], Section 4.1. * `type`: REQUIRED. Array designating the types a certain credential type supports according to [@VC_DATA], Section 4.3. * `credentialSubject`: OPTIONAL. An object containing a list of name/value pairs, where each name identifies a claim offered in the Credential. The value can be another such object (nested data structures), or an array of such objects. To express the specifics about the claim, the most deeply nested value MAY be an object that includes a following non-exhaustive list of parameters defined by this specification: - * `mandatory`: OPTIONAL. Boolean which, when set to `true`, indicates that the Credential Issuer will always include this claim in the issued Credential. If set to `false`, the claim is not included in the issued Credential if the wallet did not request the inclusion of the claim in the Authorization Request, or if the Issuer chose to not include the claim. If the `mandatory` parameter is omitted, the default should be assumed to be `false`. + * `mandatory`: OPTIONAL. Boolean which, when set to `true`, indicates that the Credential Issuer will always include this claim in the issued Credential. If set to `false`, the claim is not included in the issued Credential if the wallet did not request the inclusion of the claim, and/or if the Credential Issuer chose to not include the claim. If the `mandatory` parameter is omitted, the default should be assumed to be `false`. * `value_type`: OPTIONAL. String value determining the type of value of the claim. A non-exhaustive list of valid values defined by this specification are `string`, `number`, and image media types such as `image/jpeg` as defined in IANA media type registry for images (https://www.iana.org/assignments/media-types/media-types.xhtml#image). * `display`: OPTIONAL. An array of objects, where each object contains display properties of a certain claim in the Credential for a certain language. Below is a non-exhaustive list of valid parameters that MAY be included: * `name`: OPTIONAL. String value of a display name for the claim. @@ -1896,7 +1896,7 @@ The following additional Credential Issuer metadata are defined for this Credent * `doctype`: REQUIRED. String identifying the Credential type as defined in [@!ISO.18013-5]. * `claims`: OPTIONAL. An object containing a list of name/value pairs, where the name is a certain `namespace` as defined in [@!ISO.18013-5] (or any profile of it), and the value is an object. This object also contains a list of name/value pairs, where the name is a claim name value that is defined in the respective namespace and is offered in the Credential. The value is an object detailing the specifics of the claim with the following non-exhaustive list of parameters that MAY be included: - * `mandatory`: OPTIONAL. Boolean which, when set to `true`, indicates that the Credential Issuer will always include this claim in the issued Credential. If set to `false`, the claim is not included in the issued Credential if the wallet did not request the inclusion of the claim in the Authorization Request, or if the Issuer chose to not include the claim. If the `mandatory` parameter is omitted, the default should be assumed to be `false`. + * `mandatory`: OPTIONAL. Boolean which, when set to `true`, indicates that the Credential Issuer will always include this claim in the issued Credential. If set to `false`, the claim is not included in the issued Credential if the wallet did not request the inclusion of the claim, and/or if the Credential Issuer chose to not include the claim. If the `mandatory` parameter is omitted, the default should be assumed to be `false`. * `value_type`: OPTIONAL. String value determining the type of value of the claim. A non-exhaustive list of valid values defined by this specification are `string`, `number`, and image media types such as `image/jpeg` as defined in IANA media type registry for images (https://www.iana.org/assignments/media-types/media-types.xhtml#image). * `display`: OPTIONAL. An array of objects, where each object contains display properties of a certain claim in the Credential for a certain language. Below is a non-exhaustive list of valid parameters that MAY be included: * `name`: OPTIONAL. String value of a display name for the claim.