CPKOne more Ctool in the works. Once again I'm calling out for comments, suggestions, whatever. Let me know what you thing and suggestions for improvements, or even if you think this makes no sense at all.
MotivationPentaho is very well known for being a very good Business Analytics software, but is in fact much more than that; Pentaho is a great platform to build on top of.
Using an easy analogy, I see Pentaho acting as an operating sytem where people can build Application on top of
ObjectiveThe goal of CPK is to provide a simple and easy way to develop pentaho plugins that behave like packaged applications, simplifying it's structure.
The UI is built using CDE, with a simple methodology to create new dashboards / pages and a sitemap that provides simple navigation and a default template
There are 3 options for doing server-side code:
- Kettle transformations
- Java classes
With this approach not only we expect to make it easier and faster to develop plugins, we also hope to lower down the specific technical requirements to build them. The end goal is that business consultants are able to build new plugins, not requiring specific java knowledge.
StructureThis is the resulting plugin structure. Ideally, no compilation is necessary, so everything except maybe the lib directory could be stored in a VCS system.
This is the proposed stub configuration
to be completed
CPK_Plugin |-- conf |-- dashboards |-- endpoints |-- lib `-- plugin.xml
CPK administrative featuresBesides providing the regular templating for creating new plugins, CPK can have an administrative UI with the following features:
- List existing plugins
- Detect if the plugins are up to date with the latest version of CPK
- Allow the creation of new plugins
- Allow to change plugin metadata
- List and register new endpoints (UI and code)
- Import UI from existing dashboards in solution
- Allow editing dashboards from this UI
- Submit marketplace metadata to Pentaho
- Generate distribution zip package
UpdatesAs the CPK framework or any of it's dependencies gets improved, the plugins themselves can't stay outdated. There will be a version information attached to the CPK plugin version so that it's possible to upgrade to the latest version.
DependenciesCPK will have as little code as possible, making it as simple as possible to develop plugins. However, it will need a few dependencies:
- CPF - Community Plugin Framework, with the common set of code for the plugins
- CDE - Community Dashboard Editor
- CDF - Community Dashboard Framework
- CDA - Community Data Access
Link with Pentaho MarketplaceOnce a plugin is developed, and the authors think it's in a state that can be shared, CPK will be able to generate a packaged plugin and metadata information so it can be integrated into Pentaho's marketplace.
Pentaho will then be able to categorize / approve the plugin so that it becomes available to other users through the marketplace