-
Notifications
You must be signed in to change notification settings - Fork 3
Annex C Extensions
The CDP4® is compliant to ECSS-E-TM-10-25 Annex A, Annex C and Annex C. The CDP4® provides more capabilities than a pure ECSS-E-TM-10-25 through extensions of Annex A and Annex C. The Annex C extensions are explained here. The following Annex C extensions can be identified:
- JSON REST API - C2
- HTTP Headers
- Time Travel
- Revisions
- Copy Operation
- Restore and Reseed
- JSON Exchange File Format - C3
These extensions have been implemented on the CDP4® Web Services and the CDP4ServicesDal-CE.
The CDP4® Web Services are able to include or exclude the CDP4 Data Model classes in the response of a GET or POST request. HTTTP headers are used to communicate to the CDP4® Web Services that the client supports CDP4® concepts and what version is supported. The Accept-CDP
HTTP header is used to let the CDP4® Web Services know that CDP4® extensions are accepted by the client that is making the GET or POST requests.
A response from the CDP4® Web Services will always contain the following HTTP Headers:
- CDP4-Server: The header that is used to communicate the version of the server that is being used
- CDP4-Common: The header that specifies the version of the CDP4Common library that is being used
- Content-Type: The header that specifies the ECCS-E-TM-10-25 protocol and it's version. The CDP4® Web Services return
application/json; ecss-e-tm-10-25; version=1.0.0
while a pure E-TM-10-25 implementation returnsapplication/json
.
The revision query-parameter is used to request the objects that have a revision equal to or higher than a certain revision number. This query-parameter is used to requests only those objects that have been added or updated after a specific revision; this provides support in a polling strategy to only retrieve the new and updated objects.
The timeTravel query parameter is used to request a specific revision of an object, including its contained object graph.
parameter | value | description | Combination |
---|---|---|---|
timeTravel | Valid values are a revision number as an integer or a timestamp in the ISO 8601 format. | Returns the set of all objects contained by the object specified in the URI, that have a revisionNumber that is equal or lower than the given value. When a timestamp is used, this is translated to the revisionNumber that was created at the provided timestamp, or the first revision that is found with a timestamp smaller (earlier) than the provided timestamp. | This query-parameter can be combined with the extent query parameter to request a single object as well as it’s containment tree. This query-parameter cannot be combined with the revision query-parameter. This query-parameter can be combined with the includeReferenceData query-parameter. The returned reference data is that reference data that was valid for the requested timeTravel revision or timestamp value. |
The revision query-parameter is used to request the objects that have a revision equal to or higher than a certain revision number. This query-parameter is used to requests only those objects that have been added or updated after a specific revision; this provides support in a polling strategy to only retrieve the new and updated objects.
The revisionFrom and revisionTo query parametsers are used to request selected revisions of an object.
parameter | value | description | Combination |
---|---|---|---|
revisionFrom | Valid values are a revision number as an integer or a timestamp in the ISO 8601 format. | Specifies that all revisions of an object are requested starting at the specified lower revision. If no revisionTo query-parameter is specified the range that is requested includes all revisions until the most recent revision. | This query parameter can only be combined with the revisionTo query-parameter |
revisionTo | Valid values are a revision number as an integer or a timestamp in the ISO 8601 format. | Specifies that all revisions of an object are requested until the specified upper revision. If no revisionFrom query-parameter is specified the range that is requested starts a revision 0. | This query parameter can only be combined with the revisionFrom query-parameter. |
In order to support integration tests defined in the ECSS-E-TM-10-25 Annex C - Integration test suite 2 routes have been added to Annex C.2 with the following purpose:
- An "upload an Annex C.3 compliant seed file" service. The seed file forms the basis for the tests and is the known state of the data set on which the tests have been based. By uploading such a seed file the complete data set is reset to the state described in the seed file.
- A "restore" service that restores the dataset on the service to the last seeded file.
Method | Request | Notes |
---|---|---|
POST --form | http[s]://cdp4services-public.cdp4.org/Data/Exchange | Upload an ECSS-E-TM-10-25A Annex C.3 exchange archive that will seed the datastore. This feature Can be disabled in CDP4 Server [[configuration file |
POST | http[s]://cdp4services-public.cdp4.org/Data/Restore | restore/reseed of the datastore (e.g. for rollback or testing) to the previously provided ECSS-E-TM-10-25A Annex C.3 exchange archive. This feature Can be disabled in CDP4 Server [[configuration file |
The CDP4® does not provide any JSON Exchange File Format extensions at this time.
copyright @ Starion Group S.A.