Thin clones of PostgreSQL to build powerful development, test, QA, staging environments

Overview

Database Lab Engine (DLE)

Blazing-fast cloning of PostgreSQL databases 🐘
Thin clones of PostgreSQL to build powerful development, test, QA, staging environments.
Available for any PostgreSQL, including AWS RDS, GCP CloudSQL, Heroku, Digital Ocean, and self-managed instances.

Latest release

CI pipeline status Go report

Contributor Covenant Community Slack Twitter Follow

Why DLE?

  • Build dev/QA/staging environments based on full-size production-like databases.
  • Provide temporary full-size database clones for SQL query analysis and optimization (see also: SQL optimization chatbot Joe).
  • Automatically test database changes in CI/CD pipelines to avoid incidents in production.

For example, cloning a 1 TiB PostgreSQL database takes ~10 seconds. Dozens of independent clones are up and running on a single machine, supporting lots of development and testing activities, not increasing costs for hardware.

How it works

Thin cloning is fast because it uses Copy-on-Write (CoW). DLE supports two technologies to enable CoW and thin cloning: ZFS (default) and LVM.

With ZFS, Database Lab Engine periodically creates a new snapshot of the data directory and maintains a set of snapshots, cleaning up the old and unused ones. When requesting a new clone, users can choose which snapshot to use.

Read more:

Where to start

Case studies

Features

  • Blazing-fast cloning of Postgres databases – a few seconds to create a new clone ready to accept connections and queries, regardless of the database size.
  • The theoretical maximum number of snapshots and clones is 264 (ZFS, default).
  • The theoretical maximum size of PostgreSQL data directory: 256 quadrillion zebibytes, or 2128 bytes (ZFS, default).
  • PostgreSQL major versions supported: 9.6–14.
  • Two technologies are supported to enable thin cloning (CoW): ZFS and LVM.
  • All components are packaged in Docker containers.
  • UI to make manual work more convenient.
  • API and CLI to automate the work with DLE snapshots and clones.
  • By default, PostgreSQL containers include many popular extensions (docs).
  • PostgreSQL containers can be customized (docs).
  • Source database can be located anywhere (self-managed Postgres, AWS RDS, GCP CloudSQL, Azure, Timescale Cloud, and so on) and does NOT require any adjustments. There are NO requirements to install ZFS or Docker to the source (production) databases.
  • Initial data provisioning can be at both physical (pg_basebackup, backup / archiving tools such as WAL-G or pgBackRest), or logical (dump/restore directly from the source or from files stored at AWS S3) levels.
  • For the logical mode, partial data retrieval is supported (specific databases, specific tables).
  • For the physical mode, a continuously updated state is supported ("sync container"), making DLE a specialized version of standby Postgres.
  • For the logical mode, periodical full refresh is supported, automated, and controlled by DLE. It is possible to use multiple disks containing different versions of the database, so full refresh won't require downtime.
  • Fast Point in Time Recovery (PITR) to the points available in DLE snapshots.
  • Unused clones are automatically deleted.
  • "Deletion protection" flag can be used to block automatic or manual deletion of clones.
  • Snapshot retention policies supported in DLE configuration.
  • Persistent clones: clones survive DLE restarts (including full VM reboots).
  • The "reset" command can be used to switch to a different version of data.
  • DB Migration Checker component collects various artifacts useful for DB testing in CI (docs).
  • SSH port forwarding for API and Postgres connections.
  • Docker container config parameters can be specified in the DLE config.
  • Resource usage quotas for clones: CPU, RAM (container quotas, supported by Docker)
  • Postgres config parameters can be specified in the DLE config (separately for clones, the "sync" container, and the "promote" container).
  • Monitoring: auth-free /healthz API endpoint, extended /status (requires auth), Netdata module.

How to contribute

Give the project a star

The easiest way to contribute is to give the project a GitHub/GitLab star:

Add a star

Mention that you use DLE

Please post a tweet mentioning @Database_Lab or share the link to this repo in your favorite social network.

If you are actively using DLE at work, think about where you could mention it. The best way of mentioning it is using graphics with a link. Brand assets can be found in the ./assets folder. Feel free to put them in your documents, slide decks, application, and website interfaces to show that you use DLE.

HTML snippet for lighter backgrounds:

">
<a href="http://databaselab.io">
  <img width="400" src="https://postgres.ai/assets/powered-by-dle-for-light-background.svg" />
a>

Fro darker backgrounds:

">
<a href="http://databaselab.io">
  <img width="400" src="https://postgres.ai/assets/powered-by-dle-for-dark-background.svg" />
a>

Propose an idea or report a bug

Check out our contributing guide for more details.

Participate in development

Check out our contributing guide for more details.

Reference guides

How-to guides

More you can found in the "How-to guides" section of the docs.

Miscellaneous

License

DLE source code is licensed under the OSI-approved open source license GNU Affero General Public License version 3 (AGPLv3).

Reach out to the Postgres.ai team if you want a trial or commercial license that does not contain the GPL clauses: Contact page.

FOSSA Status

Community & Support

Contributor Covenant

