Releases: postgres-ai/database-lab-engine
DBLab Engine v4.1.0
New Features
- Teleport integration (available in Standard and Enterprise Editions only): new
dblab teleport serveCLI command and hostssl cert in defaultpg_hba(!1105) - RDS/Aurora logical refresh component (!1070)
- Built-in
databaseRenameoption for snapshot jobs (!1096) - Protection lease concept for time-limited clone protection (!1088, #669)
- Prometheus exporter for DBLab metrics (!1087, #668)
- Sync WAL lag Prometheus metric for physical mode (!1093, #673)
- ARM64/Colima support and UI API proxying fixes (!1077)
- Redesigned Disks section in UI to group datasets under a shared pool header (!1103, #682)
- RDS IAM instance identifier added to config projection (!1106)
Improvements and Fixes
- Fixed UI config page crash on undefined
databasesandcustomOptionsinformatConfig(!1126, #697) - Fixed UI 404 on page refresh at
/instance(!1120, #693) - Fixed pool name in the snapshot API (!1117)
- Fixed
projection.Storeoverwriting existing YAML slices and maps (!1111, #687) - Added timeout to retrieval activity endpoint to prevent hanging (!1109, #686)
- Stabilized branch metadata verification and protected branch heads during cleanup (!1097)
- Fixed tab-delimited ZFS output parsing in branch functions (!1102)
- Fixed misleading disk space indicator for shared ZFS pools (!1095, #674)
- Use
--snapshot-idinstead of branch in CLI clone command snippet (!1094, #657) - Set default branch to
mainfor clone creation (!1075, #662) - Fixed test errors after PostgreSQL 9.6 removal (!1116, #683)
Security
- Removed unused crypto/stream polyfills - CVE-2025-14505 (!1124, #270)
- Resolved CVE-2026-1615 (jsonpath/bfj) and CVE-2024-11831 (serialize-javascript) (!1100, #680)
- Addressed 3 additional security vulnerabilities in UI npm dependencies (!1099, #680)
- Fixed CVE-2024-41110: updated Docker base image to 27.5.1 (!1098, #679)
- Dropped PostgreSQL 9.6 support (EOL since November 2021) (!1115, #683)
Internal
- Migrated UI to Vite and ESLint 9, fixed npm CVEs (!1122, #320, #315, #288, #287, #236, #235, #229)
- Bumped backend dependencies, added upgrades and CVE fixes implementation plan (!1121)
- Bumped Node from 22-alpine to 24-alpine and closed remaining Dependabot PRs (!1123)
- Batch patch-level Go and UI dependency bumps (!1128)
- Bumped all dependencies (Dependabot consolidation) (!1118, #691)
- Limited Dependabot to security-only updates (!1127)
- Ignored major version bumps in Dependabot config (!1125)
- Updated Dependabot configuration for weekly updates (!1072)
- Improved unit test coverage from 19% to 26% (!1113)
- DCF-5: added CI peer review gate (SOC2) (!1108)
- Enabled GitLab SAST scanning - DCF-712 (!1104)
- Fixed semgrep-sast job broken by global CI settings - DCF-712
- Added gitleaks pre-commit hook (!1112)
- CI: added interruptible jobs, auto-cancel, and reduced MR test matrix (!1091, #670, #671)
- Added missing artifacts to
build-binary-client-master(!1092, #670) - Added pre-push testing requirement to CLAUDE.md (!1101)
Full diff
DBLab Engine v4.0.4
Security
- Updated pgtype to v1.14.4 to address CVE-2024-27304 (!1086)
Bug Fixes
- Fixed config page losing
shared_preload_librariesvalue on reload when using SE images (!1085) - Fixed logical snapshot cleanup on full-refresh (!1068)
- Fixed duplicate "ago" suffix in snapshots list timestamps (!1089)
- Fixed PostgreSQL icon rendering artifact caused by improper SVG path closure (!1082)
- Fixed dataset names not showing in branch dropdown (!1080)
- Removed hardcoded placeholder IP address (34.56.78.90) from default configuration (!1046)
Full diff
DBLab Engine v4.0.3
Improvements and Fixes
- Fixed snapshot creation using the CLI 'snapshot create' command (!1061)
- Fixed duplicate mount entries in /proc/mounts (!1063)
- Added timeout to psql activity command and improved connection handling (!1062)
- Fixed branch list sorting to use dataStateAt field (!1064)
- Fixed duplicate branches appearing in the CLI list command (!1065)
Internal
- Updated dependencies to address critical CVE vulnerabilities (!1066)
- Updated Docker base image and Docker Go SDK to v27.1.1 (!1066)
- Fixed deprecation linter warnings (!1067)
Full diff
DBLab Engine v4.0.2
Improvements and Fixes
- Added support for PostgreSQL 18 !1056
- Fixed CLI install script to support aarch64 architecture !1057
- Improved performance of the dblab clone list command !1054
- Display all branches including ambiguous ones and filter snapshots by dataset !1059
- Clean up the entire clone dataset if there are no other revisions !1054
Internal
- Fixed CI by installing google-cloud-sdk for GCP integration !1060
- Updated Go to 1.24 !1054
- Removed non-functional depshield badge !1058
Full diff
DBLab Engine v4.0.1
Improvements and Fixes
- Fixed date formatting errors with invalid (empty) dates that could cause crashes on the branches page !1049
- Implemented proper cleanup for clone datasets on destroy operations !1052
- Enhanced branch metadata verification after snapshot creation !1051
Internal
- Removed swagger-ui deployment !1047
- Updated UI package versions and fixed shared package npm release !1053
- Updated dependencies to address security vulnerabilities !1050
- Updated LICENSE file year !1048
Full diff
DBLab Engine v4.0.0
New features
- Instant database branching (docs) !638, !647, !675, !680, !682, !770, !823, !841, !858, !888, !939, !944, !957, !965, !974, !982, !987, !990, !997, !1001, !1016
- Snapshots on demand: users can create snapshots using API/CLI/UI (docs) !637, !934, !971, !973, !988, !991, !992, !993, !1000, !1001, !1002, !1003, !1011, !1013
- Full refresh on demand: for logical mode, users can initiate full refresh using API/CLI/UI (for logical mode) !1023, !1024, !1025
- Improved UI: more tabs, icons, filtering, CLI/API snippets !731, !998
- Webhooks for major events (docs) !763
- macOS support (docs) !1022
Improvements and fixes
- Updated OpenAPI spec – api.dblab.dev !741, !743, !1006
- Clone counting and restoration cleanup: 9d45ce39
- Fix "white screen" when opening the clone creation page: !966
- Reorganizing clone datasets: !977
- Destroy dependent clones synchronously: !995
- Refactor API endpoints: !994, !996
- Fix logs location for idle clone detection: !1012
- Improve CONTRIBUTING.md !1004, !1005
Internal
Full diff
DBLab Engine v4.0.0 RC3
Merge branch '626-existing-snapshot' into 'dle-4-0' fix: show error message on creating snapshot when data in the pool has not changed (#626) See merge request postgres-ai/database-lab!1033
DBLab Engine v3.5.0
New features
- Switch license to Apache 2.0 - https://gitlab.com/postgres-ai/database-lab/-/merge_requests/817
- Simple installer for DBLab - https://gitlab.com/postgres-ai/database-lab/-/merge_requests/816
- Enforce strong DB password values - https://gitlab.com/postgres-ai/database-lab/-/merge_requests/813
- Rename DLE to DBLab - https://gitlab.com/postgres-ai/database-lab/-/merge_requests/814, https://gitlab.com/postgres-ai/database-lab/-/merge_requests/818
- Support PostgreSQL 16 - https://gitlab.com/postgres-ai/database-lab/-/merge_requests/820
Improvements and fixes
- Allow access to clones from an internal Docker network - https://gitlab.com/postgres-ai/database-lab/-/merge_requests/802
- Adjust tags in the SE snippets - https://gitlab.com/postgres-ai/database-lab/-/merge_requests/804
- Make snapshots request conditionally - https://gitlab.com/postgres-ai/database-lab/-/merge_requests/819
- Correct disabled state for the DLE installation - https://gitlab.com/postgres-ai/database-lab/-/merge_requests/803
- Use explicit tags for Postgres' dockerImage - https://gitlab.com/postgres-ai/database-lab/-/merge_requests/808, https://gitlab.com/postgres-ai/database-lab/-/merge_requests/824
- Verify for dumpLocation on the filesystem - https://gitlab.com/postgres-ai/database-lab/-/merge_requests/801
- Adjust listen addresses in the foundation container - https://gitlab.com/postgres-ai/database-lab/-/merge_requests/806
- Bump SE installer version - https://gitlab.com/postgres-ai/database-lab/-/merge_requests/811
- Init provisioner after starting API server - https://gitlab.com/postgres-ai/database-lab/-/merge_requests/809
- Update Generic Postgres tag in UI - https://gitlab.com/postgres-ai/database-lab/-/merge_requests/821, https://gitlab.com/postgres-ai/database-lab/-/merge_requests/831
- Stop bloating diagnostic logs - https://gitlab.com/postgres-ai/database-lab/-/merge_requests/827
Internal
- Update README - https://gitlab.com/postgres-ai/database-lab/-/merge_requests/800
- Prevent Cypress tests from failing - https://gitlab.com/postgres-ai/database-lab/-/merge_requests/807
How to get help
To get help, reach out to the Postgres.ai team and the growing community of Database Lab users and contributors: https://postgres.ai/contact.
Provide feedback, contribute
Any feedback will be greatly appreciated:
- Twitter: @Database_Lab
- Database Lab Community Slack: https://slack.postgres.ai/
If you want to help the project grow, consider various ways of contributing:
- Star the GitHub repo: https://github.com/postgres-ai/database-lab-engine
- Spread the word using Twitter (please mention @Database_Lab!) or your social network of choice
- Consider translating the README.md to one or several languages you know
- Consider implementing one of the features that will make DLE better: see CONTRIBUTING.md and the list of "good first issues" on GitLab.
Full diff
Diff between versions v3.4.0 and v3.5.0: v3.4.0...v3.5.0
Where to start / get help
- Tutorial
- DBLab 3.5 demo instance (token:
demo-token) - Docs
- Postgres.ai Console
- Contact us
Provide feedback, contribute
We greatly value your feedback. Connect with us via:
- X/Twitter @Database_Lab
- DBLab Community Slack
Additional resources where you can get insights about DBLab and Postgres:
Interested in giving back to the project? Here's how you can make an impact:
- Give a star to our GitHub repository
- Help us reach more enthusiasts. Share about Database Lab on Twitter (don't forget to tag @Database_Lab) or any other platform you fancy
- Multilingual? Consider translating our README.md to share the knowledge in your language
- Are you a developer? Dive in and enhance the Database Lab Engine (DLE) experience; check out our CONTRIBUTING guidelines and explore the "good first issues" list on GitLab
DBLab Engine v3.4.0
New name: DBLab Engine
The new name for the Database Lab Engine is "DBLab Engine". Updates are currently underway across our materials to reflect this change. To align with this change, we have introduced specific domains for the product: dblab.dev and dblab.sh. For ease of access, we have established the following short URLs:
- https://cli.dblab.dev/ and https://dblab.sh – CLI setup script (works on macOS/Linux/Windows:
curl -sSL dblab.sh | bash) - https://demo.dblab.dev/ – DBLab 3.4 demo (token:
demo-token) - https://branching.dblab.dev/ – DBLab 4.0-alpha demo, implementing full-fledged DB branching and snapshots on demand (token:
demo-token) - https://aws.dblab.dev/ – DBLab SE page in AWS Marketplace
- https://docs.dblab.dev/ – the docs
- https://api.dblab.dev/ – interactive API reference (powered by readme.io)
New contributors
🙇 Many thanks to our first-time contributors: @mbobin, @TheLiamGuy, @gromsterus, @ibash, @byx01, @davidsvenson.
By the numbers
- DBLab GitHub repository has crossed the 1700+ stars mark
- X/Twitter account @Database_Lab has more than 1300 followers
- Our LinkedIn page has amassed 1500+ followers
Thank you for the support!
New DBLab SE installer
We've expanded the installation options for DBLab SE. Besides its presence in the AWS Marketplace, you can now seamlessly install DBLab SE directly from the Postgres.ai Console.
This setup is entirely automated and can be used anywhere:
- For those who have existing machines, we support the "BYOM" (Bring Your Own Machine) method
- If you're utilizing AWS, GCP, DigitalOcean, or Hetzner Cloud, the installer handles resource provisioning—including VMs, disks, and more—automatically.
Check out the updated tutorial.
Migration notes
For those considering an upgrade, we recommend executing a fresh installation of DBLab. At present, we don't have automation in place for upgrades. If you need to update an existing DBLab installation, it's essential to stop and remove the current containers. Then, initiate a fresh start of the DBLab container using the 3.4.0 tag. More details can be found in the docs. Before initiation, ensure you've adjusted the DBLab configuration as outlined below.
Postgres images
There is a new method for running clones with customized port and socket directories. Please note that this is NOT backward compatible with previous versions of the Postgres images that DBLab utilized. It is crucial to ensure the dockerImage options utilize tags with the -0.3.0 suffix or later, such as postgresai/extended-postgres:15-0.3.0 (details can be found in this MR).
Global telemetry
The global.telemetry subsection has been deprecated and removed. The control to activate/deactivate telemetry has been relocated to the platform section:
platform:
url: "https://postgres.ai/api/general"
enableTelemetry: truePlatform
From version v3.4.0 onward, the platform section is enabled by default.
If either the accessToken or orgKey keys aren't empty, ensure the url parameter is specified; otherwise, the DBLab instance will not initialize. By default, neither accessToken nor orgKey are defined when in case of self-managed installations.
platform:
url: "https://postgres.ai/api/general"
enableTelemetry: true
# orgKey: "org_key"
# accessToken: "platform_access_token"Docker mounts
Please omit the following Docker mount directives during container startup, as they are no longer necessary:
--volume /sys/kernel/debug:/sys/kernel/debug:rw \
--volume /lib/modules:/lib/modules:ro \
--volume /proc:/host_proc:ro \Changelog
New features
- Configuration: new option
ignoreErrorsin subsectionslogicalDumpandlogicalRestoreto allow not to interrupt the process of dump/restore in case of errors - https://gitlab.com/postgres-ai/database-lab/-/merge_requests/699, https://gitlab.com/postgres-ai/database-lab/-/merge_requests/700, https://gitlab.com/postgres-ai/database-lab/-/merge_requests/730 - Configuration: new option
skipPoliciesin subsectionlogicalRestoreto allow to skip policies (CREATE POLICY) during restore process, to avoid errors likepolicy "xxx" for table "yyy" already exists: https://gitlab.com/postgres-ai/database-lab/-/merge_requests/769 - Configuration: new option
cloneAccessAddressesin sectionprovisionto control port publishing for clone containers; now limited to127.0.0.1by default; support multiple addresses and IPv6: https://gitlab.com/postgres-ai/database-lab/-/merge_requests/786 - UI: Improved Logs view with log filters - https://gitlab.com/postgres-ai/database-lab/-/merge_requests/672, https://gitlab.com/postgres-ai/database-lab/-/merge_requests/702
- CLI: ARM / Apple silicon (M1, M2) support for DBLab CLI binaries - https://gitlab.com/postgres-ai/database-lab/-/merge_requests/719, https://gitlab.com/postgres-ai/database-lab/-/merge_requests/733
- API: DBLab v3.4.0 API specification updated and is now published on api.dblab.dev: https://gitlab.com/postgres-ai/database-lab/-/merge_requests/747
- Numerous updates to Postgres images
- supported Postgres major versions: 9.6-15
- image tags:
9.6-0.3.0...15-0.3.0;⚠️ older tags won't work with DBLab 3.4.x pgvectorextension added to- existing extension upgraded (docs)
- special images for DBLab SE/EE (with some extension being mocked): RDS Postgres, Aurora, GCP Cloud SQL, Supabase, Timescale, Heroku, PostGIS
- New installer for DBLab SE, available at Console.Postgres.ai, and simplified configuration for various managed PostgreSQL services such as AWS RDS, GCP Cloud SQL, Supabase, Heroku - various MRs
Improvements and fixes
- Enable debug mode by default - https://gitlab.com/postgres-ai/database-lab/-/merge_requests/687
- UI: Instant view of configuration, not waiting for the end of retrieval (physical mode) - https://gitlab.com/postgres-ai/database-lab/-/merge_requests/674
- UI: Collapse/expand the right-side panel - https://gitlab.com/postgres-ai/database-lab/-/merge_requests/677, https://gitlab.com/postgres-ai/database-lab/-/merge_requests/681
- UI: Prevent crash when project ID doesn't exist - https://gitlab.com/postgres-ai/database-lab/-/merge_requests/684
- Add system stats (number of CPUs and size of RAM) to the EngineStarted telemetry event - https://gitlab.com/postgres-ai/database-lab/-/merge_requests/688
- Add hint about Postgres logs - https://gitlab.com/postgres-ai/database-lab/-/merge_requests/685
- UI: "Sign out" button - https://gitlab.com/postgres-ai/database-lab/-/merge_requests/678
- Correctly detect clone activity / idleness for timezones different from UTC - https://gitlab.com/postgres-ai/database-lab/-/merge_requests/692, https://gitlab.com/postgres-ai/database-lab/-/merge_requests/734
- If full refresh fails, report it in
/statuswith proper messages - https://gitlab.com/postgres-ai/database-lab/-/merge_requests/696 - Mask sensitive data in logs - https://gitlab.com/postgres-ai/database-lab/-/merge_requests/705
- UI: Extend and improve the Configuration tab - https://gitlab.com/postgres-ai/database-lab/-/merge_requests/698
- Check in UI if retrieval mode is unknown - https://gitlab.com/postgres-ai/database-lab/-/merge_requests/669
- Clean up data during full data refresh in logical mode - https://gitlab.com/postgres-ai/database-lab/-/merge_requests/704
- Choose the last snapshot when reset to the latest snapshot is requested - https://gitlab.com/postgres-ai/database-lab/-/merge_requests/708
- Remove timing estimator (experimental) - https://gitlab.com/postgres-ai/database-lab/-/merge_requests/716
- Avoid panic with concurrent map read and map write: https://gitlab.com/postgres-ai/database-lab/-/merge_requests/726
- Exclude timescaledb internal scheme from the restricted script: https://gitlab.com/postgres-ai/database-lab/-/merge_requests/738
- UI: show Configuration tab if mode is unknown: https://gitlab.com/postgres-ai/database-lab/-/merge_requests/735
- Change error message from JSON format to string: https://gitlab.com/postgres-ai/database-lab/-/merge_requests/739
- UI: Various fixes: https://gitlab.com/postgres-ai/database-lab/-/merge_requests/752, https://gitlab.com/postgres-ai/database-lab/-/merge_requests/759
- Remove too detailed error message from the logs: https://gitlab.com/postgres-ai/database-lab/-/merge_requests/777
- Exclude dump location volumes nested in the mount directory: https://gitlab.com/postgres-ai/database-lab/-/merge_requests/778
- Ignore STDERR buffer of the process while reading exec command response (previously, DBLab considered a task failed if exit code was 0 but STDERR had messages; now only the exit code defines success/failure) https://gitlab.com/postgres-ai/database-l...
Database Lab Engine v3.3.0
New features
- Select docker images on the configuration page for Standard Edition: https://gitlab.com/postgres-ai/database-lab/-/merge_requests/651, https://gitlab.com/postgres-ai/database-lab/-/merge_requests/663, https://gitlab.com/postgres-ai/database-lab/-/merge_requests/665, https://gitlab.com/postgres-ai/database-lab/-/merge_requests/667
- Optionally disable configuration management via UI/API: https://gitlab.com/postgres-ai/database-lab/-/merge_requests/622, https://gitlab.com/postgres-ai/database-lab/-/merge_requests/664
- Add customOptions for pg_dump and pg_restore commands: https://gitlab.com/postgres-ai/database-lab/-/merge_requests/660, https://gitlab.com/postgres-ai/database-lab/-/merge_requests/661, https://gitlab.com/postgres-ai/database-lab/-/merge_requests/666
Improvements and fixes
- Update demo instance: https://gitlab.com/postgres-ai/database-lab/-/merge_requests/616
- Reading replication lag: https://gitlab.com/postgres-ai/database-lab/-/merge_requests/618
- Fix errors on reporting empty activity: https://gitlab.com/postgres-ai/database-lab/-/merge_requests/621
- Remove pg_basebackup environment variables for the promotion stage: https://gitlab.com/postgres-ai/database-lab/-/merge_requests/617
- Enable logs using websockets for CloudFormation installations: https://gitlab.com/postgres-ai/database-lab/-/merge_requests/623
- Build UI image in CI pipelines: https://gitlab.com/postgres-ai/database-lab/-/merge_requests/592, https://gitlab.com/postgres-ai/database-lab/-/merge_requests/625, https://gitlab.com/postgres-ai/database-lab/-/merge_requests/626, https://gitlab.com/postgres-ai/database-lab/-/merge_requests/628
- Adjust tests for PostgreSQL 15: https://gitlab.com/postgres-ai/database-lab/-/merge_requests/633
- Use frameless and transparent SVG and PNG versions of Database Lab logo: https://gitlab.com/postgres-ai/database-lab/-/merge_requests/634
- Update SwaggerUI specs and dist: https://gitlab.com/postgres-ai/database-lab/-/merge_requests/632
- Refactor and fix issues on the Logs tab: https://gitlab.com/postgres-ai/database-lab/-/merge_requests/636
- Hide Logs and Configuration tabs on the Platform: https://gitlab.com/postgres-ai/database-lab/-/merge_requests/631
- Migrate UI components, assets and utils to Typescript: https://gitlab.com/postgres-ai/database-lab/-/merge_requests/589, https://gitlab.com/postgres-ai/database-lab/-/merge_requests/645, https://gitlab.com/postgres-ai/database-lab/-/merge_requests/646
- Preserve collapsed state for left side: https://gitlab.com/postgres-ai/database-lab/-/merge_requests/639
- Exclude Typescript files from linguist stats: https://gitlab.com/postgres-ai/database-lab/-/merge_requests/643
- Display snackbar on arriving new data for Logs tab: https://gitlab.com/postgres-ai/database-lab/-/merge_requests/640
- Improve message about skipping full-refresh: https://gitlab.com/postgres-ai/database-lab/-/merge_requests/648
- Improve wording for connection/extensions/locales check: https://gitlab.com/postgres-ai/database-lab/-/merge_requests/653
- Fix the checkup snippet: https://gitlab.com/postgres-ai/database-lab/-/merge_requests/650
- Use extended Docker image with PostgreSQL 15 by default: https://gitlab.com/postgres-ai/database-lab/-/merge_requests/655
- Fix RDS source type in configuration examples: https://gitlab.com/postgres-ai/database-lab/-/merge_requests/659
How to get help
To get help, reach out to the Postgres.ai team and the growing community of Database Lab users and contributors: https://postgres.ai/contact.
Provide feedback, contribute
Any feedback will be greatly appreciated:
- Twitter: @Database_Lab
- Database Lab Community Slack: https://slack.postgres.ai/
If you want to help the project grow, consider various ways of contributing:
- Star the GitHub repo: https://github.com/postgres-ai/database-lab-engine
- Spread the word using Twitter (please mention @Database_Lab!) or your social network of choice
- Consider translating the README.md to one or several languages you know
- Consider implementing one of the features that will make DLE better: see CONTRIBUTING.md and the list of "good first issues" on GitLab.
Diff between versions v3.2.0 and v3.3.0: v3.2.0...v3.3.0


