Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

IssuanceDate and ExpirationDate #964

Closed
wants to merge 3 commits into from
Closed
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions VCDMExplainer.md
Original file line number Diff line number Diff line change
Expand Up @@ -153,7 +153,7 @@ Decentralized Identifier (DID) scheme.
"id": "http://example.edu/credentials/1872",
"type": ["VerifiableCredential", "AlumniCredential"],
"issuer": "https://example.edu/issuers/565049",,
"issuanceDate": "2010-01-01T19:73:24Z",
"validFrom": "2010-01-01T19:73:24Z",
"credentialSubject": {
"id": "did:example:ebfeb1f712ebc6f1c276e12ec21",
"alumniOf": "Example University"
Expand Down Expand Up @@ -184,7 +184,7 @@ The following is an example verifiable credential that supports ZKPs.
"ExampleNameDOB"
],
"issuer": "did:sov:4t1FPo72LzDMwpqtTVGVjysD6GUqS",
"issuanceDate": "2018-11-27T12:37:15Z",
"validFrom": "2018-11-27T12:37:15Z",
"credentialSubject": {
"name": "John Doe",
"birthDate": "1969-02-14",
Expand Down
2 changes: 1 addition & 1 deletion diagrams/credential-graph.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion diagrams/presentation-graph.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
105 changes: 43 additions & 62 deletions index.html
Original file line number Diff line number Diff line change
Expand Up @@ -756,7 +756,7 @@ <h3>Credentials</h3>
Proof Graph on the bottom. The Credental Graph has
Credential 123 with 4 properties: 'type' of value
AlumniCredential, 'issuer' of Example University,
'issuanceDate' of 2010-01-01T19:23:24Z, and
'validFrom' of 2010-01-01T19:23:24Z, and
credentialSubject of Pat, who has an alumniOf property
with value of Example University. The Proof Graph has
Signature 456 with 5 properties: 'type' of
Expand Down Expand Up @@ -924,7 +924,7 @@ <h3>Concrete Lifecycle Example</h3>
<span class='comment'>// the entity that issued the credential</span>
"issuer": "https://example.edu/issuers/565049",
<span class='comment'>// when the credential was issued</span>
"issuanceDate": "2010-01-01T19:23:24Z",
"validFrom": "2010-01-01T19:23:24Z",
<span class='comment'>// claims about the subjects of the credential</span>
"credentialSubject": {
<span class='comment'>// identifier for the only subject of the credential</span>
Expand Down Expand Up @@ -989,7 +989,7 @@ <h3>Concrete Lifecycle Example</h3>
"id": "http://example.edu/credentials/1872",
"type": ["VerifiableCredential", "AlumniCredential"],
"issuer": "https://example.edu/issuers/565049",
"issuanceDate": "2010-01-01T19:23:24Z",
"validFrom": "2010-01-01T19:23:24Z",
"credentialSubject": {
"id": "did:example:ebfeb1f712ebc6f1c276e12ec21",
"alumniOf": {
Expand Down Expand Up @@ -1120,7 +1120,7 @@ <h3>Contexts</h3>
"id": "http://example.edu/credentials/58473",
"type": ["VerifiableCredential", "AlumniCredential"],
"issuer": "https://example.edu/issuers/565049",
"issuanceDate": "2010-01-01T00:00:00Z",
"validFrom": "2010-01-01T00:00:00Z",
"credentialSubject": {
"id": "did:example:ebfeb1f712ebc6f1c276e12ec21",
"alumniOf": {
Expand Down Expand Up @@ -1226,7 +1226,7 @@ <h3>Identifiers</h3>
<span class="highlight">"id": "http://example.edu/credentials/3732"</span>,
"type": ["VerifiableCredential", "UniversityDegreeCredential"],
"issuer": "https://example.edu/issuers/565049",
"issuanceDate": "2010-01-01T00:00:00Z",
"validFrom": "2010-01-01T00:00:00Z",
"credentialSubject": {
<span class="highlight">"id": "did:example:ebfeb1f712ebc6f1c276e12ec21"</span>,
"degree": {
Expand Down Expand Up @@ -1302,7 +1302,7 @@ <h3>Types</h3>
"id": "http://example.edu/credentials/3732",
<span class="highlight">"type": ["VerifiableCredential", "UniversityDegreeCredential"]</span>,
"issuer": "https://example.edu/issuers/565049",
"issuanceDate": "2010-01-01T00:00:00Z",
"validFrom": "2010-01-01T00:00:00Z",
"credentialSubject": {
"id": "did:example:ebfeb1f712ebc6f1c276e12ec21",
"degree": {
Expand Down Expand Up @@ -1519,7 +1519,7 @@ <h3>Credential Subject</h3>
"id": "http://example.edu/credentials/3732",
"type": ["VerifiableCredential", "UniversityDegreeCredential"],
"issuer": "https://example.edu/issuers/565049",
"issuanceDate": "2010-01-01T00:00:00Z",
"validFrom": "2010-01-01T00:00:00Z",
<span class="highlight">"credentialSubject"</span>: {
"id": "did:example:ebfeb1f712ebc6f1c276e12ec21",
"degree": {
Expand Down Expand Up @@ -1547,7 +1547,7 @@ <h3>Credential Subject</h3>
"id": "http://example.edu/credentials/3732",
"type": ["VerifiableCredential", "RelationshipCredential"],
"issuer": "https://example.com/issuer/123",
"issuanceDate": "2010-01-01T00:00:00Z",
"validFrom": "2010-01-01T00:00:00Z",
"credentialSubject": <span class="highlight">[{
"id": "did:example:ebfeb1f712ebc6f1c276e12ec21",
"name": "Jayden Doe",
Expand Down Expand Up @@ -1596,7 +1596,7 @@ <h3>Issuer</h3>
"id": "http://example.edu/credentials/3732",
"type": ["VerifiableCredential", "UniversityDegreeCredential"],
<span class="highlight">"issuer": "https://example.edu/issuers/14"</span>,
"issuanceDate": "2010-01-01T19:23:24Z",
"validFrom": "2010-01-01T19:23:24Z",
"credentialSubject": {
"id": "did:example:ebfeb1f712ebc6f1c276e12ec21",
"degree": {
Expand Down Expand Up @@ -1626,7 +1626,7 @@ <h3>Issuer</h3>
"id": "did:example:76e12ec712ebc6f1c221ebfeb1f",
"name": "Example University"
}</span>,
"issuanceDate": "2010-01-01T19:23:24Z",
"validFrom": "2010-01-01T19:23:24Z",
"credentialSubject": {
"id": "did:example:ebfeb1f712ebc6f1c276e12ec21",
"degree": {
Expand All @@ -1646,18 +1646,18 @@ <h3>Issuer</h3>
</section>

<section>
<h3>Issuance Date</h3>
<h3>Valid From</h3>

<p>
This specification defines the <code>issuanceDate</code> <a>property</a> for
This specification defines the <code>validFrom</code> <a>property</a> for
expressing the date and time when a <a>credential</a> becomes valid.
</p>

<dl>
<dt><var>issuanceDate</var></dt>
<dt><var>validFrom</var></dt>
<dd>
A <a>credential</a> MUST have an <code>issuanceDate</code> <a>property</a>. The
value of the <code>issuanceDate</code> <a>property</a> MUST be a string value of
A <a>credential</a> MUST have a <code>validFrom</code> <a>property</a>. The
value of the <code>validFrom</code> <a>property</a> MUST be a string value of
an [<a data-cite="XMLSCHEMA11-2#dateTime">XMLSCHEMA11-2</a>] combined
<code>date-time</code> string representing the date and time the
<a>credential</a> becomes valid, which could be a date and time in the future.
Expand All @@ -1668,7 +1668,7 @@ <h3>Issuance Date</h3>
</dl>

<pre class="example nohighlight vc"
title="Usage of issuanceDate property"
title="Usage of validFrom property"
data-vc-vm="https://example.edu/issuers/14#key-1">
{
"@context": [
Expand All @@ -1678,7 +1678,7 @@ <h3>Issuance Date</h3>
"id": "http://example.edu/credentials/3732",
"type": ["VerifiableCredential", "UniversityDegreeCredential"],
"issuer": "https://example.edu/issuers/14",
<span class="highlight">"issuanceDate": "2010-01-01T19:23:24Z"</span>,
<span class="highlight">"validFrom": "2010-01-01T19:23:24Z"</span>,
"credentialSubject": {
"id": "did:example:ebfeb1f712ebc6f1c276e12ec21",
"degree": {
Expand All @@ -1689,17 +1689,6 @@ <h3>Issuance Date</h3>
}
</pre>

<p class="note">
It is expected that the next version of this specification will add the
<code>validFrom</code> <a>property</a> and will deprecate the
<code>issuanceDate</code> <a>property</a> in favor of a new <code>issued</code>
<a>property</a>. The range of values for both properties are expected to remain
as [<a data-cite="XMLSCHEMA11-2#dateTime">XMLSCHEMA11-2</a>] combined
<code>date-time</code> strings. Implementers are advised that the
<code>validFrom</code> and <code>issued</code> <a>properties</a> are reserved
and use for any other purpose is discouraged.
</p>

</section>

<section>
Expand Down Expand Up @@ -1756,7 +1745,7 @@ <h3>Proofs (Signatures)</h3>
"id": "http://example.gov/credentials/3732",
"type": ["VerifiableCredential", "UniversityDegreeCredential"],
"issuer": "https://example.edu",
"issuanceDate": "2010-01-01T19:23:24Z",
"validFrom": "2010-01-01T19:23:24Z",
"credentialSubject": {
"id": "did:example:ebfeb1f712ebc6f1c276e12ec21",
"degree": {
Expand Down Expand Up @@ -1792,22 +1781,22 @@ <h3>Proofs (Signatures)</h3>
<h3>Expiration</h3>

<p>
This specification defines the <code>expirationDate</code> <a>property</a> for
This specification defines the <code>validUntil</code> <a>property</a> for
the expression of <a>credential</a> expiration information.
</p>

<dl>
<dt><var>expirationDate</var></dt>
<dt><var>validUntil</var></dt>
<dd>
If present, the value of the <code>expirationDate</code> <a>property</a> MUST be
If present, the value of the <code>validUntil</code> <a>property</a> MUST be
a string value of an [<a data-cite="XMLSCHEMA11-2#dateTime">XMLSCHEMA11-2</a>]
<code>date-time</code> representing the date and time the <a>credential</a>
ceases to be valid.
</dd>
</dl>

<pre class="example nohighlight vc"
title="Usage of the expirationDate property"
title="Usage of the validUntil property"
data-vc-vm="https://example.edu/issuers/14#key-1">
{
"@context": [
Expand All @@ -1817,8 +1806,8 @@ <h3>Expiration</h3>
"id": "http://example.edu/credentials/3732",
"type": ["VerifiableCredential", "UniversityDegreeCredential"],
"issuer": "https://example.edu/issuers/14",
"issuanceDate": "2010-01-01T19:23:24Z",
<span class="highlight">"expirationDate": "2020-01-01T19:23:24Z"</span>,
"validFrom": "2010-01-01T19:23:24Z",
<span class="highlight">"validUntil": "2020-01-01T19:23:24Z"</span>,
"credentialSubject": {
"id": "did:example:ebfeb1f712ebc6f1c276e12ec21",
"degree": {
Expand All @@ -1829,14 +1818,6 @@ <h3>Expiration</h3>
}
</pre>

<p class="note">
It is expected that the next version of this specification will add the
<code>validUntil</code> <a>property</a> in a way that deprecates, but
preserves backwards compatibility with the <code>expirationDate</code>
<a>property</a>. Implementers are advised that the <code>validUntil</code>
<a>property</a> is reserved and its use for any other purpose is discouraged.
</p>

</section>

<section>
Expand Down Expand Up @@ -1889,7 +1870,7 @@ <h3>Status</h3>
"id": "http://example.edu/credentials/3732",
"type": ["VerifiableCredential", "UniversityDegreeCredential"],
"issuer": "https://example.edu/issuers/14",
"issuanceDate": "2010-01-01T19:23:24Z",
"validFrom": "2010-01-01T19:23:24Z",
"credentialSubject": {
"id": "did:example:ebfeb1f712ebc6f1c276e12ec21",
"degree": {
Expand Down Expand Up @@ -2317,7 +2298,7 @@ <h3>Extensibility</h3>
"id": "http://example.com/credentials/4643",
"type": ["VerifiableCredential"],
"issuer": "https://example.com/issuers/14",
"issuanceDate": "2018-02-24T05:28:04Z",
"validFrom": "2018-02-24T05:28:04Z",
"credentialSubject": {
"id": "did:example:abcdef1234567",
"name": "Jane Doe"
Expand Down Expand Up @@ -2370,7 +2351,7 @@ <h3>Extensibility</h3>
"id": "http://example.com/credentials/4643",
"type": ["VerifiableCredential", "CustomExt12"],
"issuer": "https://example.com/issuers/14",
"issuanceDate": "2018-02-24T05:28:04Z",
"validFrom": "2018-02-24T05:28:04Z",
<span class="highlight">"referenceNumber": 83294847,</span>
"credentialSubject": {
"id": "did:example:abcdef1234567",
Expand Down Expand Up @@ -2537,7 +2518,7 @@ <h3>Data Schemas</h3>
"id": "http://example.edu/credentials/3732",
"type": ["VerifiableCredential", "UniversityDegreeCredential"],
"issuer": "https://example.edu/issuers/14",
"issuanceDate": "2010-01-01T19:23:24Z",
"validFrom": "2010-01-01T19:23:24Z",
"credentialSubject": {
"id": "did:example:ebfeb1f712ebc6f1c276e12ec21",
"degree": {
Expand Down Expand Up @@ -2581,7 +2562,7 @@ <h3>Data Schemas</h3>
"id": "http://example.edu/credentials/3732",
"type": ["VerifiableCredential", "UniversityDegreeCredential"],
"issuer": "https://example.edu/issuers/14",
"issuanceDate": "2010-01-01T19:23:24Z",
"validFrom": "2010-01-01T19:23:24Z",
"credentialSubject": {
"id": "did:example:ebfeb1f712ebc6f1c276e12ec21",
"degree": {
Expand Down Expand Up @@ -2669,7 +2650,7 @@ <h3>Refreshing</h3>
"id": "http://example.edu/credentials/3732",
"type": ["VerifiableCredential", "UniversityDegreeCredential"],
"issuer": "https://example.edu/issuers/14",
"issuanceDate": "2010-01-01T19:23:24Z",
"validFrom": "2010-01-01T19:23:24Z",
"credentialSubject": {
"id": "did:example:ebfeb1f712ebc6f1c276e12ec21",
"degree": {
Expand Down Expand Up @@ -2749,7 +2730,7 @@ <h3>Terms of Use</h3>
"id": "http://example.edu/credentials/3732",
"type": ["VerifiableCredential", "UniversityDegreeCredential"],
"issuer": "https://example.edu/issuers/14",
"issuanceDate": "2010-01-01T19:23:24Z",
"validFrom": "2010-01-01T19:23:24Z",
"credentialSubject": {
"id": "did:example:ebfeb1f712ebc6f1c276e12ec21",
"degree": {
Expand Down Expand Up @@ -2807,7 +2788,7 @@ <h3>Terms of Use</h3>
"id": "http://example.edu/credentials/3732",
"type": ["VerifiableCredential", "UniversityDegreeCredential"],
"issuer": "https://example.edu/issuers/14",
"issuanceDate": "2010-01-01T19:23:24Z",
"validFrom": "2010-01-01T19:23:24Z",
"credentialSubject": {
"id": "did:example:ebfeb1f712ebc6f1c276e12ec21",
"degree": {
Expand Down Expand Up @@ -2920,7 +2901,7 @@ <h3>Evidence</h3>
"id": "http://example.edu/credentials/3732",
"type": ["VerifiableCredential", "UniversityDegreeCredential"],
"issuer": "https://example.edu/issuers/14",
"issuanceDate": "2010-01-01T19:23:24Z",
"validFrom": "2010-01-01T19:23:24Z",
"credentialSubject": {
"id": "did:example:ebfeb1f712ebc6f1c276e12ec21",
"degree": {
Expand Down Expand Up @@ -3248,7 +3229,7 @@ <h3>Disputes</h3>
},
}</span>,
"issuer": "https://example.com/people#me",
"issuanceDate": "2017-12-05T14:27:42Z",
"validFrom": "2017-12-05T14:27:42Z",
"proof": { <span class="comment">...</span> }
}
</pre>
Expand Down Expand Up @@ -3329,10 +3310,10 @@ <h2>Syntaxes</h2>
<code>issuer</code> <a>property</a>
</li>
<li>
<code>issuanceDate</code> <a>property</a>
<code>validFrom</code> <a>property</a>
</li>
<li>
<code>expirationDate</code> <a>property</a>.
<code>validUntil</code> <a>property</a>.
</li>
</ul>

Expand Down Expand Up @@ -3821,7 +3802,7 @@ <h3>Bearer Credentials</h3>
"id": "http://example.edu/credentials/temporary/28934792387492384",
"type": ["VerifiableCredential", "UniversityDegreeCredential"],
"issuer": "https://example.edu/issuers/14",
"issuanceDate": "2017-10-22T12:23:48Z",
"validFrom": "2017-10-22T12:23:48Z",
"credentialSubject": {
<span class="comment">// note that the 'id' property is not specified for bearer credentials</span>
"degree": {
Expand Down Expand Up @@ -4719,11 +4700,11 @@ <h3>Issuer</h3>
</section>

<section class="informative">
<h3>Issuance Date</h3>
<h3>Valid From</h3>

<p>
The <code>issuanceDate</code> is expected to be within an expected range for the
<a>verifier</a>. For example, a <a>verifier</a> can check that the issuance date
The <code>validFrom</code> is expected to be within an expected range for the
<a>verifier</a>. For example, a <a>verifier</a> can check that the valid from property
of a <a>verifiable credential</a> is not in the future.
</p>
</section>
Expand Down Expand Up @@ -4797,7 +4778,7 @@ <h3>Proofs (Signatures)</h3>
<h3>Expiration</h3>

<p>
The <code>expirationDate</code> is expected to be within an expected range
The <code>validUntil</code> is expected to be within an expected range
for the <a>verifier</a>. For example, a <a>verifier</a> can check that the
expiration date of a <a>verifiable credential</a> is not in the past.
</p>
Expand Down Expand Up @@ -4892,11 +4873,11 @@ <h3>Base Context</h3>
"credentialStatus": {"@id": "cred:credentialStatus", "@type": "@id"},
"credentialSubject": {"@id": "cred:credentialSubject", "@type": "@id"},
"evidence": {"@id": "cred:evidence", "@type": "@id"},
"expirationDate": {"@id": "cred:expirationDate", "@type": "xsd:dateTime"},
"validUntil": {"@id": "cred:validUntil", "@type": "xsd:dateTime"},
"holder": {"@id": "cred:holder", "@type": "@id"},
"issued": {"@id": "cred:issued", "@type": "xsd:dateTime"},
"issuer": {"@id": "cred:issuer", "@type": "@id"},
"issuanceDate": {"@id": "cred:issuanceDate", "@type": "xsd:dateTime"},
"validFrom": {"@id": "cred:validFrom", "@type": "xsd:dateTime"},
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note that validUntil and validFrom are already present in the context, at the end -- so these are duplicates.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

good catch, should be resolved now.

"proof": {"@id": "sec:proof", "@type": "@id", "@container": "@graph"},
"refreshService": {
"@id": "cred:refreshService",
Expand Down
Loading