Assumptions
# | Description |
---|---|
1 | Yang namespaces are globally unique (except for multiple revisions) |
Open Issues/Decisions
# | Description | Details | Decisions |
---|---|---|---|
1 | How to differentiatie GET queries with different parameters. If we dont have named parameters how best to know what is meant | Alternatives
| |
2 | Advance queries v Simple Queries (gets) for data fragments. Do we want/need differentiatie on UTL? |
Note . The xpath could be a full unambiguous xpath returning one object or it could be partial path using wildcards etc allowing for more advanced queries return 0 or more fragments (developed over many iterations) | |
3 | We have no modules sets! | model files just arbitrarily group a few modules, is there a need to persist this grouping (We do have the concept of a dataspace as well) |
API definitions
Group | # | Operation | Payload | Description |
---|---|---|---|---|
Modelling storage | 1 | PUT /module/{dataspace} | File | Create/Update (and validate) a module set. (upload a model file) |
2 | GET /module/ | Read all modules in the store. | ||
3 | GET /module/{namespace} (see assumption #1 and issue #1) | Read all modules in the store for the given namespace | ||
4 | GET /module/{namespace}/{revision} | Read all modules in the store for the given namespace and revision | ||
5 | GET /module/{dataspace} (see issue #1) | Read all modules in the store for the given dataspace | ||
Anchor Points persistence | 6 | PUT /anchor-point/ | Json Object | Create an anchor point given a name and a dataspace and module (namespace and revision) |
7 | GET /anchor-point/{dataspace}/{name}/ | Read an anchor point and the associated attributes given a name and a dataspace. | ||
8 | DELETE /anchor-point/{dataspace}/{name} | Delete an anchor point given a name and a dataspace. (will delete whole tree) | ||
9 | GET /anchor-point/{dataspace} (see isue#1) | Read all anchor points in the system given a dataspace. | ||
10 | GET /module/{dataspace}/{anchor-point}/ | Get a module (reference), given an anchor point | ||
11 | GET /anchor-point/fragment/{dataspace}/{xpath}/ | Get the anchor point of a fragment given a fragments xpath | ||
Fragment persistence | 12 | PUT /fragment/{dataspace}/{name}/ | File | Create a (root) fragment for a given anchor point, the fragment can have children. |
13 | PUT /fragment/{parent-fragment-id}/ | File | Create a fragment given an ID relative to the parent | |
14 | GET /fragment/{dataspace}/{name}/ | Get a fragment given a anchor point (return just one level with just xpath references to its children) | ||
15 | GET /fragment/{dataspace}/{xpath}/ (see isue#2) | Get a fragment given a Xpath expression | ||
16 | GET /fragments/{dataspace}/{anchor-point}/ | Get all the fragments under an anchor point given a anchor point (notice similarity with /fragment/{dataspace}/{anchor-point}/ (just one letter!) | ||
17 | GET /fragment/{dataspace}/schema-node-identifier/{schema-node-identifier}/ | Get all the relevant fragments given a schema node identifier (not need to specify dataspace is schema-node-identifier is globally unique) |