Skip to content

Releases: dekart-xyz/dekart

v0.23.2

Choose a tag to compare

@delfrrr delfrrr released this 03 Jul 05:43

This is patch release for larger 0.23

🔍 Feature Highlights

Snapshot viewport overrides for agents

MCP report snapshots now accept optional zoom, lat, and lon values, so agents can request a snapshot from a specific camera position without permanently changing the saved map. Snapshot readiness now waits for the expected map state, which makes image capture more reliable when dataset sources load slowly.

🔧 User-Facing Bug Fixes

  • Fixed a cloud save race where remote report updates could overwrite local map state while a save was in progress.
  • Fixed report forking when shared reports contain empty query parameters.
  • Fixed GeoJSON reloads after renaming a dataset label without a file extension.

⚙️ Changes Important for Admins

SQLite backup stability

SQLite backups now skip uploads when the database has not changed, reducing runaway backup creation for self-hosted deployments that use object storage or Snowflake stage backups. Backup pruning is also rate-limited and capped per run.

🚀 Upgrade Instructions

  1. Backup your metadata database.

  2. Review local development env vars if you run Cypress or manual dev auth. Use DEKART_DEV_CLAIMS=1 for local dev claims. Use DEV_REFRESH_TOKEN and DEV_REFRESH_TOKEN_INFO only as Cypress-side test inputs.

  3. Upgrade your image:

    ghcr.io/dekart-xyz/dekart-premium/dekart:0.23
    

    OSS/Docker Hub deployments can use:

    dekartxyz/dekart:0.23
    

Migrations are applied automatically at startup.

v0.23.1

Choose a tag to compare

@delfrrr delfrrr released this 13 Jun 05:13

v0.23.1

This is patch release for larger 0.23

⚙️ Changes Important for Admins

Report visit analytics

Dekart now records individual report visit events in addition to aggregate counters, giving a more accurate view of report engagement. A new metadata migration (report_visit_events) is applied automatically at startup.

Details https://dekart.xyz/docs/knowledge-base/report-visit-events/

🔧 User-Facing Bug Fixes

  • Fixed MCP query handling of invalid dataset_id and query_id values by validating IDs before use, preventing internal errors on malformed input.
  • Run All now skips legacy queries whose data sources are missing instead of failing the whole run.
  • MCP no longer deletes the dataset when handling a report README, and local file-upload data now persists correctly across MCP operations.
  • BigQuery service-account connection handling is more reliable, including job location and dataset retrieval paths.
  • Fixed the Docker image missing the sqlite directory, which could break SQLite metadata startup in some builds.

🚀 Upgrade Instructions

  1. Backup your metadata database.

  2. Check your license key. If your deployment uses DEKART_LICENSE_KEY, make sure it is valid before upgrading. With this release an expired key puts the workspace into read-only mode rather than failing outright. Get a key free here.

  3. Upgrade your image:

    ghcr.io/dekart-xyz/dekart-premium/dekart:0.23
    

    OSS/Docker Hub deployments can use:

    dekartxyz/dekart:0.23
    

Migrations are applied automatically at startup.

v0.23.0

Choose a tag to compare

@delfrrr delfrrr released this 03 Jun 12:11

🔍 Feature Highlights

Create maps with Claude and Codex

You can now create and edit maps directly from Claude and Codex through MCP.
Pair the GeoSQL skill with the Dekart CLI to connect an agent, authorize it in the browser, run queries, update maps, and capture report snapshots.

geosql-dekart-queries-demo-github

Postgres connection dialog

You can now create Postgres data connections through a new connection dialog in the UI, in addition to the existing CLI flow.

Screenshot 2026-06-03 at 14 05 28

Start Dekart with one Docker command

Dekart now starts with zero configuration:

docker run -p 8080:8080 dekartxyz/dekart:0.23

The default image ships with a built-in SQLite metadata database, local file storage, and file upload, so you can create your first map right away.

Persisting your data. The command above keeps everything inside the container. To make your maps and uploads survive a restart, choose one of these options:

  • Local volume — mount a host directory at /dekart/data to persist the SQLite metadata database and uploaded files:

    docker run -p 8080:8080 \
      -v $(pwd)/dekart-data:/dekart/data \
      dekartxyz/dekart:0.23
  • Amazon S3 — back up SQLite to an S3 bucket:

    docker run -p 8080:8080 \
      -e DEKART_STORAGE=S3 \
      -e DEKART_CLOUD_STORAGE_BUCKET=your-bucket \
      -e AWS_REGION=us-east-1 \
      -e AWS_ACCESS_KEY_ID=your-key \
      -e AWS_SECRET_ACCESS_KEY=your-secret \
      dekartxyz/dekart:0.23
  • Google Cloud Storage — back up SQLite to a GCS bucket:

    docker run -p 8080:8080 \
      -e DEKART_STORAGE=GCS \
      -e DEKART_CLOUD_STORAGE_BUCKET=your-bucket \
      -v ${GOOGLE_APPLICATION_CREDENTIALS}:${GOOGLE_APPLICATION_CREDENTIALS} \
      -e GOOGLE_APPLICATION_CREDENTIALS=${GOOGLE_APPLICATION_CREDENTIALS} \
      dekartxyz/dekart:0.23

