diff --git a/README.md b/README.md index 0e9b46a8a4..460f38d112 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.0.1 +docker run -v baserow_data:/baserow/data -p 80:80 -p 443:443 baserow/baserow:2.0.2 ``` ![Baserow database screenshot](docs/assets/screenshot.png "Baserow database screenshot") @@ -116,7 +116,7 @@ Created by Baserow B.V. - bram@baserow.io. Distributes under the MIT license. See `LICENSE` for more information. -Version: 2.0.1 +Version: 2.0.2 The official repository can be found at https://github.com/baserow/baserow. diff --git a/app.json b/app.json index 19ff511dd4..afc09ba54d 100644 --- a/app.json +++ b/app.json @@ -1,8 +1,8 @@ { "name": "Baserow", - "description": "Open source online no-code database and Airtable alternative. More information about persistent files on S3, scaling and installing a custom domain can be found on https://baserow.io/docs/guides/installation/install-on-heroku. Note that it might take a couple of minutes to deploy the app, so please be patient.", + "description": "Baserow is an open source no-code database tool and Airtable alternative. Easily create\na relational database without any technical expertise. Build a table and define custom\nfields like text, number, file and many more. More information about persistent files on S3, scaling and installing a custom domain can be found on https://baserow.io/docs/guides/installation/install-on-heroku. Note that it might take a couple of minutes to deploy the app, so please be patient.", "repository": "https://github.com/baserow/baserow", - "keywords": ["baserow", "no-code", "database", "airtable"], + "keywords": ["baserow", "no-code", "database", "airtable", "data", "collaborate"], "logo": "https://baserow.io/img/favicon_192.png", "success_url": "/", "addons": [ diff --git a/backend/docker/docker-entrypoint.sh b/backend/docker/docker-entrypoint.sh index cbdfe547ae..1215c15b53 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.0.1" +export BASEROW_VERSION="2.0.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/requirements/base.txt b/backend/requirements/base.txt index bb595f63e4..f93a1d83df 100644 --- a/backend/requirements/base.txt +++ b/backend/requirements/base.txt @@ -32,6 +32,8 @@ asgiref==3.8.1 # django # django-cors-headers # opentelemetry-instrumentation-asgi +async-timeout==5.0.1 + # via redis attrs==24.3.0 # via # jsonschema @@ -210,6 +212,8 @@ googleapis-common-protos==1.66.0 # via # google-api-core # opentelemetry-exporter-otlp-proto-http +greenlet==3.2.4 + # via sqlalchemy gunicorn==23.0.0 # via -r base.in h11==0.16.0 diff --git a/backend/requirements/dev.in b/backend/requirements/dev.in index f372dcde70..24b57cae49 100644 --- a/backend/requirements/dev.in +++ b/backend/requirements/dev.in @@ -23,7 +23,7 @@ pytest-html==4.1.1 coverage==7.5.1 pytest-split==0.8.2 bandit==1.7.8 -pip-tools==7.4.1 +pip-tools==7.5.2 autopep8==2.1.0 pytest-unordered==0.6.0 debugpy==1.8.1 diff --git a/backend/requirements/dev.txt b/backend/requirements/dev.txt index b2c28bba63..11d2cad789 100644 --- a/backend/requirements/dev.txt +++ b/backend/requirements/dev.txt @@ -14,6 +14,10 @@ asttokens==3.0.0 # via # snoop # stack-data +async-timeout==5.0.1 + # via + # -c base.txt + # redis attrs==24.3.0 # via # -c base.txt @@ -113,9 +117,7 @@ isort==5.13.2 jedi==0.19.2 # via ipython jinja2==3.1.6 - # via - # -c base.txt - # pytest-html + # via pytest-html jsonschema==4.25.0 # via # -c base.txt @@ -137,9 +139,7 @@ markdown-it-py==3.0.0 # -c base.txt # rich markupsafe==3.0.3 - # via - # -c base.txt - # jinja2 + # via jinja2 matplotlib-inline==0.1.7 # via ipython mccabe==0.7.0 @@ -178,7 +178,7 @@ pbr==6.1.0 # via stevedore pexpect==4.9.0 # via ipython -pip-tools==7.4.1 +pip-tools==7.5.2 # via -r dev.in platformdirs==4.3.6 # via black diff --git a/backend/src/baserow/config/settings/base.py b/backend/src/baserow/config/settings/base.py index 38320c1e9c..40d402d164 100644 --- a/backend/src/baserow/config/settings/base.py +++ b/backend/src/baserow/config/settings/base.py @@ -457,7 +457,7 @@ "name": "MIT", "url": "https://github.com/baserow/baserow/blob/develop/LICENSE", }, - "VERSION": "2.0.1", + "VERSION": "2.0.2", "SERVE_INCLUDE_SCHEMA": False, "TAGS": [ {"name": "Settings"}, diff --git a/backend/src/baserow/version.py b/backend/src/baserow/version.py index b46c2e74fb..311aff26e2 100644 --- a/backend/src/baserow/version.py +++ b/backend/src/baserow/version.py @@ -1 +1 @@ -VERSION = "2.0.1" +VERSION = "2.0.2" diff --git a/changelog.md b/changelog.md index f55f8f7f71..dfdaa2a9be 100644 --- a/changelog.md +++ b/changelog.md @@ -1,5 +1,26 @@ # Changelog +## 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) + +### 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) +* [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) +* [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) + + ## Released 2.0.1 ### Bug fixes diff --git a/changelog/entries/unreleased/breaking_change/4219_number_field_values_returned_by_local_baserow_integrations_a.json b/changelog/entries/2.0.2/breaking_change/4219_number_field_values_returned_by_local_baserow_integrations_a.json similarity index 100% rename from changelog/entries/unreleased/breaking_change/4219_number_field_values_returned_by_local_baserow_integrations_a.json rename to changelog/entries/2.0.2/breaking_change/4219_number_field_values_returned_by_local_baserow_integrations_a.json diff --git a/changelog/entries/unreleased/bug/4247_adjust_image_orientation_based_on_exif_data.json b/changelog/entries/2.0.2/bug/4247_adjust_image_orientation_based_on_exif_data.json similarity index 100% rename from changelog/entries/unreleased/bug/4247_adjust_image_orientation_based_on_exif_data.json rename to changelog/entries/2.0.2/bug/4247_adjust_image_orientation_based_on_exif_data.json diff --git a/changelog/entries/unreleased/bug/4293_fixed_a_bug_where_creating_a_workflow_would_cause_a_crash_fo.json b/changelog/entries/2.0.2/bug/4293_fixed_a_bug_where_creating_a_workflow_would_cause_a_crash_fo.json similarity index 100% rename from changelog/entries/unreleased/bug/4293_fixed_a_bug_where_creating_a_workflow_would_cause_a_crash_fo.json rename to changelog/entries/2.0.2/bug/4293_fixed_a_bug_where_creating_a_workflow_would_cause_a_crash_fo.json diff --git a/changelog/entries/unreleased/bug/4294_allow_to_duplicate_nodes_inside_container_nodes.json b/changelog/entries/2.0.2/bug/4294_allow_to_duplicate_nodes_inside_container_nodes.json similarity index 100% rename from changelog/entries/unreleased/bug/4294_allow_to_duplicate_nodes_inside_container_nodes.json rename to changelog/entries/2.0.2/bug/4294_allow_to_duplicate_nodes_inside_container_nodes.json diff --git a/changelog/entries/unreleased/bug/improve_performances_when_editing_a_createupdate_workflow_ac.json b/changelog/entries/2.0.2/bug/improve_performances_when_editing_a_createupdate_workflow_ac.json similarity index 100% rename from changelog/entries/unreleased/bug/improve_performances_when_editing_a_createupdate_workflow_ac.json rename to changelog/entries/2.0.2/bug/improve_performances_when_editing_a_createupdate_workflow_ac.json diff --git a/changelog/entries/unreleased/bug/resolved_baserow_integrations_periodic_minute_min_env_variab.json b/changelog/entries/2.0.2/bug/resolved_baserow_integrations_periodic_minute_min_env_variab.json similarity index 100% rename from changelog/entries/unreleased/bug/resolved_baserow_integrations_periodic_minute_min_env_variab.json rename to changelog/entries/2.0.2/bug/resolved_baserow_integrations_periodic_minute_min_env_variab.json diff --git a/changelog/entries/unreleased/feature/allow_the_local_baserow_update_row_service_to_update_data_sy.json b/changelog/entries/2.0.2/feature/allow_the_local_baserow_update_row_service_to_update_data_sy.json similarity index 100% rename from changelog/entries/unreleased/feature/allow_the_local_baserow_update_row_service_to_update_data_sy.json rename to changelog/entries/2.0.2/feature/allow_the_local_baserow_update_row_service_to_update_data_sy.json diff --git a/changelog/entries/unreleased/refactor/3848_make_readwrite_db_routing_consistent_for_http_requests_and_b.json b/changelog/entries/2.0.2/refactor/3848_make_readwrite_db_routing_consistent_for_http_requests_and_b.json similarity index 100% rename from changelog/entries/unreleased/refactor/3848_make_readwrite_db_routing_consistent_for_http_requests_and_b.json rename to changelog/entries/2.0.2/refactor/3848_make_readwrite_db_routing_consistent_for_http_requests_and_b.json diff --git a/changelog/entries/unreleased/refactor/4268_fix_missing_form_data_after_first_render_ssr.json b/changelog/entries/2.0.2/refactor/4268_fix_missing_form_data_after_first_render_ssr.json similarity index 100% rename from changelog/entries/unreleased/refactor/4268_fix_missing_form_data_after_first_render_ssr.json rename to changelog/entries/2.0.2/refactor/4268_fix_missing_form_data_after_first_render_ssr.json diff --git a/changelog/entries/unreleased/refactor/improve_formula_editor.json b/changelog/entries/2.0.2/refactor/improve_formula_editor.json similarity index 100% rename from changelog/entries/unreleased/refactor/improve_formula_editor.json rename to changelog/entries/2.0.2/refactor/improve_formula_editor.json diff --git a/changelog/entries/unreleased/feature/3194_paste_single_rows_values_into_many_rows.json b/changelog/entries/unreleased/feature/3194_paste_single_rows_values_into_many_rows.json new file mode 100644 index 0000000000..33510b8f2c --- /dev/null +++ b/changelog/entries/unreleased/feature/3194_paste_single_rows_values_into_many_rows.json @@ -0,0 +1,8 @@ +{ + "type": "feature", + "message": "Paste values from a single row into many rows", + "domain": "database", + "issue_number": 3194, + "bullet_points": [], + "created_at": "2025-11-10" +} diff --git a/changelog/releases.json b/changelog/releases.json index 7b7343b03f..c04c002613 100644 --- a/changelog/releases.json +++ b/changelog/releases.json @@ -1,5 +1,9 @@ { "releases": [ + { + "name": "2.0.2", + "created_at": "2025-11-27" + }, { "name": "2.0.1", "created_at": "2025-11-18" diff --git a/deploy/all-in-one/README.md b/deploy/all-in-one/README.md index 9eeb032ac8..2904616d1a 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.0.1 +docker run -v baserow_data:/baserow/data -p 80:80 -p 443:443 baserow/baserow:2.0.2 ``` ## Quick Reference @@ -52,7 +52,7 @@ docker run \ -p 80:80 \ -p 443:443 \ --restart unless-stopped \ - baserow/baserow:2.0.1 + baserow/baserow:2.0.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.0.1` image by default runs all of Baserow's various services in +The `baserow/baserow:2.0.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.0.1 + baserow/baserow:2.0.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.0.1 + baserow/baserow:2.0.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.0.1 + baserow/baserow:2.0.2 ``` ### With an external PostgresSQL server @@ -268,7 +268,7 @@ docker run \ -p 80:80 \ -p 443:443 \ --restart unless-stopped \ - baserow/baserow:2.0.1 + baserow/baserow:2.0.2 ``` ### With an external Redis server @@ -287,7 +287,7 @@ docker run \ -p 80:80 \ -p 443:443 \ --restart unless-stopped \ - baserow/baserow:2.0.1 + baserow/baserow:2.0.2 ``` ### With an external email server @@ -307,7 +307,7 @@ docker run \ -p 80:80 \ -p 443:443 \ --restart unless-stopped \ - baserow/baserow:2.0.1 + baserow/baserow:2.0.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.0.1 + baserow/baserow:2.0.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.0.1 + baserow/baserow:2.0.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.0.1 \ + baserow/baserow:2.0.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.0.1 \ + baserow/baserow:2.0.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.0.1 \ +docker run -it --rm -v baserow_data:/baserow/data baserow/baserow:2.0.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.0.1 \ +docker run -it --rm -v baserow_data:/baserow/data baserow/baserow:2.0.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.0.1 backend-cmd-with-db backup -f /baserow/host/backup.tar.gz + baserow/baserow:2.0.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.0.1 backend-cmd-with-db restore -f /baserow/old_data/backup.tar.gz + baserow/baserow:2.0.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.0.1 backend-cmd-with-db restore -f /baserow/host/backup.tar.gz + baserow/baserow:2.0.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.0.1 + baserow/baserow:2.0.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.0.1 +FROM baserow/baserow:2.0.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 2e3ad42f54..929f228725 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.0.1 +Version 2.0.2 ========================================================================================= EOF diff --git a/deploy/cloudron/CloudronManifest.json b/deploy/cloudron/CloudronManifest.json index a0ccb3a988..85fee2c7d4 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.0.1", + "version": "2.0.2", "healthCheckPath": "/api/_health/", "httpPort": 80, "addons": { diff --git a/deploy/cloudron/Dockerfile b/deploy/cloudron/Dockerfile index 0dfc767ab5..13dd73611b 100644 --- a/deploy/cloudron/Dockerfile +++ b/deploy/cloudron/Dockerfile @@ -1,4 +1,4 @@ -ARG FROM_IMAGE=baserow/baserow:2.0.1 +ARG FROM_IMAGE=baserow/baserow:2.0.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 66f8803e60..40264277a7 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.37 + version: 1.0.38 - name: baserow repository: file://charts/baserow-common - version: 1.0.37 + version: 1.0.38 - name: baserow repository: file://charts/baserow-common - version: 1.0.37 + version: 1.0.38 - name: baserow repository: file://charts/baserow-common - version: 1.0.37 + version: 1.0.38 - name: baserow repository: file://charts/baserow-common - version: 1.0.37 + version: 1.0.38 - name: baserow repository: file://charts/baserow-common - version: 1.0.37 + version: 1.0.38 - name: baserow repository: file://charts/baserow-common - version: 1.0.37 + version: 1.0.38 - name: baserow repository: file://charts/baserow-common - version: 1.0.37 + version: 1.0.38 - 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:94841fc8888790e824764ef4593dce57a878a2815ce85a9044cf1fd3131b4c80 -generated: "2025-11-18T15:11:34.888472+01:00" +digest: sha256:9101baeab74e9d8afc801d95d709bd97639e8d165ec127c78caecb86121bafe5 +generated: "2025-11-27T10:53:22.796367+01:00" diff --git a/deploy/helm/baserow/Chart.yaml b/deploy/helm/baserow/Chart.yaml index 4d3451fa60..fff4b86582 100644 --- a/deploy/helm/baserow/Chart.yaml +++ b/deploy/helm/baserow/Chart.yaml @@ -2,54 +2,54 @@ apiVersion: v2 name: baserow description: The open platform to create scalable databases and applications—without coding. type: application -version: 1.0.37 -appVersion: "2.0.1" +version: 1.0.38 +appVersion: "2.0.2" home: https://github.com/baserow/baserow/blob/develop/deploy/helm/baserow?ref_type=heads icon: https://baserow.io/img/favicon_192.png sources: - - https://gitlab.com/baserow/baserow + - https://github.com/baserow/baserow - https://baserow.io dependencies: - name: baserow alias: baserow-backend-asgi - version: "1.0.37" + version: "1.0.38" repository: "file://charts/baserow-common" - name: baserow alias: baserow-backend-wsgi - version: "1.0.37" + version: "1.0.38" repository: "file://charts/baserow-common" - name: baserow alias: baserow-frontend - version: "1.0.37" + version: "1.0.38" repository: "file://charts/baserow-common" - name: baserow alias: baserow-celery-beat-worker - version: "1.0.37" + version: "1.0.38" repository: "file://charts/baserow-common" - name: baserow alias: baserow-celery-export-worker - version: "1.0.37" + version: "1.0.38" repository: "file://charts/baserow-common" - name: baserow alias: baserow-celery-worker - version: "1.0.37" + version: "1.0.38" repository: "file://charts/baserow-common" - name: baserow alias: baserow-celery-flower - version: "1.0.37" + version: "1.0.38" repository: "file://charts/baserow-common" condition: baserow-celery-flower.enabled - name: baserow alias: baserow-embeddings - version: "1.0.37" + version: "1.0.38" repository: "file://charts/baserow-common" condition: baserow-embeddings.enabled diff --git a/deploy/helm/baserow/README.md b/deploy/helm/baserow/README.md index d5e254b516..198d42f860 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.0.1` | +| `global.baserow.image.tag` | Global Docker image tag | `2.0.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 861e21bb3e..2772481dbe 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.37 +version: 1.0.38 # 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.0.1" +appVersion: "2.0.2" diff --git a/deploy/helm/baserow/charts/baserow-common/README.md b/deploy/helm/baserow/charts/baserow-common/README.md index 33b2796a82..6fad2c3473 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.0.1` | +| `global.baserow.image.tag` | Global Docker image tag | `2.0.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 75a5dbaa3d..316de73df6 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.0.1 + tag: 2.0.2 imagePullSecrets: [] serviceAccount: shared: true @@ -83,7 +83,7 @@ global: ## image: repository: baserow/baserow # Docker image repository - tag: 2.0.1 # Docker image tag + tag: 2.0.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 3349d6b116..81df5ad01a 100644 --- a/deploy/helm/baserow/values.yaml +++ b/deploy/helm/baserow/values.yaml @@ -43,7 +43,7 @@ global: baserow: imageRegistry: baserow image: - tag: 2.0.1 + tag: 2.0.2 imagePullSecrets: [] serviceAccount: shared: true diff --git a/deploy/render/Dockerfile b/deploy/render/Dockerfile index 25ea949647..3fb0447046 100644 --- a/deploy/render/Dockerfile +++ b/deploy/render/Dockerfile @@ -1,4 +1,4 @@ -ARG FROM_IMAGE=baserow/baserow:2.0.1 +ARG FROM_IMAGE=baserow/baserow:2.0.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 95d7d2578b..404dd51533 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:2.0.1 + image: baserow/baserow:2.0.2 environment: BASEROW_PUBLIC_URL: 'http://localhost' ports: diff --git a/docker-compose.no-caddy.yml b/docker-compose.no-caddy.yml index cc654caad6..8c02df1e9d 100644 --- a/docker-compose.no-caddy.yml +++ b/docker-compose.no-caddy.yml @@ -190,7 +190,7 @@ x-backend-variables: services: backend: - image: baserow/backend:2.0.1 + image: baserow/backend:2.0.2 restart: unless-stopped ports: - "${HOST_PUBLISH_IP:-127.0.0.1}:8000:8000" @@ -205,7 +205,7 @@ services: local: web-frontend: - image: baserow/web-frontend:2.0.1 + image: baserow/web-frontend:2.0.2 restart: unless-stopped ports: - "${HOST_PUBLISH_IP:-127.0.0.1}:3000:3000" @@ -247,7 +247,7 @@ services: local: celery: - image: baserow/backend:2.0.1 + image: baserow/backend:2.0.2 restart: unless-stopped environment: <<: *backend-variables @@ -268,7 +268,7 @@ services: local: celery-export-worker: - image: baserow/backend:2.0.1 + image: baserow/backend:2.0.2 restart: unless-stopped command: celery-exportworker environment: @@ -289,7 +289,7 @@ services: local: celery-beat-worker: - image: baserow/backend:2.0.1 + image: baserow/backend:2.0.2 restart: unless-stopped command: celery-beat environment: diff --git a/docker-compose.yml b/docker-compose.yml index 975c900c05..4ca33e3bc6 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -264,7 +264,7 @@ services: local: backend: - image: baserow/backend:2.0.1 + image: baserow/backend:2.0.2 restart: unless-stopped environment: @@ -278,7 +278,7 @@ services: local: web-frontend: - image: baserow/web-frontend:2.0.1 + image: baserow/web-frontend:2.0.2 restart: unless-stopped environment: BASEROW_PUBLIC_URL: ${BASEROW_PUBLIC_URL-http://localhost} @@ -323,7 +323,7 @@ services: local: celery: - image: baserow/backend:2.0.1 + image: baserow/backend:2.0.2 restart: unless-stopped environment: <<: *backend-variables @@ -344,7 +344,7 @@ services: local: celery-export-worker: - image: baserow/backend:2.0.1 + image: baserow/backend:2.0.2 restart: unless-stopped command: celery-exportworker environment: @@ -365,7 +365,7 @@ services: local: celery-beat-worker: - image: baserow/backend:2.0.1 + image: baserow/backend:2.0.2 restart: unless-stopped command: celery-beat environment: diff --git a/docs/installation/install-behind-apache.md b/docs/installation/install-behind-apache.md index d7a0db276c..430089239c 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.0.1` image or the example +We strongly recommend you use our `baserow/baserow:2.0.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.0.1` - and `baserow/web-frontend:2.0.1` images. +> * Your own container setup with our single service `baserow/backend:2.0.2` + and `baserow/web-frontend:2.0.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.0.1` +* The all-in-one Baserow image `baserow/baserow:2.0.2` * Any of the example compose files found in the root of our git repository `docker-compose.yml`/`docker-compose.local-build.yml` /`docker-compose.all-in-one.yml` @@ -116,7 +116,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.0.1` and `baserow/web-frontend:2.0.1` images with +* Our standalone `baserow/backend:2.0.2` and `baserow/web-frontend:2.0.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. @@ -148,7 +148,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.0.1` image then you can do this by adding +If you are using the `baserow/backend:2.0.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 6199fad7c0..91fac33f90 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.0.1` image or the example +We strongly recommend you use our `baserow/baserow:2.0.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.0.1` - and `baserow/web-frontend:2.0.1` images. +> * Your own container setup with our single service `baserow/backend:2.0.2` + and `baserow/web-frontend:2.0.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.0.1` +* The all-in-one Baserow image `baserow/baserow:2.0.2` * Any of the example compose files found in the root of our git repository `docker-compose.yml`/`docker-compose.local-build.yml` /`docker-compose.all-in-one.yml` @@ -108,7 +108,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.0.1` and `baserow/web-frontend:2.0.1` images with +* Our standalone `baserow/backend:2.0.2` and `baserow/web-frontend:2.0.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. @@ -127,7 +127,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.0.1` image then you can do this by adding +If you are using the `baserow/backend:2.0.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 aae03f97a0..7b660814eb 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.0.1` image runs all of Baserow’s various services inside the +The `baserow/baserow:2.0.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.0.1`. + requests to any horizontally scaled container running `baserow/baserow:2.0.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.0.1` containers horizontally you + * For example if you deploy 10 `baserow/baserow:2.0.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.0.1` container +When setting up the health check for the ALB the `baserow/baserow:2.0.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.0.1` containers. See below for a +Now we are ready to spin up our `baserow/baserow:2.0.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.0.1` image. +1. Select the `baserow/baserow:2.0.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.0.1` +1. Use the `baserow/backend:2.0.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.0.1` image with `celery-worker` as the image command. +1. Use the `baserow/backend:2.0.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.0.1` image. +1. Use the `baserow/backend:2.0.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.0.1` image. +1. Use the `baserow/backend:2.0.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.0.1` image with no arguments needed. +1. Use the `baserow/web-frontend:2.0.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 6cdc9bb1d9..47218f1e8f 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.0.1 +$ cloudron install -l baserow.{YOUR_DOMAIN} --image baserow/cloudron:2.0.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.0.1 +cloudron update --app {YOUR_APP_ID} --image baserow/cloudron:2.0.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 c0507c1e41..668c741cb8 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.0.1` +Image tag or digest: `2.0.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.0.1`), and click on save. The app will redeploy +the desired version (latest is `2.0.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 9cc2a5fcd9..cd68ab88ff 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.0.1 +baserow/baserow:2.0.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.0.1 + baserow/baserow:2.0.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 c9aa18af53..ad5c512933 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.0.1` which by default starts the Gunicorn Django backend server +* `baserow/backend:2.0.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.0.1` which is a Nuxt server providing Server Side rendering +* `baserow/web-frontend:2.0.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.0.1` (default command is `gunicorn`) -* `baserow/backend:2.0.1` with command `celery-worker` -* `baserow/backend:2.0.1` with command `celery-export-worker` -* `baserow/web-frontend:2.0.1` (default command is `nuxt-local`) +* `baserow/backend:2.0.2` (default command is `gunicorn`) +* `baserow/backend:2.0.2` with command `celery-worker` +* `baserow/backend:2.0.2` with command `celery-export-worker` +* `baserow/web-frontend:2.0.2` (default command is `nuxt-local`) * 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 90772d1d20..08919fc1c1 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.0.1 + image: baserow/baserow:2.0.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 25f0cf6611..ca3ec3672b 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.0.1 + baserow/baserow:2.0.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.0.1` image by default runs all of Baserow's various services in +The `baserow/baserow:2.0.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.0.1 + baserow/baserow:2.0.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.0.1 + baserow/baserow:2.0.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.0.1 + baserow/baserow:2.0.2 ``` ### With an external PostgresSQL server @@ -245,7 +245,7 @@ docker run \ -p 80:80 \ -p 443:443 \ --restart unless-stopped \ - baserow/baserow:2.0.1 + baserow/baserow:2.0.2 ``` ### With an external Redis server @@ -264,7 +264,7 @@ docker run \ -p 80:80 \ -p 443:443 \ --restart unless-stopped \ - baserow/baserow:2.0.1 + baserow/baserow:2.0.2 ``` ### With an external email server @@ -284,7 +284,7 @@ docker run \ -p 80:80 \ -p 443:443 \ --restart unless-stopped \ - baserow/baserow:2.0.1 + baserow/baserow:2.0.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.0.1 + baserow/baserow:2.0.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.0.1 + baserow/baserow:2.0.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.0.1 \ + baserow/baserow:2.0.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.0.1 \ + baserow/baserow:2.0.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.0.1 \ +docker run -it --rm -v baserow_data:/baserow/data baserow/baserow:2.0.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.0.1 \ +docker run -it --rm -v baserow_data:/baserow/data baserow/baserow:2.0.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.0.1 backend-cmd-with-db backup -f /baserow/host/backup.tar.gz + baserow/baserow:2.0.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.0.1 backend-cmd-with-db restore -f /baserow/old_data/backup.tar.gz + baserow/baserow:2.0.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.0.1 backend-cmd-with-db restore -f /baserow/host/backup.tar.gz + baserow/baserow:2.0.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.0.1 + baserow/baserow:2.0.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.0.1 +FROM baserow/baserow:2.0.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 7971590baf..be464e1f78 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.0.1 + image: 2.0.2 ``` Or specify the chart version directly: diff --git a/docs/installation/install-with-k8s.md b/docs/installation/install-with-k8s.md index 9c4e663ddf..d0588ff4dc 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.0.1 + image: baserow/backend:2.0.2 workingDir: /baserow args: - "gunicorn" @@ -222,7 +222,7 @@ spec: topologyKey: "kubernetes.io/hostname" containers: - name: backend-wsgi - image: baserow/backend:2.0.1 + image: baserow/backend:2.0.2 workingDir: /baserow args: - "gunicorn-wsgi" @@ -281,7 +281,7 @@ spec: topologyKey: "kubernetes.io/hostname" containers: - name: backend-worker - image: baserow/backend:2.0.1 + image: baserow/backend:2.0.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.0.1 + image: baserow/backend:2.0.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.0.1 + image: baserow/backend:2.0.2 args: - "celery-beat" imagePullPolicy: Always @@ -356,7 +356,7 @@ spec: topologyKey: "kubernetes.io/hostname" containers: - name: web-frontend - image: baserow/web-frontend:2.0.1 + image: baserow/web-frontend:2.0.2 args: - nuxt ports: diff --git a/docs/installation/install-with-traefik.md b/docs/installation/install-with-traefik.md index 476d5b7c87..e5aadc6fff 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.0.1 + image: baserow/baserow:2.0.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 e0a94621ec..2d66464543 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.0.1 +## Baserow 2.0.2 | Dependency | Supported versions | Tested versions | Recommended versions | diff --git a/docs/plugins/creation.md b/docs/plugins/creation.md index 89e172f26d..034a0a589e 100644 --- a/docs/plugins/creation.md +++ b/docs/plugins/creation.md @@ -122,7 +122,7 @@ containing metadata about your plugin. It should have the following JSON structu { "name": "TODO", "version": "TODO", - "supported_baserow_versions": "2.0.1", + "supported_baserow_versions": "2.0.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 0abaf22a35..43eb21e161 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.0.1 +FROM baserow/baserow:2.0.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.0.1 .` + `docker build -t my-customized-baserow:2.0.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.0.1` + `docker run -p 80:80 -v baserow_data:/baserow/data my-customized-baserow:2.0.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.0.1 + baserow:2.0.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.0.1` image which does not +it, the new container is created from the `baserow/baserow:2.0.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.0.1` and `baserow/web-frontend:2.0.1` images +Baserow also provides `baserow/backend:2.0.2` and `baserow/web-frontend:2.0.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.0.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.0.1 +docker run --rm baserow/backend:2.0.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.0.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.0.1 uninstall-plugin plugin_name` +3. `docker run --rm -v baserow_data:/baserow/data baserow:2.0.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.0.1 .` +6. Rebuild your image - `docker build -t my-customized-baserow:2.0.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.0.1` + - `docker run -p 80:80 -v baserow_data:/baserow/data my-customized-baserow:2.0.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.0.1 uninstall-plugin plugin_name` + 2. `docker run --rm -v baserow_data:/baserow/data baserow:2.0.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.0.1 list-plugins + baserow:2.0.2 list-plugins # or on a running container diff --git a/enterprise/backend/pyproject.toml b/enterprise/backend/pyproject.toml index e0bc2384ab..70f16057cf 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.11" -version = "2.0.1" +version = "2.0.2" classifiers = [] [project.urls] diff --git a/enterprise/backend/website_export.csv b/enterprise/backend/website_export.csv index d534a1a4cb..4d1a2dda37 100644 --- a/enterprise/backend/website_export.csv +++ b/enterprise/backend/website_export.csv @@ -5,7 +5,7 @@ This guide maps out your journey from Baserow beginner to power user. Learn the ## Your Baserow learning journey -Baserow gives you powerful builders that work together inside workspaces: [Database Builder][1] for organizing data, [Application Builder][2] for creating custom apps, [Dashboard Builder][3] for visualizing metrics, and [Automation Builder][4] for streamlining workflows. +Baserow gives you powerful builders that work together inside workspaces: [Database Builder][1] for organizing data, [Application Builder][2] for creating custom apps, [Dashboard Builder][3] for visualizing metrics, and [Automation Builder][4] for streamlining workflows. Your first step is understanding how these pieces fit together. This guide shows you the optimal path to learn each one, with practical milestones along the way. @@ -13,7 +13,7 @@ Your first step is understanding how these pieces fit together. This guide shows ## Understanding the Baserow workspace -Everything in Baserow lives inside a [workspace][5], your collaborative environment where teams organize projects, databases, applications, dashboards, and automations. +Everything in Baserow lives inside a [workspace][5], your collaborative environment where teams organize projects, databases, applications, dashboards, and automations. Inside each workspace, you can create and manage builders that form the foundation of Baserow: @@ -24,11 +24,11 @@ Inside each workspace, you can create and manage builders that form the foundati ## Step 1: Your account and first workspace -Before building anything, you need access to Baserow. You can choose [Baserow Cloud][6] for instant access with zero setup, or [install a self-hosted version][7] for complete control over your infrastructure. +Before building anything, you need access to Baserow. You can choose [Baserow Cloud][6] for instant access with zero setup, or [install a self-hosted version][7] for complete control over your infrastructure. > Cloud is recommended for quick starts, while self-hosting works best for organizations with specific security or compliance requirements. -Once you're logged in, you'll land on the Baserow home page, your home base for accessing everything you create. +Once you're logged in, you'll land on the Baserow home page, your home base for accessing everything you create. The first time you log in, Baserow may create a default workspace for you, or you can [set up a new workspace][8] from scratch. This is where you'll organize all your databases, applications, dashboards, and automations. @@ -40,9 +40,9 @@ The [Database Builder][1] is where most Baserow users start their journey. Here' A database contains multiple tables, each representing a different type of information. Within each table, you define fields (columns) that specify what information you're tracking: text, numbers, dates, formulas, and more. -The real power emerges when you create relationships between tables using [link to table fields][9], building a relational structure that mirrors how your business actually works. +The real power emerges when you create relationships between tables using [link to table fields][9], building a relational structure that mirrors how your business actually works. -Baserow also offers multiple ways to visualize the same underlying data through [views][10]. The same table can appear as a spreadsheet-like grid for data entry, a kanban board for project management, a calendar for scheduling, a gallery for visual content, or a form for collecting information from others. +Baserow also offers multiple ways to visualize the same underlying data through [views][10]. The same table can appear as a spreadsheet-like grid for data entry, a kanban board for project management, a calendar for scheduling, a gallery for visual content, or a form for collecting information from others. **Start here:** - [Introduction to databases in Baserow][11] @@ -77,7 +77,7 @@ What makes this powerful is that you're building real applications, not just vie ## Step 5: Visualize data with dashboards -The [Dashboard Builder][3] focuses specifically on analytics and monitoring. Dashboards present key metrics, trends, and insights at a glance. +The [Dashboard Builder][3] focuses specifically on analytics and monitoring. Dashboards present key metrics, trends, and insights at a glance. Dashboards excel at giving teams shared visibility into performance. Each dashboard draws live data from your databases, automatically updating as your underlying data changes. @@ -88,9 +88,9 @@ Dashboards excel at giving teams shared visibility into performance. Each dashbo ## Step 6: Automate workflows -The [Automation Builder][4] brings everything together by creating workflows that respond to events and connect different systems. +The [Automation Builder][4] brings everything together by creating workflows that respond to events and connect different systems. -Automations work with triggers (what starts the workflow), filters (conditions that must be met), and actions (what happens). +Automations work with triggers (what starts the workflow), filters (conditions that must be met), and actions (what happens). This is where Baserow becomes more than a database or application platform, it becomes a central hub that orchestrates your business processes. Combined with [webhooks][27] and the [Baserow API][28], automations can integrate with thousands of external services. @@ -102,7 +102,7 @@ This is where Baserow becomes more than a database or application platform, it b ## Step 7: Collaborate with your team -Baserow shines brightest when teams work together. [Invite collaborators][30] to your workspace and assign roles that control what they can access and modify. +Baserow shines brightest when teams work together. [Invite collaborators][30] to your workspace and assign roles that control what they can access and modify. [Role-based permissions][31] become more sophisticated with paid plans, allowing you to set different access levels at the workspace, database, or even individual table level. This means you can share specific parts of your workspace with external clients, give contractors access to relevant databases only, or ensure sensitive information remains visible to authorized team members. @@ -303,7 +303,7 @@ Bring your data to life by creating visual dashboards. This section guides you t * **[Go to Dashboard Builder →][10]** ### Application Builder -Build custom internal tools, client portals, or web applications on top of your Baserow database without writing code. +Build custom internal tools, client portals, or web applications on top of your Baserow database without writing code. * **[Go to Application Builder →][11]** @@ -323,7 +323,7 @@ Create ""if-this-then-that"" style workflows to automate repetitive tasks and in Understand how to manage your data's lifecycle and security. This covers [deleting and recovering data][13] from the trash, managing database [snapshots][14] for backups, and reviewing detailed [audit logs][15]. ### Collaboration & Permissions -Learn how to manage team members, assign role-based permissions, and share your data publicly or privately. +Learn how to manage team members, assign role-based permissions, and share your data publicly or privately. **Collaboration**: In this chapter, we'll guide you on how to leverage Baserow to streamline teamwork and boost productivity. Learn how to invite collaborators, manage workspace members, create teams, and share your work publicly. @@ -334,11 +334,11 @@ Learn how to manage team members, assign role-based permissions, and share your * **[Go to Role-based Permissions →][17]** ### Integrations & API -Connect Baserow to over 4,000 apps using our webhooks, API, and native integrations with tools like Zapier and Make. Baserow takes an API-first approach, providing you with comprehensive API documentation, webhooks, and database tokens. +Connect Baserow to over 4,000 apps using our webhooks, API, and native integrations with tools like Zapier and Make. Baserow takes an API-first approach, providing you with comprehensive API documentation, webhooks, and database tokens. * **[Go to Integrations & API →][18]** ### Enterprise, Billing, & Account -Manage your subscription, set up enterprise features like SSO, and configure your personal account settings. +Manage your subscription, set up enterprise features like SSO, and configure your personal account settings. **Billing**: In this chapter, we'll cover how you can unlock paid features in Baserow by subscribing to a paid plan. Learn how to use and manage your subscriptions to access Baserow's paid features for both cloud and self-hosted instances. @@ -408,7 +408,7 @@ These foundational terms apply across all Baserow modules: | **[Workspace member][3]** | A collaborator who has access to a workspace with specific permissions assigned by workspace admins. | | **[Billable user][4]** | Any user with access to a workspace who counts toward your subscription's user limit. | | **[Role-based permissions][5]** | A system for controlling access by assigning roles that determine what users can view and modify. | -| **[Snapshot][20]** | A complete point-in-time backup of your database that can be restored later. | +| **[Snapshot][6]** | A complete point-in-time backup of your database that can be restored later. | ## Database Builder terms @@ -416,23 +416,23 @@ Terms related to organizing and structuring data: | Term | Definition | |------|------------| -| **[Database][6]** | A container for related tables that organize data for specific projects or purposes. A workspace can contain multiple databases. | -| **[Table][7]** | A structured collection of data organized into rows and columns within a database. Each table represents a specific type of information. | -| **[Table ID][8]** | A unique numerical identifier assigned to each table, used for API access and linking tables together. | -| **[Field][9]** | A column in a table that defines a specific type of data to be stored. Each field has a data type (text, number, date, file, etc.) that determines what information it can hold. | -| **[Row][10]** | A single record in a table containing related information across multiple fields. Each row represents one item, person, task, or data point. | -| **[Row ID][10]** | A unique numerical identifier automatically assigned to each row when created. Access using the `row_id()` formula. | -| **[Cell][10]** | The intersection of a row and column where individual data values are stored. Each cell contains one piece of information for one record. | -| **[Link to table field][11]** | A field type that creates relationships between tables, allowing you to connect related data. For example, linking ""Customers"" to ""Orders"" to see which customer placed each order. | +| **[Database][7]** | A container for related tables that organize data for specific projects or purposes. A workspace can contain multiple databases. | +| **[Table][8]** | A structured collection of data organized into rows and columns within a database. Each table represents a specific type of information. | +| **[Table ID][9]** | A unique numerical identifier assigned to each table, used for API access and linking tables together. | +| **[Field][10]** | A column in a table that defines a specific type of data to be stored. Each field has a data type (text, number, date, file, etc.) that determines what information it can hold. | +| **[Row][11]** | A single record in a table containing related information across multiple fields. Each row represents one item, person, task, or data point. | +| **[Row ID][11]** | A unique numerical identifier automatically assigned to each row when created. Access using the `row_id()` formula. | +| **[Cell][11]** | The intersection of a row and column where individual data values are stored. Each cell contains one piece of information for one record. | +| **[Link to table field][12]** | A field type that creates relationships between tables, allowing you to connect related data. For example, linking ""Customers"" to ""Orders"" to see which customer placed each order. | | **Filter** | Criteria applied to show only relevant information, such as date ranges, categories, or specific conditions. | -| **[View][12]** | A customized way of displaying and interacting with table data. The same table can have multiple views (Grid, Gallery, Form, Kanban, Calendar, Timeline) that show data differently without changing the underlying information. | -| **[Grid view][13]** | The default spreadsheet-like view for tables, best for detailed data entry and manipulation. | -| **[Gallery view][14]** | A visual view displaying records as cards with images, ideal for products, portfolios, or any visual content. | -| **[Kanban view][15]** | A board view organizing records as cards in columns based on a single-select field, perfect for workflow management and project tracking. | -| **[Calendar view][16]** | A calendar-based view displaying records with date fields as events, useful for scheduling and deadline tracking. | -| **[Form view][17]** | An interactive form for collecting data from external users who don't need database access. | -| **[Timeline view][18]** | A Gantt-chart-style view showing records with start and end dates along a timeline, ideal for project planning. | -| **[Primary field][19]** | The first field in every table that serves as the main identifier for each row. | +| **[View][13]** | A customized way of displaying and interacting with table data. The same table can have multiple views (Grid, Gallery, Form, Kanban, Calendar, Timeline) that show data differently without changing the underlying information. | +| **[Grid view][14]** | The default spreadsheet-like view for tables, best for detailed data entry and manipulation. | +| **[Gallery view][15]** | A visual view displaying records as cards with images, ideal for products, portfolios, or any visual content. | +| **[Kanban view][16]** | A board view organizing records as cards in columns based on a single-select field, perfect for workflow management and project tracking. | +| **[Calendar view][17]** | A calendar-based view displaying records with date fields as events, useful for scheduling and deadline tracking. | +| **[Form view][18]** | An interactive form for collecting data from external users who don't need database access. | +| **[Timeline view][19]** | A Gantt-chart-style view showing records with start and end dates along a timeline, ideal for project planning. | +| **[Primary field][20]** | The first field in every table that serves as the main identifier for each row. | ## Application Builder terms @@ -495,6 +495,7 @@ Terms related to hosting and managing Baserow: | **[License][25]** | A purchased subscription that activates paid features on Self-hosted installations. | | **[License key][25]** | A unique string of characters used to register and activate a premium license on a Self-hosted instance. | | **[Single Sign-On (SSO)][29]** | An authentication system allowing users to log in to Baserow using credentials from another service (Google, Microsoft, Okta, etc.) without creating separate passwords. | +| **Seat** | A single user [license][30] that grants access to paid features. The way seats are assigned depends on your specific plan. | | **Open source** | The freely available version of Baserow with core features, released under the MIT license. Can be used, modified, and distributed without licensing fees. | | **Paid features** | Advanced functionality (advanced permissions, increased limits, premium field types) available through paid subscriptions on both Cloud and Self-hosted. | | **Enterprise features** | High-end functionality (audit logs, SSO, admin panel, priority support) available on Enterprise plans. | @@ -542,7 +543,7 @@ A **trigger** is the starting event that causes a workflow to run (e.g., ""when ### What does ""billable user"" mean for my subscription? -Each billable user counts toward your plan's user limit. Guest access through public view sharing doesn't count toward your limit. Learn more about [billable users][4]. +Each billable user counts toward your plan's user limit. Guest access through public view sharing doesn't count toward your limit. Learn more about [billable users][4]. ### Can I use automation without the Application Builder? @@ -555,12 +556,12 @@ Yes. Automations work independently and can interact with database tables direct ## Related content - [Quick start guide: Get started with Baserow][31] -- [Introduction to Baserow][30] +- [Introduction to Baserow][32] - [Deploy Baserow: Choose your hosting option][24] -- [Introduction to databases][6] -- [Introduction to Application Builder][32] +- [Introduction to databases][7] +- [Introduction to Application Builder][33] - [Introduction to workspaces][2] -- [Keyboard shortcuts][33] +- [Keyboard shortcuts][34] --- @@ -575,21 +576,21 @@ Still need help? If you're looking for something else, please feel free to make [3]: /user-docs/managing-workspace-collaborators [4]: /user-docs/subscriptions-overview#who-is-considered-a-user-for-billing-purposes [5]: /user-docs/permissions-overview - [6]: /user-docs/intro-to-databases - [7]: /user-docs/intro-to-tables - [8]: /user-docs/database-and-table-id - [9]: /user-docs/baserow-field-overview - [10]: /user-docs/overview-of-rows - [11]: /user-docs/link-to-table-field - [12]: /user-docs/overview-of-baserow-views - [13]: https://baserow.io/user-docs/guide-to-grid-view - [14]: https://baserow.io/user-docs/guide-to-gallery-view - [15]: https://baserow.io/user-docs/guide-to-kanban-view - [16]: https://baserow.io/user-docs/guide-to-calendar-view - [17]: https://baserow.io/user-docs/guide-to-creating-forms-in-baserow - [18]: https://baserow.io/user-docs/guide-to-timeline-view - [19]: https://baserow.io/user-docs/primary-field - [20]: /user-docs/snapshots + [6]: /user-docs/snapshots + [7]: /user-docs/intro-to-databases + [8]: /user-docs/intro-to-tables + [9]: /user-docs/database-and-table-id + [10]: /user-docs/baserow-field-overview + [11]: /user-docs/overview-of-rows + [12]: /user-docs/link-to-table-field + [13]: /user-docs/overview-of-baserow-views + [14]: https://baserow.io/user-docs/guide-to-grid-view + [15]: https://baserow.io/user-docs/guide-to-gallery-view + [16]: https://baserow.io/user-docs/guide-to-kanban-view + [17]: https://baserow.io/user-docs/guide-to-calendar-view + [18]: https://baserow.io/user-docs/guide-to-creating-forms-in-baserow + [19]: https://baserow.io/user-docs/guide-to-timeline-view + [20]: https://baserow.io/user-docs/primary-field [21]: https://baserow.io/user-docs/application-builder-overview [22]: https://baserow.io/user-docs/dashboards-overview [23]: https://baserow.io/user-docs/workflow-automation @@ -599,17 +600,18 @@ Still need help? If you're looking for something else, please feel free to make [27]: /user-docs/admin-panel-users [28]: /user-docs/enterprise-admin-panel [29]: /user-docs/single-sign-on-sso-overview - [30]: /user-docs/baserow-basics + [30]: https://baserow.io/user-docs/self-hosted-licenses [31]: /user-docs/how-to-get-started-with-baserow - [32]: /user-docs/application-builder-overview - [33]: /user-docs/baserow-keyboard-shortcuts",,baserow_user_docs,https://baserow.io/user-docs/learn-baserow-basic-concepts + [32]: /user-docs/baserow-basics + [33]: /user-docs/application-builder-overview + [34]: /user-docs/baserow-keyboard-shortcuts",getting started,baserow_user_docs,https://baserow.io/user-docs/learn-baserow-basic-concepts 5,Set up a workspace,setting-up-a-workspace,Baserow workspace setup guide for users,"# Set up a workspace in Baserow Create workspaces to organize your databases, applications, and team collaboration. Learn how to create, name, configure, and manage workspaces effectively. ## Overview -Workspaces are the foundation of your Baserow organization, every database, application, dashboard, and automation lives inside a workspace. +Workspaces are the foundation of your Baserow organization, every database, application, dashboard, and automation lives inside a workspace. Creating a workspace is the first step toward building your data infrastructure. This guide walks through workspace creation, configuration, and management to help you establish effective organizational structures. @@ -639,9 +641,9 @@ A workspace is an organized, collaborative environments for your team. Before cr ## Create a workspace -Creating a workspace automatically makes you the workspace admin with full control. When you create a new workspace, you become the workspace admin with full permissions and can invite collaborators. +Creating a workspace automatically makes you the workspace admin with full control. When you create a new workspace, you become the workspace admin with full permissions and can invite collaborators. - 1. Navigate to your Baserow home page + 1. Navigate to your Baserow home page 2. Click on your workspace in the top-left corner and click **Add new workspace**. 3. Enter a descriptive name for your workspace 4. Click **Enter** or click outside the name field to save @@ -691,7 +693,7 @@ Review workspace members periodically, especially after project completions, tea Once your workspace is created, start building: - **[Add a database](/user-docs/intro-to-databases)**: Click **+ Create new** → Select **Database** → Choose to start from scratch or use a template → Begin adding tables and fields. - - **[Build an application](/user-docs/application-builder-overview)**: Click **+ Create new** → Select **Application** → Design pages and add elements → Connect to your database data. + - **[Build an application](/user-docs/application-builder-overview)**: Click **+ Create new** → Select **Application** → Design pages and add elements → Connect to your database data. - **[Create a dashboard][9]**: Click **+ Create new** → Select **Dashboard** → Add widgets and connect data sources → Monitor your key metrics - **[Set up automations][10]**: Click **+ Create new** → Select **Automation** → Configure triggers and actions → Automate workflows @@ -703,7 +705,7 @@ On **Baserow Cloud**, anyone with an account can create workspaces by default. O ### How many workspaces can I create? -There's no limit on workspace creation. +There's no limit on workspace creation. ### What's the difference between Workspace Admin and Instance Admin? @@ -957,7 +959,7 @@ Baserow makes it easy to leave workspaces while ensuring no workspace is left wi ## Overview -Leaving a workspace removes your access to all databases and applications within that workspace, but the workspace itself remains active for other users. This is useful when you need to exit a project or team but want others to continue working. +Leaving a workspace removes your access to all databases and applications within that workspace, but the workspace itself remains active for other users. This is useful when you need to exit a project or team but want others to continue working. If you're the last admin, you'll need to assign another admin before leaving, or consider deleting the workspace entirely. @@ -1066,9 +1068,9 @@ Admin permission is required. Only workspace admins can delete workspaces. If yo ## Overview -Deleting a workspace removes it along with all databases, tables, applications, and data it contains. While Baserow provides a retention period to recover deleted workspaces from the trash, deletion becomes irreversible after this window closes. +Deleting a workspace removes it along with all databases, tables, applications, and data it contains. While Baserow provides a retention period to recover deleted workspaces from the trash, deletion becomes irreversible after this window closes. -This action affects all users in the workspace, so consider alternatives like leaving the workspace or transferring admin ownership if you simply need to step away. +This action affects all users in the workspace, so consider alternatives like leaving the workspace or transferring admin ownership if you simply need to step away. ![Workspace deletion menu location](https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/4b695b1f-f545-4927-be45-f3d32af39776/export_and_import_of_workspaces.webp) @@ -1165,7 +1167,7 @@ Go to the workspace **Members** page in settings. If your role shows ""Admin,"" Still need help? If you're looking for something else, please feel free to make recommendations or ask us questions; we're ready to assist you. - - [Ask the Baserow community](https://community.baserow.io) + - [Ask the Baserow community](https://community.baserow.io) - [Contact support](https://baserow.io/contact) for questions about Baserow or help with your account.",,baserow_user_docs,https://baserow.io/user-docs/delete-a-workspace 9,Create a database,create-a-database,Create a Baserow database,"# Create a database in Baserow @@ -1178,7 +1180,7 @@ Learn ways to create databases in Baserow, from scratch, from templates, by dupl ## Overview -Creating a database in Baserow is straightforward and flexible. Whether you're starting fresh, using a pre-built template, copying an existing structure, or migrating from another platform, Baserow provides multiple pathways to get your project running quickly. +Creating a database in Baserow is straightforward and flexible. Whether you're starting fresh, using a pre-built template, copying an existing structure, or migrating from another platform, Baserow provides multiple pathways to get your project running quickly. Each method suits different scenarios: start from scratch for complete customization, use templates for quick setup, duplicate for consistency, or import to preserve existing work. @@ -1203,12 +1205,12 @@ Ask yourself: ## How to create a database -| Method | Best for | +| Method | Best for | |--------|----------| -| **From scratch** | Custom projects with unique requirements | -| **From template** | Common use cases (CRM, project management) | -| **Duplicate existing** | Replicating structure for new projects | -| **Import from Airtable** | Migrating from Airtable with existing data | +| **From scratch** | Custom projects with unique requirements | +| **From template** | Common use cases (CRM, project management) | +| **Duplicate existing** | Replicating structure for new projects | +| **Import from Airtable** | Migrating from Airtable with existing data | @@ -1244,7 +1246,7 @@ Learn more about how to [add database from template](/user-docs/add-database-fro ### Method 3: Duplicate an existing database -Duplicating a database creates an exact copy of its structure and data. +Duplicating a database creates an exact copy of its structure and data. This method is useful for setting up separate databases for different teams or departments, starting new projects based on existing ones, creating testing environments without affecting live data, or archiving databases at specific points in time. @@ -1325,7 +1327,7 @@ Now that you've created your database, explore these topics to maximize its pote Still need help? If you're looking for something else, please feel free to make recommendations or ask us questions; we're ready to assist you. - - [Ask the Baserow community](https://community.baserow.io) + - [Ask the Baserow community](https://community.baserow.io) - [Contact support](https://baserow.io/contact) for questions about Baserow or help with your account. @@ -1340,7 +1342,7 @@ Remove databases you no longer need. Understand the 5-second undo window, the gr ## Overview -Deleting a database removes it from your workspace and makes it inaccessible to all collaborators. +Deleting a database removes it from your workspace and makes it inaccessible to all collaborators. Baserow provides two safety nets: a 5-second undo window immediately after deletion, and the grace period for trash recovery. After the grace period, deletion becomes permanent and irreversible. @@ -1386,9 +1388,9 @@ Learn more: [Undo and redo actions](/user-docs/data-recovery-and-deletion) ### Option 2: Restore from trash -If you miss the 5-second undo window, recover deleted databases from the trash. +If you miss the 5-second undo window, recover deleted databases from the trash. -The grace period starts the moment you delete the database. After the grace period for trash recovery, restoration becomes impossible. +The grace period starts the moment you delete the database. After the grace period for trash recovery, restoration becomes impossible. Learn more: [Restore data from trash](/user-docs/data-recovery-and-deletion) @@ -1438,7 +1440,7 @@ No. After the grace period expires, databases are permanently deleted and cannot Still need help? If you're looking for something else, please feel free to make recommendations or ask us questions; we're ready to assist you. - - [Ask the Baserow community](https://community.baserow.io) + - [Ask the Baserow community](https://community.baserow.io) - [Contact support](/contact) for questions about Baserow or help with your account. [1]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/c6771efd-a839-493b-b24c-ff2fb269f8e8/Rename%20Baserow%20database.jpg",,baserow_user_docs,https://baserow.io/user-docs/delete-a-database @@ -1482,7 +1484,7 @@ Duplicating a view copies its configuration including filters, sorts, field visi 1. Click the **view dropdown** at the top of the table 2. Find the view you want to duplicate 3. Click the **three-dot menu (⋮)** next to the view name - 4. Select **Duplicate view** from the options. + 4. Select **Duplicate view** from the options. 5. Rename and customize the duplicated view as needed Duplicating is useful for: @@ -1764,7 +1766,7 @@ Not directly. You can duplicate views within the same table, but configurations ## Related content ### View basics -- [Views overview](/user-docs/overview-of-baserow-views) - Understanding view concepts +- [Views overview](/user-docs/overview-of-baserow-views) - Understanding view concepts - [Create custom views](/user-docs/create-custom-views-of-your-data) - Step-by-step view creation - [Collaborative views](/user-docs/collaborative-views) - Shared team views - [Personal views](/user-docs/personal-views) - Private individual views @@ -2461,7 +2463,7 @@ Learn more: [Form submission notifications](/user-docs/notifications#notificatio ## Pre-fill form fields -Pre-fill forms with data using URL parameters, making it easier for respondents to complete forms with information you already know. +Pre-fill forms with data using URL parameters, making it easier for respondents to complete forms with information you already know. **Common use case:** Pre-fill and hide fields that shouldn't be changed, like referral sources or campaign tracking codes. @@ -3110,7 +3112,7 @@ Baserow enables team collaboration through workspaces, permissions, comments, an **Core collaboration features:** - **[Workspaces](/user-docs/intro-to-workspaces)** - Shared environments where teams organize databases and grant access - **[Workspace members](/user-docs/working-with-collaborators)** - Invite users and assign roles -- **[Permissions](/user-docs/permissions-overview)** - Control who can view, edit, or administer data. +- **[Permissions](/user-docs/permissions-overview)** - Control who can view, edit, or administer data. - **[Teams](/user-docs/create-and-manage-teams)** - Group workspace members for easier permission management - **[Row comments](/user-docs/row-commenting)** - Discuss specific records with @mentions - **[Collaborator field](/user-docs/collaborator-field)** - Assign tasks to specific workspace members @@ -3277,7 +3279,7 @@ This guide covers how to view workspace members, change permissions, search and ## Who can manage workspace members -Only workspace admins can manage workspace members. This includes viewing the full member list, changing roles, removing members, and managing pending invitations. +Only workspace admins can manage workspace members. This includes viewing the full member list, changing roles, removing members, and managing pending invitations. If you're not a workspace admin and need to manage members, ask an existing admin to upgrade your role. @@ -3287,7 +3289,7 @@ Learn more: [Permissions overview](/user-docs/permissions-overview) ## View workspace members -Workspace members with the right permission can see everyone who has access to your workspace, including their roles and contact information. Other workspace members without permission cannot view the member list, change roles, or remove members. +Workspace members with the right permission can see everyone who has access to your workspace, including their roles and contact information. Other workspace members without permission cannot view the member list, change roles, or remove members. **From workspace settings:** 1. Open the **workspace** you want to manage @@ -3312,7 +3314,7 @@ Workspace admins can update member roles anytime to adjust access levels as resp 3. Click the **role dropdown** next to their name 4. Select the new role 5. The role updates immediately - + **Permission changes take effect immediately.** The workspace member's access updates across all databases and tables in the workspace according to their new role. ![Changing member permissions](https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/29c1effc-2e9a-44c8-8b64-ae04a63b006b/Screenshot_2023-01-18_at_17.24.14.png) @@ -3333,7 +3335,7 @@ Find specific members quickly in large workspaces using search and sort function ### Sort the member list -Click column headers to sort members by different criteria. Sort indicators (▴ ▾) show the current sort column and direction. Click again to reverse the sort order. +Click column headers to sort members by different criteria. Sort indicators (▴ ▾) show the current sort column and direction. Click again to reverse the sort order. - **Name column:** Alphabetically (A-Z ▴) or reverse (Z-A ▾) - **Email column:** Alphabetically (A-Z ▴) or reverse (Z-A ▾) @@ -3343,7 +3345,7 @@ Click column headers to sort members by different criteria. Sort indicators (▴ ## Manage pending invitations -Pending invitations have dedicated management controls to view and manage workspace invitations that haven't been accepted yet. +Pending invitations have dedicated management controls to view and manage workspace invitations that haven't been accepted yet. On the **Invites** page, you can view all outstanding invitations, see invitation details, resend invitations that may have been lost, cancel invitations sent by mistake, or change roles before acceptance. @@ -3357,7 +3359,7 @@ Learn more: [Remove a user from workspace](/user-docs/remove-a-user-from-a-works ## Workspace-level audit logs -The audit log keeps track of every action performed in your Baserow workspace. The workspace-level audit log provides visibility to workspace admins about every action taken in a particular workspace. +The audit log keeps track of every action performed in your Baserow workspace. The workspace-level audit log provides visibility to workspace admins about every action taken in a particular workspace. Learn more: [Audit logs](/user-docs/admin-panel-audit-logs) @@ -3389,6 +3391,11 @@ Check the **Members** page. Active members appear in the main **Members** list w No. Workspace permissions are independent. A user who's an admin in Workspace A might be a viewer in Workspace B. Role changes only affect the current workspace. +### What is the difference between ""Revoking Workspace Access"" and ""Deleting a User""? + + * **Revoking Workspace Access:** Removing a workspace member is done inside a Workspace. The user loses access to that specific workspace but can still log in to Baserow and access other workspaces. + * **[Deleting a User][2]:** Done in the Admin Panel. The user loses access to the entire Baserow server, and their account is destroyed. + ## Related resources ### Member management @@ -3418,7 +3425,8 @@ Still need help? If you're looking for something else, please feel free to make - [Contact support](/contact) for questions about Baserow or help with your account - [1]: https://baserow.io/user-docs/subscriptions-overview#who-is-considered-a-user-for-billing-purposes",,baserow_user_docs,https://baserow.io/user-docs/manage-workspace-permissions + [1]: https://baserow.io/user-docs/subscriptions-overview#who-is-considered-a-user-for-billing-purposes + [2]: https://baserow.io/user-docs/admin-panel-users",collaboration,baserow_user_docs,https://baserow.io/user-docs/manage-workspace-permissions 20,Share view publicly,public-sharing,Public sharing of a Baserow view,"# Share a view publicly Baserow's public view sharing lets you share specific table views with anyone, no workspace membership required, while keeping full control over what data is visible. @@ -3957,7 +3965,7 @@ Baserow provides multiple safety nets to prevent permanent data loss. Deleted it - **Trash** - 3-day retention for deleted workspaces, databases, tables, fields, and views - **Undo/Redo** - Instant reversal of recent actions like cell edits or row deletions - **Restore popup** - 7-second quick recovery notification after deletions - - **[Row change history][1]**: Track row updates + - **[Row change history][1]**: Track row updates - **Change history** - Audit log showing who changed what and when (Enterprise) @@ -4195,7 +4203,7 @@ Tables are where your data lives in Baserow. Baserow tables combine spreadsheet ## Overview -A Baserow table stores and organizes your data in rows (records) and columns (fields). While tables function like spreadsheets with sorting, filtering, and aggregation capabilities, they go further by displaying the same data in multiple ways; grid, gallery, form, calendar, or kanban. +A Baserow table stores and organizes your data in rows (records) and columns (fields). While tables function like spreadsheets with sorting, filtering, and aggregation capabilities, they go further by displaying the same data in multiple ways; grid, gallery, form, calendar, or kanban. Tables live inside databases, which live inside workspaces, giving you a clear hierarchy for organizing projects and data. @@ -4340,7 +4348,7 @@ Yes, [import CSV or Excel files](/user-docs/create-a-table-via-import) directly Still need help? If you're looking for something else, please feel free to make recommendations or ask us questions; we're ready to assist you. - - [Ask the Baserow community](https://community.baserow.io) + - [Ask the Baserow community](https://community.baserow.io) - [Contact support](/contact) for questions about Baserow or help with your account. @@ -4460,7 +4468,7 @@ Manual exports work well for occasional needs, but frequent exports benefit from Still need help? If you're looking for something else, please feel free to make recommendations or ask us questions—we're ready to assist you. -- [Ask the Baserow community](https://community.baserow.io) +- [Ask the Baserow community](https://community.baserow.io) - [Contact support](/contact) for questions about Baserow or help with your account.",,baserow_user_docs,https://baserow.io/user-docs/export-tables 26,Configure table options,customize-a-table,Configure and customize tables in Baserow,"# Table configuration and customization @@ -4474,16 +4482,16 @@ Customize table behavior, appearance, and organization with renaming, reordering ## Overview -Table configuration controls how your tables behave, who can access them, and how they integrate with other systems. Unlike field-level settings that affect individual columns, table settings apply to the entire table and its data. +Table configuration controls how your tables behave, who can access them, and how they integrate with other systems. Unlike field-level settings that affect individual columns, table settings apply to the entire table and its data. You'll find these options in the three-dot menu (`⋮`) next to each table name in your sidebar. ## Accessing table settings -All table configuration options are available through the table menu. +All table configuration options are available through the table menu. -Click the three-dot icon (`⋮`) next to any table name in the sidebar to reveal options including rename, duplicate, delete, export, webhooks, and permissions management. +Click the three-dot icon (`⋮`) next to any table name in the sidebar to reveal options including rename, duplicate, delete, export, webhooks, and permissions management. Some settings, like reordering, work directly through drag-and-drop in the sidebar without opening a menu. @@ -4498,7 +4506,7 @@ Give tables clear, descriptive names that indicate their purpose and content. Th To rename a table: 1. Click the `⋮` icon next to the table name in the sidebar -2. Select ""Rename,"" and enter your new name. +2. Select ""Rename,"" and enter your new name. Table names can be changed anytime without affecting data, views, or relationships with other tables. @@ -4506,7 +4514,7 @@ Table names can be changed anytime without affecting data, views, or relationshi ### Reorder tables in sidebar -Arrange tables in the order that matches your workflow by dragging and dropping them in the sidebar. Position frequently used tables at the top for quick access, group related tables together for logical organization, and separate active projects from archived data. +Arrange tables in the order that matches your workflow by dragging and dropping them in the sidebar. Position frequently used tables at the top for quick access, group related tables together for logical organization, and separate active projects from archived data. Click and hold on a table name, then drag it to your desired position and release. @@ -4515,7 +4523,7 @@ Click and hold on a table name, then drag it to your desired position and releas ### Duplicate tables -Duplicating creates an exact copy of a table's structure and data, perfect for creating templates, testing changes without affecting the original, or setting up similar tables for different teams or time periods. +Duplicating creates an exact copy of a table's structure and data, perfect for creating templates, testing changes without affecting the original, or setting up similar tables for different teams or time periods. Access this option from the table menu (`⋮`), and the duplicate appears immediately below the original. @@ -4525,7 +4533,7 @@ Learn more: [Duplicate a table](/user-docs/create-a-table#duplicate-a-table) ### Delete tables -Remove tables you no longer need to keep your database organized and reduce clutter. Deleted tables move to the trash with a recovery window before permanent deletion. +Remove tables you no longer need to keep your database organized and reduce clutter. Deleted tables move to the trash with a recovery window before permanent deletion. Access deletion through the table menu (`⋮`), confirm your choice, and use the 5-second undo window if you change your mind immediately. @@ -4545,7 +4553,7 @@ Learn more: [Export tables](/user-docs/export-tables) ### Multiple cell paste -Speed up data entry by copying and pasting multiple cells at once from spreadsheets or other sources. +Speed up data entry by copying and pasting multiple cells at once from spreadsheets or other sources. Select cells in Excel or Google Sheets, copy them with `Ctrl/Cmd + C`, click into your target cell in Baserow, and paste with `Ctrl/Cmd + V`. Baserow intelligently maps pasted data to your table structure, filling cells in the same pattern as your copied selection. @@ -4622,7 +4630,7 @@ Use [table-level permissions](/user-docs/assign-roles-at-table-level) to control Still need help? If you're looking for something else, please feel free to make recommendations or ask us questions; we're ready to assist you. - - [Ask the Baserow community](https://community.baserow.io) + - [Ask the Baserow community](https://community.baserow.io) - [Contact support](/contact) for questions about Baserow or help with your account. @@ -4639,7 +4647,7 @@ Remove tables you no longer need from your database. Understand the trash recove ## Overview -Deleting a table removes it and all its contents from your database, making it inaccessible to everyone with database access. Baserow provides a grace period where deleted tables can be recovered from trash, but after that window closes, deletion becomes permanent and irreversible. +Deleting a table removes it and all its contents from your database, making it inaccessible to everyone with database access. Baserow provides a grace period where deleted tables can be recovered from trash, but after that window closes, deletion becomes permanent and irreversible. This action affects not just the table itself but also any views, formulas in other tables that reference it, and linked relationships with other tables. @@ -4774,7 +4782,7 @@ Yes, you can delete individual rows or groups of rows without removing the table Still need help? If you're looking for something else, please feel free to make recommendations or ask us questions; we're ready to assist you. -- [Ask the Baserow community](https://community.baserow.io) +- [Ask the Baserow community](https://community.baserow.io) - [Contact support](/contact) for questions about Baserow or help with your account.",,baserow_user_docs,https://baserow.io/user-docs/delete-a-table 28,Baserow webhooks,webhooks,Baserow webhooks guide for automation,"# Baserow webhooks: Real-time notifications for data changes @@ -4798,7 +4806,7 @@ Baserow supports multiple webhook events to match different integration needs: ### Row events - **Rows created:** Triggers when new rows are added -- **Rows updated:** Triggers when existing rows are modified +- **Rows updated:** Triggers when existing rows are modified - **Rows deleted:** Triggers when rows are removed ### View events @@ -4915,6 +4923,10 @@ Baserow implements automatic retry logic for failed webhook calls: ## Frequently asked questions +### How can I identify which user triggered a webhook event? + +To include user information in your webhook payload, add a **[Last Modified By][3]** field to your table. Webhooks send the complete data of the row that was changed. By adding the **Last Modified By** field, the webhook payload will automatically include this field's value, identifying the specific user account responsible for the latest update. + ### What happens if my webhook endpoint is down? Baserow automatically retries failed webhook calls a limited number of times. Ensure your endpoint returns a `200 OK` status code and can handle temporary traffic spikes. @@ -4935,16 +4947,16 @@ Yes, webhooks work seamlessly with Zapier, Make, n8n, and other automation platf Based on the Baserow documentation structure, you might also find these topics helpful: - [Zapier integration](/user-docs/zapier) - Connect Baserow with 4000+ apps -- [Make integration](/user-docs/make) - Advanced automation workflows +- [Make integration](/user-docs/make) - Advanced automation workflows - [n8n integration](/user-docs/n8n) - Open-source workflow automation - [Database API documentation](/user-docs/database-api) - Direct API access - [Database tokens](/user-docs/personal-api-tokens) - Authentication for integrations ## Tutorials - - [How to create a real-time notification system with Baserow webhooks][3] - - [How to set up webhooks in Baserow for real-time data updates][4] - - [How to set up a webhook to trigger on specific field changes][5] + - [How to create a real-time notification system with Baserow webhooks][4] + - [How to set up webhooks in Baserow for real-time data updates][5] + - [How to set up a webhook to trigger on specific field changes][6] --- @@ -4956,9 +4968,10 @@ Still need help? If you're looking for something else, please feel free to make [1]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/cbc3a9de-a9d8-4a43-8eb9-e14f7a0a9c0c/Configure%20webhook.jpg [2]: https://baserow-media.ams3.digitaloceanspaces.com/pagedown-uploads/2155abed-e5f5-4b86-aaa7-7c1f6e74d3bb/Screenshot%202022-08-10%20at%2021.19.02.png - [3]: https://baserow.io/blog/create-notification-system-using-webhooks - [4]: https://baserow.io/blog/webhooks-real-time-data-updates - [5]: https://baserow.io/blog/webhook-trigger-field-changes",,baserow_user_docs,https://baserow.io/user-docs/webhooks + [3]: https://baserow.io/user-docs/last-modified-by-field + [4]: https://baserow.io/blog/create-notification-system-using-webhooks + [5]: https://baserow.io/blog/webhooks-real-time-data-updates + [6]: https://baserow.io/blog/webhook-trigger-field-changes",integrations,baserow_user_docs,https://baserow.io/user-docs/webhooks 29,Configure field types,field-customization,Baserow field configuration options,"# Field configuration options Field configuration in Baserow transforms basic columns into powerful data tools; letting you control appearance, behavior, and organization to match your workflow without rebuilding your entire table structure. @@ -5078,7 +5091,7 @@ Multiple sorts can be applied sequentially; sort by Department first, then by Pr **Empty values:** When sorting in ascending order, empty cells typically appear at the top of your table. -### How to hide fields +### How to hide fields Remove fields from view without deleting data, useful for creating focused views for specific tasks or audiences. @@ -5277,7 +5290,7 @@ While you cannot delete or move the primary field, you can customize it like oth - **[Duplicate the primary field][6]** - Copy primary field configuration to create a backup - **[Filter by the primary field][5]** - Show only rows with specific identifier patterns - **[Sort by the primary field][4]** - Arrange rows alphabetically or numerically by identifier - + ### **To access configuration:** @@ -5291,7 +5304,7 @@ Designate a different field as the primary field when your current primary doesn ### Method 1: Direct primary field change -Use this method when you want to immediately swap which field serves as primary. +Use this method when you want to immediately swap which field serves as primary. **To change the primary field:** @@ -5629,7 +5642,7 @@ Once enabled, you can format text using the toolbar or [Markdown shortcuts][5]. ### Markdown formatting reference -Baserow supports standard Markdown syntax in Long text fields with rich text enabled. +Baserow supports standard Markdown syntax in Long text fields with rich text enabled. **Keyboard shortcuts:** Use standard text editor shortcuts (Ctrl/Cmd+B for bold, Ctrl/Cmd+I for italic, etc.) for quick formatting. @@ -7310,7 +7323,7 @@ Reference related rows by primary field value or ID: Baserow uses standard HTTP status codes with detailed error messages. Implement proper error handling and retry logic in your application. -Common status codes: +Common status codes: | Error code | Name | Description | |------------|--------------------------|---------------------------------------------------------------------| | 200 | Ok | Request completed successfully. | @@ -7336,7 +7349,7 @@ Error response format Query parameters for listing rows **Filtering:** -- `filters`: JSON object with filter conditions. Rows can optionally be filtered using the same view filters that are available for the views. +- `filters`: JSON object with filter conditions. Rows can optionally be filtered using the same view filters that are available for the views. - `filter_type`: ""AND"" or ""OR"" for multiple filters. This works only if two or more filters are provided. - `search`: Full-text search across all fields. If provided, only rows with data that matches the search query are going to be returned. @@ -7398,10 +7411,10 @@ Verify your token is correct, has proper permissions for the table, and is inclu ## Related content - [Generate database tokens](/user-docs/personal-api-tokens) -- [Database and table IDs guide](/user-docs/database-and-table-id) +- [Database and table IDs guide](/user-docs/database-and-table-id) - [Baserow webhooks](/user-docs/webhooks) - [Zapier integration](/user-docs/zapier): No-code automation platform -- [Make integration](/user-docs/make): Visual workflow builder +- [Make integration](/user-docs/make): Visual workflow builder - [n8n integration](/user-docs/n8n): Open-source workflow automation --- @@ -7460,7 +7473,7 @@ Learn more about [creating custom views](/user-docs/create-custom-views-of-your- ### Switch between views -The current view tab in the table's upper left corner helps in navigating all of the table's views. You can switch between different view types in a table by clicking the view switcher in the upper left corner. +The current view tab in the table's upper left corner helps in navigating all of the table's views. You can switch between different view types in a table by clicking the view switcher in the upper left corner. 1. Click the View switcher dropdown at the top of the table to see all available views for the current table. 2. Select any view from the list in the upper section @@ -7476,7 +7489,7 @@ The view dropdown shows all collaborative views and your personal views. Other u If you created a lot of views in your table, it might be helpful to locate a view by name. Existing views can be found by searching for them using the views search bar. 1. Click the View switcher dropdown at the top of the table -2. Enter a search string in the ‘**Search views**’ field to locate a view. You can enter a search term to see a list of all views that match. +2. Enter a search string in the ‘**Search views**’ field to locate a view. You can enter a search term to see a list of all views that match. 3. Results filter in real-time as you type. 4. Select the view to navigate to @@ -7598,7 +7611,7 @@ Start with an empty table when building custom structures from scratch. This giv 2. Click **+ New table** at the bottom of the table list 3. Enter a descriptive name for your table (e.g., ""Customers,"" ""Tasks,"" ""Inventory"") 4. Select **Start with a new table** -5. Click **Add table**. You get a new table with default fields and sample rows to help you get started. +5. Click **Add table**. You get a new table with default fields and sample rows to help you get started. After creating your table, start by adding fields. Choose from over [25 field types](/user-docs/baserow-field-overview) such as text, number, date, or file. You can also configure field properties like validation rules and default values to match your needs. @@ -7608,7 +7621,7 @@ Finally, organize your view to make your data easier to understand. Use [sorting ### Method 2: Duplicate an existing table -Duplicating creates an exact copy of a table's structure and data. Duplicating tables is useful when you need multiple versions of the same structure for different purposes. +Duplicating creates an exact copy of a table's structure and data. Duplicating tables is useful when you need multiple versions of the same structure for different purposes. This is perfect for reusing proven setups or creating templates for recurring projects, without altering the original. It’s also practical for generating client-specific tables from a master template or archiving data by duplicating and clearing the original table. @@ -7621,17 +7634,17 @@ This is perfect for reusing proven setups or creating templates for recurring pr **What gets duplicated:** -✅ All fields with their types and configurations -✅ All rows with complete data -✅ Views (Grid, Kanban, Calendar, etc.) -✅ Filters, sorts, and groupings -✅ Field formulas and dependencies -✅ File attachments +✅ All fields with their types and configurations +✅ All rows with complete data +✅ Views (Grid, Kanban, Calendar, etc.) +✅ Filters, sorts, and groupings +✅ Field formulas and dependencies +✅ File attachments **What doesn't duplicate:** -❌ Row comments and revision history -❌ Webhooks and automations +❌ Row comments and revision history +❌ Webhooks and automations After duplicating a table, customize it to suit its new purpose. Start by renaming the table. Then, update any field values by clicking into the relevant cells to change data. If certain fields are unnecessary, [delete unused fields](/user-docs/field-customization). You can also [reorder fields](/user-docs/field-customization) by dragging and dropping them to arrange columns in the order you prefer. @@ -7645,7 +7658,7 @@ After duplicating a table, customize it to suit its new purpose. Start by renami **Supported file formats** - - **CSV files** – Import CSV for simple comma-separated data + - **CSV files** – Import CSV for simple comma-separated data - **JSON files** – Import JSON for structured data exports - **XML files** – Import XML for hierarchical data - **Paste data** – Copy and paste directly from spreadsheets @@ -7725,7 +7738,7 @@ Understand how Baserow databases organize your data using tables, fields, and ro ## What is a Baserow database? -A database is a structured collection of [tables](/user-docs/intro-to-tables) containing rows (records) and columns (fields). +A database is a structured collection of [tables](/user-docs/intro-to-tables) containing rows (records) and columns (fields). A Baserow database is a collection of related tables that store and organize your data. Unlike traditional spreadsheets, Baserow databases let you create relationships between tables, automate workflows, and build custom applications on top of your data. @@ -7733,7 +7746,7 @@ A Baserow database is a collection of related tables that store and organize you ### Database structure -Databases belong to workspaces. Each database lives inside a workspace and can contain multiple tables for different aspects of your projects, like customer information, inventory tracking, or project management. +Databases belong to workspaces. Each database lives inside a workspace and can contain multiple tables for different aspects of your projects, like customer information, inventory tracking, or project management. Before creating a database, you need [a workspace](/user-docs/setting-up-a-workspace). Workspaces are the top-level organizational unit where you manage team members, permissions, and billing. @@ -7851,7 +7864,7 @@ Export your database through the workspace settings menu. Choose between exporti ### Can I convert an Excel spreadsheet into a Baserow database? -Yes! Simply [create a new table](/user-docs/create-a-table-via-import) and import your Excel file. After import, you can refine field types and add Baserow-specific features like relationships and formulas. +Yes! Simply [create a new table](/user-docs/create-a-table-via-import) and import your Excel file. After import, you can refine field types and add Baserow-specific features like relationships and formulas. Learn more: [How to transform spreadsheets into databases](https://baserow.io/blog/how-to-transform-any-spreadsheet-into-a-database). ### How do Baserow databases handle large amounts of data? @@ -7886,7 +7899,7 @@ Now that you understand Baserow databases, explore these topics: Still need help? If you're looking for something else, please feel free to make recommendations or ask us questions; we're ready to assist you. - - [Ask the Baserow community](https://community.baserow.io) + - [Ask the Baserow community](https://community.baserow.io) - [Contact support](/contact) for questions about Baserow or help with your account. @@ -7995,7 +8008,7 @@ Note that this process creates copies, not moves; original content remains unles ### How many workspaces can I create? -There's no limit on the number of workspaces you can create or join. +There's no limit on the number of workspaces you can create or join. ### Is there a difference between workspaces on Cloud vs Self-hosted? @@ -8086,9 +8099,9 @@ Still need help? If you're looking for something else, please feel free to make [24]: /user-docs/delete-a-workspace",,baserow_user_docs,https://baserow.io/user-docs/intro-to-workspaces 51,Subscriptions overview,subscriptions-overview,Baserow Subscriptions overview,"# Understanding Baserow subscriptions -Baserow offers free and paid plans for both cloud and self-hosted deployments. Cloud subscriptions charge per workspace collaborator automatically, while self-hosted subscriptions use manual seat allocation. +Baserow offers free and paid plans for both cloud and self-hosted deployments. Cloud subscriptions charge per workspace collaborator automatically, while self-hosted subscriptions use manual seat allocation. -## Overview +## Overview Baserow subscriptions unlock [paid features][1] across cloud and self-hosted environments, with each deployment type using different billing models. @@ -8112,7 +8125,7 @@ Both processes include pro rata billing calculations, meaning you only pay for t | **Control** | Instant setup, no maintenance | Complete data control and privacy with custom integrations and configurations | | **Usage** | Limit based on plans | Unlimited rows and storage on all paid plans | -> Upgrading your Baserow workspace or instance provides immediate access to paid features upon payment completion. Learn more about how to [upgrade to a Paid Plan][3]. +> Upgrading your Baserow workspace or instance provides immediate access to paid features upon payment completion. Learn more about how to [upgrade to a Paid Plan][3]. ## Understanding subscription status types @@ -8143,7 +8156,7 @@ Understanding which users count toward your subscription helps you manage costs ## Pro rata billing explained -Pro rata billing ensures fair pricing when you make subscription changes mid-cycle. All Baserow [subscription changes][5] trigger pro rata billing adjustments that account for the timing of your modifications. +Pro rata billing ensures fair pricing when you make subscription changes mid-cycle. All Baserow [subscription changes][5] trigger pro rata billing adjustments that account for the timing of your modifications. When you add users or upgrade plans, you receive immediate charges for the difference between your old and new costs, calculated only for the remaining days until your next regular payment. This approach means you never pay twice for the same time period. @@ -8153,7 +8166,7 @@ Cloud subscriptions handle pro rata billing automatically when workspace members ## Frequently asked questions -### How can I check my current plan? +### How can I check my current plan? For cloud plans, you can easily identify your workspace's subscription status directly from the Baserow dashboard interface, which displays plan information next to each workspace name. The dashboard view provides visibility into which workspaces have paid access and which remain on free plans. @@ -8173,7 +8186,7 @@ Pro rata billing calculates the exact value of service time remaining when you m Yes, self-hosted subscriptions support [instance ID][2] changes that allow license transfers between different server deployments. This flexibility supports infrastructure migrations and development-to-production transitions without requiring new license purchases. ### What's the difference between Premium and Advanced cloud plans? -Premium plans offer core enhanced features with automatic billing for all workspace collaborators. Advanced plans include role-based permissions and priority support with selective billing based on user roles. +Premium plans offer core enhanced features with automatic billing for all workspace collaborators. Advanced plans include role-based permissions and priority support with selective billing based on user roles. For complete pricing details and feature comparisons, visit the [Baserow pricing page](https://baserow.io/pricing). @@ -8212,9 +8225,9 @@ For detailed information about plan features and limitations, please refer to th ## What is a Baserow subscription? -Baserow subscriptions unlock [upgraded database features][2] like advanced views, increased record limits, and collaboration tools. Creating a new subscription upgrades your existing workspace or instance from free to paid access. Whether you use Baserow's cloud or run your own server, subscriptions provide the same core functionality with different storage and user management approaches. +Baserow subscriptions unlock [upgraded database features][2] like advanced views, increased record limits, and collaboration tools. Creating a new subscription upgrades your existing workspace or instance from free to paid access. Whether you use Baserow's cloud or run your own server, subscriptions provide the same core functionality with different storage and user management approaches. -To buy a Baserow subscription, you will need a [baserow.io](http://baserow.io) account, even if the subscription is intended for self-hosted Baserow instances. The process varies depending on whether you're managing cloud workspaces or self-hosted instances. +To buy a Baserow subscription, you will need a [baserow.io](http://baserow.io) account, even if the subscription is intended for self-hosted Baserow instances. The process varies depending on whether you're managing cloud workspaces or self-hosted instances. For more details about how Baserow subscriptions work, [view this documentation][3]. @@ -8236,7 +8249,7 @@ Sign in to https://baserow.io, then click on your workspace in the top left corn **Step 2: Select cloud version** -Within the subscriptions page, the list of workspaces within the SaaS (hosted cloud version) will be displayed on the left-hand side of the screen. +Within the subscriptions page, the list of workspaces within the SaaS (hosted cloud version) will be displayed on the left-hand side of the screen. ![Baserow subscription selection interface][6] @@ -8270,7 +8283,7 @@ Billing is based on [billable users][4]. Adding billable users increases costs i ### Can I mix free and paid users in cloud plans? -No, cloud subscription is per workspace and requires all active contributors to be on the same plan tier, so they cannot be mixed with Free users. However, in Premium and Advanced self-hosted instances, you can mix Free users with paid licenses as license is instance-based. +No, cloud subscription is per workspace and requires all active contributors to be on the same plan tier, so they cannot be mixed with Free users. However, in Premium and Advanced self-hosted instances, you can mix Free users with paid licenses as license is instance-based. ### What happens if I exceed storage limits on cloud plans? Premium cloud plans include 20GB storage, and Advanced plans include 100GB. [Contact support](https://baserow.io/contact) if you approach these limits to discuss upgrade options or data management strategies. @@ -8317,7 +8330,7 @@ Baserow paid licenses unlock [paid features][1] on self-hosted installations. Th ## Overview -Self-hosted licenses work differently from cloud subscriptions. Instead of automatic feature activation, you receive a license key that must be manually registered with your specific Baserow instance. +Self-hosted licenses work differently from cloud subscriptions. Instead of automatic feature activation, you receive a license key that must be manually registered with your specific Baserow instance. The licensing system operates on a seat-based model where you assign paid access to specific users rather than entire workspaces. This flexibility allows mixing free and paid users within the same Baserow installation. @@ -8339,7 +8352,7 @@ Your instance ID connects your self-hosted installation to the license. Only Ins A license can only be obtained on baserow.io. Sign in to https://baserow.io, then click on your workspace in the top left corner -> **[Subscriptions][5]**. If you have existing subscriptions, click on the **+ Add new** button at the top-right of the page. -> If you have already [purchased a license][5], it will be delivered to you by email, and you can get it from the overview in your account. +> If you have already [purchased a license][5], it will be delivered to you by email, and you can get it from the overview in your account. Learn more: [Manage existing subscription][6] @@ -8349,17 +8362,17 @@ Within the subscriptions page, the right side of the screen will hold the self-h **Step 4: Enter instance ID** -On the Subscriptions page, enter your instance ID in the field provided and click **Next**. We need your [instance ID][7] because the license will be connected to it. +On the Subscriptions page, enter your instance ID in the field provided and click **Next**. We need your [instance ID][7] because the license will be connected to it. ![get your Instance ID][8] **Step 5: Configure subscription** -Next, select the number of seats, payment period and payment plan. +Next, select the number of seats, payment period and payment plan. > When you upgrade to the Advanced plan, start by buying only the number of paid seats you need. Once your license is active, you can then invite free users to join your workspace. If you add everyone during the upgrade, the system won’t separate free users from paid users, and you’ll be billed for all of them. -Subscriptions are priced per seat, and you can choose to be charged monthly or annually. You can choose the number of seats you want to purchase and [adjust it at any time](https://baserow.io/user-docs/change-a-paid-subscription). +Subscriptions are priced per seat, and you can choose to be charged monthly or annually. You can choose the number of seats you want to purchase and [adjust it at any time](https://baserow.io/user-docs/change-a-paid-subscription). Then click **Subscribe**. @@ -8379,7 +8392,7 @@ After you purchase a license, you will be able to [download a license key][9] th Navigate to **Subscriptions** → **License subscriptions** → **More details**. Click **Reveal license key** to display your key -Copy and paste the license key in the field. +Copy and paste the license key in the field. **Step 8: Register license with your instance** @@ -8417,6 +8430,12 @@ Learn more about how to [manage an existing license][12]. No, each license key works only with the specific instance ID it was purchased for. Multiple installations require separate subscriptions and license keys. +### What is the difference between purchasing the Premium and Advanced plans + +The Premium plan doesn’t support free roles or role-based permissions. You set the initial seat count when you [purchase a subscription][2], which defines your licensed user capacity. + +When you upgrade to the Advanced plan, start by buying only the number of paid seats you need. Once your license is active, you can then invite free users to join your workspace. + ### What happens when my license expires? Paid features become unavailable for all assigned users immediately after expiration. Your data remains intact, but paid functionality returns to free plan limitations until you renew. @@ -8429,7 +8448,7 @@ On the Premium plan, there are no free roles. Every user you add is automaticall ### Can I mix free and billable users in the same workspace? -Yes, billable and free users can collaborate in the same workspaces as the license is instance-based. Billable users access paid features while free users work within standard limitations. Choose exactly which team members receive access to advanced views, exports, and collaboration tools. +Yes, billable and free users can collaborate in the same workspaces as the license is instance-based. Billable users access paid features while free users work within standard limitations. Choose exactly which team members receive access to advanced views, exports, and collaboration tools. Premium and Advanced licensing allow mixing free and billable users within the same instance through manual seat assignment. If you have 100 free users in total, you can buy a license for 10 seats and assign 10 users to it, meaning 10 users will have premium and 90 are free. This can be combined. @@ -8437,10 +8456,6 @@ Premium and Advanced licensing allow mixing free and billable users within the s The system calculates the remaining value from your current plan and applies it toward the new plan cost through pro rata calculations, ensuring you receive full value without refunds. -### What if I need to change my instance ID? - -You can [modify the instance ID][12] associated with your subscription through the baserow.io subscription management interface. This supports server migrations and infrastructure changes. - ## Troubleshooting license installation ### License registration fails @@ -8482,7 +8497,7 @@ Still need help? If you're looking for something else, please feel free to make [10]: https://baserow.io/user-docs/subscriptions-overview#user-billing-classifications [11]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/7fc3aedc-e73d-494d-9da1-2aa456ec752c/Register%20License.jpg [12]: https://baserow.io/user-docs/getting-and-changing-the-instance-id - [13]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/0faf781e-e048-4af8-b9c5-4209f86cabd4/view%20your%20license%20ID.jpg",,baserow_user_docs,https://baserow.io/user-docs/get-a-licence-key + [13]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/0faf781e-e048-4af8-b9c5-4209f86cabd4/view%20your%20license%20ID.jpg",hosting,baserow_user_docs,https://baserow.io/user-docs/get-a-licence-key 54,Manage licenses,getting-and-changing-the-instance-id,Manage licenses in Baserow self-hosted instance,"# Manage licenses in self-hosted Baserow This guide covers how to view, register, assign, and manage licenses for your self-hosted Baserow instance through the admin panel. @@ -8500,9 +8515,7 @@ The **Manage Licenses** page in the admin panel is your control center for all l - Check for license updates - Disconnect licenses when needed -For step-by-step license installation, learn how to [purchase and install a self-hosted license][1] for non-enterprise plans. - -> See [Activate Enterprise license](/user-docs/activate-enterprise-license) for complete Enterprise registration process including troubleshooting. +> For step-by-step license installation, learn how to [purchase and install a self-hosted license][1] for non-enterprise plans. See [Activate Enterprise license](/user-docs/activate-enterprise-license) for the complete Enterprise registration process. ## Access Manage Licenses page @@ -8515,6 +8528,8 @@ To manage an existing license or activate a new license: You'll see a list of registered licenses (if any), your Baserow Instance ID, **Register license** button, and **Get a license** button. +![Access Manage Licenses page][2] + ## Your Baserow Instance ID ### What is an Instance ID? @@ -8536,21 +8551,22 @@ You will need your Instance ID when [purchasing a new self-hosted subscription][ In Baserow's self-hosted subscriptions, a ""seat"" refers to a single user license that grants access to paid features. The way seats are assigned depends on your specific plan. +Learn more: [Who is considered a “user” for billing purposes?][3] + ### How seat assignment works For Premium and Advanced plans, an Instance Admin must manually assign each of these seats to a specific user. Only users who have been assigned a seat can access the paid features. Any user on your instance who is not assigned a seat will remain on the Free plan, with its corresponding feature set. -For [Enterprise plans][2], the license is applied to the entire instance, and no individual seat assignment is required. All users on your Baserow instance automatically receive access to all Enterprise-level features. +For [Enterprise plans][4], the license is applied to the entire instance, and no individual seat assignment is required. All users on your Baserow instance automatically receive access to all Enterprise-level features. -### Assign seats step-by-step +### Assign seats after subscription 1. Navigate to **Admin tools** → **Manage licenses** -2. Click on your **Premium** or **Advanced** license in the list +2. Click on your license in the list 3. In the **Users** section at the top, click **Add a user** 4. Select users from the dropdown -5. Click **Add** -The **Users** section shows the number of seats available, seats left (e.g., ""10 seats left""), and the assigned users list (name, email, and remove icon). +The **Users** section shows the number of seats available, seats left, and the assigned users list (name, email, and remove icon). ### Remove user from license @@ -8564,13 +8580,13 @@ The **Users** section shows the number of seats available, seats left (e.g., ""1 - Click the **Remove all users** button at the bottom of the Users section - All users revert to Free plan features -> **Note:** Removing users doesn't cancel your subscription; it just frees up seats for reassignment. +> **Note:** Removing users doesn't [cancel your subscription][5]; it just frees up seats for reassignment. ## View license details ### Access license details -Click on any registered license in your Manage Licenses list to view complete information: +Click on any registered license in your **Manage Licenses** list to view complete information and usage limits: ### License information displayed @@ -8583,13 +8599,9 @@ Click on any registered license in your Manage Licenses list to view complete in | **Last check** | When Baserow last verified license status | | **Seats** | Number of user licenses included | | **Licensed to** | Name and email of license purchaser | - -### Usage information (if applicable) - -Some licenses show usage limits: -- **Applications / databases** - Number allowed -- **Row usage** - Current row count vs. limit -- **Storage usage** - Current storage vs. limit +| **Applications / databases** | Number allowed | +| **Row usage** | Current row count vs. limit | +| **Storage usage** | Current storage vs. limit | ## Check for license updates @@ -8622,7 +8634,7 @@ Learn more about [updating licenses on air-gapped servers](/user-docs/activate-e Disconnecting a license removes the license from your instance, revokes premium/advanced features from all assigned users immediately, and frees the license to be registered on a different instance. -However, disconnecting a license does not [cancel your subscription][3] or refund payment +However, disconnecting a license does not [cancel your subscription][6] or refund payment ### How to disconnect @@ -8703,6 +8715,10 @@ No. The Enterprise license is instance-wide, meaning all users on your Baserow i ### Who can assign seats on a Premium or Advanced plan? Instance Admins are responsible for assigning and managing user seats from the admin panel. +### License not showing in Manage Licenses + +This is because the [license has not been registered][1] yet, or registration failed. Obtain the license key from Baserow sales or your subscription, and navigate to **Admin tools** → **Manage licenses**. Click **Register license**, enter the license key, and verify the Instance ID matches your purchase. + ## Related content **License activation and management:** @@ -8716,7 +8732,7 @@ Instance Admins are responsible for assigning and managing user seats from the a - [Subscriptions overview](/user-docs/subscriptions-overview) **Self-hosted setup:** -- [Self-hosted installation guide](https://baserow.io/docs/installation/install-with-docker) +- [Self-hosted installation guide](https://baserow.io/docs/index#installation) - [Configuration guide](https://baserow.io/docs/installation/configuration) --- @@ -8728,8 +8744,11 @@ Still need help? If you're looking for something else, please feel free to make [1]: https://baserow.io/user-docs/get-a-licence-key - [2]: https://baserow.io/user-docs/enterprise-license-overview - [3]: https://baserow.io/user-docs/change-a-paid-subscription",,baserow_user_docs,https://baserow.io/user-docs/getting-and-changing-the-instance-id + [2]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/2b06ac5c-d68d-451f-a5ca-021a0193701c/Access%20Manage%20Licenses%20page.jpg + [3]: https://baserow.io/user-docs/subscriptions-overview + [4]: https://baserow.io/user-docs/enterprise-license-overview + [5]: https://baserow.io/user-docs/cancel-subscriptions + [6]: https://baserow.io/user-docs/change-a-paid-subscription",hosting,baserow_user_docs,https://baserow.io/user-docs/getting-and-changing-the-instance-id 55,Manage subscription,change-a-paid-subscription,Manage subscription in Baserow,"# Manage an existing Baserow subscription Manage existing Baserow subscriptions by adding or removing users, changing plans, [updating payment methods][1], or [canceling subscriptions][2]. Modifying existing subscriptions allows you to adjust your Baserow investment as your team grows or your needs change. @@ -8745,7 +8764,7 @@ Learn more about [how subscriptions work in Baserow][6]. ## Update a subscription or license -Sign in to https://baserow.io, then click on your workspace in the top left corner -> Subscriptions. +Sign in to https://baserow.io, then click on your workspace in the top left corner -> Subscriptions. The subscription details page provides comprehensive information about the [subscription status][7], your current usage, including next payment date, and available modification options. @@ -8753,15 +8772,15 @@ The subscription details page provides comprehensive information about the [subs Click on **More details**. Within the subscription details view, you can access several management functions. -For workspace subscriptions, you can view the [billing plan][4], status, cost, paid users, billing period, features enabled, including how to change payment method, receipt downloads, and usage monitoring. +For workspace subscriptions, you can view the [billing plan][4], status, cost, paid users, billing period, features enabled, including how to change payment method, receipt downloads, and usage monitoring. -For self-hosted licences, you can view the [billing plan][4], [license ID][9], [instance ID][10], license key, status, seats, cost, paid users, billing period, features enabled, including how to change payment method, and receipt downloads. +For self-hosted licences, you can view the [billing plan][4], [license ID][9], [instance ID][10], license key, status, seats, cost, paid users, billing period, features enabled, including how to change payment method, and receipt downloads. This helps you understand both your current seat, row usage and storage consumption and upcoming billing obligations. ![Subscription management option][11] -To update a subscription, click **Change subscription** and select your desired options. +To update a subscription, click **Change subscription** and select your desired options. For workspace subscriptions, you can update the billing period, billing plan or [cancel the subscription][2]. @@ -8773,9 +8792,9 @@ The interface shows you the immediate billing impact of your changes before you ## Change self-hosted seat counts -Self-hosted seat management provides precise control over your licensing costs and user access. +Self-hosted seat management provides precise control over your licensing costs and user access. -To adjust seat counts for self-hosted subscriptions, you must access the Baserow.io cloud interface even though your actual database runs on your own servers. +To adjust seat counts for self-hosted subscriptions, you must access the Baserow.io cloud interface even though your actual database runs on your own servers. Navigate to your subscription details and click **More details** to access the modification interface. The self-hosted subscription management page allows you to adjust seat counts, change plans, update instance IDs, and modify payment periods all from a single interface. @@ -8965,7 +8984,7 @@ Baserow offers two authentication methods for API access: ## How to create a database token 1. **Access token settings** - - Click on your workspace in the top left corner + - Click on your workspace in the top left corner - Navigate to **Settings** - Select the **Database tokens** tab @@ -9284,7 +9303,7 @@ Pipedream lets you automate Baserow workflows without managing servers. When dat Before you begin, make sure you have: -- A [Pipedream account](https://pipedream.com) +- A [Pipedream account](https://pipedream.com) - A Baserow account with at least one database and table - A [Baserow API token](/user-docs/personal-api-tokens) from your account settings @@ -9292,7 +9311,7 @@ Before you begin, make sure you have: ### Step 1: Build a new workflow -In Pipedream, workflows must be [created in Projects][2]. Create a new project, and then create a new workflow. +In Pipedream, workflows must be [created in Projects][2]. Create a new project, and then create a new workflow. Configure GitHub Sync for projects to enable git-based version control to develop in branches, commit to or pull changes from GitHub, view diffs, and create PRs. @@ -9340,7 +9359,7 @@ Select any Baserow custom or pre-built action. ### Use any Baserow API in Node.js -Select **Use any Baserow API in Node.js** action to connect your account and customize a Baserow API request. +Select **Use any Baserow API in Node.js** action to connect your account and customize a Baserow API request. Pipedream Code steps drive the logic of your workflow and let you write any custom Node.js code. The workflow builder will accept text input to populate the steps. @@ -9409,1165 +9428,1190 @@ Still need help? If you're looking for something else, please don't hesitate to [14]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/492da8b5-7298-4aaa-ad84-a5d8ee0642d9/Screenshot_2022-10-20_at_06.33.33.png [15]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/9abbd422-7e4f-413e-a75f-6b07f9d1316d/Screenshot_2022-10-18_at_16.49.37.png [16]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/d6521859-d239-447e-ac82-d93c2b52f415/Screenshot_2022-10-18_at_17.06.48.png",,baserow_user_docs,https://baserow.io/user-docs/pipedream -92,Single Sign On,single-sign-on-sso-overview,Baserow Single Sign-On (SSO) explained,"# Single Sign On overview +92,Single Sign On,single-sign-on-sso-overview,Baserow Single Sign-On (SSO) explained,"# Single Sign-On (SSO) Overview -Single Sign On (SSO) allows users to log in just one time with one set of credentials to get access to all corporate apps, websites, and data for which they have permission. +Single Sign-On (SSO) allows users to access Baserow using their existing corporate credentials, eliminating the need to manage separate usernames and passwords. -Baserow integrates with any 3rd party SSO provider using Security Assertion Markup Language (SAML) to control who can log in and let them do so without having to sign-up to your Baserow separately. +> SSO is available on the **Baserow Advanced and Enterprise** plan. You must have a [valid license][1] activated to configure these settings. -> Single Sign-On feature is a part of the Baserow Enterprise offering. Instance-wide features are only available on the self-hosted Enterprise plan. To learn more about the Baserow enterprise plan, [visit our pricing page][1]. -> +## Overview -Only Instance admins have access to the Baserow Admin panel. Instance Admins have staff access to the entire self-hosted instance. +Baserow SSO integrates with your identity provider (IdP) to centralize user access, improve security, and simplify employee onboarding. -![enter image description here][2] +Instead of signing up with a personal email, employees log in via your company's central dashboard (like Okta, Azure AD, or Google Workspace). This ensures that when an employee leaves the company and is removed from your IdP, they automatically lose access to Baserow. -Baserow Users can use Single Sign On (SSO) to maintain their user identities in a central location so they can access many services using the same user base. +To configure SSO, you must be an **[Instance Admin][2]**. Navigate to the **[Admin Tools][3]** \> **General** -> **Authentication**. -## Prerequisites +![Baserow Authentication Providers][4] -In general, to configure an authentication provider for single-sign-on users will need to: +## Configuration Prerequisites -- Obtain Client ID and Secret from your provider of choice and use them to create a new authentication provider in Baserow. -- Know the provider’s base URL for GitLab or OpenID Connect providers. -- Set/allow the Baserow Callback URL in your provider so that users can be safely redirected back to Baserow upon login. +Before adding a provider in Baserow, you will generally need to set up an ""Application"" inside your Identity Provider's dashboard. -## View a list of authentication providers +**You typically need to gather:** -To view the providers registered in your instance: + * **Client ID and Client Secret:** (For OAuth/OIDC) generated by your provider. + * **Metadata URL or XML:** (For SAML) provided by your IdP. + * **Callback URL:** You must paste Baserow's ""Callback URL"" into your provider's settings. This ensures users are safely redirected back to Baserow after logging in. -1. Visit your Baserow server and log in as an instance-wide admin. -2. In the left menu, select **Admin**. -3. Click the **Authentication** page. The Authentication providers pane opens and displays a list of the providers in your server. +## Supported Protocols -![enter image description here][3] +Baserow supports the three major industry standards for authentication. -## SAML SSO Providers +### SAML 2.0 -Security Assertion Markup Language (SAML) is a security standard for managing authentication and access. When using SAML SSO, users can log in to their Baserow organization using the organization’s identity provider. +Security Assertion Markup Language (SAML) is the standard for enterprise-grade identity management. It allows your Identity Provider (IdP) to pass authorization credentials to Baserow securely. -Baserow supports dedicated integrations with the following identity providers: +**Supported dedicated integrations:** -- [Set up SSO for Okta][4] -- [Set up SSO for OneLogin][5] -- [Set up SSO for Azure AD](/user-docs/configure-sso-with-azure-ad) + * [Okta](/user-docs/configure-sso-with-okta) + * [OneLogin](/user-docs/configure-sso-with-onelogin) + * [Azure AD (Entra ID)](/user-docs/configure-sso-with-azure-ad) -![enter image description here][6] +### OAuth 2.0 -## OAuth 2 SSO Providers +OAuth 2 is commonly used for ""Social Login"" or delegated access. It allows users to authorize Baserow to verify their identity via a third-party service without sharing their password. -OAuth2 protocol provides secure delegated access without sharing the credentials. It allows users to give access to their resources hosted by a service provider, such as Facebook, without giving away credentials. It acts as an intermediary on behalf of the end user, providing the service with an access token that authorizes specific account information to be shared. +**Supported dedicated integrations:** -- [Configure Google provider][7] -- [Configure Facebook provider][8] -- [Configure GitHub provider][9] -- [Configure GitLab provider][10] + * [Google](/user-docs/configure-google-for-oauth-2-sso) + * [Facebook](/user-docs/configure-facebook-for-oauth-2-sso) + * [GitHub](/user-docs/configure-github-for-oauth-2-sso) + * [GitLab](/user-docs/configure-gitlab-for-oauth-2-sso) -## OpenID Connect SSO +### OpenID Connect (OIDC) -OpenID Connect is an identity layer built on top of the OAuth 2.0 protocol. Its purpose is to give you one login for multiple sites. With the support of OpenID Connect, the Baserow users are now able to use ANY service that supports this exact protocol to login into the tool. +OpenID Connect is an identity layer built on top of OAuth 2.0. It allows Baserow to verify user identity against *any* service that supports the OIDC standard, even if a dedicated integration is not listed above. -- [Set up SSO for OpenID Connect][11] + * [Set up Generic OpenID Connect](/user-docs/configure-openid-connect-for-oauth-2-sso) -## Related content +## Managing Authentication Providers - - [Baserow Enterprise plan][12]. - - [Enable SSO in the admin panel][13]. - - [Email and password authentication][14]. +To view or add providers: ---- + 1. Log in as an Instance Admin. + 2. Go to **Admin tools -> Authentication**. + 3. You will see a list of active providers. + 4. Click **Add provider**, or click the **three-dot icon** to edit or delete an existing one. - -Still need help? If you're looking for something else, please feel free to make recommendations or ask us questions—we’re ready to assist you. +## Troubleshooting & Common Issues - - [Ask the Baserow community](https://community.baserow.io) - - [Contact support](/contact) for questions about Baserow or help with your account +### Error: “Please use the provider that you originally signed up with” - [1]: /pricing - [2]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/d58ccccd-1a15-4563-82b8-b0f02afae076/Untitled.png - [3]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/c21df210-ed52-45d1-bcff-943468ac48dc/Screenshot%202023-02-15%20at%2009.37.24.png - [4]: /user-docs/configure-sso-with-okta - [5]: /user-docs/configure-sso-with-onelogin - [6]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/eb37acf4-c48f-4c77-ae46-2448b3b1f807/Untitled%201.png - [7]: /user-docs/configure-google-for-oauth-2-sso - [8]: /user-docs/configure-facebook-for-oauth-2-sso - [9]: /user-docs/configure-github-for-oauth-2-sso - [10]: /user-docs/configure-gitlab-for-oauth-2-sso - [11]: /user-docs/configure-openid-connect-for-oauth-2-sso - [12]: /user-docs/enterprise-license-overview - [13]: /user-docs/enable-single-sign-on-sso - [14]: /user-docs/email-and-password-authentication",roles and permissions,baserow_user_docs,https://baserow.io/user-docs/single-sign-on-sso-overview -93,Enable SSO,enable-single-sign-on-sso,Enable Single Sign On (SSO),"# Enable Single Sign On (SSO) in the admin panel - -Streamline your login process with Single Sign-On (SSO), which enables users to log in once using a single set of credentials. With SSO, you can conveniently access all corporate applications, websites, and authorized data. Make the most of your Baserow experience by simplifying authentication and securely accessing your resources. - -Learn how to integrate SSO to seamlessly authenticate across various applications and systems without the need to remember multiple usernames and passwords. +This error occurs if a user already has a Baserow account (created via Email/Password) and tries to log in via Okta SSO later. For security reasons, Baserow does not automatically merge these identities by default. -## Overview +**Solutions:** -Instance Admins can set up Single sign-on (SSO) with Identity Providers (IdP) for their teams' logins to Baserow. + 1. **Delete and re-add (Recommended):** Delete the user from the Baserow [Users page](/user-docs/admin-panel-users). When they log in via Okta, a new account will be created automatically with the correct SSO link. + > This option should only be considered if data loss is acceptable and after ensuring all data is backed up elsewhere. + 2. **Enable Multiple Auth Methods (Advanced):** An admin can set the environment variable `BASEROW_ALLOW_MULTIPLE_SSO_PROVIDERS_FOR_SAME_ACCOUNT=true` on the server. This allows merging but increases security risk. + 3. **Maintain consistent authentication method**: Users can continue logging in with the authentication method they signed up with. This avoids changing Baserow’s default behavior and maintains existing security measures. -> Single Sign-On feature is a part of the Baserow Enterprise offering. Instance-wide features are only available on the self-hosted Enterprise plan. To learn more about the Baserow enterprise plan, [visit our pricing page][1]. -> +> For optimal security, we recommend maintaining consistent authentication methods unless necessary. If enabling multiple login methods is essential, implement additional security measures to mitigate potential risks. -Only Instance admins on a self-hosted Baserow server with the Enterprise plan can access the SSO admin page. Instance Admins have staff access to the entire self-hosted instance. +Learn more: [SSO configuration][7] -## Add providers for SSO SAML +## Frequently Asked Questions (FAQ) -Baserow uses SAML (Security Assertion Markup Language) to simplify and secure the authentication process so users only need to log in once with a single set of authentication credentials. +### Can I enforce SSO and disable password login? - 1. From your Baserow dashboard, go to Admin → Authentication in the navigation sidebar on the left. Under the authentication configuration section, click the “Add Provider” button. +Yes. Administrators can disable the standard [""Email and password"" authentication method][5] in the settings. This forces all users to log in via your configured SSO provider, ensuring strict adherence to company security policies. - 2. Select “SSO SAML Provider” from the dropdown menu. Clicking this will open up a configuration window: +### Can I use multiple SSO providers at once? - ![enter image description here][2] +Yes. You can configure multiple providers (e.g., ""Google"" for the marketing team and ""GitHub"" for the engineering team). Users will see buttons for all active providers on the login screen. - 3. When the “Add a new SSO SAML provider” modal is opened, you can see the `Default Relay State URL` and the `Single Sign On URL` needed to configure a SAML application. You'll need this value later, so make a note of them. +### What happens to existing accounts if I enable SSO? - ![enter image description here][3] +If the email address in Baserow matches the email address in the SSO provider, the user will be logged into their existing account. Baserow links the identity based on the email address. - 4. Next, retrieve your third-party SSO metadata and domain from your SSO identity provider, following the instructions for each in this guide: +## Related content - - [Configure OneLogin for SAML SSO][4] - - [Configure Okta for SAML SSO][5] - - [Configure Azure AD for SAML SSO](/user-docs/configure-sso-with-azure-ad) + * [Baserow Enterprise Overview](/user-docs/enterprise-license-overview) + * [Email and Password Authentication](/user-docs/email-and-password-authentication) + * [Manage Users](/user-docs/admin-panel-users) + * [Azure AD Configuration](/user-docs/configure-sso-with-azure-ad) - 5. Paste the XML metadata in the authentication popup. You’ll end up with something like this: +--- -![enter image description here][6] +Still need help? If you're looking for something else, please feel free to make recommendations or ask us questions; we’re ready to assist you. - 6. Save the new provider. Click 'Create' to allow the SSO login configuration to occur. + - [Ask the Baserow community](https://community.baserow.io) + - [Contact support](/contact) for questions about Baserow or help with your account -After the provider has been correctly created, you should see it listed in the provider's list. -## OAuth provider configuration + [1]: https://baserow.io/user-docs/self-hosted-licenses + [2]: https://baserow.io/user-docs/admin-panel-users + [3]: https://baserow.io/user-docs/enterprise-admin-panel + [4]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/dbc3aa3d-c7b4-4912-914c-8494a483432e/Authentication%20Providers.jpg + [5]: https://baserow.io/user-docs/email-and-password-authentication + [7]: https://baserow.io/docs/installation%2Fconfiguration#sso-configuration",sso,baserow_user_docs,https://baserow.io/user-docs/single-sign-on-sso-overview +93,Manage SSO providers,enable-single-sign-on-sso,Enable Single Sign On (SSO) in Baserow,"# Enable and manage Single Sign-On (SSO) -Baserow supports a variety of OAuth 2 providers like Google, Facebook, GitLab, GitHub, and any providers that support OpenID Connect protocol. +This guide explains how to configure [Single Sign-On (SSO)][1] connections within the Baserow Admin Panel, allowing you to connect identity providers like Okta, Google, Azure AD, and more. - 1. From your Baserow dashboard, go to Admin → Authentication. Under the authentication configuration section, click the “Add Provider” button. +> SSO is available on the **Baserow Advanced and Enterprise** plans. You must have a valid license activated to configure these settings. [Visit the pricing page][2]. - 2. Select a provider from the dropdown menu. Clicking this will open up a configuration window: +## Overview -![enter image description here][7] +Baserow SSO allows Instance Admins to connect external Identity Providers (IdP), enabling users to log in with their corporate credentials instead of creating unique Baserow accounts. - 3. When the modal is opened, you can see the **Callback URL** needed to configure the provider. You'll need this value later, so make a note of it. +To manage these settings, you must be an **[Instance Admin][3]**. Navigate to **[Admin Tools][4] \> General -> Authentication**. -![enter image description here][8] +There are two primary ways to connect an Identity Provider: - 4. Next, retrieve your **Client ID** and **Secret** from the provider, following the instructions for each in this guide: - - [Configure SSO with Google as the Identity Provider][9] - - [Configure SSO with Facebook as the Identity Provider][10] - - [Configure SSO with GitHub as the Identity Provider][11] - - [Configure SSO with GitLab as the Identity Provider][12] - - [Configure SSO with OpenID Connect][12] +1. **SAML:** Uses XML metadata (Common for Okta, OneLogin, Azure). +2. **OAuth 2:** Uses Client ID and Secret (Common for Google, Facebook, GitHub). - To configure OpenID Connect, you will also need to retrieve your **Custom provider name** and **Base URL** from the provider. +To view the list of providers, [visit this page][1] +![Add a new SSO SAML provider in Baserow][5] - 5. After retrieving your organization's third-party SSO details, you will need to enter the provider's **Client ID** and **Secret** that you receive from the IdP in the fields in Baserow. - - Fill in the Provider’s name. This name will be displayed to your Baserow users on the login screen. - - Fill in the **Client ID** and **Secret** that you obtained from the provider. - - To configure OpenID Connect, also fill in the Provider’s Base **URL**. Also, you can optionally set a custom GitLab **URL** in case you are self-hosting GitLab. +## Option 1: Add a SAML provider - 6. Save the new provider. Click 'Create' to allow the SSO login configuration to occur. +Use this method for enterprise-grade identity providers like Okta, OneLogin, or Azure AD. -After the provider has been correctly created, you should see it listed in the provider's list. +1. **Open authentication settings:** Go to **Admin \> Authentication**. +2. **Add provider:** Click the **+ Add provider** button and select **SSO SAML Provider**. +3. **Copy Baserow URLs:** The modal will display two critical URLs. Copy these, as you will need to paste them into your Identity Provider's configuration page: + * `Single Sign On URL` (ACS URL) + * `Default Relay State URL` +4. **Configure your IdP:** Log in to your Identity Provider (e.g., Okta) and create a new SAML application using the URLs you just copied. (See specific guides depending on the provider below). +5. **Get metadata:** Your Identity Provider will generate an **XML Metadata** file or string. Copy this to your clipboard. +6. **Finalize in Baserow:** Paste the XML data into the **Metadata** field in the Baserow modal and click **Create**. -![enter image description here][13] +**Specific setup guides:** -## Edit or delete an identity provider + * [Configure OneLogin][6] + * [Configure Okta][7] + * [Configure Azure AD][8] -On your authentication page in the admin section, you can edit, delete or disable an authentication provider. +## Option 2: Add an OAuth 2.0 provider -Any IdP, including Email and Password authentication, can be disabled/enabled, but at least one provider needs to be enabled. To disable or enable an authentication provider, use the toggle beside the provider. +Use this method for social logins or delegated authentication providers like Google Workspace or GitHub. -> If authentication with Email and Password is disabled, at least one authentication provider must always be enabled. It is not possible to delete or disable the last enabled provider. +1. **Open authentication settings:** Go to **Admin \> Authentication**. +2. **Add provider:** Click the **+ Add provider** button and select your specific provider (e.g., **Google**, **Facebook**) or **OpenID Connect** for generic connections. +3. **Copy Callback URL:** The modal will display a **Callback URL** (Redirect URI). Copy this value. +4. **Configure your provider:** Go to your provider's developer console (e.g., Google Cloud Console), create an OAuth App, and paste the Baserow Callback URL into their ""Authorized Redirect URIs"" field. +5. **Get credentials:** The provider will generate a **Client ID** and **Client Secret**. +6. **Finalize in Baserow:** Paste the Client ID and Secret into the Baserow modal. + * *Note:* If using generic OpenID Connect, you must also provide the **Base URL** of the provider. +7. **Create:** Click **Save** to activate the provider. -To edit or delete an authentication provider, click the ellipsis icon beside the provider and select *Edit* or *Delete:* +**Specific setup guides:** -![enter image description here][14] + * [Google Workspace][9] + * [Facebook][10] + * [GitHub][11] + * [GitLab][12] + * [Generic OpenID Connect][13] -## Related content + ![Baserow Authentication Providers][14] - - [Single Sign On (SSO) overview][15]. - - [Baserow Enterprise plan][16]. - - [Email and password authentication][17]. +## Managing authentication providers ---- +Once configured, you can manage how users interact with these login methods. - +### Editing or deleting -Still need help? If you're looking for something else, please feel free to make recommendations or ask us questions—we’re ready to assist you. +To modify an existing connection (e.g., to rotate a Client Secret): -   [Ask the Baserow community](https://community.baserow.io) +1. Navigate to the provider list. +2. Click the **three-dot icon (⋮)** next to the provider. +3. Select **Edit** to change settings or **Delete** to remove the connection entirely. -   [Contact support](/contact) for questions about Baserow or help with your account. +### Disabling password login +For strict security, you may want to force users to log in *only* via SSO. - [1]: /pricing - [2]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/fbb90e5c-15ae-41e4-ab1e-7991449524b6/Screenshot_2022-11-03_at_14.02.00.png - [3]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/b73f76eb-3286-4c13-8fa8-597bbec339b6/Screenshot_2022-11-01_at_12.39.19.png - [4]: /user-docs/configure-sso-with-onelogin - [5]: /user-docs/configure-sso-with-okta - [6]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/874d2487-8e4e-432f-a0ec-106bc51e5066/Screenshot_2022-11-01_at_16.11.29.png - [7]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/b131496a-ee16-4322-b0a1-294f46afe1d2/Screenshot_2022-11-04_at_12.36.58.png - [8]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/8f6162b6-145d-4545-a6a3-26c443fd2d5f/Screenshot_2022-11-04_at_12.42.36.png - [9]: /user-docs/configure-google-for-oauth-2-sso - [10]: /user-docs/configure-facebook-for-oauth-2-sso - [11]: /user-docs/configure-github-for-oauth-2-sso - [12]: /user-docs/configure-gitlab-for-oauth-2-sso - [13]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/7ac014e5-12ed-4883-b281-9d7603bbc6c3/Screenshot%202023-01-06%20at%2012.30.10.png - [14]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/d1a6cfe7-b770-4e85-84c8-cb8fb6e3198c/Screenshot_2022-11-04_at_08.12.21.png - [15]: /user-docs/single-sign-on-sso-overview - [16]: /user-docs/enterprise-license-overview - [17]: /user-docs/email-and-password-authentication",,baserow_user_docs,https://baserow.io/user-docs/enable-single-sign-on-sso -94,Configure SSO with Okta,configure-sso-with-okta,Configure SSO in Baserow with Okta,"# Configure Single Sign-on (SSO) with Okta + 1. Locate the **Email and Password** provider in the list. + 2. Toggle the switch to **Disabled**. -This guide is intended for [Admins](/user-docs/working-with-collaborators#set-the-permission-level-for-collaborators) setting up SSO SAML with Okta. +Learn more: [Email/Password authentication][15] -When you configure Single Sign-on (SSO) with Okta, your users will be able to create and sign into their Baserow accounts using Okta. +> **⚠️ Warning:** Do not disable Email/Password authentication unless you have fully verified that your SSO provider is working correctly. If SSO fails and password login is disabled, you may lock yourself out of the instance. -If you are looking for information on setting up SSO with other providers: -- [Configure Azure AD for SAML SSO](/user-docs/configure-sso-with-azure-ad) -- [Configure OneLogin for SAML SSO](/user-docs/configure-sso-with-onelogin) -- [Configure Google for OAuth 2 SSO](/user-docs/configure-google-for-oauth-2-sso) -- [Configure Facebook for OAuth 2 SSO](/user-docs/configure-facebook-for-oauth-2-sso) -- [Configure GitHub for OAuth 2 SSO](/user-docs/configure-github-for-oauth-2-sso) -- [Configure GitLab for OAuth 2 SSO](/user-docs/configure-gitlab-for-oauth-2-sso) -- [Configure OpenID Connect for OAuth 2 SSO][1] +## Troubleshooting & Common Issues -> Single Sign-On feature is a part of the Baserow Enterprise offering. Instance-wide features are only available on the self-hosted Enterprise plan. To learn more about the Baserow enterprise plan, [visit our pricing page](https://baserow.io/pricing). -> +### Error: ""Please use the provider that you originally signed up with"" -Here's how to set up Okta to sign in to your Baserow account. +This error occurs if a user already has a Baserow account (created via Email/Password) and tries to log in via Okta SSO later. For security reasons, Baserow does not automatically merge these identities by default. -## Set up SSO SAML with OneLogin - -To get started, log into your Okta account and click **Admin** in the top right corner: - -![enter image description here][2] - -Click the **Applications** tab in the sidebar on the Okta admin page, then select the **Applications** option from the dropdown menu. +**Solutions:** -Next, click the `Create App Integration` button on the Applications page: + 1. **Delete and re-add (Recommended):** Delete the user from the Baserow [Users page](/user-docs/admin-panel-users). When they log in via Okta, a new account will be created automatically with the correct SSO link. + > This option should only be considered if data loss is acceptable and after ensuring all data is backed up elsewhere. + 2. **Enable Multiple Auth Methods (Advanced):** An admin can set the environment variable `BASEROW_ALLOW_MULTIPLE_SSO_PROVIDERS_FOR_SAME_ACCOUNT=true` on the server. This allows merging but increases security risk. + 3. **Maintain consistent authentication method**: Users can continue logging in with the authentication method they signed up with. This avoids changing Baserow’s default behavior and maintains existing security measures. -![enter image description here][3] +> For optimal security, we recommend maintaining consistent authentication methods unless necessary. If enabling multiple login methods is essential, implement additional security measures to mitigate potential risks. -Choose SAML 2.0 as the sign-in method: +Learn more: [SSO configuration][19] -![enter image description here][4] +## Frequently Asked Questions (FAQ) -Choose **Baserow** as the app name and upload the logo for the application: +### What is the ""Relay State""? -![enter image description here][5] +The Relay State is a URL parameter that tells the Identity Provider where to send the user after they successfully log in. In Baserow, this ensures the user is redirected back to the dashboard or the specific page they were trying to access. -Next, retrieve your ***Default Relay State URL*** and ***Single Sign On URL*** from the admin settings modal in Baserow, following the [steps in this guide](/user-docs/enable-single-sign-on-sso#add-providers-for-sso-saml). +### Can I have multiple SSO providers? -To Configure SAML in Okta, add your `Single Sign On URL` in the first two fields (”Single sign on URL” and “Audience URI (SP Entity ID)”). +Yes. You can [add multiple providers][1] (e.g., both GitHub and Google). All active providers will appear as buttons on the login page. -Add your `Default Relay State URL` in the “Default Relay State” field. +### What happens if I lock myself out? -Create 3 attribute statements with values as such: +If you disable ""Email and Password"" login and your SSO provider stops working, you will lose access to the Admin Panel. To recover access, you must use the Baserow server command line (CLI) to manually re-enable password authentication. -| Field name | Value | -| --- | --- | -| user.email | user.email | -| user.first_name | user.firstName | -| user.last_name | user.lastName | +### Does Baserow support SCIM? -Set all other fields like in the image below: +Baserow currently supports JIT (Just-In-Time) provisioning, meaning user accounts are created automatically the first time they log in via SSO. Full SCIM (User syncing/deprovisioning) is not currently supported via the Admin Panel. -![enter image description here][6] +## Related content -Click ‘**Next**’ to complete the configuration. + * [SSO Overview][16] + * [Manage Users][17] + * [Baserow Enterprise Features][18] -Once the app has been created, assign it to people from the ‘Assignments’ tab of the Baserow Okta application. This permits these people to send the user information from Okta to Baserow to create/log in to the account. +--- -![enter image description here][7] +Still need help? If you're looking for something else, please feel free to make recommendations or ask us questions; we’re ready to assist you. -To ensure that the sign in works properly on Baserow, set the email domain associated with this app and paste the Identity provider metadata into Baserow. +- [Ask the Baserow community](https://community.baserow.io) +- [Contact support](/contact) for questions about Baserow or help with your account. -The metadata can be found in the ‘Sign On’ tab. Scroll to “SAML Signing Certificates” section and then choose a certificate type with active status. From the actions dropdown of the active certificate, click “View IdP metadata”. + [1]: https://baserow.io/user-docs/single-sign-on-sso-overview + [2]: https://baserow.io/pricing + [3]: https://baserow.io/user-docs/admin-panel-users + [4]: https://baserow.io/user-docs/enterprise-admin-panel + [5]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/2f39ff11-c73b-4d6b-9e10-b938c4684cda/Add%20a%20new%20SSO%20SAML%20provider.jpg + [6]: /user-docs/configure-sso-with-onelogin + [7]: /user-docs/configure-sso-with-okta + [8]: /user-docs/configure-sso-with-azure-ad + [9]: /user-docs/configure-google-for-oauth-2-sso + [10]: /user-docs/configure-facebook-for-oauth-2-sso + [11]: /user-docs/configure-github-for-oauth-2-sso + [12]: /user-docs/configure-gitlab-for-oauth-2-sso + [13]: /user-docs/configure-openid-connect-for-oauth-2-sso + [14]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/dbc3aa3d-c7b4-4912-914c-8494a483432e/Authentication%20Providers.jpg + [15]: https://baserow.io/user-docs/email-and-password-authentication + [16]: /user-docs/single-sign-on-sso-overview + [17]: /user-docs/admin-panel-users + [18]: /user-docs/enterprise-license-overview + [19]: https://baserow.io/docs/installation%2Fconfiguration#sso-configuration",sso,baserow_user_docs,https://baserow.io/user-docs/enable-single-sign-on-sso +94,Configure SSO with Okta,configure-sso-with-okta,Configure SSO in Baserow with Okta,"# Configure SAML SSO with Okta -![enter image description here][8] +This guide explains how to configure Single Sign-On (SSO) using Okta as your Identity Provider (IdP) for Baserow. -After you've accessed the information from the IdP Metadata, copy and paste the information from Okta into Baserow. +> SSO is available on the **[Baserow Advanced and Enterprise][1]** plan. You must have a valid license activated to configure these settings. -## Connect Okta to your Baserow Account +## Overview -Head back to Baserow Admin > Authentication > Provider. +The Baserow Okta integration allows teams to centralize identity management, enabling users to log in to Baserow using their existing Okta credentials via the SAML 2.0 protocol. -Configure OneLogin by inputting the domain and metadata information into the corresponding fields in your Baserow Admin Dashboard, following the [steps in this guide](/user-docs/enable-single-sign-on-sso#add-providers-for-sso-saml). +Setting up this connection involves three main phases: -You should be able to log in with OneLogin after completing these steps by visiting your Baserow server login page. Your users will now be taken to a OneLogin sign-in flow when they attempt to log into Baserow. After logging in with their OneLogin credentials, they will be redirected to the app. + 1. Creating a Baserow application in Okta. + 2. Mapping user attributes (Email, First Name, Last Name) so Baserow can identify users. + 3. Importing Okta's metadata into Baserow to finalize the trust relationship. -![enter image description here][9] +![Edit SSO SAML: okta.com in Baserow][2] -## Understanding Baserow's authentication system +## Prerequisites -By default, Baserow restricts users to logging in only with the same authentication method they used for signing up. For instance, if a user creates an account with a username and password, they won't be able to log in through SSO without further configuration. + * **Baserow:** You must be an [Instance Admin](/user-docs/admin-panel-users) on a self-hosted plan. + * **Okta:** You must have Administrator privileges to create applications. -## Troubleshooting error for SSO Login -You might encounter an error message — ""Something went wrong: please use the provider that you originally signed up with"" — when you attempt to log in via SSO. -This error message indicates a conflict between your initial sign-up method and your attempt to log in via SSO after initially signing up for Baserow with a username and password. +## Phase 1: Create the Application in Okta -Here are the primary options to address this error: +1. Log in to your **Okta Admin Console**. -**Option 1: Enable multiple authentication methods** +2. Navigate to **Applications \> Applications** in the sidebar. -Set the environment variable `BASEROW_ALLOW_MULTIPLE_SSO_PROVIDERS_FOR_SAME_ACCOUNT=true`. After setting this variable, restart the Baserow instance. This allows users to log in with either a password or SSO. +3. Click **Create App Integration**. -This option **increases security risk**, especially if you have multiple OAuth providers enabled. An attacker who gains access to a user's account on any external provider could potentially use that access to log in to the associated Baserow account. +4. Select **SAML 2.0** as the Sign-in method and click **Next**. -> For optimal security, we recommend maintaining consistent authentication methods unless necessary. If enabling multiple login methods is essential, implement additional security measures to mitigate potential risks. +5. **General Settings:** -**Option 2: Maintain consistent authentication method** + * **App name:** Enter `Baserow`. + * **App logo:** (Optional) Upload the Baserow logo for easy recognition. + * Click **Next**. -Users can continue logging in with the authentication method they signed up with. This avoids changing Baserow's default behavior and maintains existing security measures. +![Create the Application in Okta][3] -**Option 3: Delete user from [Admin panel](/user-docs/enterprise-admin-panel) and re-login via SSO** +## Phase 2: Configure SAML Settings -You can delete the user from the Baserow [admin panel](/user-docs/enterprise-admin-panel). Upon logging in via SSO, Baserow will recreate the user, automatically setting SSO as their default authentication method. +In this step, you will tell Okta where to send the authentication data. You will need two URLs from your Baserow instance. -Deleting the user permanently removes all their associated data within Baserow. This option should only be considered if data loss is acceptable and after ensuring all data is backed up elsewhere. +### 1\. Get Baserow URLs -Always prioritize data security when modifying your authentication settings. + * Open a new tab and log in to your Baserow Admin Panel. Learn how to [create and manage providers][4]. + * Go to **Authentication \> + Add Provider \> SSO SAML Provider**. + * Copy the **Single Sign On URL** and **Default Relay State URL** displayed in the modal. -## Related content +### 2\. Configure Okta SAML Settings - - [Single Sign On (SSO) overview](/user-docs/single-sign-on-sso-overview). - - [Baserow Enterprise plan](/user-docs/enterprise-license-overview). - - [Enable SSO in the admin panel](/user-docs/enable-single-sign-on-sso). - - [Email and password authentication](/user-docs/email-and-password-authentication). +Return to Okta and paste the URLs into the corresponding fields: ---- +| Okta Field | Value from Baserow | +| :--- | :--- | +| **Single sign on URL** | Paste your Baserow `Single Sign On URL` | +| **Audience URI (SP Entity ID)** | Paste your Baserow `Single Sign On URL` (Again) | +| **Default RelayState** | Paste your Baserow `Default Relay State URL` | - +If no **Default RelayState** value is set, a blank RelayState is sent -Still need help? If you're looking for something else, please feel free to make recommendations or ask us questions—we’re ready to assist you. +### 3\. Attribute Statements (Crucial Step) -   [Ask the Baserow community](https://community.baserow.io) +You must define how Okta sends user data to Baserow. If these are incorrect, users will be created without names or emails. -   [Contact support](https://baserow.io/contact) for questions about Baserow or help with your account. +Scroll down to **Attribute Statements** and add the following three mappings exactly as written: - [1]: /user-docs/configure-openid-connect-for-oauth-2-sso - [2]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/7e8f8d96-a885-452e-82b2-a97d8777a409/Screenshot_2022-11-04_at_06.30.49.png - [3]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/8a72703c-84ed-4ff2-b5a5-655f9bc53299/Screenshot_2022-11-01_at_12.42.02.png - [4]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/2ce28b13-2655-4551-a7cb-7fbb75a28fbb/Screenshot_2022-11-01_at_12.42.15.png - [5]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/8149d6e0-138a-476e-808d-aeeabebb881c/Screenshot_2022-11-01_at_12.42.43.png - [6]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/f8d9c159-0159-45b2-a6b1-404faceb8cdf/Screenshot_2022-11-01_at_12.44.23.png - [7]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/07c31b77-a626-4db5-a95e-f6ab7d76cd2e/Screenshot_2022-11-01_at_12.45.59.png - [8]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/bf108d7c-a40e-4acc-b484-245bc2622f23/Screenshot_2022-11-01_at_12.44.58.png - [9]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/a3fc6ba7-66b4-47d2-a09c-c62d321d5407/Screenshot_2022-11-04_at_07.02.25.png",,baserow_user_docs,https://baserow.io/user-docs/configure-sso-with-okta -95,Configure SSO with OneLogin,configure-sso-with-onelogin,Configure Baserow SSO with OneLogin,"# Configure single sign-on with OneLogin +| Name (Baserow Variable) | Value (Okta Profile Field) | +| :--- | :--- | +| `user.email` | `user.email` | +| `user.first_name` | `user.firstName` | +| `user.last_name` | `user.lastName` | -This guide is intended for [Admins](/user-docs/working-with-collaborators#set-the-permission-level-for-collaborators) setting up SSO SAML with OneLogin. OneLogin is a cloud-based identity and access management solution. +> The ""Name"" column must be lower-case and use underscores (e.g., `user.first_name`), while the ""Value"" column refers to Okta's internal variable naming (e.g., `user.firstName`). -When you configure Single Sign-on (SSO) with OneLogin, your users will be able to create and sign into their Baserow accounts using OneLogin. +4. Click **Next** and then **Finish**. -If you are looking for information on setting up SSO with other providers: +You can preview the SAML assertion generated from the information inputted. This displays the XML that will be used in the assertion; use it to verify the information you entered. -- [Configure Azure AD for SAML SSO](/user-docs/configure-sso-with-azure-ad) -- [Configure Okta for SAML SSO](/user-docs/configure-sso-with-okta) -- [Configure Google for OAuth 2 SSO][1] -- [Configure Facebook for OAuth 2 SSO][2] -- [Configure GitHub for OAuth 2 SSO][3] -- [Configure GitLab for OAuth 2 SSO][4] -- [Configure OpenID Connect for OAuth 2 SSO][5] +## Phase 3: Connect Okta to Baserow -> Single Sign-On feature is a part of the Baserow Enterprise offering. Instance-wide features are only available on the self-hosted Enterprise plan. To learn more about the Baserow enterprise plan, [visit our pricing page](https://baserow.io/pricing). -> +Now that the app is created in Okta, you need to give the security metadata back to Baserow. -Here's how to set up OneLogin to sign in to your Baserow account. + 1. In Okta, go to the **Sign On** tab of your new Baserow application. -## Set up SSO SAML with OneLogin + 2. Scroll down to the **SAML Signing Certificates** section. -Log in to your [OneLogin](https://www.onelogin.com) account as an administrator. Click **Administration** on the toolbar to go to the Admin panel. + 3. Locate the **Active** certificate and click **Actions \> View IdP metadata**. -To add apps to your company app catalog, go to **Applications > Applications** from the admin page then click on `Add App`: + 4. A new tab will open with a block of XML code. **Copy the entire XML string**. -![enter image description here][6] + 5. Return to your **Baserow Admin Panel**. -Search and select the *SAML Custom Connector (Advanced)*: + 6. In the **Add SAML Provider** modal (where you copied the URLs earlier): -![enter image description here][7] + * **Name:** Enter `Okta`. + * **Metadata:** Paste the XML string you copied from Okta. -Enter *Baserow* as the **Display Name** of the new app, and make sure **Visible in portal** is on. Upload icon and add a description to the new SAML connector. + 7. Click **Save**. -![enter image description here][8] -Click **Save.** You'll find a new left-side navigation menu after saving. Click **Configuration** in the sidebar menu. +![SAML Signing Certificates in Baserow][5] -Next, log in to Baserow. Go to the Admin > Authentication > Provider. Retrieve your ***Default Relay State URL*** and ***Single Sign On URL*** from your Baserow admin settings modal, following the [steps in this guide](/user-docs/enable-single-sign-on-sso#add-providers-for-sso-saml). +## Phase 4: Assign Users -In OneLogin configuration tab, paste your Baserow `Default Relay State URL` in the `RelayState` field. +Your connection is set up, but Okta will block users from signing in until you explicitly grant them access. -Paste your `Single Sign On URL` in the next four fields as shown below. +1. In Okta, go to the **Assignments** tab. +2. Click **Assign \> Assign to People** (or Groups). +3. Select the users you want to grant access to Baserow. +4. Click **Done**. -| Baserow value | Corresponding OneLogin Configuration field | -| --- | --- | -| Default Relay State URL | RelayState | -| Single Sign On URL | Audience (EntityID) | -| Single Sign On URL | Recipient | -| Single Sign On URL | ACS (Consumer) URL Validator* | -| Single Sign On URL | ACS (Consumer) URL* | +## Troubleshooting -Convert your ***Single Sign On URL*** into a regular expression and paste that into the **ACS (Consumer) URL Validator*** field. For information on regular expression, [visit this link](https://onelogin.service-now.com/support?sys_id=93f95543db109700d5505eea4b96198f&view=sp&id=kb_article&table=kb_knowledge). Add the required symbols in the ACS (Consumer) URL Validator* field as shown in the picture below to make it a valid regex: +### Attributes not populating (Missing names) -![enter image description here][9] +If users are created but their First or Last names are missing, check **[Configure SAML Settings][8]**. The Attribute Statements must precisely match `user.first_name` and `user.last_name`. -Set the next set of configuration fields as shown below: +## Frequently Asked Questions (FAQ) -| OneLogin field | Value | -| --- | --- | -| SAML initiator | OneLogin | -| SAML nameID format | Email | -| SAML issuer type | Specific | -| SAML signature element | Both | -| SAML encryption method | AES-128-CBC | -| Generate AttributeValue tag for empty values | ☑ | -| SAML sessionNotOnOrAfter | 1140 | +### Does Baserow support SCIM with Okta? -![enter image description here][10] +Baserow supports **Just-In-Time (JIT) provisioning**. This means you do not need to manually create users in Baserow. As soon as you assign a user in Okta and they log in for the first time, their account is automatically created in Baserow. Full SCIM (automated deprovisioning) is not currently configured via this UI. -Once you're done, click **Save** to store the app settings. +### Can I disable password login after setting up Okta? -After saving, click on the **Parameters** tab. Then, click the + icon to add 3 custom parameters. +Yes. Once you have verified that the Okta login works, you can disable the ""Email and Password"" provider in the Baserow [Authentication settings](/user-docs/email-and-password-authentication). -Assign the following field names and check **Include in SAML assertion. Click **Save** - to go to the next screen then select the corresponding values from the dropdown: +### What is the Audience URI? -| Field name | Value | -| --- | --- | -| user.email | Email | -| user.first_name | First Name | -| user.last_name | Last Name | +The Audience URI (Entity ID) is a unique identifier that tells Okta exactly which application it is talking to. This is most often the SP Entity ID of your application. For Baserow, this is the same as your Single Sign On URL (e.g., `https://baserow.io/api/sso/saml/login/`). -Set the parameters that will be sent in the SAML response with values as shown below: +### Can I map Okta Groups to Baserow Roles (e.g., Admins vs. Editors)? -![enter image description here][11] +Currently, Baserow does not support automatic role mapping via SSO attributes. When a user logs in via Okta for the first time, their account is created with a default role (usually a generic member). An Admin must manually [assign them to specific Workspaces and Roles][9] within Baserow. -Once you're done, click **Save**. +## Related content -To configure the SAML provider in Baserow, you’ll need to download the SAML metadata from the “More Actions” menu in the *Applications* tab as shown below: + * [SSO Overview](/user-docs/single-sign-on-sso-overview) + * [Enable SSO in the Admin Panel](/user-docs/enable-single-sign-on-sso) + * [Configure Azure AD SSO](/user-docs/configure-sso-with-azure-ad) + * [Baserow Enterprise Features](/user-docs/enterprise-license-overview) -![enter image description here][12] +--- -After you've accessed the information from the SAML Metadata, copy and paste the information from OneLogin into Baserow. +Still need help? If you're looking for something else, please feel free to make recommendations or ask us questions; we’re ready to assist you. -## Connect OneLogin to your Baserow Account +- [Ask the Baserow community](https://community.baserow.io) +- [Contact support](https://baserow.io/contact) for questions about Baserow or help with your account. -Head back to Baserow Admin > Authentication > Provider. -Configure OneLogin by inputting the domain and metadata information into the corresponding fields in your Baserow Admin Dashboard, following the [steps in this guide](/user-docs/enable-single-sign-on-sso#add-providers-for-sso-saml). + [1]: https://baserow.io/pricing + [2]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/780d4419-6a91-435a-b34d-10cd0da1dec5/Edit%20SSO%20SAML_%20okta.com.jpg + [3]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/27a07bfd-b899-4099-8e35-39ef9f7aaee3/Create%20the%20Application%20in%20Okta.jpg + [4]: https://baserow.io/user-docs/enable-single-sign-on-sso + [5]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/db447126-d1d2-4f5b-a584-020d0583256e/SAML%20Signing%20Certificates.jpg + [6]: https://baserow.io/user-docs/admin-panel-users + [7]: https://baserow.io/docs/installation%2Fconfiguration#sso-configuration + [8]: https://baserow.io/user-docs/configure-sso-with-okta#phase-2-configure-saml-settings + [9]: https://baserow.io/user-docs/permissions-overview",sso,baserow_user_docs,https://baserow.io/user-docs/configure-sso-with-okta +95,Configure SSO with OneLogin,configure-sso-with-onelogin,Configure Baserow SSO with OneLogin,"# Configure SAML SSO with OneLogin -![enter image description here][13] +This guide explains how to configure Single Sign-On (SSO) using OneLogin as your Identity Provider for Baserow. -You should be able to log in with OneLogin after completing these steps by visiting your Baserow servers login page. Your users will now be taken to a OneLogin sign-in flow when they attempt to log into Baserow. After logging in with their OneLogin credentials, they will be redirected to the app. +> SSO is available on the **[Baserow Advanced and Enterprise][1]** plan. You must have a valid license activated to configure these settings. -![enter image description here][14] +## Overview -## Add users to access OneLogin +Connecting OneLogin allows your organization to manage Baserow access centrally. -You can grant your users access to the newly created application, either by adding to individual Users or by adding to Roles or Workspaces within OneLogin, depending on how you prefer to manage your Users there. +To set this up, you will create a ""SAML Custom Connector"" application in OneLogin and map the user fields (email and name) to Baserow. -To add users to this application, click on **Users** in the top bar menu item. +## Prerequisites -Go to **Users > Users** and click the **New User** button to open the **User Info** page. On the **User Info** page, verify that the user is activated. Enter the user's name and email address, along with any other personal information you want to include. Click the **Save User** button. + * **Baserow:** You must be an [Instance Admin](/user-docs/admin-panel-users) on a self-hosted plan. + * **[OneLogin][2]:** You must have administrative access to create applications. -![enter image description here][15] +## Phase 1: Create the Application in OneLogin -## Understanding Baserow's authentication system + 1. Log in to your **OneLogin Administration** panel. + 2. Navigate to **Applications -> Applications** in the top menu. + 3. Click **Add App**. + 4. In the search bar, type `SAML Custom Connector`. + 5. Select the result labeled **SAML Custom Connector (Advanced)**. + 6. **Display Name:** Enter `Baserow` and make sure **Visible in portal** is on. + 7. **Icons:** (Optional) Upload the Baserow logo and add a description to the new SAML connector. + 8. Click **Save**. -By default, Baserow restricts users to logging in only with the same authentication method they used for signing up. For instance, if a user creates an account with a username and password, they won't be able to log in through SSO without further configuration. +![Add SAML Custom Connector (Advanced)][3] -## Troubleshooting error for SSO Login +## Phase 2: Configure SAML settings -You might encounter an error message — ""Something went wrong: please use the provider that you originally signed up with"" — when you attempt to log in via SSO. +You need to tell OneLogin where to send the authentication data. -This error message indicates a conflict between your initial sign-up method and your attempt to log in via SSO after initially signing up for Baserow with a username and password. +1. **Get Baserow URLs:** + * Open a new tab and go to your Baserow [Admin tools][4] -> **Authentication -> + Add Provider -> SSO SAML Provider**. + * Copy the **Single Sign On URL** and **Default Relay State URL**. +2. **Configure OneLogin:** + * In OneLogin, go to the **Configuration** tab of your new app. + * Paste the Baserow URLs into the corresponding OneLogin fields: -Here are the primary options to address this error: +| OneLogin field | Value from Baserow | +| :--- | :--- | +| **RelayState** | Paste `Default Relay State URL` | +| **Audience (EntityID)** | Paste `Single Sign On URL` | +| **Recipient** | Paste `Single Sign On URL` | +| **ACS (Consumer) URL Validator**\* | Paste `Single Sign On URL` (See Regex note below) | +| **ACS (Consumer) URL**\* | Paste `Single Sign On URL` | -**Option 1: Enable multiple authentication methods** +Learn more: [Get Baserow URLs and manage SSO providers][5] -Set the environment variable `BASEROW_ALLOW_MULTIPLE_SSO_PROVIDERS_FOR_SAME_ACCOUNT=true`. After setting this variable, restart the Baserow instance. This allows users to log in with either a password or SSO. +### The regex validator -This option **increases security risk**, especially if you have multiple OAuth providers enabled. An attacker who gains access to a user's account on any external provider could potentially use that access to log in to the associated Baserow account. +The **ACS (Consumer) URL Validator** field requires a Regular Expression. This field is used by OneLogin to ensure that they POST the response to the right place. Creating a secure ACS (Consumer) URL Validator value is key to the security of the connector. If setup is misconfigured, an attacker could forge Authentication Requests to serviceprovider.com (SP). -> For optimal security, we recommend maintaining consistent authentication methods unless necessary. If enabling multiple login methods is essential, implement additional security measures to mitigate potential risks. +If your URL is -**Option 2: Maintain consistent authentication method** +`https://baserow.io/api/sso/saml/login/` -Users can continue logging in with the authentication method they signed up with. This avoids changing Baserow's default behavior and maintains existing security measures. +You must escape the slashes and dots. *Example Regex:* -**Option 3: Delete user from [Admin panel](/user-docs/enterprise-admin-panel) and re-login via SSO** +`^https:\/\/baserow\.io\/api\/sso\/saml\/login\/$` -You can delete the user from the Baserow [admin panel](/user-docs/enterprise-admin-panel). Upon logging in via SSO, Baserow will recreate the user, automatically setting SSO as their default authentication method. +Ensure you include the start (`^`) and end (`$`) anchors. For information on OneLogin SAML Test Connector, [visit this link][6]. -Deleting the user permanently removes all their associated data within Baserow. This option should only be considered if data loss is acceptable and after ensuring all data is backed up elsewhere. +![Configure OneLogin SAML settings in Baserow](https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/6d4620c2-4270-4575-95ca-ebd480f1931b/Screenshot_2022-11-01_at_16.56.20.png) -Always prioritize data security when modifying your authentication settings. +### SAML settings (General) -## Related content +Scroll down and ensure these specific settings are selected: - - [Single Sign On (SSO) overview](/user-docs/single-sign-on-sso-overview). - - [Baserow Enterprise plan](/user-docs/enterprise-license-overview). - - [Enable SSO in the admin panel](/user-docs/enable-single-sign-on-sso). - - [Email and password authentication](/user-docs/email-and-password-authentication). + * **SAML initiator:** OneLogin + * **SAML nameID format:** Email + * **SAML encryption method:** AES-128-CBC + * **SAML issuer type**: Specific + * **SAML signature element**: Both + * **Generate AttributeValue tag for empty values**: ☑ + * **SAML sessionNotOnOrAfter**: 1140 ---- + - +Once you’re done, click **Save** to store the app settings. -Still need help? If you're looking for something else, please feel free to make recommendations or ask us questions—we’re ready to assist you. +![OneLogin SAML settings (General)](https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/764d7e2c-5f84-4c31-b377-8be6d50bdc6c/Screenshot_2022-11-01_at_16.56.40.png) -   [Ask the Baserow community](https://community.baserow.io) +## Phase 3: Map user attributes (Parameters) -   [Contact support](https://baserow.io/contact) for questions about Baserow or help with your account. +You must specify which OneLogin user details to send to Baserow. - [1]: /user-docs/configure-google-for-oauth-2-sso - [2]: /user-docs/configure-facebook-for-oauth-2-sso - [3]: /user-docs/configure-github-for-oauth-2-sso - [4]: /user-docs/configure-gitlab-for-oauth-2-sso - [5]: /user-docs/configure-openid-connect-for-oauth-2-sso - [6]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/b29a4448-f4eb-473e-a00d-54548c33d5b7/Screenshot_2022-11-01_at_16.19.54.png - [7]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/3e2dfd17-3092-4b10-9073-0e82b90bfebc/Screenshot_2022-11-01_at_16.54.27.png - [8]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/b8450668-0805-48a4-979a-8eaa8bd4fc2f/Screenshot_2022-11-01_at_16.55.02.png - [9]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/6d4620c2-4270-4575-95ca-ebd480f1931b/Screenshot_2022-11-01_at_16.56.20.png - [10]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/764d7e2c-5f84-4c31-b377-8be6d50bdc6c/Screenshot_2022-11-01_at_16.56.40.png - [11]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/0de4ee4c-c559-49ad-8a7a-de148098750f/Screenshot_2022-11-01_at_16.56.50.png - [12]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/57d65bd5-52bb-4400-8b75-e9a8684e9a5d/Screenshot_2022-11-01_at_16.57.46.png - [13]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/43422ceb-7dd3-42e9-894e-3fa8ce3d2137/Screenshot_2022-11-07_at_12.11.42.png - [14]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/38b75bc5-cd9a-48f7-a34d-38106358a570/Screenshot_2022-11-07_at_12.12.43.png - [15]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/141ffccd-2ce0-41b9-b5af-74a8fab538db/Screenshot_2022-11-07_at_12.18.17.png",,baserow_user_docs,https://baserow.io/user-docs/configure-sso-with-onelogin -96,Configure Google for SSO,configure-google-for-oauth-2-sso,Configure Google OAuth 2 single sign-on for Baserow,"# Set up Google OAuth 2 SSO in Baserow +1. Go to the **Parameters** tab in OneLogin. +2. Click the **(+) Plus icon** to add a new parameter. +3. Add the following three parameters exactly as listed. Ensure you check **""Include in SAML assertion""** for each one. -This guide is intended for [Admins](/user-docs/working-with-collaborators#set-the-permission-level-for-collaborators) setting up OAuth 2 SSO with Google. +| Field Name (Baserow Variable) | Value (OneLogin Profile Field) | +| :--- | :--- | +| `user.email` | Email | +| `user.first_name` | First Name | +| `user.last_name` | Last Name | -When you configure Single Sign-on (SSO) with Google, your users will be able to create and sign into their Baserow accounts using Google. +4. Click **Save** after adding each parameter. -If you are looking for information on setting up SSO with other providers: +![Map OneLogin user attributes for Baserow](https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/0de4ee4c-c559-49ad-8a7a-de148098750f/Screenshot_2022-11-01_at_16.56.50.png) -- [Configure Azure AD for SAML SSO](/user-docs/configure-sso-with-azure-ad) -- [Configure OneLogin for SAML SSO](/user-docs/configure-sso-with-onelogin) -- [Configure Okta for SAML SSO](/user-docs/configure-sso-with-okta) -- [Configure Facebook for OAuth 2 SSO][1] -- [Configure GitHub for OAuth 2 SSO][2] -- [Configure GitLab for OAuth 2 SSO][3] -- [Configure OpenID Connect for OAuth 2 SSO][4] +## Phase 4: Connect OneLogin to Baserow -> Single Sign-On feature is a part of the Baserow Enterprise offering. Instance-wide features are only available on the self-hosted Enterprise plan. To learn more about the Baserow enterprise plan, [visit our pricing page](https://baserow.io/pricing). -> +Now export the metadata from OneLogin and import it into Baserow. -Here's how to set up OAuth 2 SSO with Google to sign in to your Baserow account. + 1. In OneLogin, go to the **More Actions** dropdown menu (top right). + 2. Select **SAML Metadata**. + 3. This will download an XML file to your computer. + 4. Open the file with a text editor (Notepad/TextEdit) and copy the content. + 5. Return to your Baserow **Add SAML Provider** modal. + * **Name:** `OneLogin` + * **Metadata:** Paste the XML content. + 6. Click **Save**. -## Set up OAuth 2 SSO with Google +Learn how to [add a SAML Provider in Baserow][5] -Sign in or create a Google account then sign into Google Cloud Console at [https://console.cloud.google.com/](https://console.cloud.google.com/). +![Connect OneLogin to Baserow](https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/57d65bd5-52bb-4400-8b75-e9a8684e9a5d/Screenshot_2022-11-01_at_16.57.46.png) -Create a new project or select an existing project in your organization: +## Phase 5: Assign users -![enter image description here][5] +Users cannot log in until you assign them to the app in OneLogin. -Go to API & Services → Credentials: +1. In OneLogin, go to **Users -> Users**. +2. Select a user. +3. Go to the **Applications** tab in their profile. +4. Click the **(+)** icon and select **Baserow**. +5. Click **Continue**. -![enter image description here][6] +![Assign users in OneLogin](https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/141ffccd-2ce0-41b9-b5af-74a8fab538db/Screenshot_2022-11-07_at_12.18.17.png) -Next, log in to Baserow. Go to the Admin > Authentication > Provider. Retrieve your ***Callback URL*** from your Baserow admin settings modal, following the [steps in this guide](/user-docs/enable-single-sign-on-sso#oauth-provider-configuration). +## Troubleshooting & Common Issues -Create a new credential for OAuth Client ID. A client ID is used to identify a single app to Google's OAuth servers. +### ""Regular Expression"" Error -- Choose ***Web application*** as the Application type. -- Fill in Name. -- Add a URI under Authorized redirect URIs. This is the Baserow Callback URL you will find in the Baserow Provider Settings where you create or edit the authentication provider. +If OneLogin rejects your ""ACS URL Validator,"" ensure you have escaped the dots (`\.`) and slashes (`\/`) in your URL. Use a tool like Regex101 to verify if needed. -![enter image description here][7] +## Frequently Asked Questions (FAQ) -Click the ‘Create’ button. +### Does Baserow support SCIM with OneLogin? -Once created, you will be able to obtain Client ID and Client secret: +Baserow supports **Just-In-Time (JIT) provisioning**. Accounts are created automatically when a user logs in for the first time. We do not currently support SCIM for automatic deprovisioning (deleting users) or syncing group memberships. -![enter image description here][8] +### Can I disable password login? -After you've accessed the information from the Credentials, copy and paste the information from Google into Baserow. +Yes. Once OneLogin is verified to be working, you can disable ""Email and Password"" authentication in the [Baserow Authentication settings](/user-docs/email-and-password-authentication) to enforce SSO. -## Connect Google to your Baserow Account +## Related content -Head back to Baserow Admin > Authentication > Provider. + * [SSO Overview](/user-docs/single-sign-on-sso-overview) + * [Enable SSO in the Admin Panel](/user-docs/enable-single-sign-on-sso) + * [Configure Okta SSO](/user-docs/configure-sso-with-okta) -Configure Google by inputting the Client ID and secret information into the corresponding fields in your Baserow Admin Dashboard, following the [steps in this guide](/user-docs/enable-single-sign-on-sso#oauth-provider-configuration). +--- -![enter image description here][9] +Still need help? If you're looking for something else, please feel free to make recommendations or ask us questions; we’re ready to assist you. -You should be able to log in with Google after completing these steps by visiting your Baserow servers login page. Your users will now be taken to a Google sign-in flow when they attempt to log into Baserow. After logging in with their Google credentials, they will be redirected to the app. +- [Ask the Baserow community](https://community.baserow.io) +- [Contact support](https://baserow.io/contact) for questions about Baserow or help with your account. -![enter image description here][10] -## Understanding Baserow's authentication system + [1]: https://baserow.io/pricing + [2]: https://www.onelogin.com/ + [3]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/6ce57fc3-fec2-400c-8f43-d4fc9da7bb9d/Add%20SAML%20Custom%20Connector%20(Advanced).jpg + [4]: https://baserow.io/user-docs/enterprise-admin-panel + [5]: https://baserow.io/user-docs/enable-single-sign-on-sso + [6]: https://onelogin.service-now.com/support?sys_id=93f95543db109700d5505eea4b96198f&view=sp&id=kb_article&table=kb_knowledge",sso,baserow_user_docs,https://baserow.io/user-docs/configure-sso-with-onelogin +96,Configure Google SSO,configure-google-for-oauth-2-sso,Configure Google OAuth 2 single sign-on for Baserow,"# Configure Google Workspace SSO (OAuth 2) -By default, Baserow restricts users to logging in only with the same authentication method they used for signing up. For instance, if a user creates an account with a username and password, they won't be able to log in through SSO without further configuration. +This guide explains how to configure [Single Sign-On (SSO)][1] using Google Workspace (or personal Google accounts) via the OAuth 2.0 protocol. -## Troubleshooting error for SSO Login +> SSO is available on the **[Baserow Advanced and Enterprise][2]** plans. You must have a valid license activated to configure these settings. -You might encounter an error message — ""Something went wrong: please use the provider that you originally signed up with"" — when you attempt to log in via SSO. +## Overview -This error message indicates a conflict between your initial sign-up method and your attempt to log in via SSO after initially signing up for Baserow with a username and password. +The Google SSO integration allows users to log in to Baserow using their Google credentials. -Here are the primary options to address this error: +To set this up, you must create a project in the Google Cloud Console, configure a ""Client"" application, and verify the authorized redirect URIs. -**Option 1: Enable multiple authentication methods** +## Prerequisites -Set the environment variable `BASEROW_ALLOW_MULTIPLE_SSO_PROVIDERS_FOR_SAME_ACCOUNT=true`. After setting this variable, restart the Baserow instance. This allows users to log in with either a password or SSO. + * **Baserow:** You must be an [Instance Admin](/user-docs/admin-panel-users) on a self-hosted plan. + * **Google:** You must have a Google Cloud account with permission to create projects. -This option **increases security risk**, especially if you have multiple OAuth providers enabled. An attacker who gains access to a user's account on any external provider could potentially use that access to log in to the associated Baserow account. -> For optimal security, we recommend maintaining consistent authentication methods unless necessary. If enabling multiple login methods is essential, implement additional security measures to mitigate potential risks. -**Option 2: Maintain consistent authentication method** +## Phase 1: Create a Google Cloud project -Users can continue logging in with the authentication method they signed up with. This avoids changing Baserow's default behavior and maintains existing security measures. +1. Log in to the [Google Cloud Console](https://console.cloud.google.com/). +2. Click the project dropdown in the top header and select **New Project**. +3. **Project Name:** Enter `Baserow SSO` (or similar). +4. **Organization:** Select your organization if applicable. +5. Click **Create**. -**Option 3: Delete user from [Admin panel](/user-docs/enterprise-admin-panel) and re-login via SSO** +## Phase 2: Configure OAuth consent screen -You can delete the user from the Baserow [admin panel](/user-docs/enterprise-admin-panel). Upon logging in via SSO, Baserow will recreate the user, automatically setting SSO as their default authentication method. +Before you can create credentials, you must configure the consent screen that users will see when they log in. -Deleting the user permanently removes all their associated data within Baserow. This option should only be considered if data loss is acceptable and after ensuring all data is backed up elsewhere. + 1. In the left sidebar, navigate to **APIs & Services -> OAuth consent screen**. + 2. **App Information:** + * **App name:** `Baserow` + * **User support email:** Select your email. + 3. **Audience:** + * **Internal:** Select this if you only want users within your Google Workspace organization to log in. + * **External:** Select this if you want to allow personal Gmail accounts or users from other organizations. + 4. **Contact information**: Enter your email for Google to notify you about any changes to your project. + 5. Click **Create**. + 6. Click **Save and Continue** through the ""Scopes"" and ""Test Users"" sections (defaults are usually sufficient for basic login). -Always prioritize data security when modifying your authentication settings. +## Phase 3: Create OAuth credentials -## Related content +After you configure the OAuth consent screen with information about your application, generate the keys Baserow needs to talk to Google. - - [Single Sign On (SSO) overview](/user-docs/single-sign-on-sso-overview). - - [Baserow Enterprise plan](/user-docs/enterprise-license-overview). - - [Enable SSO in the admin panel](/user-docs/enable-single-sign-on-sso). - - [Email and password authentication](/user-docs/email-and-password-authentication). +1. In the sidebar, go to **APIs & Services -> Credentials**. +2. Click **+ Create Credentials** and select **OAuth client ID**. A client ID is used to identify a single app to Google's OAuth servers. If your app runs on multiple platforms, each will need its own client ID. +3. **Application Type:** Select **Web application**. +4. **Name:** Enter `Baserow Web Client`. +5. **Authorized Redirect URIs:** + * You need the **Callback URL** from Baserow. + * Open a new tab: Go to Baserow **Admin tools -> Authentication -> + Add Provider -> Google**. + * Copy the **Callback URL** displayed in the modal (e.g., `https://baserow.yourdomain.com/api/sso/oauth2/callback`). + * **Return to Google:** Paste this URL into the ""Authorized redirect URIs"" field. +6. Click **Create**. ---- +Learn more: [Get Callback URL from Baserow][3] - +![Create a Google Cloud project](https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/4ff73925-a71e-483c-9377-b757936f151e/4383a565339f10ee5cd4bf6097005a9938b90525.webp) -Still need help? If you're looking for something else, please feel free to make recommendations or ask us questions—we’re ready to assist you. +## Phase 4: Connect Google to Baserow -   [Ask the Baserow community](https://community.baserow.io) +Google will now display your credentials. -   [Contact support](https://baserow.io/contact) for questions about Baserow or help with your account. +1. Copy the **Client ID**. +2. Copy the **Client Secret**. +3. **Return to Baserow:** + * In the **Add Google Provider** modal. + * **Name:** Enter `Google`. + * **Client ID:** Paste the Client ID. + * **Secret:** Paste the Client Secret. +4. Click **Save**. - [1]: /user-docs/configure-facebook-for-oauth-2-sso - [2]: /user-docs/configure-github-for-oauth-2-sso - [3]: /user-docs/configure-gitlab-for-oauth-2-sso - [4]: /user-docs/configure-openid-connect-for-oauth-2-sso - [5]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/800b03b7-e3af-4f35-9369-89988389bfc0/Screenshot_2022-11-04_at_12.12.23.png - [6]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/4ff73925-a71e-483c-9377-b757936f151e/4383a565339f10ee5cd4bf6097005a9938b90525.webp - [7]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/16ffcb4c-5119-4e2e-8f5b-886e16581bb8/Screenshot_2022-11-04_at_14.17.36.png - [8]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/ef63b71e-7557-40df-9348-40e00455e8c1/Screenshot_2022-11-04_at_14.18.36.png - [9]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/e1b155da-fffb-465f-83a1-1186f0d02831/Screenshot_2022-11-07_at_15.30.58.png - [10]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/3a831490-1029-4c54-b8d1-3484761dfea3/Screenshot_2022-11-04_at_14.48.37.png",,baserow_user_docs,https://baserow.io/user-docs/configure-google-for-oauth-2-sso -97,Configure Facebook for SSO,configure-facebook-for-oauth-2-sso,Set up Facebook login with Baserow OAuth 2,"# Configure Facebook OAuth 2 SSO in Baserow +![Connect Google to Baserow](https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/16ffcb4c-5119-4e2e-8f5b-886e16581bb8/Screenshot_2022-11-04_at_14.17.36.png) -This guide is intended for [Admins](/user-docs/working-with-collaborators#set-the-permission-level-for-collaborators) setting up OAuth 2 SSO with Facebook. +## Troubleshooting & common issues -When you configure Single Sign-on (SSO) with Facebook, your users will be able to create and sign into their Baserow accounts using Facebook. +### Error 400: redirect\_uri\_mismatch -If you are looking for information on setting up SSO with other providers: +This is the most common error. It means the URL in your browser address bar does not *exactly* match the URL you pasted into Google's ""Authorized redirect URIs"" field. -- [Configure Azure AD for SAML SSO](/user-docs/configure-sso-with-azure-ad) -- [Configure OneLogin for SAML SSO](/user-docs/configure-sso-with-onelogin) -- [Configure Okta for SAML SSO](/user-docs/configure-sso-with-okta) -- [Configure Google for OAuth 2 SSO](/user-docs/configure-google-for-oauth-2-sso) -- [Configure GitHub for OAuth 2 SSO][1] -- [Configure GitLab for OAuth 2 SSO][2] -- [Configure OpenID Connect for OAuth 2 SSO][3] + * **Check Protocol:** Did you use `http://` instead of `https://`? + * **Check Port:** If your Baserow runs on a port (e.g., `:8000`), it must be included in the URI. + * **Check Trailing Slash:** Ensure you copied the exact URL provided by the Baserow modal. -> Single Sign-On feature is a part of the Baserow Enterprise offering. Instance-wide features are only available on the self-hosted Enterprise plan. To learn more about the Baserow enterprise plan, [visit our pricing page](https://baserow.io/pricing). -> +## Frequently Asked Questions (FAQ) -Here's how to set up OAuth 2 SSO with Facebook to sign in to your Baserow account. +### Can I limit login to my specific company domain? -## Set up OAuth 2 SSO with Facebook +If you selected **""Internal""** user type in **[Configure OAuth consent screen][4]**, only users in your Workspace can log in. However, if you selected ""External,"" any Google user could potentially log in. To restrict this, we recommend disabling ""Allow creating new accounts"" in the [Admin Settings](/user-docs/admin-panel-settings) so that only invited users can join. -Sign in or create a Facebook account then sign in to Meta for Developers apps at [https://developers.facebook.com/apps/](https://developers.facebook.com/apps/). +### Can I map Google Workspace Groups to Baserow Roles? -Create a new app or select an existing app: +Not currently. Baserow supports **Just-In-Time (JIT) provisioning**, creating the user account immediately upon login. However, it does not sync Google Group memberships to assign Baserow roles (e.g., Admin vs. Editor). You must [manually assign roles in Baserow][5] after the user logs in. -![enter image description here][4] +## Related content -Choose the *Business app* type or another type that works for you. The app type can't be changed after your app is created. + * [SSO Overview](/user-docs/single-sign-on-sso-overview) + * [Enable SSO in the Admin Panel](/user-docs/enable-single-sign-on-sso) + * [Configure Azure AD SSO](/user-docs/configure-sso-with-azure-ad) -![enter image description here][5] +--- -Fill in the App name as **Baserow** and Contact email, then click the **Create app** button. +Still need help? If you're looking for something else, please feel free to make recommendations or ask us questions; we’re ready to assist you. -![enter image description here][6] +- [Ask the Baserow community](https://community.baserow.io) +- [Contact support](https://baserow.io/contact) for questions about Baserow or help with your account. -Next, log in to Baserow. Go to the Admin > Authentication > Provider. Retrieve your ***Callback URL*** from your Baserow admin settings modal, following the [steps in this guide](/user-docs/enable-single-sign-on-sso#oauth-provider-configuration). -To be able to load this URL, add all domains and sub-domains of your app to the App Domains field in your app settings. + [1]: https://baserow.io/user-docs/single-sign-on-sso-overview + [2]: https://baserow.io/pricing + [3]: https://baserow.io/user-docs/enable-single-sign-on-sso + [4]: https://baserow.io/user-docs/configure-google-for-oauth-2-sso#phase-2-configure-oauth-consent-screen + [5]: https://baserow.io/user-docs/permissions-overview",sso,baserow_user_docs,https://baserow.io/user-docs/configure-google-for-oauth-2-sso +97,Configure Facebook SSO,configure-facebook-for-oauth-2-sso,Set up Facebook login with Baserow OAuth 2,"# Configure Facebook SSO (OAuth 2) -From the sidebar, navigate to **app products > Facebook login > settings** and add your redirect URL under **Valid OAuth Redirect URIs.** This is the Baserow Callback URL you will find in the Baserow Provider Settings where you create or edit the authentication provider. +This guide explains how to configure [Single Sign-On][1] (SSO) using Facebook via the OAuth 2.0 protocol. -![enter image description here][7] +> SSO is available on the **[Baserow Advanced and Enterprise][2]** plan. You must have a valid license activated to configure these settings. -Save your changes. +## Overview -From the Facebook app dashboard, navigate to Settings → Basic. +The Facebook SSO integration allows users to log in to Baserow using their existing Facebook credentials. -![enter image description here][8] +To set this up, you must register a ""Meta App"" in the Facebook Developers portal and connect it to your Baserow instance using the App ID and App Secret. -In the app Settings > Basic, click on ""Add Platform"" then select ""Website"". Enter the Callback URL as the Site URL(s) in the field that appears. +![Facebook SSO setup in Baserow][3] -![enter image description here][9] +## Prerequisites -Then click on **Save changes**. + * **Baserow:** You must be an [Instance Admin](/user-docs/admin-panel-users) on a self-hosted plan. + * **Facebook:** To create an app with Meta, you must first register as a developer and be logged in to your developer account. -To integrate Baserow with Facebook, -- Obtain App ID, this will be the Baserow Client ID. -- Obtain App secret, this will be the Baserow Secret. -![enter image description here][10] +## Phase 1: Create a Meta App -Set App Mode from Development to Live. + 1. Log in to the [Meta for Developers Portal](https://developers.facebook.com/apps/). + 2. Click **Create App**. + 3. **App details:** + * **App name:** Enter `Baserow`. + * **App contact email:** Enter your administrator email. Click **Next**. + 4. **Use cases**: Select one or more use cases for your app. You can add additional, compatible use cases now or at any time during development. Click **Next**. + 5. **Business:** Connect a verified business portfolio to your app to get access to third-party user and business data from other business portfolios and publish this app. Click **Next**. + 6. **Publishing requirements**: Your app might need to complete certain requirements, such as App Review, to get and maintain data access for your app's use cases. Click **Next**. + 7. Review your app's details, use cases, connected business, and requirements. If you need to make any changes, you can click **App details**, **Use cases**, **Business**, or **Requirements** at the top of the page or the **Previous** button in the lower-right. + 8. Click **Go to dashboard** to finalized the app creation process. -After you've accessed this information from the application, copy and paste the information from Facebook into Baserow. +You are redirected to the dashboard and can now customize each use case you've selected for your app. -## Connect Facebook to your Baserow Account +![Create a Meta App for Baserow][4] -Head back to Baserow Admin > Authentication > Provider. +## Phase 2: Configure Facebook Login -Configure Facebook by inputting the **Client ID** and **Secret** information into the corresponding fields in your Baserow Admin Dashboard, following the [steps in this guide](/user-docs/enable-single-sign-on-sso#oauth-provider-configuration). +You need to tell Facebook where to redirect users after they log in. -![enter image description here][11] +1. **Get Baserow Callback URL:** + * Open a new tab. Go to Baserow **[Admin tools][5] -> Authentication -> + Add Provider -> Facebook**. + * Copy the **Callback URL** displayed in the modal (e.g., `https://baserow.yourdomain.com/api/sso/oauth2/callback`). +2. **Add Facebook Login product:** + * In the Facebook App Dashboard, locate the ""Add a product"" section. + * Find **Facebook Login** and click **Set up**. + * Select **Web** as the platform. +3. **Configure settings:** + * In the left sidebar, go to **Facebook Login -> Settings**. + * Locate the field **Valid OAuth Redirect URIs**. + * Paste your Baserow **Callback URL**. +4. Click **Save changes**. -You should be able to log in with Facebook after completing these steps by visiting your Baserow servers login page. Your users will now be taken to a Facebook sign-in flow when they attempt to log into Baserow. After logging in with their Facebook credentials, they will be redirected to the app. +Learn more: [Get Baserow Callback URL][6] -![enter image description here][12] +![Configure Facebook Login for Baserow SSO][7] -## Understanding Baserow's authentication system +## Phase 3: Basic settings & live mode -By default, Baserow restricts users to logging in only with the same authentication method they used for signing up. For instance, if a user creates an account with a username and password, they won't be able to log in through SSO without further configuration. +1. In the sidebar, go to **App Settings -> Basic**. +2. **App Domains:** Enter your Baserow domain (e.g., `baserow.yourdomain.com`). +3. **Privacy Policy URL:** Enter a valid URL. +4. **Site URL:** Scroll down to the ""Website"" section (click ""Add Platform"" -> ""Website"" if not visible) and enter your Baserow homepage URL. +5. Click **Save changes**. +6. **Go live:** Toggle the switch at the top of the screen from **Development** to **Live**. -## Troubleshooting error for SSO Login +![Basic settings & live mode in Facebook](https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/c1bf122c-10ff-4483-95f9-ed83199d8f60/Screenshot_2022-11-07_at_14.19.20.png) -You might encounter an error message — ""Something went wrong: please use the provider that you originally signed up with"" — when you attempt to log in via SSO. +## Phase 4: Connect Facebook to Baserow -This error message indicates a conflict between your initial sign-up method and your attempt to log in via SSO after initially signing up for Baserow with a username and password. + 1. Stay on the **App Settings -> Basic** page. + 2. Copy the **App ID**. + 3. Click ""Show"" and copy the **App Secret**. + 4. **Return to Baserow:** + * In the **Add Facebook Provider** modal. + * **Name:** Enter `Facebook`. + * **Client ID:** Paste the App ID. + * **Secret:** Paste the App Secret. + 5. Click **Save**. -Here are the primary options to address this error: +## Troubleshooting & common issues -**Option 1: Enable multiple authentication methods** +### Error: ""URL Blocked: This redirect failed because the redirect URI is not whitelisted"" -Set the environment variable `BASEROW_ALLOW_MULTIPLE_SSO_PROVIDERS_FOR_SAME_ACCOUNT=true`. After setting this variable, restart the Baserow instance. This allows users to log in with either a password or SSO. +This means the **Callback URL** in Baserow does not match what you put in Facebook's ""Valid OAuth Redirect URIs"". -This option **increases security risk**, especially if you have multiple OAuth providers enabled. An attacker who gains access to a user's account on any external provider could potentially use that access to log in to the associated Baserow account. + * **Check:** Did you include `https://`? + * **Check:** Did you inadvertently add a trailing slash `/` in one place but not the other? -> For optimal security, we recommend maintaining consistent authentication methods unless necessary. If enabling multiple login methods is essential, implement additional security measures to mitigate potential risks. +### App Mode (Development vs. Live) -**Option 2: Maintain consistent authentication method** +If you can log in but your colleagues cannot, check the **App Mode** toggle at the top of the Facebook dashboard. If it is in **Development** mode, only administrators of the Facebook App can log in. Switch it to **Live** for general access. -Users can continue logging in with the authentication method they signed up with. This avoids changing Baserow's default behavior and maintains existing security measures. +## Frequently Asked Questions (FAQ) -**Option 3: Delete user from [Admin panel](/user-docs/enterprise-admin-panel) and re-login via SSO** +### Can I map Facebook Groups to Baserow roles? -You can delete the user from the Baserow [admin panel](/user-docs/enterprise-admin-panel). Upon logging in via SSO, Baserow will recreate the user, automatically setting SSO as their default authentication method. +No. Baserow supports **Just-In-Time (JIT) provisioning**, which creates the user account upon login. However, it does not sync Facebook group memberships or roles. You must [manually assign roles][8] in Baserow (e.g., Admin vs. Editor) after the user logs in. -Deleting the user permanently removes all their associated data within Baserow. This option should only be considered if data loss is acceptable and after ensuring all data is backed up elsewhere. +### Do I need to submit my app for App Review? -Always prioritize data security when modifying your authentication settings. +Generally, no. If you only use the default `email` and `public_profile` permissions for SSO, you do not need to go through the full App Review process for ""Business"" verification, provided you have verified your business status in the settings. ## Related content - - [Single Sign On (SSO) overview](/user-docs/single-sign-on-sso-overview). - - [Baserow Enterprise plan](/user-docs/enterprise-license-overview). - - [Enable SSO in the admin panel](/user-docs/enable-single-sign-on-sso). - - [Email and password authentication](/user-docs/email-and-password-authentication). - ---- - - - -Still need help? If you're looking for something else, please feel free to make recommendations or ask us questions—we’re ready to assist you. - -   [Ask the Baserow community](https://community.baserow.io) - -   [Contact support](https://baserow.io/contact) for questions about Baserow or help with your account. + * [SSO Overview](/user-docs/single-sign-on-sso-overview) + * [Enable SSO in the Admin Panel](/user-docs/enable-single-sign-on-sso) + * [Configure Google SSO](/user-docs/configure-google-for-oauth-2-sso) - [1]: /user-docs/configure-github-for-oauth-2-sso - [2]: /user-docs/configure-gitlab-for-oauth-2-sso - [3]: /user-docs/configure-openid-connect-for-oauth-2-sso - [4]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/7b10cf62-2b6a-427a-a369-519d3c4d1937/Screenshot_2022-11-07_at_14.14.23.png - [5]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/61c91968-749d-4a1d-8da8-814e627e5dc1/Screenshot_2022-11-07_at_14.15.27.png - [6]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/7c267d51-8912-4fa6-bb93-d6e0ba589658/Screenshot_2022-11-07_at_14.16.51.png - [7]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/ffba17d9-1578-4195-9472-a242b039af04/Screenshot_2022-11-07_at_14.48.24.png - [8]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/c1bf122c-10ff-4483-95f9-ed83199d8f60/Screenshot_2022-11-07_at_14.19.20.png - [9]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/f1136711-129d-4adb-8ebb-adbb6ee443ff/Screenshot_2022-11-07_at_14.26.47.png - [10]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/d0cf2871-a948-4e95-8739-78cdce5f9984/Screenshot_2022-11-07_at_14.28.08.png - [11]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/a2f2fc8f-6ed6-4ca0-a854-aa3f78e34807/Screenshot_2022-11-07_at_14.29.37.png - [12]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/5e95edb4-e3a9-4ed1-afd4-c41baaf9e882/Screenshot_2022-11-07_at_14.30.15.png",,baserow_user_docs,https://baserow.io/user-docs/configure-facebook-for-oauth-2-sso -98,Configure GitHub for SSO,configure-github-for-oauth-2-sso,Baserow GitHub OAuth 2 SSO setup guide,"# Set up GitHub for OAuth 2 SSO - -This guide is intended for [Admins](/user-docs/working-with-collaborators#set-the-permission-level-for-collaborators) setting up OAuth 2 SSO with GitHub. - -When you configure Single Sign-on (SSO) with GitHub, your users will be able to create and sign into their Baserow accounts using GitHub. - -If you are looking for information on setting up SSO with other providers: +--- -- [Configure Azure AD for SAML SSO](/user-docs/configure-sso-with-azure-ad) -- [Configure OneLogin for SAML SSO](/user-docs/configure-sso-with-onelogin) -- [Configure Okta for SAML SSO](/user-docs/configure-sso-with-okta) -- [Configure Google for OAuth 2 SSO](/user-docs/configure-google-for-oauth-2-sso) -- [Configure Facebook for OAuth 2 SSO](/user-docs/configure-facebook-for-oauth-2-sso) -- [Configure GitLab for OAuth 2 SSO][1] -- [Configure OpenID Connect for OAuth 2 SSO][2] -> Single Sign-On feature is a part of the Baserow Enterprise offering. Instance-wide features are only available on the self-hosted Enterprise plan. To learn more about the Baserow enterprise plan, [visit our pricing page](/pricing). -> +Still need help? If you're looking for something else, please feel free to make recommendations or ask us questions; we’re ready to assist you. -Here's how to set up OAuth 2 SSO with GitHub to sign in to your Baserow account. +- [Ask the Baserow community](https://community.baserow.io) +- [Contact support](https://baserow.io/contact) for questions about Baserow or help with your account. -## Set up OAuth 2 SSO with GitHub -Sign in or create a GitHub account. Go to Settings → Developer settings → OAuth Apps at [https://github.com/settings/developers](https://github.com/settings/developers). + [1]: https://baserow.io/user-docs/single-sign-on-sso-overview + [2]: https://baserow.io/pricing + [3]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/0f846a80-e3ab-41e8-8d2e-b3a4c944f68d/Facebook%20SSO%20setup.jpg + [4]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/8f2144fb-d94b-47c1-92a0-cbd3b55eb80d/Create%20a%20Meta%20App.jpg + [5]: https://baserow.io/user-docs/enterprise-admin-panel + [6]: https://baserow.io/user-docs/enable-single-sign-on-sso + [7]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/248ed0eb-cf1d-473c-978c-7202e3d72627/Configure%20Facebook%20Login.jpg + [8]: https://baserow.io/user-docs/permissions-overview",sso,baserow_user_docs,https://baserow.io/user-docs/configure-facebook-for-oauth-2-sso +98,Configure GitHub SSO,configure-github-for-oauth-2-sso,Baserow GitHub OAuth 2 SSO setup guide,"# Configure GitHub SSO (OAuth 2) -![enter image description here][3] +This guide explains how to configure [Single Sign-On (SSO)][1] using GitHub via the OAuth 2.0 protocol. -Create a new OAuth application in GitHub by clicking the **Register a new application** button. +> SSO is available on the **[Baserow Advanced and Enterprise][2]** plan. You must have a valid license activated to configure these settings. -In the new OAuth application on GitHub, +## Overview - 1. Input the Application name as ""Baserow"". - 2. Input the Homepage URL. This will be your public Baserow URL. - 3. Input the Authorization callback URL. This is the Baserow Callback URL in the Baserow Provider Settings where you create or edit the authentication provider. +The GitHub SSO integration allows users to log in to Baserow using their existing GitHub accounts. - Log in to Baserow. Go to Admin > Authentication > Provider. Retrieve your ***Callback URL*** from your Baserow admin settings modal, following the [steps in this guide](/user-docs/enable-single-sign-on-sso#oauth-provider-configuration). +To set this up, you must register an ""OAuth App"" in your GitHub Developer Settings and connect it to Baserow using a Client ID and Client Secret. - ![enter image description here][4] +![Configure GitHub SSO in Baserow][3] - 4. Click the **Register application** button to save your changes. +## Prerequisites - 5. To integrate Baserow with GitHub, generate a new secret by clicking on **Generate a new client secret** button. + * **Baserow:** You must be an [Instance Admin](/user-docs/admin-panel-users) on a self-hosted plan. + * **GitHub:** You must have a GitHub account. - ![enter image description here][5] - 6. Once created, use the credentials to configure a new GitHub provider in Baserow: -- Client ID is the Baserow Client ID. -- Client secret is the Baserow Secret. +## Phase 1: Get Baserow Callback URL -![Create a new OAuth application in GitHub][6] +Before registering the app in GitHub, you need to know where GitHub should send users after they log in. -After you've accessed this information from the application, copy and paste the information from GitHub into Baserow. +1. Log in to your Baserow **[Admin Panel][4]**. +2. Navigate to **Authentication -> + Add Provider**. +3. Select **GitHub**. +4. Copy the **Callback URL** displayed in the modal (e.g., `https://baserow.yourdomain.com/api/sso/oauth2/callback`). +5. Keep this tab open. -## Connect GitHub to your Baserow Account -Head back to Baserow Admin > Authentication > Provider. -To set up GitHub integration, simply enter your *Client ID* and *Secret* information into the designated fields in your Baserow Admin Dashboard. [Follow the steps outlined in our guide][13]. +## Phase 2: Register GitHub OAuth App -![enter image description here][7] + 1. Log in to [GitHub](https://github.com/). + 2. Navigate to **Settings**. + 3. Scroll down to the bottom of the left sidebar and click **[Developer settings][5]**. + 4. Select **OAuth Apps** from the sidebar. + 5. Click **New OAuth App**. + 6. **Fill in the form:** + * **Application Name:** `Baserow` (or your company name). + * **Homepage URL:** Enter your Baserow instance URL (e.g., `https://baserow.yourdomain.com`). + * **Authorization callback URL:** Paste the **Callback URL** you copied from Baserow. + 7. Click **Register application**. -You should be able to log in to Baserow with GitHub after completing these steps. Simply visit your Baserow server's login page, and you'll find the option to log in with GitHub. +![Register GitHub OAuth App for Baserow](https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/83857cd9-ee3a-4ea7-a21c-f4fd69acbc17/Screenshot_2022-11-07_at_15.08.01.png) -When your users try to access Baserow, they'll be seamlessly redirected to GitHub's sign-in flow. After securely logging in with their GitHub credentials, they'll be redirected back to the Baserow app. +## Phase 3: Generate credentials -![enter image description here][8] +Once the app is registered, you need to generate the password (Secret) that Baserow will use to authenticate. -## Understanding Baserow's authentication system +1. On the application details page, find the **Client ID**. Copy it. +2. Under **Client secrets**, click **Generate a new client secret**. +3. Copy the generated **Client Secret**. + * *Note:* You will only see this secret once. If you refresh the page, it will be hidden. -By default, Baserow restricts users to logging in only with the same authentication method they used for signing up. For instance, if a user creates an account with a username and password, they won't be able to log in through SSO without further configuration. +![Generate credentials in GitHub](https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/457c10f1-e480-4132-b7aa-053d274d8907/Screenshot%202023-07-18%20at%2011.07.05.png) -## Troubleshooting error for SSO Login +## Phase 4: Connect GitHub to Baserow -You might encounter an error message — ""Something went wrong: please use the provider that you originally signed up with"" — when you attempt to log in via SSO. +1. Return to the **Baserow Admin Panel** (where you left the modal open). +2. **Name:** Enter `GitHub`. +3. **Client ID:** Paste the Client ID from GitHub. +4. **Secret:** Paste the Client Secret from GitHub. +5. Click **Save**. -This error message indicates a conflict between your initial sign-up method and your attempt to log in via SSO after initially signing up for Baserow with a username and password. -Here are the primary options to address this error: +## Troubleshooting & Common Issues -**Option 1: Enable multiple authentication methods** +### ""redirect\_uri\_mismatch"" Error -Set the environment variable `BASEROW_ALLOW_MULTIPLE_SSO_PROVIDERS_FOR_SAME_ACCOUNT=true`. After setting this variable, restart the Baserow instance. This allows users to log in with either a password or SSO. +This error occurs if the URL in your browser does not match the **Authorization callback URL** in GitHub settings. -This option **increases security risk**, especially if you have multiple OAuth providers enabled. An attacker who gains access to a user's account on any external provider could potentially use that access to log in to the associated Baserow account. + * **Check:** Did you paste the exact URL from the Baserow modal? + * **Check:** Ensure there are no trailing spaces or missing slashes. -> For optimal security, we recommend maintaining consistent authentication methods unless necessary. If enabling multiple login methods is essential, implement additional security measures to mitigate potential risks. +## Frequently Asked Questions (FAQ) -**Option 2: Maintain consistent authentication method** +### Does this restrict login to my GitHub Organization? -Users can continue logging in with the authentication method they signed up with. This avoids changing Baserow's default behavior and maintains existing security measures. +**No.** By default, a GitHub OAuth App allows *any* GitHub user to authenticate. It validates *identity* (who they are), not *authorization* (which organization they belong to). -**Option 3: Delete user from [Admin panel](/user-docs/enterprise-admin-panel) and re-login via SSO** + * **How to restrict access:** To prevent random GitHub users from creating accounts on your instance, navigate to **Admin -> Settings** and disable **""Allow creating new accounts""**. With this setting off, only users you explicitly invite to a workspace (via their GitHub email) will be able to join. -You can delete the user from the Baserow [admin panel](/user-docs/enterprise-admin-panel). Upon logging in via SSO, Baserow will recreate the user, automatically setting SSO as their default authentication method. +Learn more: [Global instance settings][6] -Deleting the user permanently removes all their associated data within Baserow. This option should only be considered if data loss is acceptable and after ensuring all data is backed up elsewhere. +### Can I map GitHub Teams to Baserow Roles? -Always prioritize data security when modifying your authentication settings. +Not currently. Baserow supports **Just-In-Time (JIT) provisioning**, which creates the user account immediately upon login. However, it does not sync GitHub Team memberships to assign Baserow roles (e.g., Admin vs. Editor). You must [manually assign roles in Baserow][7] after the user logs in. ## Related content - - [Single Sign On (SSO) overview][9]. - - [Baserow Enterprise plan][10]. - - [Enable SSO in the admin panel][11]. - - [Email and password authentication][12]. + * [SSO Overview](/user-docs/single-sign-on-sso-overview) + * [Enable SSO in the Admin Panel](/user-docs/enable-single-sign-on-sso) + * [Configure GitLab SSO](/user-docs/configure-gitlab-for-oauth-2-sso) --- - - -Still need help? If you're looking for something else, please feel free to make recommendations or ask us questions—we’re ready to assist you. - -   [Ask the Baserow community](https://community.baserow.io) - -   [Contact support](/contact) for questions about Baserow or help with your account. +Still need help? If you're looking for something else, please feel free to make recommendations or ask us questions; we’re ready to assist you. +- [Ask the Baserow community](https://community.baserow.io) +- [Contact support](/contact) for questions about Baserow or help with your account. - [1]: /user-docs/configure-gitlab-for-oauth-2-sso - [2]: /user-docs/configure-openid-connect-for-oauth-2-sso - [3]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/3c3c7900-28ae-4d65-a04e-75234f5788f8/Screenshot_2022-11-07_at_15.01.41.png - [4]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/83857cd9-ee3a-4ea7-a21c-f4fd69acbc17/Screenshot_2022-11-07_at_15.08.01.png - [5]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/19e21f07-dcb5-4710-9321-cbcd15e9ff12/Screenshot_2022-11-07_at_15.10.10.png - [6]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/457c10f1-e480-4132-b7aa-053d274d8907/Screenshot%202023-07-18%20at%2011.07.05.png - [7]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/da1f821b-4cbb-429b-bcc6-2c186d601825/Screenshot_2022-11-07_at_15.11.46.png - [8]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/1cd2f1db-be25-4953-be00-76605aab583e/Screenshot_2022-11-07_at_15.12.42.png - [9]: /user-docs/single-sign-on-sso-overview - [10]: /user-docs/enterprise-license-overview - [11]: /user-docs/enable-single-sign-on-sso - [12]: /user-docs/email-and-password-authentication - [13]: /user-docs/enable-single-sign-on-sso#oauth-provider-configuration",,baserow_user_docs,https://baserow.io/user-docs/configure-github-for-oauth-2-sso -99,Configure GitLab for SSO,configure-gitlab-for-oauth-2-sso,Baserow GitLab OAuth 2 SSO setup guide,"# Set up GitLab OAuth 2 SSO in Baserow -This guide is intended for [Admins](/user-docs/working-with-collaborators#set-the-permission-level-for-collaborators) setting up OAuth 2 SSO with GitLab. + [1]: https://baserow.io/user-docs/single-sign-on-sso-overview + [2]: https://baserow.io/pricing + [3]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/a44246fe-791d-4bb3-9238-298f5e80e831/Configure%20GitHub%20SSO%20(OAuth%202).jpg + [4]: https://baserow.io/user-docs/enterprise-admin-panel + [5]: https://github.com/settings/developers + [6]: https://baserow.io/user-docs/admin-panel-settings + [7]: https://baserow.io/user-docs/permissions-overview",sso,baserow_user_docs,https://baserow.io/user-docs/configure-github-for-oauth-2-sso +99,Configure GitLab SSO,configure-gitlab-for-oauth-2-sso,Baserow GitLab OAuth 2 SSO setup guide,"# Configure GitLab SSO (OAuth 2) -When you configure Single Sign-on (SSO) with GitLab, your users will be able to create and sign into their Baserow accounts using GitLab. +This guide explains how to configure [Single Sign-On][1] (SSO) using GitLab (Cloud or Self-Managed) via the OAuth 2.0 protocol. -If you are looking for information on setting up SSO with other providers: +> SSO is available on the **[Baserow Advanced and Enterprise][2]** plan. You must have a valid license activated to configure these settings. -- [Configure Azure AD for SAML SSO](/user-docs/configure-sso-with-azure-ad) -- [Configure OneLogin for SAML SSO](/user-docs/configure-sso-with-onelogin) -- [Configure Okta for SAML SSO](/user-docs/configure-sso-with-okta) -- [Configure Google for OAuth 2 SSO](/user-docs/configure-google-for-oauth-2-sso) -- [Configure Facebook for OAuth 2 SSO](/user-docs/configure-facebook-for-oauth-2-sso) -- [Configure GitHub for OAuth 2 SSO](/user-docs/configure-github-for-oauth-2-sso) -- [Configure OpenID Connect for OAuth 2 SSO][1] +## Overview -> Single Sign-On feature is a part of the Baserow Enterprise offering. Instance-wide features are only available on the self-hosted Enterprise plan. To learn more about the Baserow enterprise plan, [visit our pricing page](/pricing). -> +The GitLab SSO integration allows users to log in to Baserow using their existing GitLab accounts. -Here's how to set up OAuth 2 SSO with GitLab to sign in to your Baserow account. +This works for both **GitLab.com** and **Self-Managed GitLab** instances. To set this up, you must create an ""Application"" in your GitLab user settings (or Instance Admin settings) and connect it to Baserow. -## Set up OAuth 2 SSO with GitLab +![Connect GitLab to Baserow][3] -Sign in or create a [GitLab](https://about.gitlab.com/) account. Go to User settings → Applications at [https://gitlab.com/-/profile/applications](https://gitlab.com/-/profile/applications). +## Prerequisites -Add a new application: + * **Baserow:** You must be an [Instance Admin](/user-docs/admin-panel-users) on a self-hosted plan. + * **GitLab:** You must have a GitLab account. -![enter image description here][2] -Next, log in to Baserow. Go to the Admin > Authentication > Provider. Retrieve your ***Callback URL*** from your Baserow admin settings modal, following the [steps in this guide](/user-docs/enable-single-sign-on-sso#oauth-provider-configuration). -To set up the new application, +## Phase 1: Get Baserow Callback URL -- Fill in the Application name as **Baserow** -- Fill in the Redirect URI. This is the Baserow Callback URL you will find in the Baserow Provider Settings where you create or edit the authentication provider. -- Set the Confidential checkbox. -- Allow the `read_user` scope. +Before registering the app in GitLab, you need to know where GitLab should send users after they log in. -![enter image description here][3] +1. Log in to your Baserow **Admin Panel**. +2. Navigate to **Authentication -> + Add Provider**. +3. Select **GitLab**. +4. Copy the **Callback URL** displayed in the modal (e.g., `https://baserow.yourdomain.com/api/sso/oauth2/callback`). +5. Keep this tab open. -Click the **Save application** button. -Once created, you will use the credentials to configure a new GitLab provider in Baserow: -- Application ID is the Baserow Client ID. -- Secret is the Baserow Secret. +## Phase 2: Register GitLab application -![enter image description here][4] +1. Log in to your GitLab account. +2. **Navigate to Applications:** + * **For Personal Accounts:** Go to **User Settings (Profile) -> Applications**. + * **For Groups:** Go to **Group Settings -> Applications**. + * **For Instance-wide (Self-Managed only):** Go to **Admin Area -> Applications**. +3. **Add New Application:** + * **Name:** `Baserow` + * **Redirect URI:** Paste the **Callback URL** you copied from Baserow. + * **Confidential:** Ensure this checkbox is **Checked**. + * **Scopes:** Select `read_user`. (This is the minimal scope required to identify the user). +4. Click **Save application**. -After you've accessed this information from the application, copy and paste the information from GitLab into Baserow. +![Register GitLab application for Baserow][4] -## Connect GitLab to your Baserow Account +## Phase 3: Generate credentials -Head back to Baserow Admin > Authentication > Provider. +GitLab will now display your Application ID and Secret. -Configure GitLab by inputting the Client ID and secret information into the corresponding fields in your Baserow Admin Dashboard, following the [steps in this guide](/user-docs/enable-single-sign-on-sso#oauth-provider-configuration). +1. Copy the **Application ID**. +2. Copy the **Secret**. + * *Note:* Keep these secure. The secret functions as a password for your application. -![enter image description here][5] -You should be able to log in with GitLab after completing these steps by visiting your Baserow servers login page. Your users will now be taken to a GitLab sign-in flow when they attempt to log into Baserow. After logging in with their GitLab credentials, they will be redirected to the app. -![enter image description here][6] +## Phase 4: Connect GitLab to Baserow -## Understanding Baserow's authentication system +1. Return to the **Baserow Admin Panel** (where you left the modal open). +2. **Name:** Enter `GitLab`. +3. **Client ID:** Paste the **Application ID** from GitLab. +4. **Secret:** Paste the **Secret** from GitLab. +5. **Base URL:** + * If using **GitLab.com**: Leave this field blank (or enter `https://gitlab.com`). + * If using **Self-Managed GitLab**: Enter the full URL of your GitLab instance (e.g., `https://gitlab.company.com`). +6. Click **Save**. -By default, Baserow restricts users to logging in only with the same authentication method they used for signing up. For instance, if a user creates an account with a username and password, they won't be able to log in through SSO without further configuration. +Learn more: [Connect GitLab to Baserow][5] -## Troubleshooting error for SSO Login +## Troubleshooting & Common Issues -You might encounter an error message — ""Something went wrong: please use the provider that you originally signed up with"" — when you attempt to log in via SSO. +### ""The provided authorization grant is invalid, expired, or revoked"" -This error message indicates a conflict between your initial sign-up method and your attempt to log in via SSO after initially signing up for Baserow with a username and password. +This often happens if the **Callback URL** in GitLab does not exactly match the URL Baserow is expecting. -Here are the primary options to address this error: + * **Check:** Did you copy the URL exactly from the Baserow modal? + * **Check:** Did you verify the protocol (`http` vs `https`)? -**Option 1: Enable multiple authentication methods** +### Self-Managed GitLab: ""500 Internal Server Error"" -Set the environment variable `BASEROW_ALLOW_MULTIPLE_SSO_PROVIDERS_FOR_SAME_ACCOUNT=true`. After setting this variable, restart the Baserow instance. This allows users to log in with either a password or SSO. +If you are using a private GitLab instance, ensure your Baserow server can reach your GitLab server over the network. If they are on the same internal network, you may need to configure Docker networking or firewall rules to allow the connection. -This option **increases security risk**, especially if you have multiple OAuth providers enabled. An attacker who gains access to a user's account on any external provider could potentially use that access to log in to the associated Baserow account. -> For optimal security, we recommend maintaining consistent authentication methods unless necessary. If enabling multiple login methods is essential, implement additional security measures to mitigate potential risks. +## Frequently Asked Questions (FAQ) -**Option 2: Maintain consistent authentication method** +### Does this work with GitLab Groups? -Users can continue logging in with the authentication method they signed up with. This avoids changing Baserow's default behavior and maintains existing security measures. +Yes, but with caveats. Creating the app in a **Group** does not restrict login access to *only* members of that group; it just means that group owns the application. Any user on that GitLab instance (or GitLab.com) could potentially log in. -**Option 3: Delete user from [Admin panel](/user-docs/enterprise-admin-panel) and re-login via SSO** + * **To restrict access:** We recommend disabling **""Allow creating new accounts""** in Baserow settings so only invited users can join. -You can delete the user from the Baserow [admin panel](/user-docs/enterprise-admin-panel). Upon logging in via SSO, Baserow will recreate the user, automatically setting SSO as their default authentication method. +Learn more: [Global instance settings][6] -Deleting the user permanently removes all their associated data within Baserow. This option should only be considered if data loss is acceptable and after ensuring all data is backed up elsewhere. +### Can I map GitLab Groups to Baserow Roles? -Always prioritize data security when modifying your authentication settings. +Not currently. Baserow supports **Just-In-Time (JIT) provisioning**, which creates the user account immediately upon login. However, it does not sync GitLab Group memberships to assign Baserow roles (e.g., Admin vs. Editor). You must [manually assign roles in Baserow][7] after the user logs in. ## Related content - - [Single Sign On (SSO) overview][7]. - - [Baserow Enterprise plan][8]. - - [Enable SSO in the admin panel][9]. - - [Email and password authentication][10]. + * [SSO Overview](/user-docs/single-sign-on-sso-overview) + * [Enable SSO in the Admin Panel](/user-docs/enable-single-sign-on-sso) + * [Configure GitHub SSO](/user-docs/configure-github-for-oauth-2-sso) --- - - -Still need help? If you're looking for something else, please feel free to make recommendations or ask us questions—we’re ready to assist you. +Still need help? If you're looking for something else, please feel free to make recommendations or ask us questions; we’re ready to assist you. - [Ask the Baserow community](https://community.baserow.io) - [Contact support](/contact) for questions about Baserow or help with your account. - [1]: /user-docs/configure-openid-connect-for-oauth-2-sso - [2]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/64147fe6-1fa4-44bf-b21b-bb3e080d42b5/Screenshot_2022-11-07_at_15.21.47.png - [3]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/020644ba-019d-45fc-96be-3a723bad606d/Screenshot_2022-11-07_at_15.25.26.png - [4]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/b5db7f64-d64a-440d-9942-e8dc61675337/Screenshot_2022-11-07_at_15.28.19.png - [5]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/f9e2b6f4-8ac0-4a8c-86f7-513f1f0a218e/Screenshot_2022-11-07_at_15.30.00.png - [6]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/55cecad5-0a22-4586-a7af-a3b89924fe46/Screenshot_2022-11-07_at_15.30.34.png - [7]: /user-docs/single-sign-on-sso-overview - [8]: /user-docs/enterprise-license-overview - [9]: /user-docs/enable-single-sign-on-sso - [10]: /user-docs/email-and-password-authentication",,baserow_user_docs,https://baserow.io/user-docs/configure-gitlab-for-oauth-2-sso -100,Configure OpenID Connect,configure-openid-connect-for-oauth-2-sso,Baserow single sign-on with OpenID Connect,"# Configure OpenID Connect for Baserow SSO - -This guide is intended for [Admins](/user-docs/working-with-collaborators#set-the-permission-level-for-collaborators) setting up OAuth 2 SSO with OpenID Connect. - -OpenID Connect (OIDC) is an open authentication protocol on top of the OAuth 2.0 framework. OIDC is a consumer-focused standard that enables users to access third-party websites with just one sign-on (SSO). - -> Single Sign-On feature is a part of the Baserow Enterprise offering. Instance-wide features are only available on the self-hosted Enterprise plan. To learn more about the Baserow enterprise plan, [visit our pricing page](https://baserow.io/pricing). + [1]: https://baserow.io/user-docs/single-sign-on-sso-overview + [2]: https://baserow.io/pricing + [3]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/3b5e4d7f-9d1e-413b-9788-f739d020953b/Connect%20GitLab%20to%20Baserow.jpg + [4]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/5c5bf03f-e730-445f-9a66-21e793c3b1ef/Register%20GitLab%20application.jpg + [5]: https://baserow.io/user-docs/enable-single-sign-on-sso + [6]: https://baserow.io/user-docs/admin-panel-settings + [7]: https://baserow.io/user-docs/permissions-overview",sso,baserow_user_docs,https://baserow.io/user-docs/configure-gitlab-for-oauth-2-sso +100,Configure OpenID Connect,configure-openid-connect-for-oauth-2-sso,Baserow single sign-on with OpenID Connect,"# Configure generic OpenID Connect (OIDC) SSO -If you are looking for information on setting up SSO with other providers: +This guide explains how to configure Single Sign-On (SSO) using the generic OpenID Connect (OIDC) protocol. Use this guide if your Identity Provider is not listed in the dedicated [SSO menu](/user-docs/single-sign-on-sso-overview) but supports the OIDC standard (e.g., Keycloak, Auth0, Salesforce). -- [Configure Azure AD for SAML SSO](/user-docs/configure-sso-with-azure-ad) -- [Configure OneLogin for SAML SSO](/user-docs/configure-sso-with-onelogin) -- [Configure Okta for SAML SSO](/user-docs/configure-sso-with-okta) -- [Configure Google for OAuth 2 SSO](/user-docs/configure-google-for-oauth-2-sso) -- [Configure Facebook for OAuth 2 SSO](/user-docs/configure-facebook-for-oauth-2-sso) -- [Configure GitHub for OAuth 2 SSO](/user-docs/configure-github-for-oauth-2-sso) -- [Configure GitLab for OAuth 2 SSO](/user-docs/configure-gitlab-for-oauth-2-sso) +> SSO is available on the **[Baserow Advanced Enterprise][1]** plan. You must have a valid license activated to configure these settings. -When you configure Single Sign-on (SSO) with OpenID Connect, your users can create and sign into their Baserow accounts using OpenID Providers (OPs) such as an email service or social network to verify their identities. +![OpenID Connect in Baserow][2] -Based on the authentication carried out by an authorization server, you can receive basic profile information about the end user and validate the end user's identity. +## Overview -Here's how to set up OAuth 2 SSO with OpenID Connect to sign in to your Baserow account. +OpenID Connect (OIDC) allows you to connect almost any modern identity provider to Baserow. -## Set up OAuth 2 SSO with OpenID Connect +To set this up, you need to register Baserow as a ""Client"" application in your Identity Provider (IdP) and then paste the credentials (Client ID, Secret, and Base URL) back into Baserow. -Sign in or create an account with a provider of your choice. +## Prerequisites -You must register your application with the IdP in order to let users log in using an OIDC Identity Provider. To do this, you must refer to the documentation provided by your IdP as it differs for each OIDC Identity Provider. + * **Baserow:** You must be an [Instance Admin](/user-docs/admin-panel-users) on a self-hosted plan. + * **Identity Provider:** You must have administrative access to create clients/applications in your IdP. -Your OIDC Identity Provider will create a unique ID for the registered API during this procedure, typically referred to as a Client ID and Secret. -Once created, you will use the credentials to configure a new OpenID Connect provider in Baserow: -- Obtain the Provider’s Base URL. -- Obtain the Provider’s Client ID. -- Obtain the Provider’s Client Secret. -- Set Redirect URL. This is the Baserow Callback URL you will find in the Baserow Provider Settings where you create or edit the authentication provider. +## Phase 1: Create application in Identity Provider -After you've accessed this information from the application, copy and paste the information from OpenID Connect into Baserow. +Since every IdP is different, you will need to consult your provider's documentation. However, the general steps are always the same: -## Connect OpenID Connect to your Baserow Account +1. **Create a ""Client"" or ""Application"":** Look for options like ""OIDC Client,"" ""Web Application,"" or ""Confidential Client."" +2. **Locate the Callback URL:** You will need to tell your provider where to send users after they log in. + * Go to Baserow **[Admin tools][3] -> Authentication -> + Add Provider -> OpenID Connect**. + * Copy the **Callback URL** displayed in the modal (e.g., `https://your-baserow.com/api/sso/oauth2/callback`). + * Paste this into the **Redirect URI** or **Callback URL** field in your IdP. +3. **Generate Credentials:** Once created, your IdP will provide you with: + * **Client ID** + * **Client Secret** + * **Issuer URL / Base URL** -Log in to Baserow. Go to Admin > Authentication > Provider. Retrieve your ***Callback URL*** from your Baserow admin settings modal, following the [steps in this guide](/user-docs/enable-single-sign-on-sso#oauth-provider-configuration). -![enter image description here][1] -Configure OpenID Connect by inputting the URL, Client ID and Secret information into the corresponding fields in your Baserow Admin Dashboard, following the [steps in this guide](/user-docs/enable-single-sign-on-sso#oauth-provider-configuration). +## Phase 2: Configure Baserow -You should be able to log in with OpenID Connect after completing these steps by visiting your Baserow servers login page. Your users will now be taken to an OpenID Connect sign-in flow when they attempt to log into Baserow. After logging in with their OpenID Connect credentials, they will be redirected to the app. + 1. Return to the Baserow **Add OpenID Connect Provider** modal. + 2. **Name:** Enter a display name (e.g., ""Company Login""). This text will appear on the login button. + 3. **Client ID:** Paste the ID from your IdP. + 4. **Secret:** Paste the Secret from your IdP. + 5. **Base URL:** Paste the URL of your IdP (See formatting rules below). + 6. Click **Save**. -## Understanding Baserow's authentication system +### Base URL formatting -By default, Baserow restricts users to logging in only with the same authentication method they used for signing up. For instance, if a user creates an account with a username and password, they won't be able to log in through SSO without further configuration. +Baserow automatically appends `/.well-known/openid-configuration` to the URL you provide to discover the endpoints. **Do not include this suffix yourself.** -## Troubleshooting error for SSO Login +| If your Discovery URL is... | You must enter... | +| :--- | :--- | +| `https://idp.example.com/.well-known/openid-configuration` | `https://idp.example.com` | +| `https://login.microsoftonline.com/{tenant}/v2.0/.well-known...` | `https://login.microsoftonline.com/{tenant}/v2.0` | +| `https://auth0.com/realms/myrealm/.well-known...` | `https://auth0.com/realms/myrealm` | -You might encounter an error message — ""Something went wrong: please use the provider that you originally signed up with"" — when you attempt to log in via SSO. -This error message indicates a conflict between your initial sign-up method and your attempt to log in via SSO after initially signing up for Baserow with a username and password. +## Troubleshooting & common issues -Here are the primary options to address this error: +### ""Discovery Endpoint"" or ""404"" Errors -**Option 1: Enable multiple authentication methods** +This almost always means the **Base URL** is incorrect. -Set the environment variable `BASEROW_ALLOW_MULTIPLE_SSO_PROVIDERS_FOR_SAME_ACCOUNT=true`. After setting this variable, restart the Baserow instance. This allows users to log in with either a password or SSO. + * **Check:** Did you paste the full `.well-known` path? (Remove it). + * **Check:** Does your URL end with a trailing slash `/`? (Try removing it). + * **Test:** You should be able to paste `[Your Base URL]/.well-known/openid-configuration` into a browser and see a JSON response. If not, the URL is wrong. -This option **increases security risk**, especially if you have multiple OAuth providers enabled. An attacker who gains access to a user's account on any external provider could potentially use that access to log in to the associated Baserow account. +### ""PKCE Required"" or ""Code Exchange"" Errors -> For optimal security, we recommend maintaining consistent authentication methods unless necessary. If enabling multiple login methods is essential, implement additional security measures to mitigate potential risks. +Some providers (like **Azure AD**) enforce PKCE (Proof Key for Code Exchange) for security. Baserow's current OIDC implementation may not support strict PKCE enforcement for all providers. -**Option 2: Maintain consistent authentication method** + * **Solution:** If you are connecting **Azure AD**, please use our [SAML Integration Guide](/user-docs/configure-sso-with-azure-ad) instead. -Users can continue logging in with the authentication method they signed up with. This avoids changing Baserow's default behavior and maintains existing security measures. +## Frequently Asked Questions (FAQ) -**Option 3: Delete user from [Admin panel](/user-docs/enterprise-admin-panel) and re-login via SSO** +### What is the difference between OAuth 2 and OpenID Connect? -You can delete the user from the Baserow [admin panel](/user-docs/enterprise-admin-panel). Upon logging in via SSO, Baserow will recreate the user, automatically setting SSO as their default authentication method. +OIDC is a layer on top of OAuth 2 specifically designed for authentication (logging in), whereas OAuth 2 is designed for authorization (accessing APIs). Baserow uses OIDC to verify who the user is. -Deleting the user permanently removes all their associated data within Baserow. This option should only be considered if data loss is acceptable and after ensuring all data is backed up elsewhere. +### Can I map Roles or Groups via OIDC? -Always prioritize data security when modifying your authentication settings. +Not currently. Baserow supports Just-In-Time (JIT) provisioning, meaning the account is created immediately upon login. However, we do not currently read OIDC ""Claims"" (like groups or roles) to assign permissions in Baserow. You must [manually assign roles after the user joins][4]. ## Related content - - [Single Sign On (SSO) overview][2]. - - [Baserow Enterprise plan][3]. - - [Enable SSO in the admin panel][4]. - - [Email and password authentication][5]. + * [SSO Overview](/user-docs/single-sign-on-sso-overview) + * [Enable SSO in the Admin Panel](/user-docs/enable-single-sign-on-sso) + * [Configure Azure AD (SAML)](/user-docs/configure-sso-with-azure-ad) + * [Configure Google (OAuth)](/user-docs/configure-google-for-oauth-2-sso) --- - - -Still need help? If you're looking for something else, please feel free to make recommendations or ask us questions—we’re ready to assist you. - -   [Ask the Baserow community](https://community.baserow.io) +Still need help? If you're looking for something else, please feel free to make recommendations or ask us questions; we’re ready to assist you. -   [Contact support](https://baserow.io/contact) for questions about Baserow or help with your account. +- [Ask the Baserow community](https://community.baserow.io) +- [Contact support](https://baserow.io/contact) for questions about Baserow or help with your account. - [1]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/ea05ea09-eecf-4ca3-8171-5162d76a30f4/Screenshot_2022-11-07_at_16.02.14.png - [2]: /user-docs/single-sign-on-sso-overview - [3]: /user-docs/enterprise-license-overview - [4]: /user-docs/enable-single-sign-on-sso - [5]: /user-docs/email-and-password-authentication",,baserow_user_docs,https://baserow.io/user-docs/configure-openid-connect-for-oauth-2-sso + [1]: https://baserow.io/pricing + [2]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/9b9cd5da-4472-446c-817c-264a756529ea/OpenID%20Connect.jpg + [3]: https://baserow.io/user-docs/enterprise-admin-panel + [4]: https://baserow.io/user-docs/permissions-overview",sso,baserow_user_docs,https://baserow.io/user-docs/configure-openid-connect-for-oauth-2-sso 101,Role hierarchy,role-based-access-control-rbac,Baserow role hierarchy for access control,"# Understanding role hierarchy for access control Understanding role hierarchy is essential for designing secure, scalable permission structures that balance ease of management with precise access control. @@ -10594,17 +10638,17 @@ The hierarchy flows in this order: ``` No access (no roles assigned) - ↓ + ↓ Workspace-level team role (least specific) - ↓ + ↓ Workspace-level individual role (Default baseline for all content) ↓ overridden by Database-level team role - ↓ + ↓ Database-level individual role (Department or project-level exceptions) ↓ overridden by Table-level team role - ↓ + ↓ Table-level individual role (Granular, specific restrictions) ``` @@ -10794,7 +10838,7 @@ To establish a connection with the Baserow data source, you can either click on ### Step 1: Add Baserow as a data source -1. **Open the data sources panel**: In ToolJet's app builder, click the **Data sources** tab in the left sidebar. +1. **Open the data sources panel**: In ToolJet's app builder, click the **Data sources** tab in the left sidebar. 2. **Select Baserow**: Search for ""Baserow"" in the data source modal. Click on Baserow to select it @@ -11185,7 +11229,7 @@ Baserow Cloud is the fastest way to start using Baserow. Sign up at [baserow.io] - **Performance**: Load balancing and optimization - **Uptime**: 99.9% availability with monitoring -Learn more about [Baserow Cloud pricing and plans][2]. +Learn more about [Baserow Cloud pricing and plans][2]. ### When to choose Cloud @@ -11210,7 +11254,7 @@ Self-hosted Baserow gives you complete control over where and how Baserow runs. - **Customization**: Modify and extend Baserow if needed - **Air-gapped deployment**: Run completely offline if required -Learn more about [Baserow Self-hosted pricing and plans][2]. +Learn more about [Baserow Self-hosted pricing and plans][2]. ### When to choose Self-hosted @@ -11276,6 +11320,10 @@ Alternatively, migrating your data may require assistance from [our support team ## Frequently asked questions +### I am not sure if I am using the Cloud or self-hosting. Where can I find out? + +If the URL starts with baserow.io, then you are on Cloud; otherwise, you are self-hosting. + ### Which deployment option should I choose? Choose **Baserow Cloud** if you want to start immediately, prefer not to manage infrastructure, and standard cloud hosting meets your needs. Choose **Self-hosted** if you need data on specific infrastructure, have compliance requirements, want unlimited usage, or have technical resources to manage servers. @@ -11356,7 +11404,7 @@ Still need help? If you're looking for something else, please feel free to make [16]: https://baserow.io/user-docs/get-a-licence-key [17]: /user-docs/baserow-basics [18]: /user-docs/enterprise-license-overview - [19]: /user-docs/learn-baserow-basic-concepts",,baserow_user_docs,https://baserow.io/user-docs/set-up-baserow + [19]: /user-docs/learn-baserow-basic-concepts",getting started,baserow_user_docs,https://baserow.io/user-docs/set-up-baserow 106,Baserow pricing and plans,pricing-plans,Baserow pricing and paid plans,"# Baserow pricing plans Baserow offers four plans. Cloud versions have usage limits; self-hosted versions are unlimited. All plans include unlimited databases, but higher tiers unlock paid features. @@ -11420,9 +11468,9 @@ The Advanced plan offers enterprise-grade security and management features for l **Everything from Premium, plus:** - Enhanced limits: 250,000 rows, 100GB storage (cloud) - - [Role-based permissions][15] for granular access control + - [Role-based permissions][15] for granular access control - [Field-level permissions][16] - - Direct priority support for faster issue resolution + - Direct priority support for faster issue resolution - [Audit logging][17] for compliance and security monitoring - [Applications][18] - File upload element, SSO user authentication - White label application branding @@ -11437,7 +11485,7 @@ Enterprise plans offer maximum flexibility and control for large organizations w **Available exclusively for self-hosted deployments** with custom pricing based on your organization's needs. -Enterprise includes everything from Advanced plus +Enterprise includes everything from Advanced plus - Managed Baserow instance - Implementation services - Payment by invoice @@ -11487,7 +11535,7 @@ Visit the [Baserow pricing page](https://baserow.io/pricing) for current rates a ## Related content - [How to buy a subscription](/user-docs/buying-a-subscription) -- [Subscription overview and billing](/user-docs/subscriptions-overview) +- [Subscription overview and billing](/user-docs/subscriptions-overview) - [Role-based permissions guide](/user-docs/permissions-overview) - [Enterprise license overview](/user-docs/enterprise-license-overview) - [Self-hosted installation guide](/user-docs/set-up-baserow) @@ -11591,7 +11639,7 @@ The deletion confirmation pop-up shows exactly which workspaces will be deleted ### Workspaces with other admins -**You'll be removed from these workspaces:** Workspaces continue operating normally. Other members retain full access. Your contributions remain (comments, data changes). +**You'll be removed from these workspaces:** Workspaces continue operating normally. Other members retain full access. Your contributions remain (comments, data changes). Shared workspaces are not affected by your account deletion as long as other admins exist. @@ -11687,71 +11735,87 @@ Still need help? If you're looking for something else, please feel free to make [1]: https://baserow.io/user-docs/data-recovery-and-deletion",,baserow_user_docs,https://baserow.io/user-docs/delete-your-baserow-account -108,Email and password authentication,email-and-password-authentication,Baserow email login setup and management,"# Manage email and password authentication in Baserow +108,Email/Password auth,email-and-password-authentication,Baserow email login setup and management,"# Manage email and password authentication -Baserow supports SSO for a [range of identity providers (IdP)][1]. SSO feature is a part of the Baserow Enterprise offering. +This guide explains how to enable or disable standard email/password logins in favor of [Single Sign-On (SSO)][1] and how to regain access if you are locked out. -This article is intended for administrators who want to enable/disable email and password authentication. +## Overview -## Disable password provider +Baserow allows administrators to enforce Single Sign-On (SSO) by disabling the standard email and password login method. This ensures all users must authenticate via your corporate identity provider. -Email and password authentication can be enabled or disabled from the Authentication page of the Admin Panel like other IdPs. +By default, Baserow enables ""Email and Password"" authentication. However, organizations with strict security policies often prefer to disable this to ensure former employees cannot access the system once removed from the corporate IDP (e.g., Okta, Azure AD). -Before enabling/disabling email and password authentication via the admin panel, you must first enable an SSO identity provider. Learn more about [configuring SSO in the Admin Panel][2]. +> **⚠️ Requirement:** You cannot disable Email and Password authentication until you have successfully [enabled at least one other SSO provider][2] (SAML or OAuth 2). Baserow ensures you always have at least one active way to log in. -> At least one auth provider has to be always enabled. If authentication with email/password is disabled, SAML or OAuth 2 provider needs to be configured. It is not possible to delete or disable the last enabled provider. -> +![Baserow Authentication Providers][3] -To disable Email and password authentication, +## Disabling password authentication -1. Navigate to the Admin Panel. -2. Click on the Authentication page in the navigation sidebar on the left. You should see a list of IdPs configured. -3. Toggle the switch under ""Email and password authentication” to enable or disable. +To enforce SSO, you must disable the default password provider. -![enter image description here][3] +1. **Navigate to [Admin Panel][4]:** Log in as an [Instance Admin][5] and click **Admin -> Authentication**. +2. **Verify SSO Status:** Ensure your desired SSO provider (e.g., Google, GitLab, Okta) is listed and **Enabled** (toggle is green). +3. **Toggle Password Auth:** Locate the **Email and Password** row. +4. **Switch to Disabled:** Click the toggle to turn it off (gray). -Note that when password authentication is disabled, the login and sign up forms are hidden. If disabled, only an instance admin is allowed to log in with their email and password. +### What happens next? -## Bypass login page redirect + * **For Users:** The login form (username/password fields) will disappear. If only one SSO provider is active, visiting the login page will **automatically redirect** them to that provider's login screen. + * **For Admins:** You will also be redirected. To bypass this, see the [Emergency Access](#emergency-access-bypass-redirect) section below. -> Note that this action is restricted to instance admins. An Instance Admin is the account that installs and sets up Baserow and has staff privileges. -> +## Emergency access (Bypass redirect) -Both SAML and OAuth2 providers work based on redirection to another site. If password authentication is disabled and only one redirect-based auth provider is enabled (SAML or OAuth 2), the login page will redirect users automatically. By default, the user will see the login page only for a brief moment before it redirects. +If you have disabled password authentication and your SSO provider fails (or is misconfigured), you risk locking yourself and your users out of the instance. -However, the instance admin (super admin) can always log in via email and password even when the Email and password authentication is disabled and the automatic redirect is in action. +**Instance Admins always retain the ability to log in with a password, even if the feature is disabled.** To access the hidden login form, you must use a special URL parameter to stop the automatic redirect. -If the login form is hidden, the instance admin can bypass this automatic redirect behavior on the login page by adding the `?noredirect` parameter to the login URL. +### How to use the bypass URL -The instance admin can use this `?noredirect` URL parameter to actually display the login page and log in via email and password. +1. Navigate to your Baserow login URL. +2. Append `?noredirect` to the end of the URL. + * *Example:* `https://baserow.io/login?noredirect` + * *Example:* `https://your-domain.com/login?noredirect` +3. Press **Enter**. +4. The automatic redirect will be suppressed, and the standard Email and Password form will appear. +5. Log in with your Instance Admin credentials. -The full URL in the SaaS hosted version would look like: `https://baserow.io/login?noredirect` +> **Note:** This bypass only works for accounts with **[Instance Admin (Staff)][5]** privileges. Standard users cannot use this parameter to bypass SSO enforcement. -This is helpful so that instance admins know how to log in to Baserow if their SAML or OAuth provider is misconfigured and email/password auth is disabled. If the password authentication is enabled, the login page will never redirect and all users can log in with their details. +## Frequently Asked Questions (FAQ) -## Related content +### Why is my login page automatically redirecting to Google/Okta? - - [Single Sign On (SSO) overview][4]. - - [Enable SSO in the admin panel][5]. - - [Baserow Enterprise plan][6]. +If you have disabled ""Email and Password"" and have exactly **one** SSO provider enabled, Baserow streamlines the experience by skipping the login selection screen and sending the user directly to that provider. To stop this, use the `?noredirect` parameter. ---- +### Can I disable password login for users but keep it for admins? - +Not explicitly. The setting is global. However, the implementation effectively works this way: standard users *must* use SSO because they cannot use the bypass, while Admins *can* use the password method via the `?noredirect` bypass if necessary. -Still need help? If you're looking for something else, please feel free to make recommendations or ask us questions—we’re ready to assist you. +### I disabled password auth and now I can't log in. What do I do? + +Use the [Emergency Access](#emergency-access-bypass-redirect) method (`/login?noredirect`). If you have lost your admin password as well, you will need to use the Baserow command line interface (CLI) on your server to reset the admin password. -   [Ask the Baserow community](https://community.baserow.io) +## Related content + + * [Enable Single Sign-On (SSO)][6] + * [Baserow Admin Panel Overview][7] + * [SSO Overview][8] -   [Contact support](/contact) for questions about Baserow or help with your account. +--- +Still need help? If you're looking for something else, please feel free to make recommendations or ask us questions; we’re ready to assist you. + +- [Ask the Baserow community](https://community.baserow.io) +- [Contact support](/contact) for questions about Baserow or help with your account. - [1]: /user-docs/single-sign-on-sso-overview - [2]: /user-docs/enable-single-sign-on-sso - [3]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/d0847ce8-ca7c-482b-a72f-0f99291e4202/Screenshot%202023-01-06%20at%2012.30.10.png - [4]: /user-docs/single-sign-on-sso-overview - [5]: /user-docs/enable-single-sign-on-sso - [6]: /user-docs/enterprise-license-overview",,baserow_user_docs,https://baserow.io/user-docs/email-and-password-authentication + [1]: https://baserow.io/user-docs/single-sign-on-sso-overview + [2]: https://baserow.io/user-docs/enable-single-sign-on-sso + [3]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/dbc3aa3d-c7b4-4912-914c-8494a483432e/Authentication%20Providers.jpg + [4]: https://baserow.io/user-docs/enterprise-admin-panel + [5]: https://baserow.io/user-docs/admin-panel-users + [6]: /user-docs/enable-single-sign-on-sso + [7]: /user-docs/admin-panel-overview + [8]: /user-docs/single-sign-on-sso-overview",sso,baserow_user_docs,https://baserow.io/user-docs/email-and-password-authentication 109,Add database from template,add-database-from-template,Add Baserow database from a template,"# Add a database from a template Baserow templates combine best-practice database design with flexibility; start quickly, then adapt to your unique workflow. @@ -11764,7 +11828,7 @@ Whether you're managing a blog, tracking sales, or organizing events, templates ## Overview -Templates provide the fastest way to create functional databases in Baserow. Instead of building structure from scratch, templates offer pre-configured tables, fields, views, and sample data designed for specific use cases. +Templates provide the fastest way to create functional databases in Baserow. Instead of building structure from scratch, templates offer pre-configured tables, fields, views, and sample data designed for specific use cases. Using templates offers a fast and efficient way to get started. They save time by providing pre-built tables, sample data, and ready-to-use structures. Templates also demonstrate best practices, showing effective table structures, field types, relationships, and view options. Everything is fully customizable, allowing you to adjust tables, fields, and data to match your needs while keeping professional conventions and optimized configurations in place. @@ -11804,11 +11868,11 @@ Once the installation is complete, your new database opens with all tables fully ### Immediate next steps -Start by exploring the database structure: click through each table to understand its purpose, review field types (hover over field names for details), examine the different views, and study the sample data to see the intended use case. +Start by exploring the database structure: click through each table to understand its purpose, review field types (hover over field names for details), examine the different views, and study the sample data to see the intended use case. -Next, customize the database to fit your workflow by renaming tables and fields, adding new fields, removing unnecessary ones, and adjusting field properties such as options and validations. +Next, customize the database to fit your workflow by renaming tables and fields, adding new fields, removing unnecessary ones, and adjusting field properties such as options and validations. -After customizing, replace the sample data by deleting or archiving rows, [importing your existing data](/user-docs/import-data-into-an-existing-table) via CSV, manually entering new rows, or setting up [forms](/user-docs/guide-to-creating-forms-in-baserow) for data collection. +After customizing, replace the sample data by deleting or archiving rows, [importing your existing data](/user-docs/import-data-into-an-existing-table) via CSV, manually entering new rows, or setting up [forms](/user-docs/guide-to-creating-forms-in-baserow) for data collection. Finally, configure permissions by [adding collaborators](/user-docs/working-with-collaborators) to your workspace, assign [role-based permissions](/user-docs/permissions-overview) for team members, and create [personal views](/user-docs/personal-views) for individual users. @@ -11816,13 +11880,13 @@ Finally, configure permissions by [adding collaborators](/user-docs/working-with ### Customize the template -Templates provide a starting point, but you can tailor them to fit your workflow. +Templates provide a starting point, but you can tailor them to fit your workflow. -You can add new tables by clicking ""+ Add table"" in your database, naming the table, and creating [Link to table](/user-docs/link-to-table-field) fields to connect it with existing tables. Field types can be modified to better match your data by editing the field type and adjusting properties as needed. +You can add new tables by clicking ""+ Add table"" in your database, naming the table, and creating [Link to table](/user-docs/link-to-table-field) fields to connect it with existing tables. Field types can be modified to better match your data by editing the field type and adjusting properties as needed. -Additional views can be created beyond the defaults provided by the template (Grid, Gallery, [Kanban](/user-docs/guide-to-kanban-view), [Calendar](/user-docs/guide-to-calendar-view), or [Timeline](/user-docs/guide-to-timeline-view)), configure filters, sorts, and groupings, and save the view as [personal or collaborative](/user-docs/collaborative-views). +Additional views can be created beyond the defaults provided by the template (Grid, Gallery, [Kanban](/user-docs/guide-to-kanban-view), [Calendar](/user-docs/guide-to-calendar-view), or [Timeline](/user-docs/guide-to-timeline-view)), configure filters, sorts, and groupings, and save the view as [personal or collaborative](/user-docs/collaborative-views). -Formula fields included in templates can also be adjusted by editing the field, updating the formula with the [formula reference](/user-docs/understanding-formulas), and testing with sample data before applying. +Formula fields included in templates can also be adjusted by editing the field, updating the formula with the [formula reference](/user-docs/understanding-formulas), and testing with sample data before applying. ## Template vs. scratch vs. import @@ -11849,7 +11913,7 @@ Sample data is included to demonstrate how the template works. You can keep it f ### Can I use the same template multiple times? -Absolutely. Install a template as many times as needed; for different projects, departments, or clients. Each installation creates an independent database that you can customize separately. +Absolutely. Install a template as many times as needed; for different projects, departments, or clients. Each installation creates an independent database that you can customize separately. ### How do I find templates for my specific industry? @@ -11864,7 +11928,7 @@ Currently, there's no built-in template sharing feature, but you can: ### Do templates work on all Baserow plans? -Yes, all templates are available on every Baserow plan, including the free tier. Some templates may use features specific to paid plans, but core template functionality works universally. +Yes, all templates are available on every Baserow plan, including the free tier. Some templates may use features specific to paid plans, but core template functionality works universally. ## Related content @@ -11894,7 +11958,7 @@ Now that you've installed a template, explore these topics: Still need help? If you're looking for something else, please feel free to make recommendations or ask us questions—we're ready to assist you. - - [Ask the Baserow community](https://community.baserow.io) + - [Ask the Baserow community](https://community.baserow.io) - [Contact support](/contact) for questions about Baserow or help with your account. @@ -11907,7 +11971,7 @@ Migrate your Airtable bases to Baserow in minutes with automatic field type conv ## Overview -Switching from Airtable to Baserow doesn't mean starting from scratch. Baserow's import feature automatically converts your Airtable bases into Baserow databases, preserving your tables, data, views, and most field configurations. +Switching from Airtable to Baserow doesn't mean starting from scratch. Baserow's import feature automatically converts your Airtable bases into Baserow databases, preserving your tables, data, views, and most field configurations. The process takes just minutes and handles field type conversions automatically, so you can focus on customizing your new database rather than rebuilding it. @@ -11939,12 +12003,12 @@ Once complete, your new database opens automatically with all imported data read ![Import Airtable base to Baserow](https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/341f6ab4-3927-45d6-a687-50106ec3f434/Airtable%20import.png) -### Session authentication +### Session authentication -If the import responds with ""The Airtable base requires authentication."" then it could be that the organizational settings in Airtable prevent accessing the Airtable base without authenticating first. To do this, the session and signature must be manually extracted. +If the import responds with ""The Airtable base requires authentication."" then it could be that the organizational settings in Airtable prevent accessing the Airtable base without authenticating first. To do this, the session and signature must be manually extracted. - 1. Visit the URL of the publicly shared base in your browser and sign in, if needed. - 2. Click on the application menu by clicking in the top right corner -> **More tools** -> **Developer tools**. + 1. Visit the URL of the publicly shared base in your browser and sign in, if needed. + 2. Click on the application menu by clicking in the top right corner -> **More tools** -> **Developer tools**. 3. Open the **Application** (in Firefox ""Storage"") tab and click on `https://airtable.com`. 4. Then, find the `__Host-airtable-session` and `__Host-airtable-session.sig` cookie values, and paste them in the inputs. @@ -11952,22 +12016,22 @@ If the import responds with ""The Airtable base requires authentication."" then ### Automatically transferred -✅ **All tables** – Complete table structure with all records -✅ **Field types** – Converted to Baserow equivalents -✅ **Table relationships** – Link to another record becomes Link to table -✅ **Attachments and files** – All uploaded files preserved -✅ **Views** – Grid views with filters, sorts, and grouping -✅ **Field properties** – Formatting, options, and configurations +✅ **All tables** – Complete table structure with all records +✅ **Field types** – Converted to Baserow equivalents +✅ **Table relationships** – Link to another record becomes Link to table +✅ **Attachments and files** – All uploaded files preserved +✅ **Views** – Grid views with filters, sorts, and grouping +✅ **Field properties** – Formatting, options, and configurations ✅ **Row data** – All records with their complete information ### Requires reconfiguration -❌ **Automations** – Rebuild using [Baserow automations](/user-docs/workflow-automation) -❌ **Custom interfaces** – Recreate with [Application Builder](/user-docs/application-builder-overview) -❌ **Integrations** – Reconnect using [Baserow API](/user-docs/database-api) -❌ **Row comments** – Not imported; start fresh in Baserow -❌ **Revision history** – Historical changes not preserved -❌ **Field descriptions** – Add manually after import +❌ **Automations** – Rebuild using [Baserow automations](/user-docs/workflow-automation) +❌ **Custom interfaces** – Recreate with [Application Builder](/user-docs/application-builder-overview) +❌ **Integrations** – Reconnect using [Baserow API](/user-docs/database-api) +❌ **Row comments** – Not imported; start fresh in Baserow +❌ **Revision history** – Historical changes not preserved +❌ **Field descriptions** – Add manually after import ❌ **Access controls** – Reconfigure [permissions](/user-docs/permissions-overview) ## Field type conversions @@ -12030,9 +12094,9 @@ Set up [Kanban](/user-docs/guide-to-kanban-view), [Calendar](/user-docs/guide-to ## Alternatives to importing -If the import function does not fit your needs, there are several alternative approaches. One option is to start fresh using templates. You can browse [Baserow templates](/user-docs/add-database-from-template) tailored to similar use cases, customize them instead of importing from Airtable, and take advantage of designs optimized for Baserow. +If the import function does not fit your needs, there are several alternative approaches. One option is to start fresh using templates. You can browse [Baserow templates](/user-docs/add-database-from-template) tailored to similar use cases, customize them instead of importing from Airtable, and take advantage of designs optimized for Baserow. -Another approach is manual recreation. This involves [creating a database from scratch](/user-docs/create-a-database) while optionally importing only the data via CSV. This method allows you to rebuild the structure while redesigning and optimizing your workflow. +Another approach is manual recreation. This involves [creating a database from scratch](/user-docs/create-a-database) while optionally importing only the data via CSV. This method allows you to rebuild the structure while redesigning and optimizing your workflow. A hybrid approach combines both strategies. You can import an existing base for structure and data, then use a template to add new features, giving you the flexibility to leverage the strengths of both methods. @@ -12106,7 +12170,7 @@ Now that you've imported from Airtable, explore these resources: Still need help? If you're looking for something else, please feel free to make recommendations or ask us questions; we're ready to assist you. - - [Ask the Baserow community](https://community.baserow.io) + - [Ask the Baserow community](https://community.baserow.io) - [Contact support](/contact) for questions about Baserow or help with your account.",,baserow_user_docs,https://baserow.io/user-docs/import-airtable-to-baserow 111,Import data into a table,import-data-into-an-existing-table,Import data into an existing Baserow table,"# Import data into an existing table @@ -12264,7 +12328,7 @@ If import shows ""pending"" or ""running"" for extended periods, it could be bec Still need help? If you're looking for something else, please feel free to make recommendations or ask us questions; we're ready to assist you. -- [Ask the Baserow community](https://community.baserow.io) +- [Ask the Baserow community](https://community.baserow.io) - [Contact support](/contact) for questions about Baserow or help with your account. @@ -12292,7 +12356,7 @@ Free and Premium plans offer two workspace-level roles, without granular, table- | **Admin** | Can fully configure and edit: workspaces, applications, members, settings, billing, databases | Team leads, workspace owners | | **Member** | Can fully create, edit, and delete and manage databases, tables, views; full data access | All team members | -When you create a workspace, you are automatically assigned the Admin role. As an Admin, you can invite others to join as workspace members. A workspace member has broad permissions, giving them full access to all data within that workspace. +When you create a workspace, you are automatically assigned the Admin role. As an Admin, you can invite others to join as workspace members. A workspace member has broad permissions, giving them full access to all data within that workspace. This is best for small teams (2-10 people), high-trust environments, projects where everyone needs similar access, and teams on limited budgets. @@ -12319,13 +12383,13 @@ Learn more about [role capabilities](/user-docs/set-permission-level) and [role ### Permission structure -With role-based permissions, you can assign roles at levels of specificity. Assign roles at workspace, database, and table levels. +With role-based permissions, you can assign roles at levels of specificity. Assign roles at workspace, database, and table levels. ``` Workspace Level (default baseline) ↓ can be overridden at Database Level (project/department access) - ↓ can be overridden at + ↓ can be overridden at Table Level (granular control) ``` > More specific roles override broader ones (table > database > workspace). Learn more about [how role hierarchy works](/user-docs/role-based-access-control-rbac). @@ -12482,7 +12546,7 @@ To see the roles assigned to a specific member: 1. Open your workspace 2. Select **Members** in the sidebar or access from the homepage 3. The Members page displays all workspace members and their current default and highest roles - + This helps troubleshoot access issues and audit permission structures. ### Change an existing member's role @@ -12650,7 +12714,7 @@ Learn more: [Role assignment hierarchy][4] | **Project groups** | Create temporary teams for projects with unified access needs | | **Role-based groups** | Organize by function (Editors, Reviewers, Analysts) rather than organizational structure | -When you remove a member from a team, they immediately lose all team-based permissions but retain any individual permissions assigned directly to them. +When you remove a member from a team, they immediately lose all team-based permissions but retain any individual permissions assigned directly to them. Learn more about [managing team membership](/user-docs/create-and-manage-teams). @@ -12690,7 +12754,7 @@ Individual permissions always take precedence over team permissions. For maximum The workspace members have no default access. They only get permissions through their team memberships at specific database/table levels. This prevents accidental access and creates a ""least privilege"" security model. -Learn more about [role hierarchy](/user-docs/role-based-access-control-rbac). +Learn more about [role hierarchy](/user-docs/role-based-access-control-rbac). **Example implementation:** ``` @@ -12845,7 +12909,7 @@ The Manage Members modal displays all members and teams with explicit database-l > This list only shows explicit database assignments. Members with workspace-level access may still access this database, but it won't appear here unless they have a database-specific role assignment. -> +> **To see all effective access:** 1. Check [workspace-level roles][1] (Members page) @@ -13053,7 +13117,7 @@ Table-level roles have high priority in Baserow's permission hierarchy. Table-le > The table members list shows only explicit table-level assignments, not inherited access. Always check the workspace and database roles when troubleshooting table access. -This means a workspace Editor can edit all tables, but won't appear in individual table member lists unless you assign a table-specific role. The table member list shows only exceptions to database/workspace defaults. This matters because you might think a table has limited access, but workspace/database roles still grant access. +This means a workspace Editor can edit all tables, but won't appear in individual table member lists unless you assign a table-specific role. The table member list shows only exceptions to database/workspace defaults. This matters because you might think a table has limited access, but workspace/database roles still grant access. To truly restrict, assign ""No Access"" at the table level to override inherited permissions and lock down sensitive tables from members who have Editor or Admin access at the workspace/database level. @@ -13251,7 +13315,7 @@ Still need help? If you're looking for something else, please feel free to make - [Contact support](/contact) for questions about Baserow or help with your account",,baserow_user_docs,https://baserow.io/user-docs/assign-roles-at-table-level 117,Enterprise license,enterprise-license-overview,Baserow Enterprise license details,"# Enterprise license overview -Enterprise is exclusively available for self-hosted Baserow installations (version 1.14.0+), not for cloud workspaces on Baserow.io. +Enterprise is exclusively available for self-hosted Baserow installations (version 1.14.0+), not for cloud workspaces on Baserow.io. This guide covers Baserow's Enterprise plan for self-hosted deployments, explains what makes it different from the Advanced plan, and explores the managed services and custom support available to large organizations. @@ -13287,19 +13351,6 @@ This means no partial Enterprise deployments, all workspace members consume Ente This ensures consistent security, compliance, and support across your organization. -## When to choose Enterprise plan - -Enterprise is right for you if: - -✅ **Large user base** (100+ users or growing rapidly) -✅ **Need managed infrastructure** (limited IT resources for maintenance) -✅ **Require invoice payment** (credit card not an option) -✅ **Complex compliance needs** (HIPAA, FedRAMP, SOC 2, custom requirements) -✅ **Want dedicated support** (named account team, fast response times) -✅ **Need custom features** (proprietary integrations, unique workflows) -✅ **Multi-instance deployment** (development, staging, production environments) -✅ **Mission-critical application** (uptime SLAs, disaster recovery guarantees) - Compare all [Baserow pricing plans](/pricing). ## Getting started with Enterprise @@ -13310,14 +13361,6 @@ Baserow team works with you to map current data management workflows, identify m Learn more about [activating Enterprise licenses](/user-docs/activate-enterprise-license). -## Disconnect Enterprise license - -If you disconnect a license while it's active, the related users won’t have access to the plan anymore. It will effectively remove the license. [Contact our support team][2] if you want to use the license in another self-hosted instance. - - 1. Click the workspace dropdown to view account options - 2. Navigate to **Admin tools** → **Manage licenses** - 3. Click the **Disconnect license** button on your license detail page - ## Frequently asked questions ### What happens if my Enterprise license expires? @@ -13365,198 +13408,192 @@ Still need help? If you're looking for something else, please feel free to make [1]: https://baserow.io/user-docs/pricing-plans - [2]: https://baserow.io/contact",,baserow_user_docs,https://baserow.io/user-docs/enterprise-license-overview -118,Admin - All users,admin-panel-users,Baserow admin panel: Manage users,"# Admin panel - Manage all users in the instance - -The Users page of the Admin Panel lets Instance admins manage and view information about Baserow users from the organization. + [2]: https://baserow.io/contact + [3]: https://baserow.io/user-docs/getting-and-changing-the-instance-id",enterprise,baserow_user_docs,https://baserow.io/user-docs/enterprise-license-overview +118,Instance-wide users,admin-panel-users,Baserow admin panel: Manage users,"# Manage users instance-wide -##Overview +The **Users** page in the Admin Panel allows Instance Admins to view, manage, and control access for all user accounts registered on the self-hosted instance. -> Instance-wide Admin panel is an Enterprise-level feature. [Refer to this support article](/user-docs/enterprise-license-overview) to learn more about our Enterprise plan and the additional features it provides. -> +> This feature is available to **Instance Admins** (Staff) on self-hosted plans. -Only Instance admins have access to the Baserow admin panel. +![Manage Users (Admin Panel) Baserow][1] -The Users page allows Instance admins to view: - -- A list of all of the users in their organization. -- The name and email address (username) of each user. -- The workspaces the user is a member of. -- The last login date for a particular user. -- When the user joined. -- Identify the user as Active or Deactivated. - -The ""Last login"" field shows when the user last logged in. Every time a user logs in, the ""Last login"" value on the User page in the admin panel is updated. - -## Individual user actions - -Instance Admins can access user actions by clicking the ellipses (three-dot) icon to the right of the page. By clicking this button, a list of options for modifying that user's account will appear in a new window. - -Instance admins can take the following actions: - -- Edit the name and email of a user. -- Make the user staff: Making a user staff gives them admin access to the entire instance. This action makes the user a super admin in the Baserow instance. - - > Instance Admins have server-wide access to all users and all workspaces. They have the ability to revoke another Instance Admin's own staff permissions. The user that installs and sets up Baserow is automatically an Instance Admin and has staff privileges. - > -- Change the user account password. -- Impersonate a user. An Instance admin is unable to impersonate their own account. -- Deactivate or activate the user’s affiliation with your organization’s Enterprise license. When a user is marked as inactive they are prevented from signing in or signing up again using the email address. -- Delete a user. +## Overview -![enter image description here][1] +The Users page gives administrators a complete roster of every person who has access to the instance, regardless of which workspace they belong to. -## Make a user an Instance Admin +To access this page, open the [Admin Tools][2] and navigate to **People -> Users** in the sidebar. -Instance Admins have admin access to the entire self-hosted instance. To make a user an Instance admin, they must have access to the Baserow instance. +The user list displays the following real-time data for every account: -Log in to your Baserow server as an Instance admin: + * **Name and Username:** The user's full name and email address. + * **Signed up:** The date the user created their account. + * **Last login:** The timestamp of the user's most recent sign-in session. + * **Status:** Whether the account is currently Active or Deactivated. When a user is marked as inactive, they are prevented from signing in. + * Workspaces: The workspaces the user belongs to - 1. In the navigation sidebar on the left side of the page, click on the **Admin** tab. - 2. Click on the **Users** tab. - 3. Click on the ellipses (three-dot) icon to the right of the user you want to make the super admin. - 4. In the auth_user table, click the **Edit** button. - 5. Set the field called `is_staff` as true ☑︎ for a user. +## Managing user accounts -To remove a user as an Instance admin, set the field as false ☐. +Instance Admins can perform administrative actions on any user account. To access these options, click the **three-dot icon (⋮)** to the right of the specific user row. -![Baserow INSTANCE ADMIN][2] +### Available actions -> Note that making the user staff gives them admin access to all users, all workspaces, and the ability to revoke your own staff permissions. + * **Edit:** Modify the user's name, email address, status or admin access. + * **Change Password:** Manually reset a user's password. + * **Impersonate:** Log in *as* that user to view the instance from their perspective (useful for debugging permissions). **Note:** You cannot impersonate your own account. + * **Deactivate/Activate:** Toggle the user's ability to log in without deleting their data. When a user is marked as inactive, they are prevented from signing in. + * **Delete:** Permanently remove the user and their data from the instance. -## Search and sort the list of members +### Granting Instance Admin (Staff) privileges -Use the search bar to find vital information quickly. +You can promote a standard user to an **Instance Admin**. This grants them ""Staff"" status, giving them full control over the entire Baserow installation, including access to all workspaces and the Admin Panel itself. -Instance Admins can do a user search by name or email to narrow their search to a single person or to include more users. An Instance admin could, for instance, look for all users whose email addresses include a specific domain name. As you search, the number of search results will show up in the search bar. +1. Locate the user in the list. +2. Click the **three-dot icon (⋮)** and select **Edit**. +3. Check the box labeled **is\_staff**. +4. Click **Save**. -![enter image description here][3] +> **Warning:** Making a user ""Staff"" gives them the ability to revoke *your* permissions. Only grant this to trusted system administrators. -By clicking on any of the column names in the Members page's header, you can sort the results of the member's query. +![Granting Instance Admin Baserow privileges][3] -- **Name** - Alphabetically (▴) or reverse alphabetically (▾) sort users' names. -- **Username** - Alphabetically (▴) or reverse alphabetically (▾) sort users' email addresses. -- **Last login** - Most recent (▴) or oldest login date (▾). -- **Signed up** - Most recently joined (▴) or oldest joined date (▾). -- Active - Show Active first (▴) or show deactivated users first (▾). +## Deactivating vs. deleting users -![enter image description here][4] +It is important to choose the right action when removing a user's access. -## Permanently delete a user +| Feature | Deactivate User | Delete User | +| :--- | :--- | :--- | +| **Login access** | Blocked immediately. | Blocked immediately. | +| **User data** | Retained. | **Permanently deleted.** | +| **Re-registration** | The email remains ""taken"" so they cannot sign up again. | The email is free; a new account can be created with it. | +| **Workspaces** | User remains a member (inactive). | User is removed; workspaces remain unless they were the sole member. | +| **Recovery** | Can be reactivated anytime. | **Impossible.** Data cannot be recovered. | -A user account can be deleted from the User page in the Admin Panel. +**Recommendation:** Use **Deactivate** for offboarding employees to prevent them from re-signing up with the same email. Use **Delete** only for GDPR compliance or removing spam accounts. -Instance Admins can permanently delete a user by clicking the ellipses (three-dot) icon to the right of the page. By clicking this button, options for that user will appear. +Learn more: [Remove a workspace member from a specific workspace][4] -After clicking the “Permanently delete” button, a pop-over will display asking you to confirm that you would like to delete the user. +## Sorting and searching -![enter image description here][5] +As your instance grows, finding specific users becomes necessary. You can use the search bar to filter by **Name** or **Email (Username)**. -## FAQs +You can also sort the list by clicking on the column headers: -### What happens when a user is deleted? + * **Name/Username:** Sort alphabetically (A-Z or Z-A). + * **Last Login:** Identify dormant accounts by sorting by the oldest login. + * **Signed up:** See your newest members. + * **Active:** Group all deactivated users together. -When a user is deleted from the User page of the Admin panel, the account is permanently deleted and cannot be recovered. The [default grace delay period](/user-docs/admin-panel-settings#user-deletion-grace-delay) does not apply. +## Frequently Asked Questions (FAQ) -### What happens to a user's workspace when they are deleted? +### What happens to a workspace if I delete the user? -When a user is deleted, the workspaces that the user is a member of will continue to exist. The workspace will not be deleted, even if the deleted user is the last member in the workspace. However, deleting the last user in a workspace will prevent anyone from accessing that workspace. +When a user is deleted, the workspaces they belonged to are **not** deleted. The workspace continues to exist for other members. However, if the deleted user was the *only* member of that workspace, the workspace will become inaccessible (orphaned) because no one else has permission to open it. -### Can a deleted user sign up using the same email address? +### Can a deleted user sign up again? -After deleting a user, it's possible for a new user to sign up using the same email address. To prevent this, it's recommended to deactivate the user instead of deleting them. This ensures that the deleted user cannot sign up again using their previous email address. +Yes. Because the account record is permanently wiped, the email address is no longer recognized by the system. The user can create a brand new account using that same email address. To prevent this, you should **Deactivate** the user instead. -### What is the difference between deleting a user and revoking workspace access? +### What is the difference between ""Revoking Workspace Access"" and ""Deleting a User""? -It's important to understand the differences between [removing users from a workspace][6], table, or database and permanently deleting a user account from a self-hosted instance. + * **Revoking Workspace Access:** [Removing a workspace member][4] is done inside a Workspace. The user loses access to that specific workspace but can still log in to Baserow and access other workspaces. + * **Deleting a User:** Done in the Admin Panel. The user loses access to the entire Baserow server, and their account is destroyed. -In the SaaS hosted and self-hosted versions, admins can remove a member from a workspace, table, or database. Removing a user from a workspace, table, or database means their access to that specific application is revoked, but their account remains unaffected. +### Can I recover a deleted user? -In the self-hosted version, Instance Admins have the ability to permanently delete a user from the entire self-hosted instance. This means that when a user is deleted from the User page in the Admin panel, their account is permanently removed and cannot be recovered. +No. The standard ""grace delay period"" for user deletion does not apply in the Admin Panel. Deletion is immediate and permanent. ## Related content - - [Enterprise admin panel][7]. - - [Admin panel - Workspaces][7]. - - [Admin panel - Audit logs][8]. - - [Admin panel - Settings][9]. - - [Activate Enterprise license][10]. + * [Baserow Admin Panel Overview](https://www.google.com/search?q=/user-docs/admin-panel-overview) + * [Managing Workspaces](https://www.google.com/search?q=/user-docs/admin-panel-workspaces) + * [Audit Logs](https://www.google.com/search?q=/user-docs/admin-panel-audit-logs) + * [Baserow Security Settings](https://www.google.com/search?q=/user-docs/admin-panel-settings) --- - - -Still need help? If you're looking for something else, please feel free to make recommendations or ask us questions—we’re ready to assist you. +Still need help? If you're looking for something else, please feel free to make recommendations or ask us questions; we’re ready to assist you. -   [Ask the Baserow community](https://community.baserow.io) +- [Ask the Baserow community](https://community.baserow.io) +- [Contact support](/contact) for questions about Baserow or help with your account. -   [Contact support](/contact) for questions about Baserow or help with your account. + [1]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/be64f14a-826a-418f-a634-1a1bc462c5d3/Manage%20Users%20(Admin%20Panel).jpg + [2]: https://baserow.io/user-docs/enterprise-admin-panel + [3]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/f61ec39f-696f-43a8-98fb-ba5b8938ebc6/Granting%20Instance%20Admin%20(Staff)%20privileges.jpg + [4]: https://baserow.io/user-docs/remove-a-user-from-a-workspace",hosting,baserow_user_docs,https://baserow.io/user-docs/admin-panel-users +119,Instance-wide workspaces,admin-panel-workspaces,Manage workspaces in the admin panel,"# Manage workspaces at instance-level - [1]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/680319a2-dedf-4aea-a9b2-6af47bd721f5/Screenshot_2023-01-05_at_18.18.39.png - [2]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/e831ef8a-37a3-400c-b4f3-a71faf60fbe4/Screenshot%202023-09-29%20at%2014.27.52.png - [3]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/fc5b0cf1-d490-42f3-b236-1e1e288af642/Screenshot_2023-01-05_at_17.56.45.png - [4]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/f5fe322f-5823-4615-815a-5f31ec431ca5/Screenshot_2023-01-05_at_18.12.16.png - [5]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/9fae1986-b187-4f1a-acc9-f8e1ba2667bd/Screenshot_2023-01-06_at_10.36.52.png - [6]: /user-docs/remove-a-user-from-a-workspace - [7]: /user-docs/admin-panel-workspaces - [8]: /user-docs/admin-panel-audit-logs - [9]: /user-docs/admin-panel-settings - [10]: /user-docs/activate-enterprise-license",,baserow_user_docs,https://baserow.io/user-docs/admin-panel-users -119,Admin - All workspaces,admin-panel-workspaces,Manage Baserow workspaces in the admin panel,"# Baserow admin panel: Workspaces +The **Workspaces** page in the Admin Panel allows Instance Admins to oversee all workspaces created across the entire self-hosted instance, regardless of privacy settings. -Instance admins can manage and view data about the workspaces connected to their organization on the Workspaces tab of the Admin Panel. [Learn more about creating a workspace in this support article.](/user-docs/setting-up-a-workspace) +> This feature is available to [**Instance Admins** (Staff)][1] on self-hosted plans. -> Instance-wide Admin panel is an Enterprise-level feature. [Refer to this support article](/user-docs/enterprise-license-overview) to learn more about our Enterprise plan and the additional features it provides. -> +## Overview -Only Instance administrators have access to the Baserow Admin panel. Instance Admins have admin access to the entire self-hosted instance. +The Workspaces page provides a high-level governance view, allowing administrators to audit usage and remove abandoned or non-compliant workspaces. -The information and options on the Workspaces home page allow Instance admins to: +To access this page, open the [Admin Panel][2] and navigate to **People -> Workspaces** in the sidebar. -- View all the current workspaces that exist within the organization -- Search for a particular workspace -- See the members in a workspace. The ability to add users to a workspace exists on the Members page of the workspace. Learn how to [invite members to a workspace](/user-docs/assign-roles-to-members-at-workspace-level#invite-members-to-a-workspace). -- View the number of applications in each workspace -- View the date that the workspace was created -- Delete the workspace +From this dashboard, Instance Admins can view the following metadata for every workspace: -![enter image description here][1] + * **Name:** The display name of the workspace. + * **Applications:** The number of databases or apps contained within. + * **Members:** The count of members with access to the workspace. + * **Created:** The date the workspace was originally established. + * Free users + * **Seats taken, Row count, Storage Used**: Calculated nightly when the track workspace usage setting is enabled ## Searching and sorting -From the Workspaces home page, Instance admins can search for workspaces by their workspace name. Additionally, workspaces can be sorted by: +Administrators often use this page to clean up their instance. You can use the search bar to find workspaces by name, or use the column headers to sort the data for specific auditing tasks. -- **Workspace name** - Alphabetically (▾) or reverse-alphabetical order (▴) -- **Applications** - Least number of applications (▾) or most (▴) -- **Date created** - Oldest created workspaces (▾) or most recently created (▴) +| Sort By | Direction | Admin Use Case | +| :--- | :--- | :--- | +| **Workspace Name** | A-Z / Z-A | Locate a specific team or project quickly. | +| **Applications** | Low to High | Identify empty workspaces (0 apps) that can be deleted to save space. | +| **Applications** | High to Low | Identify the heaviest power-users on your instance. | +| **Date Created** | Old to New | Find legacy or abandoned projects that may no longer be needed. | -To sort, click the header column that you would like to sort by: +You can also sort by Row count and Storage Used. -![enter image description here][2] +## Deleting a workspace -## Delete a workspace +Instance Admins have the authority to permanently delete any workspace on the server, even if they are not a member of that workspace. -Instance Admins can permanently delete a workspace by clicking the ellipses (three-dot) icon to the right of the page. By clicking this button, an option for deleting that workspace will appear. +1. Locate the workspace in the list. +2. Click the **three-dot icon (⋮)** on the right side of the row. +3. Select **Permanently delete**. +4. Confirm the action in the pop-up window. -After clicking the “Permanently delete” button, a pop-over will display asking you to confirm that you would like to delete the workspace. +> **⚠️ Warning:** Deleting a workspace is **permanent** and immediate. This action will delete all databases, tables, applications, and uploaded files contained within that workspace. This data cannot be recovered unless you have a server-level backup. -![enter image description here][3] +## Frequently Asked Questions (FAQ) +### Can I enter a workspace from this page? ---- +No. This page is for high-level governance (viewing metadata and deleting). To view or edit the *data* inside a workspace, you must be [added as a member of that workspace][3]. If you are an Instance Admin, you can navigate to the main dashboard and ask the workspace owner to invite you, or [create a new workspace][4] yourself. - +### Can I add members to a workspace from the Admin Panel? -Still need help? If you're looking for something else, please feel free to make recommendations or ask us questions—we’re ready to assist you. +No. [Managing specific members][5] is done at the Workspace level, not the Admin Panel level. You must go to the specific workspace's **Settings -> Members** page to invite or remove users. The Admin Panel only shows the *count* of users. -   [Ask the Baserow community](https://community.baserow.io) +### Does deleting a workspace delete the users inside it? + +No. Deleting a workspace only removes the container and the data (databases/apps). The user accounts that were members of that workspace remain active on the instance and can continue working in other workspaces. + +## Related content -   [Contact support](/contact) for questions about Baserow or help with your account. + * [Baserow Admin Panel Overview](/user-docs/admin-panel-overview) + * [Manage Users](/user-docs/admin-panel-users) + * [Setting up a Workspace](/user-docs/setting-up-a-workspace) + * [Audit Logs](/user-docs/admin-panel-audit-logs) - [1]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/18a84303-e8b8-4ee0-a642-54d9915c158b/Screenshot_2023-01-05_at_18.42.45.png - [2]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/76b3eee4-c7d8-4f8a-b3e0-1521eda0b2dc/Screenshot_2023-01-05_at_18.35.28.png - [3]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/afa04bbb-63f4-4d6a-8c8e-06ba15368da9/Screenshot_2023-01-05_at_18.49.14.png",,baserow_user_docs,https://baserow.io/user-docs/admin-panel-workspaces + + [1]: https://baserow.io/user-docs/admin-panel-users + [2]: https://baserow.io/user-docs/enterprise-admin-panel + [3]: https://baserow.io/user-docs/manage-workspace-permissions + [4]: https://baserow.io/user-docs/setting-up-a-workspace + [5]: https://baserow.io/user-docs/working-with-collaborators",workspace,baserow_user_docs,https://baserow.io/user-docs/admin-panel-workspaces 120,Audit logs,admin-panel-audit-logs,Baserow: View audit logs,"# Audit log Audit logs track every action performed in your Baserow workspaces, providing complete visibility into who did what, when, and from where. @@ -13618,7 +13655,7 @@ Audit log availability and scope vary by plan and deployment type: ## Workspace-level audit logs -**Choose workspace-level when:** You're a workspace admin monitoring your team, you only need visibility into one workspace, or you're on the Cloud Advanced plan. +**Choose workspace-level when:** You're a workspace admin monitoring your team, you only need visibility into one workspace, or you're on the Cloud Advanced plan. 1. Open the workspace you want to audit 2. Click **Audit log** in the workspace sidebar @@ -13687,7 +13724,7 @@ Download audit logs as CSV files for long-term storage, compliance reporting, or Exported CSV files include these columns: - **User Email** - Who performed the action - **User ID** - Numeric user identifier -- **Workspace Name** - Affected workspace (Instance-level audit logs) +- **Workspace Name** - Affected workspace (Instance-level audit logs) - **Workspace ID** - Numeric workspace identifier (Instance-level audit logs) - **Action Type** - Type of operation performed - **Description** - Detailed action description @@ -13814,230 +13851,340 @@ Still need help? If you're looking for something else, please feel free to make [1]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/52a27909-ccd0-42ac-8590-dfd403664a84/Admin%20settings%20-%20audit%20log.jpg [2]: https://baserow.io/docs/installation%2Fconfiguration#backend-misc-configuration",,baserow_user_docs,https://baserow.io/user-docs/admin-panel-audit-logs -121,Admin settings,admin-panel-settings,Baserow admin panel settings for instance control,"# Baserow instance settings in the admin panel - -Instance Admins can control two fundamental aspects of their organization's Baserow account on the Settings page of the Admin Panel: account restrictions and user deletion. +121,Global instance settings,admin-panel-settings,Baserow admin panel settings for instance control,"# Configure global instance settings -> Instance-wide Admin panel is an Enterprise-level feature. [Refer to this support article](/user-docs/enterprise-license-overview) to learn more about our Enterprise plan and the additional features it provides. -> +The **Settings** page in the Admin Panel allows Instance Admins to configure global behavior, security restrictions, and branding for their self-hosted Baserow instance. -Instance Admins have admin access to the entire self-hosted instance. The controls in this section help to manage your organization's security protocols. Note that the first user to create an account in a new self-hosted instance will be the admin user for that instance. +> This feature is available to **Instance Admins** (Staff) on self-hosted plans. Some specific settings (like Co-branding) may require an Enterprise license. ## Overview -The admin settings can be found by clicking on the workspace selection menu. +The Settings page is the control center for defining how users interact with your server, from how they sign up to how they verify emails, to what logo they see. -Click on the Settings option in the Admin Panel's navigation sidebar to navigate to the **Settings** page. This will bring up a page with settings options. +To access this page, open the [Admin Panel][1] and navigate to **General -> Settings** in the sidebar. -When **Verify import signature** is enabled, the signature of the imported data is verified to ensure the data has not been tampered with. +The settings are organized into five logical sections: -![enter image description here][1] +1. **Admin Settings:** General instance identification. +2. **Account Restrictions:** Sign-up and password policies. +3. **User:** Verification and deletion retention policies. +4. **Maintenance:** Background jobs. +5. **Branding:** Custom logos and help links. -## Account restrictions +![Admin settings Baserow][2] -The “Account restrictions” section allows Instance admins to control who can gain access to your organization. This setting can be adjusted by clicking the toggle to enable or disable. +## Admin settings (General) -### Allow creating new accounts +This top section displays the fundamental identity of your installation. -By default, any user visiting your Baserow domain can sign up for a new account. This setting allows Instance admins to prevent users from inviting non-users to sign up for a new account. + * **Instance ID:** A unique string identifying your specific Baserow copy. You may need to provide this when contacting Baserow support. + * **Baserow Version:** The current software version you are running. + * **Verify Import Signature:** + * **Enabled (Default):** Verifies the digital signature of any imported data to ensure it has not been tampered with during transfer. + * **Disabled:** Skips signature verification. *Only disable this if you are troubleshooting specific import issues with trusted data.* -After [setting up a self-hosted Baserow instance](/docs/index#installation), It may be important to restrict premium access or allow non-members to view the data for a licensed workspace. You can disable the ability to sign up for a new account on the self-hosted instance URL. +## Account restrictions -To disable sign-up on self-hosted Baserow instance: Admin → Settings → Allow creating new accounts → Toggle off. +The “Account restrictions” section allows Instance admins to control who can gain access to your organization. This setting can be adjusted by clicking the toggle to enable or disable. Control who can access your instance and how they manage their credentials. -### Allow signups via workspace invitations +### Allow creating new accounts -If you toggle off the **Allow creating new accounts** option, the “Allow signups via workspace invitations” option will appear. Instance Admins can use this setting to prevent or allow users to invite other users from outside your Enterprise domain. + * **Enabled:** Any visitor to your Baserow domain URL can sign up for a new account. + * **Disabled:** The sign-up page is hidden. New users can only be added if an existing admin sends them a direct email invitation. This is useful for private internal tools where you do not want public registration. -Toggling this option on means that only directly invited users can create an account, so only members with workspace admin roles can invite users. For instructions on how to invite users to a workspace, [see this support article](/user-docs/manage-workspace-permissions). +### Allow signups via workspace invitations -> Note that even if the creation of new accounts is disabled, this option permits directly invited users to still create an account. -> +Only visible if ""Allow Creating New Accounts"" is disabled. If you toggle off the **Allow creating new accounts option**, the “Allow signups via workspace invitations” option will appear. Instance Admins can use this setting to prevent or allow users to invite other users from outside your Enterprise domain. -![enter image description here][2] + * **Enabled:** A user invited to a workspace via email can create an account to accept the invite, even if public sign-ups are closed. + * **Disabled:** Even invited users cannot create accounts. You must manually create accounts for them. ### Allow resetting password -By default, users can reset their passwords. The last option in the Account restrictions section allows Instance admins to restrict users from requesting a password reset link. - -> Please keep in mind that if you disable this option, you risk locking yourself out of the system and losing access to your account if you forget your password. -> - -![enter image description here][3] + * **Enabled:** Users can request a ""Forgot Password"" email link. + * **Disabled:** The ""Forgot Password"" link is removed. Users must contact an Instance Admin to manually reset their credentials. + > **Warning:** If you disable this and forget your own admin password, you may lock yourself out of the instance. ### Allow everyone to create new workspaces -With this setting enabled, new users will have a workspace automatically created for them where they are Workspace Admins. For billing purposes, they will be reported as Admin. Learn more about [Who is considered a “user” for billing purposes](/user-docs/subscriptions-overview#who-is-considered-a-user-for-billing-purposes) in this support article. + * **Enabled:** Any user can create a new workspace. Note that creating a workspace automatically makes that user a ""Workspace Admin."" + * **Disabled:** Only **Staff (Instance Admins)** can create new workspaces. This is useful for tighter control over data sprawl and billing (since Workspace Admins are often counted differently in some license models). -To prevent this, disable this setting. This will only allow staff to create new workspaces. Newly invited users will only start with the role they were invited with. +## User settings -![enter image description here][4] +Configure how user identities are verified and retained. -## Email verification +### Email verification -Email verification is a security measure that confirms the legitimacy of email addresses associated with Baserow accounts. This helps to prevent unauthorized access and ensures you're collaborating with the intended users. +Controls whether a user must prove they own their email address before logging in. -![Email verification][5] + * **No Verification:** Users can log in immediately after sign-up. (Fastest onboarding, lowest security). + * **Recommended:** This option encourages users to verify their email address, but doesn’t make it mandatory for initial use. + * **Enforced:** Users **cannot** log in until they click the link sent to their email. (Highest security). -### Email verification levels +![Baserow Email verification image](https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/257926a7-b4d7-499e-bfd4-8d30fce31e4c/Email%20verification.png) -Baserow offers three email verification levels, allowing you to customize the verification requirement for your [collaborators][6]: +### Delete grace delay - - **No verification**: Users can begin using Baserow immediately upon registration, without needing to verify their email address. This option offers the quickest onboarding experience but provides the least security. It's suitable for low-risk workspaces with a high level of trust among collaborators. - - **Recommended verification**: This option encourages users to verify their email address but doesn't make it mandatory for initial use. - - **Enforced verification**: Upon registration, a verification link is sent to the user's email address. Verifying this email is essential to start using Baserow. This option prioritizes security and ensures all collaborators have valid email addresses. It's ideal for workspaces handling sensitive information. +When a user deletes their own account, Baserow keeps the data in a ""soft delete"" state for a set period before permanent removal. -### Configure email verification +The default grace delay period is 30 days. Instance Admins can adjust this period in the [User Deletion section][3]. -Only Baserow instance admins can modify the email verification setting. Here's how to configure it: +> This only applies to users deleting *themselves*. If an Admin deletes a user from the **Users** page, deletion is immediate. - 1. Navigate to the [Admin Panel][7] → Settings. - 2. Scroll down to the User section → Email Verification setting. - 3. Choose your preferred verification level from the available options. +## Maintenance -Once configured, the chosen verification level will apply to all new user registrations within your Baserow instance. +### Track workspace usage -## User deletion grace delay +This enables a nightly job that automatically tracks workspace usage. The job calculates the total number of rows and files used within each workspace. This data is then displayed on the premium workspace admin page, providing insights into workspace activity. -When you delete an account in Baserow, that account will remain on Baserow for a retention period before it's permanently deleted. +This data populates the ""Usage"" columns in the **Workspaces** list, helping admins spot heavy users. -The default grace delay period is 30 days. Instance Admins can adjust this period in the User deletion section. +If enabled, it runs a nightly background job that counts the total rows and file storage used by each workspace. -Grace delay is the number of days without a login after which an account scheduled for deletion is permanently deleted. +## Branding -> Note that the default grace delay period only applies when an [account is scheduled for deletion from the user’s account settings](/user-docs/delete-your-baserow-account). It does not apply when the [user is permanently deleted from the User page of the Admin panel](/user-docs/admin-panel-users#permanently-delete-a-user). -> +Customize the look and feel of the platform to match your organization's identity. Baserow provides a co-branding option for [Enterprise plan users][4]. This feature allows you to upload your logo and tailor Baserow's appearance to align with your company's brand. -![enter image description here][8] +### Show help message -## Track workspace usage (Maintenance) + * **Enabled:** Displays the ""Need Help?"" button on the dashboard, linking to Baserow support. + * **Disabled:** Hides the help button. -This enables a nightly job that automatically tracks workspace usage. The job calculates the total number of rows and files used within each workspace. This data is then displayed on the premium workspace admin page, providing insights into workspace activity. +### Custom logo -If enabled, usage data is displayed on the premium workspace admin page. +Upload a custom image file (recommended size: 176x29 pixels) to replace the Baserow logo. -If not enabled, no workspace usage data is collected or displayed on the admin page. +This appears on the login screen, top navigation bar, and the footer of system emails. -## Co-branding for enterprises +> Setting a logo also removes the ""Powered by Baserow"" text from email footers. -Baserow provides a co-branding option for Enterprise plan users. This feature allows you to upload your logo and tailor Baserow's appearance to align with your company's brand. +![Co-branding in Baserow](https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/9cebfa8b-046f-4ea0-b784-9b2f433e3bf9/Co-branding%20for%20enterprises.png) -### What gets branded? +## Frequently Asked Questions (FAQ) -Your logo will be displayed prominently across various locations, for example: +### If I disable ""Allow Creating New Accounts,"" how do I add my team? - - Email header: Emails sent from Baserow will feature your logo at the top, reinforcing your brand identity in every communication. - - Sidebar: Your logo will be displayed in the bottom left corner of the Baserow sidebar, providing continuous brand visibility. - - Publicly shared views: When you [share a Baserow view publicly][9], your logo will be displayed, ensuring your brand recognition even outside your organization. - - Publicly shared forms: Similar to publicly shared views, your logo will be incorporated into any forms you make public. +You have two options: -and other locations where the logo is displayed. +1. Enable **""Allow signups via workspace invitations""** and simply invite them to a workspace. They will be prompted to create an account to accept. +2. Or, keep invitations disabled and manually create their user accounts via the command line, though method \#1 is significantly easier. -![Enterprise co-branding in Baserow][10] +### Why is the ""Branding"" section grayed out? -To upload a custom logo: +Co-branding is an **Enterprise** feature. You must have an [active Enterprise license key][4] uploaded in the **Licenses** tab to unlock these settings. - 1. Navigate to the Admin Panel: Click on the Admin → Settings. - 2. Access branding options: On the Admin Settings page, scroll down to the ""Branding"" section. - 3. Upload your logo: Locate the Logo category within the branding section. Here, you can upload your desired company logo to replace the Baserow logo with your custom alternative. +### What happens if I lock myself out by disabling password resets? -## Baserow health checks +If you are the only admin and you forget your password while resets are disabled, you will need to access the server terminal and use the Baserow command line interface (CLI) to manually reset your password or create a new admin user. -These checks show the current status of your Baserow installation. +## Related content -You can [add a target email tester][11], and click a button to throw an error as a tester. + * [Baserow Admin Panel Overview](/user-docs/enterprise-admin-panel) + * [Manage Users](/user-docs/admin-panel-users) + * [Upload a License Key](/user-docs/get-a-licence-key) + * [Enterprise Plan Features](/user-docs/enterprise-license-overview) --- - - -Still need help? If you're looking for something else, please feel free to make recommendations or ask us questions—we’re ready to assist you. +Still need help? If you're looking for something else, please feel free to make recommendations or ask us questions; we’re ready to assist you. - [Ask the Baserow community](https://community.baserow.io) - [Contact support](/contact) for questions about Baserow or help with your account. - [1]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/e27b5db3-a72a-4383-831a-95d504c16e05/Screenshot_2023-01-06_at_09.19.22.png - [2]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/04da95b5-d442-4a60-ba5e-8e14bd0b36af/Screenshot_2023-01-06_at_09.28.34.png - [3]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/2127c0f1-1a7b-4f2d-9497-0e19768f8487/Screenshot_2023-01-06_at_09.38.31.png - [4]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/d6c4767e-a290-490a-aeb0-0cd13b0831d4/Screenshot_2023-01-13_at_09.33.10.png - [5]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/257926a7-b4d7-499e-bfd4-8d30fce31e4c/Email%20verification.png - [6]: /user-docs/managing-workspace-collaborators - [7]: /user-docs/enterprise-admin-panel - [8]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/7afc9b19-28d7-46b5-883c-6ad211fcc956/Screenshot_2023-01-06_at_10.29.58.png - [9]: /user-docs/public-sharing - [10]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/9cebfa8b-046f-4ea0-b784-9b2f433e3bf9/Co-branding%20for%20enterprises.png - [11]: https://baserow.io/docs/installation%2Fconfiguration#email-configuration",,baserow_user_docs,https://baserow.io/user-docs/admin-panel-settings -122,Admin dashboard,enterprise-admin-panel,Baserow Enterprise admin panel overview,"# Baserow Enterprise admin panel + [1]: https://baserow.io/user-docs/enterprise-admin-panel + [2]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/22c5f054-1421-425a-830e-1e8afc83d553/Admin%20settings.jpg + [3]: https://baserow.io/user-docs/admin-panel-users + [4]: https://baserow.io/user-docs/activate-enterprise-license",hosting,baserow_user_docs,https://baserow.io/user-docs/admin-panel-settings +122,Admin panel,enterprise-admin-panel,Baserow admin panel overview,"# Admin Tools overview -The Admin Panel is a centralised interface for Instance admins to manage the Enterprise account for their organization. +The Admin Panel is the central control hub for self-hosted Baserow instances. It allows instance administrators to monitor server health, manage users and workspaces, and configure global settings from a single interface. -Instance admins can actively maintain authentication and manage user and workspace access using a variety of tools in the Admin Panel. Only Instance administrators have access to the Baserow Admin panel. An Instance Admin is the account that installs and sets up Baserow and has staff privileges. +This guide covers Baserow's Admin Tools interface for self-hosted instances, including dashboard metrics, health checks, user management, and system settings. -This support article will help Instance admins understand and manage Baserow's use in their organisation. +## Overview -> This is an Enterprise-only feature. If you are interested in learning more about our Enterprise plan and the additional features that it offers, then [visit this page][1]. -> +The Baserow Admin Panel gives instance administrators complete visibility and control over their self-hosted environment, regardless of license plan. -## Overview of the Admin Panel +Admin Tools is the centralized management interface for self-hosted Baserow instances, giving Instance Admins control over users, workspaces, authentication, system health, and licensing without needing to access the server command line. -Instance admins have access to a high-level of the functions from the Admin Panel. In general, you can: +It is available on all self-hosted Baserow installations. Admin Tools provides visibility into instance usage, system status, and administrative controls. Only Instance Admins can access Admin Tools; regular users don't see this option in their interface. -- Delete or deactivate users and workspaces associated with their Enterprise account -- View user activity and other data point reports. -- Set account restrictions and authentication settings for their organisation -- View an organization's complete list of licenses. +From this panel, Instance Admins can: -## Navigating to the Admin Panel + * Monitor system health and server configurations. + * Manage user accounts, workspaces, and licenses. + * Configure authentication methods (SSO). + * View global audit logs and activity reports. -Before proceeding, make sure you have the ""Staff"" access required to access the Admin Panel. +> While the Admin Panel is available to all self-hosted instances, specific tabs within the panel (such as [instance-wide Audit Logs][1] or [Authentication][2]) may be locked depending on your [active license plan][3]. -Login to your Baserow server as an Instance admin. In the navigation sidebar on the left side of the page, Instance admins will see the “Admin” option. This will take you to the Dashboard page. +![Baserow Admin dashboard][4] -![enter image description here][2] +## Accessing the Admin Panel -## Admin Panel pages +To access the Admin Panel, you must be an **Instance Admin** with ""Staff"" privileges. This is typically the account created during the initial installation of Baserow. -To manage and view information about usage and access from the Admin Panel, click 'Admin' in the sidebar to view pages with important data. Learn how to use the information and options on these pages. +1. Log in to your self-hosted Baserow instance. +2. Click your workspace in the top left corner of the sidebar. +3. Select **Admin tools** from the menu. -- **Dashboard**: This information is useful when you need to delve into data and uncover valuable insights. +## Admin Panel Sections - The Admin panel's Dashboard page displays data about workspaces, applications, users, user activity, and more. Instance Admins can view everything from information about the total number of users, workspaces and applications associated with the organization’s Enterprise plan, to more specifics about new and active users. +The sidebar is organized into three logical sections: **General**, **People**, and **Licenses**. - ![enter image description here][3] +### General -- **[Users][4]**: The Users page of the Admin Panel lets Instance admins manage and view information about Baserow users from the organization. -- **[Workspaces][5]**: Instance admins can manage and view data about the workspaces connected to their organization on the Workspaces tab of the Admin Panel. -- **[Authentication][6]**: Baserow Single Sign On (SSO) allows Instance admins to have control over user authentication. To learn more about configuring your organization’s SSO settings, please [refer to this support article](https://baserow.io/user-docs/single-sign-on-sso-overview). -- **[Audit Logs][7]**: The audit log keeps track of every action performed in your Baserow instance. You can have complete visibility into what you and your collaborators have been working on. -- **[Settings][8]**: Instance Admins can control two fundamental aspects of their organization’s Baserow account on the Settings page of the Admin Panel: account restrictions and user deletion. -- **[Licenses][9]**: The Admin Panel enables Instance admins to create access rules and keep an overview of every user license in the company. + * **Dashboard:** The overview page with a high-level snapshot of your instance's usage and activity. + * **[Authentication][2]:** Manage login methods, including Email/Password and Single Sign-On (SSO) providers (e.g., Google, Facebook, OpenID, SAML). + * **[Audit Log][1]:** A comprehensive chronological record of all actions performed across the instance. Useful for security and compliance. + * **[Settings][5]:** Configure global instance settings, such as allowing new user sign-ups or enabling/disabling account deletion. + * **Health:** Insights into the technical status of your installation. +### People ---- +Who is an Instance Admin? The first user who signs up on a self-hosted Baserow instance automatically becomes an Instance Admin with ""staff"" privileges. Additional Instance Admins can be designated through the Admin Tools interface. - + * **[Users][6]:** View a complete list of all users registered on your instance. You can search for specific users, view their last login date, or deactivate/delete accounts. + * **[Workspaces][7]:** View all workspaces existing on the instance. This allows admins to identify abandoned workspaces or oversee storage limits. -Still need help? If you're looking for something else, please feel free to make recommendations or ask us questions—we’re ready to assist you. +Learn now to [make someone an Instance Admin][6] + +### Licenses + + * **[Manage Licenses][8]:** View your current plan, upload new license keys, and check expiration dates. + +Learn more: [Purchase and install licenses][9] + + +## Dashboard + +Upon opening the Admin Panel, the first page is the **Dashboard**. This provides a high-level snapshot of your instance's usage and activity. + +### Usage metrics + +The dashboard displays real-time counters to help you track adoption: + +| Metric Category | Data Points | +| :--- | :--- | +| **Totals** | Total users, Total workspaces, Total applications | +| **New Users** | Sign-ups in the last 24 hours, 7 days, and 30 days | +| **Active Users** | Active sessions in the last 24 hours, 7 days, and 30 days | + +## Health status + +The **Health** page offers critical insights into the technical status of your installation. It runs automated checks to ensure your services are communicating correctly. + +### System checks + +The page displays the status (Pass/Fail) of the following components: + + * **Cache Backend:** Checks default, generated models, and throttling caches. + * **Database Backend:** Verifies connection to the PostgreSQL database. + * **Redis:** Verifies connection to the Redis queue. + * **Celery:** Checks the asynchronous task queue (Ping, Queue size, Export queue size). + * **Storage:** Verifies disk usage and S3/MinIO connection (if configured). + * **Configuration:** Checks Debug mode status and migration health. + +### Testing tools + +The Health page also includes manual triggers to verify system responsiveness: + + * **Email Tester:** Sends a test email to a target address to verify SMTP settings. + * **Error Tester:** Intentionally triggers a backend error to test logging and alerting configurations. + +## Frequently Asked Questions (FAQ) + +### Who can access the Baserow Admin Panel? + +Only users with **Staff** (Instance Admin) privileges on a self-hosted instance can access the panel. Workspace Admins do not have access to these server-level settings. + +### Is the Admin Panel available on the free plan? + +Yes. The Admin Panel interface is available to all self-hosted versions (Baserow Open Source). However, specific features inside the panel, such as [instance-wide Audit Logs][1] or [Authentication][2], require a license. + +### What should I do if a Health Check fails? + +If a check like **Redis** or **Celery** fails, it usually indicates a service is down or misconfigured in your Docker or server environment. Check your server logs for connectivity errors between the Baserow container and the failing service. + +### What's the difference between Instance Admin and Workspace Admin? + +- **Instance Admin:** System administrator managing the entire self-hosted Baserow installation (all users, workspaces, settings) +- **Workspace Admin:** User managing a specific workspace (members, permissions, databases within that workspace) + +Instance Admins have access to Admin Tools; Workspace Admins do not. + +### Can I access Admin Tools on Baserow.io cloud? + +No. Admin Tools is exclusively for self-hosted installations. Cloud users on Baserow.io manage their workspaces through standard workspace settings; they don't have access to instance-level administration. + +## Troubleshooting + +### Cannot see Admin option in sidebar + +This is because you don't have Instance Admin (""staff"") privileges. Contact the person who originally set up your self-hosted Baserow instance. The first user who signs up is automatically an Instance Admin. + +### Health checks showing red status + +This is because of infrastructure issues with service (database, Redis, storage, etc.). Note which specific check is failing, review logs for that service, verify the service is running and accessible, and check network connectivity between Baserow and the service. Restart affected services if needed -   [Ask the Baserow community](https://community.baserow.io) +### Email tester not sending emails -   [Contact support](https://baserow.io/contact) for questions about Baserow or help with your account. +This is because the email configuration is incorrect or the SMTP server is unreachable. - [1]: /user-docs/enterprise-license-overview - [2]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/e474c2cf-7e77-4abf-82d1-f444deb57b36/Screenshot_2023-01-05_at_16.16.33.png - [3]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/c1124a18-d686-48af-8755-6166dad58588/Screenshot_2023-01-19_at_18.04.37.png - [4]: /user-docs/admin-panel-users - [5]: /user-docs/admin-panel-workspaces - [6]: /user-docs/single-sign-on-sso-overview - [7]: /user-docs/admin-panel-audit-logs - [8]: /user-docs/admin-panel-settings - [9]: /user-docs/get-a-licence-key",,baserow_user_docs,https://baserow.io/user-docs/enterprise-admin-panel +Verify SMTP settings in Baserow environment variables, check SMTP server credentials and connectivity, review firewall rules for SMTP port (usually 587 or 465), and test SMTP connection outside of Baserow. Check email logs for error messages + +## Related content + +**Admin Tools features:** + +- [Admin panel - Users](/user-docs/admin-panel-users) +- [Admin panel - Workspaces](/user-docs/admin-panel-workspaces) +- [Admin panel - Audit logs](/user-docs/admin-panel-audit-logs) +- [Admin panel - Settings](/user-docs/admin-panel-settings) +- [Manage licenses](/user-docs/get-a-licence-key) + +**Authentication and security:** + +- [Single Sign-On overview](/user-docs/single-sign-on-sso-overview) +- [Configure SSO](/user-docs/enable-single-sign-on-sso) + +**Plans and licensing:** + +- [Enterprise license overview](/user-docs/enterprise-license-overview) +- [Activate Enterprise license](/user-docs/activate-enterprise-license) +- [Baserow pricing plans](/user-docs/pricing-plans) + +**Self-hosted setup:** + +- [Self-hosted installation guide](https://baserow.io/docs/index#installation) +- [Configuration guide](https://baserow.io/docs/installation/configuration) + + +---------- + +Still need help? If you're looking for something else, please feel free to make recommendations or ask us questions—we're ready to assist you. + +- [Ask the Baserow community](https://community.baserow.io/) +- [Contact support](https://baserow.io/contact) for questions about Baserow or help with your account + + + [1]: /user-docs/admin-panel-audit-logs + [2]: /user-docs/single-sign-on-sso-overview + [3]: /user-docs/pricing + [4]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/34157e16-d75a-412d-8fbd-4bb32023177d/Admin%20dashboard.jpg + [5]: /user-docs/admin-panel-settings + [6]: /user-docs/admin-panel-users + [7]: /user-docs/admin-panel-workspaces + [8]: https://baserow.io/user-docs/getting-and-changing-the-instance-id + [9]: /user-docs/get-a-licence-key + [10]: https://baserow.io/user-docs/get-a-licence-key",hosting,baserow_user_docs,https://baserow.io/user-docs/enterprise-admin-panel 123,Install Enterprise license,activate-enterprise-license,Activate Enterprise license in Baserow self-hosted,"# Activate Enterprise license in self-hosted Baserow Activating your license is the key to unlocking enterprise capabilities. Activating your Baserow Enterprise license connects your self-hosted instance to your premium, secure, and scalable features. -This guide covers step-by-step instructions to install and activate your Enterprise license key on a self-hosted Baserow server. +This guide covers step-by-step instructions to install and activate your Enterprise license key on a self-hosted Baserow server. > This article covers how to activate an Enterprise license. [Visit this page][1] if you want to purchase a cloud subscription. [Visit this page][2] to purchase and install a Baserow self-hosted license. @@ -14056,7 +14203,7 @@ Follow these steps to get your Enterprise license and prepare your instance. ### 1. Contact sales to get license -Enterprise licenses are provided directly by the Baserow sales team. If you have not already, your first step is to purchase a license. +Enterprise licenses are provided directly by the Baserow sales team. If you have not already, your first step is to purchase a license. [Contact Baserow sales](https://baserow.io/contact-sales) to discuss your needs and purchase an Enterprise license. @@ -14081,7 +14228,7 @@ Your [Instance ID][3] uniquely identifies your self-hosted server and is require **To locate your Instance ID:** - 1. Log in to your Baserow server as an Instance Admin. + 1. Log in to your Baserow server as an Instance Admin. 2. Expand the workspace options -> **Admin tools** tab in the left sidebar 3. Click **Manage licenses** in the Admin settings page 4. Copy your **Instance ID** @@ -14095,7 +14242,7 @@ Once you receive your Enterprise license key from sales: 1. Navigate to **Admin tools** → **Manage licenses** page 2. **Remove any old licenses:** Click on expired or old licenses and remove them permanently - + > If you had a license on version 1.12.X or earlier, it will show as expired after upgrading to 1.14.0+. You must disconnect and re-register it. 3. Click **Register license** @@ -14190,197 +14337,165 @@ Still need help? If you're looking for something else, please feel free to make [1]: https://baserow.io/user-docs/buying-a-subscription [2]: https://baserow.io/user-docs/get-a-licence-key [3]: https://baserow.io/user-docs/getting-and-changing-the-instance-id",,baserow_user_docs,https://baserow.io/user-docs/activate-enterprise-license -124,Configure SSO with Azure AD,configure-sso-with-azure-ad,Baserow: Configure single sign-on with Azure AD,"# Configure Single Sign-on (SSO) with Azure AD - -This guide is intended for [Admins](/user-docs/working-with-collaborators#set-the-permission-level-for-collaborators) setting up SSO SAML with Azure AD. - -When you configure Single Sign-on (SSO) with Azure AD, your users will be able to create and sign into their Baserow accounts using Azure AD. - -If you are looking for information on setting up SSO with other providers: - -- [Configure OneLogin for SAML SSO](/user-docs/configure-sso-with-onelogin) -- [Configure Okta for SAML SSO](/user-docs/configure-sso-with-okta) -- [Configure Facebook for OAuth 2 SSO](/user-docs/configure-facebook-for-oauth-2-sso) -- [Configure GitHub for OAuth 2 SSO](/user-docs/configure-github-for-oauth-2-sso) -- [Configure GitLab for OAuth 2 SSO](/user-docs/configure-gitlab-for-oauth-2-sso) -- [Configure Google for OAuth 2 SSO](/user-docs/configure-google-for-oauth-2-sso) -- [Configure OpenID Connect for OAuth 2 SSO](/user-docs/configure-openid-connect-for-oauth-2-sso) - -> Instance-wide admin panel, SSO, Payment by invoice, Signup rules, and Audit logs are features only available for Baserow paid plans. [Get in touch with us here](/contact-sales) if you're interested in learning more about paid pricing. -> - -Here's how to set up Azure AD to sign in to your Baserow account. +124,Configure SSO with Microsoft Entra ID,configure-sso-with-azure-ad,Baserow: Configure SSO with Microsoft Entra ID (Azure AD),"# Configure SAML SSO with Microsoft Entra ID (Azure AD) -## Prerequisites +This guide explains how to configure Single Sign-On (SSO) using Microsoft Entra ID (formerly Azure AD) as your Identity Provider for Baserow. -To set up SSO SAML with Azure AD in Baserow, you need: +For other IdPs, [visit this page][1] -- A Baserow user account. If you don't already have one, you can create an account. -- Instance admin access to the entire Baserow self-hosted instance. -- An Azure AD user account with Global Administrator, Cloud Application Administrator, or Application Administrator role. +> **Feature Availability:** SSO is available on the **[Baserow Advanced and Enterprise][2]** plans. You must have a valid license activated to configure these settings. -## Create an Azure application and set up SAML SSO +## Overview -1. To add an enterprise application to your Azure AD tenant, sign in to the [Azure Active Directory Admin Center](https://aad.portal.azure.com/). -2. In the Azure portal, select **Azure Active Directory > Enterprise applications** and select **New application**. Then click **+** **Create your own application**. -3. Enter the display name for your new application, select **Integrate any other application you don't find in the gallery**, and then select **Create** to add the application. +Connecting Azure AD allows your users to log in to Baserow using their Microsoft 365 credentials. - ![Create an Azure application and set up SAML SSO][1] +The integration requires creating an ""Enterprise Application"" in the Azure Portal, mapping specific user attributes (claims), and cleaning up the Microsoft metadata XML before importing it into Baserow. -4. In the left menu of the app’s **Overview** page, select Single sign-on. -5. Select **SAML** as the single sign-on method. +> **Recommended Protocol:** We strongly recommend using **SAML 2.0** for Azure AD integrations. Using [OpenID Connect][3] (OIDC) with Azure AD is currently not recommended due to PKCE compatibility requirements. - ![Select **SAML** as the single sign-on method.][2] +## Prerequisites -6. The **Set Up Single Sign-On with SAML** page will then open. + * **Baserow:** You must be an [Instance Admin](/user-docs/admin-panel-users) on a self-hosted plan. + * **Azure:** You must have **Global Administrator**, **Cloud Application Administrator**, or **Application Administrator** permissions in your Entra ID tenant. -## Get your Baserow SSO URLs -1. In a new tab, visit your Baserow server and log in as an instance-wide admin. -2. Open the **Admin** section in the Baserow sidebar. -3. Click the **Authentication** page. -4. Click the **Add Provider** button in the top right. -5. Select SSO SAML provider. -6. In the **Add a new SSO SAML provider** modal that has opened, copy the **Single Sign on URL.** -![Add a new SSO SAML provider][3] +## Phase 1: Create the Azure Application -## Configure SAML URLs in Azure +1. Log in to the [Microsoft Entra Admin Center](https://entra.microsoft.com/) (formerly Azure AD Portal). +2. Navigate to **Entra ID -> Enterprise applications** in the side bar. +3. Click **+ New application**. +4. Click **+ Create your own application**. +5. Enter a name (e.g., `Baserow`). +6. Ensure **""Integrate any other application you don't find in the gallery (Non-gallery)""** is selected. +7. Click **Create**. +8. Once created, select **Single sign-on** from the left sidebar and choose **SAML**. -1. Go back to Azure and the **Set Up Single Sign-On with SAML** page. -2. In the first section titled Basic SAML Configuration, click the **Edit** button. -3. Paste the **Single Sign on URL** you copied from **Baserow into the top three fields:** - 1. Identifier (Entity ID) - 2. Reply URL (Assertion Consumer Service URL) - 3. Sign on URL -4. Go back to Baserow and the previously opened **Add a new SSO SAML provider** modal and now copy the **Default Relay State URL.** -5. Go back to Azure and paste the **Default Relay State URL** from Baserow into the Relay State field in Azure. -6. Leave the Logout URL empty as Baserow does not yet support single sign out. -7. Finally, click **Save** in Azure, your end result should look something like the following screenshot: +![Create the Azure Application for Baserow SSO][4] - ![Configure SAML URLs in Azure][4] +## Phase 2: Configure Baserow URLs -## Setup Azure Attributes & Claims +You need to copy specific URLs from Baserow to Azure to establish the connection. -1. Go to the second section in Azure titled Attributes & Claims, then click the **Edit** button -2. On the new Attributes & Claims page click **Add New Claim**. - 1. Type ‘user.email’ in the Name field - 2. In the Source attribute dropdown, select **user.mail** - 3. Click **Save** +1. **In Baserow:** Open a new tab, log in as Instance Admin, and go to **[Admin tools][5] -> Authentication**. +2. Click **+ Add Provider** and select **SSO SAML Provider**. +3. Copy the **Single Sign On URL** and **Default Relay State URL**. +4. **In Azure:** On the ""Set up Single Sign-On with SAML"" page, click **Edit** in **Section 1 (Basic SAML Configuration)**. +5. Paste the values as follows: - ![Setup Azure Attributes & Claims][5] +| Azure Field | Value from Baserow | +| :--- | :--- | +| **Identifier (Entity ID)** | Paste `Single Sign On URL` | +| **Reply URL (Assertion Consumer Service URL)** | Paste `Single Sign On URL` | +| **Sign on URL** | Paste `Single Sign On URL` | +| **Relay State** | Paste `Default Relay State URL` | -3. Click Add New Claim again - 1. Type ‘user.first_name’ in the Name field - 2. Select **user.givenname** from the Source attribute dropdown. - 3. Click **Save** +6. Leave **Logout URL** empty (Single Log Out is not currently supported). +7. Click **Save**. - ![Add New Claim again][6] +Learn more: [Get your Baserow SSO URLs][6] -4. The end result of your Attributes & Claims page in Azure should now look something like this: +![Set up Single Sign-On with SAML][7] - ![Attributes & Claims page in Azure][7] +## Phase 3: Configure attributes & claims -5. Click the **X close** button in the top right of the Attributes & Claims page in Azure to get back to the **Set Up Single Sign-On with SAML** page. +You must map Azure's user data to the format Baserow expects. -## Fix and install Azure SAML metadata in Baserow +1. In Azure, click **Edit** in **Section 2 (Attributes & Claims)**. +2. Click **Add new claim** to create the following mappings. + * *Note: You may need to delete existing default claims if they conflict.* -1. Next in the third section titled SAML Certificates next to Federation Metadata XML click **Download**. +| Name (Baserow Variable) | Source Attribute (Azure Value) | +| :--- | :--- | +| `user.email` | `user.mail` | +| `user.first_name` | `user.givenname` | - ![Fix and install Azure SAML metadata in Baserow -][8] +> Ensure the **Namespace** field is left completely blank for these claims. If Azure includes a namespace URL (e.g., `http://schemas.xml...`), Baserow will not recognize the attribute. -2. Open the download XML file in a text editor. - 1. By default, Microsoft includes both SAML 2.0 and Web Services Federation configuration in this XML file. Baserow only supports SAML 2.0 and so you will now need to delete the redundant Web Services Federation configuration from this file, if you do not Baserow will not accept the metadata. - 2. To fix this open up the downloaded XML metadata file in a text editor. - 3. Edit the file by deleting the text starting from and including `` in the metadata file. - 1. For example, given the following example metadata file +3. Click **Save** after adding each claim. - ```xml - ... - ``` +![Configure attributes & claims][8] - 2. The end result should look like the below, without any RoleDescriptor sections. +## Phase 4: Import and clean metadata - ```xml - - ``` +Azure exports metadata that includes ""Web Services Federation"" tags by default. Baserow only supports SAML 2.0, so you must remove these extra tags for the import to work. - 3. If you are having trouble with this step please ask for help by asking your Baserow sales rep. - 4. Copy the resulting metadata which has had the RoleDescriptor sections removed. -3. Go back to Baserow and the previously opened **Add a new SSO SAML provider** modal. Paste the contents of the edited file you just copied into the **metadata** box and click **Save**. +1. In Azure, scroll to **Section 3 (SAML Certificates)**. +2. Click **Download** next to **Federation Metadata XML**. +3. Open the downloaded XML file in a text editor (like Notepad or TextEdit). +4. **Clean the XML:** + * Locate the tags starting with ``. + * Delete everything starting from `` tag. + * *Goal:* You should only have the `IDPSSODescriptor` sections remaining. +5. **Import to Baserow:** + * Return to the Baserow **Add SAML Provider** modal. + * Paste the *edited* XML text into the **Metadata** field. + * Click **Save**. - ![Go back to Baserow and the previously opened][9] +Learn more: [Add SAML Provider][6] -4. Go back to Azure and in the left sidebar click **User and workspaces**. -5. Click **Add user/workspace** and on the **Add Assignment** page that opens select all users and workspaces you wish to be able to login to your Baserow server, then click **Assign**. +## Phase 5: Assign users -## Testing SSO In Baserow +Users cannot log in until they are explicitly assigned to the application in Azure. -You should be able to log in with Azure AD after completing these steps by visiting your Baserow servers login page. Your users will now be taken to an Azure AD sign-in flow when they attempt to log into Baserow. After logging in with their Azure AD credentials, they will be redirected to the app. +1. In the Azure Portal sidebar, select **Users and groups**. +2. Click **+ Add user/group**. +3. Select the users or groups you wish to authorize. +4. Click **Assign**. -![Testing SSO In Baserow][10] -## Understanding Baserow's authentication system -By default, Baserow restricts users to logging in only with the same authentication method they used for signing up. For instance, if a user creates an account with a username and password, they won't be able to log in through SSO without further configuration. +## Troubleshooting & common issues -## Troubleshooting error for SSO Login +### Error parsing metadata -You might encounter an error message — ""Something went wrong: please use the provider that you originally signed up with"" — when you attempt to log in via SSO. +If Baserow refuses the metadata, ensure you successfully removed the `` tags in Phase 4. Baserow's parser will reject the file if these Microsoft-specific tags are present. -This error message indicates a conflict between your initial sign-up method and your attempt to log in via SSO after initially signing up for Baserow with a username and password. +### OIDC Error: ""Proof Key for Code Exchange is required"" -Here are the primary options to address this error: +If you attempted to set this up using **[OpenID Connect][3]** instead of SAML, you may see this error regarding PKCE. Azure AD enforces PKCE (Proof Key for Code Exchange) for security on OpenID Connect connections. Please switch to the **SAML 2.0** method described in this guide. -**Option 1: Enable multiple authentication methods** +## My users are created without names. -Set the environment variable `BASEROW_ALLOW_MULTIPLE_SSO_PROVIDERS_FOR_SAME_ACCOUNT=true`. After setting this variable, restart the Baserow instance. This allows users to log in with either a password or SSO. +This is an issue with [Attributes & Claims][9]. Check that you cleared the ""Namespace"" field in Azure AD. Baserow looks for `user.first_name`, not `http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname`. -This option **increases security risk**, especially if you have multiple OAuth providers enabled. An attacker who gains access to a user's account on any external provider could potentially use that access to log in to the associated Baserow account. +## Frequently Asked Questions (FAQ) -> For optimal security, we recommend maintaining consistent authentication methods unless necessary. If enabling multiple login methods is essential, implement additional security measures to mitigate potential risks. +### Can I map Azure AD Groups to Baserow Roles? -**Option 2: Maintain consistent authentication method** +Not currently. While users are automatically created upon login (JIT provisioning), their Azure group memberships are not used to assign roles (e.g., Admin vs. Editor). You must [manually assign roles][10] in Baserow after the user logs in for the first time. -Users can continue logging in with the authentication method they signed up with. This avoids changing Baserow's default behavior and maintains existing security measures. +### Why do I need to edit the XML file? -**Option 3: Delete user from [Admin panel](/user-docs/enterprise-admin-panel) and re-login via SSO** +Microsoft includes configuration data for multiple protocols (SAML and WS-Federation) in a single file. Baserow strictly validates the file as SAML 2.0, so the extra WS-Federation data causes a validation error if not removed. -You can delete the user from the Baserow [admin panel](/user-docs/enterprise-admin-panel). Upon logging in via SSO, Baserow will recreate the user, automatically setting SSO as their default authentication method. +### The Admin UI shows a generic error. How do I troubleshoot? -Deleting the user permanently removes all their associated data within Baserow. This option should only be considered if data loss is acceptable and after ensuring all data is backed up elsewhere. - -Always prioritize data security when modifying your authentication settings. +If the Baserow UI displays a generic ""Something went wrong"" message during setup, checking the Baserow container logs is the most reliable way to find the root cause (e.g., XML parsing errors or missing attributes). ## Related content - - [Single Sign On (SSO) overview](/user-docs/single-sign-on-sso-overview). - - [Baserow Enterprise plan](/user-docs/enterprise-license-overview). - - [Enable SSO in the admin panel](/user-docs/enable-single-sign-on-sso). - - [Email and password authentication](/user-docs/email-and-password-authentication). + * [SSO Overview](/user-docs/single-sign-on-sso-overview) + * [Enable SSO in the Admin Panel](/user-docs/enable-single-sign-on-sso) + * [Email and Password Authentication](/user-docs/email-and-password-authentication) --- - - -Still need help? If you're looking for something else, please feel free to make recommendations or ask us questions—we’re ready to assist you. - -   [Ask the Baserow community](https://community.baserow.io) - -   [Contact support](https://baserow.io/contact) for questions about Baserow or help with your account. +Still need help? If you're looking for something else, please feel free to make recommendations or ask us questions; we’re ready to assist you. +- [Ask the Baserow community](https://community.baserow.io) +- [Contact support](/contact) for questions about Baserow or help with your account. - [1]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/14d7d65d-72c2-4887-9c07-41d6773a3836/Untitled.png - [2]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/56dcc35d-684b-4ff7-8c53-bda9b5f7ba3e/Untitled%201.png - [3]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/baf9a014-18f4-41d8-bb84-2717111897a8/Screenshot_2023-02-15_at_09.24.55.png - [4]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/5813c58e-be81-46c2-aff4-f0bc46a607e6/Untitled%202.png - [5]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/0096eb01-2d16-46d7-bd06-4f18b222b2ee/Untitled%203.png - [6]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/ec4f0e04-78fa-4951-b726-c578b2cee2db/Untitled%204.png - [7]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/04021e51-ed84-45f8-8ef8-cae4c087f963/Untitled%205.png - [8]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/b02c2d10-777b-4910-a78d-9284b0ea393d/Screenshot_2023-02-15_at_09.56.47.png - [9]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/96130543-fccb-49d2-ab10-ed5daf41beaa/Untitled%206.png - [10]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/be33533b-090f-40a3-a9b0-19c7be3b187b/Screenshot_2022-11-04_at_07.02.25.png",,baserow_user_docs,https://baserow.io/user-docs/configure-sso-with-azure-ad + [1]: https://baserow.io/user-docs/single-sign-on-sso-overview + [2]: https://baserow.io/pricing + [3]: https://baserow.io/user-docs/configure-openid-connect-for-oauth-2-sso + [4]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/77da9c37-c50e-452e-a618-749a25866d50/Create%20the%20Azure%20Application.jpg + [5]: https://baserow.io/user-docs/enterprise-admin-panel + [6]: https://baserow.io/user-docs/enable-single-sign-on-sso + [7]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/3f3a25b7-377a-49e3-a111-cc0449bc47b9/Set%20up%20Single%20Sign-On%20with%20SAML.jpg + [8]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/e482f64e-5f0a-4e5f-811d-a13dd422dd32/Configure%20attributes%20%26%20claims.jpg + [9]: https://baserow.io/user-docs/configure-sso-with-azure-ad#phase-3-configure-attributes-and-claims + [10]: https://baserow.io/user-docs/permissions-overview",sso,baserow_user_docs,https://baserow.io/user-docs/configure-sso-with-azure-ad 125,Keyboard shortcuts,baserow-keyboard-shortcuts,Baserow keyboard shortcuts for navigation,"# Keyboard shortcuts: Work faster in Baserow Master Baserow's keyboard shortcuts to navigate databases, edit data, and build applications faster. This reference guide covers shortcuts for Mac and Windows across Grid view, Application Builder, and general navigation. @@ -15531,7 +15646,7 @@ Connect data across tables: |------------|---------|-------------| | [Link-to-table][15] | Create relationships | Link orders to customers, tasks to projects | | [Lookup][16] | Display linked table data | Show the customer name in order records by looking up the linked customer. | -| [Count][17] | Count linked rows | Count how many tasks are assigned to each project | +| [Count][17] | Count linked rows | Count how many tasks are assigned to each project | | [Rollup][18] | Aggregate data from linked rows | Calculate total revenue from all orders linked to a customer, average rating | ### Automatic and computed fields @@ -15687,7 +15802,7 @@ For a comprehensive overview of all available field types and their capabilities Fields define the structure of your database by specifying what types of information each column can store. Creating fields is your first step in transforming a blank table into a functional database that captures customer information, tracks projects, manages inventory, or powers any business process. -Well-designed fields with clear names and descriptions improve team collaboration, reduce data entry errors, and make your database intuitive for new users. +Well-designed fields with clear names and descriptions improve team collaboration, reduce data entry errors, and make your database intuitive for new users. ![Fields option in Baserow][2] @@ -15862,7 +15977,7 @@ Rows are individual records in your Baserow tables, each containing data across A row represents a single record or entry in your table. Rows are the fundamental building blocks where your information lives, and understanding how to work with them is essential for effective data management in Baserow. -Rows hold your actual data records, while fields (columns) define what type of information each record contains. Each row spans horizontally across your table, with cells at the intersection of rows and fields containing the actual data values. +Rows hold your actual data records, while fields (columns) define what type of information each record contains. Each row spans horizontally across your table, with cells at the intersection of rows and fields containing the actual data values. ![Row structure in a Baserow table](https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/Screenshot_2022-06-14_at_20.23.05.png) @@ -15937,7 +16052,7 @@ Add [comments to rows](/user-docs/row-commenting) to discuss specific records wi ### Date dependency -Dependencies work across rows within the same table, helping maintain logical schedules without manual date adjustments. Configure relationships between rows where dates automatically adjust based on dependencies. +Dependencies work across rows within the same table, helping maintain logical schedules without manual date adjustments. Configure relationships between rows where dates automatically adjust based on dependencies. When you reschedule a parent row, all dependent child rows shift their dates proportionally, maintaining the original time relationships. This is useful for project management where task delays cascade through dependent activities. @@ -15965,7 +16080,7 @@ Learn more: [Date dependency][4] ### What's the maximum number of rows I can have in a table? -Baserow has row limits depending on your [subscription plan][2]. Limits depend on your plan's storage capacity and performance requirements for your specific use case. Tables can handle millions of rows efficiently thanks to lazy loading, which loads data progressively as you scroll rather than loading everything at once. +Baserow has row limits depending on your [subscription plan][2]. Limits depend on your plan's storage capacity and performance requirements for your specific use case. Tables can handle millions of rows efficiently thanks to lazy loading, which loads data progressively as you scroll rather than loading everything at once. ### Why can't I select more than 200 rows at once? @@ -16010,7 +16125,7 @@ Use the `row_id()` [formula function](/user-docs/understanding-formulas) to get Still need help? If you're looking for something else, please feel free to make recommendations or ask us questions; we're ready to assist you. -- [Ask the Baserow community](https://community.baserow.io) +- [Ask the Baserow community](https://community.baserow.io) - [Contact support](/contact) for questions about Baserow or help with your account. @@ -16365,7 +16480,7 @@ todate_tz('20210101', 'YYYYMMDD', 'Europe/Amsterdam') todate_tz(field('Event Date'), 'YYYY-MM-DD', 'Asia/Tokyo') // Conditional timezone based on region field -if(field('Region')='Europe', +if(field('Region')='Europe', todate_tz(field('Date'), 'YYYY-MM-DD', 'Europe/London'), todate_tz(field('Date'), 'YYYY-MM-DD', 'America/New_York')) ``` @@ -16845,12 +16960,12 @@ Importing lets you create fully populated tables from existing data files or spr ## Supported import formats -| Format | Best for | File extension | +| Format | Best for | File extension | |--------|----------|----------------| -| **Paste data** | Quick transfers from spreadsheets | N/A | -| **CSV** | Simple tabular data from any spreadsheet app | .csv | -| **JSON** | Structured data exports from APIs or apps | .json | -| **XML** | Hierarchical data from technical systems | .xml | +| **Paste data** | Quick transfers from spreadsheets | N/A | +| **CSV** | Simple tabular data from any spreadsheet app | .csv | +| **JSON** | Structured data exports from APIs or apps | .json | +| **XML** | Hierarchical data from technical systems | .xml | > All import methods are limited to 5,000 rows per table. For larger datasets, split your file and import in batches, or contact support for enterprise solutions. @@ -17079,7 +17194,7 @@ Now that you've imported your data, explore these features: Still need help? If you're looking for something else, please feel free to make recommendations or ask us questions; we're ready to assist you. - - [Ask the Baserow community](https://community.baserow.io) + - [Ask the Baserow community](https://community.baserow.io) - [Contact support](/contact) for questions about Baserow or help with your account. @@ -17178,7 +17293,10 @@ Yes, but only if you're not the last admin. Workspaces must always have at least Workspace members are users who have access to a workspace with assigned roles (Admin, Editor, etc.). Collaborators refer to the Collaborator field type used to assign specific workspace members to individual rows for task assignment. +### What is the difference between ""Revoking Workspace Access"" and ""Deleting a User""? + * **Revoking Workspace Access:** Removing a workspace member is done inside a Workspace. The user loses access to that specific workspace but can still log in to Baserow and access other workspaces. + * **[Deleting a User][4]:** Done in the Admin Panel. The user loses access to the entire Baserow server, and their account is destroyed. ## Related content @@ -17198,7 +17316,8 @@ Still need help? If you're looking for something else, please feel free to make [1]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/a766fd4b-6c7b-49ee-a908-84d859992dc3/Remove%20a%20member%20from%20a%20workspace.jpg [2]: https://baserow.io/user-docs/permissions-overview - [3]: https://baserow.io/user-docs/create-and-manage-teams",,baserow_user_docs,https://baserow.io/user-docs/remove-a-user-from-a-workspace + [3]: https://baserow.io/user-docs/create-and-manage-teams + [4]: https://baserow.io/user-docs/admin-panel-users",collaboration,baserow_user_docs,https://baserow.io/user-docs/remove-a-user-from-a-workspace 140,Count field,count-field,Count field in Baserow,"# Working with the Count field The **Count field** automatically counts the number of linked records from another table, giving you a simple, real-time summary of related data. @@ -18239,7 +18358,7 @@ Creation time depends on the database size. Small databases (under 100 rows) sna ### Can I schedule automatic snapshots? -Not currently through the Baserow UI. For automated snapshots, use the [Baserow API](/user-docs/database-api) with external automation tools or cron jobs. +Not currently through the Baserow UI. For automated snapshots, use the [Baserow API](/user-docs/database-api) with external automation tools or cron jobs. ### Can I restore snapshots to different databases or workspaces? @@ -18533,7 +18652,7 @@ Apply summaries to any field in Grid View through the footer row. > Lookup fields do not support summaries. For lookup data analysis, create a rollup field with aggregation instead. -**Universal options:** None, Empty, Filled, Percent empty, Percent filled, Unique, and Distribution summary options. +**Universal options:** None, Empty, Filled, Percent empty, Percent filled, Unique, and Distribution summary options. ### Summary options for text and selection fields @@ -18802,15 +18921,15 @@ Yes, use the ""Export files"" option, which creates a zip archive containing onl - [Filters in Baserow](/user-docs/filters-in-baserow) - Prepare targeted exports ### View types -- [Grid view guide](/user-docs/guide-to-grid-view) -- [Collaborative views](/user-docs/collaborative-views) -- [Personal views](/user-docs/personal-views) +- [Grid view guide](/user-docs/guide-to-grid-view) +- [Collaborative views](/user-docs/collaborative-views) +- [Personal views](/user-docs/personal-views) --- Still need help? If you're looking for something else, please feel free to make recommendations or ask us questions; we're ready to assist you. -- [Ask the Baserow community](https://community.baserow.io) +- [Ask the Baserow community](https://community.baserow.io) - [Contact support](/contact) for questions about Baserow or help with your account",,baserow_user_docs,https://baserow.io/user-docs/export-a-view 150,Advanced row filter,advanced-filtering,Baserow advanced filtering by field values,"# Advanced filtering in Baserow @@ -19126,7 +19245,7 @@ Access to historical data varies based on your Baserow subscription plan: You can change this to a higher (or lower) number if you wish to change the retention period. By default, there is a limit of 365 days of revisions for self-hosters, and you have the flexibility to change this limit to any other number. -[Self-hosted installations][5] can adjust retention periods in the admin settings to meet specific compliance or storage requirements. +[Self-hosted installations][5] can adjust retention periods in the admin settings to meet specific compliance or storage requirements. > **Storage note:** Longer retention periods increase database storage requirements. Self-hosted administrators should monitor storage capacity when extending retention beyond default periods. @@ -19224,15 +19343,15 @@ For complex multi-condition filtering strategies, see our [advanced filtering gu Different field types support different filter operators. Here are the most common operators: -| Operator category | Operators | Works with | +| Operator category | Operators | Works with | |-------------------|-----------|------------| -| **Text matching** | Is, Is not, Contains, Doesn't contain, Contains word, Doesn't contain word, Length is lower than, Is empty, Is not empty | Text fields | -| **Numeric comparison** | Higher than, Higher than or equal, Lower than, Lower than or equal, Is even and whole | Number fields | +| **Text matching** | Is, Is not, Contains, Doesn't contain, Contains word, Doesn't contain word, Length is lower than, Is empty, Is not empty | Text fields | +| **Numeric comparison** | Higher than, Higher than or equal, Lower than, Lower than or equal, Is even and whole | Number fields | | **Date filtering** | Is, Is not, Is before, Is on or before, Is after, Is on or after, Is within, Day of month is, Contains, Doesn't contain, Is empty, Is not empty | Date fields | -| **Relationship** | Has, Doesn't have, Contains, Doesn't contain, Is empty, Is not empty | Link to table fields | -| **Boolean** | Is, Is empty, Is not empty | Checkbox fields | -| **Length** | Length is lower than, Length is higher than | Text fields | -| **Select** | Contains, Doesn't contain, Contains word, Doesn't contain word, Is, Is not, Is any of, Is none of, Is empty, Is not empty, Has any of, Doesn't have any of | Single and Multiple select fields | +| **Relationship** | Has, Doesn't have, Contains, Doesn't contain, Is empty, Is not empty | Link to table fields | +| **Boolean** | Is, Is empty, Is not empty | Checkbox fields | +| **Length** | Length is lower than, Length is higher than | Text fields | +| **Select** | Contains, Doesn't contain, Contains word, Doesn't contain word, Is, Is not, Is any of, Is none of, Is empty, Is not empty, Has any of, Doesn't have any of | Single and Multiple select fields | ## How to add a filter @@ -19822,7 +19941,7 @@ If you need a clean, sequential list again (1, 2, 3...), you have two options: ## Frequently asked questions ### What's the difference between an Autonumber and a UUID field? -They both create unique IDs, but serve different purposes. Autonumber is a simple, *human-readable*, incrementing number (1, 2, 3...). It is unique *within that table*. +They both create unique IDs, but serve different purposes. Autonumber is a simple, *human-readable*, incrementing number (1, 2, 3...). It is unique *within that table*. [UUID field][6] is a 36-character, complex string (e.g., `a1b2c3d4-...`). It is *globally unique*, meaning it won't conflict with records in any other database. Use Autonumber for simple internal references. **Use UUID** when you need a universally unique ID, especially for use with external systems or APIs. @@ -20114,7 +20233,7 @@ When a [new row is created][2], its 'Last modified' value will be the same as it By default, this field will track changes made to *any* editable field in the row. -You can choose to restrict the field so that it only displays the most recent time a particular field was modified. +You can choose to restrict the field so that it only displays the most recent time a particular field was modified. ## Track the last modified time on computed fields @@ -20187,7 +20306,7 @@ Learn more: [Configure field types](https://baserow.io/user-docs/field-customiza ## What is a Password field? -The Password field is a highly specialized, secure field for storing passwords. +The Password field is a highly specialized, secure field for storing passwords. This field is *not* for storing your team's website passwords like a password manager, because it is **write-only**. Its main purpose is to create user tables to power the [login element][3] in the [Baserow Application Builder][4]. @@ -20203,9 +20322,9 @@ It has two key security features: 3. Name the field (e.g., ""User Password""). 4. Click **Create**. -This will create a new, write-only field in your table. +This will create a new, write-only field in your table. -## Allow API endpoint authentication +## Allow API endpoint authentication This option exposes an endpoint where the row ID and password can be checked to see if they're correct. This allows using Baserow as an authentication backend. @@ -20275,7 +20394,7 @@ Elements are the core components of pages that shape how your applications look ### [Data sources][4] -The data sources allow your pages to connect to data in a Baserow table. You can pick a table and view to connect. You can also set filters for those views. +The data sources allow your pages to connect to data in a Baserow table. You can pick a table and view to connect. You can also set filters for those views. ### [Events and actions][5] @@ -20327,19 +20446,19 @@ In these workspaces, you can invite others to collaborate with you. To create an ## Create a blank application -To create a new application, navigate to the workspace where you want to create the application. +To create a new application, navigate to the workspace where you want to create the application. 1. On your dashboard, click the **Create new** button. 2. After clicking the **Create new** button, a popup will appear, where you can either select the [Database](/user-docs/intro-to-databases), [Application](/user-docs/application-builder-overview), or [From template](/user-docs/add-database-from-template) option. Select the **Application** option. - + ![Adding a new application][1] - + 3. In the pop-up that opens next, give the application a descriptive name. You can subsequently change the application name as needed. - + The application name is for your reference and will not appear anywhere after publishing the application. - + ![Assign a name for your new application][2] - + 4. Click **Add application** to finalize the setup. Then, you'll be immediately taken to your new Baserow application and can start working on it. You can see default [pages][3] and [elements][4] when you navigate to your newly created application. @@ -20348,7 +20467,7 @@ You can see default [pages][3] and [elements][4] when you navigate to your newly ## Duplicate an application -To duplicate an existing application, hover over the application and click the three dots `⋮` icon next to it. Then, choose the **Duplicate** option from the dropdown menu. +To duplicate an existing application, hover over the application and click the three dots `⋮` icon next to it. Then, choose the **Duplicate** option from the dropdown menu. You can monitor the progress of the duplication in the left sidebar. @@ -20356,13 +20475,13 @@ Explore further [details about application configurations][6] to maximize your u ## Add an application from template -The easiest way to get started if you are new to Baserow Application Builder is to copy a [template](/templates/). To start with a template, you need to choose a workspace into which the template will be installed. +The easiest way to get started if you are new to Baserow Application Builder is to copy a [template](/templates/). To start with a template, you need to choose a workspace into which the template will be installed. You can add a template in two ways: 1. From the template page, or 2. From your dashboard. - + > Learn more about [how to add a template to a workspace][7]. Application Builder templates are paired with Database templates: @@ -20420,7 +20539,7 @@ To rename an application: Duplicating enables you to create copies of applications within your workspace. It's useful for creating backups, testing new configurations, or maintaining multiple versions of your data. -If you need to make a copy of an existing application in its current state, hover over the application and click on the three-dot `⋮` icon next to the application. +If you need to make a copy of an existing application in its current state, hover over the application and click on the three-dot `⋮` icon next to the application. Select the **Duplicate** option from the popup. You can view the application and application duplication progress in the left sidebar. @@ -20430,11 +20549,11 @@ After duplicating the application, a copy will be created, and you can start edi ## Snapshots -Snapshots are a full copy of your application at the moment when they were created. It allows you to save your current state whenever needed to be able to go back and resume from that state at any time in the future. +Snapshots are a full copy of your application at the moment when they were created. It allows you to save your current state whenever needed to be able to go back and resume from that state at any time in the future. To create a snapshot, select the Snapshot option from the popup, and choose **Snapshots**. [Learn more about snapshots](/user-docs/snapshots). -After you take a snapshot, you can click on one of the previous snapshot versions and restore it. A duplication of that data will be created when restoring. +After you take a snapshot, you can click on one of the previous snapshot versions and restore it. A duplication of that data will be created when restoring. Snapshots are automatically deleted after one year. @@ -20476,7 +20595,7 @@ Make sure you've set up everything right by checking the [necessary configuratio ## Preview an application -Preview mode enables you to test your application's functionality and appearance before making it public. +Preview mode enables you to test your application's functionality and appearance before making it public. Use the preview to make sure your app looks and works like you want it to. @@ -20496,9 +20615,9 @@ To make your application visible to anyone on the web, follow these steps: 1. Click on the **Publish** button located within your top navigation bar. 2. You should see your domain and publication status info in the menu that opens. - + > You need to have at least one domain to publish your application. Your application can have multiple domains, each running a different version of the application. Learn more about how to configure your domain link. - > + > 3. Click on the **Publish** button located within the pop-up window. 4. This action will deploy your changes to the live environment. 5. Once the changes are published, copy the link that you can share with anyone to access your application online. @@ -20523,7 +20642,7 @@ Let's dive into how to set up your Baserow app. This way, you can make it work j ## Overview -Before you start [creating your application](/user-docs/create-an-application), take a moment to set up some basic settings. +Before you start [creating your application](/user-docs/create-an-application), take a moment to set up some basic settings. Here's how to access the application settings: @@ -20564,17 +20683,17 @@ If you want to keep things separate, you can create another user with the right You can create new integrations by adding a [data source][5], [event][6], or [user authentication][7]. - **[Data source][5]**: Adding a data source means you can work with structured data more flexibly. It lets you use and change data stored in Baserow right in your application. This makes your application more flexible and useful because you can tap into Baserow's strong database features. - + Learn more about [configuring a data source][5]. - -- **Events**: Events allow users to perform specific actions within your application with just a click. These events can range from simple tasks like submitting forms or triggering notifications to complex operations such as initiating workflows or executing API calls. - + +- **Events**: Events allow users to perform specific actions within your application with just a click. These events can range from simple tasks like submitting forms or triggering notifications to complex operations such as initiating workflows or executing API calls. + Learn more about [events in an application][6]. - + - **[User sources][7]**: User authentication boosts security and personalization in your application. When you set up user sources, you're ensuring that users can safely log in and access their accounts. It also means they get content tailored just for them, adding a personalized touch to their experience. - + Learn more about [configuring a user source][7]. - + ## User sources To enable users to log in securely, you need to add a user source for authentication. This allows users to access the data stored in the database through your application. @@ -20589,7 +20708,7 @@ In the **Theme** section, you can customize the appearance of [elements][8] by a ![Set theme at the application level][10] -### Set theme at the application level +### Set theme at the application level Baserow allows you to configure the overall styling of your application through theme settings. These settings control various visual aspects, including: @@ -20615,11 +20734,11 @@ This section will display all the available theme settings. You can modify optio ### Customize individual elements -Baserow also allows for [styling specific elements][12] within your page. +Baserow also allows for [styling specific elements][12] within your page. - Select the [element][13] you want to customize. - - Select the **General** tab in the right-hand panel. - - Click the settings icon to open a modal window with element-specific styling options. The available options will depend on the element you selected. + - Select the **General** tab in the right-hand panel. + - Click the settings icon to open a modal window with element-specific styling options. The available options will depend on the element you selected. - Make your desired adjustments within the modal window. [Learn more about the element styling options][12]. @@ -20661,9 +20780,9 @@ Still need help? If you're looking for something else, please feel free to make [14]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/752f37fa-c658-4f04-933b-0a879c4bfe09/application%20hex%20code.png",,baserow_user_docs,https://baserow.io/user-docs/application-settings 167,Add a domain,add-a-domain-to-an-application,Add a domain to an application in Baserow,"# Add a domain to an application -To make an application accessible online, you have to link it to a domain. +To make an application accessible online, you have to link it to a domain. -In this section, we'll cover how to publish an application to a custom domain or Baserow subdomain. +In this section, we'll cover how to publish an application to a custom domain or Baserow subdomain. ## Overview @@ -20682,12 +20801,12 @@ You can also have multiple domains, each running a different version of an appli ## Add a Baserow subdomain -To publish an application on the Baserow subdomain, +To publish an application on the Baserow subdomain, 1. In the Baserow application, go to [Settings](/user-docs/application-settings) → Domains page. 2. Click on the **Add domain** button. 3. Select the Baserow subdomain from the dropdown options. -4. Add a valid domain in the *Domain name* field in the format: `yourdomain`. +4. Add a valid domain in the *Domain name* field in the format: `yourdomain`. 5. Click on the **Create** button. The DNS settings of the domain will be configured and checked automatically. You don’t need to make any additional changes. @@ -20698,14 +20817,14 @@ In Baserow, you can use your custom domain to run your applications. This means ## Add a custom domain -Adding a custom domain is a simple yet effective way to establish your brand and make your application more professional. +Adding a custom domain is a simple yet effective way to establish your brand and make your application more professional. In the Baserow application, 1. Go to [Settings](/user-docs/application-settings) → Domains page. - + ![Associate a domain with a Baserow application][3] - + 2. Click on the **Add domain** button. 3. Select a custom domain from the dropdown options. 4. Add a custom domain in the *Domain name* field in the format: `yourdomain.com`. It will also add the full domain `www.yourdomain.com` by default. @@ -20713,7 +20832,7 @@ In the Baserow application, ### Update the DNS for a custom domain -Every DNS host has its way of updating DNS settings. +Every DNS host has its way of updating DNS settings. To update your custom domain's DNS, go to your domain registrar's or DNS host's dashboard where you manage your domain. Locate the DNS settings section for your domain and make the changes. @@ -20722,11 +20841,11 @@ Create a **CNAME** or **ALIAS** record from your domain: - Set the **host** field as your custom domain name. - Set the **value** field as the base URL you want to point to. -This process varies slightly depending on your DNS host, but these general steps should help you get started. If you still run into any issues with your domain verification, reach out to your DNS provider to make sure the records are set correctly. +This process varies slightly depending on your DNS host, but these general steps should help you get started. If you still run into any issues with your domain verification, reach out to your DNS provider to make sure the records are set correctly. ![Update the DNS for a custom domain][4] -To verify that the DNS settings are correct and that your domain is correctly pointing to Baserow, publish your application to the custom domain. +To verify that the DNS settings are correct and that your domain is correctly pointing to Baserow, publish your application to the custom domain. ![Create a new ALIAS from your domain to baserow][5] @@ -20763,18 +20882,18 @@ The login element allows users to access an application with secure credentials. ## Add a user source -Adding a user source allows the application to recognize and authenticate users effectively. +Adding a user source allows the application to recognize and authenticate users effectively. 1. Go to the Settings → Users page. 2. Click on **Add user source**. 3. Choose the type of user source you want to add. -4. Select an integration from the dropdown menu or click **Add new integration** directly. +4. Select an integration from the dropdown menu or click **Add new integration** directly. Learn more about [integrations and how to configure them](/user-docs/application-settings#integrations). 5. Click **Create**. - + ![Add new user source in Baserow][2] - -After you create a user source, the user settings will become available. + +After you create a user source, the user settings will become available. ## Configure user source @@ -20783,33 +20902,33 @@ To edit the user source for authentication, follow these steps: 1. Navigate to Application settings → Users. 2. Locate the user source that you want to edit. 3. Click the option to edit or modify the existing user source. - + ![Edit or modify the existing user source][3] - + 4. Review the integration details, including the integration with your database. 5. Specify the [database][4] and [table][5] from your [workspace][6] that you want to use for user authentication. The items in the list can be sorted and filtered according to the sorting and filtering configuration of the default view. 6. Select the appropriate fields in the table that match the user information. Typically, the email field is used for identification purposes. - + ![Baserow authentication method is set to ""Email/Password""][7] - - 7. You can enable multiple authentication methods simultaneously: + + 7. You can enable multiple authentication methods simultaneously: 8. Email/Password: Will allow users to authenticate using their email and password and select the password field from your users table as - the source in the dropdown. + the source in the dropdown. > The [password field type](/user-docs/password-field) is a write-only field. It lets you set a password for each row. This password is stored as a hash and is *never* shown. > - + 9. SAML SSO - In the ""Edit provider: SAML SSO"" dialog: Enter your SAML Domain - (for example okta.com). + (for example okta.com). - Paste your Identity Provider metadata in - the Metadata field. + the Metadata field. - The Default Relay State URL will become available after adding domains under the domains tab in your app settings. - Note the Single Sign-On URL (to be shared with - your identity provider). + your identity provider). - Click on ""SAML Response Attributes"" to expand attribute mapping options - Configure the following fields to match your identity provider's attribute names: @@ -20859,7 +20978,7 @@ Let's look at the basics of handling pages in the Baserow application builder. After you've created an application, you can find its pages listed on the left sidebar. You can create new pages and manage all existing ones right from the sidebar in Baserow. -A page in an application has its unique set of settings that can be configured for each page separately, including [Name, Path, and Path parameters][1]. +A page in an application has its unique set of settings that can be configured for each page separately, including [Name, Path, and Path parameters][1]. Each page has a three-dot icon `⋮` on it, which opens a menu with the options to [rename][2], [duplicate][3], and [delete][4] the page. @@ -20885,13 +21004,13 @@ In this section, we will walk you through the process of adding a page to an app 3. Select **Start with a new page**. 4. Click **Add page**. -When you create a new page, it's like starting with a blank canvas. You have access to various elements you can add to this blank page. These elements help you organize and present information effectively. +When you create a new page, it's like starting with a blank canvas. You have access to various elements you can add to this blank page. These elements help you organize and present information effectively. ![Start with a new page][7] ### Duplicate a page -Duplicating a page is a quick and easy way to make a copy of an existing page. This can be helpful if you need to make changes to the data without affecting the original page. +Duplicating a page is a quick and easy way to make a copy of an existing page. This can be helpful if you need to make changes to the data without affecting the original page. To duplicate a page in Baserow, follow these steps: @@ -20903,7 +21022,7 @@ Baserow will create a copy of the page and place it immediately below the origin ### Customize a duplicated page -After duplicating a page in Baserow, you’ll likely want to customize the duplicated page to fit your needs. +After duplicating a page in Baserow, you’ll likely want to customize the duplicated page to fit your needs. Here are some ways you can customize duplicated pages: @@ -20942,7 +21061,7 @@ To view a page as an authenticated user, follow these steps: ## Delete a page -To delete a page from an application, use the **Delete** option within the application's management interface. +To delete a page from an application, use the **Delete** option within the application's management interface. This action removes the selected page from the application without any additional steps or warning prompts. @@ -20973,7 +21092,7 @@ Still need help? If you're looking for something else, please feel free to make [11]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/4726ef47-d1b8-442d-9623-17a1c46f3e35/Untitled%202.png [12]: /user-docs/user-sources [13]: /user-docs/data-sources",,baserow_user_docs,https://baserow.io/user-docs/pages-in-the-application-builder -170,Data sources,data-sources,Data sources in Baserow Application Builder,"# Data sources in an application +170,Data sources,data-sources,Data sources in Baserow Application Builder,"# Data sources in an application In Application Builder, data sources are key for showing data to users or getting info from them. They help get data and show it on the page. @@ -20998,22 +21117,22 @@ Navigate to the top navigation bar on the left-hand side of the page, where you' To add a new data source, click on Data Source in the top navigation bar. A popup will appear, displaying a list of all currently connected data sources, along with an option to add a new one. 1. Click **Add new data source**. -2. Select a service type. +2. Select a service type. - Get single row - Finds a single row in a given table. - List multiple rows - Finds a page of rows in a given table. - + ![Add new data source in Baserow ][3] - + 3. Select an integration from the dropdown menu or click **Add new integration** directly. Learn more about integrations and how to configure them. 4. As soon as you select a service type and integration, the element settings will become available. 5. Select a [Database](/user-docs/intro-to-databases), [Table](/user-docs/intro-to-tables), and [View](/user-docs/overview-of-baserow-views) from the [workspace](/user-docs/intro-to-workspaces). The items in the list can be sorted and filtered according to the sorting and filtering configuration of that particular view. 6. When you select the *Get single row* service type, you need to enter or map a [row ID](/user-docs/overview-of-rows#what-is-a-row-identifier) to retrieve a single row in a given table by its ID. Leave this value empty to return the first row in the table. - + > To dynamically input a [row ID](/user-docs/overview-of-rows#what-is-a-row-identifier) and retrieve a single row in a given table by its ID, add a [page parameter][2] to the page or add a [user source][4]. - > - + > + ![Retrieve a single row in a given table by its ID][5] - + ## Filter data source @@ -21040,7 +21159,7 @@ Understanding how filters interact between the Database and the Application Buil **Selecting a table without a specific view:** -When selecting a table from the database without specifying a particular view in the data source filter configuration, any filters associated with views in the table won’t affect the results in the Application Builder. This means you can independently filter the rows displayed in the Application Builder, regardless of any view filters from the database. +When selecting a table from the database without specifying a particular view in the data source filter configuration, any filters associated with views in the table won’t affect the results in the Application Builder. This means you can independently filter the rows displayed in the Application Builder, regardless of any view filters from the database. This is useful when the views in the database table already have specific filters that you prefer not to use in the Application Builder. @@ -21061,7 +21180,7 @@ To add a formula to filter data, use the ""Sum"" symbol next to the field value: ## Sort data source > This option is available for the *List multiple rows* service type. -> +> Sorting data sources in Baserow puts data in order based on specific criteria, like their names or numbers. @@ -21104,7 +21223,7 @@ Click **Refresh fields from data source** located within the General panel on th ## Search data source -To search the data source, specify a search term. You have the flexibility to choose the term for the search, giving you control over the query's focus. +To search the data source, specify a search term. You have the flexibility to choose the term for the search, giving you control over the query's focus. If no specific term is provided, the search will encompass all list items, offering a comprehensive view of the available data. @@ -21120,7 +21239,7 @@ To create a shared data source, go to the ‘Data Sources’ tab. There, you can ## Delete data source -Deleting a data source permanently removes its associated information from the application. +Deleting a data source permanently removes its associated information from the application. To remove a data source from an application: @@ -21157,13 +21276,13 @@ Learn more about how to [create a new page and manage existing pages](/user-docs ## Overview -In the Page section, you have the Page name, Path, and Path parameters fields, where you can edit the name and path you had assigned to the page on creation. +In the Page section, you have the Page name, Path, and Path parameters fields, where you can edit the name and path you had assigned to the page on creation. ![Baserow Page settings][2] ## Page name -Edit the name and path assigned to your page for clarity and organization. +Edit the name and path assigned to your page for clarity and organization. Learn more about [renaming pages in this support article](/user-docs/pages-in-the-application-builder#rename-a-page). @@ -21171,13 +21290,13 @@ Learn more about [renaming pages in this support article](/user-docs/pages-in-th The path of the page can be found in Page Settings → Page. -To define the path of a page, use the `/path` format. This represents the location of the page within the application's structure. +To define the path of a page, use the `/path` format. This represents the location of the page within the application's structure. For instance, if you have a page named ""About"" that is located directly under the root directory of your application, its path would be `/about`. To link to your homepage, simply use `/` as a reference. -The page `/path` is useful for organizing content hierarchically, such as categorizing products in an e-commerce site `/electronics/phones/smartphones`. It helps users and search engines navigate the website efficiently. +The page `/path` is useful for organizing content hierarchically, such as categorizing products in an e-commerce site `/electronics/phones/smartphones`. It helps users and search engines navigate the website efficiently. ![Page path][3] @@ -21193,7 +21312,7 @@ For example, if you have an endpoint like `/users/:userId`. Here, `:userId` acts ## Page visibility -The page visibility feature lets you control which user groups can see specific pages in your applications. This provides more detailed control over page-level permissions, complementing the existing [element-level visibility settings][8]. +The page visibility feature lets you control which user groups can see specific pages in your applications. This provides more detailed control over page-level permissions, complementing the existing [element-level visibility settings][8]. To set page visibility, navigate to **Page settings** in the top menu and select the **Visibility** tab. Here you can specify who can view this page: @@ -21285,7 +21404,7 @@ Here's a list of the elements available: ## Element properties -Page formatting is designed to be flexible, so you can move elements around on the [page](/user-docs/pages-in-the-application-builder) easily. +Page formatting is designed to be flexible, so you can move elements around on the [page](/user-docs/pages-in-the-application-builder) easily. Every element has unique properties and ways to format it based on what it's for. @@ -21310,7 +21429,7 @@ Setting a [data source](/user-docs/data-sources) tells an element where to get t When you pick a data source for an element, you're showing it where to look for its information. -To choose a data source for an element, click on it and check the sidebar on the right. Click on the field and select data from a list of already set up sources. +To choose a data source for an element, click on it and check the sidebar on the right. Click on the field and select data from a list of already set up sources. [Learn more about adding a data source](/user-docs/data-sources). @@ -21403,7 +21522,7 @@ Learn more about the [elements available in the application builder][1]. In application design, integrating various elements onto a single page enhances user experience and navigation efficiency. By combining forms, buttons, text fields, images, and interactive features, you create cohesive interfaces. -It's important to maintain clarity and organization to prevent clutter and confusion for users. +It's important to maintain clarity and organization to prevent clutter and confusion for users. ## Add an element to a page @@ -21413,20 +21532,20 @@ To add an element to a page, follow these steps: 1. Open the page and click **Elements**. 2. Click **Element +** located in the lower left portion of the popup. Alternatively, click on the plus icon `+` on the page to add an element. - + ![Add elements to a page][2] - + 3. A menu of available element options will appear. Select from the available options or use the search box to find a specific element by name. - + ![List of application builder elements][3] - + 4. Once you've chosen the element you want to add, click on it. After selecting the element, you can place it anywhere on the layout of the page. Don't worry too much about perfect positioning at this stage; you can always adjust it later as needed. ## Duplicate element -Duplicating an element creates an identical copy of it, usually positioned right below the original. +Duplicating an element creates an identical copy of it, usually positioned right below the original. This provides multiple instances of the same element without the need to recreate it from scratch. @@ -21447,7 +21566,7 @@ To remove the element from the page, follow these steps: 1. Locate the trash icon associated with the element you wish to delete. 2. Click on the trash icon to initiate the deletion process. -3. Confirm the deletion if prompted. +3. Confirm the deletion if prompted. We advise that you proceed with this action only if you are certain you no longer need the element. @@ -21484,7 +21603,7 @@ Alternatively, you can choose to inherit the default styles defined in your [the ![Style element][1] -## Set theme +## Set theme Baserow allows for the customization of specific elements on your page. To do this, select the element you want to customize, go to the **General** tab in the right-hand panel, and click the settings icon to open a modal window with styling options. The available options will vary depending on the element selected. Make the desired adjustments within the modal window. @@ -21496,14 +21615,14 @@ To add a top and bottom border to an element and customize the border width and 1. **Select the element**: Identify the element to which you want to add the borders. 2. **Access the style editor**: Navigate to the style editor of the selected element. -3. **Specify border width and color**: There are options to set borders for different sides (top, bottom, left, right) separately. Set the width and color of the borders. -4. **Preview and adjust**: After setting the border properties, preview your changes to ensure they look as expected. +3. **Specify border width and color**: There are options to set borders for different sides (top, bottom, left, right) separately. Set the width and color of the borders. +4. **Preview and adjust**: After setting the border properties, preview your changes to ensure they look as expected. By following these steps, you can easily add custom borders with the desired width and color to elements within a page. ## Element padding -Padding offers control over the spacing between the content and the border of an element. +Padding offers control over the spacing between the content and the border of an element. Padding creates a buffer zone around the content, giving you control over the layout and visual hierarchy of the page. @@ -21515,7 +21634,7 @@ Padding creates a buffer zone around the content, giving you control over the la Background colors enhance the visual design and user experience of a page. Setting a background color for an element fills the entire area of that element. -Adding a background color gives a spotlight to certain elements on a page. +Adding a background color gives a spotlight to certain elements on a page. ![Background color][3] @@ -21555,7 +21674,7 @@ Here, we'll look at how to make buttons interactive in an application. By connec Events are triggers within your application that respond to user interactions, like [clicking a button][2], [logging in][3], or [submitting a form][4]. They bridge the gap between user input and actions on the application's data. -You can create an action on click or after login. +You can create an action on click or after login. Here's an overview of the actions: @@ -21565,9 +21684,11 @@ Here's an overview of the actions: - **Refresh data source**: This triggers the data sources on the page to be refreshed to account for recent changes. - **Send HTTP request**: Allows you to send requests to external APIs and services. - **Send email**: Sends a customized email to specified recipients directly from the application, enabling automated communication using any SMTP server of your choice. + - **AI prompt**: Execute prompts, analyze data, or generate content directly within your workflow. - **Create row**: This action creates a new row in the selected table. Choose a table to begin configuring fields. - **Update row**: This action updates an existing row in the selected table. Choose a table to begin configuring fields. - **Delete a row**: This action deletes an existing row in the selected table. Choose a table to begin configuring fields. + - **Send a Slack message**: This action sends a message directly to a Slack channel or specific user when your workflow runs. You can reorganize the events using the drag-and-drop handle. @@ -21617,10 +21738,16 @@ Here's how it works: 2. **Specify the target table**: Pick the specific table within the chosen database that will receive the new rows. 3. **Map form fields**: Match the fields in the form with the corresponding fields in the table. This ensures the data gets placed in the correct location within each row. -For example: A job application form creates a new record in a ""Job Applications"" table with the applicant's details and the specific job they're applying for. Whenever an applicant submits the form, a new row will be created in the table, automatically capturing their information. +For example, A job application form creates a new record in a ""Job Applications"" table with the applicant's details and the specific job they're applying for. Whenever an applicant submits the form, a new row will be created in the table, automatically capturing their information. ![Create a row event in Baserow Application Builder][6] +## Send a Slack message + +This action sends a message directly to a Slack channel or specific user when your workflow runs. + +Learn more about [how to configure the Slack message action][7] + ## Element event: Update an existing row This event allows users to modify existing data entries within the application. It facilitates the editing process, allowing users to make necessary changes to the data. @@ -21632,18 +21759,22 @@ For example, if you have a list of tasks, the task page can contain a form throu After the event occurs, the application automatically updates the designated row with the new information, reflecting the user's requested changes. -![Update row event in Baserow Application Builder][7] +![Update row event in Baserow Application Builder][8] -## Element event: Send an email with SMTP +## AI prompt -You can send custom emails using the **Send email** action inside your workflow. All you need is access to an SMTP server like Gmail, Outlook, or your company mail. +The AI Prompt node connects to generative AI models to execute prompts, analyze data, or generate content directly within your workflow. This allows you to build powerful automations that can summarize text, categorize customer feedback, translate languages, or generate email replies based on your Baserow data. ---- +Learn more about [how to configure the AI prompt][9] + +## Element event: Send an email with SMTP + +You can send custom emails using the **Send email** action inside your workflow. All you need is access to an SMTP server like Gmail, Outlook, or your company mail. ### Step 1: Add a “Send email” action -1. Navigate to the **Events** tab. -2. Select an event trigger, such as **On click**. +1. Navigate to the **Events** tab. +2. Select an event trigger, such as **On click**. 3. Click the **+Add action** button and choose **Send Email** from the list. ### Step 2: Configure your SMTP integration within the action @@ -21676,7 +21807,7 @@ You can also configure additional fields such as *CC*, *BCC*, and select the *Bo Automate confirmations, alerts, and updates based on user interactions. -![Send email event action][8] +![Send email event action][10] ### Step 4: Add dynamic content (Optional) Make your emails personal by including data from your forms or database: @@ -21704,13 +21835,15 @@ Still need help? If you're looking for something else, please feel free to make [4]: /user-docs/application-builder-form-element [5]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/3c68c1dc-31f2-47f9-9723-bf06abe761d5/Untitled%201.png [6]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/743f7e55-467f-4acf-b276-12bbeaab4df4/Untitled%202.png - [7]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/b07285b6-777b-44b2-86ad-4bbb4acfb0f5/Untitled%203.png - [8]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/820cea6d-8d59-485c-bbe4-db29bf3231a7/Send%20email.png",,baserow_user_docs,https://baserow.io/user-docs/element-events + [7]: https://baserow.io/user-docs/automation-actions#send-a-slack-message + [8]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/b07285b6-777b-44b2-86ad-4bbb4acfb0f5/Untitled%203.png + [9]: https://baserow.io/user-docs/automation-actions#ai-prompt + [10]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/820cea6d-8d59-485c-bbe4-db29bf3231a7/Send%20email.png",application builder,baserow_user_docs,https://baserow.io/user-docs/element-events 176,Heading element,application-builder-heading-element,Baserow Application Builder heading element,"# Application Builder - Heading element A heading element defines the titles of sections within a [page](/user-docs/pages-in-the-application-builder). Heading elements help organize content and improve readability by providing structure to pages. -In this section, we’ll set up a heading element, the configuration options, and how it generally works. +In this section, we’ll set up a heading element, the configuration options, and how it generally works. ## Overview @@ -21734,17 +21867,17 @@ Now, you can configure the heading's properties to make it function and look the Baserow has several heading levels that can be customized according to your requirements. -The heading levels, ranging from `

` to `

` , indicate different levels of importance and hierarchy. +The heading levels, ranging from `

` to `

` , indicate different levels of importance and hierarchy. -The `

` tag represents the highest level of importance, typically used for the main title of the page, while `

` represents the lowest level of importance. +The `

` tag represents the highest level of importance, typically used for the main title of the page, while `

` represents the lowest level of importance. ![Heading level][3] ## Heading text -The heading element has a text field to enter the heading text and that can be changed by clicking on it. +The heading element has a text field to enter the heading text and that can be changed by clicking on it. -You can enter static text here. However, if you've connected to a [data source](/user-docs/data-sources), all the fields from the [data source](/user-docs/data-sources) will also become available. Select a field from the data source to fetch data dynamically. +You can enter static text here. However, if you've connected to a [data source](/user-docs/data-sources), all the fields from the [data source](/user-docs/data-sources) will also become available. Select a field from the data source to fetch data dynamically. ![Heading text][4] @@ -21764,9 +21897,9 @@ By adjusting the horizontal alignment property, you can create a more balanced a ## Heading font color -You can easily modify the font color of headings in the Application Builder. +You can easily modify the font color of headings in the Application Builder. -Navigate to the page where you can edit the heading you want to modify and select the heading element within the editor. Change the font color of a heading element using the Font property within a General tab. +Navigate to the page where you can edit the heading you want to modify and select the heading element within the editor. Change the font color of a heading element using the Font property within a General tab. Click on the color picker or input field next to the font color option. @@ -21823,7 +21956,7 @@ Once you've placed the text element on the editor, you can customize it to make ## Text element horizontal alignment -You can horizontally align a text element using the horizontal alignment property. This will align the element on the page. +You can horizontally align a text element using the horizontal alignment property. This will align the element on the page. This property offers several options to achieve the desired layout: @@ -21837,11 +21970,11 @@ This property offers several options to achieve the desired layout: You can choose between the Plain text or Markdown format. -Plain text is basic and universal, while Markdown offers more advanced formatting options. +Plain text is basic and universal, while Markdown offers more advanced formatting options. -Markdown offers more advanced options for formatting text, like headings, bold, italics, and bulleted lists. +Markdown offers more advanced options for formatting text, like headings, bold, italics, and bulleted lists. -You can use [Markdown](https://www.markdownguide.org/basic-syntax/) syntax in the text element, allowing you to format text with titles, paragraphs, links, images, etc. Once you're familiar with Markdown syntax, you can add structure to the text. +You can use [Markdown](https://www.markdownguide.org/basic-syntax/) syntax in the text element, allowing you to format text with titles, paragraphs, links, images, etc. Once you're familiar with Markdown syntax, you can add structure to the text. ![Text format markdown][5] @@ -21883,7 +22016,7 @@ Now, you'll customize the link's behavior and appearance by configuring its prop ## Linking to pages -The Application Builder allows you to create links that, when clicked, take users to a designated page within your application. +The Application Builder allows you to create links that, when clicked, take users to a designated page within your application. You can control whether the linked page opens in the same browser tab (replacing the current content) or in a new tab altogether. Choosing the right option depends on your application's structure and user flow. Here's a quick guideline: @@ -21900,7 +22033,7 @@ This feature lets you link to a different page in the application. When you navi Navigating to a path is about moving to a specific location within the application, which is identified by its path in the application's structure. -You need to first add a parameter via `:parameter` . [Path parameters](/user-docs/application-builder-page-settings#path-parameters) can be used to load data, depending on the provided parameter dynamically. +You need to first add a parameter via `:parameter` . [Path parameters](/user-docs/application-builder-page-settings#path-parameters) can be used to load data, depending on the provided parameter dynamically. The content will be generated automatically on that page depending on which specific detail the user has navigated to the detail page from. @@ -21917,9 +22050,9 @@ To link to an external website, input the URL into the link field using the foll You can link to an internal page and set it to open a separate page within your Baserow application. For example, when the user clicks on a button, you want to display the row details. 1. **Map row ID:** Ensure the row ID field in the [data source](/user-docs/data-sources) configuration is properly mapped. This will be used to identify the specific row when displaying details. - + > Determine the [data source](/user-docs/data-sources) that contains the information you want to show. This should be the same [data source](/user-docs/data-sources) that provides the details on the current page, or it could be a different one. - > + > 2. **Create a link:** - Navigate to the element settings for the button or link you want to use to access the details page. - Open the **General** tab. @@ -21928,9 +22061,9 @@ You can link to an internal page and set it to open a separate page within your ![Link row to a details page][4] -That’s it. Now when the user clicks on a particular button, they will be taken to the page with the specific details. +That’s it. Now when the user clicks on a particular button, they will be taken to the page with the specific details. -That’s it. Now when the user clicks on a particular button, they will be taken to the page with the specific details. +That’s it. Now when the user clicks on a particular button, they will be taken to the page with the specific details. ## Link variant @@ -21947,7 +22080,7 @@ When it comes to the appearance of buttons, you have two options: ""auto"" and " ## Link horizontal alignment -You can horizontally align a link element using the horizontal alignment property. This will align the link on the page. +You can horizontally align a link element using the horizontal alignment property. This will align the link on the page. - **Center:** Aligns the link text in the middle of its container horizontally. - **Left:** Aligns the link text to the left edge of its container. @@ -21955,9 +22088,9 @@ You can horizontally align a link element using the horizontal alignment propert ## Link button color -The color of a button refers to the visual appearance of the button itself. You can easily modify the link color in the Application Builder. +The color of a button refers to the visual appearance of the button itself. You can easily modify the link color in the Application Builder. -Navigate to the page where you can edit the button you want to modify and select the link element within the editor. Change the color using the Button color property in a General tab. +Navigate to the page where you can edit the button you want to modify and select the link element within the editor. Change the color using the Button color property in a General tab. Click on the color picker or input field next to the color option. @@ -22007,7 +22140,7 @@ Learn more about how to [add and remove an element from a page](/user-docs/add-a ![Add and configure table elements][3] -Now that you've added the image, it's time to customize its appearance and functionality. This is where image properties come in, including those related to [style](/user-docs/element-style). +Now that you've added the image, it's time to customize its appearance and functionality. This is where image properties come in, including those related to [style](/user-docs/element-style). ## Image file @@ -22033,7 +22166,7 @@ The Application Builder allows you to bind the URL to [data sources](/user-docs/ ## Image alt text -Image alt text, which is short for ""alternative text,"" is important for accessibility and search engine optimization (SEO). +Image alt text, which is short for ""alternative text,"" is important for accessibility and search engine optimization (SEO). An image alt text provides a textual description of the image for users who may not be able to see it. The alt text is displayed if the image fails to load properly in a web browser and read aloud by screen readers for the visually impaired, ensuring everyone can understand the image’s purpose. @@ -22041,7 +22174,7 @@ The Application Builder allows you to bind the text to [data sources](/user-docs ## Image element horizontal alignment -Horizontal alignment refers to placing an image to the left, center, or right side of its parent element, which can be the entire page or a specific section. +Horizontal alignment refers to placing an image to the left, center, or right side of its parent element, which can be the entire page or a specific section. - **Left:** The image will be positioned flush against the left edge of its container. - **Center:** The image will be horizontally centered within its container. @@ -22055,9 +22188,9 @@ This helps you manage how images are displayed on the page. By setting the image There are two options to control image size: -- **Max width (percentage):** This determines the image's maximum width relative to its container. This ensures images don't overflow their container horizontally. +- **Max width (percentage):** This determines the image's maximum width relative to its container. This ensures images don't overflow their container horizontally. The percentage value must be between 0 and 100, to reflect the desired portion of the container's width the image should occupy. Percentages provide flexible layouts that adapt to different screen sizes. -- **Max height (pixels):** This defines the image's maximum height in pixels. This prevents large images from disrupting the layout. +- **Max height (pixels):** This defines the image's maximum height in pixels. This prevents large images from disrupting the layout. The value must be between 5 and 3000 pixels to constrain the image's vertical dimension. Pixels provide a fixed value for specific height requirements. ## Image constraint @@ -22077,7 +22210,7 @@ For image element, here are the constraints: [4]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/354c98bb-cdac-4796-9134-aaf1e73859df/Untitled%202.png",,baserow_user_docs,https://baserow.io/user-docs/application-builder-image-element 180,Text input element,application-builder-text-input-element,Text input element in Baserow App Builder,"# Application Builder - Text input element -The text input element allows users to enter text data in your application. +The text input element allows users to enter text data in your application. This section will guide you through setting up a text input element and explain each configuration option in detail. @@ -22087,7 +22220,7 @@ This section will guide you through setting up a text input element and explain The text input element allows users to enter textual information. This is important for collecting various data types, including names, email addresses, URLs, and phone numbers. Text inputs are commonly used together with the [form element][2] to create user input forms. -For the text input element, you can configure the element properties, and [customize its appearance](/user-docs/element-style) from the element settings. +For the text input element, you can configure the element properties, and [customize its appearance](/user-docs/element-style) from the element settings. ## Add and configure text input elements @@ -22099,7 +22232,7 @@ Learn more about how to [add and remove an element from a page](/user-docs/add-a ![Add and configure table elements][3] -Now, you'll configure the text input's properties to make it function and look the way you want. +Now, you'll configure the text input's properties to make it function and look the way you want. ## Text input properties @@ -22140,7 +22273,7 @@ Let's go over how to set up column containers. This will help your interface mat ## Overview -A column container serves as a foundational element in organizing your application. It allows you to arrange content for an intuitive user experience. With column containers, you gain the flexibility to structure and customize your layout. +A column container serves as a foundational element in organizing your application. It allows you to arrange content for an intuitive user experience. With column containers, you gain the flexibility to structure and customize your layout. For the column element, you can configure the element properties and [style](/user-docs/element-style) from the element settings. @@ -22154,11 +22287,11 @@ Learn more about how to [add and remove an element from a page](/user-docs/add-a ![Add and configure table elements][1] -After defining the column layout for your application, you can customize its appearance and behavior by configuring the container's properties. +After defining the column layout for your application, you can customize its appearance and behavior by configuring the container's properties. ## Column layout -The layout option varies from 1-6 columns and allows you to determine the desired arrangement of elements within your interface. +The layout option varies from 1-6 columns and allows you to determine the desired arrangement of elements within your interface. By specifying a number between 1 and 6, you define the structure and presentation of the page. This impacts how data is organized and displayed, influencing usability and visual appeal. @@ -22166,7 +22299,7 @@ By specifying a number between 1 and 6, you define the structure and presentatio ## Space between columns -The space between columns is adjustable, ensuring optimal spacing and visual clarity within your interface. +The space between columns is adjustable, ensuring optimal spacing and visual clarity within your interface. This field's value must be less than or equal to 2000. @@ -22215,7 +22348,7 @@ Now, you'll configure the button's properties to make it function and look the w ## Button horizontal alignment -There are several ways to achieve horizontal alignment for your button element within the Application Builder. +There are several ways to achieve horizontal alignment for your button element within the Application Builder. The horizontal alignment property controls how a button element is positioned within its container on the page. This helps you create a visually appealing and user-friendly page. @@ -22238,13 +22371,13 @@ When it comes to the appearance of buttons, you have two options: ""auto"" and " ## Button color -Before publishing the application button, consider styling the buttons. +Before publishing the application button, consider styling the buttons. -You can easily modify the color in the Application Builder. +You can easily modify the color in the Application Builder. Learn more about [element style](/user-docs/element-style). -Navigate to the page where you can edit the heading you want to modify and select the heading element within the editor. Change the color of a heading element using the property within a General tab. +Navigate to the page where you can edit the heading you want to modify and select the heading element within the editor. Change the color of a heading element using the property within a General tab. Click on the color picker or input field next to the color option. @@ -22288,9 +22421,9 @@ In this section, we'll guide you through the process of setting up a table eleme For the table element, you can configure the element properties and [style](/user-docs/element-style) from the element settings. -To get started, you need to connect a pre-configured [data source](/user-docs/data-sources) to fetch data from data sources and display it on the table. +To get started, you need to connect a pre-configured [data source](/user-docs/data-sources) to fetch data from data sources and display it on the table. -As soon as you add a table element to the page, the element settings will become available and you can start setting it up. +As soon as you add a table element to the page, the element settings will become available and you can start setting it up. ![Baserow Application Builder table element][1] @@ -22309,14 +22442,14 @@ Now, you'll configure the table's properties to make it function and look the wa ## Table data source > To list rows in the table, set the [data source](/user-docs/data-sources) service type as *List rows*. Learn more about data sources and how to configure them. -> +> -After adding a table element to the page from **Elements**, you need to select the [data source](/user-docs/data-sources) which you want to import your data from. This is done from the **General** tab of the element settings. +After adding a table element to the page from **Elements**, you need to select the [data source](/user-docs/data-sources) which you want to import your data from. This is done from the **General** tab of the element settings. ![Data source][3] -As soon as you select a **Data source**, you'll see the Fields configuration appear below. +As soon as you select a **Data source**, you'll see the Fields configuration appear below. ## Table items per page @@ -22328,13 +22461,13 @@ If there are more items to display than the defined number, a **Show More** butt This is where you configure how the data will be mapped to a table to specify how exactly you want to display your data. -You can configure some additional parameters for the table element and map the element fields to the data source to specify what data needs to be displayed and how. +You can configure some additional parameters for the table element and map the element fields to the data source to specify what data needs to be displayed and how. For each field, you can add a Name, Type, Value, and Link text. You can also configure the position of the fields. ### Add a new field -You can add new fields using the **Add field** button. After adding the field, you need to specify its Name, Type, Value, and Link text. +You can add new fields using the **Add field** button. After adding the field, you need to specify its Name, Type, Value, and Link text. Fields can have the following settings: @@ -22366,7 +22499,7 @@ If the Text type is selected, you can also set the value of the field. You can enter a specific value for the selected field so that the rows display that value. -You can enter static text here. However, if you've connected to a [data source](/user-docs/data-sources), all the fields from the data source will also become available for your choice. +You can enter static text here. However, if you've connected to a [data source](/user-docs/data-sources), all the fields from the data source will also become available for your choice. ![Enter value][5] @@ -22374,7 +22507,7 @@ You can enter static text here. However, if you've connected to a [data source]( If the Link type is selected, you can also set the link text of the field. -Similar to the text value, you can enter static text here. However, if you've connected to a [data source,](/user-docs/data-sources) all the fields from the data source will also become available for your choice. +Similar to the text value, you can enter static text here. However, if you've connected to a [data source,](/user-docs/data-sources) all the fields from the data source will also become available for your choice. ![Enter Link text][6] @@ -22389,7 +22522,7 @@ If the Link type is selected, you can also link to an internal page or custom UR If the Link type is selected, you can link to an internal page through a button and set it to open a separate page within the Baserow application to view the details of a row. > In the detail page, you should link to the same data source that the table to which you want to connect the details is linked to. -> +> For example, let’s say you have a list of projects in a table. When the user clicks on the link associated with a specific project, you want to display this project’s details. @@ -22397,11 +22530,11 @@ You need to first add a parameter via `:parameter` . Path parameters can be used ![Link row to a details page][8] -To link to a dynamic page, go to the element settings and open the General tab. From the **Navigate to** dropdown menu, set the detail page to which the table items are supposed to be linked. +To link to a dynamic page, go to the element settings and open the General tab. From the **Navigate to** dropdown menu, set the detail page to which the table items are supposed to be linked. ![ink to a dynamic page][9] -That’s it. Now when the user clicks on a particular link associated with a row, they will be taken to the page with the details of the row. +That’s it. Now when the user clicks on a particular link associated with a row, they will be taken to the page with the details of the row. The content for each row will be generated automatically on that page depending on which row the user has navigated to the detail page from. @@ -22413,13 +22546,13 @@ You can also do the same for a Button element. ## Button color -You can easily modify the color in the Application Builder. +You can easily modify the color in the Application Builder. -The color of a button refers to the visual appearance of the button itself. +The color of a button refers to the visual appearance of the button itself. You can configure the color of the **Show more** button to show more items in the list. -Navigate to the page where you can edit the heading you want to modify and select the heading element within the editor. Change the color of a heading element using the property within a General tab. +Navigate to the page where you can edit the heading you want to modify and select the heading element within the editor. Change the color of a heading element using the property within a General tab. Click on the color picker or input field next to the color option. @@ -22492,9 +22625,9 @@ In this section, we'll guide you through the process of setting up a form elemen For the form element, you can configure the element properties, [style](/user-docs/element-style), and [events](/user-docs/element-events) from the element settings. -The form layout is customizable and you can have any number of fields, specifying the type of each field. +The form layout is customizable and you can have any number of fields, specifying the type of each field. -For example, if you have a job board, each job detail page can contain a form through which visitors can apply for that job. +For example, if you have a job board, each job detail page can contain a form through which visitors can apply for that job. The Application Builder allows you to bind the text to [data sources](/user-docs/data-sources). This enables the text to update dynamically based on user input or application logic. @@ -22524,15 +22657,15 @@ Now, let's see what element types are available: In the General tab, you customize the submit button and button color. -You can enter static text as the *Submit button* value. However, if you've connected to a [data source](/user-docs/data-sources), all the fields from the data source will also become available for your choice. +You can enter static text as the *Submit button* value. However, if you've connected to a [data source](/user-docs/data-sources), all the fields from the data source will also become available for your choice. ![Submit button][3] ## Form button color -You can easily modify the color in the Application Builder. +You can easily modify the color in the Application Builder. -Navigate to the page where you can edit the heading you want to modify and select the heading element within the editor. Change the color of a heading element using the property within a General tab. +Navigate to the page where you can edit the heading you want to modify and select the heading element within the editor. Change the color of a heading element using the property within a General tab. Click on the color picker or input field next to the color option. @@ -22608,7 +22741,7 @@ The choice element has the following settings: - **Default value:** This pre-selects an option from the list. If no default value is chosen, the first option is usually selected by default. - **Placeholder:** This provides a hint to the user about what they should select when the choice is empty. - **Required:** When enabled, users must choose an option from the list before continuing. This ensures they provide a necessary selection. - - **Allow multiple values**: This option determines whether the element allows users to select multiple choices. + - **Allow multiple values**: This option determines whether the element allows users to select multiple choices. - **Display**: This option controls how the element is displayed. You can choose between two options: - **Dropdown**: This option presents a dropdown menu where users can select one or more options. - **Checkboxes**: This option displays a list of checkboxes, allowing users to select multiple options by clicking on individual checkboxes. @@ -22616,7 +22749,7 @@ The choice element has the following settings: - **Value:** An internal identifier associated with the option. This value is typically used to store the user's selection in your application. - **Name:** The text displayed to the user when presenting the options in the menu. Choose clear and concise names that accurately reflect the corresponding value. -You can populate the options with data retrieved from data sources. +You can populate the options with data retrieved from data sources. [1]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/99a6fa85-1562-485a-a9d5-1b8833a9501e/Choice%20element%20for%20Application%20Builder%20.png @@ -22655,7 +22788,7 @@ Now, you'll configure the checkbox's properties to make it function and look the ## Configure checkbox element -When setting it up, you'll have some configuration options, like deciding what each choice represents or customizing its appearance. It's like tailoring the checkbox to fit your specific needs. +When setting it up, you'll have some configuration options, like deciding what each choice represents or customizing its appearance. It's like tailoring the checkbox to fit your specific needs. The checkbox element has the following common settings: @@ -22668,7 +22801,7 @@ The checkbox element has the following common settings: [2]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/4281431d-3a77-448c-b627-1a7426a088b6/Untitled%201.png",,baserow_user_docs,https://baserow.io/user-docs/application-builder-checkbox-element 187,iFrame element,application-builder-iframe-element,iFrame element in Baserow Application Builder,"# Application Builder - iFrame element -The iFrame element allows you to insert custom snippets of code anywhere on your page. +The iFrame element allows you to insert custom snippets of code anywhere on your page. In this section, we will guide you through setting up an IFrame element and explain each configuration option in detail. @@ -22698,7 +22831,7 @@ That's it. Now the IFrame will appear. Using IFrames can be handy for integrating content from other sources into your application seamlessly. -You can set the source as a URL or an Embed. +You can set the source as a URL or an Embed. - **URL:** Input the link to the external resource to be embedded. Ensure that you have control over, or trust the URL entered. - **Embed:** Input the raw HTML content to be embedded. @@ -22709,9 +22842,9 @@ For example, if you wanted to embed a map or form on a page, you could use an IF ## IFrame content -You can enter static text here. However, if you've connected to a [data source](/user-docs/data-sources), all the fields from the data source will also become available. +You can enter static text here. However, if you've connected to a [data source](/user-docs/data-sources), all the fields from the data source will also become available. -First, you need to get your embed code. +First, you need to get your embed code. To pass dynamic data, create a corresponding field in the pre-configured [data source](/user-docs/data-sources). You can create a [text field](/user-docs/single-line-text-field) in the table and add the embed code or create a [URL field](/user-docs/url-field) with the external link. @@ -22735,7 +22868,7 @@ Here's an example of setting the iframe height to 500px: [3]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/cf1bd718-7203-480a-8f1c-f82c007b9dd4/Untitled%202.png",,baserow_user_docs,https://baserow.io/user-docs/application-builder-iframe-element 188,Login element,application-builder-login-element,Login element in Baserow Application Builder,"# Application Builder - Login element -The login element allows users to access your application with secure credentials. +The login element allows users to access your application with secure credentials. Let's look at how to set up login functionality in your application using the login element. This element lets you build and handle user accounts right inside the Application Builder. @@ -22759,7 +22892,7 @@ Now, you'll customize the login's behavior and appearance by configuring its pro To configure the login element, you'll first need to choose the [source of your user data](/user-docs/user-sources). This determines where the application will verify user credentials during the login process.  -The user source is essentially how your application identifies and verifies users. It establishes the foundation for secure login functionality. +The user source is essentially how your application identifies and verifies users. It establishes the foundation for secure login functionality. Adding a user source allows the application to recognize and authenticate users effectively. By adding a user source, you define how users will authenticate themselves within the application. This typically involves configuring settings related to username and password verification. @@ -22785,7 +22918,7 @@ Learn more about the [password field type](/user-docs/password-field). ## What happens after login? -Once a user successfully logs in with a valid username and password, you can set the visibility of each element in your application according to a user's authentication status. +Once a user successfully logs in with a valid username and password, you can set the visibility of each element in your application according to a user's authentication status. ![What happens after login in Baserow?][4] @@ -22795,7 +22928,7 @@ Clicking the logout button will end the user's session and return them to the lo ![Baserow logout button will end the user's session ][7] -## Troubleshooting +## Troubleshooting **When a user successfully logs in, the next action after login is not initiated** @@ -22860,14 +22993,14 @@ You can set a different visibility level for each element in your application. T ![Visibility roles for Application Builder ][6] -Visibility roles provide a granular level of control over user access. By defining roles within your application and assigning them to users, you can determine which elements each user can see. +Visibility roles provide a granular level of control over user access. By defining roles within your application and assigning them to users, you can determine which elements each user can see. -Before using visibility roles, you'll need to establish the different user roles within your application. +Before using visibility roles, you'll need to establish the different user roles within your application. 1. [Create a field in the table][7] to store the assigned role for each user based on their permissions. 2. In the Application Builder, navigate to your [User Source][3] settings. There, you'll define a role field. This field will be used to map user data in your [User Source][3] to the roles you established. or use the default role to assign appropriate roles to each user. 3. Navigate to the element's Visibility tab within the editor. This allows you to define visibility based on user roles: - + - **All roles**: This option makes the element visible to all users, regardless of their role. - **Allow roles**: Choose this option to define which specific user roles can see the element. Only users assigned to the selected roles will have access. - **Disallow roles**: This option hides the element from users assigned to the selected roles. All other users will still see the element. @@ -22944,22 +23077,22 @@ Row selection enables bulk editing, deletion, copying data across rows, or apply ### Individual cell selection - - Click any cell to select it for editing or as a paste target. + - Click any cell to select it for editing or as a paste target. - Click and drag across multiple cells to select ranges, extending your selection horizontally across fields or vertically down rows. Selected cells appear highlighted, showing exactly where your pasted data will land. ### Row selection - - Click row numbers on the left side to select entire rows, which highlights all cells in that row across all visible fields. - - Hold Shift and click another row number to select everything between your first and last selection. + - Click row numbers on the left side to select entire rows, which highlights all cells in that row across all visible fields. + - Hold Shift and click another row number to select everything between your first and last selection. - Hold Ctrl (Windows) or Cmd (Mac) and click individual row numbers to select multiple non-adjacent rows. > **Selection limit:** Baserow allows selecting up to 200 rows at once due to lazy loading, which loads data progressively as you scroll rather than loading entire tables. This limitation enables smooth performance with tables containing millions of rows. ### Multi-cell selection for pasting -Click and drag to select rectangular areas of cells when you want to paste data into specific field ranges. +Click and drag to select rectangular areas of cells when you want to paste data into specific field ranges. Your selection rectangle must match the dimensions of your copied data for proper alignment. If you're pasting 3 columns by 5 rows, select a 3×5 cell area as your target. @@ -22988,22 +23121,22 @@ Move or duplicate data between rows in the same table or across different tables ## Field type considerations -Understanding how different field types handle pasted data helps prevent unexpected results and ensures clean imports. Verify field types before pasting. Check that your source data format matches the destination field types. +Understanding how different field types handle pasted data helps prevent unexpected results and ensures clean imports. Verify field types before pasting. Check that your source data format matches the destination field types. ### Compatible field types -- Text pasted into text fields works universally; single-line text and long text fields accept any pasted content. -- Numbers must be numeric characters to paste successfully into number fields; text strings are rejected. -- Dates require proper date formatting (ISO format like 2024-03-15, works best). +- Text pasted into text fields works universally; single-line text and long text fields accept any pasted content. +- Numbers must be numeric characters to paste successfully into number fields; text strings are rejected. +- Dates require proper date formatting (ISO format like 2024-03-15, works best). - Boolean fields accept variations of true/false, yes/no, or 1/0. ### Special field handling -Single select and multiple select fields accept pasted values that match existing options exactly. If you paste ""Pending"" into a status field with options ""Pending,"" ""Approved,"" and ""Rejected,"" it works perfectly. However, pasting ""pending"" (lowercase) creates a mismatch unless you have that exact option. +Single select and multiple select fields accept pasted values that match existing options exactly. If you paste ""Pending"" into a status field with options ""Pending,"" ""Approved,"" and ""Rejected,"" it works perfectly. However, pasting ""pending"" (lowercase) creates a mismatch unless you have that exact option. ### Paste failures -When pasted data doesn't match field type expectations, those cells remain empty rather than showing error messages. If you paste ""abc"" into a number field, the cell stays blank. +When pasted data doesn't match field type expectations, those cells remain empty rather than showing error messages. If you paste ""abc"" into a number field, the cell stays blank. Review your paste results immediately to catch these mismatches and correct them before continuing work. @@ -23057,24 +23190,28 @@ Yes, but paste operations work differently in filtered views. New rows created t Still need help? If you're looking for something else, please feel free to make recommendations or ask us questions; we're ready to assist you. -- [Ask the Baserow community](https://community.baserow.io) +- [Ask the Baserow community](https://community.baserow.io) - [Contact support](/contact) for questions about Baserow or help with your account. [1]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/e83fb1b4-6547-437d-8652-d723fd83b35b/Paste%20a%20single%20value%20into%20all%20selected%20cells.jpg",,baserow_user_docs,https://baserow.io/user-docs/paste-data-into-baserow-table 191,AI prompt field,ai-field,AI prompt field in Baserow table,"# AI prompt field in Baserow -The AI prompt field lets you generate text, summaries, classifications, and insights directly in your Baserow tables using dynamic prompts that reference other fields. It supports [multiple AI providers][1] and can process documents (PDF, DOCX, TXT, MD) for automated analysis. +The AI prompt field lets you generate text, summaries, classifications, and insights directly in your Baserow tables using dynamic prompts that reference other fields. It supports [multiple AI providers][1] and can process documents (PDF, DOCX, TXT, MD) for automated analysis. > The AI prompt field is available on Premium plans and higher. [Upgrade your subscription](https://baserow.io/pricing) to access this feature. ## Overview -The AI prompt field transforms your Baserow tables into intelligent automation engines. Reference data from [other fields][2] to create dynamic prompts, classify content, summarize documents, or generate creative text, all without leaving your database. Each cell includes a generate button that processes your prompt on demand. +The AI prompt field transforms your Baserow tables into intelligent automation engines. You can reference data from [other fields][2] to create dynamic prompts, classify content, summarize documents, or generate creative text. + +These prompts can reference other fields in your table, making responses contextual and dynamic. Configure the model, temperature, and output format, then click generate in any row to produce AI-powered results. ## How it works -AI prompt fields use large language models to process prompts you create. These prompts can reference other fields in your table, making responses contextual and dynamic. Configure the model, temperature, and output format, then click generate in any row to produce AI-powered results. +AI prompt fields use large language models (LLMs) to process prompts you create. Unlike simple text inputs, these prompts function like formulas. You can combine static text, field references, and data manipulation functions to guide the AI. + +Each cell includes a generate button that processes your prompt on demand. You can use formulas to construct precise inputs and automatically regenerate AI content when your source data changes, keeping your database always up to date. **Common use cases:** - Summarize customer feedback from long text fields @@ -23088,46 +23225,52 @@ AI prompt fields use large language models to process prompts you create. These ## Before you begin Ensure AI is configured in your workspace: -1. Check that [generative AI is configured](https://baserow.io/user-docs/configure-generative-ai) at workspace or instance level -2. [Verify your plan][4] includes AI prompt field access (Premium or higher) +1. Check that [generative AI is configured](https://baserow.io/user-docs/configure-generative-ai) at the workspace or instance level +2. [Verify your plan][4] includes AI prompt field access 3. Have your source data ready in other table fields ## Create an AI prompt field ### Basic setup -1. Click **+ Add a field** in your table +1. In your table, click the plus sign `+` to [add a new field](/user-docs/adding-a-field). 2. Select **AI prompt** from the field type options 3. Name your field (e.g., ""Summary"", ""Classification"", ""Generated Description"") ### Configure AI settings -| Setting | Purpose | +| Setting | Purpose | |---------|---------| -| **AI type & model** | Choose provider (Baserow, OpenAI, Anthropic, etc.) and specific model. GPT-3.5 for speed, GPT-4 for quality | -| **Temperature** | Control creativity (0-2). 0-0.3 for factual, 0.7-1.0 for creative | +| **AI type & model** | Choose your provider (Baserow, OpenAI, Anthropic, etc.) and model (e.g., GPT-4o, Claude 3.5) | +| **Temperature** | Control creativity (0-2). Use 0–0.3 for factual tasks; 0.7+ for creative writing | | **File field** | The first compatible file in the field | -| **Output type** | Format the response. ""Text"" for open-ended, ""Choices"" for classification | +| **Output type** | Format the response. Use ""Text"" for open answers or ""Choices"" for strict classification | +| **Regenerate** | Toggle ""Regenerate when referenced fields change"" to keep AI results in sync with your data automatically | +| **Prompt** | The instruction sent to the AI. This supports the formula builder for complex logic | ### Build your prompt -1. Click the **Prompt** field in the configuration panel -2. Write your instruction (e.g., ""Summarize the following customer feedback:"") -3. Reference other fields by selecting from the list -4. Example prompt: `Classify this review as Positive, Neutral, or Negative: {Fields > Income 2025}` -5. Click **Create** +The prompt editor is a powerful [formula builder][5]. You are not limited to simple text; you can use inputs, data, operators, and functions to craft the perfect context. + + 1. Click the **Prompt** field in the configuration panel + 2. Write your instruction (e.g., ""Summarize the following customer feedback:"") + 3. Reference other fields by selecting from the list or use the formula syntax to reference fields or manipulate data (e.g., `concat('Classify this review: ', field('Review Text'))`) + 4. Click **Create** ### Generate results -Each row now displays a **Generate** button in the AI prompt field. Click it to process the prompt using that row's data. Results appear in the cell once generation completes. +You have two ways to generate content: -![AI prompt field with generate button][5] + - **Single Row**: Click the **Generate** button in a specific cell to process just that item. Results appear in the cell once generation completes. + - **Bulk Generation**: Click the **Generate all AI values** button in the [field header][6] to process every empty or outdated row in the view at once. + +![AI prompt field with generate button][7] ## Use AI with file fields ### Supported file formats -The AI prompt field can analyze text-based documents directly: +The AI prompt field can analyze text-based documents directly. This is ideal for extracting invoice numbers, summarizing contracts, or standardizing resumes. | Format | Extension | Common Use | |--------|-----------|------------| @@ -23138,36 +23281,34 @@ The AI prompt field can analyze text-based documents directly: ### Setup file analysis -1. Create or identify a [file field](/user-docs/file-field) containing your documents -2. In the AI prompt field configuration, connect to that file field -3. Write a prompt that instructs processing (e.g., ""Extract the invoice total and date from this document"") -4. The AI uses the first compatible file in the row as context + 1. Create or identify a [file field](/user-docs/file-field) containing your documents + 2. In the AI prompt configuration, reference the file field within your formula/prompt + 3. Write a prompt that instructs processing (e.g., ""Extract the total amount and due date from the invoice in "" & field('Invoice File')"") -**Example workflow:** -- Upload invoice PDFs to a file field -- Create AI prompt field with prompt: ""Extract: Invoice Number, Date, Total Amount, Vendor Name"" -- Click generate to automatically extract structured data +The AI will process the first compatible file found in that cell. -![File field support for AI analysis][6] +![File field support for AI analysis][8] -## Output types explained +## Output types ### Text output + Returns free-form AI-generated text. Best for summaries, descriptions, or creative content where responses vary widely. **Example:** ""Write a professional email response to this customer inquiry: {Support Ticket}"" ### Choices output -Constrains AI to select from predefined options. Ideal for classification, categorization, or structured responses. + +Constrains the AI to select from predefined options. This transforms qualitative data (text) into quantitative data (categories). **Setup:** 1. Select ""Choices"" as output type -2. Define your options (e.g., ""Positive, Neutral, Negative"") +2. Define your options (e.g., ""High Priority"", ""Medium Priority"", ""Low Priority"") 3. Prompt: ""Classify the sentiment: `Fields > Review Text`"" -The AI will return only one of your specified choices, ensuring consistent categorization. +The AI will analyze your prompt and return only one of the specific options you defined. -## Temperature settings guide +## Temperature settings Temperature controls response randomness: @@ -23178,31 +23319,35 @@ Temperature controls response randomness: | **0.7 - 1.0** | Creative, varied | Marketing copy, brainstorming, creative content | | **1.1 - 2.0** | Highly experimental | Rarely recommended; very unpredictable | -**Pro tip:** Start at 0.5 and adjust based on results. Lower if responses are too random, raise if they're too repetitive. +> **Pro tip:** Start at 0.5 and adjust based on results. Lower if responses are too random, raise if they're too repetitive. +![Regenerate when referenced fields change][9] ## Troubleshooting **The self-hosted version of Baserow has no AI prompt** -You need to [configure the AI prompt field][7] to enable it in self-hosted instances. The settings you need can be found in the [developer documentation][7]. - -For example, to configure the AI field with OpenAI, you need to set `BASEROW_OPENAI_API_KEY` and `BASEROW_OPENAI_MODELS` +You need to [configure the AI prompt field][10] to enable it in self-hosted instances. The settings are located in your environment configuration in the [developer documentation][10]. +For example, to use OpenAI, you must set `BASEROW_OPENAI_API_KEY` and `BASEROW_OPENAI_MODELS` ## Frequently asked questions ### What AI models can I use with AI prompt fields? -Available models depend on your [generative AI configuration](/user-docs/configure-generative-ai). Self-hosted users can configure OpenAI, Anthropic, Ollama, OpenRouter or Mistral models. +Available models depend on your [generative AI configuration](/user-docs/configure-generative-ai). Cloud users have access to OpenAI models by default. Self-hosted users can configure OpenAI, Anthropic, Ollama, OpenRouter or Mistral models. -### Do AI prompt fields update automatically when source fields change? +### Do AI prompt fields update automatically? -No. AI prompt fields generate on demand when you click the generate button. This prevents unnecessary API calls and gives you control over when processing occurs. +Yes, if you enable it. In the field settings, toggle ""Regenerate when referenced fields change"". When this is enabled, any change to the source data (e.g., editing the text in a ""Notes"" field) will automatically trigger the AI to re-analyze and update the result. ### How much does it cost to use AI prompt fields? -Baserow Premium plans include AI prompt field usage. Monitor your usage through your provider's dashboard. +Baserow Premium plans include the use of AI prompts in the field. Monitor your usage through your provider's dashboard. + +### Can I use formulas inside the prompt? + +Yes. The prompt input supports the full Baserow formula language. You can use functions like `upper()`, `trim()`, or `if()` to clean or format your data before sending it to the AI. ### Can I reference multiple fields in one prompt? @@ -23214,7 +23359,7 @@ Common causes include unsupported file formats, corrupted files, or files exceed ### Can I bulk-generate results for multiple rows? -Currently, AI prompt fields require manual generation per row. For batch processing, click generate on each row sequentially, or use the [Baserow API](https://baserow.io/user-docs/database-api) to automate generation via scripts. +Yes. You can generate all AI values in one go by clicking the **Generate all AI values** button located in the field header. This is useful when importing large datasets that need immediate processing. ## Related documentation @@ -23227,9 +23372,9 @@ Currently, AI prompt fields require manual generation per row. For batch process - [Premium pricing plans](/user-docs/pricing-plans) - Upgrade for AI prompt field access ## Tutorials - - [How to enable and configure the AI field in Baserow][8] - - [How to transform data into actionable insights with Baserow AI][9] - - [How to use Baserow AI to analyze documents][10] + - [How to enable and configure the AI field in Baserow][11] + - [How to transform data into actionable insights with Baserow AI][12] + - [How to use Baserow AI to analyze documents][13] --- @@ -23240,17 +23385,20 @@ Currently, AI prompt fields require manual generation per row. For batch process [2]: https://baserow.io/user-docs/baserow-field-overview [3]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/11dc38d8-051a-481a-86b1-38f3c0c7484f/ai_field_improvements.webp [4]: https://baserow.io/user-docs/subscriptions-overview - [5]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/e34d40cf-315a-4c21-8a76-81432c96fc41/AI%20Field.png - [6]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/e9472557-303b-4107-a77e-bc14a622b0d7/File%20field%20support%20for%20the%20AI%20field.png - [7]: https://baserow.io/docs/installation/configuration - [8]: https://baserow.io/blog/configure-ai-field-in-baserow - [9]: https://baserow.io/blog/transform-data-into-insights-with-baserow-ai - [10]: https://baserow.io/blog/use-baserow-ai-analyze-documents",,baserow_user_docs,https://baserow.io/user-docs/ai-field + [5]: https://baserow.io/user-docs/understanding-formulas + [6]: https://baserow.io/user-docs/field-customization + [7]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/e34d40cf-315a-4c21-8a76-81432c96fc41/AI%20Field.png + [8]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/e9472557-303b-4107-a77e-bc14a622b0d7/File%20field%20support%20for%20the%20AI%20field.png + [9]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/5edffc08-d308-470b-b6a0-7614f6123217/AI%20field-1.png + [10]: https://baserow.io/docs/installation/configuration + [11]: https://baserow.io/blog/configure-ai-field-in-baserow + [12]: https://baserow.io/blog/transform-data-into-insights-with-baserow-ai + [13]: https://baserow.io/blog/use-baserow-ai-analyze-documents",field,baserow_user_docs,https://baserow.io/user-docs/ai-field 192,Repeat element,application-builder-repeat-element,Repeat element in Baserow Application Builder,"# Application Builder - Repeat element A repeat element allows you to show a list within a [page](/user-docs/pages-in-the-application-builder) by repeating the elements for each result in the data source. It allows you to repeat a set layout for each item in a container, making it easier to manage large amounts of similar data. -In this section, we’ll set up a repeat element, the configuration options, and how it generally works. +In this section, we’ll set up a repeat element, the configuration options, and how it generally works. @@ -23286,9 +23434,9 @@ Now, you can configure the element's properties to make it function and look the ## Repeat data source > To list rows in the repeat list, set the [data source](/user-docs/data-sources) service type as *List multiple rows*. Learn more about data sources and how to configure them. -> +> -After adding a repeat element to the page from **Elements**, you need to select the [data source](/user-docs/data-sources) which you want to import your data from. This is done from the **General** tab of the element settings. +After adding a repeat element to the page from **Elements**, you need to select the [data source](/user-docs/data-sources) which you want to import your data from. This is done from the **General** tab of the element settings. ![Repeat element screenshot][6] @@ -23303,7 +23451,7 @@ If there are more items to display than the defined number, a **Show more** butt This setting controls how repeated elements are arranged on the screen. You can choose between two orientations: * **Vertical:** Elements will be stacked on top of each other. -* **Horizontal:** Elements will be displayed in rows from left to right. +* **Horizontal:** Elements will be displayed in rows from left to right. When choosing horizontal orientation, you can further define the number of elements displayed per row for different device types. This allows you to customize the layout for optimal viewing on various screen sizes. @@ -23344,7 +23492,7 @@ Still need help? If you're looking for something else, please feel free to make [9]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/40f9ce8a-e81b-4740-a3b0-b7bbc635a37d/filter_order_and_search_for_published_applications.webp",,baserow_user_docs,https://baserow.io/user-docs/application-builder-repeat-element 193,AI formula generator,generate-formulas-with-baserow-ai,Generate formulas with AI in Baserow,"# Generate formulas with Baserow AI -Baserow's AI formula generator converts plain English descriptions into working formulas instantly. Describe what you want to calculate, and AI creates the formula syntax for you. +Baserow's AI formula generator converts plain English descriptions into working formulas instantly. Describe what you want to calculate, and AI creates the formula syntax for you. > AI formula generation is available on Premium plans and higher. [Upgrade your subscription](https://baserow.io/pricing) to access this feature. @@ -23399,16 +23547,16 @@ Select the AI type, model and temperature. [Configure generative AI](/user-docs/ **Prompt best practices:** -✅ **Be specific:** ""Calculate discount price: 10% off if quantity > 50, 20% off if > 100"" +✅ **Be specific:** ""Calculate discount price: 10% off if quantity > 50, 20% off if > 100"" ❌ **Too vague:** ""Give me a discount"" -✅ **Reference field names:** ""Use the Due Date and Priority fields"" +✅ **Reference field names:** ""Use the Due Date and Priority fields"" ❌ **Generic terms:** ""Use the date column"" -✅ **Specify output format:** ""Show result as percentage with 2 decimals"" +✅ **Specify output format:** ""Show result as percentage with 2 decimals"" ❌ **Unclear format:** ""Show as percent"" -✅ **Include edge cases:** ""If Price is blank, show 0"" +✅ **Include edge cases:** ""If Price is blank, show 0"" ❌ **Ignore edge cases:** Doesn't mention blank values **Example prompts:** @@ -23446,7 +23594,7 @@ Select the AI type, model and temperature. [Configure generative AI](/user-docs/ - Explicitly mention edge cases (""if field is empty, show 0"") - Reference exact field names in quotes - Break complex requests into simpler parts -- Try a different AI model +- Try a different AI model ### Generated formula shows an error @@ -23454,7 +23602,7 @@ Select the AI type, model and temperature. [Configure generative AI](/user-docs/ **Solutions:** - Check that all referenced fields exist in your table -- Verify field names match exactly +- Verify field names match exactly - Try regenerating with a clearer prompt - Review [formula field reference](/user-docs/understanding-formulas) for syntax rules - Contact support if the error persists @@ -23538,7 +23686,7 @@ AI can generate complex formulas, but Baserow has a formula length limit. Extrem [2]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/d4d75565-b60f-48ca-81d2-197ea7c91fde/generate%20formulas%20with%20AI.png [3]: https://baserow.io/blog/use-ai-generate-formulas-baserow [4]: https://baserow.io/blog/apply-discounts-dynamically-with-baserow-formulas",,baserow_user_docs,https://baserow.io/user-docs/generate-formulas-with-baserow-ai -194,OttoKit,suretriggers-integration,Integrate Baserow with OttoKit (formerly SureTriggers),"# Configure Baserow in OttoKit (formerly SureTriggers) +194,OttoKit,suretriggers-integration,Integrate Baserow with OttoKit (formerly SureTriggers),"# Configure Baserow in OttoKit (formerly SureTriggers) OttoKit offers the ability to create custom workflows that perform actions in response to specific triggers. You can seamlessly sync data from Baserow to over 600 apps using various triggers. @@ -23572,26 +23720,26 @@ With this integration, you can: - Row Updated - Runs when a row is updated. - Row Deleted - Runs when a row is deleted. -> Alternatively, use the [Webhook][3] app to trigger when the webhook receives data. +> Alternatively, use the [Webhook][3] app to trigger when the webhook receives data. **Actions** - Create Row - Creates a new row - Update Row - Updates an existing row - Delete Row - Deletes an existing row - - List Rows - Finds a page of rows in a given table - - Fetch Row - Finds a single row in a given table + - List Rows - Finds a page of rows in a given table + - Fetch Row - Finds a single row in a given table - Custom API Request - Make a custom API request to the Baserow API ## Configure Baserow trigger in OttoKit -Create a workflow in OttoKit. A trigger is an event that starts your workflow to streamline your processes and enhance productivity. +Create a workflow in OttoKit. A trigger is an event that starts your workflow to streamline your processes and enhance productivity. ### Select Baserow as the trigger app Browse the available apps and choose Baserow as the trigger app. A trigger app initiates a workflow based on specific events happening within the app. In this case, Baserow will be the starting point for your automated processes. -Choose the specific event in Baserow that will initiate your workflow. Actions within Baserow, such as adding a new row, updating or deleting an existing row, will prompt a response in another application. +Choose the specific event in Baserow that will initiate your workflow. Actions within Baserow, such as adding a new row, updating or deleting an existing row, will prompt a response in another application. > For more information on creating a webhook in Baserow, see the [support documentation](/user-docs/webhooks). @@ -23599,7 +23747,7 @@ Choose the specific event in Baserow that will initiate your workflow. Actions w ### Configure the trigger -To configure the trigger, add the webhook URL to Baserow to send notifications to other applications. +To configure the trigger, add the webhook URL to Baserow to send notifications to other applications. Select **POST** from the **Method** dropdown menu in Baserow. @@ -23614,7 +23762,7 @@ Test the webhook functionality by clicking the **Trigger test webhook** button i ### Save and test the workflow After selecting the trigger, OttoKit will guide you through defining the actions that follow the trigger event. These actions can involve sending data to another application, calculating, or creating notifications. - + Once you've configured the trigger and subsequent actions, save your workflow and run a test to ensure everything functions as expected. Baserow should initiate the workflow based on the chosen trigger event. ![test Baserow webhook in OttoKit][5] @@ -23654,7 +23802,7 @@ Yes, when you add the webhook URL to Baserow settings, you can specify which eve ### How fast do triggers fire? -OttoKit checks for new triggers every 1-15 minutes depending on your plan. +OttoKit checks for new triggers every 1-15 minutes depending on your plan. ## Troubleshooting common issues @@ -23950,9 +24098,9 @@ Data synchronization ensures your external data is consistent and up-to-date acr By automating the process of updating data, you can eliminate the need for manual updates in different systems. This guarantees that everyone within your organization has access to the latest information, reducing errors and increasing efficiency. -> Some sync sources (Baserow, Jira, GitHub, GitLab, Hubspot) are available with a [paid plan][3]. To access them, please upgrade your account by subscribing. +> Some sync sources (Baserow, Jira, GitHub, GitLab, Hubspot) are available with a [paid plan][3]. To access them, please upgrade your account by subscribing. -This section will guide you through the process of setting up and managing data sync in Baserow. +This section will guide you through the process of setting up and managing data sync in Baserow. For other ways to create a Baserow table, please see these articles: @@ -23963,7 +24111,7 @@ For other ways to create a Baserow table, please see these articles: ## Overview of data sync -Data sync creates live-updating tables that automatically pull information from external sources. Unlike manual imports, synced tables refresh automatically, ensuring everyone works with the latest data without manual updates. +Data sync creates live-updating tables that automatically pull information from external sources. Unlike manual imports, synced tables refresh automatically, ensuring everyone works with the latest data without manual updates. Data sync eliminates manual data entry and ensures single-source-of-truth consistency across platforms. @@ -23982,7 +24130,7 @@ Setting up any sync source follows the same basic pattern, with source-specific 2. Select your [sync source][1] from the available integration options 3. Enter connection details specific to your source (see source sections below) 4. Name your synced table descriptively to identify the data source -5. Select fields to sync. You don't need all fields; choose only what's relevant. +5. Select fields to sync. You don't need all fields; choose only what's relevant. > [Field types](/user-docs/baserow-field-overview) cannot be changed on synced fields. 6. Toggle on **Auto add new properties** to automatically add and synchronize newly available properties from the data source into the Baserow table. Note that for this to work, all properties must be synced. 7. Click **Create and sync table** to establish the connection @@ -23991,9 +24139,9 @@ Setting up any sync source follows the same basic pattern, with source-specific Your table is created immediately and begins syncing. Data appears as read-only with sync indicators (arrows) beside field names. -## Data sync sources +## Data sync sources -Data sync in Baserow can integrate with multiple sources: +Data sync in Baserow can integrate with multiple sources: | Source | Best for | Update frequency | Two-way sync | |--------|----------|------------------|--------------| @@ -24009,11 +24157,11 @@ Data sync in Baserow can integrate with multiple sources: ### Sync iCal feed -iCal feed sync is designed to bring calendar data into Baserow. The iCal calendar sync synchronizes automatically with the entries in the URL's calendar file. +iCal feed sync is designed to bring calendar data into Baserow. The iCal calendar sync synchronizes automatically with the entries in the URL's calendar file. It supports the ICS (Internet Calendar and Scheduling) file type. Simply provide the iCal URL from your calendar service. -This is useful for syncing shared calendars, project timelines, or event schedules across different platforms into a single database. +This is useful for syncing shared calendars, project timelines, or event schedules across different platforms into a single database. ### Sync PostgreSQL table @@ -24108,18 +24256,18 @@ Once a sync is established, you can easily manage and update it as needed. The [ With these integrations, you can synchronize data in external platforms directly into Baserow, simplifying workflows, improving collaboration, and making data management more efficient. -You have the flexibility to choose only the fields relevant to your workflow, which helps to keep your workspace clean and focused. +You have the flexibility to choose only the fields relevant to your workflow, which helps to keep your workspace clean and focused. > The sync table feature only supports field types like single text, number, date, and boolean. Calculated fields like Link to table, Lookup, Rollup and Formula cannot be synced. This is because the value of those fields might depend on other tables that have a different set of permissions. ### Trigger manual sync -While sync can be scheduled, you can manually refresh data anytime. This will refresh the data, pulling the latest information from the main source. +While sync can be scheduled, you can manually refresh data anytime. This will refresh the data, pulling the latest information from the main source. -To pull the latest data from your connected source into Baserow, +To pull the latest data from your connected source into Baserow, 1. Go to the synced table in Baserow and click on the three-dot menu to open the table options. - 2. Click **Sync table**. + 2. Click **Sync table**. During this process, a lock is placed on the updated rows, which may temporarily slow down API requests or table modifications. @@ -24141,7 +24289,7 @@ Configure automatic sync schedules through the ellipsis menu of any synced table ### Add new fields -Synced fields are read-only, but you can [add new editable fields](/user-docs/adding-a-field) to synced tables for tracking additional information not provided by the source. These custom fields don't interfere with synced data and update independently. +Synced fields are read-only, but you can [add new editable fields](/user-docs/adding-a-field) to synced tables for tracking additional information not provided by the source. These custom fields don't interfere with synced data and update independently. Synced fields display an arrow indicator to distinguish them from [custom editable fields][7]. @@ -24211,7 +24359,7 @@ Still need help? If you're looking for something else, please feel free to make The Record Selector simplifies linking and selecting rows from related tables. This is useful when selecting any of the thousands of rows from a related table to populate a link row field. -In this section, we'll provide detailed instructions and best practices for using the Record Selector element in the Application Builder. +In this section, we'll provide detailed instructions and best practices for using the Record Selector element in the Application Builder. ![Baserow Record selector element][1] @@ -24242,7 +24390,7 @@ Once the element is added, configure its properties in the settings panel. You c The following settings are available: - **Select records from**: Choose the [data sources](/user-docs/data-sources) you want to pull records from. Example: Job roles or Departments. - - **Items per page**: Define how many rows are displayed in the selector view. Example: 20. This number must be greater than or equal to 5 but less than or equal to 100. + - **Items per page**: Define how many rows are displayed in the selector view. Example: 20. This number must be greater than or equal to 5 but less than or equal to 100. - **Option name suffix**: Add a suffix to distinguish rows when displayed in the dropdown. Example: combining multiple data fields like ""Company - [Value]"". - **Label**: Enter a clear label for the field. Example: ""Select one or more roles"". - **Placeholder**: Add placeholder text to guide users on what to do. Example: ""Make a selection"". @@ -24253,7 +24401,7 @@ The following settings are available: ## User actions -For each element, you can specify which fields to make searchable for external users to give end-users more control to search within the [published application][3]. +For each element, you can specify which fields to make searchable for external users to give end-users more control to search within the [published application][3]. To add searching capabilities, click on the element and navigate to the right sidebar. There, you’ll see checkboxes to enable Search for specific fields. @@ -24305,8 +24453,8 @@ Follow these steps to export complete workspaces or selected content. 4. Choose what to export. The export dialog displays all exportable content organized by type. Use **Select all** to include everything in the workspace at once. Use **Deselect all** to clear selections. Use individual toggles to fine-tune exactly what to export. 5. Configure export options. ☑ Check **Export structure only** to exports table structures, fields, views, and configurations WITHOUT data rows. ☐ **Uncheck** to export complete data, including all rows and content. 6. Generate and download the export. Click the **Export data** button - -Baserow generates a ZIP file (may take a few moments for large workspaces). The file downloads to your default download folder. + +Baserow generates a ZIP file (may take a few moments for large workspaces). The file downloads to your default download folder. After exporting, you can import the ZIP file into any Baserow instance. [Complete guide to importing workspaces →][3] @@ -24458,13 +24606,13 @@ Still need help? If you're looking for something else, please feel free to make [7]: /user-docs/import-data-into-an-existing-table",,baserow_user_docs,https://baserow.io/user-docs/export-workspaces 262,Import a workspace,import-workspaces,Import a workspace in Baserow account,"# Import a workspace into Baserow -Import complete workspaces from ZIP files to migrate between Baserow instances, restore backups, or duplicate workspace configurations. +Import complete workspaces from ZIP files to migrate between Baserow instances, restore backups, or duplicate workspace configurations. The import process preserves databases, applications, dashboards, and structure while requiring post-import configuration for members and automations. ## Overview -Workspace imports give you the flexibility to transfer your Baserow work between instances, restore from backups, or replicate configurations across teams. +Workspace imports give you the flexibility to transfer your Baserow work between instances, restore from backups, or replicate configurations across teams. Whether you're migrating from development to production, moving between Baserow Cloud and Self-hosted, or sharing workspace templates with colleagues, the import process ensures your databases, applications, and dashboards transfer completely and accurately. @@ -24496,7 +24644,7 @@ Ensure your workspace import starts with proper preparation: Import as a new workspace to create a separate workspace, or merge with an existing workspace to add content to the current workspace. You can also choose to import the structure only or include all row data. - 1. Log in to your target Baserow instance and go to the **Home** page. + 1. Log in to your target Baserow instance and go to the **Home** page. 2. Locate the workspace where you want to import data. Click the arrow next to the workspace name and select **Import data**. 3. Upload your workspace export file by clicking the upload area or dragging the ZIP file into the interface. Baserow will validate the file to ensure it’s a compatible workspace export. 4. Select applications to import. @@ -24657,7 +24805,7 @@ Still need help? If you're looking for something else, please feel free to make [1]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/132f134d-6ec5-477f-b703-b26b01060dbf/date_time_picker.webp",,baserow_user_docs,https://baserow.io/user-docs/application-builder-date-time-picker-element -294,Multi-page container,application-builder-multi-page-container,Multi-page container in Baserow Application Builder,"# Application Builder - Multi-page header and footer elements +294,Multi-page container,application-builder-multi-page-container,Multi-page container in Baserow Application Builder,"# Application Builder - Multi-page header and footer elements Multi-page header and footer elements allow you to create reusable containers that can be applied across multiple pages of your application. @@ -24667,62 +24815,62 @@ This streamlines your workflow by allowing you to define a consistent structure ## Overview -The header and footer elements are perfect for common page elements like navigation bars, branding, or footer information. +The header and footer elements are perfect for common page elements like navigation bars, branding, or footer information. With the reusable design, you can apply the same header or footer to multiple pages, update it once, and changes reflect across all linked pages. -You can configure styling and layout using the element settings. For further details, refer to the [element style customization guide][2]. +You can configure styling and layout using the element settings. For further details, refer to the [element style customization guide][2]. ## Add a multi-page container -To add the multi-page header or multi-page footer to a [page][3]: +To add the multi-page header or multi-page footer to a [page][3]: -1. Open the elements panel from the page editor interface. -2. Scroll through the list or search for: - - **Multi-page header** to add a reusable header: Add navigation menus, logos, or search bars to all pages. - - **Multi-page footer** to add a reusable footer: Include contact information, links to privacy policies, or copyright text. -3. Select to add the desired element to the page. +1. Open the elements panel from the page editor interface. +2. Scroll through the list or search for: + - **Multi-page header** to add a reusable header: Add navigation menus, logos, or search bars to all pages. + - **Multi-page footer** to add a reusable footer: Include contact information, links to privacy policies, or copyright text. +3. Select to add the desired element to the page. ## Configure the multi-page element -The header will automatically position itself at the top of the page. The footer will automatically position itself at the bottom of the page. +The header will automatically position itself at the top of the page. The footer will automatically position itself at the bottom of the page. -Once you’ve added the header or footer, you can customize how and where it appears. +Once you’ve added the header or footer, you can customize how and where it appears. ### Display settings -You have three options to configure visibility where headers or footers appear across your pages: +You have three options to configure visibility where headers or footers appear across your pages: -1. **On all pages** +1. **On all pages** -The element appears on every page within your application. +The element appears on every page within your application. -2. **Only on selected pages** +2. **Only on selected pages** -You can choose specific pages where the element should appear. A list of all pages will be displayed for easy selection. For example, apply a footer only to specific content pages like About or Contact. +You can choose specific pages where the element should appear. A list of all pages will be displayed for easy selection. For example, apply a footer only to specific content pages like About or Contact. -3. **Exclude selected pages** +3. **Exclude selected pages** -The element will appear on all pages except those you select. For example, exclude the header from a login page or a specialized landing page. +The element will appear on all pages except those you select. For example, exclude the header from a login page or a specialized landing page. ### Steps to configure display settings -1. Click on the **Multi-page header** or **Multi-page footer** element in the editor. -2. Open the **General settings** panel. -3. Under the **Display** section, choose one of the [following display settings][4]: +1. Click on the **Multi-page header** or **Multi-page footer** element in the editor. +2. Open the **General settings** panel. +3. Under the **Display** section, choose one of the [following display settings][4]: - On all pages - Only on selected pages - Exclude selected pages -4. For selective options, use the displayed list to check/uncheck pages as needed. +4. For selective options, use the displayed list to check/uncheck pages as needed. -For more design control, combine multi-page headers/footers with elements like [columns][5] or [buttons][6] for dynamic layouts. +For more design control, combine multi-page headers/footers with elements like [columns][5] or [buttons][6] for dynamic layouts. You can [edit or update][7] the multi-page elements at any time; changes are reflected across all pages where they are applied. ## Related content - -- [Customizing element style][2] -- [Managing page layouts and elements][7] + +- [Customizing element style][2] +- [Managing page layouts and elements][7] --- @@ -24961,11 +25109,11 @@ Still need help? If you’re looking for something else, please feel free to mak The Menu element is a powerful navigation component in the Application Builder that helps users move through different parts of your application smoothly. It creates an organized structure that makes navigation intuitive and efficient. -You can configure the Menu element's properties, style, and functionality through the element settings. +You can configure the Menu element's properties, style, and functionality through the element settings. ## Add and configure Menu elements -Adding a Menu element to your application is straightforward through the elements panel. +Adding a Menu element to your application is straightforward through the elements panel. 1. Open the **Elements** panel from the top bar 2. Select the **Menu** element @@ -25018,7 +25166,7 @@ The Rating element is perfect for showing existing ratings from your data source **Style**: Select the visual representation of your ratings: - Stars - Hearts - - Thumbs up + - Thumbs up - Flags - Smiles
@@ -25339,12 +25487,12 @@ Unlike [table-level permissions][1] that control access to entire tables, field- ### Permission levels -| Level | Who can edit | +| Level | Who can edit | |-------|-------------| -| **Admins only** | Workspace/database/table admins | -| **Builders and higher** | Builders + Admins | -| **Editors and higher** | Editors + Builders + Admins | -| **Nobody (Read-only)** | No one can edit | +| **Admins only** | Workspace/database/table admins | +| **Builders and higher** | Builders + Admins | +| **Editors and higher** | Editors + Builders + Admins | +| **Nobody (Read-only)** | No one can edit | ### Interaction with table roles @@ -25359,7 +25507,7 @@ Field-level permissions are a way to refine the access a user already has at the | **Commenter** | Editors and higher | ✗ Can view, cannot edit (Commenter can't edit data) | | **Admin** | Admins only | ✓ Can edit field | -## Set field-level permissions +## Set field-level permissions 1. Navigate to your table to access field permission settings 2. Locate the field you want to protect @@ -25642,7 +25790,7 @@ Here's what can be indexed: ## Using field indexes -Indexes work best alongside other optimizations: efficient [filters][6], [views][view-custom] focused on specific data subsets, and [API queries][100] structured to leverage indexed fields. +Indexes work best alongside other optimizations: efficient [filters][6], [views][view-custom] focused on specific data subsets, and [API queries][100] structured to leverage indexed fields. ### When to use field indexes @@ -25824,7 +25972,7 @@ Not all field types support constraints. Here's what can be constrained: ## What happens when constraints are violated -Baserow prevents operations that would violate constraints and provides clear error messages explaining the issue. +Baserow prevents operations that would violate constraints and provides clear error messages explaining the issue. ### Manual entry in Grid View @@ -25909,7 +26057,7 @@ No, constraints are either enabled or disabled; there's no temporary suspension. ### How do unique constraints handle case sensitivity? -Unique constraints are case-sensitive for text fields. ""example@email.com"" and ""Example@Email.com"" are not considered duplicates. +Unique constraints are case-sensitive for text fields. ""example@email.com"" and ""Example@Email.com"" are not considered duplicates. ### What's the difference between unique constraints and filters? @@ -25971,23 +26119,28 @@ With custom code, you can: [1]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/ed41667c-7c9e-4cdb-94a5-31b83227f472/Custom%20code.png",,baserow_user_docs,https://baserow.io/user-docs/custom-css-and-javascript -425,Self-hosted license types,self-hosted-licenses,Self-hosted license types in Baserow,"# Baserow self-hosted license types +425,Self-hosted license,self-hosted-licenses,Self-hosted license types in Baserow,"# Baserow self-hosted license types Self-hosted licensing makes it easy to control user access and costs while maintaining deployment flexibility across your infrastructure. Baserow self-hosted offers three license types: Premium, Advanced, and Enterprise. Each has different seat management and scaling approaches. +> [Visit this page][5] to learn more about purchasing a self-hosted license. + ## Overview -Self-hosted Baserow licenses determine how paid features are distributed to users in your instance. You can change between plans as your needs evolve. +Self-hosted Baserow licenses determine how paid features are distributed to users in your instance. You can change between plans as your needs evolve. Self-hosted licenses also support [instance ID changes][3], allowing you to transfer licenses between different servers, migrate to new infrastructure without losing licensing, and maintain licensing continuity during deployment changes. -[Visit this page][5] to learn more about purchasing a self-hosted license. + +![Access Manage Licenses page][6] + + ## License type comparison -The admin [subscribes per seat][1] and manually assigns users to seats. Mixing free and billable users within the same instance makes it possible to have multiple licenses in one instance and pay only for users who need upgraded features. The key difference lies in seat assignment. +The admin [subscribes per seat][1] and manually assigns users to seats. Mixing free and billable users within the same instance makes it possible to have multiple licenses in one instance and pay only for users who need upgraded features. The key difference lies in seat assignment. Understanding these differences helps you choose the right approach for your organization's size, budget, and administrative preferences. @@ -25995,14 +26148,10 @@ Understanding these differences helps you choose the right approach for your org Premium self-hosted licenses provide precise control over which users access paid features through manual seat assignment. Add additional Premium licenses as your organization grows. -> Premium plan doesn’t support free roles or role-based permissions. You set the initial seat count when you [purchase a subscription][2], which defines your licensed user capacity. - ### Advanced self-hosted licenses Advanced self-hosted licenses grant paid access to users on your instance, simplifying administration while providing [comprehensive features][4]. -> When you upgrade to the Advanced plan, start by buying only the number of paid seats you need. Once your license is active, you can then invite free users to join your workspace. - ### Enterprise licenses Enterprise licenses provide maximum flexibility and features for large organizations with complex requirements. @@ -26011,11 +26160,17 @@ Enterprise licensing requires direct consultation with Baserow's sales team to e [Contact Baserow sales](https://baserow.io/contact-sales) to discuss Enterprise licensing options and pricing. +## Manage licenses + +If you disconnect a license while it's active, the related users won’t have access to the plan anymore. It will effectively remove the license. + + Learn more: [Manage self-hosted licenses][3] + ## Frequently asked questions ### Can I mix different license types on the same instance? -No, you cannot combine different license types. Each instance must use a single license approach: Premium, Advanced, or Enterprise. +No, you cannot combine different license types. Each instance must use a single license approach: Premium, Advanced, or Enterprise. ### How do license transfers work between instances? @@ -26023,7 +26178,11 @@ You can [change the instance ID][3] associated with your subscription, allowing ### Can I have some users on free and others on self-hosted? -Yes, billable and free users can collaborate in the same workspaces as license is instance-based. Billable users access paid features while free users work within standard limitations. +Yes, billable and free users can collaborate in the same workspaces as license is instance-based. Billable users access paid features while free users work within standard limitations. + +### What if I need to change my instance ID? + +You can [modify the instance ID][3] associated with your subscription through the baserow.io subscription management interface. This supports server migrations and infrastructure changes. ### Do I need to restart my instance after license installation? @@ -26034,7 +26193,7 @@ Ready to upgrade your self-hosted Baserow instance? Visit the [Baserow pricing p ## Related content - [Baserow pricing plans overview](/user-docs/pricing-plans) -- [Install self-hosted license](https://baserow.io/user-docs/get-a-licence-key) +- [Install self-hosted license](https://baserow.io/user-docs/get-a-licence-key) - [Enterprise license activation](/user-docs/activate-enterprise-license) - [Enterprise admin panel guide](/user-docs/enterprise-admin-panel) - [Getting and changing instance ID](/user-docs/getting-and-changing-the-instance-id) @@ -26051,7 +26210,8 @@ Still need help? If you're looking for something else, please feel free to make [2]: https://baserow.io/user-docs/buying-a-subscription [3]: https://baserow.io/user-docs/getting-and-changing-the-instance-id [4]: https://baserow.io/user-docs/pricing-plans - [5]: https://baserow.io/user-docs/get-a-licence-key",billing,baserow_user_docs,https://baserow.io/user-docs/self-hosted-licenses + [5]: https://baserow.io/user-docs/get-a-licence-key + [6]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/2b06ac5c-d68d-451f-a5ca-021a0193701c/Access%20Manage%20Licenses%20page.jpg",hosting,baserow_user_docs,https://baserow.io/user-docs/self-hosted-licenses 426,Cancel subscription,cancel-subscriptions,Cancel Baserow subscription,"# How to cancel your Baserow subscription In this section, we'll cover how to cancel your Baserow subscription. When you cancel, [paid features][1] continue working until your next scheduled payment date, but no refunds are provided for unused time. @@ -26100,7 +26260,7 @@ Your subscription status will update to show ""Canceling"" with the effective en ## After cancellation: transitioning to free features -Once your subscription expires, Baserow automatically transitions your account to the free plan. Your data remains intact, but you'll encounter feature limitations based on the free plan's restrictions. +Once your subscription expires, Baserow automatically transitions your account to the free plan. Your data remains intact, but you'll encounter feature limitations based on the free plan's restrictions. Consider downgrading to a lower-tier paid plan instead of canceling entirely. This approach maintains some paid features at a reduced cost, potentially providing a middle ground between full upgraded access and free plan limitations. @@ -26251,11 +26411,11 @@ If you're looking for something else or need further assistance with your Basero [9]: https://baserow.io/user-docs/getting-and-changing-the-instance-id",,baserow_user_docs,https://baserow.io/user-docs/update-payment-methods 458,Generative AI,configure-generative-ai,Configure AI models in Baserow,"# Configure generative AI in Baserow -Baserow integrates with multiple AI providers (OpenAI, Anthropic, Ollama, OpenRouter, Mistral) to power the [AI field][1] and generative features. +Baserow integrates with multiple AI providers (OpenAI, Anthropic, Ollama, OpenRouter, Mistral) to power the [AI field][1] and generative features. ## What you need to know -Baserow's generative AI configuration lets you connect your preferred AI models directly to your workspace. +Baserow's generative AI configuration lets you connect your preferred AI models directly to your workspace. Baserow Self-Hosted users can configure at workspace-level for team-specific models, or instance-level for organization-wide settings. @@ -26292,7 +26452,7 @@ For self-hosted Baserow, configure API keys globally using [environment variable Provide: - [OpenAI API key][6] for authentication. Without an API key, users cannot select OpenAI models. -- OpenAI organization name (optional) +- OpenAI organization name (optional) - Comma-separated list of [OpenAI models][7] to enable (e.g., `gpt-3.5-turbo, gpt-4-turbo-preview`). Note that this only works if an OpenAI API key is set. If this variable is not provided, the user won’t be able to choose a model. ### Anthropic setup @@ -26327,7 +26487,7 @@ Provide: ### What AI models are available on Baserow Cloud? -Baserow integrates with multiple AI providers (OpenAI, Anthropic, Ollama, OpenRouter, Mistral) to power the [AI field][1] and generative features. +Baserow integrates with multiple AI providers (OpenAI, Anthropic, Ollama, OpenRouter, Mistral) to power the [AI field][1] and generative features. ### Can I use multiple AI providers simultaneously? @@ -26417,7 +26577,7 @@ Return only one word. ### Classification ``` -Classify {Input Field} as [Option1], [Option2], or [Option3]. +Classify {Input Field} as [Option1], [Option2], or [Option3]. Return only one of these options. ``` @@ -26434,7 +26594,7 @@ This pattern is effective for condensing meeting notes, customer feedback, or lo ### Extraction ``` -Extract from {Input Field}: Item 1, Item 2, Item 3. +Extract from {Input Field}: Item 1, Item 2, Item 3. If any field is missing, return ""Not found"" ``` @@ -26443,7 +26603,7 @@ This pattern helps pull specific data from invoices, resumes, and forms. ### Generation ``` -Write a [content type] for [audience]. +Write a [content type] for [audience]. Input: {Field Name} Tone: [style] Length: [constraint] @@ -26502,23 +26662,23 @@ This pattern is ideal for creating product descriptions, email responses, and so ## Common mistakes ### Too vague -❌ ""Analyze this data"" +❌ ""Analyze this data"" ✅ ""Identify the top 3 sales trends from {Sales Data} in Q4 2024"" ### Missing context -❌ ""Classify this: {Text}"" +❌ ""Classify this: {Text}"" ✅ ""Classify this support ticket as Bug, Feature, or Question: {Ticket Description}"" ### No error handling -❌ ""Extract invoice total from {PDF}"" +❌ ""Extract invoice total from {PDF}"" ✅ ""Extract invoice total from {Invoice PDF}. If missing, return 'Unable to process'"" ### Overly complex -❌ ""Analyze sentiment, extract topics, classify category, and generate response"" +❌ ""Analyze sentiment, extract topics, classify category, and generate response"" ✅ Create separate AI fields for each task ### Generic field references -❌ ""Calculate 10% of the total column"" +❌ ""Calculate 10% of the total column"" ✅ ""Calculate 10% of {Order Total}"" ## Formula generation examples @@ -26528,8 +26688,8 @@ This pattern is ideal for creating product descriptions, email responses, and so **Prompt:** ``` -If {Due Date} is in the past, show 'Overdue'. -If it's within 7 days, show 'Due Soon'. +If {Due Date} is in the past, show 'Overdue'. +If it's within 7 days, show 'Due Soon'. Otherwise, show 'On Track'. ``` @@ -26538,8 +26698,8 @@ Otherwise, show 'On Track'. **Prompt:** ``` -If {Quantity} is over 100, reduce {Price} by 20%. -If {Quantity} is over 50, reduce by 10%. +If {Quantity} is over 100, reduce {Price} by 20%. +If {Quantity} is over 50, reduce by 10%. Otherwise, use full {Price}. ``` @@ -26564,25 +26724,25 @@ Calculate the number of days between today and {Event Date}. **Prompt:** ``` -Calculate the percentage difference between {Budget} and {Actual Spend}. +Calculate the percentage difference between {Budget} and {Actual Spend}. Round to 2 decimals. ``` ## Troubleshooting -**Why are my outputs inconsistent?** +**Why are my outputs inconsistent?** Lower the temperature to 0.1–0.3 and add explicit constraints to improve consistency. -**Why does the AI ignore parts of my prompt?** +**Why does the AI ignore parts of my prompt?** Simplify the prompt and place the most important instructions first. -**Why is the AI making up information?** +**Why is the AI making up information?** Add: ""Only use information from `Field Name`. If not available, return 'Not found'."" -**Why is the output in the wrong format?** +**Why is the output in the wrong format?** Provide a clear example: ""Format as: Label: Value"" -**Why does it work for some rows but fail for others?** +**Why does it work for some rows but fail for others?** Handle empty fields explicitly: ""If `Field` is blank, return 'N/A'."" ## Related documentation @@ -26603,19 +26763,21 @@ Handle empty fields explicitly: ""If `Field` is blank, return 'N/A'."" [2]: https://baserow.io/blog/transform-data-into-insights-with-baserow-ai",,baserow_user_docs,https://baserow.io/user-docs/ai-prompt-guide 524,Automation overview,workflow-automation,Workflow automation in Baserow,"# Workflow automation overview -Baserow Workflow Automation lets you build custom, no-code workflows that automatically perform tasks when specific events occur in your database. Connect triggers and actions to automate data entry, send notifications, and integrate external services, all without writing a single line of code. +Baserow Automation lets you build custom, no-code workflows that automatically perform tasks when specific events occur in your database. Connect triggers and actions to automate data entry, send notifications, and integrate external services, all without writing a single line of code. -## What is workflow automation in Baserow? +## Overview -Baserow Workflow Automation makes it easy to save time and streamline your database management by connecting triggers and actions into seamless, repeatable processes. +Baserow Automation makes it easy to save time and streamline your database management by connecting triggers and actions into seamless, repeatable processes. With workflow automation, you can automatically perform tasks based on specific events in your database. Whether you need to send notifications when a new row is created, update records when certain conditions are met, or integrate with external services, workflows handle these tasks automatically. +Automations support formulas and variables, giving you more control and flexibility. Use formulas in conditions and router nodes (for example, only run if `priority = ""High""` and `due_date = today()`), or pass data between steps with automation variables to reuse results later in the workflow. + ![Image showing Baserow workflow automation][1] -### How workflows are structured +### How automation is structured -Baserow's automation system uses a simple three-level hierarchy: +Baserow's automation system uses a simple three-level hierarchy. Each workflow is part of an automation, which you can reuse and manage at the workspace level: | Level | Description | Example | |-------|-------------|---------| @@ -26633,25 +26795,27 @@ Every workflow starts with a trigger and continues with one or more actions. | Node type | Function | Position in workflow | Can be deleted? | |-----------|----------|---------------------|----------------| -| **Trigger** | The starting event that initiates the workflow | Always first | No, only replaced | -| **Action** | A task that reads/modifies records, interacts with tables, or controls workflow flow | Follows the trigger | Yes | +| **[Trigger][2]** | The starting event that initiates the workflow | Always first | No, only replaced | +| **[Action][3]** | A task that reads/modifies records, interacts with tables, or controls workflow flow | Follows the trigger | Yes | **Example workflow:** When a new customer row is created (Trigger) → Send a welcome email (Action) → Add them to a mailing list (Action). ### Workflow states: Test vs. published -Workflows operate in two distinct execution modes: +Workflows operate in distinct execution modes: | State | Purpose | Execution behavior | |-------|---------|-------------------| | **Test run** | Verify configuration, logic, and output before going live | Executes once per manual test initiation | | **Published** | Production mode for live automation | Executes indefinitely whenever the trigger event occurs | -You can test each action or trigger event to confirm the configuration is correct. Data from the test can be used in later steps. +You can test each action or trigger event to confirm the configuration is correct. Data from the test can be used in later steps. + +You can also click **Start test run** to test the entire workflow. Test runs must be manually initiated each time. The workflow will not automatically re-run until you click ""Test event"" or ""Start test run"" again. -You can also click **Start test run** to test the entire workflow. +> Workflows do not run in **Draft** mode. All new workflows start in the **Draft** state by default. Your automation will not process any data until you explicitly click the Publish button in the top right corner of the workflow editor. -> Test runs must be manually initiated each time. The workflow will not automatically re-run until you click ""Test event"" or ""Start test run"" again. +Learn more: [Publishing and Managing Workflows][4] ### Workflow history @@ -26666,13 +26830,13 @@ The History tab logs all workflow executions, both successful and failed. Use th 3. Select **Automation** from the dropdown menu 4. (Optional) Click the ellipsis beside the automation name and select **Rename** to give it a descriptive name or **Duplicate** to create a copy of an automation. -> Learn more about [how snapshots work in Baserow][2]. +> Learn more about [how snapshots work in Baserow][5]. ### Building your workflow After creating an automation, build your workflow by adding and connecting nodes: -1. The **Trigger** node is automatically placed at the start. You can replace the default trigger node. +1. Start with a **Trigger** node. You can replace the set trigger node. 2. Click the **+** icon after the Trigger to open the node selector 3. Choose an **Action** or **Router** node to add to your workflow 4. Drag and drop nodes to reorder them (a dotted border shows valid drop locations) @@ -26691,17 +26855,13 @@ Test nodes individually before running the entire workflow: ### Publishing and managing workflows -- **To publish:** Click the **Publish** button in the header. The workflow will run automatically whenever triggered. -- **To pause:** Click the toggle switch (marked ""Published"") in the header to temporarily stop execution. -- **To resume:** Click the toggle switch again to reactivate the workflow. - -### Working with router nodes +Baserow workflows allow you to automate complex tasks within your database. However, creating the logic is only the first step. To prevent accidental data changes while you are building, Baserow keeps all new workflows in a ""Draft"" state. -Router nodes create conditional branches in your workflow based on Boolean (true/false) conditions. +You must publish your workflow for it to begin processing real data. Baserow workflow publishing turns your drafted logic into active, always-on automation without complex deployment steps. -> You cannot delete or replace a Router node until all downstream nodes in its branches have been removed first. This prevents orphaned nodes from existing in your workflow. +Learn more: [Publishing and managing workflows][4] -![image Baserow router automation][3] +![image Baserow router automation][6] ## Frequently asked questions @@ -26743,8 +26903,11 @@ Still need help? If you're looking for something else, please feel free to make [1]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/cc7a3dde-3ad3-4ae8-9776-bd1cebf1d9c1/Baserow%20workflow%20automation.jpg - [2]: https://baserow.io/user-docs/snapshots - [3]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/14d8595d-2484-458a-b77b-dc25018110b1/Baserow%20router%20automation.jpg",,baserow_user_docs,https://baserow.io/user-docs/workflow-automation + [2]: https://baserow.io/user-docs/automation-triggers + [3]: https://baserow.io/user-docs/automation-actions + [4]: https://baserow.io/user-docs/workflow-management + [5]: https://baserow.io/user-docs/snapshots + [6]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/14d8595d-2484-458a-b77b-dc25018110b1/Baserow%20router%20automation.jpg",automation,baserow_user_docs,https://baserow.io/user-docs/workflow-automation 525,Workflow triggers,automation-triggers,Baserow workflow triggers,"# Workflow triggers: How to start an automation Triggers are the starting point of every Baserow workflow. They define when your automation runs, whether on a schedule, when data changes in your tables, or when external services send requests. Configure your trigger first, then build actions that respond to it. @@ -26821,7 +26984,7 @@ These triggers monitor your Baserow tables and fire immediately when specified c When rows are created or updated through the API, the trigger behavior depends on how the rows are sent: Single request creating multiple rows: -If one API request creates several rows (for example, 10 rows in a single batch), the workflow trigger fires once, passing an array of all affected rows. +If one API request creates several rows (for example, 10 rows in a single batch), the workflow trigger fires once, passing an array of all affected rows. Multiple requests creating individual rows: If you send separate requests for each row (for example, 10 individual requests), the workflow trigger fires once per request, resulting in 10 separate workflow executions. @@ -26840,7 +27003,7 @@ Connect external applications and services to your Baserow workflows, enabling i | **Webhook URL** | Auto-generated URL to receive requests | Copy this URL to your external service | | **Allowed HTTP methods** | Which request types trigger the workflow | Select ""Exclude GET"" for security | -**Why exclude GET requests?** +**Why exclude GET requests?** GET requests are used by web browsers and crawlers for simple page visits. Excluding GET prevents your workflow from accidentally triggering when someone visits the URL in a browser or when search engines crawl it. Use POST, PUT, or other methods for intentional triggers. @@ -26922,7 +27085,7 @@ The webhook URL itself doesn't require authentication by default. For security, - Validate request data within your workflow actions - Use query parameters or headers that your external service provides - Keep the webhook URL private (don't share it publicly) - + > All API requests must use JSON. Other formats, such as XML, are not accepted. @@ -26984,7 +27147,9 @@ After a trigger initiates your workflow, actions execute sequentially to accompl | **Logic actions** | Control flow and loops | Router (If/Then), Iterator (Loops) | | **Integrations** | External communication | HTTP Request, Send Email, AI Prompt, Send a Slack message | -![Baserow workflow automation image][2] +> [Workflows do not run in **Draft** mode][2]. All new workflows start in the **Draft** state by default. Your automation will not process any data until you explicitly click the **Publish** button in the top right corner of the workflow editor. + +![Baserow workflow automation image][3] ## How actions use trigger data @@ -26996,7 +27161,7 @@ Every action can access data from previous nodes in the workflow: - **HTTP responses:** Data returned from external API calls - **Dynamic values:** You can use formulas to transform data between steps (e.g., formatting a date before sending it in an email). -This data flow allows you to build automations where each action builds upon the results of previous steps. The trigger node must be tested first to confirm the configuration is correct. +This data flow allows you to build automations where each action builds upon the results of previous steps. The trigger node must be tested first to confirm the configuration is correct. | Concept | Description | Example | |---------|-------------|---------| @@ -27050,7 +27215,7 @@ Common use cases include updating an order status when payment is received, mark ### Delete a row -This action removes records from your table that are no longer needed or meet specific deletion criteria. +This action removes records from your table that are no longer needed or meet specific deletion criteria. **Configuration:** @@ -27063,7 +27228,7 @@ This action removes records from your table that are no longer needed or meet sp Common use cases include automatically removing expired records, cleaning up temporary data after processing, deleting spam or invalid submissions, and archiving data by copying it elsewhere before deletion. -> When rows are deleted, they’re moved to the workspace trash and can be restored within a limited time. After this period, the rows are permanently removed. Learn more about [deleting and recovering data in Baserow][3]. +> When rows are deleted, they’re moved to the workspace trash and can be restored within a limited time. After this period, the rows are permanently removed. Learn more about [deleting and recovering data in Baserow][4]. ### Get single row @@ -27075,7 +27240,7 @@ This action retrieves the details of a specific record so that its data can be u 2. **View:** (Optional) Apply a view's filters and sorting 3. **Row ID:** (Optional) The `row_id` value must be an integer or convertible to an integer. Specify a specific row - Leave empty to get the first matching row after refinements -4. **Refinements:** Apply additional [filters][4]: +4. **Refinements:** Apply additional [filters][5]: - Filter by field values - Search for specific text - Sort results @@ -27098,7 +27263,7 @@ This action retrieves multiple records from your table, allowing you to process, 1. Select your integration, database, and table 2. **View:** (Optional) Apply a view's filters and sorting 3. **Refinements:** Configure criteria: - - Add [filters][4] to narrow results + - Add [filters][5] to narrow results - Apply sorting to control order - Use search to find specific text 4. **Default result count:** How many rows to fetch @@ -27117,8 +27282,8 @@ This action calculates aggregate statistics across multiple rows without retriev 1. Select your integration, database, and table 2. **Field:** Choose which field to summarize -3. **Aggregation type:** Select the calculation. Learn more about [data summaries][5] -4. **Refinements:** Apply [filters][4] to calculate only on specific rows +3. **Aggregation type:** Select the calculation. Learn more about [data summaries][6] +4. **Refinements:** Apply [filters][5] to calculate only on specific rows Common use cases include calculating total revenue for the current month, counting how many tasks are still open, finding the average rating across all reviews, and identifying the highest priority value currently in the queue. @@ -27126,12 +27291,12 @@ Common use cases include calculating total revenue for the current month, counti ### Router (conditional branching) -The Router action enables conditional branching within your workflow, allowing you to execute different actions based on data values. It functions like ""if-this-then-that"" logic, splitting your workflow into multiple paths so that each set of actions runs only when its conditions are met. +The Router node creates conditional branching within your workflow, allowing you to execute different actions based on data values. It functions like ""if-this-then-that"" logic, splitting your workflow into multiple paths so that each set of actions runs only when its conditions are met. **How the Router node works:** 1. **Define branches:** Add multiple conditional paths (e.g., ""High Priority,"" ""Medium Priority,"" ""Low Priority"") -2. **Set conditions:** Switch from using regular input to using advanced input, to use [Baserow formula conditions][6]. With the advanced input, you can use operators to compare values directly within the router configuration. +2. **Set conditions:** Switch from using regular input to using advanced input, to use [Baserow formula conditions][7]. With the advanced input, you can use operators to compare values directly within the router configuration. 3. **Execution order:** Branches are checked left to right 4. **First match wins:** The workflow follows the first branch where the condition is true 5. **Default fallback:** If no conditions are met, the ""Default branch"" executes @@ -27142,11 +27307,11 @@ The Router action enables conditional branching within your workflow, allowing y - **Branch labels:** Give each path a descriptive name - **Default branch:** Optionally label this fallback path -> You cannot delete a Router node until all actions in its branches have been removed first. +> You cannot delete or replace a Router node until all downstream nodes in its branches have been removed first. This prevents orphaned nodes from existing in your workflow. Common use cases include routing high-value orders to a manager for approval, sending different email templates based on customer type, applying different validation rules depending on the data source, and escalating tasks according to their age or priority. -![Baserow router node image][7] +![Baserow router node image][8] ### Iterator (iterate on items) @@ -27188,11 +27353,11 @@ How to set up the Slack Bot: To use this integration, you must create a Slack App and issue a token. - 1. Navigate to your [workspace's apps page][8]. + 1. Navigate to your [workspace's apps page][9]. 2. Create a new App in the **Slack API** portal, choose 'From scratch' and enter a name. Select the workspace your app should operate in, and click 'Create'. > Notify your Slack workspace admin if you are unable to create a new Slack app. If you are re-using an existing app which can write messages, proceed to **Step 5** to install the app to your workspace. - 3. In the left sidebar, navigate to **OAuth & Permissions**, scroll down to Scopes and under 'Bot Token Scopes', select 'Add an OAuth Scope'. + 3. In the left sidebar, navigate to **OAuth & Permissions**, scroll down to Scopes and under 'Bot Token Scopes', select 'Add an OAuth Scope'. 4. To allow your app to post messages, add the `chat:write` scope. 5. Navigate to the 'Settings' -> 'Install App' to install the App to your workspace. 6. Copy your **Bot User OAuth Token** and store it in the 'Bot User Token' field in the Slack integration form in Baserow. @@ -27214,7 +27379,7 @@ This action allows your workflow to connect to any external API or web service, | **Body content** | The actual data being sent | Customer details, order information, etc. | | **Timeout** | Max wait time for response | 30 seconds (default) | -> You can insert trigger and action data anywhere using dynamic data. +> You can insert trigger and action data anywhere using dynamic data. Common use cases include sending new customer data to your CRM, notifying Slack channels when important events occur, automatically creating Trello cards or Jira issues, syncing order data with fulfillment services, updating external inventory management systems, and triggering workflows in platforms like Zapier or Make. @@ -27230,7 +27395,7 @@ Body: } ``` -Learn more about [Baserow database tokens][9]. +Learn more about [Baserow database tokens][10]. ### Send an email @@ -27242,7 +27407,7 @@ This action allows your workflow to automatically notify users, teams, or custom To send emails from Baserow, you must configure an SMTP integration for each email action. -Open the Integration sidebar and select **Add new integration**. In the modal, enter your SMTP credentials: host, port, username, and password. +Open the Integration sidebar and select **Add new integration**. In the modal, enter your SMTP credentials: host, port, username, and password. **Recipients:** - **From email:** The sender address (must be configured in your SMTP settings) @@ -27271,7 +27436,7 @@ Common use cases include welcoming new users after registration, sending order c ### AI Prompt -The AI Prompt node connects to [generative AI models][10] to execute prompts, analyze data, or generate content directly within your workflow. This allows you to build powerful automations that can summarize text, categorize customer feedback, translate languages, or generate email replies based on your Baserow data. +The AI Prompt node connects to [generative AI models][11] to execute prompts, analyze data, or generate content directly within your workflow. This allows you to build powerful automations that can summarize text, categorize customer feedback, translate languages, or generate email replies based on your Baserow data. **Configuration:** @@ -27281,7 +27446,7 @@ To use the AI Prompt, you must first configure an AI integration. * Click the **AI integration** dropdown. If you have already set up AI in your workspace, you can select it here. * To add a new one, click **Add new integration**. A modal will appear. - * **Workspace AI Settings:** By default, new integrations inherit [settings from your workspace][10]. You can override specific AI providers with different API keys or models if needed. + * **Workspace AI Settings:** By default, new integrations inherit [settings from your workspace][11]. You can override specific AI providers with different API keys or models if needed. * Click **Create** to save the integration. 2. **Configure AI action:** @@ -27298,7 +27463,7 @@ To use the AI Prompt, you must first configure an AI integration. ## Testing and debugging actions -To test an action, +To test an action, 1. Ensure all previous nodes (trigger and any prior actions) have been tested 2. Click the action node to open its configuration @@ -27309,7 +27474,7 @@ To test an action, > **Why previous nodes must be tested first:** Actions often reference data from earlier steps. You can't properly configure field mappings without test data from previous nodes. -After testing an action, review several key indicators to ensure it worked correctly. Look for success indicators, examine the payload generated by the action, and verify that all field values were mapped correctly. +After testing an action, review several key indicators to ensure it worked correctly. Look for success indicators, examine the payload generated by the action, and verify that all field values were mapped correctly. Also, check for error messages in the history which indicate configuration issues that need to be addressed. @@ -27388,7 +27553,7 @@ The condition formula isn't returning a boolean value or has syntax errors. Test ### I’m trying to create a new row, but I’m getting an error or no response. -This usually happens when your workspace has reached its row limit. Check your current plan to confirm that it allows additional rows. If the workspace has exceeded its row limit, you’ll need to either delete some rows to stay within your plan’s limit or upgrade your plan to continue adding new rows. Learn more about [Baserow pricing plan and limits][11]. +This usually happens when your workspace has reached its row limit. Check your current plan to confirm that it allows additional rows. If the workspace has exceeded its row limit, you’ll need to either delete some rows to stay within your plan’s limit or upgrade your plan to continue adding new rows. Learn more about [Baserow pricing plan and limits][12]. ## Related content @@ -27410,43 +27575,50 @@ Still need help? If you're looking for something else, please feel free to make [1]: https://baserow.io/user-docs/automation-triggers - [2]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/af2bedfe-17cd-41f5-becc-b1dac63e3760/Baserow%20workflow%20automation.jpg - [3]: https://baserow.io/user-docs/data-recovery-and-deletion - [4]: https://baserow.io/user-docs/filters-in-baserow - [5]: https://baserow.io/user-docs/footer-aggregation - [6]: https://baserow.io/user-docs/understanding-formulas - [7]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/f1b84bbf-6bb8-463b-ad37-3f9af542b9bd/Baserow%20router%20automation.jpg - [8]: https://api.slack.com/apps - [9]: https://baserow.io/user-docs/personal-api-tokens - [10]: https://baserow.io/user-docs/configure-generative-ai - [11]: https://baserow.io/user-docs/pricing-plans",,baserow_user_docs,https://baserow.io/user-docs/automation-actions -527,Workflow management,workflow-management,Baserow Workflow settings and management,"# Manage workflow automation in Baserow + [2]: https://baserow.io/user-docs/workflow-management + [3]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/af2bedfe-17cd-41f5-becc-b1dac63e3760/Baserow%20workflow%20automation.jpg + [4]: https://baserow.io/user-docs/data-recovery-and-deletion + [5]: https://baserow.io/user-docs/filters-in-baserow + [6]: https://baserow.io/user-docs/footer-aggregation + [7]: https://baserow.io/user-docs/understanding-formulas + [8]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/f1b84bbf-6bb8-463b-ad37-3f9af542b9bd/Baserow%20router%20automation.jpg + [9]: https://api.slack.com/apps + [10]: https://baserow.io/user-docs/personal-api-tokens + [11]: https://baserow.io/user-docs/configure-generative-ai + [12]: https://baserow.io/user-docs/pricing-plans",automation,baserow_user_docs,https://baserow.io/user-docs/automation-actions +527,Publish & manage workflow,workflow-management,Baserow Workflow settings and management,"# Manage workflow automation in Baserow Automation management gives you full control over the lifecycle of your workflows, from initial testing to real-time, published execution. -Managing your workflows means controlling when they run, monitoring their performance, and troubleshooting issues. Baserow provides simple controls to test workflows safely, publish them for production use, pause them temporarily, and track every execution through detailed history logs. +This guide explains the lifecycle of a Baserow workflow, the difference between Draft and Live states, and how to ensure your automations are running correctly. + +## Overview + +Managing your workflows involves controlling when they run, monitoring their performance, and troubleshooting any issues that may arise. Baserow provides simple controls to test workflows safely, publish them for production use, pause them temporarily, and track every execution through detailed history logs. Proper workflow management ensures your automations run reliably, helps you catch errors early, and gives you confidence that your database processes are working as expected. +> Workflows do not run in **Draft** mode. All new workflows start in the **Draft** state by default. Your automation will not process any data until you explicitly click the **Publish** button in the top right corner of the workflow editor. + ![Baserow workflow automation image][3] ## Workflow execution states -Every workflow operates in one of three states that control whether it responds to trigger events. +Every workflow operates in one of these states that control whether it responds to trigger events. | State | Toggle appearance | Behavior | |-------|------------------|----------| -| **Draft** | Gray, not clickable | Workflow is being built and will not execute | +| **Draft (Default)** | Gray, not clickable | Workflow is being built and will not execute. This is your sandbox. Changes made here do not affect your live data. | | **Paused** | Gray toggle (clickable) | Workflow is temporarily stopped but can resume. Workflow does not respond to trigger events, and configuration remains intact for quick resuming. | -| **Live** | Green toggle (clickable) | Workflow executes automatically when triggered. Workflow is actively running, responds to all trigger events, and executes actions automatically. | +| **Live (Published)** | Green toggle (clickable) | The workflow is active. It listens for triggers (events) and executes actions automatically in the background. | -State progression: +State progression: ``` Draft (building) → Test → Publish → Live (running) ⟷ Paused (suspended) ``` -> You cannot toggle a workflow to Live until it has been tested and published at least once. +> You cannot toggle a workflow to **Live** until it has been tested and published at least once. ## Testing and publishing workflows @@ -27454,28 +27626,40 @@ Draft (building) → Test → Publish → Live (running) ⟷ Paused (suspended) Testing validates your workflow configuration before it affects production data. Before testing, configure all nodes completely and use test data when possible to avoid affecting live records. +Triggers in draft mode (like ""Row Created"") will not fire automatically. You must use the ""Test"" function to verify functionality manually. + **How to test:** -1. Build your complete workflow (trigger + actions). Review payload for each node test run. +1. Build your complete workflow (trigger + actions). Review the payload for each node test run. 2. Click **Start test run** in the workflow header. This executes the entire workflow once. 3. Manually trigger the event (e.g., create a test row for ""Rows are created"" triggers) 4. Check the History tab for execution details; green checkmarks indicate success, red warnings show errors. -> Click ""Start test run"" again to re-test. Testing does not repeat automatically. +> Click ""Start test run"" again to re-test. Testing does not repeat automatically. ### Publish Publishing activates your workflow for production use. Workflow must be tested successfully at least once, with no configuration errors present. -**How to publish:** +Workflow executes automatically when triggered. Workflow is actively running, responds to all trigger events, and executes actions automatically. -1. Click **Publish** in the workflow header after successful testing -2. The workflow enters Live state (green toggle appears) -3. Toggle becomes clickable, switch between Live and Paused as needed. +**How to publish a workflow** + +Once you have configured your triggers and nodes, follow these steps to activate the workflow after successful testing: + +1. Open the **Automation** where your workflow resides. +2. Navigate to the **Workflows** tab. +3. Select the workflow you wish to activate. +4. Locate the **Publish** button in the top right corner of the screen. +5. Click **Publish**. +6. The status badge will change from draft to **Live** state (Green). + + +> **Note:** If you make edits to a Live workflow, those edits are saved as a ""Draft"" version. The Live version continues to run the *old* logic until you click **Publish** again to overwrite it with your new changes. When published, workflow monitors for trigger events continuously and executes automatically every time the trigger fires. The workflow logs all executions in the History tab and runs indefinitely until paused or deleted. -Once published, use the toggle to pause and resume execution. +Once published, use the toggle to pause and resume execution. Switch between Live and Paused as needed. ### How to pause and resume @@ -27502,7 +27686,7 @@ The History tab provides a complete audit log of all workflow executions, both t When a workflow fails: -1. Open the History tab +1. Open the **History** tab 2. Find the failed execution (red status) 3. Click to expand the execution details 4. Read the error message showing: Which node failed, why it failed, and what data was present at failure @@ -27552,6 +27736,19 @@ No strict limit, but organize related workflows within the same automation for b Yes. Test runs execute real actions on live data. Create/update/delete operations are permanent. Use test tables or test records when possible. +### Why is my Baserow workflow not running? + +The most common reason a workflow fails to trigger is that it is still in **Draft** mode. Check the status badge in the top right corner of the workflow editor. If it does not say **Live**, click **Publish**. + +### Can I edit a workflow while it is running? + +Yes. Baserow creates a draft version of your workflow the moment you start editing. The **Live** version continues to run in the background using the previous logic. Your changes will only take effect once you click **Publish** again. + +### How do I pause a workflow without deleting it? + +To stop a workflow from running temporarily, enter the workflow settings and toggle the **Enable/Disable** switch. This preserves your logic but stops the trigger from firing. + + ## Troubleshooting guide ### Workflow not executing after publishing @@ -27564,7 +27761,7 @@ Possible causes: Live data differs from test data, external API rate limits, or ### Can't find workflow execution in History -Refresh the page, check the trigger fired, and ensure that the workflow is published (Draft workflows don't execute). +Refresh the page, check the trigger fired, and ensure that the workflow is published (Draft workflows don't execute). ## Related content @@ -27585,51 +27782,50 @@ Still need help? If you're looking for something else, please feel free to make [1]: https://baserow.io/user-docs/snapshots [2]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/e377c8d5-503a-42aa-a6cd-0ea224630168/Baserow%20automation%20history.jpg - [3]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/af2bedfe-17cd-41f5-becc-b1dac63e3760/Baserow%20workflow%20automation.jpg",,baserow_user_docs,https://baserow.io/user-docs/workflow-management -557,Automation settings,automation-settings,Baserow Workflow Automation settings,"# Workflow Automation settings + [3]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/af2bedfe-17cd-41f5-becc-b1dac63e3760/Baserow%20workflow%20automation.jpg",automation,baserow_user_docs,https://baserow.io/user-docs/workflow-management +557,Automation settings,automation-settings,Baserow Workflow Automation settings,"# Workflow and Automation settings Automation management gives you control over workflow execution, from initial testing to production monitoring. Manage when workflows run, track their performance, and troubleshoot issues using Baserow's workflow controls. Test safely before going live, monitor every execution, and maintain reliable automations. +## Overview + Use the sidebar menu to rename, duplicate, delete automations and workflows, plus create snapshots for backup. Learn more about how to [manage workflows in Baserow][1]. ![Baserow workflow automation image][3] -## Automation actions +## Automation settings Access automation settings by clicking the **three dots (⋯)** next to the automation name in the sidebar. -**Available actions:** +**Available options:** -- **Rename automation:** Change the automation's display name for better organization -- **Duplicate automation:** Create a copy of the entire automation including all workflows -- **Create [snapshot][2]:** Save a backup version of your automation configuration. -- **Delete automation:** Permanently remove the automation and all its workflows. Back up critical workflows via [snapshots][2] before deleting. + - **Rename automation:** Change the automation's display name for better organization + - **Settings**: You can create new integrations by adding a data source, action or user authentication. + - **Duplicate automation:** Create a copy of the entire automation, including all workflows + - **Create [snapshot][2]:** Save a backup version of your automation configuration. + - **Delete automation:** Permanently remove the automation and all its workflows. Back up critical workflows via [snapshots][2] before deleting. -## Workflow actions +## Workflow settings Access workflow settings by clicking the **three dots (⋯)** next to the workflow name in the sidebar. -**Available actions:** +**Available options:** - **Rename workflow:** Give your workflow a descriptive name. Use clear, descriptive names like ""Send welcome email on signup"" instead of ""Workflow 1"". - **Duplicate workflow:** Copy the workflow within the same automation. Duplicate workflows when creating similar automations to save configuration time. -- **Delete workflow:** Remove the workflow permanently +- **Delete workflow:** When an application or workflow is deleted, it’s moved to the workspace trash and can be restored within a limited time. After this period, they are permanently removed. -> When an application or workflow is deleted, it’s moved to the workspace trash and can be restored within a limited time. After this period, they are permanently removed. Learn more about [deleting and recovering data in Baserow][4]. +Learn more about [deleting and recovering data in Baserow][4]. ## Creating and using snapshots -Snapshots preserve automation configurations as backup points you can restore later. Snapshots are a full copy of your automation at the moment when they were created. A duplication of that data will be created when restoring. +Snapshots preserve automation configurations as backup points you can restore later. Snapshots are a full copy of your automation at the moment when they were created. A duplication of that data will be created when restoring. -### When to create snapshots -- Before making significant workflow changes -- Before deleting or restructuring automations -- After completing and testing major workflows -- Before updating external API integrations +Create snapshots before making significant workflow changes, before deleting or restructuring automations, after completing and testing major workflows, or before updating external API integrations. ### How to create a snapshot @@ -27678,7 +27874,7 @@ Still need help? If you're looking for something else, please feel free to make [1]: https://baserow.io/user-docs/workflow-management [2]: https://baserow.io/user-docs/snapshots [3]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/af2bedfe-17cd-41f5-becc-b1dac63e3760/Baserow%20workflow%20automation.jpg - [4]: https://baserow.io/user-docs/data-recovery-and-deletion",,baserow_user_docs,https://baserow.io/user-docs/automation-settings + [4]: https://baserow.io/user-docs/data-recovery-and-deletion",automation,baserow_user_docs,https://baserow.io/user-docs/automation-settings 590,Date dependency,date-dependency,Baserow's Date Dependency,"# Date dependency Baserow's Date Dependency makes project planning simple by automatically shifting related tasks when your schedule changes. @@ -27709,7 +27905,7 @@ You can configure dependencies from your table or view settings. This setup appl * **[""Define the relationship...""]** Use a [Link-to-table field][7] to connect a row to its predecessors. 5. Click **Save** - + Once configured, any change you make to a date in one linked row will automatically adjust the dates in its dependent rows to maintain the correct schedule. @@ -27760,26 +27956,30 @@ This guide introduces Kuma, Baserow's built-in AI assistant. Learn how to access Kuma is your Baserow AI assistant integrated directly into the Baserow interface. It helps you work faster without switching tools or digging through documentation. -It’s not just a chatbot. Kuma understands the context of your workspace and can take action to **create or edit** tables, views, and fields on your behalf. You can also decide which AI provider and model it uses, so you stay in control of your data and privacy. +It’s not just a chatbot. Kuma understands the context of your workspace and can take action to **create or edit** tables, views, and fields on your behalf. + +> If you self-host, you can also choose which [AI provider and model][1] it uses, so you stay in control of your data and privacy. + +Learn more: [AI-assistant Configuration][2] -![Meet Kuma, your Baserow AI assistant][1] +![Meet Kuma, your Baserow AI assistant][3] ### How to access the AI assistant You can access Kuma from anywhere in your Baserow workspace. - 1. Navigate to your workspace. + 1. Navigate to your workspace. 2. Click the **Kuma AI** tab located in the side bar. 3. This will open the Kuma chat panel. 4. Type your request in plain language and press Enter. ## What you can do with the AI assistant -Kuma is a powerful builder's assistant. You can ask it to perform a wide range of tasks, from building new tables to explaining complex features. +Kuma is a powerful builder's assistant. You can ask it to perform a wide range of tasks, from [building new tables][4] to explaining complex features. ### Build and edit databases -Instead of manually [creating tables][2] and [adding each field][3], you can describe what you need to Kuma. Kuma will build the database for you, complete with relevant fields, views, and relationships. +Instead of manually [creating tables][4] and [adding each field][5], you can describe what you need to Kuma. Kuma will build the database for you, complete with relevant fields, views, and relationships. **Examples:** * `""Create a project management table.""` @@ -27788,7 +27988,7 @@ Instead of manually [creating tables][2] and [adding each field][3], you can des ### Write formulas -Stop trying to remember complex syntax. Describe the calculation you need, and Kuma will write the formula for you. It can [create a new Formula field][4] or update an existing one instantly. +Stop trying to remember complex syntax. Describe the calculation you need, and Kuma will write the formula for you. It can [create a new Formula field][6] or update an existing one instantly. **Examples:** * `""Write a formula that calculates the number of days until the deadline.""` @@ -27797,7 +27997,7 @@ Stop trying to remember complex syntax. Describe the calculation you need, and K ### Organize and manage your data -Use plain language to quickly [manage your data views][5]. Kuma can [create new views][6] or modify your current view by adding filters, sorting rules, or grouping. +Use plain language to quickly [manage your data views][7]. Kuma can [create new views][8] or modify your current view by adding filters, sorting rules, or grouping. **Examples:** * `""Create a new Grid view in my 'Tasks' table called 'High Priority Tasks'.""` @@ -27822,16 +28022,15 @@ This will open a list of your past conversations, allowing you to review, contin ## How to configure AI provider -Kuma gives you full control over your data privacy by allowing you to choose which AI provider and model it uses. +If you self-host, Kuma gives you full control over your data privacy by allowing you to choose which AI provider and model it uses. -1. Open the Kuma chat panel. -2. Click the **Settings icon** () at the top of the panel. -3. Select **AI Provider Settings**. -4. From here, you can choose your preferred provider (e.g., OpenAI, Anthropic) and model (e.g., GPT-4o, Claude 3 Sonnet) from the dropdown lists. +Baserow integrates with multiple AI providers (OpenAI, Anthropic, Ollama, OpenRouter, Mistral) to power the AI field and generative features. + +Learn more about [configuring generative AI in Baserow][1] ## Frequently Asked Questions (FAQs) -### What is the difference between AI assistant and the AI field? +### What is the difference between the AI assistant and the AI field? The **[AI field](/user-docs/ai-field)** operates *inside* a table to perform a specific, repeatable task on data in a row (like summarizing text or extracting keywords). @@ -27853,12 +28052,14 @@ Like any AI, Kuma can sometimes misinterpret a request or make a mistake. We rec * [Introduction to databases in Baserow](/user-docs/intro-to-databases) - [1]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/c0754a24-8b55-4d73-9526-9662d3ef6fb3/Meet%20Kuma%2C%20your%20Baserow%20AI%20assistant.jpg - [2]: https://baserow.io/user-docs/create-a-table - [3]: https://baserow.io/user-docs/adding-a-field - [4]: https://baserow.io/user-docs/formula-field-overview - [5]: https://baserow.io/user-docs/view-customization - [6]: https://baserow.io/user-docs/create-custom-views-of-your-data",,baserow_user_docs,https://baserow.io/user-docs/ai-assistant + [1]: https://baserow.io/user-docs/configure-generative-ai + [2]: https://baserow.io/docs/installation%2Fconfiguration#ai-assistant-configuration + [3]: https://baserow-backend-production20240528124524339000000001.s3.amazonaws.com/pagedown-uploads/c0754a24-8b55-4d73-9526-9662d3ef6fb3/Meet%20Kuma%2C%20your%20Baserow%20AI%20assistant.jpg + [4]: https://baserow.io/user-docs/create-a-table + [5]: https://baserow.io/user-docs/adding-a-field + [6]: https://baserow.io/user-docs/formula-field-overview + [7]: https://baserow.io/user-docs/view-customization + [8]: https://baserow.io/user-docs/create-custom-views-of-your-data",workspace,baserow_user_docs,https://baserow.io/user-docs/ai-assistant 1,What is Baserow?,faq,What is Baserow?,"What is Baserow? Baserow is an open-source no-code database. Our database platform enables both non-technical and technical teams to capture, organize and build logical relationships between data to trigger decisions and automate processes. We focus on openness, scalability, performance, and data security.",faq,faq,https://baserow.io/faq diff --git a/heroku.Dockerfile b/heroku.Dockerfile index 5914f5eb85..f5e78d36d4 100644 --- a/heroku.Dockerfile +++ b/heroku.Dockerfile @@ -1,4 +1,4 @@ -ARG FROM_IMAGE=baserow/baserow:2.0.1 +ARG FROM_IMAGE=baserow/baserow:2.0.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.project_slug }}/Dockerfile b/plugin-boilerplate/{{ cookiecutter.project_slug }}/Dockerfile index 21efb4c286..0abd39ca4b 100644 --- a/plugin-boilerplate/{{ cookiecutter.project_slug }}/Dockerfile +++ b/plugin-boilerplate/{{ cookiecutter.project_slug }}/Dockerfile @@ -1,4 +1,4 @@ -FROM baserow/baserow:2.0.1 +FROM baserow/baserow:2.0.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 }}/backend-dev.Dockerfile b/plugin-boilerplate/{{ cookiecutter.project_slug }}/backend-dev.Dockerfile index 5257d5e396..4838b87ed9 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.0.1 as base +FROM baserow/backend:2.0.2 as base -FROM baserow/backend:2.0.1 +FROM baserow/backend:2.0.2 USER root diff --git a/plugin-boilerplate/{{ cookiecutter.project_slug }}/backend.Dockerfile b/plugin-boilerplate/{{ cookiecutter.project_slug }}/backend.Dockerfile index 28ef41cae8..e27547dbff 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.0.1 +FROM baserow/backend:2.0.2 USER root diff --git a/plugin-boilerplate/{{ cookiecutter.project_slug }}/dev.Dockerfile b/plugin-boilerplate/{{ cookiecutter.project_slug }}/dev.Dockerfile index 650e6cfdad..3a4a78d68d 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.0.1 as base +FROM baserow/baserow:2.0.2 as base -FROM baserow/baserow:2.0.1 +FROM baserow/baserow:2.0.2 ARG PLUGIN_BUILD_UID ENV PLUGIN_BUILD_UID=${PLUGIN_BUILD_UID:-9999} 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 d9f04f1e81..d33b1e9f75 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.0.1", + "supported_baserow_versions": "2.0.2", "plugin_api_version": "0.0.1-alpha", "description": "TODO", "author": "TODO", diff --git a/plugin-boilerplate/{{ cookiecutter.project_slug }}/web-frontend-dev.Dockerfile b/plugin-boilerplate/{{ cookiecutter.project_slug }}/web-frontend-dev.Dockerfile index 5ac6d3f578..d8178a806b 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.0.1 as base -FROM baserow/web-frontend:2.0.1 +FROM baserow/web-frontend:2.0.2 as base +FROM baserow/web-frontend:2.0.2 USER root diff --git a/plugin-boilerplate/{{ cookiecutter.project_slug }}/web-frontend.Dockerfile b/plugin-boilerplate/{{ cookiecutter.project_slug }}/web-frontend.Dockerfile index 04b88c837e..d802150fc2 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.0.1 +FROM baserow/web-frontend:2.0.2 USER root diff --git a/premium/backend/pyproject.toml b/premium/backend/pyproject.toml index d4d39d61f6..54ac94e66c 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.11" -version = "2.0.1" +version = "2.0.2" classifiers = [] [project.urls] diff --git a/web-frontend/docker/docker-entrypoint.sh b/web-frontend/docker/docker-entrypoint.sh index edfa196cfd..df4d445b75 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.0.1" +export BASEROW_VERSION="2.0.2" BASEROW_WEBFRONTEND_PORT="${BASEROW_WEBFRONTEND_PORT:-3000}" show_help() { diff --git a/web-frontend/modules/core/assets/scss/components/radio_card.scss b/web-frontend/modules/core/assets/scss/components/radio_card.scss index 8142546994..9c40824abc 100644 --- a/web-frontend/modules/core/assets/scss/components/radio_card.scss +++ b/web-frontend/modules/core/assets/scss/components/radio_card.scss @@ -21,6 +21,7 @@ display: flex; flex-direction: column; gap: 8px; + min-width: 0; } .radio-card__labels { @@ -37,8 +38,13 @@ font-weight: 500; } +.radio-card__badge { + min-width: 0; +} + .radio-card__description { color: $palette-neutral-900; line-height: 20px; font-size: 12px; + word-break: break-word; } diff --git a/web-frontend/modules/core/components/RadioCard.vue b/web-frontend/modules/core/components/RadioCard.vue index 21ddee2b9f..9fcdd65aa7 100644 --- a/web-frontend/modules/core/components/RadioCard.vue +++ b/web-frontend/modules/core/components/RadioCard.vue @@ -6,8 +6,8 @@
-
- {{ sideLabel }} +
+ {{ badgeLabel }}
@@ -39,7 +39,7 @@ export default { type: String, required: true, }, - sideLabel: { + badgeLabel: { type: String, required: false, default: undefined, diff --git a/web-frontend/modules/core/components/settings/twoFactorAuth/EnableTwoFactorOptions.vue b/web-frontend/modules/core/components/settings/twoFactorAuth/EnableTwoFactorOptions.vue index 0905c63f2a..b9ffb983f9 100644 --- a/web-frontend/modules/core/components/settings/twoFactorAuth/EnableTwoFactorOptions.vue +++ b/web-frontend/modules/core/components/settings/twoFactorAuth/EnableTwoFactorOptions.vue @@ -6,7 +6,7 @@ :value="option.type" :model-value="values.twoFaChoice" :label="option.name" - :side-label="option.sideLabel" + :badge-label="option.sideLabel" @input="updateValue" >
diff --git a/web-frontend/modules/database/store/view/grid.js b/web-frontend/modules/database/store/view/grid.js index 9ee6729681..4f5b67e891 100644 --- a/web-frontend/modules/database/store/view/grid.js +++ b/web-frontend/modules/database/store/view/grid.js @@ -2720,17 +2720,21 @@ export const actions = { const isSingleCellCopied = copiedRowsCount === 1 && copiedCellsInRowsCount === 1 + const selectedRowsCount = + getters.getMultiSelectTailRowIndex - + getters.getMultiSelectHeadRowIndex + + 1 + const selectedFieldsCount = + getters.getMultiSelectTailFieldIndex - + getters.getMultiSelectHeadFieldIndex + + 1 + + const isSingleRowCopied = copiedRowsCount === 1 && selectedRowsCount > 1 + if (isSingleCellCopied) { // the textData and jsonData are recreated // to fill the entire multi selection - const selectedRowsCount = - getters.getMultiSelectTailRowIndex - - getters.getMultiSelectHeadRowIndex + - 1 - const selectedFieldsCount = - getters.getMultiSelectTailFieldIndex - - getters.getMultiSelectHeadFieldIndex + - 1 + const rowTextArray = Array(selectedFieldsCount).fill(textData[0][0]) textData = Array(selectedRowsCount).fill(rowTextArray) @@ -2738,6 +2742,11 @@ export const actions = { const rowJsonArray = Array(selectedFieldsCount).fill(jsonData[0][0]) jsonData = Array(selectedRowsCount).fill(rowJsonArray) } + } else if (isSingleRowCopied) { + textData = Array(selectedRowsCount).fill(textData[0]) + if (jsonData) { + jsonData = Array(selectedRowsCount).fill(jsonData[0]) + } } // If the origin row and field index are not provided, we need to use the @@ -2755,14 +2764,14 @@ export const actions = { fieldHeadIndex + copiedCellsInRowsCount ) - 1 - if (isSingleCellCopied) { + if (isSingleCellCopied || isSingleRowCopied) { // we want the tail indexes to follow the multi select exactly rowTailIndex = getters.getMultiSelectTailRowIndex fieldTailIndex = getters.getMultiSelectTailFieldIndex } if ( - !isSingleCellCopied && + !(isSingleCellCopied || isSingleRowCopied) && selectUpdatedCells && !(view.sortings || view.group_bys || view.filters) ) { diff --git a/web-frontend/package.json b/web-frontend/package.json index 2121c45afe..387634ec23 100644 --- a/web-frontend/package.json +++ b/web-frontend/package.json @@ -1,6 +1,6 @@ { "name": "baserow", - "version": "2.0.1", + "version": "2.0.2", "private": true, "description": "Baserow: open source no-code database web frontend.", "author": "Bram Wiepjes (Baserow)", diff --git a/web-frontend/stories/RadioCard.stories.mdx b/web-frontend/stories/RadioCard.stories.mdx new file mode 100644 index 0000000000..45ca941441 --- /dev/null +++ b/web-frontend/stories/RadioCard.stories.mdx @@ -0,0 +1,103 @@ +import { Meta, Story, Props, Canvas } from '@storybook/addon-docs/blocks' +import { config, withDesign } from 'storybook-addon-designs' +import { action } from '@storybook/addon-actions' +import { useArgs } from '@storybook/client-api' + +import RadioCard from '@baserow/modules/core/components/RadioCard' + + { + const [_, updateArgs] = useArgs() + return story({ ...context, updateArgs }) + }, + ]} + argTypes={{ + default: { + control: 'text', + description: 'Slot content', + defaultValue: 'Label', + }, + modelValue: { + control: { + type: 'text', + }, + defaultValue: '', + }, + value: { + control: { + type: 'text', + }, + defaultValue: 'option1', + }, + label: { + control: { + type: 'text', + }, + defaultValue: 'Label', + }, + badgeLabel: { + control: { + type: 'text', + }, + defaultValue: 'Badge label', + }, + }} +/> + +# RadioCard + +The RadioCard component behaves like the Radio component but instead of the native circle button, it uses a custom card design. + +export const Template = (args, { argTypes, updateArgs }) => ({ + methods: { + action, + handleInput(value) { + const modelValue = value + updateArgs({ ...args, modelValue }) + action('handleInput')(modelValue) + }, + }, + components: { RadioCard }, + props: Object.keys(argTypes), + template: `${args.default}`, +}) + +export const designConfig = { + type: 'figma', + url: 'https://www.figma.com/file/W7R2rQW7ohsZMeHRfEcPFW/Design-Library?node-id=53%3A1852&mode=dev', +} + + + + {Template.bind({})} + + + +## Example + +```javascript + +``` + +## Props + +