- user can store a value
- user can return a value
- user can store complex data
- assumed json object as input
- user can retreive complex data
- assumed json as output
- user can retreive complex data with specified depth
- assumed json as output, limited to
- user can retreive a sub-component
- single property in json structure as output
- complex sub-component as json in output
- user can update complex sub-component
- assumed input is json
- user setting a value creates a historical record for the specific feild
- user can retreive history of a single property in the store
- user can retreive a history of a property in the store that also lists inherited values
- user can retreive history of a parent object that includes history of child items
- user can store a validation spec for a path
- assumed json schema
- user can specify/store a validation url for a path
- asssumed url leads to a json schema
- user can not set values that do not conform to specified validation on a path
- once a validation has been set, it is used for that path
- user can define a type on a path
- user can specify default values for a (base) type
- user can get default values from a path
- If there are values in the typed location the locations values are returened
- If there are no values in the typed location the (base) defaults are returned
- user can specify defaults for child elements in a tree.
- user can get defaults from parent items
- If there are values in the typed location the locations values are returened
- If there are no values in the typed location and a parent object of the type exists, the parent defaults are returned
- If there are no values in the typed location, and no parents, the (base) defaults are returned
- user can override values at child level.
- this may or may not be accomplished through other stories
These representations of the data structure should be considered as simple thought excersises right now, and might not have any bearing on the end state
sample draft config store -all in one
|-- parties
| |-- _cassie
| | |-- type = [list]party
| | `-- balloon
| | `-- color = green
| |-- jakes_birthday
| | `-- balloon
| | `-- color = red
| `-- locats_shindig
| `-- location = supersecret
|-- events
| |-- _cassie
| | `-- type = [list]party
| |-- opening_galla_1974
| | `-- balloon
| | `-- color = purple
| `-- yarn_expo
|-- party
| |-- _cassie
| | `-- validation = https://path.to.json.shema
| |-- location = "the big oak tree"
| `-- balloon
| `-- _cassie
| `-- type = balloon
`-- balloon
`-- color = black
draft config store - values
|-- parties
| |-- jakes_birthday
| | `-- balloon
| | `-- color = red
| `-- locats_shindig
| `-- location = supersecret
|-- events
| |-- opening_galla_1974
| | `-- balloon
| | `-- color = purple
| `-- yarn_expo
draft config store - types w/defaults
|-- party
| |-- location = "the big oak tree"
| `-- balloon
| `-- _cassie
| `-- type = balloon
`-- balloon
`-- color = black
draft confit store - types w/meta data
|-- party
| `-- validation = https://path.to.json.shema
- /parties/jakes_birthday/
- { location: "the big oak tree", balloon: "red"}
- /parties/locats_shindig/
- { location: "supersecret", balloon: "green"}
- /events/opening_galla_1974/
- { location: "the big oak tree", balloon: "purple"}
- /events/yarn_expo/
- { location: "the big oak tree", balloon: "black"}