Output mapping library for Keboola Runner and Workspaces. Processes component outputs and uploads them to Keboola Storage API.
Tables:
- Local staging: Uploads tables as gzipped CSV files to Storage API
- Slicing: Large CSV files are automatically split into multiple compressed chunks for parallel upload (via external slicer binary)
- Requires:
output-mapping-slicefeature flag, default CSV format (,delimiter,"enclosure), no customcolumnsmapping - Sliced files must have
columnsorschemaspecified in configuration
- Requires:
- Slicing: Large CSV files are automatically split into multiple compressed chunks for parallel upload (via external slicer binary)
- Workspace staging (Snowflake/BigQuery): Loads tables directly from workspace database objects (no file upload, no slicing)
Files:
- Uploads files as-is to Storage API File Storage (works with all staging types)
Create .env.local file from this .env template and fill the required environment variables:
cp .env .env.localYou need to provide the following environment variables:
STORAGE_API_URL- The Keboola Storage API URL (e.g.,https://connection.keboola.com)STORAGE_API_TOKEN- A non-admin token with "Full Access" to Files, Components & Buckets and TrashSTORAGE_API_TOKEN_MASTER- An admin user token from the same project (with roleadmin)
Optional (for BigQuery-specific tests only):
BIGQUERY_STORAGE_API_URL- BigQuery Storage API URL (e.g.,https://connection.keboola.com)BIGQUERY_STORAGE_API_TOKEN- A non-admin token with "Full Access" to Files, Components & Buckets and Trash from a project with BigQuery backend
Development commands:
composer phpcs- Check code stylecomposer phpcbf- Automatically fix code style issuescomposer phpstan- Run static analysis
Testing commands:
composer tests- Run tests with PHPUnitcomposer paratests- Run tests in parallel with Paratest
MIT licensed, see LICENSE file.