Feature #3891
closedProvide simpler programmatic access to Kafo facilities
Description
My shop is interested in using Kafo in order to build interfaces for end users to use our growing set of Puppet modules in a local, installer-type fashion. However, we already have a bunch of interfaces already in place for users, and would rather not use the (module) -> (kafofy) -> (installer) pipeline. Instead, it would be pretty awesome if we could call Kafo programmatically as one piece in our app deployment service. In particular, our shop already has its own CLI and web frontends for initiating app installs (among other things); doing the context switch between these apps and a separate command-line tool is a bit cumbersome and prone to error.
For example, right now, Kafo is really completely centered around a command-line operation (given the extensive use of Clamp). This makes it a little bit awkward to create, for instance, a web installer. The information is there (via the various parsing/validation Kafo does against the Puppet modules). But it's not so simple to access that info programmatically. What this means is that we either mock out the CLI parts of the library so that we can get access to that information, or we can just implement our own doc parser -> param validator -> user interface pipeline (which seems awfully duplicative of this project).
Would be curious to hear your thoughts. Thanks-