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.
Apart from this basic usage, the common interface offers many more features:
Before you start developing a new component, you should
dockercommands. Strictly speaking, you can get away without using it, but it will certainly speed things up for you.
Previously we have supported a Custom Science component, which was offered as an intermediate before a fully fledged component. We believe it was fully superseded by components and we encourage you to migrate.
Follow these steps to migrate:
genericDockerUI-fileInputif you need it) in the UI options of the component.
Important: Every component has the amount of RAM limited to 64M by default. If you need more, ask us at email@example.com. For R code, you probably need at least 300M.
There should be no changes required in the component code. The only difference you might run into is that your
code is no longer put in the
/home/ directory, but in the
/code/ directory. The easiest way to migrate is
to use our component generator tool.
Run it with:
docker run -i -t --volume=/path/to/repository/:/code/ quay.io/keboola/component-generator --update
/path/to/repository/ is the path to your Custom Science git repository. Choose a template according to the
language used -
r-simple and skip overwriting the
If you do not want the component generator to touch your repository, see the deployment templates and language templates. You can copy the files to your repository manually. You can still use the component generator to set up Travis integration:
docker run -i -t --volume=/path/to/repository/:/code/ quay.io/keboola/component-generator --setup-only
If you want to set up the deployment integration manually, read the deployment documentation. It also describes integration with Bitbucket and GitLab, which is also seamless. Basically, you need to do the following: