The Kettle repository was designed to store Kettle (ETL) metadata in a relational format.
The goal was to be able to change certain objects centrally, without touching the rest. This was true for these objects:
- Database connections
- Slave Servers
- Cluster Schema
- Partition Schema
There are other objects that are represented separately in the relational Kettle repository:
- Job entries
However, it is currently not possible to change them individually from the Spoon UI.
With respect to support for things like CMIS we need to make a choice about the level of abstraction and the top list seems like a great place to start.
So the first step to get there is the cleanup of the repository code.
--> Turn Repository into an Interface
--> Create one (existing) implementation RelationalRepository
--> Create one new implementation XMLRepository
--> Create one new implementation CMISRepository
That gives us hope of being able to keep everything 100% compatible with respect to the existing steps and plugins. So a few design goals are:
- Keep step plugins compatible
- Keep job entry plugins compatible
- Keep partition plugins compatible
The rest is up for grabs as far as I'm concerned.