Looking deeper into using cloudfare doca as the basis for the documentation CMS it seems that all we'd need to do is
1. Customizing a theme ( https://github.com/cloudflare/doca-bootstrap-theme )
- would need your ideas here
2. A loader to import jsonschema files that have no ".json" filename extension
- tested, seems to work ok
The way i see the CMS so far is 100% autogenerated code, but maybe someone with actual UI/UX skills can tell me if we can capture user input and update jsonschema assets in a web-authoring environment.
I think left navigation should list vendor prefixes [ "$.schema.vendor" ] in an alphanumeric order, each being an expandable menu item opening a list of event names [ "$.schema.name" ] in an alphanumeric order. Next level in the hierarchy is the schema version [ "$.schema.version" ]. Each schema version menu item, I think should have three anchor links: JS (jsonschema), JP (jsonpaths) and RS (redshiftschema).
In the content canvas, I would keep most of the current structure, with small modifications:
1. Remove Show/Hide button and always display expanded.
2. Where doca currently displays schema title, I'd generate it from the self describing block attributes something like
[ com.example » invoice_paid » v1.0.0 ]
Then, I would encourage snowplowers to make use of "description" and "example" attributes but after careful examination of the specs I could not find those keywords defined as something validators should be on a lookout for and expect to be in a particular format. So if the attributes are present, they will be rendered nicely by the theme. Else, the content would look ugly, but will be functional.
Extra points, and I really don't know how to achieve this effectively: I'd like to add jsonpaths and redshift DDL here. Ultimately, I see this interface being slapped on top of iglu repository server to be able to
1. Programmatically store customized jsonschema, jsonpaths and redshift schema into a single repository
2. Provide version locking
3. Provide autogenerated documentation (what we're discussing in this thread)
4. Provide additional CMS / UGC capabilities
4.1- Either wiki notes around schemas, discussion forum, etc. OR
4.2- Means of embedding autogenerated content into popular CMS platforms (e.g. Confluence) where UGC will be created and organized.
What do you guys think?