Comments
  • VM Freeze

    VM Freeze

    After some time of running up, Hyper-V VM starts up consuming CPU ("sy" around 90-100%), then it takes up to a few minutes to (re)start sync-instance container. Finally, VM hangs on completely; it may be impossible to restart/stop VM via Hyper-V commands.

    VM specs:

    • 10 GB RAM
    • 2 vCPU (Yeap, it's just a sandbox, I want to master this tool)
    • 32 GB system disk (VHDX over SATA SSD)
    • 500 GB ZFS disk (VHDX over SATA HDD)
    • Ubuntu 20.04 LTS (just Docker & ZFS & Database Lab & VS Code installed by its Windows UI).

    Host specs:

    • 64 GB RAM
    • Core i5 6400
    • Windows 10 Pro 20H2 & Hyper-V.

    As it was last time: Снимок экрана 2020-12-06 180828

    opened by vialorn 4
  • chore(deps): bump moment from 2.24.0 to 2.29.4 in /ui/packages/platform

    chore(deps): bump moment from 2.24.0 to 2.29.4 in /ui/packages/platform

    Bumps moment from 2.24.0 to 2.29.4.

    Changelog

    Sourced from moment's changelog.

    2.29.4

    • Release Jul 6, 2022
      • #6015 [bugfix] Fix ReDoS in preprocessRFC2822 regex

    2.29.3 Full changelog

    • Release Apr 17, 2022
      • #5995 [bugfix] Remove const usage
      • #5990 misc: fix advisory link

    2.29.2 See full changelog

    • Release Apr 3 2022

    Address https://github.com/moment/moment/security/advisories/GHSA-8hfj-j24r-96c4

    2.29.1 See full changelog

    • Release Oct 6, 2020

    Updated deprecation message, bugfix in hi locale

    2.29.0 See full changelog

    • Release Sept 22, 2020

    New locales (es-mx, bn-bd). Minor bugfixes and locale improvements. More tests. Moment is in maintenance mode. Read more at this link: https://momentjs.com/docs/#/-project-status/

    2.28.0 See full changelog

    • Release Sept 13, 2020

    Fix bug where .format() modifies original instance, and locale updates

    2.27.0 See full changelog

    • Release June 18, 2020

    Added Turkmen locale, other locale improvements, slight TypeScript fixes

    2.26.0 See full changelog

    • Release May 19, 2020

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies javascript 
    opened by dependabot[bot] 3
  • chore(deps): bump follow-redirects from 1.14.0 to 1.14.8 in /ui/packages/platform

    chore(deps): bump follow-redirects from 1.14.0 to 1.14.8 in /ui/packages/platform

    Bumps follow-redirects from 1.14.0 to 1.14.8.

    Commits
    • 3d81dc3 Release version 1.14.8 of the npm package.
    • 62e546a Drop confidential headers across schemes.
    • 2ede36d Release version 1.14.7 of the npm package.
    • 8b347cb Drop Cookie header across domains.
    • 6f5029a Release version 1.14.6 of the npm package.
    • af706be Ignore null headers.
    • d01ab7a Release version 1.14.5 of the npm package.
    • 40052ea Make compatible with Node 17.
    • 86f7572 Fix: clear internal timer on request abort to avoid leakage
    • 2e1eaf0 Keep Authorization header on subdomain redirects.
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies javascript 
    opened by dependabot[bot] 3
  • chore(deps): bump d3-color, d3 and d3-flame-graph in /ui/packages/platform

    chore(deps): bump d3-color, d3 and d3-flame-graph in /ui/packages/platform

    Bumps d3-color to 3.1.0 and updates ancestor dependencies d3-color, d3 and d3-flame-graph. These dependencies need to be updated together.

    Updates d3-color from 1.4.0 to 3.1.0

    Release notes

    Sourced from d3-color's releases.

    v3.1.0

    v3.0.1

    • Make build reproducible.

    v3.0.0

    • Adopt type: module.

    This package now requires Node.js 12 or higher. For more, please read Sindre Sorhus’s FAQ.

    v2.0.0

    This release adopts ES2015 language features such as for-of and drops support for older browsers, including IE. If you need to support pre-ES2015 environments, you should stick with d3-color 1.x or use a transpiler.

    v1.4.1

    • Fix parsing of 4- and 8-digit hexadecimal transparent colors. #52
    Commits

    Updates d3 from 5.12.0 to 7.6.1

    Release notes

    Sourced from d3's releases.

    v7.6.1

    v7.6.0

    v7.5.0

    v7.4.5

    v7.4.4

    • Fix incorrect behavior of d3.bisector when given an asymmetric comparator.

    v7.4.3

    v7.4.2

    • Fix off-by-one bin assignment due to rounding error in d3.bin.

    v7.4.1

    • Significantly improve the performance of d3.bin.
    • Fix the implementation of d3.thresholdScott.
    • d3.pack and d3.packEnclose are now fully deterministic.
    • d3.pack and d3.packEnclose now handle certain floating point errors better.

    v7.4.0

    v7.3.0

    v7.2.1

    • Fix stratify.path when the top-level directory is only a single character.

    ... (truncated)

    Commits

    Updates d3-flame-graph from 2.1.3 to 4.1.3

    Commits
    • bb0037d task: bumping version
    • 70cabab Don't animate left & top properties
    • 815b265 task: bump version
    • a5e14bb Merge branch 'mhansen-tip'
    • c94f56d Update examples and README to use tooltip.text()
    • 8861889 Add tooltip.text(), deprecate tooltip.html()
    • db721ad Add some more tests, and clean up DOM
    • eeebc69 Add test for tooltips
    • 16e538f Remove references to d3-tip
    • 84ab4b7 fix: details handler vul
    • Additional commits viewable in compare view

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies javascript 
    opened by dependabot[bot] 2
  • chore(deps): bump terser from 5.12.1 to 5.14.2 in /ui/packages/platform

    chore(deps): bump terser from 5.12.1 to 5.14.2 in /ui/packages/platform

    Bumps terser from 5.12.1 to 5.14.2.

    Changelog

    Sourced from terser's changelog.

    v5.14.2

    • Security fix for RegExps that should not be evaluated (regexp DDOS)
    • Source maps improvements (#1211)
    • Performance improvements in long property access evaluation (#1213)

    v5.14.1

    • keep_numbers option added to TypeScript defs (#1208)
    • Fixed parsing of nested template strings (#1204)

    v5.14.0

    • Switched to @​jridgewell/source-map for sourcemap generation (#1190, #1181)
    • Fixed source maps with non-terminated segments (#1106)
    • Enabled typescript types to be imported from the package (#1194)
    • Extra DOM props have been added (#1191)
    • Delete the AST while generating code, as a means to save RAM

    v5.13.1

    • Removed self-assignments (varname=varname) (closes #1081)
    • Separated inlining code (for inlining things into references, or removing IIFEs)
    • Allow multiple identifiers with the same name in var destructuring (eg var { a, a } = x) (#1176)

    v5.13.0

    • All calls to eval() were removed (#1171, #1184)
    • source-map was updated to 0.8.0-beta.0 (#1164)
    • NavigatorUAData was added to domprops to avoid property mangling (#1166)
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies javascript 
    opened by dependabot[bot] 2
  • chore(deps): bump terser from 4.8.0 to 4.8.1 in /ui

    chore(deps): bump terser from 4.8.0 to 4.8.1 in /ui

    Bumps terser from 4.8.0 to 4.8.1.

    Changelog

    Sourced from terser's changelog.

    v4.8.1 (backport)

    • Security fix for RegExps that should not be evaluated (regexp DDOS)
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies javascript 
    opened by dependabot[bot] 2
  • chore(deps): bump eventsource from 1.1.0 to 1.1.2 in /ui

    chore(deps): bump eventsource from 1.1.0 to 1.1.2 in /ui

    Bumps eventsource from 1.1.0 to 1.1.2.

    Changelog

    Sourced from eventsource's changelog.

    1.1.2

    • Inline origin resolution, drops original dependency (#281 Espen Hovlandsdal)

    1.1.1

    • Do not include authorization and cookie headers on redirect to different origin (#273 Espen Hovlandsdal)
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies javascript 
    opened by dependabot[bot] 2
  • chore(deps): bump moment from 2.29.1 to 2.29.4 in /ui

    chore(deps): bump moment from 2.29.1 to 2.29.4 in /ui

    Bumps moment from 2.29.1 to 2.29.4.

    Changelog

    Sourced from moment's changelog.

    2.29.4

    • Release Jul 6, 2022
      • #6015 [bugfix] Fix ReDoS in preprocessRFC2822 regex

    2.29.3 Full changelog

    • Release Apr 17, 2022
      • #5995 [bugfix] Remove const usage
      • #5990 misc: fix advisory link

    2.29.2 See full changelog

    • Release Apr 3 2022

    Address https://github.com/moment/moment/security/advisories/GHSA-8hfj-j24r-96c4

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies javascript 
    opened by dependabot[bot] 2
  • chore(deps): bump follow-redirects from 1.14.4 to 1.15.1 in /ui/packages/ce

    chore(deps): bump follow-redirects from 1.14.4 to 1.15.1 in /ui/packages/ce

    Bumps follow-redirects from 1.14.4 to 1.15.1.

    Commits
    • 62a551c Release version 1.15.1 of the npm package.
    • 7fe0779 Use for ... of.
    • 948c30c Fix redirecting to relative URL when using proxy
    • 22e81fc Release version 1.15.0 of the npm package.
    • 96a3947 Add headers to request details
    • 24dcb20 Pass status & request details to beforeRedirect (#198)
    • 7abae9b Test on Node 18.
    • 79d0d8d refactor: replace deprecated String.prototype.substr() (#196)
    • 13136e9 Release version 1.14.9 of the npm package.
    • 2ec9b0b Keep headers when upgrading from HTTP to HTTPS.
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies javascript 
    opened by dependabot[bot] 2
  • chore(deps): bump nanoid from 3.1.30 to 3.3.4 in /ui/packages/ce

    chore(deps): bump nanoid from 3.1.30 to 3.3.4 in /ui/packages/ce

    Bumps nanoid from 3.1.30 to 3.3.4.

    Changelog

    Sourced from nanoid's changelog.

    3.3.4

    3.3.3

    • Reduced size (by Anton Khlynovskiy).

    3.3.2

    • Fixed enhanced-resolve support.

    3.3.1

    • Reduced package size.

    3.3

    • Added size argument to function from customAlphabet (by Stefan Sundin).

    3.2

    • Added --size and --alphabet arguments to binary (by Vitaly Baev).

    3.1.32

    • Reduced async exports size (by Artyom Arutyunyan).
    • Moved from Jest to uvu (by Vitaly Baev).

    3.1.31

    • Fixed collision vulnerability on object in size (by Artyom Arutyunyan).
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies javascript 
    opened by dependabot[bot] 2
  • chore(deps): bump async from 2.6.3 to 3.2.3 in /ui/packages/ce

    chore(deps): bump async from 2.6.3 to 3.2.3 in /ui/packages/ce

    Bumps async from 2.6.3 to 3.2.3.

    Changelog

    Sourced from async's changelog.

    v3.2.3

    • Fix bugs in comment parsing in autoInject. (#1767, #1780)

    v3.2.2

    • Fix potential prototype pollution exploit

    v3.2.1

    v3.2.0

    • Fix a bug in Safari related to overwriting func.name
    • Remove built-in browserify configuration (#1653)
    • Varios doc fixes (#1688, #1703, #1704)

    v3.1.1

    • Allow redefining name property on wrapped functions.

    v3.1.0

    • Added q.pushAsync and q.unshiftAsync, analagous to q.push and q.unshift, except they always do not accept a callback, and reject if processing the task errors. (#1659)
    • Promises returned from q.push and q.unshift when a callback is not passed now resolve even if an error ocurred. (#1659)
    • Fixed a parsing bug in autoInject with complicated function bodies (#1663)
    • Added ES6+ configuration for Browserify bundlers (#1653)
    • Various doc fixes (#1664, #1658, #1665, #1652)

    v3.0.1

    Bug fixes

    • Fixed a regression where arrays passed to queue and cargo would be completely flattened. (#1645)
    • Clarified Async's browser support (#1643)

    v3.0.0

    The async/await release!

    There are a lot of new features and subtle breaking changes in this major version, but the biggest feature is that most Async methods return a Promise if you omit the callback, meaning you can await them from within an async function.

    const results = await async.mapLimit(urls, 5, async url => {
        const resp = await fetch(url)
        return resp.body
    })
    

    Breaking Changes

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies javascript 
    opened by dependabot[bot] 2
  • CVE-2022-46175 (High) detected in json5-2.2.1.tgz, json5-1.0.1.tgz

    CVE-2022-46175 (High) detected in json5-2.2.1.tgz, json5-1.0.1.tgz

    CVE-2022-46175 - High Severity Vulnerability

    Vulnerable Libraries - json5-2.2.1.tgz, json5-1.0.1.tgz

    json5-2.2.1.tgz

    JSON for humans.

    Library home page: https://registry.npmjs.org/json5/-/json5-2.2.1.tgz

    Dependency Hierarchy:

    • @postgres.ai/ce-1.0.0.tgz (Root Library)
      • core-7.19.0.tgz
        • :x: json5-2.2.1.tgz (Vulnerable Library)
    json5-1.0.1.tgz

    JSON for humans.

    Library home page: https://registry.npmjs.org/json5/-/json5-1.0.1.tgz

    Dependency Hierarchy:

    • @postgres.ai/platform-1.0.0.tgz (Root Library)
      • react-scripts-5.0.0.tgz
        • babel-loader-8.2.3.tgz
          • loader-utils-1.4.0.tgz
            • :x: json5-1.0.1.tgz (Vulnerable Library)

    Found in HEAD commit: b3ac62d12e3d43994ff7ad836e34da801ed665fb

    Found in base branch: master

    Vulnerability Details

    JSON5 is an extension to the popular JSON file format that aims to be easier to write and maintain by hand (e.g. for config files). The parse method of the JSON5 library before and including version 2.2.1 does not restrict parsing of keys named __proto__, allowing specially crafted strings to pollute the prototype of the resulting object. This vulnerability pollutes the prototype of the object returned by JSON5.parse and not the global Object prototype, which is the commonly understood definition of Prototype Pollution. However, polluting the prototype of a single object can have significant security impact for an application if the object is later used in trusted operations. This vulnerability could allow an attacker to set arbitrary and unexpected keys on the object returned from JSON5.parse. The actual impact will depend on how applications utilize the returned object and how they filter unwanted keys, but could include denial of service, cross-site scripting, elevation of privilege, and in extreme cases, remote code execution. JSON5.parse should restrict parsing of __proto__ keys when parsing JSON strings to objects. As a point of reference, the JSON.parse method included in JavaScript ignores __proto__ keys. Simply changing JSON5.parse to JSON.parse in the examples above mitigates this vulnerability. This vulnerability is patched in json5 version 2.2.2 and later.

    Publish Date: 2022-12-24

    URL: CVE-2022-46175

    CVSS 3 Score Details (7.1)

    Base Score Metrics:

    • Exploitability Metrics:
      • Attack Vector: Network
      • Attack Complexity: High
      • Privileges Required: Low
      • User Interaction: None
      • Scope: Unchanged
    • Impact Metrics:
      • Confidentiality Impact: High
      • Integrity Impact: Low
      • Availability Impact: High

    For more information on CVSS3 Scores, click here.

    Suggested Fix

    Type: Upgrade version

    Origin: https://www.cve.org/CVERecord?id=CVE-2022-46175

    Release Date: 2022-12-24

    Fix Resolution: json5 - 2.2.2


    Step up your Open Source Security Game with Mend here

    security vulnerability 
    opened by mend-bolt-for-github[bot] 0
  • CVE-2022-23471 (Medium) detected in github.com/containerd/containerd-v1.6.1

    CVE-2022-23471 (Medium) detected in github.com/containerd/containerd-v1.6.1

    CVE-2022-23471 - Medium Severity Vulnerability

    Vulnerable Library - github.com/containerd/containerd-v1.6.1

    An open and reliable container runtime

    Library home page: https://proxy.golang.org/github.com/containerd/containerd/@v/v1.6.1.zip

    Dependency Hierarchy:

    • github.com/docker/docker-v20.10.3-0.20220207145910-4b3471ddc064+incompatible (Root Library)
      • :x: github.com/containerd/containerd-v1.6.1 (Vulnerable Library)

    Found in HEAD commit: b3ac62d12e3d43994ff7ad836e34da801ed665fb

    Found in base branch: master

    Vulnerability Details

    containerd is an open source container runtime. A bug was found in containerd's CRI implementation where a user can exhaust memory on the host. In the CRI stream server, a goroutine is launched to handle terminal resize events if a TTY is requested. If the user's process fails to launch due to, for example, a faulty command, the goroutine will be stuck waiting to send without a receiver, resulting in a memory leak. Kubernetes and crictl can both be configured to use containerd's CRI implementation and the stream server is used for handling container IO. This bug has been fixed in containerd 1.6.12 and 1.5.16. Users should update to these versions to resolve the issue. Users unable to upgrade should ensure that only trusted images and commands are used and that only trusted users have permissions to execute commands in running containers.

    Publish Date: 2022-12-07

    URL: CVE-2022-23471

    CVSS 3 Score Details (6.5)

    Base Score Metrics:

    • Exploitability Metrics:
      • Attack Vector: Network
      • Attack Complexity: Low
      • Privileges Required: Low
      • User Interaction: None
      • Scope: Unchanged
    • Impact Metrics:
      • Confidentiality Impact: None
      • Integrity Impact: None
      • Availability Impact: High

    For more information on CVSS3 Scores, click here.

    Suggested Fix

    Type: Upgrade version

    Origin: https://www.cve.org/CVERecord?id=CVE-2022-23471

    Release Date: 2022-12-07

    Fix Resolution: v1.6.12


    Step up your Open Source Security Game with Mend here

    security vulnerability 
    opened by mend-bolt-for-github[bot] 0
  • CVE-2022-30633 (High) detected in golang.org/x/net-v0.0.0-20211216030914-fe4d6282115f

    CVE-2022-30633 (High) detected in golang.org/x/net-v0.0.0-20211216030914-fe4d6282115f

    CVE-2022-30633 - High Severity Vulnerability

    Vulnerable Library - golang.org/x/net-v0.0.0-20211216030914-fe4d6282115f

    Library home page: https://proxy.golang.org/golang.org/x/net/@v/v0.0.0-20211216030914-fe4d6282115f.zip

    Dependency Hierarchy:

    • github.com/golang/oauth2-v0.1.0 (Root Library)
      • :x: golang.org/x/net-v0.0.0-20211216030914-fe4d6282115f (Vulnerable Library)

    Found in HEAD commit: b3ac62d12e3d43994ff7ad836e34da801ed665fb

    Found in base branch: master

    Vulnerability Details

    Uncontrolled recursion in Unmarshal in encoding/xml before Go 1.17.12 and Go 1.18.4 allows an attacker to cause a panic due to stack exhaustion via unmarshalling an XML document into a Go struct which has a nested field that uses the 'any' field tag.

    Publish Date: 2022-08-10

    URL: CVE-2022-30633

    CVSS 3 Score Details (7.5)

    Base Score Metrics:

    • Exploitability Metrics:
      • Attack Vector: Network
      • Attack Complexity: Low
      • Privileges Required: None
      • User Interaction: None
      • Scope: Unchanged
    • Impact Metrics:
      • Confidentiality Impact: None
      • Integrity Impact: None
      • Availability Impact: High

    For more information on CVSS3 Scores, click here.

    Suggested Fix

    Type: Upgrade version

    Origin: https://security-tracker.debian.org/tracker/CVE-2022-30633

    Release Date: 2022-05-13

    Fix Resolution: go1.17.12,go1.18.4


    Step up your Open Source Security Game with Mend here

    security vulnerability 
    opened by mend-bolt-for-github[bot] 0
  • CVE-2022-41717 (Medium) detected in golang.org/x/sys-v0.0.0-20211216021012-1d35b9e2eb4e

    CVE-2022-41717 (Medium) detected in golang.org/x/sys-v0.0.0-20211216021012-1d35b9e2eb4e

    CVE-2022-41717 - Medium Severity Vulnerability

    Vulnerable Library - golang.org/x/sys-v0.0.0-20211216021012-1d35b9e2eb4e

    Library home page: https://proxy.golang.org/golang.org/x/sys/@v/v0.0.0-20211216021012-1d35b9e2eb4e.zip

    Dependency Hierarchy:

    • github.com/Shirou/gopsutil-v2.20.9+incompatible (Root Library)
      • :x: golang.org/x/sys-v0.0.0-20211216021012-1d35b9e2eb4e (Vulnerable Library)

    Found in HEAD commit: b3ac62d12e3d43994ff7ad836e34da801ed665fb

    Found in base branch: master

    Vulnerability Details

    An attacker can cause excessive memory growth in a Go server accepting HTTP/2 requests. HTTP/2 server connections contain a cache of HTTP header keys sent by the client. While the total number of entries in this cache is capped, an attacker sending very large keys can cause the server to allocate approximately 64 MiB per open connection.

    Publish Date: 2022-12-08

    URL: CVE-2022-41717

    CVSS 3 Score Details (5.3)

    Base Score Metrics:

    • Exploitability Metrics:
      • Attack Vector: Network
      • Attack Complexity: Low
      • Privileges Required: None
      • User Interaction: None
      • Scope: Unchanged
    • Impact Metrics:
      • Confidentiality Impact: None
      • Integrity Impact: None
      • Availability Impact: Low

    For more information on CVSS3 Scores, click here.

    Suggested Fix

    Type: Upgrade version

    Release Date: 2022-12-08

    Fix Resolution: go1.19.4


    Step up your Open Source Security Game with Mend here

    security vulnerability 
    opened by mend-bolt-for-github[bot] 0
  • CVE-2022-28131 (High) detected in golang.org/x/net-v0.0.0-20211216030914-fe4d6282115f

    CVE-2022-28131 (High) detected in golang.org/x/net-v0.0.0-20211216030914-fe4d6282115f

    CVE-2022-28131 - High Severity Vulnerability

    Vulnerable Library - golang.org/x/net-v0.0.0-20211216030914-fe4d6282115f

    Library home page: https://proxy.golang.org/golang.org/x/net/@v/v0.0.0-20211216030914-fe4d6282115f.zip

    Dependency Hierarchy:

    • github.com/golang/oauth2-v0.1.0 (Root Library)
      • :x: golang.org/x/net-v0.0.0-20211216030914-fe4d6282115f (Vulnerable Library)

    Found in HEAD commit: b3ac62d12e3d43994ff7ad836e34da801ed665fb

    Found in base branch: master

    Vulnerability Details

    In Decoder.Skip in encoding/xml in Go before 1.17.12 and 1.18.x before 1.18.4, stack exhaustion and a panic can occur via a deeply nested XML document.

    Publish Date: 2022-08-10

    URL: CVE-2022-28131

    CVSS 3 Score Details (7.5)

    Base Score Metrics:

    • Exploitability Metrics:
      • Attack Vector: Network
      • Attack Complexity: Low
      • Privileges Required: None
      • User Interaction: None
      • Scope: Unchanged
    • Impact Metrics:
      • Confidentiality Impact: None
      • Integrity Impact: None
      • Availability Impact: High

    For more information on CVSS3 Scores, click here.

    Suggested Fix

    Type: Upgrade version

    Origin: https://security-tracker.debian.org/tracker/CVE-2022-28131

    Release Date: 2022-03-29

    Fix Resolution: go1.17.12,go1.18.4


    Step up your Open Source Security Game with Mend here

    security vulnerability 
    opened by mend-bolt-for-github[bot] 0
Releases(v3.3.0)
  • v3.3.0(Dec 28, 2022)

    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:

    Diff between versions v3.2.0 and v3.3.0: https://github.com/postgres-ai/database-lab-engine/compare/v3.2.0...v3.3.0

    Source code(tar.gz)
    Source code(zip)
  • v3.2.0(Oct 19, 2022)

    Release v3.2.0 delivers a good number of new features and improvements. DLE UI is extended with two new tabs, "Logs" and "Configuration", to improve the user experience when configuring or reconfiguring DLE for managed Postgres services such as AWS RDS and Google Cloud SQL:

    This allows users to see PGDATA initialization errors when setting up DLE, then adjust the configuration and retry initialization right in the UI – without any need to connect to the DLE machine using SSH.

    The demo DLE instance can be found here: https://demo.aws.postgres.ai:446/instance (token: demo_token).

    Postgres 15 is already supported!

    PostgreSQL 15 is already supported by DLE and included in the list of default images, with many extensions shipped with it: https://postgres.ai/docs/database-lab/supported-databases.

    AWS Marketplace – the easiest way to get DLE for any Postgres database

    DLE in AWS Marketplace has now General Availability (GA) status, it has already been updated to version 3.2.0: https://aws.amazon.com/marketplace/pp/prodview-wlmm2satykuec, offering the Standard license, with support, embedded monitoring, simplified installation, and access to a wider variety of supported Postgres images (including extensions not available by default). An instance with DLE delivers "dev/test databases as a service" and levels up all dev&test processes. For example, on an r5.xlarge instance (4 vCPUs, 32 GiB RAM) with 200 GiB disk space, it is possible to run up to 30 database clones simultaneously (and even more, if shared_buffers is adjusted to lower values) spending as low as $360 per month – less than for a single regular RDS clone of the same size.

    New contributor

    :bow: The development team greets a new contributor: @Adrinlol. This release wouldn't be possible without other contributors: @agneum, @vitabaks, @DmitryFomin1, @ane4ka, @NikolayS, @denis256, @yuridevx.

    What's new

    New features

    • New tab in UI, "Configuration" and corresponding API to allow editing of certain configuration parameters (only in logical mode; secret values are masked) and viewing the current config (in any mode): !561, !575, !594, !601, !612, !613, !614 (@yuridevx, @Adrinlol), !608, !609, !612 (@Adrinlol), !580, !615
    • New tab in UI, "Logs" to allow seeing DLE log messages to support troubleshooting (secret values are masked): !579 (@Adrinlol), !585, !593
    • Manage logs of PostgreSQL containers to simplify diagnostics (previously, if an error happens inside Postgres container and the container is destroyed, it was impossible to find the details of the error): !558, !570, !598, https://gitlab.com/postgres-ai/docs/-/merge_requests/481 (@denis256)
    • Support queryPreprocessing in logicalRestore !576
    • Allow using inline SQL in queryPreprocessing (available in sections logicalRestore, logicalSnapshot, physicalSnapshot) !576
    • Simplify Postgres image customization – for initialization in logical mode, perform comprehensive testing of the source database and compare a container created using the Postgres image provided in configuration with the source DB: !573, !578 (:bow: contribution by @Adrinlol), !596
    • Show details of continuous synchronization of PGDATA (API+CLI; currently only for physical mode): !562, !595 (@denis256)
    • Show the progress of the full refresh process !574, !581, !584, !587, !588, !591, !610 (@Adrinlol)
    • Configuration option excludeTables – allow excluding certain tables for data retrieval in logical mode: !536, https://gitlab.com/postgres-ai/database-lab/-/issues/348 (was also backpatched to 3.1.2)
    • Support PostgreSQL 15: !599, https://gitlab.com/postgres-ai/custom-images/-/merge_requests/42, https://gitlab.com/postgres-ai/custom-images/-/merge_requests/44, https://gitlab.com/postgres-ai/custom-images/-/merge_requests/45, https://gitlab.com/postgres-ai/docs/-/merge_requests/504

    Improvements and fixes

    • Redesign the Retrieval service: !549
    • Mounting of socket directory for non-guest virtualization roles: !557 (@denis256)
    • Add a link to the guide "PostgreSQL configuration in clones": !559
    • Add session manager to CF template: !560
    • Add maintenance_work_mem for Logical mode: !567
    • Report the type of DLE subscription in UI: !563
    • Detect if DLE is running in a Docker container (this resolves issues of running DLE on KVM): !571, !603
    • Apply the configuration and then start Postgres on the restore stage, to reduce the number of restarts needed: !518, !547 (@yuridevx), !558, !572
    • Fix the creation of a restricted user: !586
    • Build CE UI Docker image after merging into the master branch: !590
    • Adjust container readiness health checks: !597, !602
    • Remove deprecated eslint analyzers: !605
    • Increase the number of parallel jobs in logical mode from 2/2 to 4/4 – usually, many more CPU cores are available: !611

    Diff showing all changes

    Diff between versions v3.1.2 and v3.2.0: https://github.com/postgres-ai/database-lab-engine/compare/v3.1.2...v3.2.0.

    Migration from DLE v3.1.x and configuration notes

    There are no special actions that are required to migrate from DLE 3.1.x to 3.2.0: you need to stop the DLE container, change the image, and start a new one using the new image. All snapshots should remain available, and if, at stopping time, some clones were present, they should be automatically recreated by DLE.

    Note: if you have an older version, check the previous release notes as well: https://gitlab.com/postgres-ai/database-lab/-/releases.

    Configuration directory

    The config directory, by default, is ~/.dblab/engine/configs and the corresponding mounted volume must be writable:

      ...
      --volume ~/.dblab/engine/configs:/home/dblab/configs
      ...
    

    Logs directory

    Make sure that ~/.dblab/engine/logs is mounted as a volume to the DLE container:

      ...
      --volume ~/.dblab/engine/configs:/home/dblab/configs \
      --volume ~/.dblab/engine/meta:/home/dblab/meta \
      --volume ~/.dblab/engine/logs:/home/dblab/logs \
      ...
    

    Alternatively, you can mount the entire directory (including configs and meta – but make sure that these subdirectories exist, DLE doesn't create them yet):

      ...
      --volume ~/.dblab/engine:/home/dblab
      ...
    

    Query preprocessing

    The queryPreprocessing section supports inline SQL now. Examples can be found here: !576#examples

    Configuration UI

    Because the configuration can be viewed and edited in the UI, make sure:

    • secret values are masked (e.g., verificationToken, Platform accessToken, you can find all masking rules here: !608#masking-rules)
    • DLE configuration matches the reference configuration files in structure and naming; it is not recommended to have custom names and sections

    Where 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:

    Source code(tar.gz)
    Source code(zip)
  • v3.1.2(Jul 4, 2022)

    Database Lab Engine v3.1.2

    DLE v3.1.2 delivers multiple bug fixes and improvements.

    :bow: The development team greets new contributors: @yuridevx, @denis256.

    New features and logic adjustments

    • Configuration option excludeTables – exclude certain tables for data retrieval in logical mode: https://gitlab.com/postgres-ai/database-lab/-/merge_requests/536, https://gitlab.com/postgres-ai/database-lab/-/issues/348

    Improvements and fixes

    • Allow restricted users to access all databases in clones created with the --restricted flag https://gitlab.com/postgres-ai/database-lab/-/merge_requests/532, https://gitlab.com/postgres-ai/database-lab/-/issues/356
    • Determine the LATEST backup correctly WAL-G – use creation time instead of modification time https://gitlab.com/postgres-ai/database-lab/-/merge_requests/540, https://gitlab.com/postgres-ai/database-lab/-/issues/365
    • Detect and start existing UI container https://gitlab.com/postgres-ai/database-lab/-/merge_requests/538, https://gitlab.com/postgres-ai/database-lab/-/issues/371
    • Avoid conflicts when CI checker sessions run at the same time https://gitlab.com/postgres-ai/database-lab/-/merge_requests/542, https://gitlab.com/postgres-ai/database-lab/-/issues/380
    • Do not use a non-existing column in the logerrors stat query https://gitlab.com/postgres-ai/database-lab/-/merge_requests/543, https://gitlab.com/postgres-ai/database-lab/-/issues/381
    • Keep the snapshot list with relevant values https://gitlab.com/postgres-ai/database-lab/-/merge_requests/539, https://gitlab.com/postgres-ai/database-lab/-/issues/382
    • Fix README translation links https://gitlab.com/postgres-ai/database-lab/-/merge_requests/537
    • Clarify how DLE works for managed Postgres services in clouds https://gitlab.com/postgres-ai/database-lab/-/merge_requests/482
    • Avoid panicking with an empty scheduler context on physical restore https://gitlab.com/postgres-ai/database-lab/-/merge_requests/546, https://gitlab.com/postgres-ai/database-lab/-/issues/347
    • Do not set "x" flag for the instance_id file https://gitlab.com/postgres-ai/database-lab/-/merge_requests/545
    • Update retrieval flow to check and start existing control containers https://gitlab.com/postgres-ai/database-lab/-/merge_requests/544
    • Wait for control containers to finish stopping when DLE shutdowns https://gitlab.com/postgres-ai/database-lab/-/merge_requests/544, https://gitlab.com/postgres-ai/database-lab/-/merge_requests/550, https://gitlab.com/postgres-ai/database-lab/-/issues/387
    • Implement a general approach to gracefully shutting down control containers with Postgres https://gitlab.com/postgres-ai/database-lab/-/merge_requests/547, https://gitlab.com/postgres-ai/database-lab/-/merge_requests/551, https://gitlab.com/postgres-ai/database-lab/-/issues/350
    • Change permissions on the instance_id file and its directory https://gitlab.com/postgres-ai/database-lab/-/merge_requests/555

    Contributor's experience

    • Make it possible to debug DLE locally in Docker container https://gitlab.com/postgres-ai/database-lab/-/merge_requests/548

    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:

    Diff between versions v3.1.1 and v3.1.2: https://github.com/postgres-ai/database-lab-engine/compare/v3.1.1...v3.1.2

    Source code(tar.gz)
    Source code(zip)
  • v3.1.1(May 25, 2022)

    Database Lab Engine v3.1.1

    DLE v3.1.1 delivers multiple bug fixes and improvements.

    The development team greets a new contributor: @Alexand.

    Improvements and fixes

    • Use ZFS 2.1 in Docker images by default (DLE versions with ZFS 0.8 now shipped in separate images) - https://gitlab.com/postgres-ai/database-lab/-/merge_requests/515
    • Add pg_stat_kcache to the default value of shared_preload_libraries - https://gitlab.com/postgres-ai/database-lab/-/merge_requests/522
    • Increase the number of health check attempts before considering a Postgres container as unhealthy - https://gitlab.com/postgres-ai/database-lab/-/merge_requests/516
    • Add pt-br translation to README - https://gitlab.com/postgres-ai/database-lab/-/merge_requests/500 (:bow: contribution by @Alexand)
    • Update translations and README - https://gitlab.com/postgres-ai/database-lab/-/merge_requests/517, https://gitlab.com/postgres-ai/database-lab/-/merge_requests/520, https://gitlab.com/postgres-ai/database-lab/-/merge_requests/523, https://gitlab.com/postgres-ai/database-lab/-/merge_requests/527
    • Alter ownership for user-defined types, stored procedures, aggregate functions - https://gitlab.com/postgres-ai/database-lab/-/merge_requests/528, https://gitlab.com/postgres-ai/database-lab/-/merge_requests/521
    • Various improvements to in CloudFourmation template to support publication in AWS Marketplace https://gitlab.com/postgres-ai/database-lab/-/merge_requests/526
    • Fix how max query time is determined from pg_stat_statements for Postgres 13+ (DB Migration Checker) - https://gitlab.com/postgres-ai/database-lab/-/merge_requests/530
    • Update link to CLI installation - https://gitlab.com/postgres-ai/database-lab/-/merge_requests/531
    • Use default Postgres configuration in all Postgres containers managed by DLE - https://gitlab.com/postgres-ai/database-lab/-/merge_requests/518

    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:

    Diff between versions v3.1.0 and v3.1.1: https://github.com/postgres-ai/database-lab-engine/compare/v3.1.0...v3.1.1

    Source code(tar.gz)
    Source code(zip)
  • v3.1.0(Apr 5, 2022)

    Database Lab Engine v3.1.0

    DLE 3.1 has many improvements and several new features, such as native support of pgBackRest and the ability to configure the timezone when using CLI.

    In this release, the development team has focused on the Database Lab Engine community, making it easier to get help or contribute. The team greets all new contributors: @Nikolay Devxx, @asotolongo, @Tanya301, @denis-boost, @pietervincken, @ane4ka

    Community news

    The README.md has been significantly improved. It now has four translations, with more coming in the future. Many thanks to our README translation contributors! It helps engineers worldwide understand DLE concepts and improve the development experience by building powerful dev&test environments.

    Migration notes

    :warning: Prior to version 3.1, the default ZFS version DLE's Docker images were using was 0.8.x. For DLE 3.1, the default Docker image (postgresai/dblab-server:3.1.0) uses ZFS 2.1.2. If you need to upgrade DLE from a previous version that worked with a ZFS pool 0.8.x (default for previous DLE versions), consider the following options:

    • Option 1: upgrade your system to use ZFS 2.1, optionally upgrade your pool (zpool upgrade dblab_pool), and then upgrade DLE to use the default image postgresai/dblab-server:3.1.0
    • Option 2: postpone the ZFS upgrade, stay on ZFS 0.8, and upgrade DLE to version 3.1 using a special image, postgresai/dblab-server:3.1.0-zfs0.8

    Changelog

    New features

    • Native support for pgBackRest as a tool to restore data from archives (physical mode, including continuously updated state) https://gitlab.com/postgres-ai/database-lab/-/merge_requests/442, https://gitlab.com/postgres-ai/database-lab/-/merge_requests/454 (:bow: contribution by @Nikolay Devxx)
    • Allow configuring timezone in DLE CLI configuration to improve the experience of using DLE in CI/CD pipelines https://gitlab.com/postgres-ai/database-lab/-/merge_requests/486, https://gitlab.com/postgres-ai/database-lab/-/merge_requests/502
    • Automatically clean up failed clones with their sessions (for example, errors during the Postgres clone configuration – in the past, in such cases, DLE lost control over such clones and they could not be removed, even using an API request) https://gitlab.com/postgres-ai/database-lab/-/merge_requests/405, https://gitlab.com/postgres-ai/database-lab/-/merge_requests/404
    • For logical mode, during dump/restore, DLE now cleans up only those files or directories that are specified to be restored https://gitlab.com/postgres-ai/database-lab/-/merge_requests/410
    • Improved support of multiple DLEs running on the same machine: Take the pool name into account when determining the clone existence https://gitlab.com/postgres-ai/database-lab/-/merge_requests/471
    • Rework README, add translations https://gitlab.com/postgres-ai/database-lab/-/merge_requests/411, https://gitlab.com/postgres-ai/database-lab/-/merge_requests/423, https://gitlab.com/postgres-ai/database-lab/-/merge_requests/467, https://gitlab.com/postgres-ai/database-lab/-/merge_requests/478, https://gitlab.com/postgres-ai/database-lab/-/merge_requests/481, https://gitlab.com/postgres-ai/database-lab/-/merge_requests/497
    • CONTRIBUTING.md: Describe components and Makefile targets https://gitlab.com/postgres-ai/database-lab/-/merge_requests/413

    Improvements and fixes

    • Reset the snapshot state atomically to avoid the moments in time when the DLE does not have a snapshot https://gitlab.com/postgres-ai/database-lab/-/merge_requests/406
    • Skip connection if the DLE container is already connected to an internal network. This solves the problem when in some cases, DLE cannot start because the DLE container is already connected to the bridge network https://gitlab.com/postgres-ai/database-lab/-/merge_requests/416
    • Optimize snapshot list. This has to improve the performance of /snapshot API calls which could take many seconds in the past https://gitlab.com/postgres-ai/database-lab/-/merge_requests/426
    • ZFS version 2.1.2 inside DLE container (optional, 0.8 remains the default in DLE 3.x) https://gitlab.com/postgres-ai/database-lab/-/merge_requests/343, https://gitlab.com/postgres-ai/database-lab/-/merge_requests/477
    • Do not specify the logerrors extension by default https://gitlab.com/postgres-ai/database-lab/-/merge_requests/485
    • Replace the "standby_mode" parameter with "recovery_target" in the DLE configuration for the promotion stage https://gitlab.com/postgres-ai/database-lab/-/merge_requests/484
    • Use the correct path to the data directory for the promote instance https://gitlab.com/postgres-ai/database-lab/-/merge_requests/503
    • Fix wrong server version in the DLE response https://gitlab.com/postgres-ai/database-lab/-/merge_requests/508
    • Avoid losing the snapshot list on configuration reload https://gitlab.com/postgres-ai/database-lab/-/merge_requests/506
    • In logical mode, dump only databases to which user have access https://gitlab.com/postgres-ai/database-lab/-/merge_requests/501
    • UI: Add clone port to clones list https://gitlab.com/postgres-ai/database-lab/-/merge_requests/447
    • UI: Correct status detection https://gitlab.com/postgres-ai/database-lab/-/merge_requests/449
    • UI: Add the total size of clones to instance page header https://gitlab.com/postgres-ai/database-lab/-/merge_requests/450
    • UI: Fetch failed on connection refused calls https://gitlab.com/postgres-ai/database-lab/-/merge_requests/459
    • UI: Adjust DLE stats labels https://gitlab.com/postgres-ai/database-lab/-/merge_requests/461
    • UI (Platform only): Fix command page scroll https://gitlab.com/postgres-ai/database-lab/-/commit/992b0ecc4f43a578eeadd3818d8824e470b78009
    • UI (Platform only): Fix markdown parser https://gitlab.com/postgres-ai/database-lab/-/merge_requests/496

    Internal

    • Set up GPG to have signed commits in GitPod https://gitlab.com/postgres-ai/database-lab/-/merge_requests/407
    • Use GitHub CodeQL Analysis https://gitlab.com/postgres-ai/database-lab/-/merge_requests/409
    • Define rules to reduce the running time of integration tests - https://gitlab.com/postgres-ai/database-lab/-/merge_requests/414
    • Upgrade the default Docker image - https://gitlab.com/postgres-ai/database-lab/-/merge_requests/412, https://gitlab.com/postgres-ai/database-lab/-/merge_requests/476
    • Add .whitesource configuration file - https://gitlab.com/postgres-ai/database-lab/-/merge_requests/420
    • Rework LICENSE files - https://gitlab.com/postgres-ai/database-lab/-/merge_requests/429
    • Don't count .js in repo stats - https://gitlab.com/postgres-ai/database-lab/-/merge_requests/430
    • Rework CI - https://gitlab.com/postgres-ai/database-lab/-/merge_requests/425, https://gitlab.com/postgres-ai/database-lab/-/merge_requests/431, https://gitlab.com/postgres-ai/database-lab/-/merge_requests/453, https://gitlab.com/postgres-ai/database-lab/-/merge_requests/457, https://gitlab.com/postgres-ai/database-lab/-/merge_requests/493, https://gitlab.com/postgres-ai/database-lab/-/merge_requests/495, https://gitlab.com/postgres-ai/database-lab/-/merge_requests/499
    • Describe how dataStateAt is determined - https://gitlab.com/postgres-ai/database-lab/-/merge_requests/356
    • Isolate Database Lab Engine sources - https://gitlab.com/postgres-ai/database-lab/-/merge_requests/443
    • Update dependencies for security reasons - https://gitlab.com/postgres-ai/database-lab/-/merge_requests/439, https://gitlab.com/postgres-ai/database-lab/-/merge_requests/445, https://gitlab.com/postgres-ai/database-lab/-/merge_requests/456, https://gitlab.com/postgres-ai/database-lab/-/merge_requests/458, https://gitlab.com/postgres-ai/database-lab/-/merge_requests/466, https://gitlab.com/postgres-ai/database-lab/-/merge_requests/451, https://gitlab.com/postgres-ai/database-lab/-/merge_requests/452, https://gitlab.com/postgres-ai/database-lab/-/merge_requests/469, https://gitlab.com/postgres-ai/database-lab/-/merge_requests/468, https://gitlab.com/postgres-ai/database-lab/-/merge_requests/472, https://gitlab.com/postgres-ai/database-lab/-/merge_requests/504
    • Make UI source code publicly available https://gitlab.com/postgres-ai/database-lab/-/merge_requests/421
    • Update Go to 1.18 - https://gitlab.com/postgres-ai/database-lab/-/merge_requests/498

    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:

    Diff between versions v3.0.0 and v3.1.0-rc.1: https://github.com/postgres-ai/database-lab-engine/compare/v3.0.0...v3.1.0-rc.1

    Source code(tar.gz)
    Source code(zip)
  • v3.0.3(Mar 5, 2022)

    DLE 3.0.3 is a backward-compatibility update to ensure that the DLE image is compatible with existing datasets (ZFS 0.8.*). In DLE 3.0.2, in the Docker image ZFS version was prematurely switched to 2.*. The release 3.0.3 mitigates it. There are plans to switch to ZFS 2.* in the future major versions of DLE.

    The development team asks everyone to participate in testing and report any bugs or improvement ideas in the DLE repository on GitLab or GitHub:

    • https://gitlab.com/postgres-ai/database-lab
    • https://github.com/postgres-ai/database-lab-engine

    Changelog

    Improvements and fixes

    • Explicitly set ZFS version in DLE – ZFS 0.8.4: https://gitlab.com/postgres-ai/database-lab/-/merge_requests/492

    Internal

    • Update the DLE version in the SwaggerUI spec: https://gitlab.com/postgres-ai/database-lab/-/commit/a59e5845dca510a2a3b929ba1834ce038e5a6936

    Migration notes

    Make sure the DLE running command contains the environment variable --env DOCKER_API_VERSION="1.41". The maximum supported Docker API version is 1.41, but the client version (1.42) is too new.

    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.

    Request for feedback

    Any feedback would be greatly appreciated:

    • Database Lab Community Slack: https://slack.postgres.ai/
    • DLE issue tracker: https://gitlab.com/postgres-ai/database-lab/-/issues

    Compare versions

    Diff between versions v3.0.2 and v3.0.3: https://gitlab.com/postgres-ai/database-lab/-/compare/v3.0.2...v3.0.3

    Source code(tar.gz)
    Source code(zip)
  • v3.0.2(Mar 1, 2022)

    DLE 3.0.2 is a security update, mitigating multiple CVEs reported by various security inspection tools. There are no known critical vulnerabilities that are fixed or are still unfixed in this release but upgrading at the earliest convenience is recommended.

    The development team asks everyone to participate in testing and report any bugs or improvement ideas in the DLE repository on GitLab or GitHub:

    • https://gitlab.com/postgres-ai/database-lab
    • https://github.com/postgres-ai/database-lab-engine

    Changelog

    Internal

    • Fix old and indirect dependencies to avoid scanner warnings - https://gitlab.com/postgres-ai/database-lab/-/merge_requests/466
    • Upgrade engine libs to mitigate multiple CVEs - https://gitlab.com/postgres-ai/database-lab/-/merge_requests/458
    • Mitigate CVE scanner warnings related to SwaggerUI - https://gitlab.com/postgres-ai/database-lab/-/merge_requests/472
    • Update base Docker images to 20.10 - https://gitlab.com/postgres-ai/database-lab/-/merge_requests/476

    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.

    Request for feedback

    Any feedback would be greatly appreciated:

    • Database Lab Community Slack: https://slack.postgres.ai/
    • DLE issue tracker: https://gitlab.com/postgres-ai/database-lab/-/issues

    Compare versions

    Diff between versions v3.0.1 and v3.0.2: https://gitlab.com/postgres-ai/database-lab/-/compare/v3.0.1...v3.0.2

    Source code(tar.gz)
    Source code(zip)
  • v3.0.1(Feb 8, 2022)

    The development team asks everyone to participate in testing and report any bugs or improvement ideas in the DLE repository: https://gitlab.com/postgres-ai/database-lab.

    Changelog

    Improvements and fixes

    • Clean up only files or directories that are specified to be restored - https://gitlab.com/postgres-ai/database-lab/-/issues/313
    • Remove clone with the FATAL status during idleness check - https://gitlab.com/postgres-ai/database-lab/-/issues/316
    • Reload snapshots state atomically - https://gitlab.com/postgres-ai/database-lab/-/issues/317
    • Do not connect the DLE container to an internal network if it is already connected - https://gitlab.com/postgres-ai/database-lab/-/merge_requests/416
    • Rework README, add CODE_OF_CONDUCT.md, CONTRIBUTING.md, SECURITY.md - https://gitlab.com/postgres-ai/database-lab/-/merge_requests/411, https://gitlab.com/postgres-ai/database-lab/-/issues/319

    Internal

    • Set up GPG to have signed commits in Gitpod - https://gitlab.com/postgres-ai/database-lab/-/merge_requests/407
    • Try GitHub CodeQL Analysis - https://gitlab.com/postgres-ai/database-lab/-/merge_requests/409

    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.

    Request for feedback

    Any feedback would be greatly appreciated:

    • Database Lab Community Slack: https://slack.postgres.ai/
    • DLE issue tracker: https://gitlab.com/postgres-ai/database-lab/-/issues

    Compare versions

    Diff between versions v3.0.0 and v3.0.1: https://gitlab.com/postgres-ai/database-lab/-/compare/v3.0.0...v3.0.1

    Source code(tar.gz)
    Source code(zip)
  • v3.0.0(Dec 21, 2021)

    Database Lab Engine (DLE) is an open-source technology that enables thin cloning for PostgreSQL. Thin clones are exceptionally useful when you need to scale the development process. DLE can manage dozens of independent clones of your database on a single machine, so each engineer or automation process works with their very own database provisioned in seconds without extra costs.

    DLE v3.0.0 includes more than 100 individual changes. This is the most advanced open-source software ever released that empowers development, testing, and troubleshooting environments for fast-growing projects. The use of Database Lab Engine 3.0 provides a competitive advantage to companies via implementing the "Shift-left testing" approach in software development.

    Read the blog post about this release: https://postgres.ai/blog/20211221-dle-3-0-0-brings-ui-and-persistent-clones

    Among major changes:

    • UI included to the core, it allows working with a single DLE instance,
    • persistent clones: clones now survive DLE (or VM) restart,
    • for the "logical" data provisioning mode: the ability to switch reset clone's state using a snapshot from different pool/dataset,
    • better logging, easier configuration,
    • improvements for the cases with multiple DLEs are running a single machine,
    • PostgreSQL 14 support.

    Please note that upgrading from an older version requires some actions from the DLE administrator (see "Migration notes" below).

    The development team asks everyone to participate in testing and report any bugs or improvement ideas in the DLE repository: https://gitlab.com/postgres-ai/database-lab.

    Changelog

    New features

    • Do not lose clones when DLE is restarted - https://gitlab.com/postgres-ai/database-lab/-/issues/188
    • Keep clone containers after VM reboot - https://gitlab.com/postgres-ai/database-lab/-/issues/310
    • Run a new satellite-container serving the Embedded UI app - https://gitlab.com/postgres-ai/database-lab/-/issues/302
    • Provide information in API about available pools - https://gitlab.com/postgres-ai/database-lab/-/issues/275
    • Support PostgreSQL 14 - https://gitlab.com/postgres-ai/database-lab/-/issues/290
    • Enable DLE Telemetry (optional) - https://gitlab.com/postgres-ai/database-lab/-/issues/299, https://gitlab.com/postgres-ai/database-lab/-/merge_requests/373
    • Provide the DLE container name to control container labels - https://gitlab.com/postgres-ai/database-lab/-/merge_requests/365
    • Add the ability to select a working pool explicitly - https://gitlab.com/postgres-ai/database-lab/-/issues/306
    • Configure IP address to listen HTTP connections for Embedded UI - https://gitlab.com/postgres-ai/database-lab/-/merge_requests/378
    • Immediate start HTTP server in DLE and provide the actual instance status - https://gitlab.com/postgres-ai/database-lab/-/issues/307
    • Start DLE and Embedded UI even if no data pool available - https://gitlab.com/postgres-ai/database-lab/-/merge_requests/393
    • Allow resetting clone to a snapshot from a different pool - https://gitlab.com/postgres-ai/database-lab/-/merge_requests/345

    Improvements and fixes

    • Allow an empty body in the reset command - https://gitlab.com/postgres-ai/database-lab/-/issues/291
    • Do not mark the first pool active by default - https://gitlab.com/postgres-ai/database-lab/-/merge_requests/346
    • Revise port range availability after deleting invalid clone containers - https://gitlab.com/postgres-ai/database-lab/-/issues/296
    • Clean up the dumpLocation directory before taking a dump - https://gitlab.com/postgres-ai/database-lab/-/issues/294
    • Select the latest snapshot according to the data timestamp - https://gitlab.com/postgres-ai/database-lab/-/issues/304
    • Disable full refresh by default in "physical" mode - https://gitlab.com/postgres-ai/database-lab/-/issues/303
    • Consider the preliminary snapshot when calculating the size of the snapshot - https://gitlab.com/postgres-ai/database-lab/-/issues/305
    • Adjust the payload parameter in telemetry requests - https://gitlab.com/postgres-ai/database-lab/-/merge_requests/379
    • Remove the host parameter from the server configuration since it is always runs inside a Docker container - https://gitlab.com/postgres-ai/database-lab/-/merge_requests/388
    • Create pg_stat_kcache extension before running of an observing session - https://gitlab.com/postgres-ai/database-lab/-/merge_requests/395
    • Recognize errors from external tools and mention them in logs - https://gitlab.com/postgres-ai/database-lab/-/issues/293
    • Move the instance_id file to the metadata directory to run multiple DLEs on the same machine - https://gitlab.com/postgres-ai/database-lab/-/merge_requests/396
    • Be resistant to an absent snapshot: https://gitlab.com/postgres-ai/database-lab/-/merge_requests/399
    • Refresh clone metadata in the instance status - https://gitlab.com/postgres-ai/database-lab/-/merge_requests/400
    • Manage full data refresh overlapping - https://gitlab.com/postgres-ai/database-lab/-/merge_requests/402
    • Clean up components of a failed clone session - https://gitlab.com/postgres-ai/database-lab/-/merge_requests/404

    Internal

    • Use semantic Git tags to specify code revision and build Docker images - https://gitlab.com/postgres-ai/database-lab/-/merge_requests/341
    • Install a specific version of Envoy as a workaround of using a Postgres Proxy filter - https://gitlab.com/postgres-ai/database-lab/-/merge_requests/349
    • Refactor Instance status DLE API - https://gitlab.com/postgres-ai/database-lab/-/issues/297
    • Update the Swagger API schema - https://gitlab.com/postgres-ai/database-lab/-/issues/297, https://gitlab.com/postgres-ai/database-lab/-/merge_requests/364
    • Extend testing the DLE feature-revision for all supported PostgreSQL versions - https://gitlab.com/postgres-ai/database-lab/-/merge_requests/350, https://gitlab.com/postgres-ai/database-lab/-/merge_requests/375
    • Make configuration management more reliable in the TF-template - https://gitlab.com/postgres-ai/database-lab/-/merge_requests/366
    • Refactor the project packages structure - https://gitlab.com/postgres-ai/database-lab/-/merge_requests/367
    • Upgrade the project dependencies - https://gitlab.com/postgres-ai/database-lab/-/merge_requests/369
    • Upgrade the Swagger UI version to 4.1.0 - https://gitlab.com/postgres-ai/database-lab/-/merge_requests/370
    • Upgrade Go version to 1.17 - https://gitlab.com/postgres-ai/database-lab/-/merge_requests/371
    • Update golangci-lint to version 1.42 - https://gitlab.com/postgres-ai/database-lab/-/merge_requests/374
    • Check suppressed linter warnings - https://gitlab.com/postgres-ai/database-lab/-/issues/38
    • Make synthetic tests configuration more reliable - https://gitlab.com/postgres-ai/database-lab/-/merge_requests/372
    • Exclude side effects while running integration tests in dev and staging environments - https://gitlab.com/postgres-ai/database-lab/-/merge_requests/375
    • Upgrade the DLE module version to v3 - https://gitlab.com/postgres-ai/database-lab/-/merge_requests/377
    • Consider the leading letter v while comparing Git tags to run CI jobs - https://gitlab.com/postgres-ai/database-lab/-/merge_requests/382
    • Check the state of containers in tests after waiting loops and fail immediately, if there is still no success - https://gitlab.com/postgres-ai/database-lab/-/merge_requests/390
    • Build and publish actual CLI binaries on merging MR - https://gitlab.com/postgres-ai/database-lab/-/merge_requests/391

    Migration notes

    The Database Lab configuration contains a new section, embeddedUI, to run UI application that allows observing the current state of the instance and performing basic clone operations:

    embeddedUI:
      enabled: true
      dockerImage: "postgresai/ce-ui:latest"
      host: ""
      port: 2346
    

    Note, this application is delivered as a separate Docker container ("Embedded UI") and is controlled by DLE.

    Starting with version v3.0.0, DLE collects non-personally identifiable telemetry data. The Engine uses anonymous usage data to assist users and improve product quality.

    it is possible to manage the configuration in the section global:

    global:
      telemetry:
        enabled: true
        url: "https://postgres.ai/api/general"
        ...
    

    Please leave it enabled if possible – this will contribute to Database Lab development. See more details on the Telemetry page in the docs

    Now it is available to select a specific pool to work with, use a new option selectedPool in the poolManager section

    poolManager:
      selectedPool: "dblab_pool"
      ...
    

    Starting with version v3.0.0, Database Lab Engine can be running with an empty verification token, which is not recommended by default. In such a case DLE warns about empty token in instance logs and API will not require any credentials. Be sure that this option is configured correctly

    In order to make the management of service containers easier, special labels have been added to them:

    - `dblab_instance_id`: <dle_instance_id>
    - `dblab_engine_name`: <dle_container_name>
    

    For example, there is a snippet of the docker inspection response of a sync instance:

    "Labels": {
        "dblab_control": "dblab_sync",
        "dblab_instance_id": "c64mvrvku3086hlp2e6g",
        "dblab_engine_name": "dblab_server",
        "maintainer": "postgres.ai"
    }
    

    See more examples of configuration files in the Database Lab repository

    The Docker image of DLE v3.0.0: postgresai/dblab-server:3.0.0

    Launch command example:

    sudo docker run \
      --name dblab_server \
      --label dblab_control \
      --privileged \
      --publish 127.0.0.1:2345:2345 \
      --volume /var/run/docker.sock:/var/run/docker.sock \
      --volume /var/lib/dblab:/var/lib/dblab/:rshared \
      --volume ~/.dblab/engine/configs:/home/dblab/configs:ro \
      --volume ~/.dblab/engine/meta:/home/dblab/meta \
      --env DOCKER_API_VERSION=1.39 \
      --detach \
      --restart on-failure \
      postgresai/dblab-server:3.0.0
    

    If you have problems or questions, please contact our communities for help: https://postgres.ai/docs/questions-and-answers#where-to-get-help

    Request for feedback

    Any feedback would be greatly appreciated:

    • Database Lab Community Slack: https://slack.postgres.ai/
    • DLE issue tracker: https://gitlab.com/postgres-ai/database-lab/-/issues

    Compare versions

    Diff between versions 2.5.0 and v3.0.0: https://gitlab.com/postgres-ai/database-lab/-/compare/2.5.0...v3.0.0

    Source code(tar.gz)
    Source code(zip)
  • v3.0.0-rc.2(Dec 16, 2021)

    The second release candidate of DLE version 3.0.0, a major release with many changes and improvements. See the release notes for RC1: https://gitlab.com/postgres-ai/database-lab/-/tags/v3.0.0-rc.1

    Compared to RC1, this version fixes multiple bugs, points on logical inconsistency, and issues based on users' feedback during RC1 testing:

    • Keep clone containers after VM reboot (previously, clone persistency worked only for container restarts) https://gitlab.com/postgres-ai/database-lab/-/merge_requests/389
    • Postgres 14 as default everywhere https://gitlab.com/postgres-ai/database-lab/-/merge_requests/384
    • Remove the API's host parameter from the server configuration since it is always running inside a Docker container https://gitlab.com/postgres-ai/database-lab/-/merge_requests/388
    • Describe the meaning of empty verificationToken in configs https://gitlab.com/postgres-ai/database-lab/-/merge_requests/388
    • Start UI as soon as possible, even if the other processes are not finished. Provide actual instance status in API https://gitlab.com/postgres-ai/database-lab/-/merge_requests/383
    • Start UI even if no data pool is available https://gitlab.com/postgres-ai/database-lab/-/merge_requests/393
    • Create pg_stat_kcache extension before observability activities for DB Migration Checker start https://gitlab.com/postgres-ai/database-lab/-/merge_requests/395
    • Recognize errors from external tools and expose them in logs (example: pg_dump attempt failed with some error) https://gitlab.com/postgres-ai/database-lab/-/merge_requests/386
    • Move the instance_id file to the metadata directory to avoid conflicts when multiple DLEs are running on the same machine https://gitlab.com/postgres-ai/database-lab/-/merge_requests/396
    • Show correct DLE start time in API responses https://gitlab.com/postgres-ai/database-lab/-/merge_requests/397
    • Internal changes (CI, workflow improvements, internal naming)
      • match tags with leading v https://gitlab.com/postgres-ai/database-lab/-/merge_requests/382
      • change UI docker tag in sample configs https://gitlab.com/postgres-ai/database-lab/-/merge_requests/385
      • improve the way how Postgres availability is checked in automated tests https://gitlab.com/postgres-ai/database-lab/-/merge_requests/390
      • various improvements for CI/CD pipelines https://gitlab.com/postgres-ai/database-lab/-/merge_requests/391
      • rename Local UI to Embedded UI and ce-ui Docker image
    • Multiple fixes and improvements in the Terraform module template code to work with DLE 3.0.0 https://gitlab.com/postgres-ai/terraform-postgres-ai-database-lab/-/compare/v0.1.1...master

    Migration notes

    Upgrading from version 2.5.x and earlier require some actions from the DLE administrator; see the migration notes for v3.0.0-rc.1: https://gitlab.com/postgres-ai/database-lab/-/tags/v3.0.0-rc.1#migration-notes

    Request for feedback

    Any feedback would be greatly appreciated:

    • Database Lab Community Slack: https://slack.postgres.ai/
    • DLE issue tracker: https://gitlab.com/postgres-ai/database-lab/-/issues

    Compare versions

    Diff between versions v3.0.0-rc.1 and v3.0.0-rc.2: https://gitlab.com/postgres-ai/database-lab/-/compare/v3.0.0-rc.1...v3.0.0-rc.2

    Source code(tar.gz)
    Source code(zip)
  • v3.0.0-rc.1(Dec 16, 2021)

    DLE v3.0.0-rc.1 includes several major changes and many improvements. Most notable changes are:

    • persistent clones: clones now survive DLE (or VM) restart,
    • GUI included to the core, it allows working with a single DLE instance,
    • PostgreSQL 14 support.

    Please note that upgrading from an older version requires some actions from the DLE administrator (see "Migration notes" below).

    The list below has "WIP" status. The final list for the 3.0 major version release may include some changes.

    The development team asks everyone to participate in testing and report any bugs or improvement ideas in the DLE repository: https://gitlab.com/postgres-ai/database-lab.

    Changelog

    New features

    • Do not lose clones when DLE is restarted - https://gitlab.com/postgres-ai/database-lab/-/issues/188
    • Run a new satellite-container serving the Local UI app - https://gitlab.com/postgres-ai/database-lab/-/issues/302
    • Provide information in API about available pools - https://gitlab.com/postgres-ai/database-lab/-/issues/275
    • Support PostgreSQL 14 - https://gitlab.com/postgres-ai/database-lab/-/issues/290
    • Enable DLE Telemetry (optional) - https://gitlab.com/postgres-ai/database-lab/-/issues/299, https://gitlab.com/postgres-ai/database-lab/-/merge_requests/373
    • Provide the DLE container name to control container labels - https://gitlab.com/postgres-ai/database-lab/-/merge_requests/365
    • Add the ability to select a working pool explicitly - https://gitlab.com/postgres-ai/database-lab/-/issues/306
    • Configure IP address to listen HTTP connections for Local UI - https://gitlab.com/postgres-ai/database-lab/-/merge_requests/378

    Improvements and fixes

    • Allow an empty body in the reset command - https://gitlab.com/postgres-ai/database-lab/-/issues/291
    • Do not mark the first pool active by default - https://gitlab.com/postgres-ai/database-lab/-/merge_requests/346
    • Revise port range availability after deleting invalid clone containers - https://gitlab.com/postgres-ai/database-lab/-/issues/296
    • Allow resetting clone to a snapshot from a different pool - https://gitlab.com/postgres-ai/database-lab/-/merge_requests/345
    • Clean up the dumpLocation directory before taking a dump - https://gitlab.com/postgres-ai/database-lab/-/issues/294
    • Select the latest snapshot according to the data timestamp - https://gitlab.com/postgres-ai/database-lab/-/issues/304
    • Disable full refresh by default in "physical" mode - https://gitlab.com/postgres-ai/database-lab/-/issues/303
    • Consider the preliminary snapshot when calculating the size of the snapshot - https://gitlab.com/postgres-ai/database-lab/-/issues/305
    • Adjust the payload parameter in telemetry requests - https://gitlab.com/postgres-ai/database-lab/-/merge_requests/379

    Internal

    • Use semantic Git tags to specify code revision and build Docker images - https://gitlab.com/postgres-ai/database-lab/-/merge_requests/341
    • Install a specific version of Envoy as a workaround of using a Postgres Proxy filter - https://gitlab.com/postgres-ai/database-lab/-/merge_requests/349
    • Refactor Instance status DLE API - https://gitlab.com/postgres-ai/database-lab/-/issues/297
    • Update the Swagger API schema - https://gitlab.com/postgres-ai/database-lab/-/issues/297, https://gitlab.com/postgres-ai/database-lab/-/merge_requests/364
    • Extend testing the DLE feature-revision for all supported PostgreSQL versions - https://gitlab.com/postgres-ai/database-lab/-/merge_requests/350, https://gitlab.com/postgres-ai/database-lab/-/merge_requests/375
    • Make configuration management more reliable in the TF-template - https://gitlab.com/postgres-ai/database-lab/-/merge_requests/366
    • Refactor the project packages structure - https://gitlab.com/postgres-ai/database-lab/-/merge_requests/367
    • Upgrade the project dependencies - https://gitlab.com/postgres-ai/database-lab/-/merge_requests/369
    • Upgrade the Swagger UI version to 4.1.0 - https://gitlab.com/postgres-ai/database-lab/-/merge_requests/370
    • Upgrade Go version to 1.17 - https://gitlab.com/postgres-ai/database-lab/-/merge_requests/371
    • Update golangci-lint to version 1.42 - https://gitlab.com/postgres-ai/database-lab/-/merge_requests/374
    • Check suppressed linter warnings - https://gitlab.com/postgres-ai/database-lab/-/issues/38
    • Make synthetic tests configuration more reliable - https://gitlab.com/postgres-ai/database-lab/-/merge_requests/372
    • Exclude side effects while running integration tests in dev and staging environments - https://gitlab.com/postgres-ai/database-lab/-/merge_requests/375
    • Upgrade the DLE module version to v3 - https://gitlab.com/postgres-ai/database-lab/-/merge_requests/377

    Migration notes

    The Database Lab configuration contains a new section localUI to run UI application that allows observing the current state of the instance and performing basic clone operations:

    localUI:
      enabled: true
      dockerImage: "postgresai/basic-ui:latest"
      host: ""
      port: 2346
    

    Note, this application is delivered as a separate Docker container (Local UI) and running by the Database Lab Engine.

    Since v3.0.0-rc.1, DLE collects non-personally identifiable telemetry data. The Engine uses anonymous usage data to assist users and improve product quality.

    it is possible to manage the configuration in the section global:

    global:
      telemetry:
        enabled: true
        url: "https://postgres.ai/api/general"
        ...
    

    Please leave it enabled if possible – this will contribute to Database Lab development. See more details on the Telemetry page in the docs

    Now it is available to select a specific pool to work with, use a new option selectedPool in the poolManager section

    poolManager:
      selectedPool: "dblab_pool"
      ...
    

    Since version v3.0.0-rc.1, Database Lab Engine can be running with an empty verification token, which is not recommended by default. In such a case DLE warns about empty token in instance logs and API will not require any credentials. Be sure that this option is configured correctly

    In order to make the management of service containers easier, special labels have been added to them:

    - `dblab_instance_id`: <dle_instance_id>
    - `dblab_engine_name`: <dle_container_name>
    

    For example, there is a snippet of the docker inspection response of a sync instance:

    "Labels": {
        "dblab_control": "dblab_sync",
        "dblab_instance_id": "c64mvrvku3086hlp2e6g",
        "dblab_engine_name": "dblab_server",
        "maintainer": "postgres.ai"
    }
    

    See more examples of configuration files in the Database Lab repository

    The Docker image of DLE 3.0.0-rc.1: registry.gitlab.com/postgres-ai/database-lab/dblab-server:test-3-0-0-rc-1

    Launch command example:

    sudo docker run \
      --name dblab_server \
      --label dblab_control \
      --privileged \
      --publish 127.0.0.1:2345:2345 \
      --volume /var/run/docker.sock:/var/run/docker.sock \
      --volume /var/lib/dblab:/var/lib/dblab/:rshared \
      --volume ~/.dblab/engine/configs:/home/dblab/configs:ro \
      --volume ~/.dblab/engine/meta:/home/dblab/meta \
      --env DOCKER_API_VERSION=1.39 \
      --detach \
      --restart on-failure \
      registry.gitlab.com/postgres-ai/database-lab/dblab-server:test-3-0-0-rc-1
    

    If you have problems or questions, please contact our communities for help: https://postgres.ai/docs/questions-and-answers#where-to-get-help

    Request for feedback

    Any feedback would be greatly appreciated:

    • Database Lab Community Slack: https://slack.postgres.ai/
    • DLE issue tracker: https://gitlab.com/postgres-ai/database-lab/-/issues

    Compare versions

    Diff between versions 2.5.0 and v3.0.0-rc.1: https://gitlab.com/postgres-ai/database-lab/-/compare/2.5.0...v3.0.0-rc.1

    Source code(tar.gz)
    Source code(zip)
Owner
Postgres.ai
We eliminate database-related roadblocks on the way of developers, DBAs and QA engineers – Find us on GitLab.com
Postgres.ai
pREST (PostgreSQL REST), simplify and accelerate development, ⚡ instant, realtime, high-performance on any Postgres application, existing or new

pREST pREST (PostgreSQL REST), simplify and accelerate development, instant, realtime, high-performance on any Postgres application, existing or new P

pREST 3.5k Jan 9, 2023
a powerful mysql toolset with Go

go-mysql A pure go library to handle MySQL network protocol and replication. Call for Committer/Maintainer Sorry that I have no enough time to maintai

siddontang 3.9k Dec 28, 2022
A flexible and powerful SQL string builder library plus a zero-config ORM.

SQL builder for Go Install Usage Basic usage Pre-defined SQL builders Build SQL for MySQL, PostgreSQL or SQLite Using Struct as a light weight ORM Nes

Huan Du 906 Dec 30, 2022
pg_timetable: Advanced scheduling for PostgreSQL

pg_timetable: Advanced scheduling for PostgreSQL pg_timetable is an advanced job scheduler for PostgreSQL, offering many advantages over traditional s

CYBERTEC PostgreSQL International GmbH 819 Dec 29, 2022
Cross-platform client for PostgreSQL databases

pgweb Web-based PostgreSQL database browser written in Go. Overview Pgweb is a web-based database browser for PostgreSQL, written in Go and works on O

Dan Sosedoff 7.6k Dec 30, 2022
PostgreSQL style Parser splitted from CockroachDB

What's this PostgreSQL style Parser splitted from CockroachDB See: Complex SQL format example

auxten 165 Jan 5, 2023
Enhanced PostgreSQL logical replication

pgcat - Enhanced postgresql logical replication Why pgcat? Architecture Build from source Install Run Conflict handling Table mapping Replication iden

jinhua luo 365 Dec 21, 2022
Interactive client for PostgreSQL and MySQL

dblab Interactive client for PostgreSQL and MySQL. Overview dblab is a fast and lightweight interactive terminal based UI application for PostgreSQL a

Daniel Omar Vergara Pérez 617 Jan 8, 2023
WAL-G is an archival restoration tool for PostgreSQL, MySQL/MariaDB, and MS SQL Server (beta for MongoDB and Redis).

WAL-G is an archival restoration tool for PostgreSQL, MySQL/MariaDB, and MS SQL Server (beta for MongoDB and Redis).

null 2.4k Jan 1, 2023
Worker failover support for PostgreSQL Citus extension using pg_auto_failover.

citus-failover Worker failover support for citus community version using pg_auto_failover. What is this? This is a simple service to monitor changes i

Navid Zarepak 23 Dec 7, 2022
Interactive terminal user interface and CLI for database connections. MySQL, PostgreSQL. More to come.

?? dbui dbui is the terminal user interface and CLI for database connections. It provides features like, Connect to multiple data sources and instance

Kanan Rahimov 122 Jan 5, 2023
Modify orca-zhang/borm in order to use in PostgreSQL

borm ??️ 针对 orca-zhang/borm 进行了修改,暂时只能兼容PostgreSQL 原因 在b站时候用过borm,用起来感觉非常简洁 自己学校里用PostgreSQL比较多 可变条件真的非常好用 问题 首先需要注意的是,这是写给PG的 PG 根本不存在某些 MySQL 独有的函数

null 14 Aug 24, 2022
Cross-platform client for PostgreSQL databases

pgweb Web-based PostgreSQL database browser written in Go. Overview Pgweb is a web-based database browser for PostgreSQL, written in Go and works on O

Dan Sosedoff 7.6k Dec 30, 2022
PolarDB Cluster Manager is the cluster management component of PolarDB for PostgreSQL, responsible for topology management, high availability, configuration management, and plugin extensions.

What is PolarDB Cluster Manager PolarDB Cluster Manager is the cluster management component of PolarDB for PostgreSQL, responsible for topology manage

null 7 Nov 9, 2022
A simple Golang-based application that queries a PostgreSQL database

Qwik-E-Mart Demo App A simple Golang-based application that queries a PostgreSQL database named qwikemart to read and return customer data stored in t

Joe Garcia 0 Nov 6, 2021
CloudQuery extracts, transforms, and loads your cloud assets into normalized PostgreSQL tables.

The open-source cloud asset inventory backed by SQL. CloudQuery extracts, transforms, and loads your cloud assets into normalized PostgreSQL tables. C

CloudQuery 2.7k Dec 31, 2022
Implemented PostgreSQL with Golang

Customer Information Web Api Implemented PostgreSQL with Golang docker run --name postgresql-container -p 5432:5432 -e POSTGRES_PASSWORD=Password! -d

bseyhan 2 Nov 15, 2021
Typescript type declaration to PostgreSQL CREATE TABLE converter

ts2psql NOTE: This is WIP. Details in this readme are ideal state. Current usage: go build && ./ts2psql (or go build && ts2psql if on Windows OS). A s

null 1 Jan 13, 2022
An experimental toolkit for injecting alternate authentication strategies into a PostgreSQL-compatible wire format.

PG Auth Proxy This is an experimental toolkit for injecting alternate authentication strategies into a PostgreSQL-compatible wire format. This is a pr

Cockroach Labs 1 Jan 20, 2022