The Postgres metadata backend is still supported for deployments that prefer it (a valid DEKART_LICENSE_KEY is required — see below).

Postgres is no longer required

Dekart now uses its built-in SQLite database for metadata by default, and SQLite backups can be stored in Amazon S3 or Google Cloud Storage. Self-hosted deployments no longer need a separate Postgres database.

⚠️ Behavior Changes

Docker now defaults to local storage

The Docker image now defaults to SQLite metadata, local file storage, and file upload.
If you adopt these defaults, persist /dekart/data so metadata and uploaded files survive container replacement.

File upload is on by default, and auto-disabled with Postgres replay storage

File upload is now enabled by default (DEKART_ALLOW_FILE_UPLOAD=1 in the Docker image), so you can upload CSV and GeoJSON files without extra configuration.

Postgres replay storage does not support file upload, so when DEKART_STORAGE=PG Dekart now disables file upload automatically and logs a warning at startup. You no longer need to set DEKART_ALLOW_FILE_UPLOAD=0 yourself.

Mapbox token is now optional

Maps render on a free MapLibre/Carto base map style by default, so you can create a map without a Mapbox token.
Set DEKART_MAPBOX_TOKEN only if you want Mapbox base map styles and static map thumbnail previews.

⚙️ Changes Important for Admins

Self-hosted workspace management

Admins can now manage the default self-hosted workspace through the same workspace UI used for every other workspace.
This covers workspace details, members, roles, and device tokens, without enabling additional workspace creation.

SQLite backup improvements

When DEKART_STORAGE is S3 or GCS, SQLite backups can use the configured object storage bucket.
When DEKART_STORAGE=PG is used for Postgres query replay with SQLite metadata, DEKART_CLOUD_STORAGE_BUCKET can now configure an S3 backup and restore target using the standard AWS SDK credential chain.
Snowflake stage backup and restore remain supported.

New snapshot and device authorization configuration

This release adds report snapshot endpoints for agent workflows and device authorization keys for CLI access.
If you use these features, you can configure snapshot rendering, snapshot token lifetime, device authorization keys, and device token lifetime.

Postgres metadata now requires a license key

Deployments that use Postgres for Dekart metadata must set a valid DEKART_LICENSE_KEY. Get a key for free here.
Postgres can still be used as a user-created data connection in Community Edition, as long as metadata stays in SQLite.

🔧 User-Facing Bug Fixes

  • Improved BigQuery job location handling and dataset retrieval reliability.
  • Fixed active dataset loading edge cases and false unsaved-change warnings.
  • Improved dataset download error messages when network requests fail.
  • Fixed trip layer behavior by updating Kepler.gl dependencies.
  • Improved connection testing so unchanged credentials no longer need to be re-entered, including for BigQuery service account connections.
  • Improved OAuth code exchange reliability and Safari markdown rendering.
  • Clarified disabled query parameter actions and corrected BigQuery connection copy.

🚀 Upgrade Instructions

  1. Backup your metadata database.

  2. Update environment configuration:

    • If your deployment previously relied on unset metadata, storage, datasource, or file upload variables, review the new Docker defaults.
    • Configure snapshot rendering if you use those features.
  3. Upgrade your image:

Dekart Premium:

ghcr.io/dekart-xyz/dekart-premium/dekart:0.23

OSS:

dekartxyz/dekart:0.23

Migrations are applied automatically at startup.

v0.22.1

Choose a tag to compare

@delfrrr delfrrr released this 30 Mar 05:58

🔍 Feature Highlights

Map change history and restore

Users can open map change history, review previous versions, and restore an earlier snapshot directly from the UI.
Snapshots now include richer report, dataset, and query state metadata.

Screenshot 2026-03-29 at 09 46 17

Query auto-refresh controls

Maps can now run queries on an interval in view mode, with refresh controls in the header and query settings.
This makes dashboards easier to keep current without manual reruns.

Screenshot 2026-03-29 at 09 52 49

Workspace switching in UI

Users can switch between workspaces from a dedicated selector.
Workspace and header flows were updated for better behavior with long names and multi-workspace accounts.

Screenshot 2026-03-29 at 09 50 40

