diff --git a/README.md b/README.md index 4f8a619d07..d46773b33c 100644 --- a/README.md +++ b/README.md @@ -25,70 +25,33 @@ You can see a live demo of CloudBeaver here: https://demo.cloudbeaver.io ## Changelog -### 25.0.5 2025-05-19 -- Added the ability to configure the default database or schema in the connection configuration; -- A new setting to autosave scripts in the SQL editor appeared in global and users' preferences; -- SQLite: added information about a table Strict mode to the table metadata section (thanks to @eusebe-cda); -- Vietnamese localization has been added (thanks to @0xhanh). - -### 25.0.4 2025-05-05 +### 25.1.0 2025-06-02 +### Changes since 25.0.0: - Important: - Connection templates were removed from the application. You can use the Connection Editor to create new connections. -- Databases and drivers: - - LibSQL: added the ability to use token authentication for connecting; - - Clickhouse: driver has been updated to version 0.8.5. - -### 25.0.3 2025-04-21 -- Administration: log records now capture create, update, and delete actions for users, teams, and connections for improved tracking and transparency; -- SQL Editor: auto-completion has been improved for aliases and camelCase entities; -- Users DDL in Oracle is displayed in metadata editor on corresponding tab for users with Oracle administration permissions; -- Different bug fixes and enhancements have been made. - -### 25.0.2 2025-04-07 -- Data Editor: improved table rendering to scale column width depending on the content. -- Improved Navigation tree performance: lost connection does not lead to the application freezing anymore. -- Different bug fixes and enhancements have been made. - -### 25.0.1 2025-03-24 -- Improved performance of the export/import functionality by optimizing disk memory consumption; -- Enhanced initial configuration on stage security: if the initial setup time exceeds 1 hour, the server must be restarted. - -### 25.0 2025-03-03 -### Changes since 24.3.0: -- General: - - Added transaction log viewing for connections with manual commit mode. This allows users to see all modifying statements before committing; - - Added an ability for all editors to reconnect if a connection has been lost; - - Tooltips for metadata objects and SQL Editor tabs now include additional details about catalogs, schemas, and connections; - - Added Ctrl + Shift + S (Cmd + Shift + S on Mac) shortcut for the "Save As Script" action; - - Updated list of available shortcuts for macOS. - Administration: - - Added system information data to the Product Information tab in the Administration panel. This provides administrators with quick access to essential system details, such as the server deployment type (e.g., Docker, Kubernetes), install path, Java version, and Java parameters; - - The global access server URL has been added to the console log, making it easier to locate server installation information directly within the logs; - - New environment variables were introduced for theme styling, SQL editor, and log viewer settings. You can use them for quick setup during the initial Docker configuration stage. + - Log records now capture create, update, and delete actions for users, teams, and connections for improved tracking and transparency. - LDAP authorization: - - Added the ability to match users from LDAP configuration with CloudBeaver users; - - Added an option to specify a user login as an attribute parameter for LDAP providers; - - CloudBeaver now uses EntityID or objectGUID to create new LDAP users in CloudBeaver to ensure uniqueness. This change enhances user identification and prevents conflicts while maintaining backward compatibility for existing users. -- Deployment: - - CloudBeaver now uses JDK 21 as its base Java image. If you use standard deployment and upgrade scripts, the new Java version will be applied automatically after the product update; - - Changed the permission of the Docker volumes directory to enhance security and prevent any insecure actions by the "root" user. All new deployments will use the "dbeaver" user by default. For existing deployments running as the "root" user, this update will automatically adjust file permissions to ensure they are compatible with the new security model. There will be no manual intervention, and the service will continue to run as expected with the updated permissions. -- Connections: - - Enabled the possibility of switching a database connection to read-only mode. This mode can be activated in the connection dialog. Administrators can set this mode for any connection, while regular users can set it for their private connections only; - - For Oracle and SQL Server connections, advanced database settings can now be used in the URL connection mode. + - Added support for secure [LDAP authentication over SSL](https://github.com/dbeaver/cloudbeaver/wiki/LDAP-Authentication); + - Brute force protection is now supported for LDAP authentication. All authentication methods on the application level have this security mechanism. +- SQL Editor: + - A new setting to autosave scripts in the SQL editor appeared in global and users' preferences; + - Auto-completion has been improved for aliases and camelCase entities. - Data Editor: - - Auto-suggestions for column names in the Data Editor filter field were introduced to avoid typing mistakes; - - Introduced the ability to insert data in tables without unique keys: you can import data from CSV files or insert entire rows directly via UI; - - The collapse of the grouping panel doesn't lead to the complete panel cleaning anymore. -- Data transfer: - - Added the ability to use default spreadsheet names (e.g. Sheet0, Sheet1) for exporting to XLSX; - - An option to replace line break characters on any custom value was added when exporting to CSV. -- Navigator tree: - - An option to show metadata object comments was added. You can enable it in the database navigator settings panel; - - Introduced the ability to create connections not only on the initial level but in folders and sub-folders directly; - - Fixed the display of objects with long names (more than 32 characters) - now, such names will be displayed entirely and not in a cropped format. -- Drivers: - - The MariaDB driver has been updated to version 3.5.1; - - The SQLite driver has been updated to version 3.48.0.0. + - Improved table rendering to scale column width depending on the content; + - Accessibility: improved keyboard navigation by sorting buttons in column headers. +- General: + - Added the ability to configure the default database or schema in the connection configuration; + - Enhanced initial configuration stage security: a server needs to be restarted if the initial setup time exceeds 1 hour; + - Improved Navigation tree performance: lost connection does not lead to the application freezing anymore; + - Data transfer: Improved export/import functionality performance by optimizing disk memory consumption; + - Vietnamese localization has been added (thanks to [0xhanh](https://github.com/0xhanh)). +- Databases and drivers: + - Clickhouse: driver has been updated to version 0.8.5; + - DuckDB: expanded the list of system objects that can be hidden in the Navigation tree; + - LibSQL: added the ability to connect using token authentication; + - Oracle: users' DDL in Oracle is displayed in the metadata editor on the corresponding tab for users with Oracle administration permissions; + - SQLite: added information about a table's Strict mode to the table metadata section (thanks to [eusebe-cda](https://github.com/eusebe-cda)). ## Contribution As a community-driven open-source project, we warmly welcome contributions through GitHub pull requests. diff --git a/generate_workspace.cmd b/generate_workspace.cmd index 36c98cf538..ea0d989b96 100644 --- a/generate_workspace.cmd +++ b/generate_workspace.cmd @@ -1,3 +1,2 @@ -SET mypath=%~dp0 - -.\..\idea-rcp-launch-config-generator\runGenerator.cmd -f %mypath% \ No newline at end of file +@echo off +%~dp0\..\idea-rcp-launch-config-generator\runGenerator.cmd -f %~dp0 \ No newline at end of file diff --git a/generate_workspace.sh b/generate_workspace.sh index 4c48c0169a..f7ac4329ab 100755 --- a/generate_workspace.sh +++ b/generate_workspace.sh @@ -1 +1,6 @@ -./../idea-rcp-launch-config-generator/runGenerator.sh -f "$PWD" \ No newline at end of file +#!/usr/bin/env sh + +script_dir="$(realpath "$(dirname "$0")")" +repositories_root_dir="$(realpath "$script_dir/..")" + +"$repositories_root_dir"/idea-rcp-launch-config-generator/runGenerator.sh "$script_dir" diff --git a/server/bundles/io.cloudbeaver.model/META-INF/MANIFEST.MF b/server/bundles/io.cloudbeaver.model/META-INF/MANIFEST.MF index 248edb563d..03de273b94 100644 --- a/server/bundles/io.cloudbeaver.model/META-INF/MANIFEST.MF +++ b/server/bundles/io.cloudbeaver.model/META-INF/MANIFEST.MF @@ -5,7 +5,7 @@ Bundle-Name: Cloudbeaver Web Model Bundle-SymbolicName: io.cloudbeaver.model;singleton:=true Bundle-Version: 1.0.79.qualifier Bundle-Release-Date: 20250616 -Bundle-RequiredExecutionEnvironment: JavaSE-17 +Bundle-RequiredExecutionEnvironment: JavaSE-21 Bundle-ActivationPolicy: lazy Bundle-ClassPath: . Require-Bundle: org.jkiss.dbeaver.data.gis;visibility:=reexport, diff --git a/server/bundles/io.cloudbeaver.model/src/io/cloudbeaver/model/session/WebSessionWorkspace.java b/server/bundles/io.cloudbeaver.model/src/io/cloudbeaver/model/session/WebSessionWorkspace.java index 87581c2634..2832dc6c2d 100644 --- a/server/bundles/io.cloudbeaver.model/src/io/cloudbeaver/model/session/WebSessionWorkspace.java +++ b/server/bundles/io.cloudbeaver.model/src/io/cloudbeaver/model/session/WebSessionWorkspace.java @@ -47,6 +47,10 @@ public class WebSessionWorkspace implements DBPWorkspace { this.workspaceAuthContext = new SessionContextImpl(null); } + public BaseWebSession getWebSession() { + return session; + } + @NotNull @Override public DBPPlatform getPlatform() { diff --git a/server/bundles/io.cloudbeaver.product.ce/META-INF/MANIFEST.MF b/server/bundles/io.cloudbeaver.product.ce/META-INF/MANIFEST.MF index ea84af6d4e..577733a16f 100644 --- a/server/bundles/io.cloudbeaver.product.ce/META-INF/MANIFEST.MF +++ b/server/bundles/io.cloudbeaver.product.ce/META-INF/MANIFEST.MF @@ -5,7 +5,7 @@ Bundle-Name: Cloudbeaver Community Product Bundle-SymbolicName: io.cloudbeaver.product.ce;singleton:=true Bundle-Version: 25.1.1.qualifier Bundle-Release-Date: 20250616 -Bundle-RequiredExecutionEnvironment: JavaSE-17 +Bundle-RequiredExecutionEnvironment: JavaSE-21 Bundle-ActivationPolicy: lazy Bundle-ClassPath: . Require-Bundle: io.cloudbeaver.server.ce diff --git a/server/bundles/io.cloudbeaver.server.ce/META-INF/MANIFEST.MF b/server/bundles/io.cloudbeaver.server.ce/META-INF/MANIFEST.MF index 3b048fa4f0..a2be411bdc 100644 --- a/server/bundles/io.cloudbeaver.server.ce/META-INF/MANIFEST.MF +++ b/server/bundles/io.cloudbeaver.server.ce/META-INF/MANIFEST.MF @@ -5,7 +5,7 @@ Bundle-Name: Cloudbeaver CE Server Bundle-SymbolicName: io.cloudbeaver.server.ce;singleton:=true Bundle-Version: 25.1.1.qualifier Bundle-Release-Date: 20250616 -Bundle-RequiredExecutionEnvironment: JavaSE-17 +Bundle-RequiredExecutionEnvironment: JavaSE-21 Bundle-ActivationPolicy: lazy Bundle-Activator: io.cloudbeaver.server.CBPlatformActivator Bundle-ClassPath: . diff --git a/server/bundles/io.cloudbeaver.server/META-INF/MANIFEST.MF b/server/bundles/io.cloudbeaver.server/META-INF/MANIFEST.MF index 388568bcf9..a25cf5f83f 100644 --- a/server/bundles/io.cloudbeaver.server/META-INF/MANIFEST.MF +++ b/server/bundles/io.cloudbeaver.server/META-INF/MANIFEST.MF @@ -5,7 +5,7 @@ Bundle-Name: Cloudbeaver Web Server Bundle-SymbolicName: io.cloudbeaver.server;singleton:=true Bundle-Version: 25.1.1.qualifier Bundle-Release-Date: 20250616 -Bundle-RequiredExecutionEnvironment: JavaSE-17 +Bundle-RequiredExecutionEnvironment: JavaSE-21 Bundle-ActivationPolicy: lazy Bundle-ClassPath: . Require-Bundle: org.eclipse.core.runtime;visibility:=reexport, diff --git a/server/bundles/io.cloudbeaver.service.admin/META-INF/MANIFEST.MF b/server/bundles/io.cloudbeaver.service.admin/META-INF/MANIFEST.MF index ecb0f6c014..ac9a33f75a 100644 --- a/server/bundles/io.cloudbeaver.service.admin/META-INF/MANIFEST.MF +++ b/server/bundles/io.cloudbeaver.service.admin/META-INF/MANIFEST.MF @@ -5,7 +5,7 @@ Bundle-Name: Cloudbeaver Web Service - Administration Bundle-SymbolicName: io.cloudbeaver.service.admin;singleton:=true Bundle-Version: 1.0.123.qualifier Bundle-Release-Date: 20250616 -Bundle-RequiredExecutionEnvironment: JavaSE-17 +Bundle-RequiredExecutionEnvironment: JavaSE-21 Bundle-ActivationPolicy: lazy Bundle-ClassPath: . Require-Bundle: io.cloudbeaver.server.ce, diff --git a/server/bundles/io.cloudbeaver.service.auth/META-INF/MANIFEST.MF b/server/bundles/io.cloudbeaver.service.auth/META-INF/MANIFEST.MF index ef384a8e64..be7f8dc60e 100644 --- a/server/bundles/io.cloudbeaver.service.auth/META-INF/MANIFEST.MF +++ b/server/bundles/io.cloudbeaver.service.auth/META-INF/MANIFEST.MF @@ -5,7 +5,7 @@ Bundle-Name: Cloudbeaver Web Service - Authentication Bundle-SymbolicName: io.cloudbeaver.service.auth;singleton:=true Bundle-Version: 1.0.123.qualifier Bundle-Release-Date: 20250616 -Bundle-RequiredExecutionEnvironment: JavaSE-17 +Bundle-RequiredExecutionEnvironment: JavaSE-21 Bundle-ActivationPolicy: lazy Bundle-ClassPath: . Require-Bundle: io.cloudbeaver.server.ce diff --git a/server/bundles/io.cloudbeaver.service.data.transfer/META-INF/MANIFEST.MF b/server/bundles/io.cloudbeaver.service.data.transfer/META-INF/MANIFEST.MF index be887fc2d0..1d703220cb 100644 --- a/server/bundles/io.cloudbeaver.service.data.transfer/META-INF/MANIFEST.MF +++ b/server/bundles/io.cloudbeaver.service.data.transfer/META-INF/MANIFEST.MF @@ -5,7 +5,7 @@ Bundle-Name: Cloudbeaver Web Service - Data Transfer Bundle-SymbolicName: io.cloudbeaver.service.data.transfer;singleton:=true Bundle-Version: 1.0.124.qualifier Bundle-Release-Date: 20250616 -Bundle-RequiredExecutionEnvironment: JavaSE-17 +Bundle-RequiredExecutionEnvironment: JavaSE-21 Bundle-ActivationPolicy: lazy Bundle-ClassPath: . Require-Bundle: io.cloudbeaver.server.ce, diff --git a/server/bundles/io.cloudbeaver.service.fs/META-INF/MANIFEST.MF b/server/bundles/io.cloudbeaver.service.fs/META-INF/MANIFEST.MF index c863f36e52..23e4f7c78f 100644 --- a/server/bundles/io.cloudbeaver.service.fs/META-INF/MANIFEST.MF +++ b/server/bundles/io.cloudbeaver.service.fs/META-INF/MANIFEST.MF @@ -5,7 +5,7 @@ Bundle-Name: Cloudbeaver Web Service - File System Bundle-SymbolicName: io.cloudbeaver.service.fs;singleton:=true Bundle-Version: 1.0.41.qualifier Bundle-Release-Date: 20250616 -Bundle-RequiredExecutionEnvironment: JavaSE-17 +Bundle-RequiredExecutionEnvironment: JavaSE-21 Bundle-ActivationPolicy: lazy Bundle-ClassPath: . Require-Bundle: io.cloudbeaver.server.ce, diff --git a/server/bundles/io.cloudbeaver.service.ldap.auth/META-INF/MANIFEST.MF b/server/bundles/io.cloudbeaver.service.ldap.auth/META-INF/MANIFEST.MF index 9d91478523..85902664e4 100644 --- a/server/bundles/io.cloudbeaver.service.ldap.auth/META-INF/MANIFEST.MF +++ b/server/bundles/io.cloudbeaver.service.ldap.auth/META-INF/MANIFEST.MF @@ -5,7 +5,7 @@ Bundle-Vendor: DBeaver Corp Bundle-SymbolicName: io.cloudbeaver.service.ldap.auth;singleton:=true Bundle-Version: 1.0.6.qualifier Bundle-Release-Date: 20250616 -Bundle-RequiredExecutionEnvironment: JavaSE-17 +Bundle-RequiredExecutionEnvironment: JavaSE-21 Bundle-ActivationPolicy: lazy Bundle-ClassPath: . Require-Bundle: org.jkiss.dbeaver.model;visibility:=reexport, diff --git a/server/bundles/io.cloudbeaver.service.metadata/META-INF/MANIFEST.MF b/server/bundles/io.cloudbeaver.service.metadata/META-INF/MANIFEST.MF index b6eb557adb..36a9cbd2fa 100644 --- a/server/bundles/io.cloudbeaver.service.metadata/META-INF/MANIFEST.MF +++ b/server/bundles/io.cloudbeaver.service.metadata/META-INF/MANIFEST.MF @@ -5,7 +5,7 @@ Bundle-Name: Cloudbeaver Web Service - Metadata Bundle-SymbolicName: io.cloudbeaver.service.metadata;singleton:=true Bundle-Version: 1.0.127.qualifier Bundle-Release-Date: 20250616 -Bundle-RequiredExecutionEnvironment: JavaSE-17 +Bundle-RequiredExecutionEnvironment: JavaSE-21 Bundle-ActivationPolicy: lazy Bundle-ClassPath: . Require-Bundle: io.cloudbeaver.server diff --git a/server/bundles/io.cloudbeaver.service.rm.nio/META-INF/MANIFEST.MF b/server/bundles/io.cloudbeaver.service.rm.nio/META-INF/MANIFEST.MF index b097282625..0896886b9d 100644 --- a/server/bundles/io.cloudbeaver.service.rm.nio/META-INF/MANIFEST.MF +++ b/server/bundles/io.cloudbeaver.service.rm.nio/META-INF/MANIFEST.MF @@ -5,7 +5,7 @@ Bundle-Name: Cloudbeaver Resource manager NIO implementation Bundle-SymbolicName: io.cloudbeaver.service.rm.nio;singleton:=true Bundle-Version: 1.0.41.qualifier Bundle-Release-Date: 20250616 -Bundle-RequiredExecutionEnvironment: JavaSE-17 +Bundle-RequiredExecutionEnvironment: JavaSE-21 Bundle-ActivationPolicy: lazy Bundle-ClassPath: . Require-Bundle: io.cloudbeaver.model, diff --git a/server/bundles/io.cloudbeaver.service.rm/META-INF/MANIFEST.MF b/server/bundles/io.cloudbeaver.service.rm/META-INF/MANIFEST.MF index d0c84e1df5..3c3438a047 100644 --- a/server/bundles/io.cloudbeaver.service.rm/META-INF/MANIFEST.MF +++ b/server/bundles/io.cloudbeaver.service.rm/META-INF/MANIFEST.MF @@ -5,7 +5,7 @@ Bundle-Name: Cloudbeaver Web Service - Resource manager Bundle-SymbolicName: io.cloudbeaver.service.rm;singleton:=true Bundle-Version: 1.0.76.qualifier Bundle-Release-Date: 20250616 -Bundle-RequiredExecutionEnvironment: JavaSE-17 +Bundle-RequiredExecutionEnvironment: JavaSE-21 Bundle-ActivationPolicy: lazy Bundle-ClassPath: . Require-Bundle: io.cloudbeaver.server, diff --git a/server/bundles/io.cloudbeaver.service.security/META-INF/MANIFEST.MF b/server/bundles/io.cloudbeaver.service.security/META-INF/MANIFEST.MF index dcb2591742..46c1f9d0f0 100644 --- a/server/bundles/io.cloudbeaver.service.security/META-INF/MANIFEST.MF +++ b/server/bundles/io.cloudbeaver.service.security/META-INF/MANIFEST.MF @@ -5,7 +5,7 @@ Bundle-Vendor: DBeaver Corp Bundle-SymbolicName: io.cloudbeaver.service.security;singleton:=true Bundle-Version: 1.0.79.qualifier Bundle-Release-Date: 20250616 -Bundle-RequiredExecutionEnvironment: JavaSE-17 +Bundle-RequiredExecutionEnvironment: JavaSE-21 Bundle-ActivationPolicy: lazy Bundle-ClassPath: . Require-Bundle: org.jkiss.dbeaver.model;visibility:=reexport, diff --git a/server/bundles/io.cloudbeaver.slf4j/META-INF/MANIFEST.MF b/server/bundles/io.cloudbeaver.slf4j/META-INF/MANIFEST.MF index f59c1caa71..a3b9015053 100644 --- a/server/bundles/io.cloudbeaver.slf4j/META-INF/MANIFEST.MF +++ b/server/bundles/io.cloudbeaver.slf4j/META-INF/MANIFEST.MF @@ -5,7 +5,7 @@ Bundle-Name: CloudBeaver SLF4j Binding Bundle-SymbolicName: io.cloudbeaver.slf4j;singleton:=true Bundle-Version: 1.0.39.qualifier Bundle-Release-Date: 20250616 -Bundle-RequiredExecutionEnvironment: JavaSE-17 +Bundle-RequiredExecutionEnvironment: JavaSE-21 Bundle-ActivationPolicy: lazy Bundle-ClassPath: . Fragment-Host: slf4j.api diff --git a/server/test/io.cloudbeaver.test.platform/META-INF/MANIFEST.MF b/server/test/io.cloudbeaver.test.platform/META-INF/MANIFEST.MF index ed07586b4c..fb715b649b 100644 --- a/server/test/io.cloudbeaver.test.platform/META-INF/MANIFEST.MF +++ b/server/test/io.cloudbeaver.test.platform/META-INF/MANIFEST.MF @@ -5,7 +5,7 @@ Bundle-SymbolicName: io.cloudbeaver.test.platform Bundle-Version: 1.0.0.qualifier Bundle-Release-Date: 20220606 Bundle-Vendor: DBeaver Corp -Bundle-RequiredExecutionEnvironment: JavaSE-17 +Bundle-RequiredExecutionEnvironment: JavaSE-21 Bundle-ActivationPolicy: lazy Require-Bundle: org.eclipse.core.runtime, org.junit,