Extending Keboola Connection

As an open system consisting of many built-in, interoperating components, such as Storage or Extractors, Keboola Connection (KBC) can be extended. We encourage you to build your own extensions, whether for your own use or to be offered to other KBC users and customers.

Benefits of Extending KBC

Building extensions for KBC offers many advantages:

  • Easy access to data from many different sources
  • Simple path to delivering the data back to your customers
  • Availability of your application or algorithm to all existing KBC subscribers and implementation partners
  • Opportunity for you to focus only on areas of your product where you are adding value
  • Keboola in charge of the billing

To become a Keboola Development Partner, get in touch. We want to hear what you would like to build!

Types of Extensions

Currently, there are two types of extensions available:

  1. Generic Extractor – specific component for implementing extractors for services with REST API
  2. Custom Extension – component extending KBC with arbitrary code

Generic Extractor

Generic Extractor is a KBC component acting like a customizable HTTP REST client. It can be configured to extract data from virtually any API and offers a vast amount of configuration options. With Generic Extractor you can build an entirely new extractor for KBC in less than an hour.

Custom Extensions

Custom Extensions can be used as:

  • Extractors – allowing customers to get data from new sources. They only process input tables from external sources (usually API).
  • Applications – further enriching the data or add value in new ways. They process input tables stored in CSV files and generate result tables in CSV files.
  • Writers – pushing data into new systems and consumption methods. They do not generate any KBC tables.
  • Processors – adjusting the inputs or outputs of other components. They have to be run together with any of the above extensions.

All extensions are run using a Docker component which takes care of their authentication, starting, stopping, isolation, and reading data from and writing it to KBC Storage. They must adhere to a common interface.

There are two types of Custom extensions differing in the level of integration and implementation flexibility:

  1. Custom Science extension — easier to implement, less features available
  2. Docker extension — maximum implementation flexibility

Comparison of Extensions

The following table provides an overview of the main characteristics of KBC extensions:

Generic Extractor Custom Science Extension Docker Extension
Implementation Keboola Approval / Registration Required no no yes
KBC Components extractor extractor, writer, application extractor, writer, application
Implementation Complexity very easy easy medium
Application Environment JSON configuration only R, Python, PHP any
Knowledge of Docker Required no no yes
Uses External Code Repository no yes yes
User Features Setup User Experience poor, customizable * poor, customizable * fully customizable
Brandable yes * yes * yes
Offered to All Users yes * yes * yes
Customizable User Interface yes * yes * yes
OAuth2 Support yes * no yes

* Available only when registered.