From 555765aaf6acaef08bf33ae8340b8c6bd13d70f2 Mon Sep 17 00:00:00 2001 From: Lars Francke Date: Tue, 16 Jun 2026 18:05:22 +0200 Subject: [PATCH 1/3] docs: rewrite README and switch licence to OSL-3.0 - Rewrite README to describe the actual product and match the SDP operator-repo structure (About SDP, Documentation, Contributing, Support, Sponsor and License sections) - Update the operator list: drop Apache Druid, add OpenSearch - Switch the project licence from Apache-2.0 to OSL-3.0 (LICENSE) - Add LICENSE-Apache-2.0 for the bundled Apache-2.0 Trino SQL grammar and code derived from it; attribution stays in the per-file headers - Set the package.json license field to OSL-3.0 --- LICENSE | 243 ++++++++------------------------------------- LICENSE-Apache-2.0 | 202 +++++++++++++++++++++++++++++++++++++ README.md | 155 ++++++++++++++--------------- package.json | 2 +- 4 files changed, 322 insertions(+), 280 deletions(-) create mode 100644 LICENSE-Apache-2.0 diff --git a/LICENSE b/LICENSE index 1c939851..1b9535c9 100644 --- a/LICENSE +++ b/LICENSE @@ -1,202 +1,43 @@ +Licensed under the Open Software License version 3.0 - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright 2025 Stackable GmbH - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. +1) Grant of Copyright License. Licensor grants You a worldwide, royalty-free, non-exclusive, sublicensable license, for the duration of the copyright, to do the following: + +a) to reproduce the Original Work in copies, either alone or as part of a collective work; + +b) to translate, adapt, alter, transform, modify, or arrange the Original Work, thereby creating derivative works ("Derivative Works") based upon the Original Work; + +c) to distribute or communicate copies of the Original Work and Derivative Works to the public, with the proviso that copies of Original Work or Derivative Works that You distribute or communicate shall be licensed under this Open Software License; + +d) to perform the Original Work publicly; and + +e) to display the Original Work publicly. + +2) Grant of Patent License. Licensor grants You a worldwide, royalty-free, non-exclusive, sublicensable license, under patent claims owned or controlled by the Licensor that are embodied in the Original Work as furnished by the Licensor, for the duration of the patents, to make, use, sell, offer for sale, have made, and import the Original Work and Derivative Works. + +3) Grant of Source Code License. The term "Source Code" means the preferred form of the Original Work for making modifications to it and all available documentation describing how to modify the Original Work. Licensor agrees to provide a machine-readable copy of the Source Code of the Original Work along with each copy of the Original Work that Licensor distributes. Licensor reserves the right to satisfy this obligation by placing a machine-readable copy of the Source Code in an information repository reasonably calculated to permit inexpensive and convenient access by You for as long as Licensor continues to distribute the Original Work. + +4) Exclusions From License Grant. Neither the names of Licensor, nor the names of any contributors to the Original Work, nor any of their trademarks or service marks, may be used to endorse or promote products derived from this Original Work without express prior permission of the Licensor. Except as expressly stated herein, nothing in this License grants any license to Licensor's trademarks, copyrights, patents, trade secrets or any other intellectual property. No patent license is granted to make, use, sell, offer for sale, have made, or import embodiments of any patent claims other than the licensed claims defined in Section 2. No license is granted to the trademarks of Licensor even if such marks are included in the Original Work. Nothing in this License shall be interpreted to prohibit Licensor from licensing under terms different from this License any Original Work that Licensor otherwise would have a right to license. + +5) External Deployment. The term "External Deployment" means the use, distribution, or communication of the Original Work or Derivative Works in any way such that the Original Work or Derivative Works may be used by anyone other than You, whether those works are distributed or communicated to those persons or made available as an application intended for use over a network. As an express condition for the grants of license hereunder, You must treat any External Deployment by You of the Original Work or a Derivative Work as a distribution under section 1(c). + +6) Attribution Rights. You must retain, in the Source Code of any Derivative Works that You create, all copyright, patent, or trademark notices from the Source Code of the Original Work, as well as any notices of licensing and any descriptive text identified therein as an "Attribution Notice." You must cause the Source Code for any Derivative Works that You create to carry a prominent Attribution Notice reasonably calculated to inform recipients that You have modified the Original Work. + +7) Warranty of Provenance and Disclaimer of Warranty. Licensor warrants that the copyright in and to the Original Work and the patent rights granted herein by Licensor are owned by the Licensor or are sublicensed to You under the terms of this License with the permission of the contributor(s) of those copyrights and patent rights. Except as expressly stated in the immediately preceding sentence, the Original Work is provided under this License on an "AS IS" BASIS and WITHOUT WARRANTY, either express or implied, including, without limitation, the warranties of non-infringement, merchantability or fitness for a particular purpose. THE ENTIRE RISK AS TO THE QUALITY OF THE ORIGINAL WORK IS WITH YOU. This DISCLAIMER OF WARRANTY constitutes an essential part of this License. No license to the Original Work is granted by this License except under this disclaimer. + +8) Limitation of Liability. Under no circumstances and under no legal theory, whether in tort (including negligence), contract, or otherwise, shall the Licensor be liable to anyone for any indirect, special, incidental, or consequential damages of any character arising as a result of this License or the use of the Original Work including, without limitation, damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses. This limitation of liability shall not apply to the extent applicable law prohibits such limitation. + +9) Acceptance and Termination. If, at any time, You expressly assented to this License, that assent indicates your clear and irrevocable acceptance of this License and all of its terms and conditions. If You distribute or communicate copies of the Original Work or a Derivative Work, You must make a reasonable effort under the circumstances to obtain the express assent of recipients to the terms of this License. This License conditions your rights to undertake the activities listed in Section 1, including your right to create Derivative Works based upon the Original Work, and doing so without honoring these terms and conditions is prohibited by copyright law and international treaty. Nothing in this License is intended to affect copyright exceptions and limitations (including "fair use" or "fair dealing"). This License shall terminate immediately and You may no longer exercise any of the rights granted to You by this License upon your failure to honor the conditions in Section 1(c). + +10) Termination for Patent Action. This License shall terminate automatically and You may no longer exercise any of the rights granted to You by this License as of the date You commence an action, including a cross-claim or counterclaim, against Licensor or any licensee alleging that the Original Work infringes a patent. This termination provision shall not apply for an action alleging patent infringement by combinations of the Original Work with other software or hardware. + +11) Jurisdiction, Venue and Governing Law. Any action or suit relating to this License may be brought only in the courts of a jurisdiction wherein the Licensor resides or in which Licensor conducts its primary business, and under the laws of that jurisdiction excluding its conflict-of-law provisions. The application of the United Nations Convention on Contracts for the International Sale of Goods is expressly excluded. Any use of the Original Work outside the scope of this License or after its termination shall be subject to the requirements and penalties of copyright or patent law in the appropriate jurisdiction. This section shall survive the termination of this License. + +12) Attorneys' Fees. In any action to enforce the terms of this License or seeking damages relating thereto, the prevailing party shall be entitled to recover its costs and expenses, including, without limitation, reasonable attorneys' fees and costs incurred in connection with such action, including any appeal of such action. This section shall survive the termination of this License. + +13) Miscellaneous. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. + +14) Definition of "You" in This License. "You" throughout this License, whether in upper or lower case, means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License. For legal entities, "You" includes any entity that controls, is controlled by, or is under common control with you. For purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. + +15) Right to Use. You may use the Original Work in all ways not otherwise restricted or conditioned by this License or by law, and Licensor promises not to interfere with or be responsible for such uses by You. + +16) Modification of This License. This License is Copyright © 2005 Lawrence Rosen. Permission is granted to copy, distribute, or communicate this License without modification. Nothing in this License permits You to modify this License as applied to the Original Work or to Derivative Works. However, You may modify the text of this License and copy, distribute or communicate your modified version (the "Modified License") and apply it to other original works of authorship subject to the following conditions: (i) You may not indicate in any way that your Modified License is the "Open Software License" or "OSL" and you may not use those names in the name of your Modified License; (ii) You must replace the notice specified in the first paragraph above with the notice "Licensed under " or with a notice of your own that is not confusingly similar to the notice in this License; and (iii) You may not claim that your original works are open source software unless your Modified License has been approved by Open Source Initiative (OSI) and You comply with its license review and certification process. diff --git a/LICENSE-Apache-2.0 b/LICENSE-Apache-2.0 new file mode 100644 index 00000000..d6456956 --- /dev/null +++ b/LICENSE-Apache-2.0 @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/README.md b/README.md index 3a8ef45d..82bdb392 100644 --- a/README.md +++ b/README.md @@ -1,107 +1,85 @@ -# Stackable Unified Data Platform UI +# Stackable Cockpit -A SvelteKit application serving as the unified platform UI shell for Stackable's data infrastructure. +[![License OSL 3.0](https://img.shields.io/badge/license-OSL--3.0-blue)](./LICENSE) -## Current Status +Stackable Cockpit is the unified web UI for the [Stackable Data Platform (SDP)](https://stackable.tech/). +It provides a single place to work with the data services running on your platform. The first (and currently only) +module is a **Trino SQL query editor** with single sign-on, per-user authorisation and catalogue +browsing. +More modules will be added over time. -This repository currently contains an initial app shell only: +This is currently an experimental part of the Stackable Data Platform. -- Main layout with sidebar and header -- Theme toggle (light/dark) -- Dashboard placeholder content -- Baseline Playwright smoke tests +## About The Stackable Data Platform -Feature implementation for the Trino Query UI will follow the project plan. +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 Apache projects and provides Kubernetes operators to manage them, including: -## Tech Stack +- [Apache Airflow](https://github.com/stackabletech/airflow-operator) +- [Apache HBase](https://github.com/stackabletech/hbase-operator) +- [Apache Hadoop HDFS](https://github.com/stackabletech/hdfs-operator) +- [Apache Hive](https://github.com/stackabletech/hive-operator) +- [Apache Kafka](https://github.com/stackabletech/kafka-operator) +- [Apache NiFi](https://github.com/stackabletech/nifi-operator) +- [OpenSearch](https://github.com/stackabletech/opensearch-operator) +- [Apache Spark](https://github.com/stackabletech/spark-k8s-operator) +- [Apache Superset](https://github.com/stackabletech/superset-operator) +- [Trino](https://github.com/stackabletech/trino-operator) +- [Apache ZooKeeper](https://github.com/stackabletech/zookeeper-operator) -- **SvelteKit** with Svelte 5 (runes) -- **Tailwind CSS v4** + **DaisyUI** -- **TypeScript** -- **Playwright** for E2E tests +Read more about the platform in the [documentation](https://docs.stackable.tech/). ## Quick Start -### 1. Install Dependencies +The required Node.js version is pinned in [`.node-version`](./.node-version). ```bash +# Install dependencies npm install -``` - -### 2. Start Development Server -```bash +# Start the development server (http://localhost:5173) npm run dev ``` -The application will be available at . +Copy [`.env.example`](./.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`](./dev/setup.sh). ## Development -### Commands - ```bash -# Development -npm run dev # Start dev server (port 5173) - -# Building -npm run build # Build for production -npm run preview # Preview production build - -# Quality Checks -npm run format # Format all code -npm run check # Type checking -npm run lint # Linting - -# E2E Tests -npm run test:e2e # Run all tests +npm run dev # Start the dev server +npm run build # Build for production +npm run preview # Preview the production build -# ANTLR (after updating src/lib/editor/grammar/SqlBase.g4) -npm run generate:antlr # Regenerate TypeScript lexer/parser from grammar -``` - -## E2E Testing - -End-to-end tests use Playwright. - -### Running Tests +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 -```bash -npm run test:e2e +npm run generate:antlr # Regenerate the lexer/parser after editing the SQL grammar ``` -Playwright is configured to start the dev server automatically during test runs. - ## Deployment -### Kubernetes Deployment with Helm +### Helm -The application includes a Helm chart for deploying to Kubernetes. - -#### Quick Start +A Helm chart for Kubernetes is included under [`deploy/helm/cockpit`](./deploy/helm/cockpit): ```bash -# Install with default values -helm install cockpit ./deploy/helm/cockpit - -# Install with custom configuration -helm install cockpit ./deploy/helm/cockpit \ - -f your-values.yaml +helm install cockpit ./deploy/helm/cockpit -f your-values.yaml ``` -#### Documentation - -For detailed Helm chart documentation, see [deploy/helm/cockpit/README.md](./deploy/helm/cockpit/README.md). - -### Docker Deployment +See the [chart README](./deploy/helm/cockpit/README.md) for the full list of values. -Build and run the Docker image: +### Docker ```bash -# Build the image -docker build . -f docker/Dockerfile --build-arg TARGETARCH=x86 --build-arg VERSION=0.0.0-dev -t cockpit:0.0.0-dev +docker build . -f docker/Dockerfile \ + --build-arg TARGETARCH=x86 --build-arg VERSION=0.0.0-dev \ + -t cockpit:0.0.0-dev -# Run the container docker run -p 3000:3000 cockpit:0.0.0-dev ``` @@ -125,18 +103,39 @@ The application is configured via environment variables. Create a `.env` file at | `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` | +## Documentation + +- Platform documentation: +- Stackable website: + ## Contributing -1. Make your changes -2. Run quality checks: +Contributions are welcome! Please open an issue or pull request. Before submitting changes, run the +quality checks: + +```bash +npm run format +npm run check +npm run lint +npm run test:e2e +``` + +Contributions require agreeing to a Contributor License Agreement (CLA). When you open your first +pull request, the CLA assistant will guide you through signing it. + +## Support + +- [GitHub Discussions](https://github.com/orgs/stackabletech/discussions) +- [Discord](https://discord.gg/7kZ3BNnCAF) +- [Commercial support plans](https://stackable.tech/en/plans/) + +## Sponsor - ```bash - npm run format - npm run check - npm run lint - ``` +If you find this project useful, consider [sponsoring Stackable](https://github.com/sponsors/stackabletech). -3. Run E2E tests -4. Submit pull request +## License -For detailed development guidelines, see [CLAUDE.md](./CLAUDE.md). +Licensed under the [Open Software License version 3.0](./LICENSE). This project bundles the Trino +SQL grammar and code derived from it, which are licensed under the +[Apache License, Version 2.0](./LICENSE-Apache-2.0); the relevant source files carry upstream +attribution headers. diff --git a/package.json b/package.json index f9393ffe..93db2646 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "@stackable/stackable-cockpit", "private": true, "version": "0.0.1", - "license": "Apache-2.0", + "license": "OSL-3.0", "type": "module", "scripts": { "dev": "vite dev --host", From c8cf8cc6f77efa11d03f3563d26d320bba532d16 Mon Sep 17 00:00:00 2001 From: Lars Francke Date: Mon, 31 Aug 2026 11:25:33 +0200 Subject: [PATCH 2/3] more README improvements --- README.md | 48 +++++++++++++++++++++++++++--------------------- 1 file changed, 27 insertions(+), 21 deletions(-) diff --git a/README.md b/README.md index 82bdb392..1cdb4827 100644 --- a/README.md +++ b/README.md @@ -3,20 +3,18 @@ [![License OSL 3.0](https://img.shields.io/badge/license-OSL--3.0-blue)](./LICENSE) Stackable Cockpit is the unified web UI for the [Stackable Data Platform (SDP)](https://stackable.tech/). -It provides a single place to work with the data services running on your platform. The first (and currently only) -module is a **Trino SQL query editor** with single sign-on, per-user authorisation and catalogue -browsing. -More modules will be added over time. +It provides a single place to work with the data services running on your platform. -This is currently an experimental part of the Stackable Data Platform. +> [!WARNING] +> Stackable Cockpit is experimental. ## About The Stackable Data Platform -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 Apache projects and provides Kubernetes operators to manage them, including: +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](https://github.com/stackabletech/airflow-operator) +- [Apache Druid](https://github.com/stackabletech/druid-operator) - [Apache HBase](https://github.com/stackabletech/hbase-operator) - [Apache Hadoop HDFS](https://github.com/stackabletech/hdfs-operator) - [Apache Hive](https://github.com/stackabletech/hive-operator) @@ -28,7 +26,14 @@ open-source Apache projects and provides Kubernetes operators to manage them, in - [Trino](https://github.com/stackabletech/trino-operator) - [Apache ZooKeeper](https://github.com/stackabletech/zookeeper-operator) -Read more about the platform in the [documentation](https://docs.stackable.tech/). +Read more about the platform in the [documentation](https://docs.stackable.tech/) and on the [Stackable Hub](https://hub.stackable.tech/). + +## Features + +- 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. ## Quick Start @@ -42,9 +47,8 @@ npm install npm run dev ``` -Copy [`.env.example`](./.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`](./dev/setup.sh). +Copy [`.env.example`](./.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`](./dev/setup.sh). ## Development @@ -85,7 +89,8 @@ docker run -p 3000:3000 cockpit:0.0.0-dev ## Configuration -The application is configured via environment variables. Create a `.env` file at the project root (or set these in your deployment environment). +The application is configured via environment variables. +Create a `.env` file at the project root, or set them in your deployment environment. ### Feature Flags @@ -107,11 +112,13 @@ The application is configured via environment variables. Create a `.env` file at - Platform documentation: - Stackable website: +- Stackable Hub: ## Contributing -Contributions are welcome! Please open an issue or pull request. Before submitting changes, run the -quality checks: +Contributions are welcome! +Please open an issue or pull request. +Before submitting changes, run the quality checks: ```bash npm run format @@ -120,8 +127,8 @@ npm run lint npm run test:e2e ``` -Contributions require agreeing to a Contributor License Agreement (CLA). When you open your first -pull request, the CLA assistant will guide you through signing it. +Contributions require agreeing to a Contributor License Agreement (CLA). +When you open your first pull request, the CLA assistant will guide you through signing it. ## Support @@ -135,7 +142,6 @@ If you find this project useful, consider [sponsoring Stackable](https://github. ## License -Licensed under the [Open Software License version 3.0](./LICENSE). This project bundles the Trino -SQL grammar and code derived from it, which are licensed under the -[Apache License, Version 2.0](./LICENSE-Apache-2.0); the relevant source files carry upstream -attribution headers. +Licensed under the [Open Software License version 3.0](./LICENSE). +This project bundles the Trino SQL grammar and code derived from it, which are licensed under the [Apache License, Version 2.0](./LICENSE-Apache-2.0). +The relevant source files carry upstream attribution headers. From 5454b8f51197a49a5cffd3be521dcaa9d23c2ee9 Mon Sep 17 00:00:00 2001 From: Lars Francke Date: Fri, 4 Sep 2026 08:28:05 +0200 Subject: [PATCH 3/3] fix: update container licence label to OSL-3.0 and ship LICENSE-Apache-2.0 The image contains the ANTLR parser generated from Trino's Apache-2.0 SQL grammar, so its licence text is redistributed alongside the project licence in /licenses. --- docker/Dockerfile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index 534e789c..48da636d 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -120,6 +120,7 @@ COPY --from=prod-deps --chown=${STACKABLE_USER_UID}:0 /build/node_modules ./node COPY --from=prod-deps --chown=${STACKABLE_USER_UID}:0 /build/package.json ./ COPY --from=sbom --chown=${STACKABLE_USER_UID}:0 /build/cockpit.cdx.json ./cockpit.cdx.json COPY --chown=${STACKABLE_USER_UID}:0 LICENSE /licenses/LICENSE +COPY --chown=${STACKABLE_USER_UID}:0 LICENSE-Apache-2.0 /licenses/LICENSE-Apache-2.0 RUN chown -R ${STACKABLE_USER_UID}:0 /stackable && \ chmod -R g=u /stackable @@ -149,6 +150,6 @@ LABEL org.opencontainers.image.authors="info@stackable.tech" LABEL org.opencontainers.image.url="https://stackable.tech" LABEL org.opencontainers.image.source="https://github.com/stackabletech/cockpit/" LABEL org.opencontainers.image.vendor="Stackable GmbH" -LABEL org.opencontainers.image.licenses="Apache-2.0" +LABEL org.opencontainers.image.licenses="OSL-3.0" CMD ["node", "build/index.js"]