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.

All extensions run inside 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:

Docker Custom Science Generic Extractor
Implementation Keboola Approval / Registration Required yes no no
KBC Components extractor, writer, application extractor, writer, application extractor
Implementation Complexity medium easy very easy
Application Environment any R, Python, PHP configuration only
Knowledge of Docker Required yes no no
User Features Setup User Experience fully customizable poor poor
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.