JSON Hierarchy
It is (a turtle called) JSON all the way down.
Everything is JSON
** All configuration is stored as validated JSON in a CouchDB.**
Validated = meets a JSONschema as a minimum, ideally has been validated by the config infrastructure.
Document Types
- Schema - jsonschema compatible schema for validating document types
- Vocabulary - jsonschema compliant vocabulary extension to support BaziCloud JSON docs overrides1. Template Extension - a partial template doc which inclues the name of a complete template to begin with, then override.
- Configuration - a document built a template/ template extension.
- Source - a document defining where a list of values to populate an enum can be found
graph LR
subgraph Document Template Sources
global((BaziCloud Template)) -- extends --> modified(Customer Template Extension)
global -- replaces --> override(Customer Template)
end
subgraph Templates
std{Standard JSON <br> Vanilla JSONschema} --> config(BaziCloud Config <br> see below)
std --> bc["Must include 1 instance of <br> **bazicloud** data"]
bc --> cust(Defines customer shortcode and key paramters)
bc --> doc(Any valid JSON info for apps)
std --> temp{Template}
temp --> conf(Config - adds fields to support JSONform )
end
subgraph Key
diamond{Diamond <br> never used} --> cirlce((Cirlce <br> Admin Only))
diamond --> rb(Rounded Box <br> template used by docs)
diamond --> rect[Rectangle <br> document using named template type]
end