Components allow you to extend Keboola. The data interface to components is very similar to Transformations — data is exchanged as CSV files in designated directories.
As a developer, you implement the application logic in a language of your choice and store it in a git repository. The component must adhere to our common interface. To start quickly, use our component generator that can generate a skeleton of the component for you. We also provide libraries to help you with implementation in R, Python, and PHP. Check our example component in PHP.
The main part of the common interface is the specification how CSV files and designated folders are used to exchange data between Keboola and components:
Apart from this basic usage, the common interface offers many more features:
Our Docker Runner component makes sure that the common interface is honoured from our side. It also takes care of executing your component in its own isolated environment.
Before you start developing a new component, you should
docker
commands. Strictly speaking, you can get away
with not using them, but it will certainly speed things up for you.You can work with your component in your Keboola projects immediately as soon as you create it. However, to make the component publicly available to all users, it must be published.
The following component types are currently allowed:
The type of a component has no effect on the component internals – i.e., all components regardless of their type share the identical features of the common interface. The component type just tells the end-user what behavior to expect from a given component. For example, an extractor is expected to extract data from an external system. Nothing prevents it from processing data from Storage (e.g., Geocoding does that), but its primary reason of existence is to bring data into Storage.
The expected behavior of the above component types can be described in more detail as follows:
orchestrator
– Orchestrator service configurations. To work with either configurations or jobs, use the dedicated API.transformation
– Transformation service configurations. To work with configurations, use the standard configurations API. To work with jobs,
use the dedicated API.provisioning
– Sandbox provisioning service. No configurations can be made.
To work with jobs, use the dedicated API.keboola.oauth-v2
– OAuth integration service. Neither configurations nor jobs can be made. Use the dedicated API to work with the service.keboola.variables
– Component for storing variables configurations. Use the standard configurations API. No jobs can be made.keboola.storage
– Placeholder component for actions from Storage service. Neither configurations nor jobs can be made. Use the
dedicated API to work with Storage.