Map previews across report lists

Home/report cards now show map previews more consistently.
When a preview is missing, Dekart falls back to map configuration defaults so cards still render useful context.

Screenshot 2026-03-29 at 09 55 16

Location controls on maps

Map controls now include user location actions and improved mobile behavior for map interactions.

Screenshot 2026-03-30 at 07 34 07

Public report metadata improvements

Public report pages now include improved HTML metadata and page titles for better link previews and browser tab clarity.

Expanded file upload support

Users can upload .parquet files directly, in addition to existing .csv and .geojson uploads.
Upload validation was also tightened so unsupported or oversized files fail earlier with clearer behavior.

Allow Athena connections to upload files

Contributed by @seanlane

⚙️ Changes Important for Admins

SSO key

Dekart runs in anonymous mode by default. To enable team login (Google OAuth, OIDC, AWS ALB, or Google IAP), your instance needs an SSO key set as DEKART_LICENSE_KEY. Get your free key here

No changes required for premium users. Key is baked into premium images.

OIDC JWT header authentication

Dekart supports OIDC JWT header auth for reverse-proxy setups (for example Keycloak + oauth2-proxy).
This enables SSO-style login flows without Google OAuth redirects.

Postgres query replay storage

DEKART_STORAGE=PG support enables query replay from Postgres storage, reducing dependency on object storage in PG-based deployments.

Environment variable updates

New variables introduced in this range:

  • DEKART_REQUIRE_OIDC
  • DEKART_OIDC_JWKS_URL
  • DEKART_OIDC_ISSUER
  • DEKART_OIDC_AUDIENCE (optional)
  • DEKART_LICENSE_KEY

Renamed variable:

  • DEKART_POSTGRES_DATA_CONNECTION -> DEKART_POSTGRES_DATASOURCE_CONNECTION

🔧 User-Facing Bug Fixes

  • Fixed report list deadlock and related loading issues.
  • Improved map preview reliability by preventing empty/transparent preview saves.
  • Fixed crashes and unstable behavior around canceled-context execution paths.
  • Improved dataset/source retrieval and error handling in query/report flows.
  • Fixed archived/report list behavior and several navigation/state edge cases.
  • Improved responsive behavior for report headers and controls on smaller screens.

🚀 Upgrade Instructions

  1. Backup your Postgres database.

  2. Update environment configuration:

    • Configure OIDC header-auth variables if you use reverse-proxy SSO.
    • Rename DEKART_POSTGRES_DATA_CONNECTION to DEKART_POSTGRES_DATASOURCE_CONNECTION.
    • Set DEKART_LICENSE_KEY if your deployment mode requires it.
    • Optionally configure version-check variables for your environment.
  3. Upgrade your image:

    ghcr.io/dekart-xyz/dekart-premium/dekart:0.22.1
    

    OSS/Docker Hub deployments can use:

    dekartxyz/dekart:0.22.1
    

Migrations are applied automatically at startup.

v0.19.5

Choose a tag to compare

@delfrrr delfrrr released this 08 Oct 07:42

What's Changed

  • Add support for archiving and restoring reports
  • Improve handling of large map configurations and add gRPC size limit warnings
  • Gracefully handle client disconnects in gRPC streams
  • Show "Result is empty" message for SQL queries with no rows
  • Add EmptyResultError for better error clarity on blank datasets

Full 0.19 release notes

v0.19.2

Choose a tag to compare

@delfrrr delfrrr released this 28 Aug 05:10

What's Changed

Full 0.19 relese notes

v0.19

Choose a tag to compare

@delfrrr delfrrr released this 12 Aug 17:27

Feature Highlights

Wherobots Integration (Beta)

Run large-scale spatial jobs on Wherobots® clusters directly from Dekart.

Screenshot 2025-07-21 at 06 54 42

Kepler.gl 3.x Upgrade

Dekart now runs on Kepler.gl 3.x / Deck.gl 9.x, delivering new Kepler features and faster load times for large maps.

New Dataset Panel Interface

The Dataset Panel has been redesigned:

Screenshot 2025-07-21 at 11 43 21

Per-Email Sharing

Share maps with specific email addresses in View-Only mode to let others explore without editing.

Screenshot 2025-07-21 at 11 45 28

Mandatory Configuration Change

Dekart 0.19 requires explicit configuration of storage and datasource backends:

# Where Dekart stores files and query results
DEKART_STORAGE=USER
# Default SQL datasource for new maps
DEKART_DATASOURCE=USER

Dekart will not start without these variables set.

Fixes & Improvements

  • Map no longer reloads during layer edits
  • Stable large dataset downloads for Snowflake and Athena
  • Titles sync correctly after report renames
  • UI improvements: responsive headers, updated tooltips, smoother dataset panel

