Jira | ||||||||
---|---|---|---|---|---|---|---|---|
|
Introduction
CPS temporal data keeps data in
- to identify the issues in the network as soon as possible to ensure the customer gets uninterrupted service.
Assumptions
- Temporal database stores full information in the payload ( CPS-192: Design data store for Temporal Service).
...
- It is a possibility that data stored for the different timestamps is the same, especially if the payload is used to filter data.
Query APIs
In CPS temporal, the state can be filtered based on three criteria
- Datetime
- States in last X hours
- States after a particular DateTime
- State at a particular time
- Last X states
- DataTypes in CPS Core
Dataspace & schema-set
- Dataspace & anchor
- Dataspace & multiple anchors - To improve performance, if there is a need to fetch data for multiple anchors.
- Dataspace
- Payload
- Based on a subsection or field in the payload. These criteria do need schema-set to be fixed to search in the same set of anchors
Adding payload filtering with DateTime criteria can make the query APIs complicated. Hence, we will implement the basic APIs first and will add complex ones when required.
Proposed APIs
base-url: /cps-temporal/api/v1
No | API endpoint | Description | Example |
---|---|---|---|
1. | <base-url>/dataspaces/{dataspace-name}/anchors/{anchor |
-name} |
? |
after=<epochtimeinnanoseconds> | Return all the data entries for an anchor after the specified epoch | |
2. | <base-url>dataspaces/{dataspace-name}/schema-sets |
...
/{schema-set}?after=<epochtimeinnanoseconds> | Return all the data entries for a schema-set after the specified epoch | ||