# uCentral Schema Collection of JSON schemas and ucode template (utpl) files used by uCentral for validating the data model and rendering incoming configuration JSON into UCI batch sequences. This software is a part of the OpenWiFi [AP NOS](https://github.com/Telecominfraproject/wlan-ap). ## Building ### Dependencies In order to run the test cases you will need the following tools: * [ucode](https://github.com/jow-/ucode) * [ucentral-jsonschema](https://github.com/blogic/ucentral-jsonschema) * jsonlint-php * pip3 install jsonschema2md * pip3 install json-schema-for-humans * pip3 install python-json2yaml ### Unit testing ```sh ./run_tests.sh ``` ### Documentation [JSDoc](https://github.com/jsdoc/jsdoc) is used to generate API documentation with a ucode transpiler (`ucode-transpiler.js`), configured by `jsdoc.conf.json`. Additional JSON schema docs are generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) via the script `generate.sh`. ## Developer Notes ### Generated documentation - JSDoc: https://ucentral.io/docs/ - `schema` object: http://ucentral.io/docs/ucentral-schema.html - `state` object: https://ucentral.io/docs/ucentral-state.html ### Installed files The following ucode scripts are installed to the AP: - `schemareader.uc` - autogenerated schema reader - `renderer/*` - renderer sources and templates - `command/*` - predefined command implementations, e.g. invoked by [ucentral-client](https://github.com/Telecominfraproject/wlan-ucentral-client) - `system/*` - scripts to generate system information (e.g. state, telemetry, health, capabilities)