diff --git a/docs/src/architecture/08_concepts/signed_doc/docs/brand_parameters.md b/docs/src/architecture/08_concepts/signed_doc/docs/brand_parameters.md index e13e6565df..58fb0a6bff 100644 --- a/docs/src/architecture/08_concepts/signed_doc/docs/brand_parameters.md +++ b/docs/src/architecture/08_concepts/signed_doc/docs/brand_parameters.md @@ -86,10 +86,12 @@ timestamp of when the document was created. #### [`id`](../metadata.md#id) Validation -IF [`ver`](../metadata.md#ver) does not == [`id`](../metadata.md#id) then a document with -[`id`](../metadata.md#id) and [`ver`](../metadata.md#ver) being equal *MUST* exist. +The document ID validation is performed based on timestamp thresholds: -### [`ver`](../metadata.md#ver) +* If `future_threshold` is configured, the document `id` cannot be too far in the future from the +current time. +* If `past_threshold` is configured, the document `id` cannot be too far in the past from the +current time. | Parameter | Value | @@ -104,7 +106,12 @@ The first version of the document must set [`ver`](../metadata.md#ver) == [`id`] #### [`ver`](../metadata.md#ver) Validation -The document version must always be >= the document ID. +1. The document version must always be >= the document ID. +2. IF `ver` does not == `id` then a document with `id` and `ver` being equal *MUST* exist. +3. When a document with the same `id` already exists, the new document's `ver` must be greater than +the latest known submitted version for that `id`. +4. When a document with the same `id` already exists, the new document's `type` must be the same as +the latest known submitted document's `type` for that `id`. ### [`template`](../metadata.md#template) diff --git a/docs/src/architecture/08_concepts/signed_doc/docs/brand_parameters_form_template.md b/docs/src/architecture/08_concepts/signed_doc/docs/brand_parameters_form_template.md index 55d779c514..222f169f0d 100644 --- a/docs/src/architecture/08_concepts/signed_doc/docs/brand_parameters_form_template.md +++ b/docs/src/architecture/08_concepts/signed_doc/docs/brand_parameters_form_template.md @@ -91,10 +91,12 @@ timestamp of when the document was created. #### [`id`](../metadata.md#id) Validation -IF [`ver`](../metadata.md#ver) does not == [`id`](../metadata.md#id) then a document with -[`id`](../metadata.md#id) and [`ver`](../metadata.md#ver) being equal *MUST* exist. +The document ID validation is performed based on timestamp thresholds: -### [`ver`](../metadata.md#ver) +* If `future_threshold` is configured, the document `id` cannot be too far in the future from the +current time. +* If `past_threshold` is configured, the document `id` cannot be too far in the past from the +current time. | Parameter | Value | @@ -109,7 +111,12 @@ The first version of the document must set [`ver`](../metadata.md#ver) == [`id`] #### [`ver`](../metadata.md#ver) Validation -The document version must always be >= the document ID. +1. The document version must always be >= the document ID. +2. IF `ver` does not == `id` then a document with `id` and `ver` being equal *MUST* exist. +3. When a document with the same `id` already exists, the new document's `ver` must be greater than +the latest known submitted version for that `id`. +4. When a document with the same `id` already exists, the new document's `type` must be the same as +the latest known submitted document's `type` for that `id`. ## Payload diff --git a/docs/src/architecture/08_concepts/signed_doc/docs/campaign_parameters.md b/docs/src/architecture/08_concepts/signed_doc/docs/campaign_parameters.md index a057c97470..64437da2c0 100644 --- a/docs/src/architecture/08_concepts/signed_doc/docs/campaign_parameters.md +++ b/docs/src/architecture/08_concepts/signed_doc/docs/campaign_parameters.md @@ -87,10 +87,12 @@ timestamp of when the document was created. #### [`id`](../metadata.md#id) Validation -IF [`ver`](../metadata.md#ver) does not == [`id`](../metadata.md#id) then a document with -[`id`](../metadata.md#id) and [`ver`](../metadata.md#ver) being equal *MUST* exist. +The document ID validation is performed based on timestamp thresholds: -### [`ver`](../metadata.md#ver) +* If `future_threshold` is configured, the document `id` cannot be too far in the future from the + current time. +* If `past_threshold` is configured, the document `id` cannot be too far in the past from the + current time. | Parameter | Value | @@ -105,7 +107,12 @@ The first version of the document must set [`ver`](../metadata.md#ver) == [`id`] #### [`ver`](../metadata.md#ver) Validation -The document version must always be >= the document ID. +1. The document version must always be >= the document ID. +2. IF `ver` does not == `id` then a document with `id` and `ver` being equal *MUST* exist. +3. When a document with the same `id` already exists, the new document's `ver` must be greater than +the latest known submitted version for that `id`. +4. When a document with the same `id` already exists, the new document's `type` must be the same as +the latest known submitted document's `type` for that `id`. ### [`template`](../metadata.md#template) diff --git a/docs/src/architecture/08_concepts/signed_doc/docs/campaign_parameters_form_template.md b/docs/src/architecture/08_concepts/signed_doc/docs/campaign_parameters_form_template.md index d6f93043cb..7e1e3477ec 100644 --- a/docs/src/architecture/08_concepts/signed_doc/docs/campaign_parameters_form_template.md +++ b/docs/src/architecture/08_concepts/signed_doc/docs/campaign_parameters_form_template.md @@ -91,10 +91,12 @@ timestamp of when the document was created. #### [`id`](../metadata.md#id) Validation -IF [`ver`](../metadata.md#ver) does not == [`id`](../metadata.md#id) then a document with -[`id`](../metadata.md#id) and [`ver`](../metadata.md#ver) being equal *MUST* exist. +The document ID validation is performed based on timestamp thresholds: -### [`ver`](../metadata.md#ver) +* If `future_threshold` is configured, the document `id` cannot be too far in the future from the + current time. +* If `past_threshold` is configured, the document `id` cannot be too far in the past from the + current time. | Parameter | Value | @@ -109,7 +111,12 @@ The first version of the document must set [`ver`](../metadata.md#ver) == [`id`] #### [`ver`](../metadata.md#ver) Validation -The document version must always be >= the document ID. +1. The document version must always be >= the document ID. +2. IF `ver` does not == `id` then a document with `id` and `ver` being equal *MUST* exist. +3. When a document with the same `id` already exists, the new document's `ver` must be greater than +the latest known submitted version for that `id`. +4. When a document with the same `id` already exists, the new document's `type` must be the same as +the latest known submitted document's `type` for that `id`. ### [`parameters`](../metadata.md#parameters) diff --git a/docs/src/architecture/08_concepts/signed_doc/docs/category_parameters.md b/docs/src/architecture/08_concepts/signed_doc/docs/category_parameters.md index 145d8d6e10..5ef4d7eb14 100644 --- a/docs/src/architecture/08_concepts/signed_doc/docs/category_parameters.md +++ b/docs/src/architecture/08_concepts/signed_doc/docs/category_parameters.md @@ -87,10 +87,12 @@ timestamp of when the document was created. #### [`id`](../metadata.md#id) Validation -IF [`ver`](../metadata.md#ver) does not == [`id`](../metadata.md#id) then a document with -[`id`](../metadata.md#id) and [`ver`](../metadata.md#ver) being equal *MUST* exist. +The document ID validation is performed based on timestamp thresholds: -### [`ver`](../metadata.md#ver) +* If `future_threshold` is configured, the document `id` cannot be too far in the future from the + current time. +* If `past_threshold` is configured, the document `id` cannot be too far in the past from the + current time. | Parameter | Value | @@ -105,7 +107,12 @@ The first version of the document must set [`ver`](../metadata.md#ver) == [`id`] #### [`ver`](../metadata.md#ver) Validation -The document version must always be >= the document ID. +1. The document version must always be >= the document ID. +2. IF `ver` does not == `id` then a document with `id` and `ver` being equal *MUST* exist. +3. When a document with the same `id` already exists, the new document's `ver` must be greater than +the latest known submitted version for that `id`. +4. When a document with the same `id` already exists, the new document's `type` must be the same as +the latest known submitted document's `type` for that `id`. ### [`template`](../metadata.md#template) diff --git a/docs/src/architecture/08_concepts/signed_doc/docs/category_parameters_form_template.md b/docs/src/architecture/08_concepts/signed_doc/docs/category_parameters_form_template.md index 1fe27ac3f8..4d8d395129 100644 --- a/docs/src/architecture/08_concepts/signed_doc/docs/category_parameters_form_template.md +++ b/docs/src/architecture/08_concepts/signed_doc/docs/category_parameters_form_template.md @@ -91,10 +91,12 @@ timestamp of when the document was created. #### [`id`](../metadata.md#id) Validation -IF [`ver`](../metadata.md#ver) does not == [`id`](../metadata.md#id) then a document with -[`id`](../metadata.md#id) and [`ver`](../metadata.md#ver) being equal *MUST* exist. +The document ID validation is performed based on timestamp thresholds: -### [`ver`](../metadata.md#ver) +* If `future_threshold` is configured, the document `id` cannot be too far in the future from the + current time. +* If `past_threshold` is configured, the document `id` cannot be too far in the past from the + current time. | Parameter | Value | @@ -109,7 +111,12 @@ The first version of the document must set [`ver`](../metadata.md#ver) == [`id`] #### [`ver`](../metadata.md#ver) Validation -The document version must always be >= the document ID. +1. The document version must always be >= the document ID. +2. IF `ver` does not == `id` then a document with `id` and `ver` being equal *MUST* exist. +3. When a document with the same `id` already exists, the new document's `ver` must be greater than +the latest known submitted version for that `id`. +4. When a document with the same `id` already exists, the new document's `type` must be the same as +the latest known submitted document's `type` for that `id`. ### [`parameters`](../metadata.md#parameters) diff --git a/docs/src/architecture/08_concepts/signed_doc/docs/comment_moderation_action.md b/docs/src/architecture/08_concepts/signed_doc/docs/comment_moderation_action.md index bd6815845b..4bbf19b724 100644 --- a/docs/src/architecture/08_concepts/signed_doc/docs/comment_moderation_action.md +++ b/docs/src/architecture/08_concepts/signed_doc/docs/comment_moderation_action.md @@ -77,10 +77,12 @@ timestamp of when the document was created. #### [`id`](../metadata.md#id) Validation -IF [`ver`](../metadata.md#ver) does not == [`id`](../metadata.md#id) then a document with -[`id`](../metadata.md#id) and [`ver`](../metadata.md#ver) being equal *MUST* exist. +The document ID validation is performed based on timestamp thresholds: -### [`ver`](../metadata.md#ver) +* If `future_threshold` is configured, the document `id` cannot be too far in the future from the + current time. +* If `past_threshold` is configured, the document `id` cannot be too far in the past from the + current time. | Parameter | Value | @@ -95,7 +97,12 @@ The first version of the document must set [`ver`](../metadata.md#ver) == [`id`] #### [`ver`](../metadata.md#ver) Validation -The document version must always be >= the document ID. +1. The document version must always be >= the document ID. +2. IF `ver` does not == `id` then a document with `id` and `ver` being equal *MUST* exist. +3. When a document with the same `id` already exists, the new document's `ver` must be greater than +the latest known submitted version for that `id`. +4. When a document with the same `id` already exists, the new document's `type` must be the same as +the latest known submitted document's `type` for that `id`. ### [`ref`](../metadata.md#ref) diff --git a/docs/src/architecture/08_concepts/signed_doc/docs/contest_ballot.md b/docs/src/architecture/08_concepts/signed_doc/docs/contest_ballot.md index a02b128552..ff6b657243 100644 --- a/docs/src/architecture/08_concepts/signed_doc/docs/contest_ballot.md +++ b/docs/src/architecture/08_concepts/signed_doc/docs/contest_ballot.md @@ -88,8 +88,12 @@ timestamp of when the document was created. #### [`id`](../metadata.md#id) Validation -IF [`ver`](../metadata.md#ver) does not == [`id`](../metadata.md#id) then a document with -[`id`](../metadata.md#id) and [`ver`](../metadata.md#ver) being equal *MUST* exist. +The document ID validation is performed based on timestamp thresholds: + +* If `future_threshold` is configured, the document `id` cannot be too far in the future from the + current time. +* If `past_threshold` is configured, the document `id` cannot be too far in the past from the + current time. ### [`ver`](../metadata.md#ver) @@ -106,7 +110,12 @@ The first version of the document must set [`ver`](../metadata.md#ver) == [`id`] #### [`ver`](../metadata.md#ver) Validation -The document version must always be >= the document ID. +1. The document version must always be >= the document ID. +2. IF `ver` does not == `id` then a document with `id` and `ver` being equal *MUST* exist. +3. When a document with the same `id` already exists, the new document's `ver` must be greater than +the latest known submitted version for that `id`. +4. When a document with the same `id` already exists, the new document's `type` must be the same as +the latest known submitted document's `type` for that `id`. ### [`revocations`](../metadata.md#revocations) diff --git a/docs/src/architecture/08_concepts/signed_doc/docs/contest_ballot_checkpoint.md b/docs/src/architecture/08_concepts/signed_doc/docs/contest_ballot_checkpoint.md index 67fa902846..d86f4eb896 100644 --- a/docs/src/architecture/08_concepts/signed_doc/docs/contest_ballot_checkpoint.md +++ b/docs/src/architecture/08_concepts/signed_doc/docs/contest_ballot_checkpoint.md @@ -110,10 +110,12 @@ timestamp of when the document was created. #### [`id`](../metadata.md#id) Validation -IF [`ver`](../metadata.md#ver) does not == [`id`](../metadata.md#id) then a document with -[`id`](../metadata.md#id) and [`ver`](../metadata.md#ver) being equal *MUST* exist. +The document ID validation is performed based on timestamp thresholds: -### [`ver`](../metadata.md#ver) +* If `future_threshold` is configured, the document `id` cannot be too far in the future from the + current time. +* If `past_threshold` is configured, the document `id` cannot be too far in the past from the + current time. | Parameter | Value | @@ -128,7 +130,12 @@ The first version of the document must set [`ver`](../metadata.md#ver) == [`id`] #### [`ver`](../metadata.md#ver) Validation -The document version must always be >= the document ID. +1. The document version must always be >= the document ID. +2. IF `ver` does not == `id` then a document with `id` and `ver` being equal *MUST* exist. +3. When a document with the same `id` already exists, the new document's `ver` must be greater than +the latest known submitted version for that `id`. +4. When a document with the same `id` already exists, the new document's `type` must be the same as +the latest known submitted document's `type` for that `id`. ### [`ref`](../metadata.md#ref) diff --git a/docs/src/architecture/08_concepts/signed_doc/docs/contest_delegation.md b/docs/src/architecture/08_concepts/signed_doc/docs/contest_delegation.md index 79f78070f5..4658f56f4a 100644 --- a/docs/src/architecture/08_concepts/signed_doc/docs/contest_delegation.md +++ b/docs/src/architecture/08_concepts/signed_doc/docs/contest_delegation.md @@ -147,10 +147,12 @@ timestamp of when the document was created. #### [`id`](../metadata.md#id) Validation -IF [`ver`](../metadata.md#ver) does not == [`id`](../metadata.md#id) then a document with -[`id`](../metadata.md#id) and [`ver`](../metadata.md#ver) being equal *MUST* exist. +The document ID validation is performed based on timestamp thresholds: -### [`ver`](../metadata.md#ver) +* If `future_threshold` is configured, the document `id` cannot be too far in the future from the + current time. +* If `past_threshold` is configured, the document `id` cannot be too far in the past from the + current time. | Parameter | Value | @@ -165,7 +167,12 @@ The first version of the document must set [`ver`](../metadata.md#ver) == [`id`] #### [`ver`](../metadata.md#ver) Validation -The document version must always be >= the document ID. +1. The document version must always be >= the document ID. +2. IF `ver` does not == `id` then a document with `id` and `ver` being equal *MUST* exist. +3. When a document with the same `id` already exists, the new document's `ver` must be greater than +the latest known submitted version for that `id`. +4. When a document with the same `id` already exists, the new document's `type` must be the same as +the latest known submitted document's `type` for that `id`. ### [`ref`](../metadata.md#ref) diff --git a/docs/src/architecture/08_concepts/signed_doc/docs/contest_parameters.md b/docs/src/architecture/08_concepts/signed_doc/docs/contest_parameters.md index 6d59052a17..7b80092347 100644 --- a/docs/src/architecture/08_concepts/signed_doc/docs/contest_parameters.md +++ b/docs/src/architecture/08_concepts/signed_doc/docs/contest_parameters.md @@ -87,10 +87,12 @@ timestamp of when the document was created. #### [`id`](../metadata.md#id) Validation -IF [`ver`](../metadata.md#ver) does not == [`id`](../metadata.md#id) then a document with -[`id`](../metadata.md#id) and [`ver`](../metadata.md#ver) being equal *MUST* exist. +The document ID validation is performed based on timestamp thresholds: -### [`ver`](../metadata.md#ver) +* If `future_threshold` is configured, the document `id` cannot be too far in the future from the + current time. +* If `past_threshold` is configured, the document `id` cannot be too far in the past from the + current time. | Parameter | Value | @@ -105,7 +107,12 @@ The first version of the document must set [`ver`](../metadata.md#ver) == [`id`] #### [`ver`](../metadata.md#ver) Validation -The document version must always be >= the document ID. +1. The document version must always be >= the document ID. +2. IF `ver` does not == `id` then a document with `id` and `ver` being equal *MUST* exist. +3. When a document with the same `id` already exists, the new document's `ver` must be greater than +the latest known submitted version for that `id`. +4. When a document with the same `id` already exists, the new document's `type` must be the same as +the latest known submitted document's `type` for that `id`. ### [`template`](../metadata.md#template) diff --git a/docs/src/architecture/08_concepts/signed_doc/docs/contest_parameters_form_template.md b/docs/src/architecture/08_concepts/signed_doc/docs/contest_parameters_form_template.md index ea1a291fa1..fbb5d6407f 100644 --- a/docs/src/architecture/08_concepts/signed_doc/docs/contest_parameters_form_template.md +++ b/docs/src/architecture/08_concepts/signed_doc/docs/contest_parameters_form_template.md @@ -91,10 +91,12 @@ timestamp of when the document was created. #### [`id`](../metadata.md#id) Validation -IF [`ver`](../metadata.md#ver) does not == [`id`](../metadata.md#id) then a document with -[`id`](../metadata.md#id) and [`ver`](../metadata.md#ver) being equal *MUST* exist. +The document ID validation is performed based on timestamp thresholds: -### [`ver`](../metadata.md#ver) +* If `future_threshold` is configured, the document `id` cannot be too far in the future from the + current time. +* If `past_threshold` is configured, the document `id` cannot be too far in the past from the + current time. | Parameter | Value | @@ -109,7 +111,12 @@ The first version of the document must set [`ver`](../metadata.md#ver) == [`id`] #### [`ver`](../metadata.md#ver) Validation -The document version must always be >= the document ID. +1. The document version must always be >= the document ID. +2. IF `ver` does not == `id` then a document with `id` and `ver` being equal *MUST* exist. +3. When a document with the same `id` already exists, the new document's `ver` must be greater than +the latest known submitted version for that `id`. +4. When a document with the same `id` already exists, the new document's `type` must be the same as +the latest known submitted document's `type` for that `id`. ### [`parameters`](../metadata.md#parameters) diff --git a/docs/src/architecture/08_concepts/signed_doc/docs/presentation_template.md b/docs/src/architecture/08_concepts/signed_doc/docs/presentation_template.md index 6def7261a0..1a6f52556c 100644 --- a/docs/src/architecture/08_concepts/signed_doc/docs/presentation_template.md +++ b/docs/src/architecture/08_concepts/signed_doc/docs/presentation_template.md @@ -89,10 +89,12 @@ timestamp of when the document was created. #### [`id`](../metadata.md#id) Validation -IF [`ver`](../metadata.md#ver) does not == [`id`](../metadata.md#id) then a document with -[`id`](../metadata.md#id) and [`ver`](../metadata.md#ver) being equal *MUST* exist. +The document ID validation is performed based on timestamp thresholds: -### [`ver`](../metadata.md#ver) +* If `future_threshold` is configured, the document `id` cannot be too far in the future from the + current time. +* If `past_threshold` is configured, the document `id` cannot be too far in the past from the + current time. | Parameter | Value | @@ -107,7 +109,12 @@ The first version of the document must set [`ver`](../metadata.md#ver) == [`id`] #### [`ver`](../metadata.md#ver) Validation -The document version must always be >= the document ID. +1. The document version must always be >= the document ID. +2. IF `ver` does not == `id` then a document with `id` and `ver` being equal *MUST* exist. +3. When a document with the same `id` already exists, the new document's `ver` must be greater than +the latest known submitted version for that `id`. +4. When a document with the same `id` already exists, the new document's `type` must be the same as +the latest known submitted document's `type` for that `id`. ### [`parameters`](../metadata.md#parameters) diff --git a/docs/src/architecture/08_concepts/signed_doc/docs/proposal.md b/docs/src/architecture/08_concepts/signed_doc/docs/proposal.md index 3e89103c9d..83d126cad3 100644 --- a/docs/src/architecture/08_concepts/signed_doc/docs/proposal.md +++ b/docs/src/architecture/08_concepts/signed_doc/docs/proposal.md @@ -95,10 +95,12 @@ timestamp of when the document was created. #### [`id`](../metadata.md#id) Validation -IF [`ver`](../metadata.md#ver) does not == [`id`](../metadata.md#id) then a document with -[`id`](../metadata.md#id) and [`ver`](../metadata.md#ver) being equal *MUST* exist. +The document ID validation is performed based on timestamp thresholds: -### [`ver`](../metadata.md#ver) +* If `future_threshold` is configured, the document `id` cannot be too far in the future from the + current time. +* If `past_threshold` is configured, the document `id` cannot be too far in the past from the + current time. | Parameter | Value | @@ -113,7 +115,12 @@ The first version of the document must set [`ver`](../metadata.md#ver) == [`id`] #### [`ver`](../metadata.md#ver) Validation -The document version must always be >= the document ID. +1. The document version must always be >= the document ID. +2. IF `ver` does not == `id` then a document with `id` and `ver` being equal *MUST* exist. +3. When a document with the same `id` already exists, the new document's `ver` must be greater than +the latest known submitted version for that `id`. +4. When a document with the same `id` already exists, the new document's `type` must be the same as +the latest known submitted document's `type` for that `id`. ### [`template`](../metadata.md#template) diff --git a/docs/src/architecture/08_concepts/signed_doc/docs/proposal_comment.md b/docs/src/architecture/08_concepts/signed_doc/docs/proposal_comment.md index 56aabc2888..eb83cb2b2b 100644 --- a/docs/src/architecture/08_concepts/signed_doc/docs/proposal_comment.md +++ b/docs/src/architecture/08_concepts/signed_doc/docs/proposal_comment.md @@ -79,10 +79,12 @@ timestamp of when the document was created. #### [`id`](../metadata.md#id) Validation -IF [`ver`](../metadata.md#ver) does not == [`id`](../metadata.md#id) then a document with -[`id`](../metadata.md#id) and [`ver`](../metadata.md#ver) being equal *MUST* exist. +The document ID validation is performed based on timestamp thresholds: -### [`ver`](../metadata.md#ver) +* If `future_threshold` is configured, the document `id` cannot be too far in the future from the + current time. +* If `past_threshold` is configured, the document `id` cannot be too far in the past from the + current time. | Parameter | Value | @@ -97,7 +99,12 @@ The first version of the document must set [`ver`](../metadata.md#ver) == [`id`] #### [`ver`](../metadata.md#ver) Validation -The document version must always be >= the document ID. +1. The document version must always be >= the document ID. +2. IF `ver` does not == `id` then a document with `id` and `ver` being equal *MUST* exist. +3. When a document with the same `id` already exists, the new document's `ver` must be greater than +the latest known submitted version for that `id`. +4. When a document with the same `id` already exists, the new document's `type` must be the same as +the latest known submitted document's `type` for that `id`. ### [`ref`](../metadata.md#ref) diff --git a/docs/src/architecture/08_concepts/signed_doc/docs/proposal_comment_form_template.md b/docs/src/architecture/08_concepts/signed_doc/docs/proposal_comment_form_template.md index 2f9fe0a7dc..bc1f78f3f2 100644 --- a/docs/src/architecture/08_concepts/signed_doc/docs/proposal_comment_form_template.md +++ b/docs/src/architecture/08_concepts/signed_doc/docs/proposal_comment_form_template.md @@ -91,10 +91,12 @@ timestamp of when the document was created. #### [`id`](../metadata.md#id) Validation -IF [`ver`](../metadata.md#ver) does not == [`id`](../metadata.md#id) then a document with -[`id`](../metadata.md#id) and [`ver`](../metadata.md#ver) being equal *MUST* exist. +The document ID validation is performed based on timestamp thresholds: -### [`ver`](../metadata.md#ver) +* If `future_threshold` is configured, the document `id` cannot be too far in the future from the + current time. +* If `past_threshold` is configured, the document `id` cannot be too far in the past from the + current time. | Parameter | Value | @@ -109,7 +111,12 @@ The first version of the document must set [`ver`](../metadata.md#ver) == [`id`] #### [`ver`](../metadata.md#ver) Validation -The document version must always be >= the document ID. +1. The document version must always be >= the document ID. +2. IF `ver` does not == `id` then a document with `id` and `ver` being equal *MUST* exist. +3. When a document with the same `id` already exists, the new document's `ver` must be greater than +the latest known submitted version for that `id`. +4. When a document with the same `id` already exists, the new document's `type` must be the same as +the latest known submitted document's `type` for that `id`. ### [`parameters`](../metadata.md#parameters) diff --git a/docs/src/architecture/08_concepts/signed_doc/docs/proposal_form_template.md b/docs/src/architecture/08_concepts/signed_doc/docs/proposal_form_template.md index 8a6f993e11..6fa9bbd90a 100644 --- a/docs/src/architecture/08_concepts/signed_doc/docs/proposal_form_template.md +++ b/docs/src/architecture/08_concepts/signed_doc/docs/proposal_form_template.md @@ -91,10 +91,12 @@ timestamp of when the document was created. #### [`id`](../metadata.md#id) Validation -IF [`ver`](../metadata.md#ver) does not == [`id`](../metadata.md#id) then a document with -[`id`](../metadata.md#id) and [`ver`](../metadata.md#ver) being equal *MUST* exist. +The document ID validation is performed based on timestamp thresholds: -### [`ver`](../metadata.md#ver) +* If `future_threshold` is configured, the document `id` cannot be too far in the future from the + current time. +* If `past_threshold` is configured, the document `id` cannot be too far in the past from the + current time. | Parameter | Value | @@ -109,7 +111,12 @@ The first version of the document must set [`ver`](../metadata.md#ver) == [`id`] #### [`ver`](../metadata.md#ver) Validation -The document version must always be >= the document ID. +1. The document version must always be >= the document ID. +2. IF `ver` does not == `id` then a document with `id` and `ver` being equal *MUST* exist. +3. When a document with the same `id` already exists, the new document's `ver` must be greater than +the latest known submitted version for that `id`. +4. When a document with the same `id` already exists, the new document's `type` must be the same as +the latest known submitted document's `type` for that `id`. ### [`parameters`](../metadata.md#parameters) diff --git a/docs/src/architecture/08_concepts/signed_doc/docs/proposal_moderation_action.md b/docs/src/architecture/08_concepts/signed_doc/docs/proposal_moderation_action.md index 5578ca798c..60a7524588 100644 --- a/docs/src/architecture/08_concepts/signed_doc/docs/proposal_moderation_action.md +++ b/docs/src/architecture/08_concepts/signed_doc/docs/proposal_moderation_action.md @@ -77,10 +77,12 @@ timestamp of when the document was created. #### [`id`](../metadata.md#id) Validation -IF [`ver`](../metadata.md#ver) does not == [`id`](../metadata.md#id) then a document with -[`id`](../metadata.md#id) and [`ver`](../metadata.md#ver) being equal *MUST* exist. +The document ID validation is performed based on timestamp thresholds: -### [`ver`](../metadata.md#ver) +* If `future_threshold` is configured, the document `id` cannot be too far in the future from the + current time. +* If `past_threshold` is configured, the document `id` cannot be too far in the past from the + current time. | Parameter | Value | @@ -95,7 +97,12 @@ The first version of the document must set [`ver`](../metadata.md#ver) == [`id`] #### [`ver`](../metadata.md#ver) Validation -The document version must always be >= the document ID. +1. The document version must always be >= the document ID. +2. IF `ver` does not == `id` then a document with `id` and `ver` being equal *MUST* exist. +3. When a document with the same `id` already exists, the new document's `ver` must be greater than +the latest known submitted version for that `id`. +4. When a document with the same `id` already exists, the new document's `type` must be the same as +the latest known submitted document's `type` for that `id`. ### [`ref`](../metadata.md#ref) diff --git a/docs/src/architecture/08_concepts/signed_doc/docs/proposal_submission_action.md b/docs/src/architecture/08_concepts/signed_doc/docs/proposal_submission_action.md index 7478940b2b..e1825fa322 100644 --- a/docs/src/architecture/08_concepts/signed_doc/docs/proposal_submission_action.md +++ b/docs/src/architecture/08_concepts/signed_doc/docs/proposal_submission_action.md @@ -103,10 +103,12 @@ timestamp of when the document was created. #### [`id`](../metadata.md#id) Validation -IF [`ver`](../metadata.md#ver) does not == [`id`](../metadata.md#id) then a document with -[`id`](../metadata.md#id) and [`ver`](../metadata.md#ver) being equal *MUST* exist. +The document ID validation is performed based on timestamp thresholds: -### [`ver`](../metadata.md#ver) +* If `future_threshold` is configured, the document `id` cannot be too far in the future from the + current time. +* If `past_threshold` is configured, the document `id` cannot be too far in the past from the + current time. | Parameter | Value | @@ -121,7 +123,12 @@ The first version of the document must set [`ver`](../metadata.md#ver) == [`id`] #### [`ver`](../metadata.md#ver) Validation -The document version must always be >= the document ID. +1. The document version must always be >= the document ID. +2. IF `ver` does not == `id` then a document with `id` and `ver` being equal *MUST* exist. +3. When a document with the same `id` already exists, the new document's `ver` must be greater than +the latest known submitted version for that `id`. +4. When a document with the same `id` already exists, the new document's `type` must be the same as +the latest known submitted document's `type` for that `id`. ### [`ref`](../metadata.md#ref) diff --git a/docs/src/architecture/08_concepts/signed_doc/docs/rep_nomination.md b/docs/src/architecture/08_concepts/signed_doc/docs/rep_nomination.md index e286895668..274d6b61ea 100644 --- a/docs/src/architecture/08_concepts/signed_doc/docs/rep_nomination.md +++ b/docs/src/architecture/08_concepts/signed_doc/docs/rep_nomination.md @@ -121,10 +121,12 @@ timestamp of when the document was created. #### [`id`](../metadata.md#id) Validation -IF [`ver`](../metadata.md#ver) does not == [`id`](../metadata.md#id) then a document with -[`id`](../metadata.md#id) and [`ver`](../metadata.md#ver) being equal *MUST* exist. +The document ID validation is performed based on timestamp thresholds: -### [`ver`](../metadata.md#ver) +* If `future_threshold` is configured, the document `id` cannot be too far in the future from the + current time. +* If `past_threshold` is configured, the document `id` cannot be too far in the past from the + current time. | Parameter | Value | @@ -139,7 +141,12 @@ The first version of the document must set [`ver`](../metadata.md#ver) == [`id`] #### [`ver`](../metadata.md#ver) Validation -The document version must always be >= the document ID. +1. The document version must always be >= the document ID. +2. IF `ver` does not == `id` then a document with `id` and `ver` being equal *MUST* exist. +3. When a document with the same `id` already exists, the new document's `ver` must be greater than +the latest known submitted version for that `id`. +4. When a document with the same `id` already exists, the new document's `type` must be the same as +the latest known submitted document's `type` for that `id`. ### [`ref`](../metadata.md#ref) diff --git a/docs/src/architecture/08_concepts/signed_doc/docs/rep_nomination_form_template.md b/docs/src/architecture/08_concepts/signed_doc/docs/rep_nomination_form_template.md index 36d9954ae2..abc3d58227 100644 --- a/docs/src/architecture/08_concepts/signed_doc/docs/rep_nomination_form_template.md +++ b/docs/src/architecture/08_concepts/signed_doc/docs/rep_nomination_form_template.md @@ -91,10 +91,12 @@ timestamp of when the document was created. #### [`id`](../metadata.md#id) Validation -IF [`ver`](../metadata.md#ver) does not == [`id`](../metadata.md#id) then a document with -[`id`](../metadata.md#id) and [`ver`](../metadata.md#ver) being equal *MUST* exist. +The document ID validation is performed based on timestamp thresholds: -### [`ver`](../metadata.md#ver) +* If `future_threshold` is configured, the document `id` cannot be too far in the future from the + current time. +* If `past_threshold` is configured, the document `id` cannot be too far in the past from the + current time. | Parameter | Value | @@ -109,7 +111,12 @@ The first version of the document must set [`ver`](../metadata.md#ver) == [`id`] #### [`ver`](../metadata.md#ver) Validation -The document version must always be >= the document ID. +1. The document version must always be >= the document ID. +2. IF `ver` does not == `id` then a document with `id` and `ver` being equal *MUST* exist. +3. When a document with the same `id` already exists, the new document's `ver` must be greater than +the latest known submitted version for that `id`. +4. When a document with the same `id` already exists, the new document's `type` must be the same as +the latest known submitted document's `type` for that `id`. ### [`parameters`](../metadata.md#parameters) diff --git a/docs/src/architecture/08_concepts/signed_doc/docs/rep_profile.md b/docs/src/architecture/08_concepts/signed_doc/docs/rep_profile.md index a17a7e8db8..25ba17869d 100644 --- a/docs/src/architecture/08_concepts/signed_doc/docs/rep_profile.md +++ b/docs/src/architecture/08_concepts/signed_doc/docs/rep_profile.md @@ -76,10 +76,12 @@ timestamp of when the document was created. #### [`id`](../metadata.md#id) Validation -IF [`ver`](../metadata.md#ver) does not == [`id`](../metadata.md#id) then a document with -[`id`](../metadata.md#id) and [`ver`](../metadata.md#ver) being equal *MUST* exist. +The document ID validation is performed based on timestamp thresholds: -### [`ver`](../metadata.md#ver) +* If `future_threshold` is configured, the document `id` cannot be too far in the future from the + current time. +* If `past_threshold` is configured, the document `id` cannot be too far in the past from the + current time. | Parameter | Value | @@ -94,7 +96,12 @@ The first version of the document must set [`ver`](../metadata.md#ver) == [`id`] #### [`ver`](../metadata.md#ver) Validation -The document version must always be >= the document ID. +1. The document version must always be >= the document ID. +2. IF `ver` does not == `id` then a document with `id` and `ver` being equal *MUST* exist. +3. When a document with the same `id` already exists, the new document's `ver` must be greater than +the latest known submitted version for that `id`. +4. When a document with the same `id` already exists, the new document's `type` must be the same as +the latest known submitted document's `type` for that `id`. ### [`template`](../metadata.md#template) diff --git a/docs/src/architecture/08_concepts/signed_doc/docs/rep_profile_form_template.md b/docs/src/architecture/08_concepts/signed_doc/docs/rep_profile_form_template.md index 60d79a6239..74c5ef5c77 100644 --- a/docs/src/architecture/08_concepts/signed_doc/docs/rep_profile_form_template.md +++ b/docs/src/architecture/08_concepts/signed_doc/docs/rep_profile_form_template.md @@ -91,10 +91,12 @@ timestamp of when the document was created. #### [`id`](../metadata.md#id) Validation -IF [`ver`](../metadata.md#ver) does not == [`id`](../metadata.md#id) then a document with -[`id`](../metadata.md#id) and [`ver`](../metadata.md#ver) being equal *MUST* exist. +The document ID validation is performed based on timestamp thresholds: -### [`ver`](../metadata.md#ver) +* If `future_threshold` is configured, the document `id` cannot be too far in the future from the + current time. +* If `past_threshold` is configured, the document `id` cannot be too far in the past from the + current time. | Parameter | Value | @@ -109,7 +111,12 @@ The first version of the document must set [`ver`](../metadata.md#ver) == [`id`] #### [`ver`](../metadata.md#ver) Validation -The document version must always be >= the document ID. +1. The document version must always be >= the document ID. +2. IF `ver` does not == `id` then a document with `id` and `ver` being equal *MUST* exist. +3. When a document with the same `id` already exists, the new document's `ver` must be greater than +the latest known submitted version for that `id`. +4. When a document with the same `id` already exists, the new document's `type` must be the same as +the latest known submitted document's `type` for that `id`. ### [`parameters`](../metadata.md#parameters) diff --git a/docs/src/architecture/08_concepts/signed_doc/metadata.md b/docs/src/architecture/08_concepts/signed_doc/metadata.md index 291180a659..dc0c30d5ca 100644 --- a/docs/src/architecture/08_concepts/signed_doc/metadata.md +++ b/docs/src/architecture/08_concepts/signed_doc/metadata.md @@ -175,8 +175,12 @@ timestamp of when the document was created. #### `id` Validation -IF [`ver`](metadata.md#ver) does not == [`id`](metadata.md#id) then a document with -[`id`](metadata.md#id) and [`ver`](metadata.md#ver) being equal *MUST* exist. +The document ID validation is performed based on timestamp thresholds: + +* If `future_threshold` is configured, the document `id` cannot be too far in the future from the +current time. +* If `past_threshold` is configured, the document `id` cannot be too far in the past from the +current time. ### `ver` @@ -202,7 +206,12 @@ a sequence of documents. #### `ver` Validation -The document version must always be >= the document ID. +1. The document version must always be >= the document ID. +2. IF `ver` does not == `id` then a document with `id` and `ver` being equal *MUST* exist. +3. When a document with the same `id` already exists, the new document's `ver` must be greater than +the latest known submitted version for that `id`. +4. When a document with the same `id` already exists, the new document's `type` must be the same as +the latest known submitted document's `type` for that `id`. ### `ref` diff --git a/rust/signed_doc/src/validator/rules/ver/mod.rs b/rust/signed_doc/src/validator/rules/ver/mod.rs index fb5b48fb7a..6e087e63f3 100644 --- a/rust/signed_doc/src/validator/rules/ver/mod.rs +++ b/rust/signed_doc/src/validator/rules/ver/mod.rs @@ -10,8 +10,14 @@ use crate::{CatalystSignedDocument, providers::CatalystSignedDocumentProvider}; pub(crate) struct VerRule; impl VerRule { - /// Validates document `ver` field on the timestamps: - /// 1. document `ver` cannot be smaller than document `id` field + /// Validates document `ver` field according to the following rules: + /// 1. Document `ver` cannot be smaller than document `id` field + /// 2. IF `ver` does not == `id` then a document with `id` and `ver` being equal + /// *MUST* exist + /// 3. When a document with the same `id` already exists, the new document's `ver` + /// must be greater than the latest known submitted version for that `id` + /// 4. When a document with the same `id` already exists, the new document's `type` + /// must be the same as the latest known submitted document's `type` for that `id` pub(crate) async fn check( &self, doc: &CatalystSignedDocument, diff --git a/specs/definitions/signed_docs/metadata.cue b/specs/definitions/signed_docs/metadata.cue index 3ffc598ec0..a621332f0a 100644 --- a/specs/definitions/signed_docs/metadata.cue +++ b/specs/definitions/signed_docs/metadata.cue @@ -1,5 +1,5 @@ // Signed Document Definitions -// +// // Metadata Types and Constraints @extern(embed) package signed_docs @@ -135,32 +135,35 @@ _allMetadataNames: or([ format: "Document Id" description: """ Document ID, created the first time the document is created. - This must be a properly created UUIDv7 which contains the + This must be a properly created UUIDv7 which contains the timestamp of when the document was created. """ validation: """ - IF `ver` does not == `id` then a document with - `id` and `ver` being equal *MUST* exist. + The document ID validation is performed based on timestamp thresholds: + * If `future_threshold` is configured, the document `id` cannot be too far in the future from the + current time. + * If `past_threshold` is configured, the document `id` cannot be too far in the past from the + current time. """ } ref: { description: """ - Reference to a Linked Document or Documents. - This is the primary hierarchical reference to a related document. + Reference to a Linked Document or Documents. + This is the primary hierarchical reference to a related document. If a reference is defined as required, there must be at least 1 reference specified. Some documents allow multiple references, and they are documented as required. The document reference serves two purposes: - + 1. It ensures that the document referenced by an ID/Version is not substituted. In other words, that the document intended to be referenced, is actually referenced. 2. It Allows the document to be unambiguously located in decentralized storage systems. - + There can be any number of Document Locations in any reference. The currently defined locations are: - + * `cid` : A CBOR Encoded IPLD Content Identifier ( AKA an IPFS CID ). * Others may be added when further storage mechanisms are defined. @@ -182,7 +185,7 @@ _allMetadataNames: or([ template: { description: "Reference to the template used to create and/or validate this document." validation: """ - In addition to the validation performed for `Document Reference` type fields, + In addition to the validation performed for `Document Reference` type fields, The document payload is not valid if it does not validate completely against the referenced template. """ } @@ -192,7 +195,7 @@ _allMetadataNames: or([ Reference to a Comment document type being referred to. """ validation: """ - In addition to the validation performed for `Document Reference` type fields, + In addition to the validation performed for `Document Reference` type fields, The `ref` of the `reply` document must be the same as the original comment document. """ @@ -242,7 +245,7 @@ _allMetadataNames: or([ This allows for an entire document and any/all published versions to be revoked. A new version of the document that is published after this, may reinstate prior - document versions, by not listing them as revoked. + document versions, by not listing them as revoked. However, any document where revocations was set `true` can never be reinstated. """ validation: """ diff --git a/specs/definitions/signed_docs/metadata_template.cue b/specs/definitions/signed_docs/metadata_template.cue index b872cf5d8b..37f273de0e 100644 --- a/specs/definitions/signed_docs/metadata_template.cue +++ b/specs/definitions/signed_docs/metadata_template.cue @@ -11,7 +11,7 @@ _template_description: """ Reference to the template used to create and/or validate this document. """ _template_validation: """ - In addition to the validation performed for `Document Reference` type fields, + In addition to the validation performed for `Document Reference` type fields, The document payload is not valid if it does not validate completely against the referenced template. """ diff --git a/specs/definitions/signed_docs/metadata_ver.cue b/specs/definitions/signed_docs/metadata_ver.cue index ec6e1c8980..f5a141da36 100644 --- a/specs/definitions/signed_docs/metadata_ver.cue +++ b/specs/definitions/signed_docs/metadata_ver.cue @@ -1,5 +1,5 @@ // Signed Document Definitions -// +// // Metadata Types and Constraints // `ver` @extern(embed) @@ -16,10 +16,10 @@ _ver_description_complete: """ `ver` represents either: * when a document changes over time, such as - with a new version of a particular document that supersedes an + with a new version of a particular document that supersedes an earlier one. * when a new document in a sequence of documents is produced. - + Because the most common use `ver` is a new version of the same document this is to be assumed unless the document specifies its representing a sequence of documents. @@ -44,7 +44,12 @@ _ver_description_sequenced: """ format: "Document Ver" description: string | *_ver_description_versioned validation: """ - The document version must always be >= the document ID. + 1. The document version must always be >= the document ID. + 2. IF `ver` does not == `id` then a document with `id` and `ver` being equal *MUST* exist. + 3. When a document with the same `id` already exists, the new document's `ver` must be greater than + the latest known submitted version for that `id`. + 4. When a document with the same `id` already exists, the new document's `type` must be the same as + the latest known submitted document's `type` for that `id`. """ } } diff --git a/specs/signed_doc.json b/specs/signed_doc.json index 8308574949..e060176c78 100644 --- a/specs/signed_doc.json +++ b/specs/signed_doc.json @@ -732,7 +732,7 @@ "description": "Document ID, created the first time the document is created.\nThis must be a properly created UUIDv7 which contains the \ntimestamp of when the document was created.", "format": "Document Id", "required": "yes", - "validation": "IF `ver` does not == `id` then a document with \n`id` and `ver` being equal *MUST* exist." + "validation": "The document ID validation is performed based on timestamp thresholds:\n\n* If `future_threshold` is configured, the document `id` cannot be too far in the future from the\ncurrent time.\n* If `past_threshold` is configured, the document `id` cannot be too far in the past from the\ncurrent time." }, "parameters": { "description": "A reference to the Parameters Document this document lies under.", @@ -783,7 +783,7 @@ "description": "The unique version of the document.\nThe first version of the document must set `ver` == `id`\n\n`ver` represents new versions of the same document as it changes over time.", "format": "Document Ver", "required": "yes", - "validation": "The document version must always be >= the document ID." + "validation": "1. The document version must always be >= the document ID.\n2. IF `ver` does not == `id` then a document with `id` and `ver` being equal *MUST* exist.\n3. When a document with the same `id` already exists, the new document's `ver` must be greater than\nthe latest known submitted version for that `id`.\n4. When a document with the same `id` already exists, the new document's `type` must be the same as\nthe latest known submitted document's `type` for that `id`." } }, "notes": [], @@ -857,7 +857,7 @@ "description": "Document ID, created the first time the document is created.\nThis must be a properly created UUIDv7 which contains the \ntimestamp of when the document was created.", "format": "Document Id", "required": "yes", - "validation": "IF `ver` does not == `id` then a document with \n`id` and `ver` being equal *MUST* exist." + "validation": "The document ID validation is performed based on timestamp thresholds:\n\n* If `future_threshold` is configured, the document `id` cannot be too far in the future from the\ncurrent time.\n* If `past_threshold` is configured, the document `id` cannot be too far in the past from the\ncurrent time." }, "parameters": { "description": "A reference to the Parameters Document this document lies under.", @@ -905,7 +905,7 @@ "description": "The unique version of the document.\nThe first version of the document must set `ver` == `id`\n\n`ver` represents new versions of the same document as it changes over time.", "format": "Document Ver", "required": "yes", - "validation": "The document version must always be >= the document ID." + "validation": "1. The document version must always be >= the document ID.\n2. IF `ver` does not == `id` then a document with `id` and `ver` being equal *MUST* exist.\n3. When a document with the same `id` already exists, the new document's `ver` must be greater than\nthe latest known submitted version for that `id`.\n4. When a document with the same `id` already exists, the new document's `type` must be the same as\nthe latest known submitted document's `type` for that `id`." } }, "notes": [], @@ -986,7 +986,7 @@ "description": "Document ID, created the first time the document is created.\nThis must be a properly created UUIDv7 which contains the \ntimestamp of when the document was created.", "format": "Document Id", "required": "yes", - "validation": "IF `ver` does not == `id` then a document with \n`id` and `ver` being equal *MUST* exist." + "validation": "The document ID validation is performed based on timestamp thresholds:\n\n* If `future_threshold` is configured, the document `id` cannot be too far in the future from the\ncurrent time.\n* If `past_threshold` is configured, the document `id` cannot be too far in the past from the\ncurrent time." }, "parameters": { "description": "A reference to the Parameters Document this document lies under.", @@ -1040,7 +1040,7 @@ "description": "The unique version of the document.\nThe first version of the document must set `ver` == `id`\n\n`ver` represents new versions of the same document as it changes over time.", "format": "Document Ver", "required": "yes", - "validation": "The document version must always be >= the document ID." + "validation": "1. The document version must always be >= the document ID.\n2. IF `ver` does not == `id` then a document with `id` and `ver` being equal *MUST* exist.\n3. When a document with the same `id` already exists, the new document's `ver` must be greater than\nthe latest known submitted version for that `id`.\n4. When a document with the same `id` already exists, the new document's `type` must be the same as\nthe latest known submitted document's `type` for that `id`." } }, "notes": [], @@ -1114,7 +1114,7 @@ "description": "Document ID, created the first time the document is created.\nThis must be a properly created UUIDv7 which contains the \ntimestamp of when the document was created.", "format": "Document Id", "required": "yes", - "validation": "IF `ver` does not == `id` then a document with \n`id` and `ver` being equal *MUST* exist." + "validation": "The document ID validation is performed based on timestamp thresholds:\n\n* If `future_threshold` is configured, the document `id` cannot be too far in the future from the\ncurrent time.\n* If `past_threshold` is configured, the document `id` cannot be too far in the past from the\ncurrent time." }, "parameters": { "description": "A reference to the Parameters Document this document lies under.", @@ -1167,7 +1167,7 @@ "description": "The unique version of the document.\nThe first version of the document must set `ver` == `id`\n\n`ver` represents new versions of the same document as it changes over time.", "format": "Document Ver", "required": "yes", - "validation": "The document version must always be >= the document ID." + "validation": "1. The document version must always be >= the document ID.\n2. IF `ver` does not == `id` then a document with `id` and `ver` being equal *MUST* exist.\n3. When a document with the same `id` already exists, the new document's `ver` must be greater than\nthe latest known submitted version for that `id`.\n4. When a document with the same `id` already exists, the new document's `type` must be the same as\nthe latest known submitted document's `type` for that `id`." } }, "notes": [], @@ -1248,7 +1248,7 @@ "description": "Document ID, created the first time the document is created.\nThis must be a properly created UUIDv7 which contains the \ntimestamp of when the document was created.", "format": "Document Id", "required": "yes", - "validation": "IF `ver` does not == `id` then a document with \n`id` and `ver` being equal *MUST* exist." + "validation": "The document ID validation is performed based on timestamp thresholds:\n\n* If `future_threshold` is configured, the document `id` cannot be too far in the future from the\ncurrent time.\n* If `past_threshold` is configured, the document `id` cannot be too far in the past from the\ncurrent time." }, "parameters": { "description": "A reference to the Parameters Document this document lies under.", @@ -1302,7 +1302,7 @@ "description": "The unique version of the document.\nThe first version of the document must set `ver` == `id`\n\n`ver` represents new versions of the same document as it changes over time.", "format": "Document Ver", "required": "yes", - "validation": "The document version must always be >= the document ID." + "validation": "1. The document version must always be >= the document ID.\n2. IF `ver` does not == `id` then a document with `id` and `ver` being equal *MUST* exist.\n3. When a document with the same `id` already exists, the new document's `ver` must be greater than\nthe latest known submitted version for that `id`.\n4. When a document with the same `id` already exists, the new document's `type` must be the same as\nthe latest known submitted document's `type` for that `id`." } }, "notes": [], @@ -1376,7 +1376,7 @@ "description": "Document ID, created the first time the document is created.\nThis must be a properly created UUIDv7 which contains the \ntimestamp of when the document was created.", "format": "Document Id", "required": "yes", - "validation": "IF `ver` does not == `id` then a document with \n`id` and `ver` being equal *MUST* exist." + "validation": "The document ID validation is performed based on timestamp thresholds:\n\n* If `future_threshold` is configured, the document `id` cannot be too far in the future from the\ncurrent time.\n* If `past_threshold` is configured, the document `id` cannot be too far in the past from the\ncurrent time." }, "parameters": { "description": "A reference to the Parameters Document this document lies under.", @@ -1429,7 +1429,7 @@ "description": "The unique version of the document.\nThe first version of the document must set `ver` == `id`\n\n`ver` represents new versions of the same document as it changes over time.", "format": "Document Ver", "required": "yes", - "validation": "The document version must always be >= the document ID." + "validation": "1. The document version must always be >= the document ID.\n2. IF `ver` does not == `id` then a document with `id` and `ver` being equal *MUST* exist.\n3. When a document with the same `id` already exists, the new document's `ver` must be greater than\nthe latest known submitted version for that `id`.\n4. When a document with the same `id` already exists, the new document's `type` must be the same as\nthe latest known submitted document's `type` for that `id`." } }, "notes": [], @@ -1507,7 +1507,7 @@ "description": "Document ID, created the first time the document is created.\nThis must be a properly created UUIDv7 which contains the \ntimestamp of when the document was created.", "format": "Document Id", "required": "yes", - "validation": "IF `ver` does not == `id` then a document with \n`id` and `ver` being equal *MUST* exist." + "validation": "The document ID validation is performed based on timestamp thresholds:\n\n* If `future_threshold` is configured, the document `id` cannot be too far in the future from the\ncurrent time.\n* If `past_threshold` is configured, the document `id` cannot be too far in the past from the\ncurrent time." }, "parameters": { "description": "A reference to the Parameters Document this document lies under.", @@ -1560,7 +1560,7 @@ "description": "The unique version of the document.\nThe first version of the document must set `ver` == `id`\n\n`ver` represents new versions of the same document as it changes over time.", "format": "Document Ver", "required": "yes", - "validation": "The document version must always be >= the document ID." + "validation": "1. The document version must always be >= the document ID.\n2. IF `ver` does not == `id` then a document with `id` and `ver` being equal *MUST* exist.\n3. When a document with the same `id` already exists, the new document's `ver` must be greater than\nthe latest known submitted version for that `id`.\n4. When a document with the same `id` already exists, the new document's `type` must be the same as\nthe latest known submitted document's `type` for that `id`." } }, "notes": [], @@ -1633,7 +1633,7 @@ "description": "Document ID, created the first time the document is created.\nThis must be a properly created UUIDv7 which contains the \ntimestamp of when the document was created.", "format": "Document Id", "required": "yes", - "validation": "IF `ver` does not == `id` then a document with \n`id` and `ver` being equal *MUST* exist." + "validation": "The document ID validation is performed based on timestamp thresholds:\n\n* If `future_threshold` is configured, the document `id` cannot be too far in the future from the\ncurrent time.\n* If `past_threshold` is configured, the document `id` cannot be too far in the past from the\ncurrent time." }, "parameters": { "description": "A reference to the Parameters Document this document lies under.", @@ -1684,7 +1684,7 @@ "description": "The unique version of the document.\nThe first version of the document must set `ver` == `id`\n\n`ver` represents new versions of the same document as it changes over time.", "format": "Document Ver", "required": "yes", - "validation": "The document version must always be >= the document ID." + "validation": "1. The document version must always be >= the document ID.\n2. IF `ver` does not == `id` then a document with `id` and `ver` being equal *MUST* exist.\n3. When a document with the same `id` already exists, the new document's `ver` must be greater than\nthe latest known submitted version for that `id`.\n4. When a document with the same `id` already exists, the new document's `type` must be the same as\nthe latest known submitted document's `type` for that `id`." } }, "notes": [], @@ -1771,7 +1771,7 @@ "description": "Document ID, created the first time the document is created.\nThis must be a properly created UUIDv7 which contains the \ntimestamp of when the document was created.", "format": "Document Id", "required": "yes", - "validation": "IF `ver` does not == `id` then a document with \n`id` and `ver` being equal *MUST* exist." + "validation": "The document ID validation is performed based on timestamp thresholds:\n\n* If `future_threshold` is configured, the document `id` cannot be too far in the future from the\ncurrent time.\n* If `past_threshold` is configured, the document `id` cannot be too far in the past from the\ncurrent time." }, "parameters": { "description": "A reference to the Parameters Document this document lies under.", @@ -1827,7 +1827,7 @@ "description": "The unique version of the document.\nThe first version of the document must set `ver` == `id`\n\n`ver` represents new versions of the same document as it changes over time.", "format": "Document Ver", "required": "yes", - "validation": "The document version must always be >= the document ID." + "validation": "1. The document version must always be >= the document ID.\n2. IF `ver` does not == `id` then a document with `id` and `ver` being equal *MUST* exist.\n3. When a document with the same `id` already exists, the new document's `ver` must be greater than\nthe latest known submitted version for that `id`.\n4. When a document with the same `id` already exists, the new document's `type` must be the same as\nthe latest known submitted document's `type` for that `id`." } }, "notes": [], @@ -1920,7 +1920,7 @@ "description": "Document ID, created the first time the document is created.\nThis must be a properly created UUIDv7 which contains the \ntimestamp of when the document was created.", "format": "Document Id", "required": "yes", - "validation": "IF `ver` does not == `id` then a document with \n`id` and `ver` being equal *MUST* exist." + "validation": "The document ID validation is performed based on timestamp thresholds:\n\n* If `future_threshold` is configured, the document `id` cannot be too far in the future from the\ncurrent time.\n* If `past_threshold` is configured, the document `id` cannot be too far in the past from the\ncurrent time." }, "parameters": { "description": "A reference to the Parameters Document this document lies under.", @@ -1976,7 +1976,7 @@ "description": "The unique version of the document.\nThe first version of the document must set `ver` == `id`\n\n`ver` represents new versions of the same document as it changes over time.", "format": "Document Ver", "required": "yes", - "validation": "The document version must always be >= the document ID." + "validation": "1. The document version must always be >= the document ID.\n2. IF `ver` does not == `id` then a document with `id` and `ver` being equal *MUST* exist.\n3. When a document with the same `id` already exists, the new document's `ver` must be greater than\nthe latest known submitted version for that `id`.\n4. When a document with the same `id` already exists, the new document's `type` must be the same as\nthe latest known submitted document's `type` for that `id`." } }, "notes": [], @@ -2097,7 +2097,7 @@ "description": "Document ID, created the first time the document is created.\nThis must be a properly created UUIDv7 which contains the \ntimestamp of when the document was created.", "format": "Document Id", "required": "yes", - "validation": "IF `ver` does not == `id` then a document with \n`id` and `ver` being equal *MUST* exist." + "validation": "The document ID validation is performed based on timestamp thresholds:\n\n* If `future_threshold` is configured, the document `id` cannot be too far in the future from the\ncurrent time.\n* If `past_threshold` is configured, the document `id` cannot be too far in the past from the\ncurrent time." }, "parameters": { "description": "A reference to the Parameters Document this document lies under.", @@ -2155,7 +2155,7 @@ "description": "The unique version of the document.\nThe first version of the document must set `ver` == `id`\n\n`ver` represents new versions of the same document as it changes over time.", "format": "Document Ver", "required": "yes", - "validation": "The document version must always be >= the document ID." + "validation": "1. The document version must always be >= the document ID.\n2. IF `ver` does not == `id` then a document with `id` and `ver` being equal *MUST* exist.\n3. When a document with the same `id` already exists, the new document's `ver` must be greater than\nthe latest known submitted version for that `id`.\n4. When a document with the same `id` already exists, the new document's `type` must be the same as\nthe latest known submitted document's `type` for that `id`." } }, "notes": [], @@ -2229,7 +2229,7 @@ "description": "Document ID, created the first time the document is created.\nThis must be a properly created UUIDv7 which contains the \ntimestamp of when the document was created.", "format": "Document Id", "required": "yes", - "validation": "IF `ver` does not == `id` then a document with \n`id` and `ver` being equal *MUST* exist." + "validation": "The document ID validation is performed based on timestamp thresholds:\n\n* If `future_threshold` is configured, the document `id` cannot be too far in the future from the\ncurrent time.\n* If `past_threshold` is configured, the document `id` cannot be too far in the past from the\ncurrent time." }, "parameters": { "description": "A reference to the Parameters Document this document lies under.", @@ -2284,7 +2284,7 @@ "description": "The unique version of the document.\nThe first version of the document must set `ver` == `id`\n\n`ver` represents new versions of the same document as it changes over time.", "format": "Document Ver", "required": "yes", - "validation": "The document version must always be >= the document ID." + "validation": "1. The document version must always be >= the document ID.\n2. IF `ver` does not == `id` then a document with `id` and `ver` being equal *MUST* exist.\n3. When a document with the same `id` already exists, the new document's `ver` must be greater than\nthe latest known submitted version for that `id`.\n4. When a document with the same `id` already exists, the new document's `type` must be the same as\nthe latest known submitted document's `type` for that `id`." } }, "notes": [], @@ -2362,7 +2362,7 @@ "description": "Document ID, created the first time the document is created.\nThis must be a properly created UUIDv7 which contains the \ntimestamp of when the document was created.", "format": "Document Id", "required": "yes", - "validation": "IF `ver` does not == `id` then a document with \n`id` and `ver` being equal *MUST* exist." + "validation": "The document ID validation is performed based on timestamp thresholds:\n\n* If `future_threshold` is configured, the document `id` cannot be too far in the future from the\ncurrent time.\n* If `past_threshold` is configured, the document `id` cannot be too far in the past from the\ncurrent time." }, "parameters": { "description": "A reference to the Parameters Document this document lies under.", @@ -2417,7 +2417,7 @@ "description": "The unique version of the document.\nThe first version of the document must set `ver` == `id`\n\n`ver` represents new versions of the same document as it changes over time.", "format": "Document Ver", "required": "yes", - "validation": "The document version must always be >= the document ID." + "validation": "1. The document version must always be >= the document ID.\n2. IF `ver` does not == `id` then a document with `id` and `ver` being equal *MUST* exist.\n3. When a document with the same `id` already exists, the new document's `ver` must be greater than\nthe latest known submitted version for that `id`.\n4. When a document with the same `id` already exists, the new document's `type` must be the same as\nthe latest known submitted document's `type` for that `id`." } }, "notes": [], @@ -2580,7 +2580,7 @@ "description": "Document ID, created the first time the document is created.\nThis must be a properly created UUIDv7 which contains the \ntimestamp of when the document was created.", "format": "Document Id", "required": "yes", - "validation": "IF `ver` does not == `id` then a document with \n`id` and `ver` being equal *MUST* exist." + "validation": "The document ID validation is performed based on timestamp thresholds:\n\n* If `future_threshold` is configured, the document `id` cannot be too far in the future from the\ncurrent time.\n* If `past_threshold` is configured, the document `id` cannot be too far in the past from the\ncurrent time." }, "parameters": { "description": "A reference to the Parameters Document this document lies under.", @@ -2640,7 +2640,7 @@ "description": "The unique version of the document.\nThe first version of the document must set `ver` == `id`\n\n`ver` represents new versions of the same document as it changes over time.", "format": "Document Ver", "required": "yes", - "validation": "The document version must always be >= the document ID." + "validation": "1. The document version must always be >= the document ID.\n2. IF `ver` does not == `id` then a document with `id` and `ver` being equal *MUST* exist.\n3. When a document with the same `id` already exists, the new document's `ver` must be greater than\nthe latest known submitted version for that `id`.\n4. When a document with the same `id` already exists, the new document's `type` must be the same as\nthe latest known submitted document's `type` for that `id`." } }, "notes": [], @@ -2717,7 +2717,7 @@ "description": "Document ID, created the first time the document is created.\nThis must be a properly created UUIDv7 which contains the \ntimestamp of when the document was created.", "format": "Document Id", "required": "yes", - "validation": "IF `ver` does not == `id` then a document with \n`id` and `ver` being equal *MUST* exist." + "validation": "The document ID validation is performed based on timestamp thresholds:\n\n* If `future_threshold` is configured, the document `id` cannot be too far in the future from the\ncurrent time.\n* If `past_threshold` is configured, the document `id` cannot be too far in the past from the\ncurrent time." }, "parameters": { "description": "A reference to the Parameters Document this document lies under.", @@ -2784,7 +2784,7 @@ "description": "The unique version of the document.\nThe first version of the document must set `ver` == `id`\n\n`ver` represents new versions of the same document as it changes over time.", "format": "Document Ver", "required": "yes", - "validation": "The document version must always be >= the document ID." + "validation": "1. The document version must always be >= the document ID.\n2. IF `ver` does not == `id` then a document with `id` and `ver` being equal *MUST* exist.\n3. When a document with the same `id` already exists, the new document's `ver` must be greater than\nthe latest known submitted version for that `id`.\n4. When a document with the same `id` already exists, the new document's `type` must be the same as\nthe latest known submitted document's `type` for that `id`." } }, "notes": [], @@ -2857,7 +2857,7 @@ "description": "Document ID, created the first time the document is created.\nThis must be a properly created UUIDv7 which contains the \ntimestamp of when the document was created.", "format": "Document Id", "required": "yes", - "validation": "IF `ver` does not == `id` then a document with \n`id` and `ver` being equal *MUST* exist." + "validation": "The document ID validation is performed based on timestamp thresholds:\n\n* If `future_threshold` is configured, the document `id` cannot be too far in the future from the\ncurrent time.\n* If `past_threshold` is configured, the document `id` cannot be too far in the past from the\ncurrent time." }, "parameters": { "description": "A reference to the Parameters Document this document lies under.", @@ -2912,7 +2912,7 @@ "description": "The unique version of the document.\nThe first version of the document must set `ver` == `id`\n\n`ver` represents new versions of the same document as it changes over time.", "format": "Document Ver", "required": "yes", - "validation": "The document version must always be >= the document ID." + "validation": "1. The document version must always be >= the document ID.\n2. IF `ver` does not == `id` then a document with `id` and `ver` being equal *MUST* exist.\n3. When a document with the same `id` already exists, the new document's `ver` must be greater than\nthe latest known submitted version for that `id`.\n4. When a document with the same `id` already exists, the new document's `type` must be the same as\nthe latest known submitted document's `type` for that `id`." } }, "notes": [], @@ -2990,7 +2990,7 @@ "description": "Document ID, created the first time the document is created.\nThis must be a properly created UUIDv7 which contains the \ntimestamp of when the document was created.", "format": "Document Id", "required": "yes", - "validation": "IF `ver` does not == `id` then a document with \n`id` and `ver` being equal *MUST* exist." + "validation": "The document ID validation is performed based on timestamp thresholds:\n\n* If `future_threshold` is configured, the document `id` cannot be too far in the future from the\ncurrent time.\n* If `past_threshold` is configured, the document `id` cannot be too far in the past from the\ncurrent time." }, "parameters": { "description": "A reference to the Parameters Document this document lies under.", @@ -3045,7 +3045,7 @@ "description": "The unique version of the document.\nThe first version of the document must set `ver` == `id`\n\n`ver` represents new versions of the same document as it changes over time.", "format": "Document Ver", "required": "yes", - "validation": "The document version must always be >= the document ID." + "validation": "1. The document version must always be >= the document ID.\n2. IF `ver` does not == `id` then a document with `id` and `ver` being equal *MUST* exist.\n3. When a document with the same `id` already exists, the new document's `ver` must be greater than\nthe latest known submitted version for that `id`.\n4. When a document with the same `id` already exists, the new document's `type` must be the same as\nthe latest known submitted document's `type` for that `id`." } }, "notes": [], @@ -3123,7 +3123,7 @@ "description": "Document ID, created the first time the document is created.\nThis must be a properly created UUIDv7 which contains the \ntimestamp of when the document was created.", "format": "Document Id", "required": "yes", - "validation": "IF `ver` does not == `id` then a document with \n`id` and `ver` being equal *MUST* exist." + "validation": "The document ID validation is performed based on timestamp thresholds:\n\n* If `future_threshold` is configured, the document `id` cannot be too far in the future from the\ncurrent time.\n* If `past_threshold` is configured, the document `id` cannot be too far in the past from the\ncurrent time." }, "parameters": { "description": "A reference to the Parameters Document this document lies under.", @@ -3174,7 +3174,7 @@ "description": "The unique version of the document.\nThe first version of the document must set `ver` == `id`\n\n`ver` represents new versions of the same document as it changes over time.", "format": "Document Ver", "required": "yes", - "validation": "The document version must always be >= the document ID." + "validation": "1. The document version must always be >= the document ID.\n2. IF `ver` does not == `id` then a document with `id` and `ver` being equal *MUST* exist.\n3. When a document with the same `id` already exists, the new document's `ver` must be greater than\nthe latest known submitted version for that `id`.\n4. When a document with the same `id` already exists, the new document's `type` must be the same as\nthe latest known submitted document's `type` for that `id`." } }, "notes": [], @@ -3245,7 +3245,7 @@ "description": "Document ID, created the first time the document is created.\nThis must be a properly created UUIDv7 which contains the \ntimestamp of when the document was created.", "format": "Document Id", "required": "yes", - "validation": "IF `ver` does not == `id` then a document with \n`id` and `ver` being equal *MUST* exist." + "validation": "The document ID validation is performed based on timestamp thresholds:\n\n* If `future_threshold` is configured, the document `id` cannot be too far in the future from the\ncurrent time.\n* If `past_threshold` is configured, the document `id` cannot be too far in the past from the\ncurrent time." }, "parameters": { "description": "A reference to the Parameters Document this document lies under.", @@ -3305,7 +3305,7 @@ "description": "The unique version of the document.\nThe first version of the document must set `ver` == `id`\n\n`ver` represents new versions of the same document as it changes over time.", "format": "Document Ver", "required": "yes", - "validation": "The document version must always be >= the document ID." + "validation": "1. The document version must always be >= the document ID.\n2. IF `ver` does not == `id` then a document with `id` and `ver` being equal *MUST* exist.\n3. When a document with the same `id` already exists, the new document's `ver` must be greater than\nthe latest known submitted version for that `id`.\n4. When a document with the same `id` already exists, the new document's `type` must be the same as\nthe latest known submitted document's `type` for that `id`." } }, "notes": [], @@ -3445,7 +3445,7 @@ "description": "Document ID, created the first time the document is created.\nThis must be a properly created UUIDv7 which contains the \ntimestamp of when the document was created.", "format": "Document Id", "required": "yes", - "validation": "IF `ver` does not == `id` then a document with \n`id` and `ver` being equal *MUST* exist." + "validation": "The document ID validation is performed based on timestamp thresholds:\n\n* If `future_threshold` is configured, the document `id` cannot be too far in the future from the\ncurrent time.\n* If `past_threshold` is configured, the document `id` cannot be too far in the past from the\ncurrent time." }, "parameters": { "description": "A reference to the Parameters Document this document lies under.", @@ -3504,7 +3504,7 @@ "description": "The unique version of the document.\nThe first version of the document must set `ver` == `id`\n\n`ver` represents new versions of the same document as it changes over time.", "format": "Document Ver", "required": "yes", - "validation": "The document version must always be >= the document ID." + "validation": "1. The document version must always be >= the document ID.\n2. IF `ver` does not == `id` then a document with `id` and `ver` being equal *MUST* exist.\n3. When a document with the same `id` already exists, the new document's `ver` must be greater than\nthe latest known submitted version for that `id`.\n4. When a document with the same `id` already exists, the new document's `type` must be the same as\nthe latest known submitted document's `type` for that `id`." } }, "notes": [], @@ -3572,7 +3572,7 @@ "description": "Document ID, created the first time the document is created.\nThis must be a properly created UUIDv7 which contains the \ntimestamp of when the document was created.", "format": "Document Id", "required": "yes", - "validation": "IF `ver` does not == `id` then a document with \n`id` and `ver` being equal *MUST* exist." + "validation": "The document ID validation is performed based on timestamp thresholds:\n\n* If `future_threshold` is configured, the document `id` cannot be too far in the future from the\ncurrent time.\n* If `past_threshold` is configured, the document `id` cannot be too far in the past from the\ncurrent time." }, "parameters": { "description": "A reference to the Parameters Document this document lies under.", @@ -3623,7 +3623,7 @@ "description": "The unique version of the document.\nThe first version of the document must set `ver` == `id`\n\n`ver` represents new versions of the same document as it changes over time.", "format": "Document Ver", "required": "yes", - "validation": "The document version must always be >= the document ID." + "validation": "1. The document version must always be >= the document ID.\n2. IF `ver` does not == `id` then a document with `id` and `ver` being equal *MUST* exist.\n3. When a document with the same `id` already exists, the new document's `ver` must be greater than\nthe latest known submitted version for that `id`.\n4. When a document with the same `id` already exists, the new document's `type` must be the same as\nthe latest known submitted document's `type` for that `id`." } }, "notes": [], @@ -3708,7 +3708,7 @@ "description": "Document ID, created the first time the document is created.\nThis must be a properly created UUIDv7 which contains the \ntimestamp of when the document was created.", "format": "Document Id", "required": "yes", - "validation": "IF `ver` does not == `id` then a document with \n`id` and `ver` being equal *MUST* exist." + "validation": "The document ID validation is performed based on timestamp thresholds:\n\n* If `future_threshold` is configured, the document `id` cannot be too far in the future from the\ncurrent time.\n* If `past_threshold` is configured, the document `id` cannot be too far in the past from the\ncurrent time." }, "parameters": { "description": "A reference to the Parameters Document this document lies under.", @@ -3766,7 +3766,7 @@ "description": "The unique version of the document.\nThe first version of the document must set `ver` == `id`\n\n`ver` represents new versions of the same document as it changes over time.", "format": "Document Ver", "required": "yes", - "validation": "The document version must always be >= the document ID." + "validation": "1. The document version must always be >= the document ID.\n2. IF `ver` does not == `id` then a document with `id` and `ver` being equal *MUST* exist.\n3. When a document with the same `id` already exists, the new document's `ver` must be greater than\nthe latest known submitted version for that `id`.\n4. When a document with the same `id` already exists, the new document's `type` must be the same as\nthe latest known submitted document's `type` for that `id`." } }, "notes": [], @@ -3834,7 +3834,7 @@ "description": "Document ID, created the first time the document is created.\nThis must be a properly created UUIDv7 which contains the \ntimestamp of when the document was created.", "format": "Document Id", "required": "yes", - "validation": "IF `ver` does not == `id` then a document with \n`id` and `ver` being equal *MUST* exist." + "validation": "The document ID validation is performed based on timestamp thresholds:\n\n* If `future_threshold` is configured, the document `id` cannot be too far in the future from the\ncurrent time.\n* If `past_threshold` is configured, the document `id` cannot be too far in the past from the\ncurrent time." }, "parameters": { "description": "A reference to the Parameters Document this document lies under.", @@ -3887,7 +3887,7 @@ "description": "The unique version of the document.\nThe first version of the document must set `ver` == `id`\n\n`ver` represents new versions of the same document as it changes over time.", "format": "Document Ver", "required": "yes", - "validation": "The document version must always be >= the document ID." + "validation": "1. The document version must always be >= the document ID.\n2. IF `ver` does not == `id` then a document with `id` and `ver` being equal *MUST* exist.\n3. When a document with the same `id` already exists, the new document's `ver` must be greater than\nthe latest known submitted version for that `id`.\n4. When a document with the same `id` already exists, the new document's `type` must be the same as\nthe latest known submitted document's `type` for that `id`." } }, "notes": [], @@ -9397,7 +9397,7 @@ "description": "Document ID, created the first time the document is created.\nThis must be a properly created UUIDv7 which contains the \ntimestamp of when the document was created.", "format": "Document Id", "required": "yes", - "validation": "IF `ver` does not == `id` then a document with \n`id` and `ver` being equal *MUST* exist." + "validation": "The document ID validation is performed based on timestamp thresholds:\n\n* If `future_threshold` is configured, the document `id` cannot be too far in the future from the\ncurrent time.\n* If `past_threshold` is configured, the document `id` cannot be too far in the past from the\ncurrent time." }, "parameters": { "description": "A reference to the Parameters Document this document lies under.", @@ -9497,7 +9497,7 @@ "description": "The unique version of the document.\nThe first version of the document must set `ver` == `id`\n\n`ver` represents either:\n\n* when a document changes over time, such as\n\twith a new version of a particular document that supersedes an \n\tearlier one.\n* when a new document in a sequence of documents is produced.\n\t\nBecause the most common use `ver` is a new version of the same document\nthis is to be assumed unless the document specifies its representing\na sequence of documents.", "format": "Document Ver", "required": "yes", - "validation": "The document version must always be >= the document ID." + "validation": "1. The document version must always be >= the document ID.\n2. IF `ver` does not == `id` then a document with `id` and `ver` being equal *MUST* exist.\n3. When a document with the same `id` already exists, the new document's `ver` must be greater than\nthe latest known submitted version for that `id`.\n4. When a document with the same `id` already exists, the new document's `type` must be the same as\nthe latest known submitted document's `type` for that `id`." } }, "order": [