Migration Steps

  1. Backup your Postgres database.
  2. Upgrade your image:

dekartxyz/dekart:0.18 → dekartxyz/dekart:0.19

  1. Set the required environment variables DEKART_STORAGE and DEKART_DATASOURCE.

v0.18.5

Choose a tag to compare

@delfrrr delfrrr released this 20 May 17:41

What's Changed

Full Changelog: v0.18.4...v0.18.5

v0.18.4

Choose a tag to compare

@delfrrr delfrrr released this 20 May 05:29

What's Changed

  • Bug fixies in stream updates @delfrrr in #227
  • Update Snowflake configuration to use private key instead of password by @delfrrr in #231
  • Fix report forking and add coverage by @delfrrr in #235

Full Changelog: v0.18.3...v0.18.4

v0.18

Choose a tag to compare

@delfrrr delfrrr released this 02 Mar 15:18

Feature Highlights

Query Parameters

Turn your maps into data applications! Add {{parameters}} to your SQL and UI inputs. Parameters are added to the URL, so you can share parameterized maps. Filter multiple queries with the same dimension using the same {{parameter}}.

Screenshot 2025-02-10 at 07 48 14

Auto‐Save

Automatic map saving and sync between users. No need to press Save. Changes are synced and updated without page reload.

Screenshot 2025-02-28 at 09 35 46

User Roles & Workspaces

Assign roles (viewer, editor, admin) to your collaborators and organize projects by workspace, making it easier to manage permissions and keep your maps organized.

Note: when migrating from previous versions all users and maps will be moved to "Default" workspace.

Screenshot 2025-02-28 at 09 36 56

To fine-tune workspace permissions and default roles, we’ve added following configuration variables

  • DEKART_ALLOW_WORKSPACE_CREATION

    • When set to true, users can create new workspaces. Set to false new users will be automatically added to Default workspace.
  • DEKART_DEFAULT_WORKSPACE_ADMIN

    • Email that designates a default admin for Default workspace. When not provided all new users will be Admin. When provided all users will be viewers, unless specified differently with DEKART_DEFAULT_WORKSPACE_ROLE
  • DEKART_DEFAULT_WORKSPACE_ROLE

    • Role assigned by default to new users (e.g., viewer, editor, admin). Requires DEKART_DEFAULT_WORKSPACE_ADMIN to be specified

Markdown README Support

Add READMEs to your maps and make them self-explanatory.

Screenshot 2025-02-23 at 17 35 44

BigQuery Service Account Keys

Create connections using JSON service account keys—ideal when users don’t have direct BigQuery access or prefer not to rely on personal Google credentials.

Note: The DEKART_DATA_ENCRYPTION_KEY setting is required for this feature.
This key ensures secure storage of sensitive data, such as service account details.

DEKART_DATA_ENCRYPTION_KEY is an environment variable used to encrypt and decrypt sensitive information inside Dekart (for example, the JSON credentials for BigQuery). By setting this key, you enable Dekart to securely manage stored credentials.

Usage:

  • Set DEKART_DATA_ENCRYPTION_KEY to a base64‐encoded, 32‐byte (256‐bit) encryption key.
  • Dekart uses this key for all encryption/decryption operations related to credentials.

Steps to Generate & Set the Key:

  1. Generate a Secure 256‐Bit Key
    Use a command like:

    openssl rand -base64 32

    This produces a base64‐encoded, 32‐byte key.

  2. Add key to Google Secret Manager

  3. Set the Environment Variable
    Add this key to your .env file or environment configuration:

    DEKART_DATA_ENCRYPTION_KEY=projects/121212121212/secrets/dekart-data-encoding-key/versions/1

With DEKART_DATA_ENCRYPTION_KEY in place, Dekart can securely handle BigQuery Service Account Keys and Snowflake credentials.


Other Notable Changes

  • Click House Support, contributed by @Tsovak
  • Allow Export: Toggle dataset downloads at the report level for tighter data control.
  • Snowflake Improvements: Fixed re‐run errors, improved large download stability.
  • Enhanced UI & Logging: Clearer error messages, better workspace screens, and more robust logs.
  • Security Updates: Upgraded to Go 1.21, updated backend dependencies
  • DEKART_GCP_EXTRA_OAUTH_SCOPES now also applied to OAuth tokens

Migration Guide

Important: always backup Postgres database before performing update

Note: when authentfication enabled, all current users and maps will be migrated to "Default" workspace. You can manage and rename via UX afterwords.

For all Docker-based deployments, update the docker tag, for example dekartxyz/dekart:0.17 -> dekartxyz/dekart:0.18

You’re all set! Enjoy the new features in Dekart 0.18.