diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 2bce7b7248..afd22e6385 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -6,7 +6,7 @@ updates: # Note: We only monitor directories with actual dependencies declared. # /enterprise/web-frontend and /premium/web-frontend are excluded because # they currently have no dependencies in their package.json files. - # /integrations/zapier and /plugin-boilerplate are excluded intentionally. + # /integrations/zapier is excluded intentionally. - package-ecosystem: "npm" directory: "/web-frontend" diff --git a/.gitignore b/.gitignore index ecb13560ba..a904272551 100644 --- a/.gitignore +++ b/.gitignore @@ -136,6 +136,7 @@ out/ # Claude Code local settings .claude/settings.local.md +.claude/worktrees/ # Personal justfile recipes (not tracked) local.just @@ -154,8 +155,6 @@ junit.xml .env -!plugin-boilerplate/{{ cookiecutter.project_slug }}/.env - field-diagrams/ *.http @@ -166,4 +165,4 @@ field-diagrams/ web-frontend/.nuxt-storybook/ web-frontend/storybook-static -.agent \ No newline at end of file +.agent diff --git a/README.md b/README.md index f3c1c4d988..cbf63123cb 100644 --- a/README.md +++ b/README.md @@ -28,7 +28,7 @@ existing tools and performs at any scale. [![Deploy to Heroku](https://www.herokucdn.com/deploy/button.svg)](https://www.heroku.com/deploy/?template=https://github.com/baserow/baserow/tree/master) ```bash -docker run -v baserow_data:/baserow/data -p 80:80 -p 443:443 baserow/baserow:2.1.1 +docker run -v baserow_data:/baserow/data -p 80:80 -p 443:443 baserow/baserow:2.1.2 ``` ![Baserow database screenshot](docs/assets/screenshot.png "Baserow database screenshot") @@ -102,21 +102,13 @@ Unlike proprietary tools like Airtable, Baserow gives you **full data ownership* **infinite scalability**, and **no vendor lock-in** — all while keeping the simplicity of a spreadsheet interface. -## Plugin development - -Because of the modular architecture of Baserow it is possible to create plugins. Make -your own fields, views, applications, pages, or endpoints. We also have a plugin -boilerplate to get you started right away. More information can be found in the -[plugin introduction](./docs/plugins/introduction.md) and in the -[plugin boilerplate docs](./docs/plugins/boilerplate.md). - ## Meta Created by Baserow B.V. - bram@baserow.io. Distributes under the MIT license. See `LICENSE` for more information. -Version: 2.1.1 +Version: 2.1.2 The official repository can be found at https://github.com/baserow/baserow. diff --git a/backend/docker/docker-entrypoint.sh b/backend/docker/docker-entrypoint.sh index 735074ecbc..4bc75b8e52 100755 --- a/backend/docker/docker-entrypoint.sh +++ b/backend/docker/docker-entrypoint.sh @@ -6,7 +6,7 @@ set -euo pipefail # ENVIRONMENT VARIABLES USED DIRECTLY BY THIS ENTRYPOINT # ====================================================== -export BASEROW_VERSION="2.1.1" +export BASEROW_VERSION="2.1.2" # Used by docker-entrypoint.sh to start the dev server # If not configured you'll receive this: CommandError: "0.0.0.0:" is not a valid port number or address:port pair. diff --git a/backend/src/baserow/config/settings/base.py b/backend/src/baserow/config/settings/base.py index d504336b76..94aefc380d 100644 --- a/backend/src/baserow/config/settings/base.py +++ b/backend/src/baserow/config/settings/base.py @@ -453,7 +453,7 @@ "name": "MIT", "url": "https://github.com/baserow/baserow/blob/develop/LICENSE", }, - "VERSION": "2.1.1", + "VERSION": "2.1.2", "SERVE_INCLUDE_SCHEMA": False, "TAGS": [ {"name": "Settings"}, diff --git a/backend/src/baserow/version.py b/backend/src/baserow/version.py index 5b0431ec5f..b7775796d6 100644 --- a/backend/src/baserow/version.py +++ b/backend/src/baserow/version.py @@ -1 +1 @@ -VERSION = "2.1.1" +VERSION = "2.1.2" diff --git a/backend/uv.lock b/backend/uv.lock index 4ffd8d5223..a2acb7e032 100644 --- a/backend/uv.lock +++ b/backend/uv.lock @@ -459,12 +459,12 @@ dev = [ [[package]] name = "baserow-enterprise" -version = "2.1.1" +version = "2.1.2" source = { editable = "../enterprise/backend" } [[package]] name = "baserow-premium" -version = "2.1.1" +version = "2.1.2" source = { editable = "../premium/backend" } [[package]] diff --git a/changelog.md b/changelog.md index 3c91a2dd8d..3b1e6a0f1f 100644 --- a/changelog.md +++ b/changelog.md @@ -1,9 +1,23 @@ # Changelog +## Released 2.1.2 + +### Bug fixes +* [Builder] Resolved a bug which prevented user source users from being searched. [#4850](https://github.com/baserow/baserow/issues/4850) +* [Integration] Resolved a bug which prevented builder data source and workflow action filtering with formula values from working correctly. [#4860](https://github.com/baserow/baserow/issues/4860) +* [Builder] Resolved a bug which caused table and repeat element load more buttons to only load more after a second click. [#4862](https://github.com/baserow/baserow/issues/4862) +* [Builder] Resolved a caching issue when applications users had no role set. +* [Builder] Resolved a data input bug which prevented optional numeric inputs from being accepted. +* [Builder] Use error page in preview + +### Refactors +* [Core] Upgrade caddy to 2.11.1. + + ## Released 2.1.1 ### Bug fixes -* [Database] Fixed Importing rows with 'period, comma' separated Number fields doesn't import numbers correctly. [#4786](https://github.com/baserow/baserow/-/issues/4786) +* [Database] Fixed Importing rows with 'period, comma' separated Number fields doesn't import numbers correctly. [#4786](https://github.com/baserow/baserow/issues/4786) * [Builder] Set correct locale in application builder date picker. * [Core] Fixed deleting multiple rows with active filters and hidden filtered field. * [Core] Fixed prevent moving forward in scratch onboarding step validation bug. @@ -25,46 +39,46 @@ * [Core] List all application types in left sidebar, even if there are no items in there. ### Bug fixes -* [Database] Fixed FileSizeTooLargeError when importing Airtable database with files. [#3635](https://github.com/baserow/baserow/-/issues/3635) -* [Database] Fixed a bug preventing Collaborator field from being upserted by user ID. [#3954](https://github.com/baserow/baserow/-/issues/3954) -* [Integration] Fixed a bug where the collaborators field couldn't be updated via upsert actions. [#3954](https://github.com/baserow/baserow/-/issues/3954) -* [Database] Improve UX for search items that don't have anything to navigate to [#4182](https://github.com/baserow/baserow/-/issues/4182) -* [Core] Resolved a bug where unsubscribing from a Baserow page's realtime events wouldn't work correctly. [#4520](https://github.com/baserow/baserow/-/issues/4520) -* [Database] Do not show trashed rows in search results [#4525](https://github.com/baserow/baserow/-/issues/4525) -* [Database] Fix Generate all AI values doesn't work when the output field is Single Select and Generate only values for empty cells is checked [#4596](https://github.com/baserow/baserow/-/issues/4596) -* [Database] Fix importing a database with an AI field associated with an ai_auto_update_user [#4601](https://github.com/baserow/baserow/-/issues/4601) +* [Database] Fixed FileSizeTooLargeError when importing Airtable database with files. [#3635](https://github.com/baserow/baserow/issues/3635) +* [Database] Fixed a bug preventing Collaborator field from being upserted by user ID. [#3954](https://github.com/baserow/baserow/issues/3954) +* [Integration] Fixed a bug where the collaborators field couldn't be updated via upsert actions. [#3954](https://github.com/baserow/baserow/issues/3954) +* [Database] Improve UX for search items that don't have anything to navigate to [#4182](https://github.com/baserow/baserow/issues/4182) +* [Core] Resolved a bug where unsubscribing from a Baserow page's realtime events wouldn't work correctly. [#4520](https://github.com/baserow/baserow/issues/4520) +* [Database] Do not show trashed rows in search results [#4525](https://github.com/baserow/baserow/issues/4525) +* [Database] Fix Generate all AI values doesn't work when the output field is Single Select and Generate only values for empty cells is checked [#4596](https://github.com/baserow/baserow/issues/4596) +* [Database] Fix importing a database with an AI field associated with an ai_auto_update_user [#4601](https://github.com/baserow/baserow/issues/4601) * [Automation] Fixed a bug where a previously tested node's sample data would disappear in the UI after adding a new node. -* [Database] Fix AI field keyboard shortcuts [#4499](https://github.com/baserow/baserow/-/issues/4499) +* [Database] Fix AI field keyboard shortcuts [#4499](https://github.com/baserow/baserow/issues/4499) * [Core] Fixed Celery time limits to use the correct config names. * [Core] Improve docs search accuracy for the AI Assistant * [Integration] Improved error handling in the Local Baserow single table row action. * [Core] Improved the `token_auth` endpoint's response labels so that developers can differentiate between 2fa enabled and 2fa disabled responses. * [Database] Handle KeyError exception when generating formulas with AI. -* [Core] Fix missing front-end job types are not handled properly [#4544](https://github.com/baserow/baserow/-/issues/4544) -* [Database] Fix field mapping when importing CSV [#3259](https://github.com/baserow/baserow/-/issues/3259) +* [Core] Fix missing front-end job types are not handled properly [#4544](https://github.com/baserow/baserow/issues/4544) +* [Database] Fix field mapping when importing CSV [#3259](https://github.com/baserow/baserow/issues/3259) * [Core] Resolved a bug in the AI integration which prevented workspaces from being exported and then imported correctly. * [Core] Resolved a bug in the Baserow formula parser which prevented the OR operator (`||`) from being applied correctly. * [Builder] Resolved a validation bug in the data input element which considered '0' an invalid number. -* [Database] Fix Create row modal inside linked row field fails if the primary field is of type formula array [#4547](https://github.com/baserow/baserow/-/issues/4547) +* [Database] Fix Create row modal inside linked row field fails if the primary field is of type formula array [#4547](https://github.com/baserow/baserow/issues/4547) ### Refactors -* [Database] Debounce AI field value generation, that has been triggered from auto update. [#4317](https://github.com/baserow/baserow/-/issues/4317) -* [Automation] Improved workflow rate limiter performance by checking limits before queuing tasks. [#4582](https://github.com/baserow/baserow/-/issues/4582) +* [Database] Debounce AI field value generation, that has been triggered from auto update. [#4317](https://github.com/baserow/baserow/issues/4317) +* [Automation] Improved workflow rate limiter performance by checking limits before queuing tasks. [#4582](https://github.com/baserow/baserow/issues/4582) * [Core] Lazy import libraries to reduce initial memory footprint * [Core] refactor $children * [Core] Replace dev.sh and makefile with justfiles. Use uv to manage python in the backend. * [Core] Replace Python linting and formatting toolchain (autopep8, black, flake8, isort, bandit) with ruff -* [Core] Update from Nuxt 2 to Nuxt 3 [#854](https://github.com/baserow/baserow/-/issues/854) +* [Core] Update from Nuxt 2 to Nuxt 3 [#854](https://github.com/baserow/baserow/issues/854) ## Released 2.0.6 ### New features -* [Core] Added more advanced formulas. [#4318](https://github.com/baserow/baserow/-/issues/4318) -* [Core] Allow array properties to be selected in the formula context when expert mode is selected. [#4485](https://github.com/baserow/baserow/-/issues/4485) +* [Core] Added more advanced formulas. [#4318](https://github.com/baserow/baserow/issues/4318) +* [Core] Allow array properties to be selected in the formula context when expert mode is selected. [#4485](https://github.com/baserow/baserow/issues/4485) ### Bug fixes -* [Builder] Resolve an issue with styling button fields in table elements. [#4494](https://github.com/baserow/baserow/-/issues/4494) +* [Builder] Resolve an issue with styling button fields in table elements. [#4494](https://github.com/baserow/baserow/issues/4494) * [Database] Ensure m2m field indexes are all set. * [Database] Prevent creating a new constraint when the enter key of the default value is pressed. @@ -78,45 +92,45 @@ ## Released 2.0.4 ### New features -* [Core] Allow setting multiple BASEROW_PUBLIC_URL #2593 [#2593](https://github.com/baserow/baserow/-/issues/2593) +* [Core] Allow setting multiple BASEROW_PUBLIC_URL #2593 [#2593](https://github.com/baserow/baserow/issues/2593) * [Database] Allow to add missing fields to date dependency configuration [#4228](https://gitlab.com/baserow/baserow/-/issues/4228) * [Builder] Added a 'Create new data source' link at the bottom of iterate/table element dropdowns for quicker data source creation. * [Integration] Improved the Local Baserow action fields so that they inform users about what data type they expect to receive. ### Bug fixes * [Database] handle date overflow in postgresql -> python conversion [#3324](https://gitlab.com/baserow/baserow/-/issues/3324) -* [Database] Timeline view - fetch all rows again if a filter is disabled. [#4136](https://github.com/baserow/baserow/-/issues/4136) -* [Builder] Show a specific error when a page is being renamed to an existing page's name. [#4183](https://github.com/baserow/baserow/-/issues/4183) -* [Automation] Show a specific error when a workflow is being renamed to an existing workflow's name. [#4183](https://github.com/baserow/baserow/-/issues/4183) -* [Automation] Fixed a potential crash while deleting a workflow. [#4293](https://github.com/baserow/baserow/-/issues/4293) -* [Database] Handle exceptions like GenerativeAIPromptError in UI [#4350](https://github.com/baserow/baserow/-/issues/4350) -* [Core] Resolved a bug which prevented formula fields from working correctly with HTML content. [#4377](https://github.com/baserow/baserow/-/issues/4377) -* [Builder] Gracefully handle fetching data source services when the specific instance is missing. [#4389](https://github.com/baserow/baserow/-/issues/4389) -* [Builder] Fixed a bug where domain names were not correctly validated during domain creation. [#4399](https://github.com/baserow/baserow/-/issues/4399) -* [Core] Improved error handling when FormulaField value is not JSON serializable. [#4402](https://github.com/baserow/baserow/-/issues/4402) -* [Database] Do not fail hard when ArrayValueSerializer throws ConversionSyntax exception [#4424](https://github.com/baserow/baserow/-/issues/4424) -* [Database] Fix an issue where "Rows enter view" webhook shows stale rows when webhook is deleted and recreated [#4437](https://github.com/baserow/baserow/-/issues/4437) +* [Database] Timeline view - fetch all rows again if a filter is disabled. [#4136](https://github.com/baserow/baserow/issues/4136) +* [Builder] Show a specific error when a page is being renamed to an existing page's name. [#4183](https://github.com/baserow/baserow/issues/4183) +* [Automation] Show a specific error when a workflow is being renamed to an existing workflow's name. [#4183](https://github.com/baserow/baserow/issues/4183) +* [Automation] Fixed a potential crash while deleting a workflow. [#4293](https://github.com/baserow/baserow/issues/4293) +* [Database] Handle exceptions like GenerativeAIPromptError in UI [#4350](https://github.com/baserow/baserow/issues/4350) +* [Core] Resolved a bug which prevented formula fields from working correctly with HTML content. [#4377](https://github.com/baserow/baserow/issues/4377) +* [Builder] Gracefully handle fetching data source services when the specific instance is missing. [#4389](https://github.com/baserow/baserow/issues/4389) +* [Builder] Fixed a bug where domain names were not correctly validated during domain creation. [#4399](https://github.com/baserow/baserow/issues/4399) +* [Core] Improved error handling when FormulaField value is not JSON serializable. [#4402](https://github.com/baserow/baserow/issues/4402) +* [Database] Do not fail hard when ArrayValueSerializer throws ConversionSyntax exception [#4424](https://github.com/baserow/baserow/issues/4424) +* [Database] Fix an issue where "Rows enter view" webhook shows stale rows when webhook is deleted and recreated [#4437](https://github.com/baserow/baserow/issues/4437) * [Builder] Resolved a bug in element visibility which prevented form data from being used. * [Builder] Resolved a bug which prevented the table element fields from being styled. ### Refactors -* [Database] Optimize test suite by deferring heavy signals by default [#4373](https://github.com/baserow/baserow/-/issues/4373) +* [Database] Optimize test suite by deferring heavy signals by default [#4373](https://github.com/baserow/baserow/issues/4373) * [Integration] Improved one-way and two-way data sync support in Local Baserow actions. ## Released 2.0.3 ### New features -* [Core] Allow changing account email address. [#1420](https://github.com/baserow/baserow/-/issues/1420) +* [Core] Allow changing account email address. [#1420](https://github.com/baserow/baserow/issues/1420) * [Database] Paste values from a single row into many rows [#3194](https://gitlab.com/baserow/baserow/-/issues/3194) -* [Database] Run AI field generation in parallel [#4227](https://github.com/baserow/baserow/-/issues/4227) -* [Database] Show jobs for AI Field in modal [#4264](https://github.com/baserow/baserow/-/issues/4264) +* [Database] Run AI field generation in parallel [#4227](https://github.com/baserow/baserow/issues/4227) +* [Database] Show jobs for AI Field in modal [#4264](https://github.com/baserow/baserow/issues/4264) * [Core] Synchronizes the dev docs with the assistant knowledge base documents. ### Bug fixes -* [Database] Fix OpenAPI spec for generate_table_ai_field_value [#4339](https://github.com/baserow/baserow/-/issues/4339) +* [Database] Fix OpenAPI spec for generate_table_ai_field_value [#4339](https://github.com/baserow/baserow/issues/4339) * [Core] Change WebSocket connection closed error message. -* [Core] Fix backup_baserow management command by using correct pg3 dbname. [#4308](https://github.com/baserow/baserow/-/issues/4308) +* [Core] Fix backup_baserow management command by using correct pg3 dbname. [#4308](https://github.com/baserow/baserow/issues/4308) * [Builder] Fix bug in the Helm chart where the AI-assistant LLM model was always set. * [Database] Improve performance in the `database_pendingsearchvalueupdate` table with many entries. @@ -130,28 +144,28 @@ ## Released 2.0.2 ### New features -* [Integration] Allow the Local Baserow 'update row' service to update data synced tables with writable fields. [#3799](https://github.com/baserow/baserow/-/issues/3799) +* [Integration] Allow the Local Baserow 'update row' service to update data synced tables with writable fields. [#3799](https://github.com/baserow/baserow/issues/3799) ### Bug fixes -* [Database] Adjust image orientation based on exif data [#4247](https://github.com/baserow/baserow/-/issues/4247) -* [Automation] Fixed a bug where creating a workflow would cause a crash for another user viewing a different app. [#4293](https://github.com/baserow/baserow/-/issues/4293) -* [Automation] Allow to duplicate nodes inside container nodes [#4294](https://github.com/baserow/baserow/-/issues/4294) +* [Database] Adjust image orientation based on exif data [#4247](https://github.com/baserow/baserow/issues/4247) +* [Automation] Fixed a bug where creating a workflow would cause a crash for another user viewing a different app. [#4293](https://github.com/baserow/baserow/issues/4293) +* [Automation] Allow to duplicate nodes inside container nodes [#4294](https://github.com/baserow/baserow/issues/4294) * [Builder] Improve performances when editing a create/update workflow action with a lot of table fields * [Integration] Resolved BASEROW_INTEGRATIONS_PERIODIC_MINUTE_MIN env variable bug. ### Refactors * [Database] Make read/write DB routing consistent for http requests and background tasks [#3848](https://gitlab.com/baserow/baserow/-/issues/3848) -* [Builder] Fix missing form data after first render (SSR) [#4268](https://github.com/baserow/baserow/-/issues/4268) +* [Builder] Fix missing form data after first render (SSR) [#4268](https://github.com/baserow/baserow/issues/4268) * [Core] Improve formula editor ### Breaking API changes -* [Builder] Number field values returned by local baserow integrations are now actual numbers instead of string [#4219](https://github.com/baserow/baserow/-/issues/4219) +* [Builder] Number field values returned by local baserow integrations are now actual numbers instead of string [#4219](https://github.com/baserow/baserow/issues/4219) ## Released 2.0.1 ### Bug fixes -* [Core] Don't show the Assistant panel if the LLM_MODEL env variable is not configured [#4280](https://github.com/baserow/baserow/-/issues/4280) +* [Core] Don't show the Assistant panel if the LLM_MODEL env variable is not configured [#4280](https://github.com/baserow/baserow/issues/4280) * [Builder] Fix visibility condition not working if data property wasn't used in page * [Automation] Save data preparation for table that don't have trigger associated to it @@ -161,20 +175,20 @@ ### New features * [Builder] Element can be visually hidden on complex conditions [#2566](https://gitlab.com/baserow/baserow/-/issues/2566) * [Database] Regenerate all table/view AI field values at once [#2586](https://gitlab.com/baserow/baserow/-/issues/2586) -* [Builder] Support advanced formulas. Formulas can now use functions and operators. [#3258](https://github.com/baserow/baserow/-/issues/3258) +* [Builder] Support advanced formulas. Formulas can now use functions and operators. [#3258](https://github.com/baserow/baserow/issues/3258) * [Database] Multiple collaborators lookup fields filters [#3450](https://gitlab.com/baserow/baserow/-/issues/3450) * [Database] Duration lookup field type filters [#3471](https://gitlab.com/baserow/baserow/-/issues/3471) * [Database] Ability to find items anywhere in the workspace [#3732](https://gitlab.com/baserow/baserow/-/issues/3732) * [Database] Add filters support for AI field [#3801](https://gitlab.com/baserow/baserow/-/issues/3801) -* [Database] Workspace search [#3826](https://github.com/baserow/baserow/-/issues/3826) -* [Database] Date dependencies in table [#3829](https://github.com/baserow/baserow/-/issues/3829) +* [Database] Workspace search [#3826](https://github.com/baserow/baserow/issues/3826) +* [Database] Date dependencies in table [#3829](https://github.com/baserow/baserow/issues/3829) * [Database] AI field auto-update [#4115](https://gitlab.com/baserow/baserow/-/issues/4115) -* [Builder] Added the AI agent workflow action. [#4116](https://github.com/baserow/baserow/-/issues/4116) +* [Builder] Added the AI agent workflow action. [#4116](https://github.com/baserow/baserow/issues/4116) * [Database] Show primary field value in workspace search result for RowSearchType [#4181](https://gitlab.com/baserow/baserow/-/issues/4181) -* [Builder] Introduced the new 'Slack send message' workflow action. [#4237](https://github.com/baserow/baserow/-/issues/4237) +* [Builder] Introduced the new 'Slack send message' workflow action. [#4237](https://github.com/baserow/baserow/issues/4237) * [Core] Add TOTP 2fa support [#725](https://gitlab.com/baserow/baserow/-/issues/725) * [Core] Added GitHub actions feature branch pipeline. -* [Core] Introduced Kuma, an AI-powered assistant to help you manage your workspace. [#3676](https://github.com/baserow/baserow/-/issues/3676) +* [Core] Introduced Kuma, an AI-powered assistant to help you manage your workspace. [#3676](https://github.com/baserow/baserow/issues/3676) * [Core] Introduced the ability to sync the knowledge base based on an exportable file. * [Automation] Introducing automation builder; automate repetitive tasks and workflows. * [Database] Show workspace settings modal if clicked on deactivated AI field. @@ -191,16 +205,16 @@ * [Database] Fix CSV import throwing 'no fetchall attribute' error and respect primary field order [#4163](https://gitlab.com/baserow/baserow/-/issues/4163) * [Builder] Fix scope issue with form input and repeat elements [#4185](https://gitlab.com/baserow/baserow/-/issues/4185) * [Builder] Fix formula recursion error when the same data source is used twice in one formula of workflow action [#4195](https://gitlab.com/baserow/baserow/-/issues/4195) -* [Builder] Fix synchronised button loading state in tables [#4268](https://github.com/baserow/baserow/-/issues/4268) +* [Builder] Fix synchronised button loading state in tables [#4268](https://github.com/baserow/baserow/issues/4268) * [Builder] Fix broken menu element * [Builder] Fix collection element broken when they are in container * [Database] Fix bug where the form validation does not work if iOS recognizes a phone number in the field name. * [Builder] Fix workflow action configuration broken * [Database] Added a tooltip to indicate that indexing is not available for this field type. [#3810](https://gitlab.com/baserow/baserow/-/issues/3810) -* [Core] Allow setting custom base URL for OpenAI. [#4108](https://github.com/baserow/baserow/-/issues/4108) +* [Core] Allow setting custom base URL for OpenAI. [#4108](https://github.com/baserow/baserow/issues/4108) ### Refactors -* [Builder] Added support for Advanced Formulas. [#3258](https://github.com/baserow/baserow/-/issues/3258) +* [Builder] Added support for Advanced Formulas. [#3258](https://github.com/baserow/baserow/issues/3258) ### Breaking API changes * [Builder] Data source now return content with human property names instead of technical ones [#4135](https://gitlab.com/baserow/baserow/-/issues/4135) diff --git a/changelog/entries/unreleased/bug/4850_resolved_a_bug_which_prevented_user_source_users_from_being_.json b/changelog/entries/2.1.2/bug/4850_resolved_a_bug_which_prevented_user_source_users_from_being_.json similarity index 100% rename from changelog/entries/unreleased/bug/4850_resolved_a_bug_which_prevented_user_source_users_from_being_.json rename to changelog/entries/2.1.2/bug/4850_resolved_a_bug_which_prevented_user_source_users_from_being_.json diff --git a/changelog/entries/unreleased/bug/4860_resolved_a_bug_which_prevented_builder_data_source_and_workf.json b/changelog/entries/2.1.2/bug/4860_resolved_a_bug_which_prevented_builder_data_source_and_workf.json similarity index 100% rename from changelog/entries/unreleased/bug/4860_resolved_a_bug_which_prevented_builder_data_source_and_workf.json rename to changelog/entries/2.1.2/bug/4860_resolved_a_bug_which_prevented_builder_data_source_and_workf.json diff --git a/changelog/entries/unreleased/bug/4862_resolved_a_bug_which_caused_table_and_repeat_element_load_mo.json b/changelog/entries/2.1.2/bug/4862_resolved_a_bug_which_caused_table_and_repeat_element_load_mo.json similarity index 100% rename from changelog/entries/unreleased/bug/4862_resolved_a_bug_which_caused_table_and_repeat_element_load_mo.json rename to changelog/entries/2.1.2/bug/4862_resolved_a_bug_which_caused_table_and_repeat_element_load_mo.json diff --git a/changelog/entries/unreleased/bug/resolved_a_caching_issue_when_applications_users_had_no_role.json b/changelog/entries/2.1.2/bug/resolved_a_caching_issue_when_applications_users_had_no_role.json similarity index 100% rename from changelog/entries/unreleased/bug/resolved_a_caching_issue_when_applications_users_had_no_role.json rename to changelog/entries/2.1.2/bug/resolved_a_caching_issue_when_applications_users_had_no_role.json diff --git a/changelog/entries/unreleased/bug/resolved_a_data_input_bug_which_prevented_optional_numeric_i.json b/changelog/entries/2.1.2/bug/resolved_a_data_input_bug_which_prevented_optional_numeric_i.json similarity index 100% rename from changelog/entries/unreleased/bug/resolved_a_data_input_bug_which_prevented_optional_numeric_i.json rename to changelog/entries/2.1.2/bug/resolved_a_data_input_bug_which_prevented_optional_numeric_i.json diff --git a/changelog/entries/unreleased/bug/use_error_page_in_preview.json b/changelog/entries/2.1.2/bug/use_error_page_in_preview.json similarity index 100% rename from changelog/entries/unreleased/bug/use_error_page_in_preview.json rename to changelog/entries/2.1.2/bug/use_error_page_in_preview.json diff --git a/changelog/entries/2.1.2/refactor/upgrade_caddy_for_allinone_image_images.json b/changelog/entries/2.1.2/refactor/upgrade_caddy_for_allinone_image_images.json new file mode 100644 index 0000000000..1e7bee52cb --- /dev/null +++ b/changelog/entries/2.1.2/refactor/upgrade_caddy_for_allinone_image_images.json @@ -0,0 +1,9 @@ +{ + "type": "refactor", + "message": "Upgrade caddy to 2.11.1.", + "issue_origin": "github", + "issue_number": null, + "domain": "core", + "bullet_points": [], + "created_at": "2026-02-26" +} diff --git a/changelog/entries/unreleased/breaking_change/remove_plugin_boilerplate.json b/changelog/entries/unreleased/breaking_change/remove_plugin_boilerplate.json new file mode 100644 index 0000000000..7f6d2de67a --- /dev/null +++ b/changelog/entries/unreleased/breaking_change/remove_plugin_boilerplate.json @@ -0,0 +1,8 @@ +{ + "type": "breaking_change", + "message": "Remove outdated plugin boilerplate.", + "domain": "core", + "issue_number": null, + "bullet_points": [], + "created_at": "2026-12-26" +} diff --git a/changelog/releases.json b/changelog/releases.json index 9ca0a8523d..52cc1741ac 100644 --- a/changelog/releases.json +++ b/changelog/releases.json @@ -1,5 +1,9 @@ { "releases": [ + { + "name": "2.1.2", + "created_at": "2026-02-26" + }, { "name": "2.1.1", "created_at": "2026-02-23" diff --git a/deploy/all-in-one/Dockerfile b/deploy/all-in-one/Dockerfile index d7bce0096a..3f35a6580d 100644 --- a/deploy/all-in-one/Dockerfile +++ b/deploy/all-in-one/Dockerfile @@ -3,7 +3,7 @@ ARG GID="9999" ARG BACKEND_IMAGE=baserow/backend ARG WEBFRONTEND_IMAGE=baserow/web-frontend -ARG CADDY_VERSION=2.10.2 +ARG CADDY_VERSION=2.11.1 # hadolint ignore=DL3006 FROM ${BACKEND_IMAGE} AS backend_image # hadolint ignore=DL3006 diff --git a/deploy/all-in-one/README.md b/deploy/all-in-one/README.md index f42b63fc4c..55d11e0c27 100644 --- a/deploy/all-in-one/README.md +++ b/deploy/all-in-one/README.md @@ -15,7 +15,7 @@ tool gives you the powers of a developer without leaving your browser. [Vue.js](https://vuejs.org/) and [PostgreSQL](https://www.postgresql.org/). ```bash -docker run -v baserow_data:/baserow/data -p 80:80 -p 443:443 baserow/baserow:2.1.1 +docker run -v baserow_data:/baserow/data -p 80:80 -p 443:443 baserow/baserow:2.1.2 ``` ## Quick Reference @@ -52,7 +52,7 @@ docker run \ -p 80:80 \ -p 443:443 \ --restart unless-stopped \ - baserow/baserow:2.1.1 + baserow/baserow:2.1.2 ``` * Change `BASEROW_PUBLIC_URL` to `https://YOUR_DOMAIN` or `http://YOUR_IP` to enable @@ -75,7 +75,7 @@ docker run \ ## Image Feature Overview -The `baserow/baserow:2.1.1` image by default runs all of Baserow's various services in +The `baserow/baserow:2.1.2` image by default runs all of Baserow's various services in a single container for maximum ease of use. > This image is designed for simple single server deployments or simple container @@ -223,7 +223,7 @@ docker run \ -p 80:80 \ -p 443:443 \ --restart unless-stopped \ - baserow/baserow:2.1.1 + baserow/baserow:2.1.2 ``` ### Behind a reverse proxy already handling ssl @@ -236,7 +236,7 @@ docker run \ -v baserow_data:/baserow/data \ -p 80:80 \ --restart unless-stopped \ - baserow/baserow:2.1.1 + baserow/baserow:2.1.2 ``` ### On a nonstandard HTTP port @@ -249,7 +249,7 @@ docker run \ -v baserow_data:/baserow/data \ -p 3001:80 \ --restart unless-stopped \ - baserow/baserow:2.1.1 + baserow/baserow:2.1.2 ``` ### With an external PostgresSQL server @@ -268,7 +268,7 @@ docker run \ -p 80:80 \ -p 443:443 \ --restart unless-stopped \ - baserow/baserow:2.1.1 + baserow/baserow:2.1.2 ``` ### With an external Redis server @@ -287,7 +287,7 @@ docker run \ -p 80:80 \ -p 443:443 \ --restart unless-stopped \ - baserow/baserow:2.1.1 + baserow/baserow:2.1.2 ``` ### With an external email server @@ -307,7 +307,7 @@ docker run \ -p 80:80 \ -p 443:443 \ --restart unless-stopped \ - baserow/baserow:2.1.1 + baserow/baserow:2.1.2 ``` ### With a Postgresql server running on the same host as the Baserow docker container @@ -345,7 +345,7 @@ docker run \ -v baserow_data:/baserow/data \ -p 80:80 \ -p 443:443 \ - baserow/baserow:2.1.1 + baserow/baserow:2.1.2 ``` ### Supply secrets using files @@ -372,7 +372,7 @@ docker run \ -v baserow_data:/baserow/data \ -p 80:80 \ -p 443:443 \ - baserow/baserow:2.1.1 + baserow/baserow:2.1.2 ``` ### Start just the embedded database @@ -385,7 +385,7 @@ docker run -it \ --name baserow \ -p 5432:5432 \ -v baserow_data:/baserow/data \ - baserow/baserow:2.1.1 \ + baserow/baserow:2.1.2 \ start-only-db # Now get the password from docker exec -it baserow cat /baserow/data/.pgpass @@ -417,7 +417,7 @@ docker run -it \ --rm \ --name baserow \ -v baserow_data:/baserow/data \ - baserow/baserow:2.1.1 \ + baserow/baserow:2.1.2 \ backend-cmd-with-db manage dbshell ``` @@ -540,19 +540,19 @@ the command below. ```bash # First read the help message for this command -docker run -it --rm -v baserow_data:/baserow/data baserow/baserow:2.1.1 \ +docker run -it --rm -v baserow_data:/baserow/data baserow/baserow:2.1.2 \ backend-cmd-with-db backup --help # Stop Baserow instance docker stop baserow # The command below backs up Baserow to the backups folder in the baserow_data volume: -docker run -it --rm -v baserow_data:/baserow/data baserow/baserow:2.1.1 \ +docker run -it --rm -v baserow_data:/baserow/data baserow/baserow:2.1.2 \ backend-cmd-with-db backup -f /baserow/data/backups/backup.tar.gz # Or backup to a file on your host instead run something like: docker run -it --rm -v baserow_data:/baserow/data -v $PWD:/baserow/host \ - baserow/baserow:2.1.1 backend-cmd-with-db backup -f /baserow/host/backup.tar.gz + baserow/baserow:2.1.2 backend-cmd-with-db backup -f /baserow/host/backup.tar.gz ``` ### Restore only Baserow's Postgres Database @@ -568,13 +568,13 @@ docker stop baserow docker run -it --rm \ -v old_baserow_data_volume_containing_the_backup_tar_gz:/baserow/old_data \ -v new_baserow_data_volume_to_restore_into:/baserow/data \ - baserow/baserow:2.1.1 backend-cmd-with-db restore -f /baserow/old_data/backup.tar.gz + baserow/baserow:2.1.2 backend-cmd-with-db restore -f /baserow/old_data/backup.tar.gz # Or to restore from a file on your host instead run something like: docker run -it --rm \ -v baserow_data:/baserow/data -v \ $(pwd):/baserow/host \ - baserow/baserow:2.1.1 backend-cmd-with-db restore -f /baserow/host/backup.tar.gz + baserow/baserow:2.1.2 backend-cmd-with-db restore -f /baserow/host/backup.tar.gz ``` ## Running healthchecks on Baserow @@ -625,7 +625,7 @@ docker run \ -p 80:80 \ -p 443:443 \ --restart unless-stopped \ - baserow/baserow:2.1.1 + baserow/baserow:2.1.2 ``` Or you can just store it directly in the volume at `baserow_data/env` meaning it will be @@ -634,7 +634,7 @@ loaded whenever you mount in this data volume. ### Building your own image from Baserow ```dockerfile -FROM baserow/baserow:2.1.1 +FROM baserow/baserow:2.1.2 # Any .sh files found in /baserow/supervisor/env/ will be sourced and loaded at startup # useful for storing your own environment variable overrides. diff --git a/deploy/all-in-one/supervisor/start.sh b/deploy/all-in-one/supervisor/start.sh index ec6fbf8766..54309d17ec 100755 --- a/deploy/all-in-one/supervisor/start.sh +++ b/deploy/all-in-one/supervisor/start.sh @@ -14,7 +14,7 @@ cat << EOF ██████╔╝██║ ██║███████║███████╗██║ ██║╚██████╔╝╚███╔███╔╝ ╚═════╝ ╚═╝ ╚═╝╚══════╝╚══════╝╚═╝ ╚═╝ ╚═════╝ ╚══╝╚══╝ -Version 2.1.1 +Version 2.1.2 ========================================================================================= EOF diff --git a/deploy/cloudron/CloudronManifest.json b/deploy/cloudron/CloudronManifest.json index 093ef959b2..a4c1304472 100644 --- a/deploy/cloudron/CloudronManifest.json +++ b/deploy/cloudron/CloudronManifest.json @@ -8,7 +8,7 @@ "contactEmail": "bram@baserow.io", "icon": "file://logo.png", "tags": ["no-code", "nocode", "database", "data", "collaborate", "airtable"], - "version": "2.1.1", + "version": "2.1.2", "healthCheckPath": "/api/_health/", "httpPort": 80, "addons": { diff --git a/deploy/cloudron/Dockerfile b/deploy/cloudron/Dockerfile index 5a6a96d7d2..1d9a24d94f 100644 --- a/deploy/cloudron/Dockerfile +++ b/deploy/cloudron/Dockerfile @@ -1,4 +1,4 @@ -ARG FROM_IMAGE=baserow/baserow:2.1.1 +ARG FROM_IMAGE=baserow/baserow:2.1.2 # This is pinned as version pinning is done by the CI setting FROM_IMAGE. # hadolint ignore=DL3006 FROM $FROM_IMAGE AS image_base diff --git a/deploy/helm/baserow/Chart.lock b/deploy/helm/baserow/Chart.lock index 5edfe4cd71..ceb2596ac2 100644 --- a/deploy/helm/baserow/Chart.lock +++ b/deploy/helm/baserow/Chart.lock @@ -1,28 +1,28 @@ dependencies: - name: baserow repository: file://charts/baserow-common - version: 1.0.44 + version: 1.0.45 - name: baserow repository: file://charts/baserow-common - version: 1.0.44 + version: 1.0.45 - name: baserow repository: file://charts/baserow-common - version: 1.0.44 + version: 1.0.45 - name: baserow repository: file://charts/baserow-common - version: 1.0.44 + version: 1.0.45 - name: baserow repository: file://charts/baserow-common - version: 1.0.44 + version: 1.0.45 - name: baserow repository: file://charts/baserow-common - version: 1.0.44 + version: 1.0.45 - name: baserow repository: file://charts/baserow-common - version: 1.0.44 + version: 1.0.45 - name: baserow repository: file://charts/baserow-common - version: 1.0.44 + version: 1.0.45 - name: redis repository: https://charts.bitnami.com/bitnami version: 19.5.5 @@ -35,5 +35,5 @@ dependencies: - name: caddy-ingress-controller repository: https://caddyserver.github.io/ingress version: 1.1.0 -digest: sha256:759ee7506b5e3b2c8744ec70a1a97fabb2716f2ec8285c74485b15c4da2946fa -generated: "2026-02-23T15:20:22.686525+01:00" +digest: sha256:be192c8fe0e48e4fb7605049827163a8186f573701956cbd7878786547d96119 +generated: "2026-02-26T19:17:35.348145+01:00" diff --git a/deploy/helm/baserow/Chart.yaml b/deploy/helm/baserow/Chart.yaml index 5e19763a01..c469f55f50 100644 --- a/deploy/helm/baserow/Chart.yaml +++ b/deploy/helm/baserow/Chart.yaml @@ -2,8 +2,8 @@ apiVersion: v2 name: baserow description: The open platform to create scalable databases and applications—without coding. type: application -version: 1.0.44 -appVersion: "2.1.1" +version: 1.0.45 +appVersion: "2.1.2" home: https://github.com/baserow/baserow/blob/develop/deploy/helm/baserow?ref_type=heads icon: https://baserow.io/img/favicon_192.png sources: @@ -13,43 +13,43 @@ sources: dependencies: - name: baserow alias: baserow-backend-asgi - version: "1.0.44" + version: "1.0.45" repository: "file://charts/baserow-common" - name: baserow alias: baserow-backend-wsgi - version: "1.0.44" + version: "1.0.45" repository: "file://charts/baserow-common" - name: baserow alias: baserow-frontend - version: "1.0.44" + version: "1.0.45" repository: "file://charts/baserow-common" - name: baserow alias: baserow-celery-beat-worker - version: "1.0.44" + version: "1.0.45" repository: "file://charts/baserow-common" - name: baserow alias: baserow-celery-export-worker - version: "1.0.44" + version: "1.0.45" repository: "file://charts/baserow-common" - name: baserow alias: baserow-celery-worker - version: "1.0.44" + version: "1.0.45" repository: "file://charts/baserow-common" - name: baserow alias: baserow-celery-flower - version: "1.0.44" + version: "1.0.45" repository: "file://charts/baserow-common" condition: baserow-celery-flower.enabled - name: baserow alias: baserow-embeddings - version: "1.0.44" + version: "1.0.45" repository: "file://charts/baserow-common" condition: baserow-embeddings.enabled diff --git a/deploy/helm/baserow/README.md b/deploy/helm/baserow/README.md index c3e95a7c1f..b8a265ff4f 100644 --- a/deploy/helm/baserow/README.md +++ b/deploy/helm/baserow/README.md @@ -232,7 +232,7 @@ caddy: | ------------------------------------------------------------------ | --------------------------------------------------------------------------------------- | ----------------------- | | `global.baserow.imageRegistry` | Global Docker image registry | `baserow` | | `global.baserow.imagePullSecrets` | Global Docker registry secret names as an array | `[]` | -| `global.baserow.image.tag` | Global Docker image tag | `2.1.1` | +| `global.baserow.image.tag` | Global Docker image tag | `2.1.2` | | `global.baserow.serviceAccount.shared` | Set to true to share the service account between all application components. | `true` | | `global.baserow.serviceAccount.create` | Set to true to create a service account to share between all application components. | `true` | | `global.baserow.serviceAccount.name` | Configure a name for service account to share between all application components. | `baserow` | diff --git a/deploy/helm/baserow/charts/baserow-common/Chart.yaml b/deploy/helm/baserow/charts/baserow-common/Chart.yaml index 79cb3b1f83..938be206a0 100644 --- a/deploy/helm/baserow/charts/baserow-common/Chart.yaml +++ b/deploy/helm/baserow/charts/baserow-common/Chart.yaml @@ -15,10 +15,10 @@ type: application # This is the chart version. This version number should be incremented each time you make changes # to the chart and its templates, including the app version. # Versions are expected to follow Semantic Versioning (https://semver.org/) -version: 1.0.44 +version: 1.0.45 # This is the version number of the application being deployed. This version number should be # incremented each time you make changes to the application. Versions are not expected to # follow Semantic Versioning. They should reflect the version the application is using. # It is recommended to use it with quotes. -appVersion: "2.1.1" +appVersion: "2.1.2" diff --git a/deploy/helm/baserow/charts/baserow-common/README.md b/deploy/helm/baserow/charts/baserow-common/README.md index 9a2f072e3d..02cc05562d 100644 --- a/deploy/helm/baserow/charts/baserow-common/README.md +++ b/deploy/helm/baserow/charts/baserow-common/README.md @@ -6,7 +6,7 @@ | ------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | | `global.baserow.imageRegistry` | Global Docker image registry | `baserow` | | `global.baserow.imagePullSecrets` | Global Docker registry secret names as an array | `[]` | -| `global.baserow.image.tag` | Global Docker image tag | `2.1.1` | +| `global.baserow.image.tag` | Global Docker image tag | `2.1.2` | | `global.baserow.serviceAccount.shared` | Set to true to share the service account between all application components. | `true` | | `global.baserow.serviceAccount.create` | Set to true to create a service account to share between all application components. | `true` | | `global.baserow.serviceAccount.name` | Configure a name for service account to share between all application components. | `baserow` | diff --git a/deploy/helm/baserow/charts/baserow-common/values.yaml b/deploy/helm/baserow/charts/baserow-common/values.yaml index 5afc0ed02a..7fef48c184 100644 --- a/deploy/helm/baserow/charts/baserow-common/values.yaml +++ b/deploy/helm/baserow/charts/baserow-common/values.yaml @@ -38,7 +38,7 @@ global: baserow: imageRegistry: baserow image: - tag: 2.1.1 + tag: 2.1.2 imagePullSecrets: [] serviceAccount: shared: true @@ -83,7 +83,7 @@ global: ## image: repository: baserow/baserow # Docker image repository - tag: 2.1.1 # Docker image tag + tag: 2.1.2 # Docker image tag pullPolicy: IfNotPresent # Image pull policy ## @param workingDir Application container working directory diff --git a/deploy/helm/baserow/values.yaml b/deploy/helm/baserow/values.yaml index 29e17c5f7f..f274c40ed1 100644 --- a/deploy/helm/baserow/values.yaml +++ b/deploy/helm/baserow/values.yaml @@ -43,7 +43,7 @@ global: baserow: imageRegistry: baserow image: - tag: 2.1.1 + tag: 2.1.2 imagePullSecrets: [] serviceAccount: shared: true diff --git a/deploy/heroku/README.md b/deploy/heroku/README.md index 7b674c37b2..cd685c8416 100644 --- a/deploy/heroku/README.md +++ b/deploy/heroku/README.md @@ -1,9 +1,6 @@ ## Testing -Our Heroku image builds directly from our all-in-one image in Dockerhub. If you want -to customize your Baserow Heroku install we recommend you make a Baserow plugin using -the boilerplate guide in our docs. Then to install it change heroku.Dockerfile and -add the install_plugin command as described in the plugins introduction doc. +Our Heroku image builds directly from our all-in-one image in Dockerhub. In order to test your changes, you need to have the Heroku command line installed on your local machine. Next, you can use the Heroku command line to create an app, diff --git a/deploy/render/Dockerfile b/deploy/render/Dockerfile index 87ef8e7140..f255ce05af 100644 --- a/deploy/render/Dockerfile +++ b/deploy/render/Dockerfile @@ -1,4 +1,4 @@ -ARG FROM_IMAGE=baserow/baserow:2.1.1 +ARG FROM_IMAGE=baserow/baserow:2.1.2 # This is pinned as version pinning is done by the CI setting FROM_IMAGE. # hadolint ignore=DL3006 FROM $FROM_IMAGE AS image_base diff --git a/docker-compose.all-in-one.yml b/docker-compose.all-in-one.yml index 9150f12ee6..fdec405dd0 100644 --- a/docker-compose.all-in-one.yml +++ b/docker-compose.all-in-one.yml @@ -3,7 +3,7 @@ services: baserow: container_name: baserow - image: baserow/baserow:${BASEROW_VERSION:-2.1.1} + image: baserow/baserow:${BASEROW_VERSION:-2.1.2} environment: BASEROW_PUBLIC_URL: 'http://localhost' ports: diff --git a/docker-compose.no-caddy.yml b/docker-compose.no-caddy.yml index 0355833043..76df152bf0 100644 --- a/docker-compose.no-caddy.yml +++ b/docker-compose.no-caddy.yml @@ -191,7 +191,7 @@ x-backend-variables: services: backend: - image: baserow/backend:2.1.1 + image: baserow/backend:2.1.2 restart: unless-stopped ports: - "${HOST_PUBLISH_IP:-127.0.0.1}:8000:8000" @@ -206,7 +206,7 @@ services: local: web-frontend: - image: baserow/web-frontend:2.1.1 + image: baserow/web-frontend:2.1.2 restart: unless-stopped ports: - "${HOST_PUBLISH_IP:-127.0.0.1}:3000:3000" @@ -249,7 +249,7 @@ services: local: celery: - image: baserow/backend:2.1.1 + image: baserow/backend:2.1.2 restart: unless-stopped environment: <<: *backend-variables @@ -270,7 +270,7 @@ services: local: celery-export-worker: - image: baserow/backend:2.1.1 + image: baserow/backend:2.1.2 restart: unless-stopped command: celery-exportworker environment: @@ -291,7 +291,7 @@ services: local: celery-beat-worker: - image: baserow/backend:2.1.1 + image: baserow/backend:2.1.2 restart: unless-stopped command: celery-beat environment: diff --git a/docker-compose.yml b/docker-compose.yml index fd1b98ecc7..50b50b163d 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -247,7 +247,7 @@ services: # requests to either the backend or web-frontend and also serving user uploaded files # from the media volume. caddy: - image: caddy:2.10.2 + image: caddy:2.11.1 restart: unless-stopped environment: # Controls what port the Caddy server binds to inside its container. @@ -267,7 +267,7 @@ services: local: backend: - image: baserow/backend:${BASEROW_VERSION:-2.1.1} + image: baserow/backend:${BASEROW_VERSION:-2.1.2} restart: unless-stopped environment: @@ -281,7 +281,7 @@ services: local: web-frontend: - image: baserow/web-frontend:${BASEROW_VERSION:-2.1.1} + image: baserow/web-frontend:${BASEROW_VERSION:-2.1.2} restart: unless-stopped environment: BASEROW_PUBLIC_URL: ${BASEROW_PUBLIC_URL-http://localhost} @@ -329,7 +329,7 @@ services: local: celery: - image: baserow/backend:${BASEROW_VERSION:-2.1.1} + image: baserow/backend:${BASEROW_VERSION:-2.1.2} restart: unless-stopped environment: <<: *backend-variables @@ -351,7 +351,7 @@ services: local: celery-export-worker: - image: baserow/backend:${BASEROW_VERSION:-2.1.1} + image: baserow/backend:${BASEROW_VERSION:-2.1.2} restart: unless-stopped command: celery-exportworker environment: @@ -373,7 +373,7 @@ services: local: celery-beat-worker: - image: baserow/backend:${BASEROW_VERSION:-2.1.1} + image: baserow/backend:${BASEROW_VERSION:-2.1.2} restart: unless-stopped command: celery-beat healthcheck: diff --git a/docs/development/directory-structure.md b/docs/development/directory-structure.md index 9d02ec952a..6af8b60ccd 100644 --- a/docs/development/directory-structure.md +++ b/docs/development/directory-structure.md @@ -117,11 +117,6 @@ The docs folder contains markdown files with the full developer documentation of Baserow. The contents of these files are automatically placed on https://baserow.io/docs. -## plugin-boilerplate - -Contains a cookiecutter boilerplate for a Baserow plugin. More information can be found -on the [plugin boilerplate page](../plugins/boilerplate.md). - ## media Contains a nginx based docker image which is used in Baserow's docker setup to serve diff --git a/docs/index.md b/docs/index.md index d2afe69a69..4553c878af 100644 --- a/docs/index.md +++ b/docs/index.md @@ -123,8 +123,8 @@ Everything related to contributing and developing for Baserow. Everything related to custom plugin development. * [Plugin basics](./plugins/introduction.md): An introduction into Baserow plugins. -* [Plugin boilerplate](./plugins/boilerplate.md): Don't reinvent the wheel, use the - boilerplate for quick plugin development. +* [Plugin boilerplate](./plugins/boilerplate.md) **Outdated**: Don't reinvent the + wheel, use the boilerplate for quick plugin development. * [Create application](./plugins/application-type.md): Want to create an application type? Learn how to do that here. * [Create database table view](./plugins/view-type.md): Display table data like a diff --git a/docs/installation/install-behind-apache.md b/docs/installation/install-behind-apache.md index 1781ccb8ce..15d224f164 100644 --- a/docs/installation/install-behind-apache.md +++ b/docs/installation/install-behind-apache.md @@ -3,7 +3,7 @@ If you have an [Apache server](https://www.apache.com/) this guide will explain how to configure it to pass requests through to Baserow. -We strongly recommend you use our `baserow/baserow:2.1.1` image or the example +We strongly recommend you use our `baserow/baserow:2.1.2` image or the example `docker-compose.yml` files (excluding the `.no-caddy.yml` variant) provided in our [git repository](https://github.com/baserow/baserow/tree/master/deploy/apache/). @@ -18,8 +18,8 @@ simplifies your life by: > If you do not want to use our embedded Caddy service behind your Apache then > make sure you are using one of the two following deployment methods: > -> * Your own container setup with our single service `baserow/backend:2.1.1` - and `baserow/web-frontend:2.1.1` images. +> * Your own container setup with our single service `baserow/backend:2.1.2` + and `baserow/web-frontend:2.1.2` images. > * Or our `docker-compose.no-caddy.yml` example file in our [git repository](https://github.com/baserow/baserow/tree/master/deploy/apache/). > > Then you should use **Option 2: Without our embedded Caddy** section instead. @@ -32,7 +32,7 @@ simplifies your life by: Follow this option if you are using: -* The all-in-one Baserow image `baserow/baserow:2.1.1` +* The all-in-one Baserow image `baserow/baserow:2.1.2` * Any of the example compose files found in the root of our git repository `docker-compose.yml`/`docker-compose.all-in-one.yml` @@ -115,7 +115,7 @@ You should now be able to access Baserow on you configured subdomain. Follow this option if you are using: -* Our standalone `baserow/backend:2.1.1` and `baserow/web-frontend:2.1.1` images with +* Our standalone `baserow/backend:2.1.2` and `baserow/web-frontend:2.1.2` images with your own container orchestrator. * Or the `docker-compose.no-caddy.yml` example docker compose file in the root of our git repository. @@ -147,7 +147,7 @@ sudo systemctl restart apache2 You need to ensure user uploaded files are accessible in a folder for Apache to serve. In the rest of the guide we will use the example `/var/web` folder for this purpose. -If you are using the `baserow/backend:2.1.1` image then you can do this by adding +If you are using the `baserow/backend:2.1.2` image then you can do this by adding `-v /var/web:/baserow/data/media` to your normal `docker run` command used to launch the Baserow backend. diff --git a/docs/installation/install-behind-nginx.md b/docs/installation/install-behind-nginx.md index 1521fe578b..df4864f3b6 100644 --- a/docs/installation/install-behind-nginx.md +++ b/docs/installation/install-behind-nginx.md @@ -3,7 +3,7 @@ If you have an [Nginx server](https://www.nginx.com/) this guide will explain how to configure it to pass requests through to Baserow. -We strongly recommend you use our `baserow/baserow:2.1.1` image or the example +We strongly recommend you use our `baserow/baserow:2.1.2` image or the example `docker-compose.yml` files (excluding the `.no-caddy.yml` variant) provided in our [git repository](https://github.com/baserow/baserow/tree/master/deploy/nginx/). @@ -18,8 +18,8 @@ simplifies your life by: > If you do not want to use our embedded Caddy service behind your Nginx then > make sure you are using one of the two following deployment methods: > -> * Your own container setup with our single service `baserow/backend:2.1.1` - and `baserow/web-frontend:2.1.1` images. +> * Your own container setup with our single service `baserow/backend:2.1.2` + and `baserow/web-frontend:2.1.2` images. > * Or our `docker-compose.no-caddy.yml` example file in our [git repository](https://github.com/baserow/baserow/tree/master/deploy/nginx/). > > Then you should use **Option 2: Without our embedded Caddy** section instead. @@ -32,7 +32,7 @@ simplifies your life by: Follow this option if you are using: -* The all-in-one Baserow image `baserow/baserow:2.1.1` +* The all-in-one Baserow image `baserow/baserow:2.1.2` * Any of the example compose files found in the root of our git repository `docker-compose.yml`/`docker-compose.all-in-one.yml` @@ -107,7 +107,7 @@ You should now be able to access Baserow on you configured subdomain. Follow this option if you are using: -* Our standalone `baserow/backend:2.1.1` and `baserow/web-frontend:2.1.1` images with +* Our standalone `baserow/backend:2.1.2` and `baserow/web-frontend:2.1.2` images with your own container orchestrator. * Or the `docker-compose.no-caddy.yml` example docker compose file in the root of our git repository. @@ -126,7 +126,7 @@ but you might have to run different commands. You need to ensure user uploaded files are accessible in a folder for Nginx to serve. In the rest of the guide we will use the example `/var/web` folder for this purpose. -If you are using the `baserow/backend:2.1.1` image then you can do this by adding +If you are using the `baserow/backend:2.1.2` image then you can do this by adding `-v /var/web:/baserow/data/media` to your normal `docker run` command used to launch the Baserow backend. diff --git a/docs/installation/install-on-aws.md b/docs/installation/install-on-aws.md index 13340aa555..8c9f59483b 100644 --- a/docs/installation/install-on-aws.md +++ b/docs/installation/install-on-aws.md @@ -49,7 +49,7 @@ overview this is what any AWS deployment of Baserow will need: ## Option 1) Deploying the all-in-one image to Fargate/ECS -The `baserow/baserow:2.1.1` image runs all of Baserow’s various services inside the +The `baserow/baserow:2.1.2` image runs all of Baserow’s various services inside the container for ease of use. This image is designed for single server deployments or simple deployments to @@ -67,7 +67,7 @@ Run. * You don't need to worry about configuring and linking together the different services that make up a Baserow deployment. * Configuring load balancers is easier as you can just directly route through all - requests to any horizontally scaled container running `baserow/baserow:2.1.1`. + requests to any horizontally scaled container running `baserow/baserow:2.1.2`. #### Cons @@ -75,7 +75,7 @@ Run. * Potentially higher resource usage overall as each of the all-in-one containers will come with its internal services, so you have less granular control over scaling specific services. - * For example if you deploy 10 `baserow/baserow:2.1.1` containers horizontally you + * For example if you deploy 10 `baserow/baserow:2.1.2` containers horizontally you by default end up with: * 10 web-frontend services * 10 backend services @@ -188,18 +188,18 @@ Generally, the Redis server is not the bottleneck in Baserow deployments as they Now create a target group on port 80 and ALB ready to route traffic to the Baserow containers. -When setting up the health check for the ALB the `baserow/baserow:2.1.1` container +When setting up the health check for the ALB the `baserow/baserow:2.1.2` container ,which you'll be deploying next, choose port `80` and health check URL `/api/_health/`. We recommend a long grace period of 900 seconds to account for first-time migrations being run on the first container's startup. #### 5) Launching Baserow on ECS/Fargate -Now we are ready to spin up our `baserow/baserow:2.1.1` containers. See below for a +Now we are ready to spin up our `baserow/baserow:2.1.2` containers. See below for a full task definition and environment variables. We recommend launching the containers with 2vCPUs and 4 GB of RAM each to start with. In short, you will want to: -1. Select the `baserow/baserow:2.1.1` image. +1. Select the `baserow/baserow:2.1.2` image. 2. Add a port mapping of `80` on TCP as this is where this images HTTP server is listening by default. 3. Mark the container as essential. @@ -244,7 +244,7 @@ container_definitions = < We recommend setting the timeout of each HTTP API request to 60 seconds in the @@ -484,7 +484,7 @@ This service is our HTTP REST API service. When creating the task definition you This service is our Websocket API service and when configuring the task definition you should: -1. Use the `baserow/backend:2.1.1` +1. Use the `baserow/backend:2.1.2` 2. Under docker configuration set `gunicorn` as the Command. 3. We recommend 2vCPUs and 4 GB of RAM per container to start with. 4. Map the container port `8000`/`TCP` @@ -496,7 +496,7 @@ should: This service is our asynchronous high priority task worker queue used for realtime collaboration and sending emails. -1. Use the `baserow/backend:2.1.1` image with `celery-worker` as the image command. +1. Use the `baserow/backend:2.1.2` image with `celery-worker` as the image command. 2. Under docker configuration set `celery-worker` as the Command. 3. No port mappings needed. 4. We recommend 2vCPUs and 4 GB of RAM per container to start with. @@ -509,7 +509,7 @@ This service is our asynchronous slow/low priority task worker queue for batch processes and running potentially slow operations for users like table exports and imports etc. -1. Use the `baserow/backend:2.1.1` image. +1. Use the `baserow/backend:2.1.2` image. 2. Under docker configuration set `celery-exportworker` as the Command. 3. No port mappings needed. 4. We recommend 2vCPUs and 4 GB of RAM per container to start with. @@ -520,7 +520,7 @@ imports etc. This service is our CRON task scheduler that can have multiple replicas deployed. -1. Use the `baserow/backend:2.1.1` image. +1. Use the `baserow/backend:2.1.2` image. 2. Under docker configuration set `celery-beat` as the Command. 3. No port mapping needed. 4. We recommend 1vCPUs and 3 GB of RAM per container to start with. @@ -537,7 +537,7 @@ This service is our CRON task scheduler that can have multiple replicas deployed Finally, this service is used for server side rendering and serving the frontend of Baserow. -1. Use the `baserow/web-frontend:2.1.1` image with no arguments needed. +1. Use the `baserow/web-frontend:2.1.2` image with no arguments needed. 2. Map the container port `3000` 3. We recommend 2vCPUs and 4 GB of RAM per container to start with. 4. Mark the container as essential. diff --git a/docs/installation/install-on-cloudron.md b/docs/installation/install-on-cloudron.md index 42056eb9bd..33ffc613b0 100644 --- a/docs/installation/install-on-cloudron.md +++ b/docs/installation/install-on-cloudron.md @@ -46,7 +46,7 @@ $ cd baserow/deploy/cloudron After that you can install the Baserow Cloudron app by executing the following commands. ``` -$ cloudron install -l baserow.{YOUR_DOMAIN} --image baserow/cloudron:2.1.1 +$ cloudron install -l baserow.{YOUR_DOMAIN} --image baserow/cloudron:2.1.2 App is being installed. ... App is installed. @@ -89,7 +89,7 @@ the `baserow/deploy/cloudron` folder, you can upgrade your cloudron baserow serv the latest version by running the following command: ``` -cloudron update --app {YOUR_APP_ID} --image baserow/cloudron:2.1.1 +cloudron update --app {YOUR_APP_ID} --image baserow/cloudron:2.1.2 ``` > Note that you must replace the image with the most recent image of Baserow. The diff --git a/docs/installation/install-on-digital-ocean.md b/docs/installation/install-on-digital-ocean.md index 0952dea34a..2732581ec6 100644 --- a/docs/installation/install-on-digital-ocean.md +++ b/docs/installation/install-on-digital-ocean.md @@ -51,7 +51,7 @@ Navigate to the `Apps` page in the left sidebar of your Digital Ocean dashboard. on `Create App`, select `Docker Hub`, and fill out the following: Repository: `baserow/baserow` -Image tag or digest: `2.1.1` +Image tag or digest: `2.1.2` Click on `Next`, then on the `Edit` button of the `baserow-baserow` web service. Here you must change the HTTP Port to 80, and then click on `Back`. Click on the `Next` @@ -124,7 +124,7 @@ environment. In order to update the Baserow version, you simply need to replace the image tag. Navigate to the `Settings` tag of your created app, click on the `baserow-baserow` component, then click on the `Edit` button next to source, change the `Image tag` into -the desired version (latest is `2.1.1`), and click on save. The app will redeploy +the desired version (latest is `2.1.2`), and click on save. The app will redeploy with the latest version. ## External email server diff --git a/docs/installation/install-on-ubuntu.md b/docs/installation/install-on-ubuntu.md index 4c45d5fbc0..c5c1d75433 100644 --- a/docs/installation/install-on-ubuntu.md +++ b/docs/installation/install-on-ubuntu.md @@ -34,7 +34,7 @@ docker run -e BASEROW_PUBLIC_URL=http://localhost \ -v baserow_data:/baserow/data \ -p 80:80 \ -p 443:443 \ -baserow/baserow:2.1.1 +baserow/baserow:2.1.2 # Watch the logs for Baserow to come available by running: docker logs baserow ``` @@ -147,7 +147,7 @@ docker run \ -v /baserow/media:/baserow/data/media \ -p 80:80 \ -p 443:443 \ - baserow/baserow:2.1.1 + baserow/baserow:2.1.2 # Check the logs and wait for Baserow to become available docker logs baserow ``` diff --git a/docs/installation/install-using-standalone-images.md b/docs/installation/install-using-standalone-images.md index 1c7e591f90..2561e848b4 100644 --- a/docs/installation/install-using-standalone-images.md +++ b/docs/installation/install-using-standalone-images.md @@ -10,9 +10,9 @@ Baserow consists of a number of services, two of which are built and provided as separate standalone images by us: -* `baserow/backend:2.1.1` which by default starts the Gunicorn Django backend server +* `baserow/backend:2.1.2` which by default starts the Gunicorn Django backend server for Baserow but is also used to start the celery workers and celery beat services. -* `baserow/web-frontend:2.1.1` which is a Nuxt server providing Server Side rendering +* `baserow/web-frontend:2.1.2` which is a Nuxt server providing Server Side rendering for the website. If you want to use your own container orchestration software like Kubernetes then these @@ -27,10 +27,10 @@ in the root of our repository. These are all the services you need to set up to run a Baserow using the standalone images: -* `baserow/backend:2.1.1` (default command is `gunicorn`) -* `baserow/backend:2.1.1` with command `celery-worker` -* `baserow/backend:2.1.1` with command `celery-export-worker` -* `baserow/web-frontend:2.1.1` (default command is `nuxt-prod`) +* `baserow/backend:2.1.2` (default command is `gunicorn`) +* `baserow/backend:2.1.2` with command `celery-worker` +* `baserow/backend:2.1.2` with command `celery-export-worker` +* `baserow/web-frontend:2.1.2` (default command is `nuxt-prod`) * A postgres database * A redis server diff --git a/docs/installation/install-with-docker-compose.md b/docs/installation/install-with-docker-compose.md index 9aa582ecc5..6339a04491 100644 --- a/docs/installation/install-with-docker-compose.md +++ b/docs/installation/install-with-docker-compose.md @@ -15,7 +15,7 @@ guide on the specifics of how to work with this image. services: baserow: container_name: baserow - image: baserow/baserow:2.1.1 + image: baserow/baserow:2.1.2 environment: BASEROW_PUBLIC_URL: 'http://localhost' ports: diff --git a/docs/installation/install-with-docker.md b/docs/installation/install-with-docker.md index b5db37cdc4..a750c468bc 100644 --- a/docs/installation/install-with-docker.md +++ b/docs/installation/install-with-docker.md @@ -29,7 +29,7 @@ docker run \ -p 80:80 \ -p 443:443 \ --restart unless-stopped \ - baserow/baserow:2.1.1 + baserow/baserow:2.1.2 ``` * Change `BASEROW_PUBLIC_URL` to `https://YOUR_DOMAIN` or `http://YOUR_IP` to enable @@ -52,7 +52,7 @@ docker run \ ## Image Feature Overview -The `baserow/baserow:2.1.1` image by default runs all of Baserow's various services in +The `baserow/baserow:2.1.2` image by default runs all of Baserow's various services in a single container for maximum ease of use. > This image is designed for simple single server deployments or simple container @@ -200,7 +200,7 @@ docker run \ -p 80:80 \ -p 443:443 \ --restart unless-stopped \ - baserow/baserow:2.1.1 + baserow/baserow:2.1.2 ``` ### Behind a reverse proxy already handling ssl @@ -213,7 +213,7 @@ docker run \ -v baserow_data:/baserow/data \ -p 80:80 \ --restart unless-stopped \ - baserow/baserow:2.1.1 + baserow/baserow:2.1.2 ``` ### On a nonstandard HTTP port @@ -226,7 +226,7 @@ docker run \ -v baserow_data:/baserow/data \ -p 3001:80 \ --restart unless-stopped \ - baserow/baserow:2.1.1 + baserow/baserow:2.1.2 ``` ### With an external PostgresSQL server @@ -245,7 +245,7 @@ docker run \ -p 80:80 \ -p 443:443 \ --restart unless-stopped \ - baserow/baserow:2.1.1 + baserow/baserow:2.1.2 ``` ### With an external Redis server @@ -264,7 +264,7 @@ docker run \ -p 80:80 \ -p 443:443 \ --restart unless-stopped \ - baserow/baserow:2.1.1 + baserow/baserow:2.1.2 ``` ### With an external email server @@ -284,7 +284,7 @@ docker run \ -p 80:80 \ -p 443:443 \ --restart unless-stopped \ - baserow/baserow:2.1.1 + baserow/baserow:2.1.2 ``` ### With a Postgresql server running on the same host as the Baserow docker container @@ -322,7 +322,7 @@ docker run \ -v baserow_data:/baserow/data \ -p 80:80 \ -p 443:443 \ - baserow/baserow:2.1.1 + baserow/baserow:2.1.2 ``` ### Supply secrets using files @@ -349,7 +349,7 @@ docker run \ -v baserow_data:/baserow/data \ -p 80:80 \ -p 443:443 \ - baserow/baserow:2.1.1 + baserow/baserow:2.1.2 ``` ### Start just the embedded database @@ -362,7 +362,7 @@ docker run -it \ --name baserow \ -p 5432:5432 \ -v baserow_data:/baserow/data \ - baserow/baserow:2.1.1 \ + baserow/baserow:2.1.2 \ start-only-db # Now get the password from docker exec -it baserow cat /baserow/data/.pgpass @@ -394,7 +394,7 @@ docker run -it \ --rm \ --name baserow \ -v baserow_data:/baserow/data \ - baserow/baserow:2.1.1 \ + baserow/baserow:2.1.2 \ backend-cmd-with-db manage dbshell ``` @@ -517,19 +517,19 @@ the command below. ```bash # First read the help message for this command -docker run -it --rm -v baserow_data:/baserow/data baserow/baserow:2.1.1 \ +docker run -it --rm -v baserow_data:/baserow/data baserow/baserow:2.1.2 \ backend-cmd-with-db backup --help # Stop Baserow instance docker stop baserow # The command below backs up Baserow to the backups folder in the baserow_data volume: -docker run -it --rm -v baserow_data:/baserow/data baserow/baserow:2.1.1 \ +docker run -it --rm -v baserow_data:/baserow/data baserow/baserow:2.1.2 \ backend-cmd-with-db backup -f /baserow/data/backups/backup.tar.gz # Or backup to a file on your host instead run something like: docker run -it --rm -v baserow_data:/baserow/data -v $PWD:/baserow/host \ - baserow/baserow:2.1.1 backend-cmd-with-db backup -f /baserow/host/backup.tar.gz + baserow/baserow:2.1.2 backend-cmd-with-db backup -f /baserow/host/backup.tar.gz ``` ### Restore only Baserow's Postgres Database @@ -545,13 +545,13 @@ docker stop baserow docker run -it --rm \ -v old_baserow_data_volume_containing_the_backup_tar_gz:/baserow/old_data \ -v new_baserow_data_volume_to_restore_into:/baserow/data \ - baserow/baserow:2.1.1 backend-cmd-with-db restore -f /baserow/old_data/backup.tar.gz + baserow/baserow:2.1.2 backend-cmd-with-db restore -f /baserow/old_data/backup.tar.gz # Or to restore from a file on your host instead run something like: docker run -it --rm \ -v baserow_data:/baserow/data -v \ $(pwd):/baserow/host \ - baserow/baserow:2.1.1 backend-cmd-with-db restore -f /baserow/host/backup.tar.gz + baserow/baserow:2.1.2 backend-cmd-with-db restore -f /baserow/host/backup.tar.gz ``` ## Running healthchecks on Baserow @@ -602,7 +602,7 @@ docker run \ -p 80:80 \ -p 443:443 \ --restart unless-stopped \ - baserow/baserow:2.1.1 + baserow/baserow:2.1.2 ``` Or you can just store it directly in the volume at `baserow_data/env` meaning it will be @@ -611,7 +611,7 @@ loaded whenever you mount in this data volume. ### Building your own image from Baserow ```dockerfile -FROM baserow/baserow:2.1.1 +FROM baserow/baserow:2.1.2 # Any .sh files found in /baserow/supervisor/env/ will be sourced and loaded at startup # useful for storing your own environment variable overrides. diff --git a/docs/installation/install-with-helm.md b/docs/installation/install-with-helm.md index 57d9059ce4..e25e8642c5 100644 --- a/docs/installation/install-with-helm.md +++ b/docs/installation/install-with-helm.md @@ -133,7 +133,7 @@ You can specify a particular Baserow version by updating your `config.yaml`: ```yaml global: baserow: - image: 2.1.1 + image: 2.1.2 ``` Or specify the chart version directly: diff --git a/docs/installation/install-with-k8s.md b/docs/installation/install-with-k8s.md index 6d82168854..88dde15e6b 100644 --- a/docs/installation/install-with-k8s.md +++ b/docs/installation/install-with-k8s.md @@ -165,7 +165,7 @@ spec: topologyKey: "kubernetes.io/hostname" containers: - name: backend-asgi - image: baserow/backend:2.1.1 + image: baserow/backend:2.1.2 workingDir: /baserow args: - "gunicorn" @@ -222,7 +222,7 @@ spec: topologyKey: "kubernetes.io/hostname" containers: - name: backend-wsgi - image: baserow/backend:2.1.1 + image: baserow/backend:2.1.2 workingDir: /baserow args: - "gunicorn-wsgi" @@ -281,7 +281,7 @@ spec: topologyKey: "kubernetes.io/hostname" containers: - name: backend-worker - image: baserow/backend:2.1.1 + image: baserow/backend:2.1.2 args: - "celery-worker" imagePullPolicy: Always @@ -298,7 +298,7 @@ spec: - secretRef: name: YOUR_ENV_SECRET_REF - name: backend-export-worker - image: baserow/backend:2.1.1 + image: baserow/backend:2.1.2 args: - "celery-exportworker" imagePullPolicy: Always @@ -315,7 +315,7 @@ spec: - secretRef: name: YOUR_ENV_SECRET_REF - name: backend-beat-worker - image: baserow/backend:2.1.1 + image: baserow/backend:2.1.2 args: - "celery-beat" imagePullPolicy: Always @@ -356,7 +356,7 @@ spec: topologyKey: "kubernetes.io/hostname" containers: - name: web-frontend - image: baserow/web-frontend:2.1.1 + image: baserow/web-frontend:2.1.2 args: - nuxt ports: diff --git a/docs/installation/install-with-traefik.md b/docs/installation/install-with-traefik.md index 0d7fb85572..b1318d21e8 100644 --- a/docs/installation/install-with-traefik.md +++ b/docs/installation/install-with-traefik.md @@ -10,7 +10,7 @@ See below for an example docker-compose file that will enable Baserow with Traef ``` services: baserow: - image: baserow/baserow:2.1.1 + image: baserow/baserow:2.1.2 container_name: baserow labels: # Explicitly tell Traefik to expose this container diff --git a/docs/installation/supported.md b/docs/installation/supported.md index c6266c39c2..ab3acce4e5 100644 --- a/docs/installation/supported.md +++ b/docs/installation/supported.md @@ -8,7 +8,7 @@ Software versions are divided into the following groups: before the release. * `Recommended`: Recommended software for the best experience. -## Baserow 2.1.1 +## Baserow 2.1.2 | Dependency | Supported versions | Tested versions | Recommended versions | diff --git a/docs/plugins/boilerplate.md b/docs/plugins/boilerplate.md index 29ea57d35d..26eb38e5e5 100644 --- a/docs/plugins/boilerplate.md +++ b/docs/plugins/boilerplate.md @@ -1,192 +1,4 @@ # Boilerplate -With the plugin boilerplate you can easily create a new plugin and setup a docker -development environment that installs Baserow as a dependency. It includes linters and -it can easily be installed via cookiecutter. - -> The structure used for Baserow plugins is not yet finalized and might change to -> support installation of plugins via a market-place available in Baserow. - -## Creating a plugin - -To use the plugin boilerplate you must first install -the [Cookiecutter](https://cookiecutter.readthedocs.io/en/stable/installation.html) -tool (`pip install cookiecutter`). - -Once you have installed Cookiecutter you can execute the following command to create a -new Baserow plugin from our template. In this guide we will name our plugin "My Baserow -Plugin", however you can choose your own plugin name when prompted to by Cookiecutter. - -> The python module depends on your chosen plugin name. If we for example go with -> "My Baserow Plugin" the Django app name should be my_baserow_plugin and the Nuxt module -> name will be my-baserow-plugin. - -```bash -cookiecutter gl:baserow/baserow --directory plugin-boilerplate -project_name [My Baserow Plugin]: -project_slug [my-baserow-plugin]: -project_module [my_baserow_plugin]: -``` - -If you do not see any errors it means that your plugin has been created. - -## Starting the development environment - -Now to start your development environment please run the following commands: - -```bash -cd my-baserow-plugin -# Enable Docker buildkit -export COMPOSE_DOCKER_CLI_BUILD=1 -export DOCKER_BUILDKIT=1 -# Set these variables so the images are built and run with the same uid/gid as your -# user. This prevents permission issues when mounting your local source into -# the images. -export PLUGIN_BUILD_UID=$(id -u) -export PLUGIN_BUILD_GID=$(id -g) -# You can optionally `export COMPOSE_FILE=docker-compose.dev.yml` so you don't need to -# use the `-f docker-compose.dev.yml` flag each time. -docker-compose -f docker-compose.dev.yml up -d --build -docker-compose -f docker-compose.dev.yml logs -f -``` - -The development environment is now running and can be accessed at **http://localhost**. - -You can check the plugin is working by visiting the demo url **http://localhost/starting**. - -## First changes - -The most important part inside the `my-baserow-plugin` folder is the -`plugins/my_baserow_plugin` folder. Here you will find all the code of your plugin. For -example purposes we are going to add a simple endpoint which always returns the same -response, and we are going to show this text on a page in the web frontend. - -### Backend changes - -We want to expose an endpoint on the following url -**http://localhost/api/my-baserow-plugin/example/** that returns a JSON response -containing a title and some content. Create/Modify the following files: - -First open `plugins/my_baserow_plugin/backend/src/my_baserow_plugin/api/views.py` and -add your new view below the existing `StartingView`. - -```python -class ExampleView(APIView): - permission_classes = (AllowAny,) - - def get(self, request): - return Response({ - 'title': 'Example title', - 'content': 'Example text' - }) -``` - -Then modify `plugins/my_baserow_plugin/backend/src/my_baserow_plugin/api/urls.py` and -add your new view's url pattern. - -```python -from django.urls import re_path - -from .views import StartingView, ExampleView - -app_name = 'my_baserow_plugin.api' -urlpatterns = [ - re_path(r"starting/$", StartingView.as_view(), name="starting"), - re_path(r'example/$', ExampleView.as_view(), name='example'), -] -``` - -With these change you should be able to visit -the **http://localhost/api/my_baserow_plugin/example/** -endpoint which should return the desired content. - -### Web frontend changes - -Now that we have our endpoint we want to show the response on a page in the -web-frontend. Add/modify the following code. - -Modify `plugins/my_baserow_plugin/web-frontend/modules/my-baserow-plugin/routes.js` and -add your new route after the existing 'starting' route: - -```javascript -import path from 'path' - -export const routes = [ - { - name: 'starting', - path: '/starting', - component: path.resolve(__dirname, 'pages/starting.vue'), - }, - { - name: 'example', - path: '/example', - component: path.resolve(__dirname, 'pages/example.vue'), - }, -] -``` - -Add `plugins/my_baserow_plugin/web-frontend/modules/my-baserow-plugin/pages/example.vue` - -```vue - - - -``` - -Now you will need to restart the Nuxt development server because the routes have changes -and they are loaded by the module.js. -Run `docker-compose -f docker-compose.dev.yml restart` to do this. - -If you now visit http://localhost/example in your browser you should see a page -containing the title and content defined in the endpoint. - -You should now have a basic idea on how to make some changes to Baserow via the plugin -boilerplate. The changes we have discussed here are of course for example purposes and -are only for giving you an idea about how it works. - -## Linters - -After you have started the dev environment and the containers are all running you can -run the following commands to run the linters. - -* `docker-compose -f docker-compose.dev.yml exec my-baserow-plugin /baserow.sh backend-cmd bash -c bash` - * You are now in a shell inside your Baserow dev container. - * `cd /baserow/data/plugins/my_baserow_plugin/web-frontend/` - * Now you can run any commands you would like: - * `yarn run eslint --fix` - * `yarn run stylelint` - * `yarn add your_dependency` - * `cd /baserow/data/plugins/my_baserow_plugin/backend/` - * Now you can run any commands you would like: - * `black .` - * `flake8` -* To run pytest database tests in your dev container you need to ensure your database - user has the CREATEDB; permission. To do this you can run: - * `docker-compose -f docker-compose.dev.yml exec -T my-baserow-plugin /baserow/supervisor/docker-postgres-setup.sh run <<< "ALTER USER baserow CREATEDB;"` -* Now to run pytest database tests you can: - * `docker-compose -f docker-compose.dev.yml exec my-baserow-plugin /baserow.sh backend-cmd bash -c bash` - * `cd /baserow/data/plugins/my_baserow_plugin/backend/` - * `pytest` - -## Next Steps - -The [Creating a Plugin](./creation.md) guide contains further info on creating plugins. -Also see the README.md in the root of your plugin folder. +The plugin boilerplate is outdated and only made for Baserow 2.0.6 and lower. Please +take a look at the repository at https://github.com/baserow/plugin-boilerplate. diff --git a/docs/plugins/creation.md b/docs/plugins/creation.md index c0b72c2e35..18237c45d4 100644 --- a/docs/plugins/creation.md +++ b/docs/plugins/creation.md @@ -8,16 +8,16 @@ plugins to get inspiration from and discuss how to publish your plugin. ## Initialize your plugin from the official template -We highly recommend using -the [Step by step tutorial on plugin creation using the plugin boilerplate](./boilerplate.md) -which will setup a basic Baserow plugin ready for you to start working on. +We highly recommend using the +[Step by step tutorial on plugin creation using the plugin boilerplate](./boilerplate.md) +which will setup a basic Baserow plugin ready for you to start working on. Please note +that the boilerplate is outdated and only compatible with version 2.0.6 and lower. To instantiate the template, execute the following commands: ```sh -$ cd ~/baserow $ pip install cookiecutter -$ cookiecutter gl:baserow/baserow --directory plugin-boilerplate +$ $ cookiecutter https://github.com/baserow/plugin-boilerplate.git ``` ## Get inspiration from our examples @@ -122,7 +122,7 @@ containing metadata about your plugin. It should have the following JSON structu { "name": "TODO", "version": "TODO", - "supported_baserow_versions": "2.1.1", + "supported_baserow_versions": "2.1.2", "plugin_api_version": "0.0.1-alpha", "description": "TODO", "author": "TODO", diff --git a/docs/plugins/installation.md b/docs/plugins/installation.md index 4896378870..6629afe085 100644 --- a/docs/plugins/installation.md +++ b/docs/plugins/installation.md @@ -36,7 +36,7 @@ build your own image based off the Baserow all-in-one image. 4. Next copy the contents shown into your `Dockerfile` ```dockerfile -FROM baserow/baserow:2.1.1 +FROM baserow/baserow:2.1.2 # You can install a plugin found in a git repo: RUN /baserow/plugins/install_plugin.sh \ @@ -70,9 +70,9 @@ RUN /baserow/plugins/install_plugin.sh \ 5. Choose which of the `RUN` commands you'd like to use to install your plugins and delete the rest, replace the example URLs with ones pointing to your plugin. 6. Now build your custom Baserow with the plugin installed by running: - `docker build -t my-customized-baserow:2.1.1 .` + `docker build -t my-customized-baserow:2.1.2 .` 7. Finally, you can run your new customized image just like the normal Baserow image: - `docker run -p 80:80 -v baserow_data:/baserow/data my-customized-baserow:2.1.1` + `docker run -p 80:80 -v baserow_data:/baserow/data my-customized-baserow:2.1.2` ### Installing in an existing Baserow all-in-one container @@ -111,7 +111,7 @@ docker run \ -v baserow_data:/baserow/data \ # ... All your normal launch args go here -e BASEROW_PLUGIN_GIT_REPOS=https://example.com/example/plugin1.git,https://example.com/example/plugin2.git - baserow:2.1.1 + baserow:2.1.2 ``` These variables will only trigger and installation when found on startup of the @@ -120,7 +120,7 @@ container. To uninstall a plugin you must still manually follow the instructions ### Caveats when installing into an existing container If you ever delete the container you've installed plugins into at runtime and re-create -it, the new container is created from the `baserow/baserow:2.1.1` image which does not +it, the new container is created from the `baserow/baserow:2.1.2` image which does not have any plugins installed. However, when a plugin is installed at runtime or build time it is stored in the @@ -135,7 +135,7 @@ scratch. ### Installing into standalone Baserow service images -Baserow also provides `baserow/backend:2.1.1` and `baserow/web-frontend:2.1.1` images +Baserow also provides `baserow/backend:2.1.2` and `baserow/web-frontend:2.1.2` images which only run the respective backend/celery/web-frontend services. These images are used for more advanced self-hosted deployments like a multi-service docker-compose, k8s etc. @@ -145,8 +145,8 @@ used with docker run and a specified command and the plugin env vars shown above example: ``` -docker run --rm baserow/backend:2.1.1 install-plugin ... -docker run -e BASEROW_PLUGIN_GIT_REPOS=https://example.com/example/plugin1.git,https://example.com/example/plugin2.git --rm baserow/backend:2.1.1 +docker run --rm baserow/backend:2.1.2 install-plugin ... +docker run -e BASEROW_PLUGIN_GIT_REPOS=https://example.com/example/plugin1.git,https://example.com/example/plugin2.git --rm baserow/backend:2.1.2 ``` You can use these scripts exactly as you would in the sections above to install a plugin @@ -169,13 +169,13 @@ associated data permanently. [Docker install guide backup section](../installation/install-with-docker.md) for more details on how to do this. 2. Stop your Baserow server first - `docker stop baserow` -3. `docker run --rm -v baserow_data:/baserow/data baserow:2.1.1 uninstall-plugin plugin_name` +3. `docker run --rm -v baserow_data:/baserow/data baserow:2.1.2 uninstall-plugin plugin_name` 4. Now the plugin has uninstalled itself and all associated data has been removed. 5. Edit your custom `Dockerfile` and remove the plugin. -6. Rebuild your image - `docker build -t my-customized-baserow:2.1.1 .` +6. Rebuild your image - `docker build -t my-customized-baserow:2.1.2 .` 7. Remove the old container using the old image - `docker rm baserow` 8. Run your new image with the plugin removed - - `docker run -p 80:80 -v baserow_data:/baserow/data my-customized-baserow:2.1.1` + - `docker run -p 80:80 -v baserow_data:/baserow/data my-customized-baserow:2.1.2` 9. If you fail to do this if you ever recreate the container, your custom image still has the plugin installed and the new container will start up again with the plugin re-installed. @@ -207,7 +207,7 @@ associated data permanently. restart as the environment variable will still contain the old plugin. To do this you must: 1. `docker stop baserow` - 2. `docker run --rm -v baserow_data:/baserow/data baserow:2.1.1 uninstall-plugin plugin_name` + 2. `docker run --rm -v baserow_data:/baserow/data baserow:2.1.2 uninstall-plugin plugin_name` 3. Now the plugin has uninstalled itself and all associated data has been removed. 4. Finally, recreate your Baserow container by using the same `docker run` command you launched it with, just make sure the plugin you uninstalled has been removed @@ -222,7 +222,7 @@ check what plugins are currently installed. docker run \ --rm \ -v baserow_data:/baserow/data \ - baserow:2.1.1 list-plugins + baserow:2.1.2 list-plugins # or on a running container diff --git a/enterprise/backend/pyproject.toml b/enterprise/backend/pyproject.toml index 0eb3cb84a6..ef65895ca8 100644 --- a/enterprise/backend/pyproject.toml +++ b/enterprise/backend/pyproject.toml @@ -12,7 +12,7 @@ description = """Baserow is an open source no-code database tool and Airtable \ # mixed license license = { file = "../LICENSE" } requires-python = "==3.14.*" -version = "2.1.1" +version = "2.1.2" classifiers = [] [project.urls] diff --git a/heroku.Dockerfile b/heroku.Dockerfile index 0fa06b86a9..298296933f 100644 --- a/heroku.Dockerfile +++ b/heroku.Dockerfile @@ -1,4 +1,4 @@ -ARG FROM_IMAGE=baserow/baserow:2.1.1 +ARG FROM_IMAGE=baserow/baserow:2.1.2 # This is pinned as version pinning is done by the CI setting FROM_IMAGE. # hadolint ignore=DL3006 FROM $FROM_IMAGE AS image_base diff --git a/plugin-boilerplate/cookiecutter.json b/plugin-boilerplate/cookiecutter.json deleted file mode 100644 index 65da7681d9..0000000000 --- a/plugin-boilerplate/cookiecutter.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "project_name": "My Baserow Plugin", - "project_slug": "{{ cookiecutter.project_name.lower()|replace(' ', '-')|replace('_', '-')|replace('.', '-')|trim() }}", - "project_module": "{{ cookiecutter.project_name.lower()|replace(' ', '_')|replace('-', '_')|replace('.', '_')|trim() }}" -} diff --git a/plugin-boilerplate/{{ cookiecutter.project_slug }}/.env b/plugin-boilerplate/{{ cookiecutter.project_slug }}/.env deleted file mode 100644 index 97ffcb5364..0000000000 --- a/plugin-boilerplate/{{ cookiecutter.project_slug }}/.env +++ /dev/null @@ -1,39 +0,0 @@ -# TODO Change these variables. They are auto generated when you ran `cookiecutter` -# but if you provide this plugin for other users you must make sure they do not reuse -# these defaults. -DATABASE_PASSWORD={{ random_ascii_string(60) }} -SECRET_KEY={{ random_ascii_string(60) }} -REDIS_PASSWORD={{ random_ascii_string(60) }} - -BASEROW_PUBLIC_URL=http://localhost -PRIVATE_BACKEND_URL=http://backend:8000 -PRIVATE_WEB_FRONTEND_URL=http://web-frontend:3000 -PUBLIC_BACKEND_URL= -PUBLIC_WEB_FRONTEND_URL= - -BASEROW_CADDY_ADDRESSES=:80 -WEB_FRONTEND_PORT=80 -WEB_FRONTEND_SSL_PORT=443 -HOST_PUBLISH_IP=0.0.0.0 -MEDIA_URL= -BASEROW_EXTRA_ALLOWED_HOSTS= -BASEROW_CADDY_GLOBAL_CONF= - -MIGRATE_ON_STARTUP=true -SYNC_TEMPLATES_ON_STARTUP=true - -DATABASE_USER=baserow -DATABASE_NAME=baserow - -FEATURE_FLAGS= -BASEROW_ENABLE_SECURE_PROXY_SSL_HEADER= - -EMAIL_SMTP= -EMAIL_SMTP_HOST= -EMAIL_SMTP_PORT= -EMAIL_SMTP_USE_TLS= -EMAIL_SMTP_USER= -EMAIL_SMTP_PASSWORD= -FROM_EMAIL= - -DISABLE_ANONYMOUS_PUBLIC_VIEW_WS_CONNECTIONS= diff --git a/plugin-boilerplate/{{ cookiecutter.project_slug }}/.gitignore b/plugin-boilerplate/{{ cookiecutter.project_slug }}/.gitignore deleted file mode 100644 index f33514048e..0000000000 --- a/plugin-boilerplate/{{ cookiecutter.project_slug }}/.gitignore +++ /dev/null @@ -1,113 +0,0 @@ -.DS_Store - -# Created by .ignore support plugin (hsz.mobi) -### Node template -# Logs -logs -*.log -npm-debug.log* -yarn-debug.log* -yarn-error.log* - -# Runtime data -pids -*.pid -*.seed -*.pid.lock - -# Directory for instrumented libs generated by jscoverage/JSCover -lib-cov - -# Coverage directory used by tools like istanbul -coverage -html_coverage - -# nyc test coverage -.nyc_output - -# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) -.grunt - -# Bower dependency directory (https://bower.io/) -bower_components - -# node-waf configuration -.lock-wscript - -# Compiled binary addons (https://nodejs.org/api/addons.html) -build/Release - -# Dependency directories -node_modules/ -jspm_packages/ - -# TypeScript v1 declaration files -typings/ - -# Optional npm cache directory -.npm - -# Optional eslint cache -.eslintcache - -# Optional REPL history -.node_repl_history - -# Output of 'npm pack' -*.tgz - -# Yarn Integrity file -.yarn-integrity - -# dotenv environment variables file -.env - -# parcel-bundler cache (https://parceljs.org/) -.cache - -# next.js build output -.next - -# nuxt.js build output -.nuxt - -# Nuxt generate -dist - -# vuepress build output -.vuepress/dist - -# Serverless directories -.serverless - -# Service worker -sw.* - -*.pyc -__pycache__ -.pytest_cache -*.log -*.egg-info - -# python virtual envs -venv/ - -.idea/ -*.iml - -!intellij-config/.idea/ -!intellij-config/*.iml -!intellij-config/**/*.iml - -# IntelliJ -out/ - -.vagrant/ - - -# vscode config files -.vscode -vetur.config.js - -.coverage -junit.xml diff --git a/plugin-boilerplate/{{ cookiecutter.project_slug }}/Caddyfile b/plugin-boilerplate/{{ cookiecutter.project_slug }}/Caddyfile deleted file mode 100644 index 0d3cb0be2b..0000000000 --- a/plugin-boilerplate/{{ cookiecutter.project_slug }}/Caddyfile +++ /dev/null @@ -1,26 +0,0 @@ -{ - {$BASEROW_CADDY_GLOBAL_CONF} -} - -{$BASEROW_CADDY_ADDRESSES} { - handle /api/* { - reverse_proxy {$PRIVATE_BACKEND_URL:localhost:8000} - } - - handle /ws/* { - reverse_proxy {$PRIVATE_BACKEND_URL:localhost:8000} - } - - handle_path /media/* { - @downloads { - query dl=* - } - header @downloads Content-disposition "attachment; filename={query.dl}" - - file_server { - root {$MEDIA_ROOT:/baserow/media/} - } - } - - reverse_proxy {$PRIVATE_WEB_FRONTEND_URL:localhost:3000} -} diff --git a/plugin-boilerplate/{{ cookiecutter.project_slug }}/Caddyfile.dev b/plugin-boilerplate/{{ cookiecutter.project_slug }}/Caddyfile.dev deleted file mode 100644 index 9fb7be6680..0000000000 --- a/plugin-boilerplate/{{ cookiecutter.project_slug }}/Caddyfile.dev +++ /dev/null @@ -1,18 +0,0 @@ -{ - debug -} - -:80 { - respond /caddy-health-check 200 - - handle_path /media/* { - @downloads { - query dl=* - } - header @downloads Content-disposition "attachment; filename={query.dl}" - - file_server { - root {$MEDIA_ROOT:/baserow/media/} - } - } -} diff --git a/plugin-boilerplate/{{ cookiecutter.project_slug }}/Dockerfile b/plugin-boilerplate/{{ cookiecutter.project_slug }}/Dockerfile index 1284278230..38f6623012 100644 --- a/plugin-boilerplate/{{ cookiecutter.project_slug }}/Dockerfile +++ b/plugin-boilerplate/{{ cookiecutter.project_slug }}/Dockerfile @@ -1,4 +1,4 @@ -FROM baserow/baserow:2.1.1 +FROM baserow/baserow:2.1.2 COPY ./plugins/{{ cookiecutter.project_module }}/ /baserow/plugins/{{ cookiecutter.project_module }}/ RUN /baserow/plugins/install_plugin.sh --folder /baserow/plugins/{{ cookiecutter.project_module }} diff --git a/plugin-boilerplate/{{ cookiecutter.project_slug }}/README.md b/plugin-boilerplate/{{ cookiecutter.project_slug }}/README.md deleted file mode 100644 index 856cf0eef2..0000000000 --- a/plugin-boilerplate/{{ cookiecutter.project_slug }}/README.md +++ /dev/null @@ -1,48 +0,0 @@ -# {{ cookiecutter.project_name }} - -## Baserow Plugins - -A Baserow plugin can be used to extend or change the functionality of Baserow. -Specifically a plugin is a folder with a `backend` and/or `web-frontend` folder. - -## How to run {{ cookiecutter.project_name }} using Docker-compose - -A number of different example docker-compose files are provided in this folder. Before -using any of them it is recommended you set the following env variables: - -```bash -# Enable Docker buildkit -export COMPOSE_DOCKER_CLI_BUILD=1 -export DOCKER_BUILDKIT=1 -# Set these variables so the images are built and run with the same uid/gid as your -# actual user. This prevents permission issues when mounting your local source into -# the images. -export PLUGIN_BUILD_UID=$(id -u) -export PLUGIN_BUILD_GID=$(id -g) -``` - -1. `docker-compose.yml` - This is the simplest compose file that will run the your - plugin installed into a single container, use `docker-compose up`. -2. `docker-compose.multi-service.yml` - This is a more complex compose file which runs - each of the Baserow services with your plugin installed in separate containers all - behind a Caddy reverse proxy. - 1. `docker-compose -f docker-compose.multi-service.yml up -d --build` -4. `docker-compose.dev.yml` - This is a development compose file which - runs a Baserow all-in-one image with your plugin installed in development mode. - Additionally, it will mount in the local source code into the container for hot code - reloading. - 1. `docker-compose -f docker-compose.dev.yml up -d --build` -4. `docker-compose.multi-service.dev.yml` - This is a development compose file which - runs the services in a separate containers like the `.multi-service.yml` above. The - images used will be the development variants which have dev dependencies installed. - Additionally, it will mount in the local source code into the containers so for hot - code reloading. - 1. `docker-compose -f docker-compose.multi-service.dev.yml up -d --build` - -## Missing features TODO - -1. A templated setup guide in the generated folder itself. -2. Example tests for web-frontend and backend. -3. An equivalent dev.sh -4. Setup instructions for IDEs (vs-code/intellij) -5. Example GitLab/GitHub CI integration + instructions to publish plugin to Dockerhub. diff --git a/plugin-boilerplate/{{ cookiecutter.project_slug }}/backend-dev.Dockerfile b/plugin-boilerplate/{{ cookiecutter.project_slug }}/backend-dev.Dockerfile index 9844c92562..425c344747 100644 --- a/plugin-boilerplate/{{ cookiecutter.project_slug }}/backend-dev.Dockerfile +++ b/plugin-boilerplate/{{ cookiecutter.project_slug }}/backend-dev.Dockerfile @@ -1,7 +1,7 @@ # This a dev image for testing your plugin when installed into the Baserow backend image -FROM baserow/backend:2.1.1 as base +FROM baserow/backend:2.1.2 as base -FROM baserow/backend:2.1.1 +FROM baserow/backend:2.1.2 USER root diff --git a/plugin-boilerplate/{{ cookiecutter.project_slug }}/backend.Dockerfile b/plugin-boilerplate/{{ cookiecutter.project_slug }}/backend.Dockerfile index b59067a411..c07ece6a3a 100644 --- a/plugin-boilerplate/{{ cookiecutter.project_slug }}/backend.Dockerfile +++ b/plugin-boilerplate/{{ cookiecutter.project_slug }}/backend.Dockerfile @@ -1,4 +1,4 @@ -FROM baserow/backend:2.1.1 +FROM baserow/backend:2.1.2 USER root diff --git a/plugin-boilerplate/{{ cookiecutter.project_slug }}/dev.Dockerfile b/plugin-boilerplate/{{ cookiecutter.project_slug }}/dev.Dockerfile index becd3bb98e..daeae313ba 100644 --- a/plugin-boilerplate/{{ cookiecutter.project_slug }}/dev.Dockerfile +++ b/plugin-boilerplate/{{ cookiecutter.project_slug }}/dev.Dockerfile @@ -1,7 +1,7 @@ # This a dev image for testing your plugin when installed into the Baserow all-in-one image -FROM baserow/baserow:2.1.1 as base +FROM baserow/baserow:2.1.2 as base -FROM baserow/baserow:2.1.1 +FROM baserow/baserow:2.1.2 ARG PLUGIN_BUILD_UID ENV PLUGIN_BUILD_UID=${PLUGIN_BUILD_UID:-9999} diff --git a/plugin-boilerplate/{{ cookiecutter.project_slug }}/docker-compose.dev.yml b/plugin-boilerplate/{{ cookiecutter.project_slug }}/docker-compose.dev.yml deleted file mode 100644 index 0660b781cb..0000000000 --- a/plugin-boilerplate/{{ cookiecutter.project_slug }}/docker-compose.dev.yml +++ /dev/null @@ -1,34 +0,0 @@ -# MAKE SURE YOU HAVE SET THE REQUIRED VARIABLES IN the .env FILE.configs: - -# This compose file starts up a dev version of the plugin with hot code reloading. -# It is accessible at http://localhost . - -services: - {{ cookiecutter.project_slug }}: - container_name: {{ cookiecutter.project_slug }} - image: {{ cookiecutter.project_slug }}_dev - build: - dockerfile: ./dev.Dockerfile - context: . - args: - # We allow configuring the PLUGIN_BUILD_UID/PLUGIN_BUILD_GID here so you can run as the dev's actual user - # reducing the chance the containers screw up the bind mounted folders. - PLUGIN_BUILD_UID: $PLUGIN_BUILD_UID - PLUGIN_BUILD_GID: $PLUGIN_BUILD_GID - ports: - - "80:80" - - "443:443" - environment: - BASEROW_PUBLIC_URL: http://localhost - volumes: - - baserow_data:/baserow/data - - ./plugins/{{ cookiecutter.project_module }}/backend:/baserow/data/plugins/{{ cookiecutter.project_module }}/backend - # Override the for node_modules, so we use the node_modules built - # directly into the image instead of whatever is on your local filesystem. - - /baserow/data/plugins/{{ cookiecutter.project_module }}/web-frontend/node_modules - - ./plugins/{{ cookiecutter.project_module }}/web-frontend:/baserow/data/plugins/{{ cookiecutter.project_module }}/web-frontend - # Open stdin and tty so when attaching key input works as expected. - stdin_open: true - tty: true -volumes: - baserow_data: \ No newline at end of file diff --git a/plugin-boilerplate/{{ cookiecutter.project_slug }}/docker-compose.multi-service.dev.yml b/plugin-boilerplate/{{ cookiecutter.project_slug }}/docker-compose.multi-service.dev.yml index 9d56f8dc48..2921ad0ebf 100644 --- a/plugin-boilerplate/{{ cookiecutter.project_slug }}/docker-compose.multi-service.dev.yml +++ b/plugin-boilerplate/{{ cookiecutter.project_slug }}/docker-compose.multi-service.dev.yml @@ -6,7 +6,7 @@ services: # A caddy http server just used for serving media in dev. caddy: - image: caddy:2.10.2 + image: caddy:2.11.1 env_file: - .env ports: diff --git a/plugin-boilerplate/{{ cookiecutter.project_slug }}/docker-compose.multi-service.yml b/plugin-boilerplate/{{ cookiecutter.project_slug }}/docker-compose.multi-service.yml index f7f37d61ff..0d753ff7de 100644 --- a/plugin-boilerplate/{{ cookiecutter.project_slug }}/docker-compose.multi-service.yml +++ b/plugin-boilerplate/{{ cookiecutter.project_slug }}/docker-compose.multi-service.yml @@ -7,7 +7,7 @@ services: # A caddy reverse proxy sitting in-front of all the services. caddy: - image: caddy:2.10.2 + image: caddy:2.11.1 restart: unless-stopped env_file: - .env diff --git a/plugin-boilerplate/{{ cookiecutter.project_slug }}/docker-compose.yml b/plugin-boilerplate/{{ cookiecutter.project_slug }}/docker-compose.yml deleted file mode 100644 index ca7ba731c9..0000000000 --- a/plugin-boilerplate/{{ cookiecutter.project_slug }}/docker-compose.yml +++ /dev/null @@ -1,16 +0,0 @@ -services: - {{ cookiecutter.project_slug }}: - container_name: {{ cookiecutter.project_slug }} - image: {{ cookiecutter.project_slug }} - build: - context: . - dockerfile: Dockerfile - ports: - - "80:80" - - "443:443" - environment: - BASEROW_PUBLIC_URL: http://localhost - volumes: - - baserow_data:/baserow/data -volumes: - baserow_data: \ No newline at end of file diff --git a/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/backend/.flake8 b/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/backend/.flake8 deleted file mode 100644 index 5aacc3a127..0000000000 --- a/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/backend/.flake8 +++ /dev/null @@ -1,8 +0,0 @@ -[flake8] -extend-ignore = E203, W503, F541, E501 -max-doc-length = 88 -per-file-ignores = - tests/*: F841 -exclude = - .git, - __pycache__, diff --git a/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/backend/Makefile b/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/backend/Makefile deleted file mode 100644 index d348409ad1..0000000000 --- a/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/backend/Makefile +++ /dev/null @@ -1,16 +0,0 @@ -lint: - flake8 src tests && \ - black . --extend-exclude='/generated/' --check && \ - bandit -r src/ \ - || exit; - -lint-python: lint - -format: - black . --extend-exclude='/generated/' || exit; - -test: - pytest tests || exit; - -test-parallel: - pytest tests -n 10 || exit; diff --git a/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/backend/build.sh b/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/backend/build.sh deleted file mode 100755 index cd6137245d..0000000000 --- a/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/backend/build.sh +++ /dev/null @@ -1,18 +0,0 @@ -#!/bin/bash -# Bash strict mode: http://redsymbol.net/articles/unofficial-bash-strict-mode/ -set -euo pipefail - -# This file is automatically run by Baserow when the plugin is built into a Dockerfile. -# It will also be called when building the plugin in an existing container. You should -# only perform build steps in this script. - -# Any install steps that will modify things in Baserow's data volume should instead -# be done in the runtime_setup.sh script next to this one. For example running some -# SQL against the embedded postgres database should not be done in this script as it -# makes no sense to do that in a Dockerfile build. - -# Baserow will automatically install this python module for you so you should not -# repeat any python dependency installation steps here. - -# Instead this file is ideal for any other installation custom steps here required by -# your plugin. For example installing a postgres extension used by your plugin. diff --git a/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/backend/pyproject.toml b/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/backend/pyproject.toml deleted file mode 100644 index 93411ef4f2..0000000000 --- a/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/backend/pyproject.toml +++ /dev/null @@ -1,8 +0,0 @@ -[tool.black] -exclude = ''' -/( - | migrations - | generated -)/ - -''' \ No newline at end of file diff --git a/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/backend/pytest.ini b/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/backend/pytest.ini deleted file mode 100644 index d7803558eb..0000000000 --- a/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/backend/pytest.ini +++ /dev/null @@ -1,7 +0,0 @@ -[pytest] -DJANGO_SETTINGS_MODULE = baserow.config.settings.test -python_files = test_*.py -env = - DJANGO_SETTINGS_MODULE = baserow.config.settings.test -testpaths = - tests diff --git a/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/backend/requirements/base.in b/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/backend/requirements/base.in deleted file mode 100644 index 1782d34dea..0000000000 --- a/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/backend/requirements/base.in +++ /dev/null @@ -1,2 +0,0 @@ --r /baserow/backend/requirements/base.in --e /baserow/backend/ diff --git a/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/backend/requirements/base.txt b/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/backend/requirements/base.txt deleted file mode 100644 index 26d3e0e1ad..0000000000 --- a/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/backend/requirements/base.txt +++ /dev/null @@ -1,10 +0,0 @@ -# -# This file is autogenerated by pip-compile with Python 3.11 -# by the following command: -# -# pip-compile --output-file=base.txt base.in -# --e file:///baserow/backend - -# The following packages are considered to be unsafe in a requirements file: -# setuptools diff --git a/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/backend/requirements/dev.in b/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/backend/requirements/dev.in deleted file mode 100644 index 337d1d61a0..0000000000 --- a/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/backend/requirements/dev.in +++ /dev/null @@ -1,45 +0,0 @@ --r base.in -flake8==7.0.0 -pytest==8.2.0 -pytest-django==4.8.0 -pytest-env==1.1.3 -pytest-asyncio==0.23.6 -pytest-ordering==0.6 -pytest-mock==3.14.0 -pytest-icdiff==0.9 -freezegun==1.5.0 -responses==0.25.0 -watchdog==4.0.0 -argh==0.31.2 -black==23.3.0 -pyinstrument==4.6.2 -pyfakefs==5.4.1 -pytest-xdist==3.6.1 -django-silk==5.1.0 -django-extensions==3.2.3 -snoop==0.4.3 -openapi-spec-validator==0.5.6 -pytest-html==4.1.1 -coverage==7.5.1 -pytest-split==0.8.2 -bandit==1.7.8 -pip-tools==7.4.1 -autopep8==2.1.0 -pytest-unordered==0.6.0 -debugpy==1.8.1 -backports.cached-property==1.0.2 -httpretty==1.1.4 -graphviz==0.20.3 -pytest-cov==5.0.0 -django-stubs==1.16.0 -django-stubs-ext==0.8.0 -# ignored for now because of version conflict -# djangorestframework-stubs==1.10.0 -mypy==1.10.0 -mypy-extensions==1.0.0 -isort==5.13.2 -ipython -fakeredis[lua]==2.23.2 -ipdb -# build is used to compile a wheel package with `python -m build .` command. -build diff --git a/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/backend/requirements/dev.txt b/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/backend/requirements/dev.txt deleted file mode 100644 index d132e8faf6..0000000000 --- a/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/backend/requirements/dev.txt +++ /dev/null @@ -1,912 +0,0 @@ -# -# This file is autogenerated by pip-compile with Python 3.11 -# by the following command: -# -# pip-compile --output-file=dev.txt dev.in -# --e file:///baserow/backend - # via -r base.in -advocate==1.0.0 - # via -r /baserow/backend/requirements/base.in -amqp==5.2.0 - # via kombu -annotated-types==0.7.0 - # via pydantic -anthropic==0.37.1 - # via -r /baserow/backend/requirements/base.in -antlr4-python3-runtime==4.9.3 - # via -r /baserow/backend/requirements/base.in -anyio==4.4.0 - # via - # anthropic - # httpx - # openai - # watchfiles -argh==0.31.2 - # via -r dev.in -asgiref==3.8.1 - # via - # -r /baserow/backend/requirements/base.in - # channels - # channels-redis - # daphne - # django - # django-cors-headers - # opentelemetry-instrumentation-asgi -asttokens==2.0.5 - # via - # snoop - # stack-data -async-timeout==4.0.3 - # via redis -attrs==23.2.0 - # via - # automat - # jsonschema - # service-identity - # twisted -autobahn==23.6.2 - # via daphne -automat==22.10.0 - # via twisted -autopep8==2.1.0 - # via - # -r dev.in - # django-silk -azure-core==1.30.2 - # via - # azure-storage-blob - # django-storages -azure-storage-blob==12.21.0 - # via django-storages -backoff==2.2.1 - # via posthog -backports-cached-property==1.0.2 - # via -r dev.in -bandit==1.7.8 - # via -r dev.in -billiard==4.2.0 - # via celery -black==23.3.0 - # via -r dev.in -boto3==1.34.98 - # via -r /baserow/backend/requirements/base.in -botocore==1.34.151 - # via - # boto3 - # s3transfer -brotli==1.1.0 - # via -r /baserow/backend/requirements/base.in -build==1.2.1 - # via - # -r dev.in - # pip-tools -cachetools==5.4.0 - # via google-auth -celery[redis]==5.4.0 - # via - # -r /baserow/backend/requirements/base.in - # celery-redbeat - # celery-singleton - # django-celery-beat - # django-celery-email - # flower -celery-redbeat==2.2.0 - # via -r /baserow/backend/requirements/base.in -celery-singleton==0.3.1 - # via -r /baserow/backend/requirements/base.in -certifi==2021.10.8 - # via - # httpcore - # httpx - # requests - # sentry-sdk -cffi==1.16.0 - # via cryptography -channels[daphne]==4.0.0 - # via - # -r /baserow/backend/requirements/base.in - # channels-redis -channels-redis==4.1.0 - # via -r /baserow/backend/requirements/base.in -charset-normalizer==2.0.12 - # via requests -cheap-repr==0.5.1 - # via snoop -click==8.1.7 - # via - # black - # celery - # click-didyoumean - # click-plugins - # click-repl - # pip-tools - # uvicorn -click-didyoumean==0.3.1 - # via celery -click-plugins==1.1.1 - # via celery -click-repl==0.3.0 - # via celery -constantly==23.10.4 - # via twisted -coverage[toml]==7.5.1 - # via - # -r dev.in - # pytest-cov -cron-descriptor==1.4.3 - # via django-celery-beat -cryptography==43.0.0 - # via - # autobahn - # azure-storage-blob - # pyopenssl - # pysaml2 - # service-identity -daphne==4.1.2 - # via channels -debugpy==1.8.1 - # via -r dev.in -decorator==5.1.1 - # via - # ipdb - # ipython -defusedxml==0.7.1 - # via pysaml2 -deprecated==1.2.14 - # via - # opentelemetry-api - # opentelemetry-exporter-otlp-proto-http - # opentelemetry-semantic-conventions -distro==1.9.0 - # via - # anthropic - # openai -dj-database-url==2.1.1 - # via -r /baserow/backend/requirements/base.in -django==5.0.13 - # via - # -r /baserow/backend/requirements/base.in - # channels - # dj-database-url - # django-appconf - # django-cachalot - # django-celery-beat - # django-celery-email - # django-cors-headers - # django-extensions - # django-health-check - # django-redis - # django-silk - # django-storages - # django-stubs - # django-stubs-ext - # django-timezone-field - # djangorestframework - # djangorestframework-simplejwt - # drf-spectacular -django-appconf==1.0.6 - # via django-celery-email -django-cachalot==2.6.2 - # via -r /baserow/backend/requirements/base.in -django-celery-beat==2.6.0 - # via -r /baserow/backend/requirements/base.in -django-celery-email==3.0.0 - # via -r /baserow/backend/requirements/base.in -django-cors-headers==4.3.1 - # via -r /baserow/backend/requirements/base.in -django-extensions==3.2.3 - # via -r dev.in -django-health-check==3.18.2 - # via -r /baserow/backend/requirements/base.in -django-redis==5.4.0 - # via -r /baserow/backend/requirements/base.in -django-silk==5.1.0 - # via -r dev.in -django-storages[azure,google]==1.14.3 - # via -r /baserow/backend/requirements/base.in -django-stubs==1.16.0 - # via -r dev.in -django-stubs-ext==0.8.0 - # via - # -r dev.in - # django-stubs -django-timezone-field==7.0 - # via django-celery-beat -djangorestframework==3.15.1 - # via - # -r /baserow/backend/requirements/base.in - # djangorestframework-simplejwt - # drf-spectacular -djangorestframework-simplejwt==5.3.1 - # via -r /baserow/backend/requirements/base.in -drf-spectacular==0.27.2 - # via -r /baserow/backend/requirements/base.in -elementpath==4.4.0 - # via xmlschema -et-xmlfile==2.0.0 - # via openpyxl -eval-type-backport==0.2.0 - # via mistralai -execnet==2.1.1 - # via pytest-xdist -executing==0.8.3 - # via - # snoop - # stack-data -faker==25.0.1 - # via -r /baserow/backend/requirements/base.in -fakeredis[lua]==2.23.2 - # via -r dev.in -filelock==3.16.1 - # via huggingface-hub -flake8==7.0.0 - # via -r dev.in -flower==2.0.1 - # via -r /baserow/backend/requirements/base.in -freezegun==1.5.0 - # via -r dev.in -fsspec==2024.10.0 - # via huggingface-hub -google-api-core==2.19.1 - # via - # google-cloud-core - # google-cloud-storage -google-auth==2.32.0 - # via - # google-api-core - # google-cloud-core - # google-cloud-storage -google-cloud-core==2.4.1 - # via google-cloud-storage -google-cloud-storage==2.18.0 - # via django-storages -google-crc32c==1.5.0 - # via - # google-cloud-storage - # google-resumable-media -google-resumable-media==2.7.1 - # via google-cloud-storage -googleapis-common-protos==1.63.2 - # via - # google-api-core - # opentelemetry-exporter-otlp-proto-http -gprof2dot==2021.2.21 - # via django-silk -graphviz==0.20.3 - # via -r dev.in -greenlet==3.0.3 - # via sqlalchemy -gunicorn==23.0.0 - # via -r /baserow/backend/requirements/base.in -h11==0.14.0 - # via - # httpcore - # uvicorn -httpcore==1.0.5 - # via httpx -httpretty==1.1.4 - # via -r dev.in -httptools==0.6.1 - # via uvicorn -httpx==0.27.0 - # via - # anthropic - # langsmith - # mistralai - # ollama - # openai -huggingface-hub==0.26.2 - # via tokenizers -humanize==4.10.0 - # via flower -hyperlink==21.0.0 - # via - # autobahn - # twisted -icalendar==5.0.12 - # via -r /baserow/backend/requirements/base.in -icdiff==2.0.4 - # via pytest-icdiff -idna==3.3 - # via - # anyio - # httpx - # hyperlink - # requests - # twisted -importlib-metadata==7.0.0 - # via opentelemetry-api -incremental==24.7.2 - # via twisted -inflection==0.5.1 - # via drf-spectacular -iniconfig==1.1.1 - # via pytest -ipdb==0.13.13 - # via -r dev.in -ipython==8.23.0 - # via - # -r dev.in - # ipdb -isodate==0.6.1 - # via azure-storage-blob -isort==5.13.2 - # via -r dev.in -itsdangerous==2.2.0 - # via -r /baserow/backend/requirements/base.in -jedi==0.19.1 - # via ipython -jinja2==3.0.3 - # via pytest-html -jira2markdown==0.3.7 - # via -r /baserow/backend/requirements/base.in -jiter==0.7.1 - # via anthropic -jmespath==1.0.1 - # via - # boto3 - # botocore -jsonpatch==1.33 - # via langchain-core -jsonpath-python==1.0.6 - # via mistralai -jsonpointer==3.0.0 - # via jsonpatch -jsonschema==4.17.3 - # via - # -r /baserow/backend/requirements/base.in - # drf-spectacular - # jsonschema-spec - # openapi-schema-validator - # openapi-spec-validator -jsonschema-spec==0.1.6 - # via openapi-spec-validator -kombu==5.3.7 - # via celery -langchain==0.3.21 - # via -r /baserow/backend/requirements/base.in -langchain-core==0.3.48 - # via - # langchain - # langchain-text-splitters -langchain-text-splitters==0.3.7 - # via langchain -langsmith==0.3.18 - # via - # langchain - # langchain-core -lazy-object-proxy==1.10.0 - # via openapi-spec-validator -loguru==0.7.2 - # via -r /baserow/backend/requirements/base.in -lupa==2.2 - # via fakeredis -markdown-it-py==2.2.0 - # via rich -markupsafe==2.1.1 - # via jinja2 -matplotlib-inline==0.1.7 - # via ipython -mccabe==0.7.0 - # via flake8 -mdurl==0.1.2 - # via markdown-it-py -mistralai==1.1.0 - # via -r /baserow/backend/requirements/base.in -monotonic==1.6 - # via posthog -msgpack==1.0.8 - # via channels-redis -mypy==1.10.0 - # via - # -r dev.in - # django-stubs -mypy-extensions==1.0.0 - # via - # -r dev.in - # black - # mypy - # typing-inspect -ndg-httpsclient==0.5.1 - # via advocate -netifaces==0.11.0 - # via advocate -oauthlib==3.2.2 - # via requests-oauthlib -ollama==0.1.9 - # via -r /baserow/backend/requirements/base.in -openai==1.30.1 - # via -r /baserow/backend/requirements/base.in -openapi-schema-validator==0.4.4 - # via openapi-spec-validator -openapi-spec-validator==0.5.6 - # via -r dev.in -openpyxl==3.1.5 - # via -r /baserow/backend/requirements/base.in -opentelemetry-api==1.29.0 - # via - # -r /baserow/backend/requirements/base.in - # opentelemetry-exporter-otlp-proto-http - # opentelemetry-instrumentation - # opentelemetry-instrumentation-aiohttp-client - # opentelemetry-instrumentation-asgi - # opentelemetry-instrumentation-botocore - # opentelemetry-instrumentation-celery - # opentelemetry-instrumentation-dbapi - # opentelemetry-instrumentation-django - # opentelemetry-instrumentation-grpc - # opentelemetry-instrumentation-logging - # opentelemetry-instrumentation-psycopg - # opentelemetry-instrumentation-psycopg2 - # opentelemetry-instrumentation-redis - # opentelemetry-instrumentation-requests - # opentelemetry-instrumentation-wsgi - # opentelemetry-propagator-aws-xray - # opentelemetry-sdk - # opentelemetry-semantic-conventions -opentelemetry-exporter-otlp-proto-common==1.29.0 - # via opentelemetry-exporter-otlp-proto-http -opentelemetry-exporter-otlp-proto-http==1.29.0 - # via -r /baserow/backend/requirements/base.in -opentelemetry-instrumentation==0.50b0 - # via - # -r /baserow/backend/requirements/base.in - # opentelemetry-instrumentation-aiohttp-client - # opentelemetry-instrumentation-asgi - # opentelemetry-instrumentation-botocore - # opentelemetry-instrumentation-celery - # opentelemetry-instrumentation-dbapi - # opentelemetry-instrumentation-django - # opentelemetry-instrumentation-grpc - # opentelemetry-instrumentation-logging - # opentelemetry-instrumentation-psycopg - # opentelemetry-instrumentation-psycopg2 - # opentelemetry-instrumentation-redis - # opentelemetry-instrumentation-requests - # opentelemetry-instrumentation-wsgi -opentelemetry-instrumentation-aiohttp-client==0.50b0 - # via -r /baserow/backend/requirements/base.in -opentelemetry-instrumentation-asgi==0.50b0 - # via -r /baserow/backend/requirements/base.in -opentelemetry-instrumentation-botocore==0.50b0 - # via -r /baserow/backend/requirements/base.in -opentelemetry-instrumentation-celery==0.50b0 - # via -r /baserow/backend/requirements/base.in -opentelemetry-instrumentation-dbapi==0.50b0 - # via - # -r /baserow/backend/requirements/base.in - # opentelemetry-instrumentation-psycopg - # opentelemetry-instrumentation-psycopg2 -opentelemetry-instrumentation-django==0.50b0 - # via -r /baserow/backend/requirements/base.in -opentelemetry-instrumentation-grpc==0.50b0 - # via -r /baserow/backend/requirements/base.in -opentelemetry-instrumentation-logging==0.50b0 - # via -r /baserow/backend/requirements/base.in -opentelemetry-instrumentation-psycopg==0.50b0 - # via -r /baserow/backend/requirements/base.in -opentelemetry-instrumentation-psycopg2==0.50b0 - # via -r /baserow/backend/requirements/base.in -opentelemetry-instrumentation-redis==0.50b0 - # via -r /baserow/backend/requirements/base.in -opentelemetry-instrumentation-requests==0.50b0 - # via -r /baserow/backend/requirements/base.in -opentelemetry-instrumentation-wsgi==0.50b0 - # via - # -r /baserow/backend/requirements/base.in - # opentelemetry-instrumentation-django -opentelemetry-propagator-aws-xray==1.0.1 - # via opentelemetry-instrumentation-botocore -opentelemetry-proto==1.29.0 - # via - # -r /baserow/backend/requirements/base.in - # opentelemetry-exporter-otlp-proto-common - # opentelemetry-exporter-otlp-proto-http -opentelemetry-sdk==1.29.0 - # via - # -r /baserow/backend/requirements/base.in - # opentelemetry-exporter-otlp-proto-http -opentelemetry-semantic-conventions==0.50b0 - # via - # -r /baserow/backend/requirements/base.in - # opentelemetry-instrumentation - # opentelemetry-instrumentation-aiohttp-client - # opentelemetry-instrumentation-asgi - # opentelemetry-instrumentation-botocore - # opentelemetry-instrumentation-celery - # opentelemetry-instrumentation-dbapi - # opentelemetry-instrumentation-django - # opentelemetry-instrumentation-grpc - # opentelemetry-instrumentation-redis - # opentelemetry-instrumentation-requests - # opentelemetry-instrumentation-wsgi - # opentelemetry-sdk -opentelemetry-util-http==0.50b0 - # via - # -r /baserow/backend/requirements/base.in - # opentelemetry-instrumentation-aiohttp-client - # opentelemetry-instrumentation-asgi - # opentelemetry-instrumentation-django - # opentelemetry-instrumentation-requests - # opentelemetry-instrumentation-wsgi -orjson==3.10.6 - # via langsmith -packaging==23.2 - # via - # black - # build - # gunicorn - # huggingface-hub - # langchain-core - # langsmith - # opentelemetry-instrumentation - # pytest -parso==0.8.4 - # via jedi -pathable==0.4.3 - # via jsonschema-spec -pathspec==0.9.0 - # via black -pbr==5.8.1 - # via stevedore -pexpect==4.9.0 - # via ipython -pillow==10.3.0 - # via -r /baserow/backend/requirements/base.in -pip-tools==7.4.1 - # via -r dev.in -platformdirs==4.2.2 - # via black -pluggy==1.5.0 - # via pytest -posthog==3.5.0 - # via -r /baserow/backend/requirements/base.in -pprintpp==0.4.0 - # via pytest-icdiff -prometheus-client==0.20.0 - # via flower -prompt-toolkit==3.0.47 - # via - # click-repl - # ipython -prosemirror @ https://github.com/fellowapp/prosemirror-py/archive/refs/tags/v0.3.5.zip - # via -r /baserow/backend/requirements/base.in -proto-plus==1.24.0 - # via google-api-core -protobuf==5.29.2 - # via - # google-api-core - # googleapis-common-protos - # opentelemetry-proto - # proto-plus -psutil==5.9.8 - # via -r /baserow/backend/requirements/base.in -psycopg2==2.9.10 - # via -r /baserow/backend/requirements/base.in -ptyprocess==0.7.0 - # via pexpect -pure-eval==0.2.3 - # via stack-data -pyasn1==0.6.0 - # via - # advocate - # ndg-httpsclient - # pyasn1-modules - # rsa - # service-identity -pyasn1-modules==0.4.0 - # via - # google-auth - # service-identity -pycodestyle==2.11.1 - # via - # autopep8 - # flake8 -pycparser==2.22 - # via cffi -pydantic==2.9.2 - # via - # anthropic - # langchain - # langchain-core - # langsmith - # mistralai - # openai -pydantic-core==2.23.4 - # via pydantic -pyfakefs==5.4.1 - # via -r dev.in -pyflakes==3.2.0 - # via flake8 -pygments==2.18.0 - # via - # ipython - # rich - # snoop -pyinstrument==4.6.2 - # via -r dev.in -pyjwt==2.8.0 - # via djangorestframework-simplejwt -pyopenssl==24.2.1 - # via - # advocate - # ndg-httpsclient - # pysaml2 - # twisted -pyparsing==3.2.0 - # via jira2markdown -pyproject-hooks==1.1.0 - # via - # build - # pip-tools -pyrsistent==0.18.1 - # via jsonschema -pysaml2==7.5.0 - # via -r /baserow/backend/requirements/base.in -pytest==8.2.0 - # via - # -r dev.in - # pytest-asyncio - # pytest-cov - # pytest-django - # pytest-env - # pytest-html - # pytest-icdiff - # pytest-metadata - # pytest-mock - # pytest-ordering - # pytest-split - # pytest-unordered - # pytest-xdist -pytest-asyncio==0.23.6 - # via -r dev.in -pytest-cov==5.0.0 - # via -r dev.in -pytest-django==4.8.0 - # via -r dev.in -pytest-env==1.1.3 - # via -r dev.in -pytest-html==4.1.1 - # via -r dev.in -pytest-icdiff==0.9 - # via -r dev.in -pytest-metadata==3.1.1 - # via pytest-html -pytest-mock==3.14.0 - # via -r dev.in -pytest-ordering==0.6 - # via -r dev.in -pytest-split==0.8.2 - # via -r dev.in -pytest-unordered==0.6.0 - # via -r dev.in -pytest-xdist==3.6.1 - # via -r dev.in -python-crontab==3.2.0 - # via django-celery-beat -python-dateutil==2.8.2 - # via - # botocore - # celery - # celery-redbeat - # faker - # freezegun - # icalendar - # mistralai - # posthog - # pysaml2 - # python-crontab -python-dotenv==1.0.1 - # via uvicorn -pytz==2021.3 - # via - # flower - # icalendar - # pysaml2 -pyyaml==6.0 - # via - # bandit - # drf-spectacular - # huggingface-hub - # jsonschema-spec - # langchain - # langchain-core - # responses - # uvicorn -redis==5.0.4 - # via - # -r /baserow/backend/requirements/base.in - # celery - # celery-redbeat - # celery-singleton - # channels-redis - # django-redis - # fakeredis -regex==2024.4.28 - # via -r /baserow/backend/requirements/base.in -requests==2.31.0 - # via - # -r /baserow/backend/requirements/base.in - # advocate - # azure-core - # google-api-core - # google-cloud-storage - # huggingface-hub - # jsonschema-spec - # langchain - # langsmith - # opentelemetry-exporter-otlp-proto-http - # posthog - # pysaml2 - # requests-oauthlib - # requests-toolbelt - # responses -requests-oauthlib==2.0.0 - # via -r /baserow/backend/requirements/base.in -requests-toolbelt==1.0.0 - # via langsmith -responses==0.25.0 - # via -r dev.in -rfc3339-validator==0.1.4 - # via openapi-schema-validator -rich==13.7.1 - # via - # -r /baserow/backend/requirements/base.in - # bandit -rsa==4.9 - # via google-auth -s3transfer==0.10.2 - # via boto3 -sentry-sdk==2.0.1 - # via -r /baserow/backend/requirements/base.in -service-identity==24.1.0 - # via - # -r /baserow/backend/requirements/base.in - # twisted -six==1.16.0 - # via - # advocate - # asttokens - # automat - # azure-core - # isodate - # posthog - # python-dateutil - # rfc3339-validator - # snoop -sniffio==1.3.1 - # via - # anthropic - # anyio - # httpx - # openai -snoop==0.4.3 - # via -r dev.in -sortedcontainers==2.4.0 - # via fakeredis -sqlalchemy==2.0.31 - # via langchain -sqlparse==0.4.4 - # via - # django - # django-silk -stack-data==0.5.1 - # via ipython -stevedore==3.5.0 - # via bandit -tenacity==8.5.0 - # via - # celery-redbeat - # langchain-core -tokenizers==0.20.3 - # via anthropic -tomli==1.2.3 - # via django-stubs -tornado==6.4.1 - # via flower -tqdm==4.66.4 - # via - # -r /baserow/backend/requirements/base.in - # huggingface-hub - # openai -traitlets==5.14.3 - # via - # ipython - # matplotlib-inline -twisted[tls]==24.3.0 - # via - # -r /baserow/backend/requirements/base.in - # daphne -txaio==23.1.1 - # via autobahn -types-pytz==2024.1.0.20240417 - # via django-stubs -types-pyyaml==6.0.12.20240724 - # via django-stubs -typing-extensions==4.11.0 - # via - # -r /baserow/backend/requirements/base.in - # anthropic - # azure-core - # azure-storage-blob - # dj-database-url - # django-stubs - # django-stubs-ext - # huggingface-hub - # ipython - # langchain-core - # mypy - # openai - # opentelemetry-sdk - # prosemirror - # pydantic - # pydantic-core - # sqlalchemy - # twisted - # typing-inspect -typing-inspect==0.9.0 - # via mistralai -tzdata==2024.1 - # via - # -r /baserow/backend/requirements/base.in - # celery - # django-celery-beat -unicodecsv==0.14.1 - # via -r /baserow/backend/requirements/base.in -uritemplate==4.1.1 - # via drf-spectacular -urllib3==1.26.19 - # via - # advocate - # botocore - # requests - # responses - # sentry-sdk -uvicorn[standard]==0.29.0 - # via -r /baserow/backend/requirements/base.in -uvloop==0.19.0 - # via uvicorn -validators==0.28.1 - # via -r /baserow/backend/requirements/base.in -vine==5.1.0 - # via - # amqp - # celery - # kombu -watchdog==4.0.0 - # via -r dev.in -watchfiles==0.22.0 - # via uvicorn -wcwidth==0.2.13 - # via prompt-toolkit -websockets==12.0 - # via - # -r /baserow/backend/requirements/base.in - # uvicorn -wheel==0.38.1 - # via pip-tools -wrapt==1.16.0 - # via - # deprecated - # opentelemetry-instrumentation - # opentelemetry-instrumentation-aiohttp-client - # opentelemetry-instrumentation-dbapi - # opentelemetry-instrumentation-grpc - # opentelemetry-instrumentation-redis -xmlschema==2.5.1 - # via pysaml2 -zipp==3.18.1 - # via - # -r /baserow/backend/requirements/base.in - # importlib-metadata -zipstream-ng==1.8.0 - # via -r /baserow/backend/requirements/base.in -zope-interface==6.4.post2 - # via twisted -zstandard==0.23.0 - # via langsmith - -# The following packages are considered to be unsafe in a requirements file: -# pip -# setuptools diff --git a/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/backend/runtime_setup.sh b/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/backend/runtime_setup.sh deleted file mode 100755 index 1be7c8a992..0000000000 --- a/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/backend/runtime_setup.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/bash -# Bash strict mode: http://redsymbol.net/articles/unofficial-bash-strict-mode/ -set -euo pipefail - -# This file is automatically run by Baserow when a Baserow container starts up for the -# first time with this plugin already installed and built. It should impotently run -# any runtime setup that involves doing things with the embedded postgres database -# and/or the data volume. diff --git a/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/backend/setup.py b/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/backend/setup.py deleted file mode 100644 index 87b6b14cbf..0000000000 --- a/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/backend/setup.py +++ /dev/null @@ -1,36 +0,0 @@ -#!/usr/bin/env python -import os - -from setuptools import find_packages, setup - -PROJECT_DIR = os.path.dirname(__file__) -REQUIREMENTS_DIR = os.path.join(PROJECT_DIR, "requirements") -VERSION = "1.0.0" - - -def get_requirements(env): - with open(os.path.join(REQUIREMENTS_DIR, f"{env}.txt")) as fp: - return [ - x.strip() - for x in fp.read().split("\n") - if not x.strip().startswith("#") and not x.strip().startswith("-") - ] - - -install_requires = get_requirements("base") - -setup( - name="{{ cookiecutter.project_slug }}", - version=VERSION, - url="TODO", - author="TODO", - author_email="TODO", - license="TODO", - description="TODO", - long_description="TODO", - platforms=["linux"], - package_dir={"": "src"}, - packages=find_packages("src"), - include_package_data=True, - install_requires=install_requires -) diff --git a/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/backend/src/__init__.py b/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/backend/src/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/backend/src/{{ cookiecutter.project_module }}/__init__.py b/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/backend/src/{{ cookiecutter.project_module }}/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/backend/src/{{ cookiecutter.project_module }}/api/__init__.py b/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/backend/src/{{ cookiecutter.project_module }}/api/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/backend/src/{{ cookiecutter.project_module }}/api/urls.py b/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/backend/src/{{ cookiecutter.project_module }}/api/urls.py deleted file mode 100644 index ef7618f68f..0000000000 --- a/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/backend/src/{{ cookiecutter.project_module }}/api/urls.py +++ /dev/null @@ -1,9 +0,0 @@ -from django.urls import re_path - -from .views import StartingView - -app_name = "{{ cookiecutter.project_module }}.api" - -urlpatterns = [ - re_path(r"starting/$", StartingView.as_view(), name="starting"), -] diff --git a/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/backend/src/{{ cookiecutter.project_module }}/api/views.py b/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/backend/src/{{ cookiecutter.project_module }}/api/views.py deleted file mode 100644 index a7a14ba958..0000000000 --- a/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/backend/src/{{ cookiecutter.project_module }}/api/views.py +++ /dev/null @@ -1,10 +0,0 @@ -from rest_framework.views import APIView -from rest_framework.response import Response -from rest_framework.permissions import AllowAny - - -class StartingView(APIView): - permission_classes = (AllowAny,) - - def get(self, request): - return Response({"title": "Starting title", "content": "Starting text"}) diff --git a/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/backend/src/{{ cookiecutter.project_module }}/apps.py b/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/backend/src/{{ cookiecutter.project_module }}/apps.py deleted file mode 100644 index 82f0bc3b09..0000000000 --- a/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/backend/src/{{ cookiecutter.project_module }}/apps.py +++ /dev/null @@ -1,11 +0,0 @@ -from baserow.core.registries import plugin_registry -from django.apps import AppConfig - - -class PluginNameConfig(AppConfig): - name = "{{ cookiecutter.project_module }}" - - def ready(self): - from .plugins import PluginNamePlugin - - plugin_registry.register(PluginNamePlugin()) diff --git a/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/backend/src/{{ cookiecutter.project_module }}/config/__init__.py b/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/backend/src/{{ cookiecutter.project_module }}/config/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/backend/src/{{ cookiecutter.project_module }}/config/settings/__init__.py b/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/backend/src/{{ cookiecutter.project_module }}/config/settings/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/backend/src/{{ cookiecutter.project_module }}/config/settings/settings.py b/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/backend/src/{{ cookiecutter.project_module }}/config/settings/settings.py deleted file mode 100644 index efb74f0484..0000000000 --- a/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/backend/src/{{ cookiecutter.project_module }}/config/settings/settings.py +++ /dev/null @@ -1,10 +0,0 @@ -def setup(settings): - """ - This function is called after Baserow as setup its own Django settings file but - before Django starts. Read and modify provided settings object as appropriate - just like you would in a normal Django settings file. E.g.: - - settings.INSTALLED_APPS += ["some_custom_plugin_dep"] - for db, value in settings.DATABASES: - value['engine'] = 'some custom engine' - """ diff --git a/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/backend/src/{{ cookiecutter.project_module }}/plugins.py b/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/backend/src/{{ cookiecutter.project_module }}/plugins.py deleted file mode 100644 index 83cc1e3c31..0000000000 --- a/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/backend/src/{{ cookiecutter.project_module }}/plugins.py +++ /dev/null @@ -1,17 +0,0 @@ -from loguru import logger -from baserow.core.registries import Plugin -from django.urls import path, include - -from .api import urls as api_urls - - -class PluginNamePlugin(Plugin): - type = "{{ cookiecutter.project_module }}" - - def get_api_urls(self): - return [ - path( - "{{ cookiecutter.project_module }}/", - include(api_urls, namespace=self.type), - ), - ] diff --git a/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/backend/tests/__init__.py b/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/backend/tests/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/backend/tests/conftest.py b/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/backend/tests/conftest.py deleted file mode 100644 index 92f3bf6cce..0000000000 --- a/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/backend/tests/conftest.py +++ /dev/null @@ -1,5 +0,0 @@ -from __future__ import print_function - - -# noinspection PyUnresolvedReferences -from baserow.test_utils.pytest_conftest import * # noqa: F403, F401 diff --git a/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/backend/tests/{{ cookiecutter.project_module }}/api/test_starting_view.py b/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/backend/tests/{{ cookiecutter.project_module }}/api/test_starting_view.py deleted file mode 100644 index 471c79f173..0000000000 --- a/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/backend/tests/{{ cookiecutter.project_module }}/api/test_starting_view.py +++ /dev/null @@ -1,24 +0,0 @@ -import pytest -from django.shortcuts import reverse -from rest_framework.status import HTTP_200_OK - - -@pytest.mark.django_db -# Yes, you can use fixtures from Baserow! See how we use them in the core repository -# to write tests easily. -def test_can_query_starting_endpoint_as_authed_user(api_client, data_fixture): - user, token = data_fixture.create_user_and_token() - - response = api_client.get( - reverse("api:{{ cookiecutter.project_module }}:starting"), - HTTP_AUTHORIZATION=f"JWT {token}", - ) - assert response.status_code == HTTP_200_OK - - -@pytest.mark.django_db -def test_can_query_starting_endpoint_as_anon_user(api_client): - response = api_client.get( - reverse("api:{{ cookiecutter.project_module }}:starting"), - ) - assert response.status_code == HTTP_200_OK diff --git a/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/backend/uninstall.sh b/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/backend/uninstall.sh deleted file mode 100755 index bd6eb83ddb..0000000000 --- a/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/backend/uninstall.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/bash -# Bash strict mode: http://redsymbol.net/articles/unofficial-bash-strict-mode/ -set -euo pipefail - -# This file is automatically run by Baserow when the plugin is uninstalled. - -# Baserow will automatically `pip uninstall` the plugin after this script has been -# called for you so no need to do that in here. - -# If you plugin has applied any migrations you should run -# `./baserow migrate {{ cookiecutter.project_module }} zero` here to undo any changes -# made to the database. \ No newline at end of file diff --git a/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/baserow_plugin_info.json b/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/baserow_plugin_info.json index ad7d929100..31a64e1c78 100644 --- a/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/baserow_plugin_info.json +++ b/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/baserow_plugin_info.json @@ -1,7 +1,7 @@ { "name": "{{ cookiecutter.project_name }}", "version": "0.0.1", - "supported_baserow_versions": "2.1.1", + "supported_baserow_versions": "2.1.2", "plugin_api_version": "0.0.1-alpha", "description": "TODO", "author": "TODO", diff --git a/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/web-frontend/.eslintignore b/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/web-frontend/.eslintignore deleted file mode 100644 index bcb6bdec84..0000000000 --- a/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/web-frontend/.eslintignore +++ /dev/null @@ -1,5 +0,0 @@ -.nuxt/* -node_modules/* -**/node_modules/* -coverage/** -**/generated/* diff --git a/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/web-frontend/.eslintrc.js b/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/web-frontend/.eslintrc.js deleted file mode 100644 index 600511f49d..0000000000 --- a/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/web-frontend/.eslintrc.js +++ /dev/null @@ -1,29 +0,0 @@ -module.exports = { - root: true, - env: { - browser: true, - node: true, - jest: true, - // required as jest uses jasmine's fail method - // https://stackoverflow.com/questions/64413927/jest-eslint-fail-is-not-defined - jasmine: true, - }, - parserOptions: { - parser: '@babel/eslint-parser', - }, - extends: [ - '@nuxtjs', - 'plugin:nuxt/recommended', - 'plugin:prettier/recommended', - 'prettier', - ], - plugins: ['prettier'], - rules: { - 'no-console': 0, - 'vue/no-mutating-props': 0, - 'prettier/prettier': ['error'], - 'import/order': 'off', - 'vue/html-self-closing': 'off', - 'vue/no-unused-components': 'warn', - }, -} diff --git a/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/web-frontend/.prettierrc b/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/web-frontend/.prettierrc deleted file mode 100644 index b2095be81e..0000000000 --- a/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/web-frontend/.prettierrc +++ /dev/null @@ -1,4 +0,0 @@ -{ - "semi": false, - "singleQuote": true -} diff --git a/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/web-frontend/.stylelintignore b/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/web-frontend/.stylelintignore deleted file mode 100644 index 6701110f54..0000000000 --- a/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/web-frontend/.stylelintignore +++ /dev/null @@ -1,4 +0,0 @@ -.nuxt/* -node_modules/* -**/node_modules/* -coverage/** diff --git a/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/web-frontend/.stylelintrc b/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/web-frontend/.stylelintrc deleted file mode 100644 index fb7f6ced31..0000000000 --- a/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/web-frontend/.stylelintrc +++ /dev/null @@ -1,21 +0,0 @@ -{ - "extends": "stylelint-config-standard", - "rules": { - "at-rule-no-unknown": [ - true, - { - "ignoreAtRules": [ - "/regex/", - "function", - "if", - "each", - "include", - "mixin", - "return", - "extend", - "for" - ] - } - ] - } -} diff --git a/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/web-frontend/Makefile b/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/web-frontend/Makefile deleted file mode 100644 index 02212a609a..0000000000 --- a/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/web-frontend/Makefile +++ /dev/null @@ -1,17 +0,0 @@ -install-dependencies: - yarn install - -eslint: - yarn run eslint || exit; - -stylelint: - yarn run stylelint || exit; - -lint: eslint stylelint - -lint-javascript: lint - -jest: - npx jest --passWithNoTests || exit; - -test: jest \ No newline at end of file diff --git a/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/web-frontend/babel.config.js b/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/web-frontend/babel.config.js deleted file mode 100644 index c132d18527..0000000000 --- a/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/web-frontend/babel.config.js +++ /dev/null @@ -1,16 +0,0 @@ -module.exports = { - env: { - test: { - presets: [ - [ - '@babel/preset-env', - { - targets: { - node: 'current', - }, - }, - ], - ], - }, - }, -} diff --git a/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/web-frontend/build.sh b/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/web-frontend/build.sh deleted file mode 100755 index 152101c716..0000000000 --- a/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/web-frontend/build.sh +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/bash -# Bash strict mode: http://redsymbol.net/articles/unofficial-bash-strict-mode/ -set -euo pipefail - -# This file is automatically run by Baserow when the plugin is built into a Dockerfile. -# It will also be called when building the plugin in an existing container. You should -# only perform build steps in this script which make sense to run in a Dockerfile. - -# Any install steps that will modify things in Baserow's data volume should instead -# be done in the runtime_setup.sh script next to this one. - -# Baserow will automatically install this node module for you so you should not -# repeat any yarn/npm installs here. - -# Instead this file is ideal for any other installation custom steps here required by -# your plugin. For example installing a postgres extension used by your plugin. diff --git a/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/web-frontend/modules/{{ cookiecutter.project_slug }}/assets/scss/base.scss b/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/web-frontend/modules/{{ cookiecutter.project_slug }}/assets/scss/base.scss deleted file mode 100644 index fad681a9eb..0000000000 --- a/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/web-frontend/modules/{{ cookiecutter.project_slug }}/assets/scss/base.scss +++ /dev/null @@ -1 +0,0 @@ -// Default styling that applies for every page can be added here. diff --git a/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/web-frontend/modules/{{ cookiecutter.project_slug }}/assets/scss/components/.gitkeep b/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/web-frontend/modules/{{ cookiecutter.project_slug }}/assets/scss/components/.gitkeep deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/web-frontend/modules/{{ cookiecutter.project_slug }}/assets/scss/default.scss b/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/web-frontend/modules/{{ cookiecutter.project_slug }}/assets/scss/default.scss deleted file mode 100644 index 3ccce6d85b..0000000000 --- a/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/web-frontend/modules/{{ cookiecutter.project_slug }}/assets/scss/default.scss +++ /dev/null @@ -1,2 +0,0 @@ -@import 'variables'; -@import 'base'; diff --git a/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/web-frontend/modules/{{ cookiecutter.project_slug }}/assets/scss/variables.scss b/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/web-frontend/modules/{{ cookiecutter.project_slug }}/assets/scss/variables.scss deleted file mode 100644 index e8f2e5384f..0000000000 --- a/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/web-frontend/modules/{{ cookiecutter.project_slug }}/assets/scss/variables.scss +++ /dev/null @@ -1 +0,0 @@ -// All your SCSS variables goes here. diff --git a/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/web-frontend/modules/{{ cookiecutter.project_slug }}/components/.gitkeep b/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/web-frontend/modules/{{ cookiecutter.project_slug }}/components/.gitkeep deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/web-frontend/modules/{{ cookiecutter.project_slug }}/layouts/.gitkeep b/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/web-frontend/modules/{{ cookiecutter.project_slug }}/layouts/.gitkeep deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/web-frontend/modules/{{ cookiecutter.project_slug }}/mixins/.gitkeep b/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/web-frontend/modules/{{ cookiecutter.project_slug }}/mixins/.gitkeep deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/web-frontend/modules/{{ cookiecutter.project_slug }}/module.js b/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/web-frontend/modules/{{ cookiecutter.project_slug }}/module.js deleted file mode 100644 index 3ca1ab0925..0000000000 --- a/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/web-frontend/modules/{{ cookiecutter.project_slug }}/module.js +++ /dev/null @@ -1,17 +0,0 @@ -import path from 'path' - -import { routes } from './routes' - -export default function () { - this.options.alias['@{{ cookiecutter.project_slug }}'] = path.resolve( - __dirname, - './' - ) - this.extendRoutes((configRoutes) => { - configRoutes.push(...routes) - }) - this.appendPlugin({ - src: path.resolve(__dirname, 'plugin.js'), - }) - this.options.css.push(path.resolve(__dirname, 'assets/scss/default.scss')) -} diff --git a/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/web-frontend/modules/{{ cookiecutter.project_slug }}/pages/starting.vue b/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/web-frontend/modules/{{ cookiecutter.project_slug }}/pages/starting.vue deleted file mode 100644 index aa198591ae..0000000000 --- a/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/web-frontend/modules/{{ cookiecutter.project_slug }}/pages/starting.vue +++ /dev/null @@ -1,19 +0,0 @@ - - - diff --git a/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/web-frontend/modules/{{ cookiecutter.project_slug }}/plugin.js b/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/web-frontend/modules/{{ cookiecutter.project_slug }}/plugin.js deleted file mode 100644 index 46d7c3d05b..0000000000 --- a/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/web-frontend/modules/{{ cookiecutter.project_slug }}/plugin.js +++ /dev/null @@ -1,6 +0,0 @@ -import { PluginNamePlugin } from '@{{ cookiecutter.project_slug }}/plugins' - -export default (context) => { - const { app } = context - app.$registry.register('plugin', new PluginNamePlugin(context)) -} diff --git a/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/web-frontend/modules/{{ cookiecutter.project_slug }}/plugins.js b/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/web-frontend/modules/{{ cookiecutter.project_slug }}/plugins.js deleted file mode 100644 index 22e5bb00c0..0000000000 --- a/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/web-frontend/modules/{{ cookiecutter.project_slug }}/plugins.js +++ /dev/null @@ -1,7 +0,0 @@ -import { BaserowPlugin } from '@baserow/modules/core/plugins' - -export class PluginNamePlugin extends BaserowPlugin { - static getType() { - return '{{ cookiecutter.project_slug }}' - } -} diff --git a/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/web-frontend/modules/{{ cookiecutter.project_slug }}/routes.js b/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/web-frontend/modules/{{ cookiecutter.project_slug }}/routes.js deleted file mode 100644 index 6483c6fc9c..0000000000 --- a/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/web-frontend/modules/{{ cookiecutter.project_slug }}/routes.js +++ /dev/null @@ -1,9 +0,0 @@ -import path from 'path' - -export const routes = [ - { - name: 'starting', - path: '/starting', - component: path.resolve(__dirname, 'pages/starting.vue'), - }, -] diff --git a/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/web-frontend/modules/{{ cookiecutter.project_slug }}/services/.gitkeep b/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/web-frontend/modules/{{ cookiecutter.project_slug }}/services/.gitkeep deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/web-frontend/modules/{{ cookiecutter.project_slug }}/store/.gitkeep b/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/web-frontend/modules/{{ cookiecutter.project_slug }}/store/.gitkeep deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/web-frontend/package.json b/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/web-frontend/package.json deleted file mode 100644 index fcd6d4fd70..0000000000 --- a/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/web-frontend/package.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "name": "{{ cookiecutter.project_slug }}", - "version": "1.0.0", - "private": true, - "description": "", - "author": "", - "scripts": { - "eslint": "eslint --ext .js,.vue ./modules/{{ cookiecutter.project_slug }}/", - "stylelint": "stylelint ./modules/**/*.scss --syntax scss", - "lint": "yarn eslint && yarn stylelint", - "dev": "cd /baserow/web-frontend/ && nuxt --hostname 0.0.0.0 --config-file ./config/nuxt.config.dev.js", - "build": "cd /baserow/web-frontend/ && nuxt build --config-file ./config/nuxt.config.dev.js", - "start": "cd /baserow/web-frontend/ && nuxt start --hostname 0.0.0.0 --config-file ./config/nuxt.config.local.ts" - }, - "dependencies": { - "baserow": "link:/baserow/web-frontend", - "node-fetch-native": "1.1.0" - }, - "devDependencies": { - "@babel/core": "7.23.6", - "@babel/eslint-parser": "7.23.3", - "@babel/preset-env": "7.23.6", - "@nuxtjs/eslint-config": "12.0.0", - "@vue/test-utils": "1.3.4", - "@vue/vue2-jest": "29.2.3", - "axios-mock-adapter": "1.21.4", - "babel-jest": "29.5.0", - "eslint": "8.37.0", - "eslint-config-prettier": "8.8.0", - "eslint-config-standard": "17.0.0", - "eslint-loader": "^4.0.2", - "eslint-plugin-import": "2.27.5", - "eslint-plugin-jest": "27.2.1", - "eslint-plugin-node": ">=8.0.1", - "eslint-plugin-nuxt": "4.0.0", - "eslint-plugin-prettier": "4.2.1", - "eslint-plugin-promise": "6.1.1", - "eslint-plugin-standard": ">=4.0.0", - "eslint-plugin-vue": "9.10.0", - "flush-promises": "^1.0.2", - "jest": "29.5.0", - "jest-environment-jsdom": "^29.5.0", - "jest-junit": "15.0.0", - "jest-serializer-vue": "3.1.0", - "jsdom": "21.1.1", - "jsdom-global": "^3.0.2", - "node-mocks-http": "1.12.2", - "nodemon": "2.0.22", - "prettier": "2.8.7", - "stylelint": "^13.13.1", - "stylelint-config-standard": "^22.0.0", - "stylelint-webpack-plugin": "^3.0.1" - } -} diff --git a/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/web-frontend/runtime_setup.sh b/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/web-frontend/runtime_setup.sh deleted file mode 100644 index 1be7c8a992..0000000000 --- a/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/web-frontend/runtime_setup.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/bash -# Bash strict mode: http://redsymbol.net/articles/unofficial-bash-strict-mode/ -set -euo pipefail - -# This file is automatically run by Baserow when a Baserow container starts up for the -# first time with this plugin already installed and built. It should impotently run -# any runtime setup that involves doing things with the embedded postgres database -# and/or the data volume. diff --git a/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/web-frontend/uninstall.sh b/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/web-frontend/uninstall.sh deleted file mode 100755 index 6026418eba..0000000000 --- a/plugin-boilerplate/{{ cookiecutter.project_slug }}/plugins/{{ cookiecutter.project_module }}/web-frontend/uninstall.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash -# Bash strict mode: http://redsymbol.net/articles/unofficial-bash-strict-mode/ -set -euo pipefail - -# This file is automatically run by Baserow when the plugin is uninstalled. - -# Baserow will automatically `yarn remove` the plugin after this script for you so -# no need to do that in here. - -# Instead you should undo any changes you've made to the container. diff --git a/plugin-boilerplate/{{ cookiecutter.project_slug }}/web-frontend-dev.Dockerfile b/plugin-boilerplate/{{ cookiecutter.project_slug }}/web-frontend-dev.Dockerfile index dc78136329..2fe39de197 100644 --- a/plugin-boilerplate/{{ cookiecutter.project_slug }}/web-frontend-dev.Dockerfile +++ b/plugin-boilerplate/{{ cookiecutter.project_slug }}/web-frontend-dev.Dockerfile @@ -1,6 +1,6 @@ # This a dev image for testing your plugin when installed into the Baserow web-frontend image -FROM baserow/web-frontend:2.1.1 as base -FROM baserow/web-frontend:2.1.1 +FROM baserow/web-frontend:2.1.2 as base +FROM baserow/web-frontend:2.1.2 USER root diff --git a/plugin-boilerplate/{{ cookiecutter.project_slug }}/web-frontend.Dockerfile b/plugin-boilerplate/{{ cookiecutter.project_slug }}/web-frontend.Dockerfile index 7605472e43..91ef1cbc01 100644 --- a/plugin-boilerplate/{{ cookiecutter.project_slug }}/web-frontend.Dockerfile +++ b/plugin-boilerplate/{{ cookiecutter.project_slug }}/web-frontend.Dockerfile @@ -1,4 +1,4 @@ -FROM baserow/web-frontend:2.1.1 +FROM baserow/web-frontend:2.1.2 USER root diff --git a/premium/backend/pyproject.toml b/premium/backend/pyproject.toml index 8e3a2b32af..f3c26fe430 100644 --- a/premium/backend/pyproject.toml +++ b/premium/backend/pyproject.toml @@ -12,7 +12,7 @@ description = """Baserow is an open source no-code database tool and Airtable \ # mixed license license = { file = "../LICENSE" } requires-python = "==3.14.*" -version = "2.1.1" +version = "2.1.2" classifiers = [] [project.urls] diff --git a/web-frontend/docker/docker-entrypoint.sh b/web-frontend/docker/docker-entrypoint.sh index c8c2eb95bb..feb7f851da 100755 --- a/web-frontend/docker/docker-entrypoint.sh +++ b/web-frontend/docker/docker-entrypoint.sh @@ -2,7 +2,7 @@ # Bash strict mode: http://redsymbol.net/articles/unofficial-bash-strict-mode/ set -euo pipefail -export BASEROW_VERSION="2.1.1" +export BASEROW_VERSION="2.1.2" BASEROW_WEBFRONTEND_PORT="${BASEROW_WEBFRONTEND_PORT:-3000}" show_help() { diff --git a/web-frontend/package.json b/web-frontend/package.json index 1cefed55f6..4fb0f5487d 100644 --- a/web-frontend/package.json +++ b/web-frontend/package.json @@ -1,6 +1,6 @@ { "name": "baserow", - "version": "2.1.1", + "version": "2.1.2", "private": true, "type": "module", "scripts": {