Stackable Cockpit is the unified web UI for the Stackable Data Platform (SDP). It provides a single place to work with the data services running on your platform.
Warning
Stackable Cockpit is experimental.
This application is part of the Stackable Data Platform, a curated selection of best-of-breed data applications and tools that you can deploy and operate on Kubernetes. The platform builds on open-source projects and provides Kubernetes operators to manage them, including:
- Apache Airflow
- Apache Druid
- Apache HBase
- Apache Hadoop HDFS
- Apache Hive
- Apache Kafka
- Apache NiFi
- OpenSearch
- Apache Spark
- Apache Superset
- Trino
- Apache ZooKeeper
Read more about the platform in the documentation and on the Stackable Hub.
- Single sign-on via any OIDC provider
- Trino SQL query editor and schema browser, with queries submitted under the logged-in user's name
More modules will be added over time.
The required Node.js version is pinned in .node-version.
# Install dependencies
npm install
# Start the development server (http://localhost:5173)
npm run devCopy .env.example to .env and adjust the values for your OIDC provider and Trino endpoint.
For a fully pre-configured local environment (Keycloak and Trino on a local kind cluster), see dev/setup.sh.
npm run dev # Start the dev server
npm run build # Build for production
npm run preview # Preview the production build
npm run format # Format all code
npm run check # Type checking
npm run lint # Linting
npm run test:e2e # Run the Playwright end-to-end tests
npm run generate:antlr # Regenerate the lexer/parser after editing the SQL grammarA Helm chart for Kubernetes is included under deploy/helm/cockpit:
helm install cockpit ./deploy/helm/cockpit -f your-values.yamlSee the chart README for the full list of values.
docker build . -f docker/Dockerfile \
--build-arg TARGETARCH=x86 --build-arg VERSION=0.0.0-dev \
-t cockpit:0.0.0-dev
docker run -p 3000:3000 cockpit:0.0.0-devThe application is configured via environment variables.
Create a .env file at the project root, or set them in your deployment environment.
| Variable | Type | Default | Description | Example |
|---|---|---|---|---|
STACKABLE_COCKPIT_COMPLETION_ENABLED |
boolean ("false" to disable) |
true |
Enables the SQL editor code-completion provider and the metadata endpoint. Set to "false" to fall back to plain syntax highlighting. |
STACKABLE_COCKPIT_COMPLETION_ENABLED=false |
STACKABLE_COCKPIT_STORAGE_BROWSER_ENABLED |
boolean ("true" to enable) |
false |
Shows the S3/HDFS file browser in the sidebar and activates routes under /storage. Must be explicitly opted in to expose storage credentials and the file-browser UI. |
STACKABLE_COCKPIT_STORAGE_BROWSER_ENABLED=true |
| Variable | Type | Default | Description | Example |
|---|---|---|---|---|
STACKABLE_COCKPIT_TEXT_PREVIEW_BYTES |
integer (bytes) |
262144 (256 KiB) |
Maximum bytes fetched when previewing text, CSV, or JSON files. | STACKABLE_COCKPIT_TEXT_PREVIEW_BYTES=524288 |
STACKABLE_COCKPIT_IMAGE_PREVIEW_BYTES |
integer (bytes) |
5242880 (5 MiB) |
Maximum bytes fetched when previewing image files. | STACKABLE_COCKPIT_IMAGE_PREVIEW_BYTES=10485760 |
STACKABLE_COCKPIT_PDF_PREVIEW_BYTES |
integer (bytes) |
26214400 (25 MiB) |
Maximum bytes fetched when previewing PDF files. | STACKABLE_COCKPIT_PDF_PREVIEW_BYTES=52428800 |
STACKABLE_COCKPIT_FILE_PREVIEW_ROWS |
integer (rows) |
250 |
Maximum number of rows included in a tabular file preview (e.g. Parquet converted to CSV). | STACKABLE_COCKPIT_FILE_PREVIEW_ROWS=500 |
- Platform documentation: https://docs.stackable.tech/
- Stackable website: https://stackable.tech/
- Stackable Hub: https://hub.stackable.tech/
Contributions are welcome! Please open an issue or pull request. Before submitting changes, run the quality checks:
npm run format
npm run check
npm run lint
npm run test:e2eContributions require agreeing to a Contributor License Agreement (CLA). When you open your first pull request, the CLA assistant will guide you through signing it.
If you find this project useful, consider sponsoring Stackable.
Licensed under the Open Software License version 3.0. This project bundles the Trino SQL grammar and code derived from it, which are licensed under the Apache License, Version 2.0. The relevant source files carry upstream attribution headers.