Compare commits

..
Author SHA1 Message Date
Wroud 438475a99c chore: editing draft 2025-05-30 22:19:04 +08:00
Wroud f967a20edf dbeaver/pro#5802 feat: table api 2025-05-29 19:41:38 +08:00
Serge Rider 5bc1734cb6 dbeaver/pro#5832 25.1.1 version bump 2025-05-27 19:37:07 +02:00
aba27cf9d3 dbeaver/pro#5711 Add validation for team id (#3459)
* dbeaver/pro#5711 Add validation for team id

* dbeaver/pro#5711 Add validation for user id

* dbeaver/pro#5711 add user name and team id validation

---------

Co-authored-by: naumov <iamemptyhuh@gmail.com>
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
2025-05-27 17:53:09 +02:00
sergeyteleshev a098db62c3 [CB] hotkeys with "/" and "\" dont work after hotkeys library version upgrade #5781 (#3478)
* dbeaver/pro#5781 fixes shortcuts with slashes symbols + correctly translates it in the shortcut tips section

* moves display logic in SHORCUTS_DATA helpers

* adds replace all for shorcuts to consider sequential shorcuts cases

* adds formatShortcutKeys helper

* removes useless code

* adds alt -> option conversion

* refactors formatKey logic to switch

* cleanup

* cleanup

* cleanup

* switch with lowerCaseCode

* moves shortcut helpers to core-utils + uses it everywhere

* Revert "moves shortcut helpers to core-utils + uses it everywhere"

This reverts commit b4eeda5adf.
2025-05-27 17:50:17 +02:00
c4886127a6 dbeaver/pro#5821 Style fixes (#3479)
* dbeaver/pro#5821 fix: add cursor pointer to icon button

* dbeaver/pro#5821 refactor: change view button type

* dbeaver/pro#5821 feat: add UiSpinner styles for theme integration

* dbeaver/pro#5821 fix: update button class

* dbeaver/pro#5821 fix: improve buttons in driver management

---------

Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2025-05-27 17:49:05 +02:00
Alexander Skoblikovandkseniaguzeeva 343d671575 dbeaver/pro#5778 custom certs folder in conf folder (#3477)
Co-authored-by: kseniaguzeeva <112612526+kseniaguzeeva@users.noreply.github.com>
2025-05-27 16:14:11 +02:00
AlexeyandEvgenia 06a0411f84 dbeaver/pro#5200 feat: fast connection / folder creation in the explorer (#3464)
* dbeaver/pro#5200 feat: fast connection / folder creation in the explorer

* chore: update icons

* chore: update icons

* chore: remove important from style

---------

Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
2025-05-27 21:33:23 +08:00
ffe3d45017 dbeaver/pro#5789 replace Buttons styles (#3468)
* dbeaver/pro#5789 refactor: add ButtonIcon component instead of Button.Icon

* dbeaver/pro#5789 refactor: button components across whole application to use UIKit button and UIKit variables

- Rewrite Button.css(former button.module.css) file to define button styles for better maintainability and scalability
- Added props to the Button component for Icons: 'size' and 'placement', currently used only in PropertiesTable (Add property)
- Changed button modifiers to 'variant' swapping unelevated mod to primary(default one, so mod just deleted) and outlined mod to variant secondary.
- In one case changed raised mod to danger variant (deleting a license)

* dbeaver/pro#5789 refactor: fix Button component styling and removed redundant css file

* dbeaver/pro#5789 style: clean up button formatting across multiple components

* dbeaver/pro#5789 refactor: update Tailwind CSS import to use layer directive

* dbeaver/pro#5789 refactor[kit]: add disabled state styles for buttons

* dbeaver/pro#5789 refactor: enhance button styles for disabled state

* dbeaver/pro#5789 fix button problems

* dbeaver/pro#5789 fix: change layer name from theme to base in color styles

* dbeaver/pro#5789 refactor: update button padding from 16px to 15px

* dbeaver/pro#5789 refactor: adjust button gap and update InputFiles button props

* dbeaver/pro#5789 style: center align button in SSHKeyUploader component

* dbeaver/pro#5789 fix: update button classes to use inline-flex for better alignment

* dbeaver/pro#5789 fix: remove initial background from tab styles

* dbeaver/pro#5789 fix: move cursor pointer rule to button container

* dbeaver/pro#5789 fix: update checkbox SVG fill property for proper rendering

* dbeaver/pro#5789 fix: add variant prop to Button component for styling options

* dbeaver/pro#5789 fix: add InlineEditor to CSS layer to compete with theme Important! border-color

* dbeaver/pro#5789 fix: add min-width to button styles for consistency

* dbeaver/pro#5789 refactor: adjust margin for trigger element in context menu

first of all it's done to fix autotests and the second reason is to visually balance the cell with menu

* dbeaver/pro#5789 fix: make boolean great again

---------

Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
Co-authored-by: kseniaguzeeva <112612526+kseniaguzeeva@users.noreply.github.com>
2025-05-27 16:59:01 +08:00
ElizabethandDiana 16005be3e6 dbeaver/dbeaver#37602 Add the setting for column names completion (#3474)
* dbeaver/dbeaver#37602 Add the setting for column names completion

* dbeaver/dbeaver#37602 Fix formatting

---------

Co-authored-by: Diana <31996417+uslss@users.noreply.github.com>
2025-05-27 06:20:47 +02:00
alexandEvgenia 005adb10ce dbeaver/pro#5215 track close event on layout close (#3472)
* dbeaver/pro#5215 track close event on layout close

* dbeaver/pro#5215 support old close behaviour

* dbeaver/pro#5215 add event data check to user form

* dbeaver/pro#5215 change naming

---------

Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
2025-05-27 00:39:06 +08:00
Sychev Andrey 0a7d9e6a25 dbeaver/pro#5814 fix: wrap checkbox styles in base layer (#3473)
* dbeaver/pro#5814 ашч: wrap checkbox styles in base layer

* dbeaver/pro#5814 style: wrap disabled styles in base layer
2025-05-26 21:24:09 +08:00
Ainur 0edfb29851 dbeaver/pro#5523 add reason for enable user log (#3463) 2025-05-26 08:31:34 +00:00
52f567fded dbeaver/pro#5553 Add Sorting functionality to base grid (#3456)
* dbeaver/pro#5553 feat: add column sorting functionality to DataGrid

* dbeaver/pro#5553 feat: enhance column sorting functionality to support multiple selection

* dbeaver/pro#5553 feat: add keyboard navigation to order button

* dbeaver/pro#5553 feat: add constraints handling logic for column sorting in DataGrid

* Revert "dbeaver/pro#5553 feat: add constraints handling logic for column sorting in DataGrid"

This reverts commit 6028a48b13.

* dbeaver/pro#5553 feat: add icon generation script to UIKit, add sample icons

* dbeaver/pro#5553 refactor: use inner react-data-grid API for column sorting

* dbeaver/pro#5553 feat: add IconCross component and update icon-related files

* dbeaver/pro#5553 feat: replace Button with IconButton in OrderButton component

* dbeaver/pro#5553 style: update foreground color variables for IconButton component

* dbeaver/pro#5553 refactor: add normalization rules to layers, use IconButton in Common DialogHeader

checked if new IconButton works well in light and dark mode by using in CommonDialogHeader

* dbeaver/pro#5553 style: format code and update dependencies in CommonDialogHeader and DataGridTable components

* dbeaver/pro#5553 style: move onColumnSort prop to correct position in DataGridTable component

* dbeaver/pro#5553 refactor: remove icons component generation, use svg sprite

* dbeaver/pro#5553 refactor: update OrderButton component and inline icons sprite in Body

we decided to go with this solution for now just adding icons to a sprite and use them by id. Imports by ?url  don't work in VSCode if try to use them in <use> href, so we need to find another solution or stick to that approach.

* dbeaver/pro#5553 refactor: update column sorting and sortable logic in DataGrid components

* dbeaver/pro#5553 style: format whitespace in Body component

* dbeaver/pro#5553 feat: add new sorting icons for ascending, descending, and unsorted states

* dbeaver/pro#5553 refactor:styling for header cell and order button components

* dbeaver/pro#5553 refactor: update sorting logic in DataGrid and OrderButton components

* dbeaver/pro#5553 refactor: value deps

* dbeaver/pro#5553 feat: update sorting icons for ascending, descending, and unsorted states

* dbeaver/pro#5553 style: update aria-label and title for OrderButton component

* dbeaver/pro#5553 fix: double focus

* dbeaver/pro#5553 fix: after merge

* dbeaver/pro#5553 refactor: removed outline offset for sort button

* dbeaver/pro#5553 refactor: update Tailwind CSS import to use layer directive

---------

Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
Co-authored-by: Alexey <wrouds@gmail.com>
2025-05-24 00:21:37 +08:00
Ainur 116b1a3be8 dbeaver/pro#5160 check length of meta param values (#3471) 2025-05-23 16:01:09 +02:00
AlexeyandDaria Marutkina 84cc6fcf60 dbeaver/pro#5753 feat: react-dnd (#3454)
* dbeaver/pro#5753 feat: react-dnd

* chore: fix after review

---------

Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2025-05-23 18:52:22 +08:00
1f4266ec95 dbeaver/pro#5745 [CB] Bump NPM dependencies #5745 (#3457)
* dbeaver/pro#5745 updates frontend deps

* updates graphql-request

* updates yarn locks for common-typescript, common-react

* updates engines node version

* react-hotkeys-hook + fixes hotkeys so it continues to work

* code cleanup for parseHotKey

* uses fixed version of tailwindcss

* adds 4.0.6 versions for tailwindcss with resolutions

* reverts tailwind 4.0.6 version for yarn.lock

* removes redundant resolutions for tailwindcss

* Update readme.md with new NodeJS version

* Update README.md with correct nodejs version according to our documentation

* updates talewindcss version 4.0.7

* fix: hotkeys types

---------

Co-authored-by: Wroud <wrouds@gmail.com>
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
2025-05-23 17:31:13 +08:00
Alexey c85b3ccd24 dbeaver/pro#5779 fix: external app plugin naming (#3467) 2025-05-22 17:05:18 +02:00
Ruslan MusaevandEvgenia 7687943ecf dbeaver/pro#5649 Do not send update event if a user teams are same (#3453)
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
2025-05-22 11:14:21 +02:00
alexandEvgenia 587d25bb40 dbeaver/pro#5709 close panel before deleting user (#3458)
* dbeaver/pro#5709 close panel before deleting user

* dbeaver/pro#5709 bump licence year

* dbeaver/pro#5709 remove unnecessary resource hook

* dbeaver/pro#5709 remove unused import

---------

Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
2025-05-22 16:48:42 +08:00
5561d37ce8 dbeaver/pro#4888 Ldap support ssl (#3438)
* dbeaver/pro#4888 Ldap support ssl

* dbeaver/pro#4888 Ldap support ssl

* dbeaver/pro#4888 Ldap support ssl

* dbeaver/pro#4888 Ldap support ssl

* dbeaver/pro#4888 fix connection on TE

* dbeaver/pro#4888 ldaps fix

* fix: check configuration id for auth token

* dbeaver/pro#4888 one authentication per provider and configuration

* dbeaver/pro#4888 one authentication per provider and configuration

* Revert "fix: check configuration id for auth token"

This reverts commit 517cc717a8.

---------

Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
Co-authored-by: Wroud <wrouds@gmail.com>
2025-05-21 12:26:11 +02:00
alexandkseniaguzeeva fffbea22af dbeaver/pro#5458 add toggleDisabled setting (#3455)
* dbeaver/pro#5458 add toggleDisabled setting

* dbeaver/pro#5458 change setting name

---------

Co-authored-by: kseniaguzeeva <112612526+kseniaguzeeva@users.noreply.github.com>
2025-05-21 17:39:50 +08:00
Ainur 934d45617a dbeaver/pro#4372 add new attribute for a property group (#3461) 2025-05-20 18:13:38 +02:00
Ainur ccb6f2208c dbeaver/pro#5404 add complex auth servlet handler (#3418) 2025-05-20 14:33:40 +00:00
alexandDaria Marutkina d9e4383b22 dbeaver/pro#5382 fallback undefined to false (#3452)
* dbeaver/pro#5382 fallback undefined to false

* dbeaver/pro#5382 bump year

---------

Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2025-05-20 16:34:18 +08:00
Ruslan MusaevandEvgenia cbd8458776 dbeaver/pro#5638 Multi team mapping (#3441)
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
2025-05-20 10:32:59 +02:00
Ruslan MusaevandEvgenia 3352b66a26 dbeaver/pro#5694 Fix auth providers init (#3442)
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
2025-05-20 10:32:27 +02:00
Ruslan MusaevandEvgenia 9b5ceed501 dbeaver/pro#5693 Fix ldap bruteforce protection (#3446)
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
2025-05-20 10:32:02 +02:00
alexandDaria Marutkina 3687a0807d dbeaver/pro#5678 use new api command (#3440)
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2025-05-19 15:29:30 +02:00
sergeyteleshevandDaria Marutkina bda9966330 dbeaver/pro#5561 removes tiny style from checkboxes for AuthModelCredentialsForm (#3445)
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2025-05-19 19:39:19 +08:00
Sychev Andreyandmr-anton-t f0be7b6af6 dbeaver/pro#5554 [CB] [UI kit] create IconButton component (#3424)
* dbeaver/pro#5554 feat: first iteration of IconButton

* dbeaver/pro#5554 refactor: css var changes

* dbeaver/pro#5554 feat: add loading state to IconButton component

* dbeaver/pro#5554 style: update background color for loading state in IconButton

* dbeaver/pro#5554 feat: separate icon button styles and loader variables

* dbeaver/pro#5554 refactor: extract ButtonRoot component to use as a base for Button and IconButton components

That approach lets us use common logic (loading) but don't mixup styles and tokens and have better control

* dbeaver/pro#5554 refactor: update loading state styles for IconButton component

* dbeaver/pro#5554 refactor: ButtonRootProps

* dbeaver/pro#5554 refactor: remove opacity from loading state in Button and IconButton components

* dbeaver/pro#5554 refactor: create content wrapper, move general styles there, add loader wrapper

---------

Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
2025-05-19 19:38:30 +08:00
serge-rider 3b0f0ddf1e Merge branch 'devel' of https://github.com/dbeaver/cloudbeaver into devel 2025-05-19 11:44:14 +02:00
serge-rider 85526b45dd Revert "dbeaver/dbeaver#37928 Downgrade ClickHouse driver to 0.7.2 (#3447)"
This reverts commit 7a48102df4.
2025-05-19 11:42:15 +02:00
Daria Marutkina a6a7aeb97f dbeaver/pro#5684 Update README file (#3451)
* dbeaver/pro#5684 Update README file
2025-05-19 11:14:21 +02:00
serge-rider edf54d3b72 dbeaver/pro#5668 Annotations 2025-05-18 10:07:17 +02:00
ShadelessFox 7a48102df4 dbeaver/dbeaver#37928 Downgrade ClickHouse driver to 0.7.2 (#3447) 2025-05-17 05:14:19 +02:00
Ruslan Musaev a16d03d5a6 dbeaver/pro#5695 Revert "Add Driver for Databend (#3174)" (#3443) 2025-05-15 11:12:01 +02:00
serge-rider 8410df4fa9 dbeaver/pro#5684 25.1.0 version bump 2025-05-13 19:23:55 +02:00
295fcf8701 dbeaver/pro#5087 feat: gql api (#3400)
* dbeaver/pro#5087 Add role settings

* dbeaver/pro#5087 feat: gql api

* dbeaver/pro#5087 feat: gql api

* dbeaver/pro#5087 Add role settings

* feat: user role settings

* chore: add tailwind intellisense

* chore: remove mock data

* dbeaver/pro#5087 Add role settings

* dbeaver/pro#5087 Add role settings

* dbeaver/pro#5087 Add role settings

* fix: update roles enum

* feat: settings restore and set status

* dbeaver/pro#5087 fix roles

* chore: hide single settings tab, allow reset for settings that doesn't support full reset

* chore: remove `isSet` method from settings API

* refactor: extract repeatable logic

* chore: add server setting

* chore: better settings grouping

* dbeaver/pro#5087 fixes

* fix: review

* chore: remove roles related code

* chore: hide spreadsheet hiding setting

* dbeaver/pro#5087 Removed everything related with authRole

* chore: hide some settings from UI

* chore: hide per-setting reset

* fix: selecting empty settings groups

---------

Co-authored-by: Ruslan <pupkinvasya7000@gmail.com>
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
2025-05-14 00:01:08 +08:00
Ruslan MusaevandDaria Marutkina ba4f1c9db7 Dbeaver/pro#5652 add security to endpoints (#3435)
* dbeaver/pro#5652 add security to endpoints

* dbeaver/pro#5652 add security to endpoints

---------

Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2025-05-13 23:59:39 +08:00
Sychev AndreyandDaria Marutkina bde5c93740 dbeaver/pro#5599 refactor: simplify manualChunks function (#3436)
* dbeaver/pro#5599 refactor: simplify manualChunks function by removing async and circular dependency check

* Revert "dbeaver/pro#5599 refactor: simplify manualChunks function by removing async and circular dependency check"

This reverts commit a8faed50fa.

* dbeaver/pro#5599 fix: configure Vite to prevent CSS code splitting

* dbeaver/pro#5599 refactor: move splitting setting to plugin, add comment

---------

Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2025-05-13 20:49:39 +08:00
Pat BuxtonandDaria Marutkina 2421e4806a dbeaver/cloudbeaver#3174 Add Driver for Databend (#3175)
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2025-05-13 12:59:02 +02:00
27a9cf3d58 dbeaver/pro#4958 Add default catalog and default schema (#3420)
* dbeaver/pro#4958 Add default catalog and default schema

* dbeaver/pro#4958 add catalog and schema

* dbeaver/pro#4958 remove field duplication

---------

Co-authored-by: naumov <iamemptyhuh@gmail.com>
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2025-05-13 12:56:12 +02:00
sergeyteleshev cddbb1c876 dbeaver/pro#5377 adds redownload button for drivers installation (#3432) 2025-05-12 22:21:42 +08:00
sergeyteleshevandEvgenia 2ab9d2f450 dbeaver/pro#5405 adds autosave for scripts (#3427)
* dbeaver/pro#5405 adds autosave for scripts

* fixes russian locale

---------

Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
2025-05-12 22:21:21 +08:00
alex 750d66c4ae dbeaver/pro#4405 return version update styles (#3434)
* dbeaver/pro#4405 return version update styles

* dbeaver/pro#4405 fix styles in docker instruction
2025-05-12 22:21:04 +08:00
Ainur 844c01dc75 Revert "dbeaver/pro#5214 get timestamp with calendar fix (#3423)" (#3431)
* Revert "dbeaver/pro#5214 get timestamp with calendar fix (#3423)"

This reverts commit 7b0c6ebe66.

* Revert "dbeaver/pro#5214 set timestamp with utc calendar fix (#3404)"

This reverts commit 0095cc8d37.
2025-05-08 16:25:14 +02:00
154082e6bd vietnamese-localization (#3395)
* vietnamese-localization

* dbeaver/pro#3395 remove extra files

* dbeaver/pro#3395 remove tokens duplication

* dbeaver/pro#3395 fix formatting

* dbeaver/pro#3395 add locale on the backend

* dbeaver/pro#3395 add hardcoded ordering

---------

Co-authored-by: hanhvd <hanhvd@gmail.com>
Co-authored-by: naumov <iamemptyhuh@gmail.com>
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
Co-authored-by: Ainur <ainur.iagudin@dbeaver.com>
2025-05-08 16:21:35 +02:00
sergeyteleshevandDaria Marutkina 5d90858fa3 prevents default behavior if shortcut executed in it is own scope #3402 (#3417)
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2025-05-08 14:43:10 +02:00
Sychev AndreyandEvgenia 0ae505fd32 dbeaver/pro#5497 fix: update disabled state logic in BooleanFormatter (#3425)
* dbeaver/pro#5497 fix: update disabled state logic in BooleanFormatter

* dbeaver/pro#5497 style: format disabled state logic

---------

Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
2025-05-08 19:34:39 +08:00
AinurandDaria Marutkina 7b0c6ebe66 dbeaver/pro#5214 get timestamp with calendar fix (#3423)
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2025-05-08 11:50:02 +02:00
Sychev AndreyandDaria Marutkina 591083435d 5490 cb create spinner UI kit component (#3415)
* #5490 feat: create basic spin component

* #5490 refactor: use new Spin component in button loading state

* #5490 refactor: add tokens to Spin component

add SpecialLoader story to show how to change Spin appearance for special use cases

* #5490 fix: reverts f4d9b6b101

Element should not get focus visible after mouse interactions

* 5490 fix: lost dash

* #5490 refactor: rename Spin to Spinner

---------

Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2025-05-07 16:23:06 +02:00
d23959a9b5 dbeaver/pro#5460 Add redirect field to provider creation form (#3409)
Co-authored-by: naumov <iamemptyhuh@gmail.com>
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2025-05-07 15:33:36 +02:00
Ruslan MusaevandEvgenia 1799768389 dbeaver/pro#5542 change ldap uuid to cn or login (#3410)
* dbeaver/pro#5542 change ldap uuid to cn or login

* dbeaver/pro#5542 fixes

* dbeaver/pro#5542 fixes

---------

Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
2025-05-07 15:14:18 +02:00
Alexey 250547f329 dbeaver/cloudbeaver#3402 fix: yarn.lock (#3422) 2025-05-07 16:10:58 +08:00
Georgii 4f52c445fc dbeaver/pro#4075 fix naming (#3416)
* dbeaver/pro#4075 fix naming

* dbeaver/pro#4075 fix rmnio

* dbeaver/pro#4075 fix test launch

* dbeaver/pro#4075 fix test launch
2025-05-06 20:48:40 +02:00
0c70890258 dbeaver/pro#4066 run cli client from launcher, add cli server to CB (#3352)
* dbeaver/pro#4066 run cli client from launcher, add cli server to CB

* dbeaver/pro#4066 special scripts to execute cli commands

---------

Co-authored-by: Serge Rider <serge@jkiss.org>
Co-authored-by: kseniaguzeeva <112612526+kseniaguzeeva@users.noreply.github.com>
2025-05-06 20:47:36 +02:00
Sychev AndreyandAlexey bc656de886 #3389 docs: update cb webapp readme (#3399)
* #3389 docs: update cb webapp readme

* #3389 docs: add part about node.js

* #3389 docs: add section about VSCode

* #3389 docs: add OS-specific instructions

---------

Co-authored-by: Alexey <wrouds@gmail.com>
2025-05-06 23:06:37 +08:00
alexandDaria Marutkina fb6e6f6f13 dbeaver/pro#5593 move property value getter to common place (#3414)
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2025-05-06 22:26:19 +08:00
a0d79ff9b1 dbeaver/pro#5480 Fixed unauthorized access to ldap (#3381)
* dbeaver/pro#5480 Fixed unauthorized access to ldap

* dbeaver/pro#5480 Unauthorized attempt to fetch ldaps groups

* dbeaver/pro#5480 unauthorize attempt to fetch ldaps groups

---------

Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
Co-authored-by: mayer <57711367+mayerro@users.noreply.github.com>
2025-05-06 14:25:06 +02:00
f5dfd8726a dbeaver/pro#5312 chore: update typescript sdk (#3407)
* dbeaver/pro#5312 chore: update typescript sdk

* dbeaver/pro#5312 chore: update eslint config

* dbeaver/pro#5312 chore: delete unused file

* dbeaver/pro#5572 remove deprecated annotations (#3405)

* Markup fix (#3408)

* dbeaver/pro#5588 25.0.5 version bump

* #5509 fix: checkbox doesn't get focused on click (#3406)

* dbeaver/pro#5588 Update README file (#3412)

---------

Co-authored-by: Alexander Skoblikov <aleksandr.skoblikov@dbeaver.com>
Co-authored-by: Serge Rider <serge@jkiss.org>
Co-authored-by: serge-rider <serge@dbeaver.com>
Co-authored-by: Sychev Andrey <44414066+SychevAndrey@users.noreply.github.com>
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2025-05-06 18:09:45 +08:00
AinurandDaria Marutkina 0095cc8d37 dbeaver/pro#5214 set timestamp with utc calendar fix (#3404)
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2025-05-06 10:04:00 +02:00
Daria Marutkina 16fcc21346 dbeaver/pro#5588 Update README file (#3412) 2025-05-05 11:27:23 +02:00
Sychev Andrey f5e4f14159 #5509 fix: checkbox doesn't get focused on click (#3406) 2025-05-05 15:24:34 +08:00
serge-rider 0c1d47ef10 dbeaver/pro#5588 25.0.5 version bump 2025-05-05 07:33:25 +02:00
Serge Rider 2d82e85491 Markup fix (#3408) 2025-04-30 12:27:09 +02:00
Alexander Skoblikov 87e9c79e43 dbeaver/pro#5572 remove deprecated annotations (#3405) 2025-04-30 08:31:20 +00:00
Serge Rider c3042d5aa4 dbeaver/pro#5588 25.0.5 version bump 2025-04-29 19:43:34 +02:00
Ruslan Musaev d06575af9c dbeaver/pro#5249 Migrate authUpdateStatus to websocket (#3369) 2025-04-29 16:36:55 +00:00
Ainur 90eb0520a7 CB-3798 poc api for visibility of properties (#3311) 2025-04-29 14:54:03 +00:00
ShadelessFox dd2869f4bd dbeaver/dbeaver#37727 Update Clickhouse driver to 0.8.5 (#3401) 2025-04-29 14:41:10 +02:00
07e0c63b6a #5362 refactor: move blob formatter to shared codebase (#3374)
* #5362 refactor: move blob formatter to shared codebase

* #5362 refactor: remove value prop from BlobFormatter

* #5362 refactor: move some of result set value checkers to common

* #5362 feat: update some result set api methods

make value type for safe using unknown instead of any,
added string fallback representation for complex values

* fix: getStringFallbackForComplexValue

* #5362 fix: getStringFallbackForComplexValue always cast to string

* #5362 fix: format

* #5362 chore: update deps

* #5362 fix: double imports

* #5362 fix: yarn lock

* chore: update yarn

* fix: reset yarn lock to devel state

* #5362 ci: change chunking

Previous implementation couldn't handle cyclic dependencies correctly. We noticed it in that ticket because we started to move some logic to common packages and changed existing packages connections. I tried many options to organize chunks from very simple(just putting everything to one bundle) to very complex(by adding helper to find circular deps between modules and putting them to one chunk) but none of them looked ideal. Complex solution is prone to errors, especially with vendor packages. I find this solution at least bearable until Vite ships Rolldown, then we can rethink it one more time.

* #5362 fix: arrow-body-style

* fix: improve chunk splitting

---------

Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
Co-authored-by: Wroud <wrouds@gmail.com>
Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
2025-04-29 16:39:06 +08:00
alexandmr-anton-t 4253c640cf dbeaver/pro#5550 fallback to checked state first (#3398)
* dbeaver/pro#5550 fallback to checked state first

* dbeaver/pro#5550 check for boolean type

---------

Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
2025-04-28 14:49:30 +08:00
alexandEvgenia 298ce286f1 dbeaver/pro#5406 use more specific resource (#3397)
* dbeaver/pro#5406 use more specific resource

* dbeaver/pro#5406 use new resource to get flag

---------

Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
2025-04-25 21:21:51 +08:00
34c377a17e dbeaver/pro#5438 case-insensitive ws headers (#3393)
* dbeaver/pro#5438 case-insensitive ws headers

* dbeaver/pro#5438 update ping timeout

---------

Co-authored-by: kseniaguzeeva <112612526+kseniaguzeeva@users.noreply.github.com>
Co-authored-by: MashaKorax <84867187+MashaKorax@users.noreply.github.com>
2025-04-25 11:59:13 +02:00
9551beca7a CB-5465 fixes checkbox defaultChecked wrong behavior (#3384)
* CB-5465 fixes checkbox defaultChecked wrong behavior

* fix: after review

---------

Co-authored-by: sergeyteleshev <iamsergeyteleshev@gmail.com>
Co-authored-by: Wroud <wrouds@gmail.com>
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2025-04-24 12:56:56 +02:00
dfbb2846a5 Dbeaver/pro#5168 avoid leakage of lincense (#3343)
* dbeaver/pro#5168 avoid leakage of license

* dbeaver/pro#5168 avoid leakage of license

* dbeaver/pro#5168 avoid leakage of license

* dbeaver/pro#5168 avoid leakage of license

* CB-5168 fix schema

* [#113] Add clsx dependency to UI kit (#3335)

* chore: add clsx dependency to ui-kit

* chore: import clsx from ui-kit

* refactor: use clsx for class management in Button

* refactor: use clsx in Checkbox

* refactor: use clsx in Input component

* feat: use clsx in radio and radiogroup

* feat: use clsx in Select component

* feat: reexport VisuallyHidden and Focus trap components from ariakit

* CB-5839 fix: resource blocking (#3199)

* CB-5839 fix: resource blocking

* CB-5839 fix: unlock nav resources

* fix: connections loading

* feat: select new folder or connection

* chore: localization

* chore: revert improvements

* fix: load connections list for connection selector

* fix: error

* fix: wrong action handler

* CB-5839 fix: resources tree validation

* fix: reaction concurrency

* CB-5839 fixes build for new CellFormatter (ObjectMenuCell) after merge conflicts

* СB-5839 changes delay for menu item loaders

* CB-5839 fix: keys intersection detection in resources

* CB-5839 fix: keys intersection detection in resources

---------

Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
Co-authored-by: sergeyteleshev <iamsergeyteleshev@gmail.com>
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>

* CB-6308 fix: grid auto-size (#3298)

* CB-6308 fix: grid auto-size

* CB-6308 fix: grid auto size

* CB-6308 fix: icons sizing in grid

* CB-6308 fix: grid header

* CB-6308 fix: types

* fix: min-width for columns

---------

Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>

* CB 6296 Delete row shortcut not working (#3340)

* CB-6296 fix: delete keystroke marks selected row for deletion

* CB-6296 fix: focus first element on load, remove extra handler

It was noticed that just after the open, onKeyDown event doesn't reach DataGrid, because focus was not in sync with lib.
Also fixes CB-6229 since they have the same root problem with encountered bag

* CB-6286 refactor: change onCellKeyDown handler interface inside DataGridProps

* CB-6296 refactor: set initial focus differently

* CB-6296 refactor: remove manual scroll control

We use grid inner scrollToCell method and don't need additional native scrolling

* refactor: don't expose inner data-grid type

---------

Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
Co-authored-by: Alexey <wrouds@gmail.com>

* CB-5168 fix

* CB-5168 fix schema

* dbeaver#pro5168 hide product config for anonym

* dbeaver/pro#5168 avoid leakage of lincense

* dbeaver/pro#5168 avoid leakage of lincense

* dbeaver/pro#5168 avoid leakage of lincense

---------

Co-authored-by: Sychev Andrey <44414066+SychevAndrey@users.noreply.github.com>
Co-authored-by: Alexey <wrouds@gmail.com>
Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
Co-authored-by: sergeyteleshev <iamsergeyteleshev@gmail.com>
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
Co-authored-by: naumov <iamemptyhuh@gmail.com>
2025-04-24 12:55:53 +02:00
873861c759 CB-5774 add connection brute force protection (#3337)
* CB-5774 add connection brute force protection

* CB-5774 api for additional info of disabled user

* CB-5774 fix deserialization

* CB-5574 adds disabled user info in editing user form

* CB-5774 save all connect errors to db

* CB-5774 resolve conflicts

* CB-5774 resolve conflicts

* CB-5574 fixes userId

* CB-5774 fix fetch user and test

* CB-5774 resolve conflicts

* CB-5774 handle brute force on desktop

* CB-5774 fix send event for killing user sessions

* CB-5774 build fix

---------

Co-authored-by: sergeyteleshev <iamsergeyteleshev@gmail.com>
Co-authored-by: kseniaguzeeva <112612526+kseniaguzeeva@users.noreply.github.com>
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
Co-authored-by: Wroud <wrouds@gmail.com>
2025-04-23 14:08:23 +02:00
d4e8329528 CB-5790 remove template plugin (#3339)
* CB-5790 remove template plugin

* dbeaver/pro#5038 Remove connection template

* CB-5790 update yarn lock

* CB-5790 fix

* CB-5790 remove templates

* CB-5790 remove template field from fragment

* CB-5790 return access tab

---------

Co-authored-by: Ruslan <pupkinvasya7000@gmail.com>
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
2025-04-23 12:34:53 +02:00
Alexey 08346ebc12 dbeaver/pro#5494 feat: refactor tests (#3388)
* dbeaver/pro#5494 feat: refactor tests

* chore: update yarn.lock

* chore: strict build script

* fix: review
2025-04-23 18:18:13 +08:00
d093301983 dbeaver/pro#4245 avoid workspace not initialized warning spam (#3353)
* dbeaver/pro#4245 avoid workspace not initialized warning spam

* dbeaver/pro#4245 use workpsace path from app

* dbeaver/pro#4245 avoid workspace not initialized warning spam

* dbeaver/pro#4245 use workpsace path from app

---------

Co-authored-by: Serge Rider <serge@jkiss.org>
Co-authored-by: MashaKorax <84867187+MashaKorax@users.noreply.github.com>
2025-04-22 17:56:50 +02:00
Daria Marutkina 8dcc92f7b6 dbeaver/pro#5485 Update README file (#3391) 2025-04-22 09:26:22 +03:00
Serge Rider d29550667b dbeaver/pro#5503 OSGI manifests fix 2025-04-17 17:58:57 +02:00
mayerro 3c2e4fb646 removed wget from java-base-image 2025-04-17 11:27:42 +02:00
alex f286926526 dbeaver/pro#4412 remove license files from locales (#3385) 2025-04-17 16:52:42 +08:00
Alexey 9dc0863e3a dbeaver/pro#5417 feat: table statistics (#3383) 2025-04-16 22:50:16 +08:00
63f31d0a08 Cb 6160 ldap user provisioning (#3354)
* CB-6160 ldap user provisioning

* CB-6160 ldap user provisioning

* CB-6160 ldap user provisioning

* CB-6160 ldap provisioning

* CB-6160-ldap-user-provisioning

* CB-6160 ldap user provisioning

* CB-6160 ldap user provisioning

* CB-6160 ldap user provisioning

* CB-6160 ldap user provisioning

* CB-6160 ldap user provisioning

* CB-6160 ldap user provisioning

* CB-6160 ldap user provisioning

* CB-6160 ldap user provisioning. Added copyrights

---------

Co-authored-by: sergeyteleshev <iamsergeyteleshev@gmail.com>
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
2025-04-16 12:18:15 +02:00
Serge Rider 8bce3f2357 dbeaver/pro#5485 25.0.4 version bump 2025-04-15 19:02:17 +02:00
f06b769cfc Dbeaver/pro#5141 improve logging (#3367)
* dbeaver/pro#5141 Improve logging

* dbeaver/pro#5141 Improve logging

* dbeaver/pro#5141 improve logging

* dbeaver/pro#5141 improve logging

* dbeaver/pro#5141 improve logging

---------

Co-authored-by: kseniaguzeeva <112612526+kseniaguzeeva@users.noreply.github.com>
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2025-04-15 18:10:53 +02:00
Anastasiya 2aca70043e dbeaver/pro#4266 fix templates (#3380)
* dbeaver/pro#4266 Update tickets templates, add config file

* dbeaver/pro#4266 remove Feature commit
2025-04-15 15:01:00 +02:00
Alexander Skoblikov bcbaae3fb4 dbeaver/pro#4353 shutdown executor service (#3332) 2025-04-15 12:16:45 +00:00
AinurandDaria Marutkina bc4d83cbbb dbeaver/pro#5473 show only error message for driver properties (#3378)
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2025-04-15 13:50:28 +02:00
alexandDaria Marutkina dd1947beaa dbeaver/pro#5255 scroll into view only if there is a cursor and (#3376)
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2025-04-15 18:39:18 +08:00
sergeyteleshevandmr-anton-t 4aa6ccf495 CB-5472 adds to chunks files from lib directory (#3377)
Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
2025-04-15 16:43:42 +08:00
4dd8ddbefd CB-4067 Migrate Connection form to form template (#3288)
* CB-4067 adds connection form state, service and options part

* CB-4067 adds connection origin info tab to new form

* CB-4067 adds SSH part

* CB-4067 adds driver properties part

* CB-4067 changes driverId and submitType location for connection form

* CB-4067 adds SSL part

* CB-4067 adds connection form access part

* CB-4067 uses new form parts for connection form

* CB-4067 resets form on open

* CB-4067 fixes configure case for connection form

* CB-4067 adds selected driver on edit mode form

* CB-4067 reloads form when it is needed

* CB-4067 adds button actions for the form

* CB-4067 adds notifications on form save/error

* CB-4067 fixes form ssl saving and driver properties

* CB-4067 refactors some parts

* CB-4067 refactors form options part so it works fine

* CB-4067 fixes driver properties part

* CB-4067 fixes SSH part

* CB-4067 fixes SSL part

* CB-4067 fixes Access part

* CB-4067 refactors origin tab

* CB-4067 refactors shared credentials part

* CB-4067 fixes: secret providers, SSH, SSL, test - features

* CB-4067 removes refactor postfix for new state, service and types

* CB-4067 fixes connection test

* CB-4067 cleanup

* CB-4067 gets back ask credentials window and removes connectionCredentialsStateContext

* CB-4067 adds translation to test connection success message

* CB-4067 fixes ssh and ssl adding to networkHandlers. also fixes extra request for driver properties

* CB-4067 fixes host and port for switching connections

* CB-4067 removes redundant code

* CB-4067 fixes exception error on retest connection + fixes SSH field key saved incorrect prop

* CB-4067 cleanup testContext info

* CB-4076 fixes SSH and SSL ask credentials and parameters saving for both: test and submit connection create/edit action

* CB-4067 fixes access tab reminder

* CB-4067 fixes handling of info message for cloud connection origin tabs

* CB-4067 fixes checkboxes behavior for TE shared credentials feature

* CB-4067 fixes create connection template popup SSH form

* CB-4067 fixes notification for closing ask credentials popup if before we had an error of test submit

* CB-6115 adds dispose API for forms

* CB-6115 adds git workspace helper extension for repo recommendations

* CB-4067 cleanup

* CB-6115 pr fixes

* CB-4067 gets back behavior with dispose connection form state

* CB-4067 cleanup

* СB-4067 splits states to ui and form part in access form part

* СB-4067 pr fixes

* CB-4067 removes config from form state

* CB-4067 removes console warnings + clean up

* CB-4067 moves synchronization mechanisms from ConnectionFormState to ConnectionOptionsFormPart

* CB-4067 fixes bug with incorrect host or port during search or changing driverId during connection creation

* CB-4067 fixes opening connection forms from different entry points so it shows consistent initial data

* СB-4067 brings back saving the form

* CB-4067 fixes logic of showing popup askCredentials

* CB-4067 fixes origin tab name so it shows correctly + fixes unneeded loaders of resources

* CB-4067 reverts isOutdated

* CB-4067 fixes loading of driver properties

* CB-4067 cleanup for connection access part

* Revert "CB-4067 reverts isOutdated"

This reverts commit ecb195ee2a.

* CB-4067 adds isOutdated to the parts

* CB-4067 fixes origin tab info message

* CB-4067 fixes driver properties state + origin info status message shows on load

* CB-4067 fixes password autofill during form save

* CB-4067 fixes linter

* CB-4067 fixes linter

* CB-4067 cleanup + fixes bug with search database host,name fields

* CB-4067 linter fix

* CB-4067 pr fixes

* CB-4067 removes unused post handler for formstate loaded task

* CB-4067 small pr fixes

* CB-4067 adds setDriver + handles name autocomplete

* chore: review

* CB-4067 connection part correct loading

* CB-4067 adds formState.state.connectionId default value

* refactor: pr review

* CB-4067 fixes bug with infinite loading of the origin info details

* CB-4067 fix: allows askCredentials to edit fields + does not affects part state

* CB-4067 resets driver properties if changed driverId

* CB-4067 updates yarn lock for common-react

* CB-4067 lint fix

* CB-6265 fix: do not include index files for import/export eslint rules

* CB-4067 fixes behavior for aksCredentials so it acts correctly during testing/saving/editing inputs for the form

* CB-4067 cleanup

* CB-4067 fixes connection templates initial loaded state

* CB-4067 pr fixes: dialog credentials; adds todo to the ssh tab; eslint revert; cleanup

* CB-4067 makes askCredentials to be part state independent

* CB-4067 qa fixes: test translation + removes db name form connection name

* CB-4067 adds readonly state for connection form

* CB-4067 fixes application freezes on disconnect

* CB-4067 fixes empty properties when switching cloud connections

* CB-4067 connection is created -> connection was created

* CB-4067 connection is updated -> connection was updated

* CB-4067 fixes outdated logic for parts

* CB-4067 build fix

* CB-4067 fix: do not show askCredential popup for drivers with only anonymous access

* CB-4067 removes includeCredentialsSaved

* CB-4067 removes includeAuthProperties

* CB-4067 removes customIncludeOptions

* CB-4067 removes includeProperties

* CB-4067 removes includeProviderProperties

* CB-4067 removes includeNetworkHandlers

* CB-4067 refactors isOutdated for originInfoPart and AccessPart

* CB-4067 removes savedCredentials resource + updates CustomOptionsResource + reuses new include resources in connection form components

* CB-4067 reverts spreading of new connectionInfoResources

* CB-4067 fixes sharedCreds checkbox default value on form switch

* CB-4067 closes connection form when layout closes

* CB-4067 disposes connection form on change

* CB-4067 handles closing of the connection form correctly

* Revert "CB-4067 handles closing of the connection form correctly"

This reverts commit 3a6f1a6a0a.

* CB-4067 handles closing of the connection form correctly [2]

* CB-4067 fits info messages in one line

* CB-4067 presaves isChanged state for form part before applying initialState to prevent bugs

* CB-4067 fixes length of the error message for connection form top bar

---------

Co-authored-by: Alexey <wrouds@gmail.com>
Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2025-04-15 00:35:27 +08:00
08e6d9631f dbeaver/pro#5440 feat: display boolean as checkbox in grid (#3372)
* dbeaver/pro#5440 feat: display boolean as checkbox in grid

* #5440 refactor: make checkboxes disabled inside grid

It's a very strange UX when checkbox is inside a cell of a table and behaves like a real one. It's much more expected when only cell takes focus and checkbox only represents the value in a way we want without acting like a real input. Moreover, using Focusable component enables smooth toggling between all 3 states of a boolean cell from a keyboard.

* #5440 fix: remove inline padding

* #5440 feat: add hover effect for boolean formatter

* #5440 refactor: revert full width

* #5440 refactor: split onClick and onKeyDown interfaces

* #5440 fix: return onClick

---------

Co-authored-by: Andrey Sychev <nukemoore@gmail.com>
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
2025-04-14 22:42:44 +08:00
sergeyteleshev 143cbb0d88 Cb 6265 Return front unit tests after migration (#3338)
* СB-6265 sets up vitest instead of jest

* CB-6265 gets back core-utils tests

* СB-6265 gets back react-testing-library tests

* СB-6265 gets back some tests from another plugins

* CB-6265 renames dist -> lib in each plugin + removes all jest from the repo

* CB-6265 disables watch mode so build can go on

* CB-6265 extends tests types for react-testing-library

* CB-6265 reverts dist->lib rename cause it contains other assets also

* CB-6265 moves setupFiles to the vitest.config.ts

* CB-6265 pr fixes

* CB-6265 fixes tests run for Windows

* CB-6265 removes global: true in config + uses jest-dom/vitest lib to have extended expect types

* CB-6565 removes unused deps

* СB-6265 improves performance of the test x10 times

* CB-6265 gets back renderInApp, fixes vitest setup reset config for mocks, cleans up

* CB-6265 reset -> restore all mocks

* CB-6265 fixes unit tests

* CB-6265 vitest.setup.ts cleanup

* CB-6265 timestamp to date shows military time both: on unix and windows (win tests fix)

* CB-6265 improves tests running (sequential run instead of parallel)

* CB-6265 cleanup

* CB-6265 eslint fix

* CB-6265 eslint fix 2

* CB-6265 reverts useCombined handler

* CB-6265 reverts some tests

* CB-6265 removes all redundant timer configs

* Merge branch 'devel' into CB-6265-return-front-unit-tests-after-migration

* CB-6265 pr fixes

* CB-6265 fixes time for windows

* CB-6265 removes default fake timers before each test
2025-04-14 18:48:33 +08:00
alexandEvgenia efec971177 dbeaver/pro#5234 mark children nodes as deleted (#3370)
* dbeaver/pro#5234 mark children nodes as deleted

* dbeaver/pro#5234 make getParent optional

* dbeaver/pro#5234 pass default value before make observable

* dbeaver/pro#5234 move default value outside of component

---------

Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
2025-04-14 18:41:13 +08:00
Ainur edc671f428 dbeaver/pro#5375 normalize table names in one place (#3349) 2025-04-14 09:52:38 +00:00
7f91dbc207 CB-5303 [CB] Driver form has the wrong state after download jar from repo (#3371)
* CB-5303 covers edge case with initial state changed by other tab during outdate part process

* СB-5303 loaded = true on any load result

---------

Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2025-04-11 22:10:37 +08:00
Alexander Skoblikov 1cc6f6f308 dbeaver/pro#4319 global provider config type (#3330) 2025-04-10 09:19:59 +00:00
Ruslan Musaev 02a8226196 Cb 5875 creating schemas only for pro (#3324) 2025-04-10 09:06:09 +00:00
Sychev AndreyandDaria Marutkina 42da37830f #5140 (CB-6127) the cell values are duplicated when adding multiple rows to the read only table (#3368)
* #5140 fix: duplicate hotkeys should work in tables without primary key

* #5140 fix: force update table data on save if model doesn't have element identifier

* #5140 refactor: move refresh model logic to datasource saveData method

---------

Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2025-04-10 17:00:55 +08:00
Ainur 3714d7d3a5 dbeaver/pro#5164 remove disabled drivers from core config (#3363) 2025-04-10 08:30:37 +00:00
alexandEvgenia b51ac6bd38 dbeaver/pro#5237 do not dispatch transaction if cursor and main in sync (#3361)
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
2025-04-09 15:23:40 +08:00
Sychev AndreyandDaria Marutkina e819af4f90 #5258 fix: See permission error after finish easy config (#3350)
* #5258 fix: don't skip auth dialog for anonymous

* #5258 refactor: use isAuthenticated

---------

Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2025-04-09 15:20:29 +08:00
Ruslan MusaevandDaria Marutkina 584b27eea2 dbeaver/pro#5272 Do not return private project if they are disabled (#3347)
* dbeaver/pro#5272 Do not return private project if they are disabled

* dbeaver/pro#5272 Do not return private project if they are disabled

---------

Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2025-04-09 15:20:13 +08:00
Alexeyandmr-anton-t 9c3cc17bd9 dbeaver/pro#5394 feat: null and boolean formatter for base grid (#3359)
* dbeaver/pro#5394 feat: null and boolean formatter for base grid

* feat: reuse base grid formatters

* chore: try to adjust workflow concurrency

* chore: trigger workflow

* chore: trigger workflow cancel

* chore: fix label styles

---------

Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
2025-04-09 15:06:32 +08:00
alexandDaria Marutkina e1a05496cb dbeaver/pro#5192 adjust loading state process (#3360)
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2025-04-08 15:51:03 +08:00
Sychev Andrey 947dcb367e #3355 cloudbeaver typescript path resolution problem (#3365)
* #3355 fix: add yarn sdks to git

* #3355 fix: offer to use workspace version of typescript
2025-04-07 21:28:37 +08:00
Daria MarutkinaandAnastasiya b4557ae3a2 dbeaver/pro#5379 Update README file (#3364)
* dbeaver/pro#5379 Update README file

* Update README.md

---------

Co-authored-by: Anastasiya <45152336+LonwoLonwo@users.noreply.github.com>
2025-04-07 14:19:40 +02:00
alexandEvgenia 63acb114df dbeaver/pro#5155 omit " when compare display strings (#3351)
* dbeaver/pro#5155 omit " when compare display strings

* dbeaver/pro#5155 add semicolon

* dbeaver/pro#5155 fix eslint

---------

Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
2025-04-04 15:05:54 +02:00
Sychev Andrey a3d8e92b5c fix: wrap input styles in base layer (#3358) 2025-04-03 18:00:51 +08:00
Serge Rider 8681d5f5f5 dbeaver/pro#5379 25.0.3 version bump 2025-04-01 19:57:24 +02:00
Sychev Andrey 3a4a4c53ae #5265 fix: no icons for users and connections on permission tables ( (#3345)
* #5265 fix: no icons for users and connections on permission tables (CB-6373)

* #5265 refactor: remove redundant width prop
2025-04-01 23:10:47 +08:00
600833c068 CB-6372 No 'Set to null' option in cell's context menu (#3331)
* CB-6372 fix: set null for applicable cells in context menu

* CB-6372 fix read-only for cells

CB-6367: don't let activate cell inline editor by double click if model is read-only

---------

Co-authored-by: kseniaguzeeva <112612526+kseniaguzeeva@users.noreply.github.com>
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
2025-04-01 22:05:54 +08:00
164b59b37a CB 6296 Delete row shortcut not working (#3340)
* CB-6296 fix: delete keystroke marks selected row for deletion

* CB-6296 fix: focus first element on load, remove extra handler

It was noticed that just after the open, onKeyDown event doesn't reach DataGrid, because focus was not in sync with lib.
Also fixes CB-6229 since they have the same root problem with encountered bag

* CB-6286 refactor: change onCellKeyDown handler interface inside DataGridProps

* CB-6296 refactor: set initial focus differently

* CB-6296 refactor: remove manual scroll control

We use grid inner scrollToCell method and don't need additional native scrolling

* refactor: don't expose inner data-grid type

---------

Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
Co-authored-by: Alexey <wrouds@gmail.com>
2025-03-28 23:01:58 +08:00
b8952c87b8 CB-6308 fix: grid auto-size (#3298)
* CB-6308 fix: grid auto-size

* CB-6308 fix: grid auto size

* CB-6308 fix: icons sizing in grid

* CB-6308 fix: grid header

* CB-6308 fix: types

* fix: min-width for columns

---------

Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2025-03-28 22:52:46 +08:00
e961d7cda7 CB-5839 fix: resource blocking (#3199)
* CB-5839 fix: resource blocking

* CB-5839 fix: unlock nav resources

* fix: connections loading

* feat: select new folder or connection

* chore: localization

* chore: revert improvements

* fix: load connections list for connection selector

* fix: error

* fix: wrong action handler

* CB-5839 fix: resources tree validation

* fix: reaction concurrency

* CB-5839 fixes build for new CellFormatter (ObjectMenuCell) after merge conflicts

* СB-5839 changes delay for menu item loaders

* CB-5839 fix: keys intersection detection in resources

* CB-5839 fix: keys intersection detection in resources

---------

Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
Co-authored-by: sergeyteleshev <iamsergeyteleshev@gmail.com>
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
2025-03-27 20:03:37 +08:00
Sychev Andrey 348d6b3161 [#113] Add clsx dependency to UI kit (#3335)
* chore: add clsx dependency to ui-kit

* chore: import clsx from ui-kit

* refactor: use clsx for class management in Button

* refactor: use clsx in Checkbox

* refactor: use clsx in Input component

* feat: use clsx in radio and radiogroup

* feat: use clsx in Select component

* feat: reexport VisuallyHidden and Focus trap components from ariakit
2025-03-27 20:02:00 +08:00
Alexander SkoblikovandMashaKorax 9ab000d604 dbeaver/pro#4118 separate limits for service auth (#3322)
Co-authored-by: MashaKorax <84867187+MashaKorax@users.noreply.github.com>
2025-03-26 16:06:18 +01:00
Alexander SkoblikovandMashaKorax a4532dd430 dbeaver/pro#3896 migrate auth process to websockets (#3315)
* dbeaver/pro#3896 new auth flow

* dbeaver/pro#3896 wip

* dbeaver/pro#3896 websocket authentication

* dbeaver/pro#3896 send error info

---------

Co-authored-by: MashaKorax <84867187+MashaKorax@users.noreply.github.com>
2025-03-25 17:52:07 +01:00
Serge Rider 1d21c677ab 3122 dynamic classpath (#3323)
* dbeaver/pro#3122 Driver loader model

* dbeaver/pro#3122 Driver loader model
2025-03-25 17:24:58 +01:00
Daria Marutkina d330b60f35 dbeaver/pro#4354 Update README file (#3336) 2025-03-24 11:46:40 +01:00
Sychev Andrey 584e5bb260 103 create radio and radio group components (#3313)
* refactor: rename css variable in order to be more descriptive and stick to the naming convention

* refactor: unify controls, add new global control css variables

* feat: add radio component

* docs: add radio stories

* docs: add input docs story

* docs: add simple form story

* refactor: change default radio dot size

* refactor: change class name for radio children wrapper

* refactor: don't reexport inner radio elements

* refactor: simplify RadioGroup interface by removing items props, make label(any) required

The radiogroup must have an accessible name either by a visible label referenced by aria-labelledby or has a label specified with aria-label.
https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Reference/Roles/radiogroup_role

* refactor: use label wrapper for input component to simplify structure

* refactor: add classname for radio group container
2025-03-21 18:52:39 +08:00
sergeyteleshev 71f77186c4 CB-6369 fixes onFinish during easy config for Server Configuration Form (#3328) 2025-03-19 21:32:41 +08:00
Alexander Skoblikov fe6174755b fix ldap version (#3326) 2025-03-18 20:08:25 +00:00
serge-rider d9ba55df54 dbeaver/pro#4354 25.0.2 version bump 2025-03-18 19:32:21 +01:00
serge-rider 70381f38f9 dbeaver/pro#4354 25.0.2 version bump 2025-03-18 19:29:35 +01:00
d9a5ea053b CB-6115 Add dispose to FormState instances (#3317)
* CB-6115 adds dispose API for forms

* CB-6115 adds git workspace helper extension for repo recommendations

* CB-6115 pr fixes

* CB-6115 adds dispose methods to tables

* CB-6115 eslint fix

* CB-6115 fixes dispose leaks for freshly created states

* CB-6115 fixes infinite loading of state

---------

Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2025-03-18 18:27:23 +01:00
Ainur 06e2aa9f0e CB-6346 add api for read only data sources (#3321) 2025-03-18 17:26:53 +00:00
alexandDaria Marutkina 219ab7c22d CB-6363 return cross button width (#3325)
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2025-03-18 21:39:57 +08:00
Sychev Andrey cdb65a8caa fix: rename default localization property from core.localization.localization to core.localization.language (#3319)
It seems like it was a misspelling initially, because we have never read such key in source code.
2025-03-18 17:07:10 +08:00
Sychev Andrey bd6b4112b0 fix: serve assets relatively with Vite (#3318) 2025-03-18 09:43:23 +01:00
34f4063114 CB-6271 add timeout of inaction in configuration mode (#3289)
* CB-6271 add timeout of inaction in configuration mode

* CB-6271 add timeout of inaction in configuration mode

* CB-6271 add timeout of inaction in configuration mode

* CB-6271 add timeout of inaction in configuration mode

* CB-6271 fix insecure default configuration set timeout to 2 mins

* CB-6271 fix insecure default configuration set timeout to one min

* CB-6271 handle configuration error properly

* CB-6271 catch unhandled error on validation step

* CB-6271 add return type

* CB-6271 fix insecure default configuration set timeout to one min

---------

Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
Co-authored-by: naumov <iamemptyhuh@gmail.com>
2025-03-18 06:21:27 +01:00
AinurandDaria Marutkina 6c44f8c432 CB-5440 extract abstract class for internal db models (#3303)
* CB-5440 extract abstract class for internal db models

* CB-5440 code style fix

---------

Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2025-03-17 12:21:05 +01:00
alexandmr-anton-t 34ff5a34cb Cb 6263 lefthook (#3291)
* CB-6263 migrate to lefthook

* CB-6263 remove old pre-commit

* CB-6263 specify how to execute lefthook

* CB-6263 add config file

* CB-6263 get license from configuration file

* CB-6263 remove old script

* CB-6263 remove old license

* CB-6263 add locales check

* CB-6283 fix vscode commit msg

* CB-6263 filter staged files on lib level

* CB-6263 do not run hooks sync in CI

* CB-6263 change script

* CB-6263 revert postinstall

---------

Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
2025-03-17 16:07:16 +08:00
Ainur cb350cc56e CB-6294 read initial data config file before connecting db (#3300) 2025-03-13 10:27:48 +00:00
alexandDaria Marutkina 6dc0b6d8a4 CB-6042 extend sync dep (#3309)
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2025-03-12 20:37:19 +01:00
655613ccf1 CB-6089 write file stream directly to http response (#3301)
* CB-6089 write file stream directly to http response

* CB-6089 write file stream directly to http response

* CB-6089 write file stream directly to http response

* CB-6089 write file stream directly to http response

* CB-6089 write file stream directly to http response

* CB-6089 remove deprecated method

* CB-6089 change ParquetExporter buffer size

* CB-6089 remove extra async

* CB-6089 add info text

---------

Co-authored-by: naumov <iamemptyhuh@gmail.com>
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
Co-authored-by: Ainur <59531286+yagudin10@users.noreply.github.com>
2025-03-11 17:45:24 +01:00
Ruslan Musaev e87e3397e2 CB-6033 fix message type for cb session log updated ws event (#3310) 2025-03-11 17:29:05 +01:00
Alexander Skoblikovandkseniaguzeeva 3c1766cd14 dbeaver/pro#4204 move file lock logic to dbeaver (#3287)
Co-authored-by: kseniaguzeeva <112612526+kseniaguzeeva@users.noreply.github.com>
2025-03-11 12:46:07 +01:00
alexandmr-anton-t 039407b9db CB-6207 add order to setting group (#3306)
* CB-6207 add order to setting group

* CB-6207 use method instead of const value

* CB-6207 remove const

* CB-6207 sort on tree level

---------

Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
2025-03-10 16:44:51 +01:00
serge-rider e02300e34d Logging fix 2025-03-10 14:17:23 +01:00
alexandmr-anton-t 295ce2d46a CB-6286 add className prop (#3297)
* CB-6286 add className prop

* CB-6286 fix virtualisation

* CB-6286 remove extra prop

* CB-6286 fix prop order

---------

Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
2025-03-07 23:39:44 +08:00
Sychev Andrey 36102cdee5 88 create select component (#3302)
* feat: add simple select

* feat: add items states vars and popover animation

* feat: add SelectField component

* feat: select field uses getters to get value/label/selected value, update stories to demonstrate

* docs: update select stories

* refactor: remove margin top because we use gutter in SelectField and for reexported aria popover we don't want to setup such default

* fix: select field - set not the very first value by default, but the first not disabled value

* refactor: add popover height variable, remove padding to look more like select in cloudbeaver by default

* feat: add styles for Select Field description

* refactor: rename properties

* refactor: remove redundant docs for props, remove placeholder props because it's not how aria select is supposed to work, you need to use extra select item to create a placeholder

* refactor: remove support for property path, keep only support for property name or custom getter in sake of simplicity and ease of maintenance

* fix: story for key getters

* fix: return type

* fix: don't set disabled value if all items are disabled

* fix: controlled mode, respect value prop over selectedValue

* refactor: remove width property

* refactor: typesafe key getter

The type iterates through every property key in ItemType.
For each property key, it evaluates whether the property's type is assignable to ValueType and creates a union type of all keys that passed the type check

* refactor: fixes after merge and item hover variable

* fix: input

* feat: add custom arrow icon prop

* refactor: remove ability to use object keys as getters, rename options to items in all places

* fix: rename token
2025-03-06 23:32:41 +08:00
c532298eba 87 create checkbox component (#3294)
* refactor: remove --dbv-kit-color-text variable in favor of --dbv-kit-color-foreground, add --dbv-kit-control-disabled-opacity to use for all controls, remove --dbv-kit-btn-disabled-opacity, update docs

* refactor: add ControlSize type

* feat: create checkbox component

* docs: add checkbox stories, update button docs

* refactor: polish checkbox component, added some vars, add docs, change some defaults

* feat: add indeterminate state

* fix: prioritize check prop over inner state

* fix: button styles layer

* fix: comments

* fix: change checkbox checked style

* Revert "fix: change checkbox checked style"

This reverts commit eba1e21eb9.

---------

Co-authored-by: Wroud <wrouds@gmail.com>
Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
2025-03-05 15:25:55 +08:00
Daria Marutkina 254da45290 dbeaver/pro#4230 Update README file (#3299) 2025-03-03 14:17:38 +01:00
serge-rider 2c3b44cbdf Merge remote-tracking branch 'origin/devel' into devel 2025-02-27 11:25:27 +01:00
serge-rider 05b0cddab9 dbeaver/pro#4230 25.0.1 version bump 2025-02-27 11:23:59 +01:00
Alexander Skoblikov a118e1c33d CB-6305 throw error if no session for websocket (#3292) 2025-02-26 17:41:42 +00:00
Alexey cc2a8dab63 CB-6301 fix: grid styles (#3290) 2025-02-26 19:00:57 +08:00
Alexey 080317d710 dbeaver/dbeaver-vscode#83 refactor: data grid (#3265)
* dbeaver/dbeaver-vscode#83 refactor: data grid

* chore: try to fix build scripts

* chore: commit artifacts

* chore: update yarn.lock

* fix: adjust grid auto-sizing

* chore: fix prettier

* chore: add documentation about typescript crashes

* fix: cell menu

* fix: grid inline editor styles

* fix: cell menu styles

* fix: cell items alignment

* fix: data sync

* feat: support reactive values in grid

* chore: try to fix strange build bug

* chore: restore original file name

* fix: add specific to inline editor styles

* fix: remove delete row shortcut (not working)

* chore: enable common cache
2025-02-26 01:04:03 +08:00
Sychev Andreyandmr-anton-t a4102b28dd Feat/dbeaver/vscode#86/storybook integration (#3251)
* feat: add ui-kit package to common-react

* feat: add tailwind and ladle to ui-kit, use ui-kit in ce

* feat: create custom properties for button and checkbox using tailwind values as default

* feat: create simple button with 2 variants

* feat: create simple checkbox

* refactor: update after rebase

* feat: experiments with button and checkbox

* feat: add buttons sizes, adjust btn loader, add interactive story instead of many stories

* fix: add license

* fix: a11y issues with color contrast

* fix: mdx stories support

* feat: experiments with icons

* feat: try custom rendering

* docs: add small kinda docs for button

* refactor:  css layers

* chore: deps

* chore: remove buildinfo from git

* chore: remove tsbuildinfo from git

* fix: vertical tab overflow

* feat: use UIKit button as base for Cloudbeaver button

* fix: box-sizing problems

* refactor: button styles use BEM model

* refactor: separate base tokens from aliases

* refactor: add some defaults, write all properties in snake case

* refactor: rename button classes, add ui-kit prefix

* refactor: remove redundant story, omit a couple of props, add example to ladle

* refactor: add general sizes tokens, update license

* feat: add scaffold for input component

* refactor: update deps

* refactor: remove links

* refactor: change props naming, add prefixes in checkbox, removes validation nodes in input

* refactor: partially revert "feat: use UIKit button as base for Cloudbeaver button" to keep the old Button interface without changes

Original commit SHA: 62bb1fe9a0.

* Revert "refactor: update deps"

This reverts commit f7d6533967.

* refactor: update deps once again

* refactor: rename ui-kit prefix

* chore: update deps

* refactor: Button Icon Interface

* refactor: use JSDoc for placement comment

* refactor css custom props for Button

* refactor: introduce opacity custom property, fix icon margin property

* fix: button text should not wrap;

* fix: tailwindcss version

* fix: tailwindcss version

* refactor: remove checkbox styles, keep only wireframe

* refactor: move input-related css variables to the dedicated folder

* refactor: remove unused input props

* refactor: btn loader animation

* refactor: use nesting for states, refactor classnames using BEM delimiters

* refactor: introduce btn-border-width prop, removed redundant btn-padding-block since we use fixed heights

* refactor: input and button

* fix: input

* chore: deps

* chore: deps

* chore: add vite as dev dep

* refactor: button variants

* chore: yarn install

* fix: loading button should not react on hover

* docs: add stories about tokens

* chore:  remove lint command

* refactor: add prefix to css variables

* refactor: add base border-radius and border-width for controls

* fix: don't import tailwind in style files

* fix: add tailwindcss import for ladle

* fix: base radius variable

* refactor: rename css var

* refactor: add tw prefix for tailwind classes and vars

* fix: styles in easy-config

* fix: after tailwind reset paddings don't in width anymore, compensate

* fix: don't show outline on mouse click

* refactor: change btn state classes, remove not loading for hover because it's strange that button reacts on click when in loading state, but not on hover.

* fix: icons

* fix: add letter-spacing to normalize to prevent tailwind reset it with inherit value

* fix: welcome page selector

* fix: button outline uses a variable for width,  proper loading state in aria, icon class name

* feat: add global styles for UI-kit ladle

* docs: refactored stories composition, added stories

* refactor: simplify loader, enable custom loaders, introduced token for btn loader, fix class names, updated stories

* docs: add global styles for ladle

* feat: use custom loader in cloudbeaver

* refactor: use oklch color space for color mixing in loaders

* docs: add readme

* fix: tsconfig, format ladle config

* docs: add short command for ladle, update readme

* fix: module export

* build: add vite plugin

* fix: remove aria-label for loading

* fix: yarn

---------

Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
2025-02-25 21:04:57 +08:00
serge-rider d40e46739a dbeaver/pro#4230 25.0.1 version bump 2025-02-24 19:37:57 +01:00
f4ba5065c0 CB-6255 Show message/notification for embedded drivers un-disabling (#3277)
* CB-6255 adds warning message for insecure embedded drivers on enabling in server config

* CB-6255 adds warning icon + fixes translations

* CB-6255 add safeEmbeddedDriver parameter to api

* CB-6255 adds safeEmbedded prop to the enabling drivers

* CB-6255 add since to safeEmbeddedDriver

* СB-6255 fixes translation and adds popup size setting

* CB-6255 eslint fix

* CB-6255 cleanup

* CB-6255 removes redundant component

* CB-6255 removes redundant useCallback

---------

Co-authored-by: Ruslan <pupkinvasya7000@gmail.com>
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
Co-authored-by: Ainur <59531286+yagudin10@users.noreply.github.com>
2025-02-24 15:31:42 +01:00
Alexander Skoblikovandkseniaguzeeva 50dc9121b6 dbeaver/pro#4207 do not create web session when trying to access static resources (#3284)
Co-authored-by: kseniaguzeeva <112612526+kseniaguzeeva@users.noreply.github.com>
2025-02-24 14:25:41 +01:00
alexandDaria Marutkina 901854f9d1 CB-6284 remove extra symbol from labels (#3286)
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2025-02-24 16:00:55 +08:00
alex d7d02f2c93 CB-6242 add tooltip for the connection (#3281) 2025-02-21 18:58:12 +00:00
Ainur 12ff40361d CB-6236 fix checking read only status for a column with invalid key identifier (#3276) 2025-02-21 17:05:30 +00:00
Ainur 8d7165b47b CB-4874 api for updating results data using async function (#3280) 2025-02-21 16:59:29 +00:00
sergeyteleshevandEvgenia c7e19a5780 CB-6249 No icons in the app for windows builds (#3267)
* CB-6249 fixes adding assets to the build for windows machines

* СB-6249 fixes the path for windows

* CB-6249 normalizes paths for build assets

* CB-6249 adds comment for assets

* CB-6249 normalizes paths to posix format

---------

Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
2025-02-21 22:47:13 +08:00
alexandDaria Marutkina 0ac2bc7346 CB-6279 revert combobox z-index (#3285)
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2025-02-21 13:52:48 +01:00
AinurandEvgenia 5a7b84c075 CB-6227 fix npe (#3261)
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
2025-02-21 10:15:40 +01:00
sergeyteleshevandDaria Marutkina 377a77dd58 CB-6264 Filter field hint list is shown when filter is added manually and focus is out of the field (#3278)
* CB-6264 adds ability to where filter to consider only typed text for suggestions

* CB-6264 adds case with tab

* CB-6224 cleanup

* CB-6264 add fix with focus check

* Revert "CB-6264 add fix with focus check"

This reverts commit 152f38a5c4.

* CB-6264 adds fix via isFocused

* CB-6264 cleanup

* CB-6264 resets state on proposal submission/cancelling

* CB-6264 adds resetState on any replacement case

* CB-6264 adds reset state on menu being invisible

* CB-6264 reverts outside click

* CB-6264 adds resetState on press Tab button

* CB-6264 cleanup

---------

Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2025-02-21 16:26:49 +08:00
sergeyteleshevandDaria Marutkina 2561583021 CB-3771 Incorrect autocomplete of the Host field while connecting to the local db in the local env (via Search) (#3266)
* CB-3771 loads host form searchDatabases for connections

* CB-3771 fixes overlap for connection host and port values

---------

Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2025-02-20 21:24:08 +08:00
Ruslan MusaevandEvgenia 4a2c4749f2 CB-6223 enable flat files drive by default (#3256)
* CB-6223 enable flat files drive by default

* CB-6223 enable flat files driver by default

* CB-6223 enable flat files driver by default

* CB-6223 enable flat files driver by default

* CB-6223 enable flat files driver by default

* CB-6223 enable flat files driver by default

---------

Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
2025-02-20 14:08:33 +01:00
ShadelessFoxandMatvey16 179c73424a dbeaver/pro#3964 Refactor document (de-)serialization (#3275)
Co-authored-by: Matvey16 <82543000+Matvey16@users.noreply.github.com>
2025-02-19 20:07:05 +01:00
alexandDaria Marutkina 0b924da666 CB-6171 show alert instead of icon (#3263)
* CB-6171 show alert instead of icon

* CB-6171 change locales

* CB-6171 add missing dep

* CB-6171 add flag check

---------

Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2025-02-19 23:12:36 +08:00
alexandDaria Marutkina 24117dbf3f CB-4013 fix action trigger (#3268)
* CB-4013 fix action trigger

* CB-4013 revert ctrl

---------

Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2025-02-19 22:18:32 +08:00
Ainur bb23a2d587 CB-6069 grouping panel fix for a complex data type (#3271) 2025-02-19 12:42:35 +00:00
Ainur e93a3d1e62 CB-6102 add event listener filter for a session global project (#3259) 2025-02-19 12:14:10 +00:00
Alexander Skoblikovandkseniaguzeeva 0f7477e2b6 dbeaver/pro#4072 fix missing TE event (#3262)
Co-authored-by: kseniaguzeeva <112612526+kseniaguzeeva@users.noreply.github.com>
2025-02-19 12:18:46 +01:00
alexandDaria Marutkina df49cef865 CB-6208 adjust z index (#3270)
* CB-6208 adjust z index

* CB-6208 adjust z index to menus

---------

Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2025-02-19 11:08:01 +01:00
sergeyteleshevandEvgenia 356950bb78 CB-5612 JSON view - filter is cleared after switching to JSON tab (#3264)
* CB-5612 sets where filter on context menu filter actions

* CB-5612 cleanup

---------

Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
2025-02-19 17:47:36 +08:00
sergeyteleshevandDaria Marutkina 0aafa78926 CB-5863 Redirect to the Server Configuration page when refreshing the Identity Providers page (#3257)
* CB-5863 loads administration items loaders before redirects

* CB-5863 removes redirect blockers for administration routes

* CB-5863 loads route loaders on route change

* CB-5863 cleanup

* CB-5863 reverts administration.tsx changes

---------

Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2025-02-19 17:46:57 +08:00
sergeyteleshevandDaria Marutkina d3ed80219e CB-6135 Database objects do not open after disconnecting (#3254)
* CB-6135 allows to reconnect to the table

* CB-6135 fixes linter issues

* CB-6135 reverts freeze logic

---------

Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2025-02-19 17:46:13 +08:00
04388a7cfe CB-5834 fixes shrinking for properties table (#3260)
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
Co-authored-by: Alexey <wrouds@gmail.com>
2025-02-19 17:45:20 +08:00
sergeyteleshevandEvgenia 0fea710705 CB-5698 allows to create user with 1 character in username (#3249)
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
2025-02-19 17:44:31 +08:00
Vladimir Ivanov 56d296558e dbeaver/tech-docs#674 README.md (upd deploy link) (#3274) 2025-02-18 17:25:32 +03:00
Evgenia 87b0087e52 Merge pull request #3272 from dbeaver/dariamarutkina-patch-1
dbeaver/pro#4166 Update README file
2025-02-18 12:52:26 +03:00
Daria Marutkina b79287d327 dbeaver/pro#4166 Update README file 2025-02-18 10:20:06 +01:00
4cdfa5b07f Cb 6041 system information (#3245)
* CB-6041 add system information plugin

* CB-6041 api for system information

* CB-6041 api for system information

* CB-6041 api for system information

* CB-6041 simplify system info ui

* CB-6041 remove extra props

* CB-6041 api for internal database information

* CB-6041 remove hint

* CB-6041 add missing field

* CB-6041 use categories for database info

* CB-6041 add categories

* CB-6041 add category to copy info

* CB-6041 code style fix

* CB-6041 fix get property ids

* CB-6041 updates react version to 19

---------

Co-authored-by: Ainur <ainur.iagudin@dbeaver.com>
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
Co-authored-by: Ainur <59531286+yagudin10@users.noreply.github.com>
Co-authored-by: Alexander Skoblikov <aleksandr.skoblikov@dbeaver.com>
Co-authored-by: Serge Rider <serge@jkiss.org>
Co-authored-by: sergeyteleshev <iamsergeyteleshev@gmail.com>
2025-02-12 12:44:07 +01:00
Serge Rider f542534fdc dbeaver/pro#4166 25.0.0 version bump 2025-02-11 21:17:35 +01:00
Serge Rider b06f28bd83 dbeaver/pro#4166 25.0.0 version bump 2025-02-11 21:16:19 +01:00
2fc1ee9e1b CB-6203 api for flat files connection (#3238)
* CB-6203 api for flat files connection

* CB-6203 api for flat files connection

* CB-6203 change font style to italic for temp connections

* CB-6203 add copy action

* CB-6203 fixes

* CB-6203 fixes

* CB-6203 fixes

* chore: update vite assets plugin

* CB-6203 expand node on file open

* CB-6203 fixes naming

* CB-6203 update license snippet

* CB-6203 fixes naming

---------

Co-authored-by: naumov <iamemptyhuh@gmail.com>
Co-authored-by: Wroud <wrouds@gmail.com>
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
2025-02-11 19:51:13 +01:00
a818a6b6dd CB-6200 disconnect data source on changing config (#3240)
* CB-6200 disconnect data source on changing

* CB-6200 correctly checks if connection is connected on updated connection resource event

* Revert "CB-6200 correctly checks if connection is connected on updated connection resource event"

This reverts commit 45485a02d6.

---------

Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
Co-authored-by: sergeyteleshev <iamsergeyteleshev@gmail.com>
2025-02-11 18:56:55 +01:00
7919ec8bda dbeaver/pro#3943 check that folder cannot be moved inside itself (#3253)
* dbeaver/pro#3943 check that folder cannot be moved inside itself

* dbeaver/pro#3943 fix

---------

Co-authored-by: Serge Rider <serge@jkiss.org>
Co-authored-by: MashaKorax <84867187+MashaKorax@users.noreply.github.com>
2025-02-11 18:42:22 +01:00
a76dc9cdbf CB-6219 refactor: migrate to react 19 (#3252)
* CB-6219 refactor: migrate to react 19

* chore: tune backend build

* chore: fix loaders

---------

Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
2025-02-12 00:55:20 +08:00
alexandDaria Marutkina 6af85da676 CB-6119 await promise (#3235)
* CB-6119 await promise

* CB-6119 move loading logic to the parent component

---------

Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2025-02-11 20:57:42 +08:00
Mikhailov Grigorii 676b192434 dbeaver/dbeaver-devops#1774-fix-chown-non-root-user Changed chown to pwd/workspace (#3247) 2025-02-11 11:18:34 +01:00
sergeyteleshevandEvgenia 71231c3a76 CB-6153 Fix 'Enables' in settings (#3250)
* CB-6153 fixes translations

* CB-6153 adds new translation fixes

---------

Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
2025-02-11 17:53:49 +08:00
60e41367f6 dbeaver/pro#4117 Fix session management (#3248)
* dbeaver/pro#4117 Fix session management

* dbeaver/pro#4117 Fix comments

---------

Co-authored-by: Ivan Gagarkin <gagarkin@Ivans-MacBook-Pro.local>
Co-authored-by: MashaKorax <84867187+MashaKorax@users.noreply.github.com>
2025-02-10 18:25:22 +01:00
0048ad88e4 CB-6131 get loaders from all tabs, not only visible (#3210)
Co-authored-by: kseniaguzeeva <112612526+kseniaguzeeva@users.noreply.github.com>
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2025-02-10 18:18:57 +01:00
Alexander Skoblikovandkseniaguzeeva c85974c9f5 dbeaver/pro#3978 init workspace before configuration, support temp fo… (#3236)
* dbeaver/pro#3978 init workspace before configuration, support temp folder in services

* dbeaver/pro#3978 fix tests

---------

Co-authored-by: kseniaguzeeva <112612526+kseniaguzeeva@users.noreply.github.com>
2025-02-10 17:06:57 +01:00
alexandEvgenia 9e9ec13db0 CB-6128 add tooltips to tabs (#3221)
* CB-6128 add tooltips to tabs

* CB-6128 add project to the tooltip

* CB-6128 remove code duplication

* CB-6128 change file name

---------

Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
2025-02-10 21:48:35 +08:00
sergeyteleshev 2271433992 CB-5327 makes admin panel items not flickery (#3243) 2025-02-10 19:06:18 +08:00
sergeyteleshev 97411d2a3e CB-6215 makes object viewer linking feature be registered again (#3244) 2025-02-08 01:25:04 +08:00
sergeyteleshevandEvgenia 8e4ae5ed6a CB-1371 keeps focus in the input field for where filter after the saving (#3239)
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
2025-02-08 01:23:47 +08:00
Ainur b9322d8087 CB-5931 add ability to read cell info from single row table (#3218) 2025-02-06 16:25:18 +00:00
alexandEvgenia 408565ee64 CB-5212 adjust readonly behaviour (#3237)
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
2025-02-06 19:31:17 +08:00
Sychev AndreyandEvgenia 107436a8c0 CB-6181 fix: show save/cancel buttons in json docs (#3222)
* CB-6181 fix: show save/cancel buttons in json docs

* CB-6181 refactor: change condition for SAVE/CANCEL buttons

The problem is that for select 1 in TE we get different result from other product, because in CE/EE we use ResultSetFooterMenuService, while for TE we use regular TableFooterMenuService. model.source.isReadOnly flag doesn't return true anymore since we extracted hasRowIdentifier flag from it, so we get redundant buttons in tables like that in TE.

Since the only difference is products where we are executing this script, it's quite hard to detect it inside a component. I decided to check editor's features, they are empty in this case (select 1) in all products, so we can be 100% sure that if there are no features, we don't need any buttons.

The other problem that for Document type of data format we also don't have features (and we use the same footer menu service). If it's not read-only, we need to have those buttons to save/cancel edits. The first solution is to check data format is Document (or check the editor type or to try get action with needed type). The other solution that I used is to check hasRowIdentifier flag(hasElementIdentifier) because editable documents will have it true, while datasets like select 1 don't have them. It looks more generic for me and should work in more cases in future

* СB-6181 refactor: update isReadonly flag for resultset

---------

Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
2025-02-06 19:30:57 +08:00
Ruslan MusaevandEvgenia 4388491db1 CB-5873 add logging server url (#3231)
* CB-5873 add logging server url

* CB-5873 add logging server url

---------

Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
2025-02-05 12:21:19 +01:00
DenisSinelnikov 4bf0e72d77 CB-6136. LDAP userID change attribute (#3217) 2025-02-05 11:15:39 +00:00
Alexey fbe4c7fcbb dbeaver/dbeaver-vscode#77 fix: eslint (#3233)
* dbeaver/dbeaver-vscode#77 fix: eslint

* chore: update jdk version to 21
2025-02-05 18:50:35 +08:00
2fc9c72908 dbeaver/dbeaver-vscode#77 refactor: yarn & vit migration (#3229)
* dbeaver/vscode#77 refactor: yarn & vit migration

* chore: configure eslint & typescript & prettier

* fix: chunk splitting & assets loading

* fix: enable corepack

* refactor: dev environment

* chore: remove corepack enable from build scripts

* chore: make script executable

* fix: SSL check in vite dev

* chore: update debug launch configs

---------

Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
2025-02-05 00:20:23 +08:00
Elizabethandkseniaguzeeva 14be13ba96 dbeaver/pro#4032 Update SQLite driver version to the latest one (#3225)
Co-authored-by: kseniaguzeeva <112612526+kseniaguzeeva@users.noreply.github.com>
2025-02-04 16:17:21 +01:00
07de3cd668 CB-6174 feat: inverse overlay (#3215)
* CB-6174 feat: inverse overlay

* CB-6174 change icon

* CB-6174 adjust height

---------

Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
Co-authored-by: naumov <iamemptyhuh@gmail.com>
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2025-02-04 21:32:17 +08:00
AnastasiyaandEvgenia f1c8f10dc1 CB-6189 Update MariaDB driver to the latest version 3.5.1 (#3223)
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
2025-02-04 09:43:33 +01:00
Daria Marutkina ad467c3d22 dbeaver/pro#4033 Update README file 2025-02-03 11:12:46 +01:00
Alexander Skoblikovandkseniaguzeeva 5b20474470 dbeaver/pro#3868 update cloud configs by event (#3219)
Co-authored-by: kseniaguzeeva <112612526+kseniaguzeeva@users.noreply.github.com>
2025-01-31 14:03:36 +01:00
alex a1a92d513c CB-6195 hide component if not supported (#3226) 2025-01-30 16:17:08 +01:00
serge-rider dc71e65bf9 dbeaver/pro#4033 Add redundant folders to gitignore 2025-01-30 09:16:22 +01:00
Alexander Skoblikovandkseniaguzeeva 538a433198 CB-6168 map user role by team (#3214)
* CB-6168 map user role by team

* CB-6168 review fix

---------

Co-authored-by: kseniaguzeeva <112612526+kseniaguzeeva@users.noreply.github.com>
2025-01-29 21:28:18 +01:00
Serge Rider 7e512fe5ed dbeaver/pro#4033 24.3.5 version bump 2025-01-28 19:51:01 +01:00
2199883eb9 CB-6132 Read only connection setting (#3213)
* CB-6132 feat: add read-only setting to connection's expert block

* CB-6132 refactor: add readonly property for the new field

* CB-6132 set read only param for data source container

* CB-6132 refactor: add locales

* CB-6132 refactor: change eng message

* CB-6132 fix read only for creating connection

---------

Co-authored-by: Ainur <ainur.iagudin@dbeaver.com>
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
Co-authored-by: sergeyteleshev <iamsergeyteleshev@gmail.com>
2025-01-28 18:11:54 +01:00
19c4ec49bd CB-3753-1809-fr-add-field-hints-in-the-filter-field (#3151)
* CB-3753 adds base for input autocomplete

* CB-5373 adds InputAutocompletion base

* CB-3753 removes unneeded code + fixes bugs with current word selection

* CB-3753 replaces with existing menu

* CB-3753 refactor

* CB-3753 fixes menu visibility

* CB-3753 adds autocomplete for where filters from result set column names

* CB-3753 cleanup

* CB-3753 cleanup

* CB-3753 adds base hints

* CB-3753 fixes bug with not available arrow option selection

* CB-3753 cleanup

* CB-3753 pr fixes

* CB-3753 removes redundant useEffect with visibility logic

* Revert "CB-3753 removes redundant useEffect with visibility logic"

This reverts commit 92e67143a7.

* CB-3753 adds fuzzy search with Fuse.js library

* CB-3753 cleanup

* CB-3753 adds context input ref

* CB-3753 fixes bugs

* CB-3753 removes unused lib in core-utils

* CB-3753 pr fixes

* CB-3753 replaces fuse.js with minisearch

* CB-3753 fixes styles for menu

* CB-3753 moves InputAutocompletionMenu out of the InlineEditor

* CB-3753 adds positioning to the contextInput suggestions via button anchor

* CB-3753 cleanup

* CB-3753 fixes jumping menu

* CB-3753 cleanup

* CB-3753 fixes bug with incorrect replacement

* CB-3753 cleanup

* CB-3753 adds useSearch hook

* CB-3753 cleanup

* CB-3753 pr fixes

* CB-3753 adds contextMenuPosition instead of mouseContextMenu + makes AutocompleteMenu use this context

* CB-3753 pr fixes

* CB-3753 cleanup

* CB-3753 cleanup

* CB-3753 cleanup

* CB-3753 cleanup

* Revert "CB-3753 cleanup"

This reverts commit 732ca111d0.

* CB-3753 pr fixes

* CB-3753 cleanup

* CB-3753 pr fixes

* CB-3753 pr fixes

* CB-3753 pr fixes

* CB-3753 cleanup

* CB-3753 adds word separator + few new DB keywords to suggestions

* CB-3753 fixes filter when applying autocomplete

---------

Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
2025-01-28 18:08:50 +01:00
AinurandDaria Marutkina c0aca0a032 CB-6123 fix updating driver libraries in config file (#3194)
* CB-6123 fix updating driver libraries in config file

* CB-6123 fix connection error on init

---------

Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2025-01-28 18:04:07 +01:00
Sychev AndreyandEvgenia 1bf783537b CB-5992 fix: limit maximum fraction digits in chart legend (#3216)
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
2025-01-28 17:20:06 +01:00
f6ae6ecdfe CB-4066 Migrate Team form to form template (#3196)
* CB-4066 refactors team structure

* CB-4066 refactors Team form to use new API

* CB-4066 adds TeamProjects form part to the TeamsForm

* CB-4066 cleanup

* CB-4066 cleanup

* CB-4066 pr fixes

* CB-4066 pr fixes

* CB-4066 fixes title and error key for team creation

* CB-4066 qa fixes

* CB-4066 qa fixes

* CB-4066 fixes bug with team editing

* CB-3753 pr fixes

* CB-4066 fixes validation error with wrong teamId

---------

Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
2025-01-27 20:34:58 +03:00
Sychev AndreyandEvgenia 8fe583d9ae CB-6152 restrict editing bool and hide actions in datasets (#3209)
* CB-6152 fix: Restrict editing BOOL in read-only tables

* CB-6152 fix: add condition for actions

* CB-6152 chore: update TS references

* CB-6152 fix: don't show extra button for not editable tables

---------

Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
2025-01-27 20:33:32 +03:00
Sychev AndreyandDaria Marutkina ef8eb7b8d8 CB-5126 fix: focus init button in SqlEditorOverlay (#3193)
* CB-5126 fix: use useFocus hook

* CB-5126 use updateFocus

---------

Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2025-01-27 16:41:42 +03:00
Mikhailov GrigoriiandDaria Marutkina 529186df41 dbeaver/dbeaver-devops#1630 Added if for root and non-root users (#3180)
* dbeaver/dbeaver-devops#1630 Added if for root and non-root users

* dbeaver/dbeaver-devops#1630 Added creating dir /home/dbeaver

---------

Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2025-01-27 11:26:21 +01:00
3ceac40016 dbeaver/pro#3977 ability to load self-signet cert from a specific folder (#3201)
Co-authored-by: kseniaguzeeva <112612526+kseniaguzeeva@users.noreply.github.com>
Co-authored-by: Serge Rider <serge@jkiss.org>
2025-01-24 17:51:32 +01:00
Georgii b7bbf4e65f dbeaver/dbeaver-infra#187 fix generator not adding junit (#3207) 2025-01-24 16:14:09 +01:00
mayer 909d3fb668 dbeaver/dbeaver-devops#1701 java 21 as default (#3208) 2025-01-24 14:10:55 +01:00
serge-rider d8107fabaa Merge remote-tracking branch 'origin/devel' into devel 2025-01-24 11:46:53 +01:00
Ainurandmr-anton-t ade04708a3 CB-6109 fix deadlock and keep filter only in global project (#3195)
Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
2025-01-24 11:25:24 +01:00
serge-rider b6b28d5f65 Merge remote-tracking branch 'origin/devel' into devel 2025-01-24 11:13:19 +01:00
serge-rider fb3daa0145 dbeaver/pro#4016 File datasources folder. Azure and GCP directory detection fix. File details property page. 2025-01-24 11:10:33 +01:00
alexandDaria Marutkina bfd435dc5e CB-5798 remove hardcoded max width (#3206)
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2025-01-24 11:44:49 +03:00
alexandEvgenia 8831ad05fa CB-5968 export user form (#3198)
* CB-5968 export user form

* CB-5968 bind method

---------

Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
2025-01-23 16:04:06 +03:00
alexandEvgenia 254635d5b0 CB-6090 add new types (#3197)
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
2025-01-22 21:47:16 +03:00
alex 636ec28312 CB-6129 add tooltips (#3202)
* CB-6129 add tooltips

* CB-6129 simplify syntax
2025-01-22 21:46:14 +03:00
DenisSinelnikov cd7dcb40c8 CB-5574. Added new api for get manager, added flap in server configur… (#3161) 2025-01-22 15:12:45 +00:00
Georgii 82753268e6 dbeaver/dbeaver-infra#187 PRO osgi test runner (#3190)
* dbeaver/dbeaver-infra#187 PRO osgi test runner

* dbeaver/dbeaver-infra#187 working CBEE & WIP DC runners

* dbeaver/dbeaver-infra#187 code cleanup & fix maven runs

* dbeaver/dbeaver-infra#187 code cleanup

* dbeaver/dbeaver-infra#187 don't asyncLaunch desktop apps
2025-01-22 15:44:29 +01:00
Daria Marutkina a6da7124e8 dbeaver/pro#3956 Update README file (#3200) 2025-01-20 14:33:06 +01:00
AinurandDaria Marutkina 6514cbe66f CB-5152 fix data source config if credentials were saved for current session (#3191)
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2025-01-20 10:18:06 +01:00
serge-rider e708c1b810 dbeaver/pro#3956 24.3.4 version bump 2025-01-14 19:31:04 +01:00
3b0a4e7d33 CB-6063 feat: add ability to import data without PK (#3188)
* CB-6063 feat: add ability to import data without PK

* CB-6063 feat: add ability to insert rows to tables w/o PK using actions

removes isImportAllowed flag, adds hasRowIdentifier, uses it in place of forbidden actions

* CB-6063 refactor: use only false value for hasRowIdentifier flag

* CB-6063 fix: revert logic in hasRowIdentifier

* CB-6063 refactor: rename property

* CB-6063 fix: return lock icon back for tables w/o identifier

* CB-6063 fix: hasRowIdentifier in getResult

---------

Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
Co-authored-by: Ainur <59531286+yagudin10@users.noreply.github.com>
2025-01-14 19:23:32 +01:00
7a83252490 CB-5369. Added API for transaction log for commits (#3183)
* CB-5369. Added API for transaction log for commits

* CB-5369. Refactor after review

* CB-5369 add transaction logs table

* CB-5369. Added id for data

* CB-5369 fix typo

* CB-5369. Added event for get count

* CB-5369. Refactor event

* CB-5369. Refactor event

* CB-5369. Refactor after review

* CB-5369. Refactor after review

* CB-5369. Added connectionId to event

* CB-5369 support count event

* CB-5369. Rename eventId

* CB-5369 adjust count styles

* CB-5369 format time

* CB-5369 add missing deps

* CB-5369 remove extra important flags

* CB-5369 review fixes

* CB-5369 remove extra import

---------

Co-authored-by: naumov <iamemptyhuh@gmail.com>
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2025-01-14 19:12:10 +01:00
f6800b5911 CB-5461. Added compare ldap group and user team (#3189)
* CB-5461. Added compare ldap group and user team

* CB-5461. Fixed codestyle

* CB-5361. Fixed to create new ldap user with full dn

---------

Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
Co-authored-by: Ainur <59531286+yagudin10@users.noreply.github.com>
2025-01-14 17:06:25 +01:00
Ainur 1d4c00e5fb CB-6051 ability to download drivers (#3155) 2025-01-14 15:42:02 +00:00
12cfcbc199 dbeaver/pro#3885 UPD: switch to web sockets (#3169)
* dbeaver/pro#3885 Make CBSessionManager.createWebSessionImpl public

* dbeaver/pro#3885 Check that the feature is enabled upon connection

---------

Co-authored-by: Ivan Gagarkin <gagarkin@Ivans-MacBook-Pro.local>
Co-authored-by: kseniaguzeeva <112612526+kseniaguzeeva@users.noreply.github.com>
2025-01-14 14:02:10 +01:00
Sychev AndreyandDaria Marutkina c3fcf37b3f CB-5756 redesign user profile (#3184)
* CB-5756 feat: redesign user profile

* CB-5756 refactor: return disabled prop to UserProfileFormInfo

* CB-5756 feat: add confirmation dialog

When closing panel with unsaved password changes, add localization for that case.

* CB-5756 fix: onChange handler and comparing the state

* CB-5756 fix: build

* CB-5756 refactor: change useState to useObservableRef

* CB-5756 refactor: swap logError to logException

* CB-5756 refactor: use built-in inputs onChange

* CB-5756 refactor: swap useService to useResource hook

---------

Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2025-01-13 17:10:19 +03:00
AinurandDaria Marutkina e259d7da59 CB-5457 fix applying specific events for non-admin users (#3186)
* CB-5457 fix applying specific events for non-admin users

* CB-5457 add annotations

---------

Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2025-01-13 14:14:22 +04:00
alexandDaria Marutkina 06f8b448ca CB-5867 show objects description (#3170)
* CB-5867 show objects description

* CB-5867 add description only to the connection tree

---------

Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2025-01-10 20:43:17 +03:00
AinurandDaria Marutkina 5f87ef177f CB-5923 add env variables for product settings (#3179)
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2025-01-10 11:53:28 +01:00
Anastasiya f4b0a15b70 Fix incorrect punctuation in the Russian localization (#3187) 2025-01-09 14:01:17 +01:00
Joel Wetzell e124f41943 fix typo (#3178) 2025-01-09 13:54:16 +01:00
sergeyteleshev afc8d7c52b CB-6060 makes tree selection resource more universal + fixes scripts bug with disabled folder creation (#3181) 2025-01-09 14:39:18 +03:00
Sychev AndreyandDaria Marutkina fa1b07ee6b CB-6097 Fix: The Show duplicates button in the Grouping panel does not work (#3176)
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2025-01-07 12:48:24 +03:00
Sychev AndreyandDaria Marutkina de6f9b7dae CB-5832 Add SQL editor shortcut to save script (#3167)
* CB-5832 feat: add shortcut for save as script action

* CB-5832 feat: add info about a shortcut to Shortcuts modal

* CB-5832 fix: ru localization

* CB-5832 refactor: use SqlEditorView for action registration

* CB-5832 refactor: use SqlEditorView for action registration

* CB-5832 refactor: check action in handler

* CB-5832 refactor: bind function in constructor

---------

Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2025-01-07 12:47:52 +03:00
Daria Marutkina 60d90b9e73 dbeaver/pro#3921 Update README file (#3177) 2025-01-06 14:13:12 +03:00
serge-rider 4ced9189e1 dbeaver/pro#3921 24.3.3 version bump 2024-12-30 18:13:05 +01:00
Serge Riderandkseniaguzeeva 827865a973 dbeaver/pro#3911 AI and SQL control commands (#3166)
* dbeaver/pro#3911 AI and SQL control commands

* dbeaver/pro#3911 AI and SQL control commands

---------

Co-authored-by: kseniaguzeeva <112612526+kseniaguzeeva@users.noreply.github.com>
2024-12-30 17:26:51 +01:00
AnastasiyaandEvgenia 70b6fc25a9 CB-6088 fix upper cases in localization; add localization (#3168)
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
2024-12-30 16:46:47 +01:00
sergeyteleshevandEvgenia efd0be6a1a Cb 5448 sql assist doesnt work after alias with enabled use long object names (#3140)
* CB-5448 adds replacementOffset logic to autocomplete so we have table long names setting

* CB-5448 cleanup

* CB-5448 cleanup

* CB-5448 pr fixes

---------

Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
2024-12-30 11:41:30 +01:00
DenisSinelnikov 3bcbf342c6 Merge pull request #3164 from dbeaver/CB-6085-fix-regex-in-web-sql-file-loader-servlet
Cb 6085 fix regex in web sql file loader servlet
2024-12-27 21:09:11 +04:00
DenisSinelnikov 882979e8c0 Merge branch 'devel' into CB-6085-fix-regex-in-web-sql-file-loader-servlet 2024-12-27 21:01:06 +04:00
ca83a1f167 CB-5734 return template configuration for auth provider (#3162)
* CB-5734 return template configuration for auth provider

* CB-5734 feat: fetch templateConfiguration

---------

Co-authored-by: Sychev Andrey <44414066+SychevAndrey@users.noreply.github.com>
Co-authored-by: Andrey Sychev <nukemoore@gmail.com>
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
2024-12-27 17:58:15 +01:00
DenisSinelnikovandDaria Marutkina 92ee21d136 CB-5609. Added validate name for renaming s3 files (#3163)
* CB-5609. Added validate name for renaming s3 files

* CB-5609. Refactor after review

* CB-5609. Refactor after review

* CB-5609. Refactor after review

* CB-5609. Remove symbol

---------

Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2024-12-27 17:52:10 +01:00
Daria Marutkina 3eba6945dd Merge branch 'devel' into CB-6085-fix-regex-in-web-sql-file-loader-servlet 2024-12-27 16:03:39 +01:00
3c73cb2aa8 CB-4756 feat: save grouping panel state between remounts (#3158)
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
Co-authored-by: sergeyteleshev <iamsergeyteleshev@gmail.com>
2024-12-26 11:00:55 +01:00
Ainur 543d175a6f CB-6085 blob upload validate only uuid 2024-12-26 10:40:15 +01:00
Ainur 3dace0d676 CB-6085 blob upload validation fix 2024-12-26 10:13:57 +01:00
Alexander SkoblikovandDaria Marutkina bd851433e7 dbeaver/pro#3739 event registry (#3159)
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2024-12-25 20:30:58 +01:00
DenisSinelnikovandAinur 46fedc0198 CB-5954. Added logic for login by login attribute (#3148)
* CB-5954. Added logic for login by login attribute

* CB-5954. Added logic for login by login attribute

* CB-5954. Added exception for additional login

* CB-5954. Fixed if bind DN not filled

* CB-5954. Refactor after review

* CB-5954. Refactor after review

* CB-5954. Fixed localization

* CB-5954. Fixed localization

* CB-5954. Fixed localization

* CB-5954. Fixed localization

* CB-5954. Fixed checkstyle

* CB-5954. Changed tooltips

---------

Co-authored-by: Ainur <59531286+yagudin10@users.noreply.github.com>
2024-12-25 17:47:24 +01:00
sergeyteleshevandDaria Marutkina 8f61321169 CB-5978 api token change description (#3160)
* CB-5978 hides API Token provider during configuration wizzard

* CB-5978 hides API token only for config mode (fix)

---------

Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2024-12-25 16:15:48 +01:00
aa778e0f94 CB-6059 create team with uppercase fix (#3142)
* CB-6059 create team with uppercase fix

* CB-6069 fixes error with team creation with teamId in upper case

* CB-6059 fix potential npe

---------

Co-authored-by: sergeyteleshev <iamsergeyteleshev@gmail.com>
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2024-12-25 12:36:53 +01:00
398f9b775e Cb 5988 plugin template (#3136)
* CB-5988 generate plugin template

* CB-5988 add add plugin script

* CB-5988 review fixes

---------

Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
Co-authored-by: sergeyteleshev <iamsergeyteleshev@gmail.com>
2024-12-24 14:20:08 +01:00
78aafaf9aa CB-3508 create events for session async tasks (#3036)
* CB-3508 create events for session async tasks

* CB-3508 remove redundant events

* CB-3508 update async web task event logic

* CB-6000 refactor: migrate AsyncTask code to core-root package

* CB-6000: fix

* CB-3508 use only update async task event

* CB-3508 add result info to async task event

* CB-6000 feat: change the way of updating task state

* CB-6000 refactor: rename type and property

* CB-6000 fix: use id from server

* CB-3508 do not have results in task info event

* CB-6000 changes after BE update

* CB-6000 fix: set only status on status update

* CB-3508 fixes after review

* CB-6000 refactor: task id

return back task id generation and saving on creation. Added second map filled on running and linking backend Id and frontend Id. Added helper method to get task

* CB-6000 refactor: handle race condition

add pending events map to save last status if it's came earlier than we saved the task

* CB-6000 refactor: AsyncTask creation

* CB-3508 fixes build

* CB-6000 fix: retry update task info later if locked

* CB-6000 refactor: add a comment about delayed update

---------

Co-authored-by: Andrey Sychev <nukemoore@gmail.com>
Co-authored-by: Sychev Andrey <44414066+SychevAndrey@users.noreply.github.com>
Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
Co-authored-by: sergeyteleshev <iamsergeyteleshev@gmail.com>
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2024-12-24 13:45:16 +01:00
ShadelessFox 449b66f6eb dbeaver/pro#3659 Convert OSGI localization bundles to UTF-8 (#3144) 2024-12-23 18:56:37 +01:00
Alexander Skoblikov 2f03486b49 dbeaver/pro#3807 jakarta websocket (#3141)
* dbeaver/pro#3807 jakarta websocket

* dbeaver/pro#3807 fix timeout

* dbeaver/pro#3807 fix test deps
2024-12-23 14:43:40 +01:00
Daria Marutkina d798fd627b dbeaver/pro#3857 Update README file (#3149) 2024-12-23 13:40:57 +01:00
Serge Rider 48e0cda85d dbeaver/pro#3857 24.3.2 version bump 2024-12-17 20:52:08 +01:00
AinurandDaria Marutkina 7f13f70b26 CB-6044 do not save api token on auth (#3138)
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2024-12-17 20:16:16 +01:00
8d0b0e1c65 CB-5807. Implemented logic to get localized text by locale, translate… (#3117)
* CB-5807. Implemented logic to get localized text by locale, translated global prefer and part of identity provider on en/ru

* CB-5807. Refactor after review

* CB-5807. Refactor after review, move logic to base class

* CB-5807. Refactor after review, move logic to base class

* CB-5807. Added new translation for IP

* CB-5807. Refactor after review

* CB-5807. Refactor after review

* CB-5807. Refactor after review

* CB-5807. Fixed typo in ru locale

* CB-5807. Refactor after review

* CB-5807. Revert

* CB-5807. Remove comment

---------

Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
Co-authored-by: Ainur <59531286+yagudin10@users.noreply.github.com>
2024-12-17 18:14:24 +01:00
855d5914ef CB-5074 fix: temporary fix of setting undefined as locale (#3139)
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
Co-authored-by: sergeyteleshev <iamsergeyteleshev@gmail.com>
2024-12-17 16:43:53 +01:00
Elizabeth 71e03c7bf2 dbeaver/dbeaver#36415 Add support for composite values to the grouping panel for DBeaver (#3137) 2024-12-17 16:09:09 +01:00
sergeyteleshevandEvgenia eada3fddb5 CB-5955 Add create connection/folder actions in navigator tree (#3130)
* CB-5955 adds create menu (connection, folder)

* CB-5955 hides folder creation for non authorized users

* CB-5955 fixes label

* CB-5955 disable new connection

* CB-5955 shows create actions only for folders and connections nodes

* CB-5955 cleanup

* CB-5955 Add handler to hide create menu when no items are available

* CB-5955 Refactor handler to directly bind elementsTreeActionHandler for folder creation

* CB-5955 pr fixes

* CB-5955 creates connection according to the selected in tree project + tree selection refactor

* CB-5955 reverts old behavior with Generate SQL submenu for connections

* CB-5955 cleanup

* CB-5955 adds connection via menu into any folder

* CB-5955 updates TS references

* CB-5955 cleanup

* CB-5955 pr fixes

* CB-5955 pr fixes

* CB-5955 pr fixes

* CB-5955 cleanup

* CB-5955 fixes bug with dissapeared create connection button at top bar

* CB-5955 pr fixes

---------

Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
2024-12-16 17:01:32 +01:00
alex 92c7cef0c6 CB-6039 prevent click through menu (#3134)
* CB-6039 prevent click through menu

* CB-6039
2024-12-16 14:02:43 +03:00
Alexander Skoblikovandmr-anton-t 522620e20d Dbeaver/pro#3726 parameters provider (#3128)
* dbeaver/pro#3726 wip

* dbeaver/pro#3726 create datasource descriptor only via registry

* dbeaver/pro#3726 cloudbeaver fixes

* dbeaver/pro#3726 initial test

---------

Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
2024-12-13 12:33:48 +01:00
alexandEvgenia ea342f058b Cb 4071 data grid context menu (#3114)
* CB-5831 migrate data grid context menu

* CB-5831 use switch instead of return

* CB-5831 migrate save actions

* CB-5831 apply primary color

* CB-4071 simplify logic

* CB-4071 simplify logic

* CB-4071 change naming

* CB-4071 review fixes

* CB-4071 add items based on condition

* CB-4071 remove old context menu

* CB-4071 pass handlers to panel

* CB-4071 add gap to the menu

* CB-4071 check data source

* CB-4071 support prev behaviour

* CB-4071 make context more strict

---------

Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
2024-12-12 18:50:21 +03:00
alexandEvgenia db9df1f810 Cb 5831 refresh whole tree (#3129)
* CB-5831 outdate children when refresh node

* CB-5831 freeze resource until tree is constructed

---------

Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
2024-12-12 14:20:16 +03:00
Sychev AndreyandDaria Marutkina 2f80d1ce13 CB-3332 shortcuts improvements (#3126)
* CB-3332 refactor: data-viewer shortcuts

move them to the plugin folder, make them IKeyBinding shape to use in transformKeys

* CB-3332 refactor: change ctrl hotkey to mod

* CB-3332 refactor: use new DATA_VIEWER_SHORTCUTS, don't replace backspace

* CB-3332 refactor: remove redundant shortcuts, update naming

* CB-3332 feat: introduce new shortcuts for rows managing

In order to let mac users use shortcuts, Insert key was changed to KeyR

* CB-3332 feat: move shift key to the beginning of all shortcuts

---------

Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2024-12-12 14:19:34 +03:00
32e50c40f4 CB-5945. Mark deprecate for template (#3123)
* CB-5933. Fixed typo

* CB-5945. Refactor after review

* CB-5945. Refactor after review

---------

Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
Co-authored-by: Ainur <59531286+yagudin10@users.noreply.github.com>
2024-12-12 11:33:18 +01:00
6830e34b2a CB-5933 Connection state is not synchronized with other resources triggering connection state (#3119)
* CB-5933. Added event for disconnect datasource

* CB-5933. Added to gql

* CB-5933 adds handlers for disconnected/connected events

* CB-5933. Rename topic

* CB-5933. Rename topic

* CB-5933. Added event for connect to database

* СB-5933 adds ConnectionDisconnectEventHandler

* CB-5933. Fixed typo

* CB-5933 fixes disconnect handler + adds connect handler for connections

* CB-5933 fix for connected event

* СB-5933 marks outdated connected/disconnected connections on event handling

* CB-5933 cleanup

* CB-5933 pr fixes

* CB-5933 pr fixes

* CB-5933. Refactor after review

---------

Co-authored-by: denis.sinelnikov <denis.sinelnikov@dbeaver.com>
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
2024-12-12 11:27:12 +01:00
Anastasiya 02e6b9c6de dbeaver/pro#3712 update contributors readme part (#3131) 2024-12-11 14:12:17 +03:00
22af3b1c5e CB-5935 removes perform update for changing connection view (#3124)
Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
2024-12-11 13:16:09 +03:00
d09bb9bb58 CB-4070 Migrate Project form to form template (#3101)
* CB-4070 small layout issues problems from the ticket comments

* CB-4070 ux fixes for project create/edit behavior

* CB-4070 pr fixes

---------

Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2024-12-11 11:05:27 +03:00
Alexander SkoblikovandEvgenia c2523a687b CB-6026 use nio api for deletion (#3125)
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
2024-12-11 09:04:49 +01:00
Georgii 4b2e1a9c05 dbeaver/dbeaver#36488 add missing lib-sql bundlepath (#3127) 2024-12-10 11:52:43 +01:00
Alexeyandsergeyteleshev 2357b0a0cf fix: dev server websocket proxy (#3122)
Co-authored-by: sergeyteleshev <iamsergeyteleshev@gmail.com>
2024-12-06 14:14:58 +03:00
Sychev Andreyandmr-anton-t a835f7e215 Cb 5860 bump versions (#3116)
* CB-5860 chore: bump versions

* CB-5860 chore: bump i18next

---------

Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
2024-12-06 07:39:49 +03:00
Ainur 5e86e161b4 CB-6015 try to find user with uppercase (#3120) 2024-12-05 16:05:33 +00:00
0b5af36628 Dbeaver/dbeaver vscode#22 split core plugins (#3102)
* dbeaver/dbeaver-vscode#22 wip

* dbeaver/dbeaver-vscode#22 wip

* dbeaver/dbeaver-vscode#22 wip

* dbeaver/dbeaver-vscode#22 gql model fix

* dbeaver/dbeaver-vscode#22 missed class fix

* dbeaver/dbeaver-vscode#22 ce fixes

* dbeaver/dbeaver-vscode#22 fixes

* dbeaver/dbeaver-vscode#22 review fixes

---------

Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
Co-authored-by: Alexey <wrouds@gmail.com>
2024-12-04 08:20:06 +01:00
Daria Marutkina 7f1c9ceec0 Merge pull request #3108 from dbeaver/dariamarutkina-patch-2
dbeaver/pro#3712 Update README file
2024-12-03 16:25:34 +01:00
Mikhailov Grigorii c31416c7d7 dbeaver/dbeaver-devops#1553 Fixed chown in dockerfile (#3113) 2024-12-03 14:04:06 +01:00
Mikhailov Grigorii 03b0467c97 dbeaver/dbeaver-devops#1553 Reverted run as root user in dockerfile (#3106) 2024-12-02 16:36:07 +01:00
Daria Marutkina e689836a4e dbeaver/pro#3712 Update README file 2024-12-02 16:28:22 +01:00
74dbd50690 dbeaver/dbeaver-vscode#7 Driver downloads API (#3069)
* dbeaver/dbeaver-vscode#7 Driver downloads API

* dbeaver/dbeaver-vscode#7 Bring short driver ID into GQL

* #7 fix: make required fields required

* dbeaver/dbeaver-vscode#7 fix check driver maven library validation

---------

Co-authored-by: Alexey <wrouds@gmail.com>
Co-authored-by: Ainur <ainur.iagudin@dbeaver.com>
2024-12-02 12:58:45 +01:00
alex 85bfcc0674 CB-4898 remove extra deps (#3100) 2024-11-28 12:04:47 +03:00
Alexander SkoblikovandAlexey ea8605eff8 dbeaver/dbeaver-vscode#45 server feature extension (#3075)
* dbeaver/dbeaver-vscode#45 server feature extension

* dbeaver/dbeaver-vscode#45 review fix

---------

Co-authored-by: Alexey <wrouds@gmail.com>
2024-11-26 18:18:16 +03:00
sergeyteleshev ff2cc51c11 CB-5872 adds instruction with link for AWS product updation (#3098) 2024-11-26 22:33:27 +08:00
Serge Rider 979cecff04 dbeaver/pro#3712 24.3.1 version bump 2024-11-25 23:25:38 +04:00
b2a0a88983 CB-5918 Add new plugin (#3081)
* CB-5918 add holidays plugin

* CB-5918 add plugin-holidays as a reference to product default

* CB-5918 fix holidays plugin, add icons

* CB-5918 fix: don't run many renders simultaneously

* CB-5918 fix: flakes respawn

previously flakes kept x position that looked weird especially when user resize the window making it bigger

* CB-5918 refactor: adjust flakes size and speed

make flakes bigger and a little bit slower, reduce amount of flakes

* CB-5918 refactor: make flakes look like flakes

add shape prop to create different shapes of snowflakes

add drawSnowflake to render snowflakes

* CB-5918 Extract Logo registration to separate plugin

In order to customize Logo for different occasions without creating circular dependencies with other plugins

* CB-5918 refactor: update exports in holiday plugin

* CB-5918 feat: make logo src a prop

use holidays service to set custom logo

* CB-5918 refactor: update logos

* CB-5918 refactor: snowflakes removing faster if more flakes

* CB-5918 refactor: reduce action icon rotation on click

* CB-5918 fix: deps

* CB-5918 fix: ts-config reference

* CB-5918 refactor: use debounce for resizing

* CB-5918 refactor: add throttle to handleMouseMove

* CB-5918 refactor: update logo

* CB-5918 fix: start date

* CB-5918 feat: add rotation to snowflakes

* CB-5918 fix: dep version

* CB-5918: refactor: split up app logo plugin to public and admin parts

* CB-5918 refactor: split holidays plugin up to two parts: admin and public

* CB-5918 refactor: avoid using anonymous functions in Christmas class

* CB-5918 refactor: HolidayActionButton

* CB-5918 refactor: IHoliday interface naming

* CB-5918 fix: update TS refs

* CB-5918 fix: legacy color notation and lost this

* CB-5918 refactor: remove redundant plugin bootstrap export

* CB-5918 refactor: rename private property

* CB-5918 refactor: use IconButton core block inside HolidayActionButton

* CB-5918 refactor: add check in addHoliday method

* CB-5918 refactor: simplify logoSrc condition

* CB-5918 refactor: remove redundant styles

* CB-5918 refactor: use descriptive names for plugins bootstrap

* CB-5918 refactor:  specify dep version

* CB-5918 refactor: improve Christmas class readability

* CB-5918 refactor: use lazy import for logo

* CB-5918 refactor: export lazy components properly

* CB-5918 fix: holiday end date

---------

Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
2024-11-25 21:09:01 +03:00
alexandDaria Marutkina 285a216b4c CB-5125 do not trigger logo in configuration stage (#3096)
* CB-5125 do not trigger logo in configuration stage

* CB-5125 use publicDisabled field instead

* CB-5125 bind method

---------

Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2024-11-25 18:13:54 +01:00
alex 6a82a3155f CB-5506 support directional selections (#3095) 2024-11-25 18:18:26 +03:00
ShadelessFoxandkseniaguzeeva 19a5506229 dbeaver/pro#3700 Hide API token authentication method (#3093)
Co-authored-by: kseniaguzeeva <112612526+kseniaguzeeva@users.noreply.github.com>
2024-11-25 13:55:34 +03:00
Ainur 51af88e3bc CB-5964 read only metadata delete fix (#3094) 2024-11-25 10:51:45 +00:00
Ainur f3660fa277 CB-5524 rm resource validation fix (#3091) 2024-11-25 10:50:44 +00:00
Ainur d2f592c8be CB-5971 do not show transactions button if not supported (#3092) 2024-11-25 10:36:53 +00:00
alexandDaria Marutkina bde31c3653 CB-5960 sort features (#3089)
* CB-5960 sort features

* CB-5960 sort providers

* CB-5960 sort on component level

---------

Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2024-11-22 17:59:15 +03:00
990fbe28f5 CB-5895. Added new parameter link to buy license for getProductInfo API (#3080)
* CB-5895. Added new parameter link to buy license for getProductInfo API

* CB-5951 add purchase field

---------

Co-authored-by: naumov <iamemptyhuh@gmail.com>
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
Co-authored-by: Ainur <59531286+yagudin10@users.noreply.github.com>
2024-11-22 13:16:41 +01:00
serge-rider 350136f797 CB-5584 VSC fix 2024-11-22 12:39:05 +01:00
ae1f0b7470 Devops#1553 root user fix (#3087)
* Reapply "dbeaver/dbeaver-devops#1553 Added user dbeaver in dockerfile cloudbeaver (#3067)"

This reverts commit a36a5550e0.

* dbeaver/dbeaver-devops#1553 updated base-java image with user

* dbeaver/dbeaver-devops#1553 fixed user usage and ownership applying

* dbeaver/dbeaver-devops#1553 changed  GID UID

* dbeaver/dbeaver-devops#1553 desc of chowner fixed

* dbeaver/dbeaver-devops#1553 fixed user creation

* dbeaver/dbeaver-devops#1553 Added creating dbeaver user in ce dockerfile

* dbeaver/dbeaver-devops#1553 Removed comment

* dbeaver/dbeaver-devops#1553 Removed comment

* dbeaver/dbeaver-devops#1553 Rewrited comment

* dbeaver/dbeaver-devops#1553 Replaced UID on user name

---------

Co-authored-by: Greg Miller <ggxedq@gmail.com>
Co-authored-by: Mikhailov Grigorii <49814763+ggxed@users.noreply.github.com>
2024-11-21 18:29:18 +01:00
DenisSinelnikovandEvgenia cd901b922f Cb 5584 provide more information in the debug log for auditing (#3061)
* CB-5584. Added more logs for gql and rest in RM. Added new parameter in global preferences for showing additional logs

* CB-5584. Added more logs for gql and rest in RM. Added new parameter in global preferences for showing additional logs

* CB-5584. Rename parameter

* CB-5584. Rename parameter

* CB-5584. Refactor after review

* CB-5584. Refactor after review

* CB-5584. Renamed parameter

* CB-5584. Added check variable for contains restricted variable

* CB-5584. Fixed showing wrong sessionId.

---------

Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
2024-11-21 16:52:42 +01:00
alexandEvgenia 56b9eab16f CB-5919 avoid unnecessary navigations tasks (#3090)
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
2024-11-21 17:27:25 +03:00
Sychev AndreyandEvgenia 94aaf7bf5e CB-5703 refactor: optimize data grid onScroll handler (#3071)
handleScroll in DataGrid entails small performance degradation due to el.scrollTop, el.clientHeight, el.scrollHeight calls and hence reflow of layout, more on that here: https://gist.github.com/paulirish/5d52fb081b3570c81e3a/565c05680b27c9cfd9f5e971d295cd558c3e1843

What is done:
1. throttle added to not fire handleScroll on every render, because the main goal of that function is to detect when a user approaches the end of a page = reduce number of calls

2. Inside the handler the code was  refactored in a way that we get scrollTop only once to calculate toBottom and inverse the clause logic and replace early return (!A || !B) with a clause with (A && B) logic to not check B on every call which is also triggering reflow.

Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
2024-11-21 16:00:56 +03:00
DenisSinelnikovandEvgenia b816a6d8a0 CB-5695. Fixed npe when RP turned on, but not configured (#3077)
* CB-5695. Fixed npe when RP turned on, but not configured

* CB-5695. Fixed checkstyle

---------

Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
2024-11-21 10:01:42 +01:00
alexandDaria Marutkina e56a298acc CB-5573 ask for commit confirmation on connection edit recconect (#3085)
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2024-11-20 17:08:45 +01:00
serge-rider ff13d56d42 dbeaver/pro#3648 Maven resource plugin version 2024-11-20 16:06:48 +01:00
serge-rider a36a5550e0 Revert "dbeaver/dbeaver-devops#1553 Added user dbeaver in dockerfile cloudbeaver (#3067)"
This reverts commit 2cdc43a29f.
2024-11-20 14:25:19 +01:00
Mikhailov GrigoriiandDaria Marutkina 2cdc43a29f dbeaver/dbeaver-devops#1553 Added user dbeaver in dockerfile cloudbeaver (#3067)
* dbeaver/dbeaver-devops#1553 Added user dbeaver in dockerfile cloudbeaver

* dbeaver/dbeaver-devops#1553 Create dockerfile for cloudbeaver update

* dbeaver/dbeaver-devops#1553 Added dockerfile with upgrade script

* dbeaver/dbeaver-devops#1553 Fixed script path

* dbeaver/dbeaver-devops#1553 Fixed entrypoint

* dbeaver/dbeaver-devops#1574 Reworked script, added start process as dbeaver user

* dbeaver/dbeaver-devops#1574 Renamed script for launch container

* dbeaver/dbeaver-devops#1574 Added comments to script launch-products

---------

Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2024-11-20 12:19:01 +01:00
AnastasiyaandDaria Marutkina 21a70c33a3 CB-5947 fix server config descriptions (#3079)
* CB-5947 fix server config descriptions

* Update ru.ts change description

---------

Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2024-11-20 12:54:19 +03:00
4323578b03 СB-5796 Metadata/data editor - error when changing server settings (#3051)
* СB-5796 make no connection to db if it is already connected

* Revert "СB-5796 make no connection to db if it is already connected"

This reverts commit 4459891e06.

* CB-5796 adds extra checks to connection shield for proper connection

* CB-5796 fixes for case with table

* CB-5796 adds loader between switching from simple to advanced connection type

---------

Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
Co-authored-by: alex <48489896+devnaumov@users.noreply.github.com>
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
2024-11-20 09:37:02 +03:00
Ruslan MusaevandMatvey16 58346aef65 dbeaver/pro#3484 Add statistic for cloud (#3068)
Co-authored-by: Matvey16 <82543000+Matvey16@users.noreply.github.com>
2024-11-20 04:39:48 +01:00
DenisSinelnikovandEvgenia 9d8e021e6c CB-5886. Fixed import number with float, without rounding (#3072)
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
2024-11-19 10:12:53 +01:00
Daria Marutkina 0144742878 dbeaver/pro#3641 Update README file (#3078) 2024-11-18 12:24:30 +01:00
Alexander SkoblikovandEvgenia 0943b80942 CB-5946 force lowercase userid (#3074)
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
2024-11-18 09:47:18 +01:00
Alexander Skoblikov 5293be4d4a CB-5939 do not send server information to a client side (#3070) 2024-11-15 11:14:29 +00:00
serge-rider 5bcef9278e dbeaver/pro#3643 Utils refactoring 2024-11-13 08:38:56 +01:00
Serge Rider bbe0e15370 dbeaver/pro#3641 24.3.0 version bump 2024-11-12 22:01:04 +01:00
Serge Rider f31be24a49 dbeaver/pro#3641 24.3.0 version bump 2024-11-12 21:56:10 +01:00
cee8f00b9e CB-5016 add disable import option to global config (#3058)
* CB-5016 add disable import option to global config

* CB-5016 refactor: move logic from DataViewerSettingService to DataImportSettingsService

* CB-5016 refactor: simplify

* CB-5016 refactor: move disable import locale token to data-import-plugin

* CB-5016 refactor: ru locale

---------

Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
Co-authored-by: alex <48489896+devnaumov@users.noreply.github.com>
2024-11-12 18:33:22 +01:00
Sychev AndreyandDaria Marutkina a23c2c2a55 CB-5775 refactor: make default group text aligned with other tabs (#3064)
* CB-5775 refactor: make default group text aligned with other tabs

* CB-5775: return accidentally removed gap prop

* CB-5775 refactor: return TextPlaceholder back

* CB-5775 refactor: make style important

---------

Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2024-11-12 18:27:15 +01:00
sergeyteleshev 110546a022 CB-5833 Fix e-mails recognition for SSO (#3019) 2024-11-12 16:17:49 +00:00
mayerandDaria Marutkina a779a0e95e dbeaver/dbeaver-devops#1590-changed-server-port-var (#3054)
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2024-11-12 12:47:37 +01:00
sergeyteleshevandEvgenia 3b9275c00a CB-5891 User - error after disabling and deleting (#3056)
* CB-5891 on disable user changes form state according to its real state

* CB-5891 pr fixes

* CB-5891 cleanup

* CB-5891 pr fixes

---------

Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
2024-11-11 14:27:04 +03:00
59c924c3d7 CB-5555 fix cursor going to the beginning on undo/redo (#3055)
This commit handles the situations and sets fallback when there are text changes but selection has not been set (for example, its position outside of the doc). It that case we set the cursor in the end of the result string. It helps us to keep the cursor position more consistent.

Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
2024-11-11 14:24:29 +03:00
sergeyteleshevandalex f1d1bb2bc2 CB-5691 AI prompt - add shortcut for Translate action (#3059)
* CB-5691 adds ctrl+enter submit for textarea in form

* CB-5691 removes unneeded prop: disableCtrlEnterSubmit

---------

Co-authored-by: alex <48489896+devnaumov@users.noreply.github.com>
2024-11-11 14:23:27 +03:00
Sychev Andrey c9a87275db CB-3757 fix: change white-space prop (#3065) 2024-11-11 14:21:24 +03:00
Sychev AndreyandDaria Marutkina addeeb0c28 CB-5765 refactor: remove word local from the phrase (#3063)
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2024-11-08 16:01:12 +01:00
alexandEvgenia 7735550544 CB-5743 add autoGenerated field to api (#3043)
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
2024-11-08 15:59:31 +01:00
Georgii b46bcce0a7 dbeaver/dbeaver-infra#155 add node-modules to exclude (#3057) 2024-11-08 10:51:11 +01:00
fec65a24ea CB-5725 hide desktop handlers in auth dialog (#3052)
Co-authored-by: kseniaguzeeva <112612526+kseniaguzeeva@users.noreply.github.com>
Co-authored-by: Ainur <59531286+yagudin10@users.noreply.github.com>
2024-11-07 12:21:10 +01:00
alexandmr-anton-t f75caccb73 CB-5907 add labels to user and team form (#3049)
* CB-5907 add labels to user and team form

* CB-5907 fix structure

---------

Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
2024-11-07 13:25:34 +03:00
Alexander Skoblikov 9f7c8bfc59 CB-5912 npe fix (#3053) 2024-11-06 12:37:47 +00:00
Sychev AndreyandDaria Marutkina 33c75c5ee4 CB-5878 add title for inline editor button (#3042)
* CB-5878 add title for inline button

* CB-5878 refactor: change reject to cancel, add other locales

---------

Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2024-11-06 14:41:55 +03:00
sergeyteleshevandEvgenia 30e4e6c9bf CB-5892 removes min fetch size setting (#3039)
* CB-5892 removes min fetch size setting

* CB-5892 edits min fetch to 10

---------

Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
2024-11-06 14:38:57 +03:00
sergeyteleshevandEvgenia 7c8c506870 CB-5290 handles messages and closing for readonly scripts (#3034)
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
2024-11-06 14:37:25 +03:00
Serge Rider cd30b32c23 CB-5904 Global project fix (#3048) 2024-11-05 16:59:52 +00:00
Serge Rider 0013507cca dbeaver/dbeaver#23361 Deploy script fix 2024-11-05 14:33:06 +01:00
18cb9e5956 dbeaver/pro#3465 udbt reconnect improve (#3029)
* dbeaver/pro#3465 udbt reconnect improve

* dbeaver/pro#3465 Make use of `java.time.Duration` in `PeriodicJob`

---------

Co-authored-by: kseniaguzeeva <112612526+kseniaguzeeva@users.noreply.github.com>
Co-authored-by: ShadelessFox <yanuari.channel@gmail.com>
2024-11-05 14:20:06 +01:00
Alexey 22cfdb7b4b fix: vscode workspace launch conf (#3046) 2024-11-05 16:00:39 +03:00
Ainur 4380ac1f3c CB-5738 api for tokens (#3023) 2024-11-05 12:32:08 +00:00
Serge Rider 8d607b8a56 dbeaver/dbeaver#23361 libsql driver (#3044)
* dbeaver/dbeaver#23361 Dependencies

* dbeaver/dbeaver#23361 Add LibSQL to CB CE
2024-11-05 12:50:52 +01:00
DenisSinelnikovandAinur eacb1813a3 CB-5827. Fixed empty delimiter for reverse proxy, get default if empty parameter (#3035)
Co-authored-by: Ainur <59531286+yagudin10@users.noreply.github.com>
2024-11-05 12:12:10 +01:00
Serge Rider b7956830aa Merge branch 'devel' of https://github.com/dbeaver/cloudbeaver into devel 2024-11-05 07:57:58 +01:00
Evgenia 897c4e8913 Merge pull request #3041 from dbeaver/EvgeniaBzzz-patch-2
Update CB-2424 README.md
2024-11-04 19:14:05 +03:00
Evgenia 5922a5f7ad Update CB-2424 README.md
link fixed
2024-11-04 19:07:23 +03:00
Daria Marutkina 2af829cc2e CB_2424 update README, add release notes (#3040) 2024-11-04 15:13:43 +03:00
Alexey 80c757f25b dbeaver/dbeaver-vscode#38 feat: navigation tree (#3038)
* dbeaver/dbeaver-vscode#38 feat: navigation tree

* dbeaver/dbeaver-vscode#38 chore: code style

* dbeaver/dbeaver-vscode#38 chore: rename `navRefreshNode` -> `navReloadNode`
2024-11-04 14:36:25 +03:00
Serge Rider a51bb2f4dc dbeaver/pro#3537 24.2.5 version bump 2024-10-30 05:43:23 +01:00
Serge Rider e7359b76fe dbeaver/pro#3537 24.2.5 version bump 2024-10-29 23:33:18 +01:00
alexandDaria Marutkina 2f120d6a4f Cb 5819 administration tables redesign (#3033)
* CB-5819 add user panel

* CB-5819 redesign teams

* CB-5819 remove extra styles

* CB-5819 review fixes

* CB-5819 revert group title

* CB-5819 remove code duplication

* CB-5819 fix import

* CB-5819 move user table loader

* CB-5819 keep loader mounted

* CB-5819 truncate titles

---------

Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2024-10-29 20:43:36 +01:00
Ainur d3be30f55b CB-5623 fix npe (#3030) 2024-10-29 16:12:10 +00:00
alexandDaria Marutkina 2c7df05c45 CB-3446 add d3 imports (#3025)
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2024-10-29 10:05:46 +03:00
Ainur 11167d5802 CB-5683 change password for disabled user fix (#3032) 2024-10-28 15:24:38 +00:00
sergeyteleshevandDaria Marutkina 4cfb27b33b CB-5645 [EE\AWS] Change the instruction in the Version update tab (#3017)
* CB-5645 adds core-links and GithubLinks

* CB-5645 adds BaseUpdate instruction to EE, TE, AWS

* CB-5645 pr fixes

* CB-5645 REVERT IT (need for tests)

* Revert "CB-5645 REVERT IT (need for tests)"

This reverts commit 6c53b907c7.

---------

Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2024-10-25 13:17:30 +03:00
sergeyteleshevandEvgenia 0126b204c0 CB-5566 fixes checkboxes for tables (#3026)
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
2024-10-24 18:34:41 +03:00
alexandDaria Marutkina 6dbcfe408e CB-5745 explicitly set word break on field description (#3027)
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2024-10-24 14:31:02 +02:00
Serge Rider de2d9f029f CB-5732 Navigator filters fix for optional nodes (#3024) 2024-10-24 12:33:34 +02:00
Elizabeth 2f895f6dab dbeaver/pro#3419 Don't load additional info on typing with auto activation of completion (#3022) 2024-10-24 12:10:08 +02:00
sergeyteleshevandDaria Marutkina c7af629d8a CB-5712 adds loaders for administration menu items (#3011)
* CB-5712 adds loaders for administration menu items

* CB-5712 pr fixes

* CB-5712 pr fix for preloading serverConfigResource in constructor

* CB-5712 removes preload from AuthProviderResource

---------

Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2024-10-24 11:04:23 +03:00
sergeyteleshevandmr-anton-t 1782ce45a7 CB-5793 removes extra space for table cells (#3013)
Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
2024-10-24 11:04:00 +03:00
51e0218682 CB-5575 pass column key along with row (#3004)
* CB-5575 pass column key along with row

* CB-5575 change arg

---------

Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
2024-10-24 11:03:30 +03:00
Ainur e08353f13f CB-5792 add header for static content (#3018) 2024-10-23 15:46:26 +00:00
AinurandDenisSinelnikov 383952c60e CB-5838 check all row identifiers fix (#3014)
Co-authored-by: DenisSinelnikov <142215442+DenisSinelnikov@users.noreply.github.com>
2024-10-23 15:45:13 +00:00
alexandDaria Marutkina 5282175b7c CB-5701 allow to choose provider by keyboard (#3008)
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2024-10-22 13:21:49 +03:00
alexandDaria Marutkina b4db34ea48 CB-5706 do not increase height (#3002)
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2024-10-21 13:25:10 +03:00
Evgenia 9672e5b3b4 Merge pull request #3015 from dbeaver/EvgeniaBzzz-patch-1
Update README.md - CB RN 24.2.3
2024-10-21 12:27:20 +03:00
Evgenia 48a7a4f806 Update README.md - RN 24.3.2 2024-10-21 12:16:04 +03:00
Anastasiya cbceee6ec3 dbeaver/tech-docs#654 update gql comments, remove outdated info (#3012) 2024-10-18 18:38:56 +02:00
sergeyteleshev ffe0a18828 Cb 5757 unit tests for core utils and core blocks (#2961)
* CB-5757 adds unit tests for getDomainFromUrl helper

* CB-5757 adds unit tests for getTextFileReadingProcess helper

* CB-5757 adds unit tests for TextTools helper

* CB-5757 adds unit tests for downloadFromURL helper

* CB-5757 adds unit tests for Deferred and PromiseExecutor

* CB-5757 adds unit tests for core-blocks hooks

* CB-5757 fixes the tests
2024-10-18 08:34:19 +03:00
alex 115cfb3bde Cb 5753 u tests (#2964)
* CB-5753 add localization service test, fix grammar

* CB-5753 add test for the getDomainFromUrl

* CB-5753 add test for the client activity service

* CB-5753 add NodeManagerUtils tests

* CB-5753 add more cases

* CB-5753 pass args correctly
2024-10-18 08:33:39 +03:00
Serge Rider e62538b583 Merge remote-tracking branch 'origin/devel' into devel 2024-10-18 04:49:04 +02:00
sergeyteleshev 5255e9949d CB-5820 fixes frontend build script (#3006)
* CB-5820 fixes frontend build script

* CB-5820 fixes test for windows

* CB-5820 cleanup

* CB-5820 reverts back tests for package
2024-10-17 18:56:24 +03:00
Alexey 8e4faa5935 dbeaver/dbeaver-vscode#42 disable artifacts (#3007) 2024-10-17 14:52:18 +02:00
serge-rider 39ad2994b2 Manifests fix 2024-10-17 10:17:55 +02:00
Serge Rider 00788615e1 Merge remote-tracking branch 'origin/devel' into devel 2024-10-17 07:07:34 +02:00
ac937698bd dbeaver/pro#3393 Add "UDBT" feature (#3000)
Co-authored-by: Serge Rider <serge@jkiss.org>
Co-authored-by: kseniaguzeeva <112612526+kseniaguzeeva@users.noreply.github.com>
2024-10-16 10:33:25 +02:00
Alexey be88091950 dbeaver/dbeaver-devops#1525 update ci workflows (#2998)
* dbeaver/dbeaver-devops#1525 update ci workflows

* dbeaver/dbeaver-devops#1525 fix frontend lint

* dbeaver/dbeaver-devops#1525 move checkstyle config from dbeaver repo

* dbeaver/dbeaver-devops#1525 use own maven setup action

* dbeaver/dbeaver-devops#1525 reuse workflows

* dbeaver/dbeaver-devops#1525 fix concurrency

* dbeaver/dbeaver-devops#1525 fix concurrency
2024-10-16 10:28:44 +02:00
Serge Rider 9dcaec0c09 Merge branch 'devel' of https://github.com/dbeaver/cloudbeaver into devel 2024-10-16 07:01:46 +02:00
f677f48890 CB-5710 return anonymous user info (#2972)
* CB-5710 return anonymous user info

* CB-5710 support anonymous user

* CB-5710 anonymous access disabled active user fix

* CB-5710 simplify logic

* CB-5710 fix error messages

* CB-5710 review fixes

* CB-5710 add computed

* CB-5710 change getters to methods

* CB-5710 fixes after review

---------

Co-authored-by: naumov <iamemptyhuh@gmail.com>
Co-authored-by: alex <48489896+devnaumov@users.noreply.github.com>
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
Co-authored-by: Serge Rider <serge@jkiss.org>
2024-10-16 07:01:37 +02:00
Serge Rider a44cadbb8a Merge branch 'devel' of https://github.com/dbeaver/cloudbeaver into devel 2024-10-16 06:46:59 +02:00
5c992dc8ee CB-5811 applies new design styles for selects, textareas with disabled or readonly prop (#2999)
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
2024-10-16 06:46:55 +02:00
Serge Rider 05f85db7e6 dbeaver/pro#3468 24.2.4 version bump 2024-10-15 20:37:32 +02:00
DenisSinelnikov 94ea41c2c9 CB-5234. Refactor after review, move logic for PRO products (#2990) 2024-10-15 10:00:58 +00:00
Ainur d49342ce48 CB-5713 fix action links (#2991) 2024-10-15 09:25:47 +00:00
Alexander Skoblikov 21fe547dcd CB-5424 QM cleanup job (#2987) 2024-10-15 09:25:12 +00:00
67c54d29eb CB-5205 fix: connection view switching (#2984)
* CB-5205 fix: connection view switching

* CB-5205 fix: tabs synchronization

* CB-5205 fix: connection sync

---------

Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
2024-10-15 11:57:53 +03:00
alexandEvgenia 7427543b7f CB-5760 add title to driver manager form (#2995)
* CB-5760 add title to driver manager form

* CB-5760 move hotkeys hook to core-blocks

---------

Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
2024-10-14 20:32:37 +03:00
sergeyteleshevandmr-anton-t 439c806020 CB-5810 fixes cell edit styles (#2996)
Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
2024-10-14 16:51:16 +03:00
a4bb23b21e CB-5749 fix: metadata table loading (#2960)
* CB-5749 fix: metadata table loading

* CB-5749 fix: offset pagination range expand function

* CB-5205 fix: connection view switching

* Revert "CB-5205 fix: connection view switching"

This reverts commit e06c039fdd.

* CB-5749 fix: prevent page offset overflow

---------

Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2024-10-14 12:46:52 +03:00
sergeyteleshev fd711b055c CB-5806 The AWS switch does not work in the settings (#2994) 2024-10-12 00:23:22 +08:00
Ainur c6626f4364 CB-5802 fix build (#2993) 2024-10-11 11:58:42 +00:00
Ainur d44c9f3863 CB-5671 update db2-i driver (#2986) 2024-10-11 10:52:06 +00:00
Ainur ea055fde49 CB-5693 update protobuf version (#2958) 2024-10-11 10:49:59 +00:00
Alexey 3d8dc7d3d2 CB-5578 dm ability to remove custom certificate (#2975) 2024-10-11 09:35:49 +00:00
sergeyteleshevandmr-anton-t eb41e6156a Cb 5728 update frontend dependencies (#2970)
* CB-5728 updates dependencies without react-data-grid

* CB-5728 updates react-data-grid library

* CB-5728 updates dependencies after react-data-grid updation

* CB-5728 fixes align in cells for react-data-grid

---------

Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
2024-10-11 11:54:13 +03:00
c7fa466509 CB-5707 Change font size in dialogs (#2973)
* CB-5707 increases text size to confirmation dialog title

* CB-5707 fixes headerTitle with composes styles

* CB-5707 fixes dialogBodyContent with composes styles

---------

Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
2024-10-11 11:52:55 +03:00
Serge Rider f475c71311 Dbeaver/pro#3420 Use long for serialization of configs 2024-10-11 06:20:32 +02:00
Serge Rider 6220df4845 dbeaver/pro#3420 Gson refactoring (#2965) 2024-10-11 06:04:55 +02:00
sergeyteleshevandkseniaguzeeva 2e5b71e9dd CB-5563 [TE] Change credentials - 'save credentials' is not marked for auth even if it is saved (#2981)
* CB-5563 adds saveCredentials to config when loading DriverInfo during driver authorization

* CB-5640 fixes save creds checkbox state for SSL

* Revert "CB-5640 fixes save creds checkbox state for SSL"

This reverts commit e25fc3b5d4.

---------

Co-authored-by: kseniaguzeeva <112612526+kseniaguzeeva@users.noreply.github.com>
2024-10-10 18:38:54 +03:00
sergeyteleshevandEvgenia 1a5192815c CB-5640-update-fileds-ui-for-dark-and-light-themes (#2985)
* CB-5640 adds colors to inputs according to design (disabled, readonly)

* CB-5640 merges disable logic into readonly

* CB-5640 adds aria-disabled prop and styles to input

* CB-5640 adds more styles for input

* CB-5640 pr fixes

* CB-5640 reverts logic

* CB-5640 fixes styles

* CB-5640 fixes styles

* CB-5640 merges disable logic into readonly for all of the inputs all over the app

* CB-5640 reverts form-controls styles

* CB-5640 reverts form-controls styles

* CB-5640 makes disabled design according to the figma

* CB-5640 makes checkbox dissapear

* CB-5640 cleanup

---------

Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
2024-10-10 17:20:51 +03:00
Anastasiya 3a85f1a4be Update SECURITY.md (#2989)
Add current version
2024-10-10 14:04:33 +02:00
alexandEvgenia Bezborodova 2e5b092ce7 CB-5454 add deprecated message (#2976)
* CB-5454 add deprecated message

* CB-5454 add info icon to connection dialog message

* CB-5454 remove add button

* CB-5454 remove template

---------

Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
2024-10-10 13:46:18 +03:00
DenisSinelnikovandDaria Marutkina 5c92d43c96 CB-5773. Fixed bad performance for databases/table e.t.c if too many tables included (#2977)
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2024-10-10 10:29:57 +02:00
Alexander Skoblikovandkseniaguzeeva 8b54e3177e CB-5717 npe fix (#2968)
Co-authored-by: kseniaguzeeva <112612526+kseniaguzeeva@users.noreply.github.com>
2024-10-09 10:18:48 +00:00
sergeyteleshevandEvgenia Bezborodova a4c36247fa CB-5767 Easy-config - server configuration fields respond to Enter key press (#2980)
* CB-5767 makes config wizzard go next item when confirming serverConfig form

* CB-5767 removes extra handleEnter for button click enter

---------

Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
2024-10-09 13:08:42 +03:00
AinurandEvgenia Bezborodova 2698e713a7 CB-5653 accessible connections events fix (#2971)
---------

Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
2024-10-09 10:07:39 +00:00
alex a48097ec25 CB-5746 clean -> clear (#2978) 2024-10-08 18:51:15 +03:00
Alexander Skoblikovandmr-anton-t 8c30761caa dbeaver/dbeaver-vscode#19 map custom folder as project in vc code product (#2963)
Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
2024-10-08 12:22:13 +02:00
Serge Rider 9103b28e72 dbeaver/dbeaver-vscode#36 API server build (#2967)
* dbeaver/dbeaver-vscode#36 API server build

* dbeaver/dbeaver-vscode#36 API server build
2024-10-08 12:21:22 +02:00
Alexey e45f077bfa Revert "CB-5578 DM: Ability to remove custom certificate (#2899)" (#2974)
This reverts commit fb1b2b21ed.
2024-10-08 13:11:22 +03:00
fb1b2b21ed CB-5578 DM: Ability to remove custom certificate (#2899)
* CB-5578 handles url for redirect after custom domain is being deleted

* CB-5578 reverts isValidUrl

* CB-5578 pr fixes

* CB-5578 fixes for QA

* CB-5578 fixes for redirect on server url in custom certificate deletion

* CB-5578 fix import

* CB-5578 creates isValidServer file

* CB-5578 allow any protocol server url but redirect on https only

* CB-5578 fix error message in details popup

* СB-removes unneeded tranlsation

* CB-5578 pr fixes

* CB-5578 dm fix for deletion of custom certificate

* CB-5578 fix get https url helper

* CB-5578 cleanup

* CB-5578 adds status message for custom certificate deletion

* CB-5578 sends server url without protocol while custom certificate deletion

* CB-5578 pr fixes

* CB-5578 adds loader to the deletion of custom certificate

---------

Co-authored-by: kseniaguzeeva <112612526+kseniaguzeeva@users.noreply.github.com>
Co-authored-by: Ainur <ainur.iagudin@dbeaver.com>
Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
2024-10-08 13:05:34 +03:00
2a1adc1374 CB-5052 [2562 FR] Highlight the row where any field is currently selected (#2952)
* CB-5052-2562 adds background for selected row

* CB-5052-2562 fixes background for selected row

* CB-5052-2562 moves style var

* CB-5052 pr fixes

* CB-5052 fixes color for selection

* CB-5052 fixes color for selection 2

* CB-5052 adds themes and fixes actions styles for focused cursor in table

* CB-5052 reverts theme for data grid. plus replaces selected row style

* CB-5052 cleanup

* CB-5052 cleanup

* CB-5052 makes selected tab blue

* CB-5052 reverts refresh button colors

* CB-5052 fixes unneeded border left

---------

Co-authored-by: Alexey <wrouds@gmail.com>
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2024-10-08 12:56:40 +03:00
alexandDaria Marutkina c46e9343ac CB-5746 rename buttons (#2959)
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2024-10-08 11:44:39 +02:00
Alexander Skoblikov 16cd103585 CB-5615 dynamic cookie lifetime (#2956)
* CB-5615 dynamic cookie lifetime
2024-10-07 16:20:48 +00:00
Alexander Skoblikov 0850b2d94f CB-5390 use remote file system for storage (#2945)
* CB-5390 wip

* CB-5390 wip

* CB-5390 review fixes

* CB-5390 fix conflicts
2024-10-07 18:15:45 +02:00
Daria Marutkina 2c2a1dfed6 Merge pull request #2966 from dbeaver/dariamarutkina-patch-2
CB_2422 chore: update README
2024-10-07 10:59:48 +02:00
Daria Marutkina 37abea3f44 CB_2422 chore: update README 2024-10-07 10:56:48 +02:00
serge-rider 0e32052b24 dbeaver/pro#3398 Version 24.2.3 bump 2024-10-01 19:17:52 +02:00
AinurandEvgenia Bezborodova e1887714ab CB-5737 global project path fix (#2955)
Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
2024-10-01 16:52:43 +00:00
serge-rider f5ac3cfe2a dbeaver/pro#1441 Redundant parameter remove 2024-10-01 17:48:24 +02:00
434a988919 dbeaver/pro#1441 Universal Database Tunnel POC (#2941)
* dbeaver/pro#1441 Universal Database Tunnel POC

* dbeaver/pro#1441 Resolve data source on the server side

* dbeaver/pro#1441 Use service binding for registering web sockets

* dbeaver/pro#1441 Fix compile

* dbeaver/pro#1441 Construct WebSocket endpoint from service endpoint

---------

Co-authored-by: kseniaguzeeva <112612526+kseniaguzeeva@users.noreply.github.com>
Co-authored-by: serge-rider <serge@dbeaver.com>
2024-10-01 17:42:28 +02:00
AinurandDaria Marutkina 3fbc227734 CB-5559 include root uri in redirect urls (#2950)
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2024-10-01 12:53:12 +00:00
AlexeyandEvgenia Bezborodova bb9a62da63 CB-5295 set enable flag on create user (#2940)
Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
2024-09-30 22:45:30 +03:00
Alexander Skoblikov 34c6e6c9be fix vs-code compilation (#2953) 2024-09-30 16:58:39 +00:00
Alexander Skoblikov b35e3f83ed fix test (#2951) 2024-09-30 15:42:16 +00:00
a42c7dc8de CB-5589. Remove script and sqllite database config (#2919)
* CB-5589. Remove script and sqllite database config

* CB-5589. Remove script and sqllite database config

* CB-5589 remove sample database

---------

Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
Co-authored-by: Aleksandr Skoblikov <aleksandr.skoblikov@dbeaver.com>
Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
2024-09-30 15:16:48 +00:00
eb33e0e895 CB-5570 do not load data sources in web session init (#2887)
* CB-5570 do not load data sources in web session init

* CB-5570 extract methods about web connection info from web session

* CB-5570 remove accessible connections from web session

* CB-5570 add javadoc

* CB-5570 Merge conflicts resolve

* CB-5570 return emply list for template connections in te

* chore: reorganize localization for connections

---------

Co-authored-by: serge-rider <serge@dbeaver.com>
Co-authored-by: kseniaguzeeva <112612526+kseniaguzeeva@users.noreply.github.com>
Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
Co-authored-by: Aleksei Potsetsuev <wrouds@gmail.com>
Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
2024-09-30 15:15:35 +00:00
alexandDaria Marutkina c3c15bf7cc CB-5719 always treat form as changed in easy config (#2946)
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2024-09-30 16:33:11 +03:00
serge-rider 6604b0887c dbeaver/dbeaver-vscode#16 Platform shutdown fix 2024-09-30 14:54:36 +02:00
Alexander Skoblikovandmr-anton-t 735024b57b dbeaver/dbeaver-vscode#16 fix SQL processor, server port cli arg (#2933)
Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
2024-09-30 14:23:01 +02:00
AnastasiyaandEvgenia Bezborodova 3118eac266 CB-5644 change automatically created provider description (#2937)
Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
2024-09-30 10:32:08 +02:00
alexandEvgenia Bezborodova 38445f3843 CB-5636 fix resource lag (#2942)
Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
2024-09-30 11:14:18 +03:00
sergeyteleshev 01d08fc3ce CB-5709 user create button in settings preloads required reso… (#2936)
* CB-5709 hotfix: user create button in settings preloads required resources

* CB-5709 inverts logic

* CB-5709 fixes tab for TE

* CB-5709 fix for origin info form
2024-09-30 11:13:06 +03:00
sergeyteleshevandEvgenia Bezborodova 9bc6bd022e CB-5625 Show only enabled identity providers in configuration section (#2927)
* CB-5625 makes create auth providers list include only enabled auth providers in checkbox

* Revert "CB-5625 makes create auth providers list include only enabled auth providers in checkbox"

This reverts commit 4b2ac9935f.

* CB-5625 adds disabled providers logic to identity providers

* CB-5625 refactors form loaded task

* CB-5625 adds link for redirect to the server configuration settings

* СB-5625 cleanup

* CB-5625 moves message to the top of the auth providers page

* CB-5625 pr fixes

* CB-5625 cleanup

* CB-5578 pr fixes

* CB-5625 adds tip for create identity provider table

* CB-5625 reverts tip message

---------

Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
2024-09-27 13:21:11 +03:00
AlexeyandEvgenia Bezborodova cf764f5807 CB-4192 fix: users loading (#2939)
Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
2024-09-27 12:04:39 +03:00
AlexeyandEvgenia Bezborodova 0bf6783d00 CB-5446 chore: keyboard navigation improvements (#2935)
* chore: keyboard navigation improvements

* CB-5446 chore: use theme color for outline

---------

Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
2024-09-26 19:46:23 +03:00
0e3da49b23 CB-5652 hide data source properties if user does not have edit permis… (#2932)
* CB-5652 hide data source properties if user does not have edit permissions

* CB-5652 return only name property for data source

---------

Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
Co-authored-by: kseniaguzeeva <112612526+kseniaguzeeva@users.noreply.github.com>
2024-09-26 16:14:02 +00:00
serge-rider f84bd6040f Merge remote-tracking branch 'origin/devel' into devel 2024-09-26 12:42:46 +02:00
serge-rider 6339bee0dc Remove legacy code 2024-09-26 12:40:21 +02:00
8f54e759dd CB-4541 feat: tree filter (#2908)
* CB-4541 feat: tree filter

* CB-4541 feat: tree empty placeholders

* CB-4541 fix: settings overflow scroll effect

* CB-4541 fix: settings groups size

* CB-4541 fix: sync groups when filtering

* CB-4541 chore: performance optimization

* chore: review fixes

* chore: replace inline styles

* chore: replace inline styles

* chore: hide extra settings from UI

* chore: hide groups view from settings

* fix: add override options to devtools

* fix: trim filter in settings search

* chore: localization

---------

Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
Co-authored-by: kseniaguzeeva <112612526+kseniaguzeeva@users.noreply.github.com>
Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
2024-09-25 19:46:13 +03:00
Alexey 5f53e0ffa2 fix: windows wildcard path (#2931) 2024-09-25 16:37:30 +03:00
fe020f8f7d CB-4652 migrate server configuration form (#2916)
* CB-4652 migrate server configuration form

* CB-4652 review fixes

---------

Co-authored-by: Alexey <wrouds@gmail.com>
Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
2024-09-25 11:46:21 +03:00
Serge Riderandkseniaguzeeva 4b9e1c8b94 dbeaver/pro#3345 vfs refactoring (#2928)
* dbeaver/pro#3345 Navigator model refactoring

* dbeaver/pro#3345 Navigator model refactoring

* dbeaver/pro#3345 Get rid of org.eclipse.core.resources

* dbeaver/pro#3345 SQL dialect model refactoring

---------

Co-authored-by: kseniaguzeeva <112612526+kseniaguzeeva@users.noreply.github.com>
2024-09-24 16:37:09 +02:00
alexandEvgenia Bezborodova dc5592d052 CB-5162 fix filter at the top (#2925)
Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
2024-09-24 11:46:20 +03:00
sergeyteleshevandmr-anton-t 1746d91072 CB-4661 remove includes concept from resources api (#2910)
Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
2024-09-23 18:22:05 +03:00
Evgenia Bezborodova d230275768 Merge pull request #2930 from dbeaver/EvgeniaBzzz-patch-1
Update README_24-2-1.md
2024-09-23 12:47:44 +03:00
Evgenia Bezborodova 3b3bb147b7 Update README_24-2-1.md 2024-09-23 12:41:39 +03:00
Alexey 6ad148850d refactor: migrate to pure esm CB-5684 (#2929)
* refactor: migrate to pure esm

* chore: revert `useDefineForClassFields` tsconf

* chore: remove patch.js
2024-09-21 07:06:37 +03:00
Alexey a4130804bf chore: vscode dev env dbeaver/dbeaver-vscode#13 (#2918)
* chore: vscode dev env dbeaver/dbeaver-vscode#15

* chore: update target

* chore: update launch configurations

* chore: revert extensions recommendations
2024-09-20 11:48:40 +03:00
mayerro 37d06ecebd dbeaver/dbeaver-devops#1401 removed commit message validator action 2024-09-19 17:39:35 +02:00
b869bddded CB-5045 move configs to model package (#2705)
* CB-5045 move configs to model package

* CB-5045 jetty 12 fix

* CB-5045 fix conflicts

---------

Co-authored-by: kseniaguzeeva <112612526+kseniaguzeeva@users.noreply.github.com>
Co-authored-by: Aleksandr Skoblikov <aleksandr.skoblikov@dbeaver.com>
2024-09-19 10:48:30 +00:00
Alexander Skoblikovandmr-anton-t efb42d33a7 Dbeaver/dbeaver vscode#3 remove redundunt plugins (#2891)
* CB-5530 wip

* dbeaver-vscode#3 cleanup servlets

* dbeaver-vscode#3 endpoint fixes

* dbeaver-vscode#3 resolve conflicts

* dbeaver-vscode#3 fix conflict

* dbeaver-vscode# jetty 12 conflict fixes

* dbeaver-vscode#3 servlets filter

---------

Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
2024-09-19 09:14:23 +00:00
Serge Rider 90acaaf00e dbeaver/pro#3336 RCP model refactoring. Remove VFS from base model (#2913)
* dbeaver/pro#3336 RCP model refactoring. Remove VFS from base model

* dbeaver/pro#3336 Simplify DBNNodeWithResource

* dbeaver/pro#3336 Web node info fix

* dbeaver/pro#3336 Code style

* dbeaver/pro#3336 Fix node project get
2024-09-19 08:28:15 +02:00
Anastasiya 46309e9505 Update README.md link (#2923) 2024-09-18 13:58:39 +00:00
serge-rider aebb2d47ef Merge branch 'devel' of https://github.com/dbeaver/cloudbeaver into devel 2024-09-18 15:41:09 +02:00
serge-rider 12e0107617 24.2.2 version bump 2024-09-18 15:40:15 +02:00
3c5aa6b7e8 CB-5658 CB-5659 fix: pagination resolving (#2922)
* CB-5658 CB-5659 fix: pagination resolving

* CB-5658 fix resources pages

* CB-5667 fix: node rename behavior

* CB-5658 chore: refactor repeated code

---------

Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2024-09-18 16:17:59 +03:00
Vladimir 4df7e01d19 Merge pull request #2915 from dbeaver/readme-img-update
dbeaver/tech-docs#607 updated images in README.md
2024-09-18 08:38:59 +02:00
daelynum 801a55cd38 Merge branch 'devel' into readme-img-update
# Please enter a commit message to explain why this merge is necessary,
# especially if it merges an updated upstream into a topic branch.
#
# Lines starting with '#' will be ignored, and an empty message aborts
# the commit.
2024-09-18 08:28:18 +02:00
Serge Rider 252ff71f03 24.2.1 version bump 2024-09-17 20:46:54 +02:00
sergeyteleshevandDaria Marutkina 2d1bde22a2 Cb 5562 Fix bad this.setState for the new form API (#2903)
* CB-5478 adds useAdministrationUserFormState with flexible id field

* CB-5478 simplifies logic fork form state hooks

* CB-5562 refactors form state and form parts

* CB-5562 fixes disabled param for formState

* CB-5562 comments cleanup

* CB-5562 fixes getting of exceptions

* CB-5562 baseform bad set state fix

* CB-5562 removes load and configure method for forms

* CB-5562 reverts some state.exception changes

* CB-5562 removes bad set state from user form

* CB-5562 cleanup

* CB-5562 cleanup

* CB-5562 removes bad set state from user form

* CB-5562 fixes bad set state for user profile

* CB-5562 pr fixes

* CB-5562 pr fixes

---------

Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2024-09-17 20:14:34 +03:00
4f0db5b854 CB-4896 migrate to jetty 12 (#2847)
* CB-4896 migrate to jetty 12

* CB-4896 fix root uri

* CB-4896 fix proxy handler paths

* CB-4896 resolve conflicts

* CB-4896 fix hidden gql errors

* CB-4896 redirect welcome mode (redirect from '/' to index.html)

* CB-4896 fix url 'blinking'

---------

Co-authored-by: Alexander Skoblikov <aleksandr.skoblikov@dbeaver.com>
Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
2024-09-17 16:50:04 +00:00
5b527872bd CB-4095. Added env variables for configurations parameters (#2905)
* CB-4095. Added env variables for configurations parameters

* CB-4095. Refactor after review

* CB-4095. Refactor after review, added sub group for envs

* CB-4095. Remove unusable env variable

---------

Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
Co-authored-by: Alexander Skoblikov <aleksandr.skoblikov@dbeaver.com>
2024-09-17 16:30:19 +00:00
alexandEvgenia Bezborodova 30e74ce09f CB-5450 purge cache if quota error happens (#2917)
* CB-5450 purge cache if quota error happens

* CB-5450 cache only images from the same origin

* CB-5450 change window to self

* CB-5450 revert purgeOnQuotaError

---------

Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
2024-09-17 16:44:44 +03:00
Mikhailov Grigorii 3ca9904631 Merge pull request #2920 from dbeaver/dbeaver/dbeaver-devops#1483-fix-critical-cve-docker-upgrade
dbeaver/dbeaver-devops#1483 Added docker apt-get upgrade
2024-09-17 14:27:55 +02:00
Greg Miller ea2246af31 dbeaver/dbeaver-devops#1483 Remove sed before apt-get 2024-09-17 14:09:01 +02:00
Greg Miller 12e1fb57d7 dbeaver/dbeaver-devops#1483 Added docker apt-get upgrade 2024-09-17 14:04:02 +02:00
03d0f26530 CB-5391 remove controller from the plugin-connections-administration (#2876)
* CB-5391 remove controller from the plugin-connections-administration

* CB-5391 remove use controller

* CB-5391 review fixes

---------

Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
Co-authored-by: Alexey <wrouds@gmail.com>
2024-09-16 18:17:47 +03:00
AlexeyandEvgenia Bezborodova 9e657d2280 CB-5511 fix: pagination (#2906)
* CB-5511 fix: pagination

* CB-5511 chore: remove unused code

---------

Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
2024-09-16 17:18:27 +03:00
daelynum 461e251753 dbeaver/tech-docs#607 updated images in README.md 2024-09-16 14:29:02 +02:00
daelynum e54bfb3154 Merge branch 'devel' into readme-img-update
# Please enter a commit message to explain why this merge is necessary,
# especially if it merges an updated upstream into a topic branch.
#
# Lines starting with '#' will be ignored, and an empty message aborts
# the commit.
2024-09-16 14:10:55 +02:00
sergeyteleshevandmr-anton-t 6e575d3e7e CB-5478 Add an ability to new forms to edit formState id (#2885)
* CB-5478 adds useAdministrationUserFormState with flexible id field

* CB-5478 simplifies logic fork form state hooks

---------

Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
2024-09-16 14:22:28 +03:00
Anastasiya 24ff77de47 Merge branch 'devel' into readme-img-update 2024-09-13 18:14:37 +03:00
daelynum 5ce49faea0 dbeaver/tech-docs#607 updated images in README.md 2024-09-13 17:09:37 +02:00
d2b6734dd3 Chinese localization (#2869)
* Add or improve Chinese translations

* Add or improve Chinese translations

* chore: Update Chinese translations

* chore: correct some translation

* fix: add mapping for all new zh files

---------

Co-authored-by: 李飞 <lif@tongfun.com>
Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
2024-09-13 14:08:33 +00:00
Anastasiya e62943c548 dbeaver/pro#3333 add contributions info to README.md (#2912)
* dbeaver/pro#3333 add contributions info to README.md

* dbeaver/pro#3333 add info about localization

* dbeaver/pro#3333 fix sentence

* dbeaver/pro#3333 update file

* dbeaver/pro#3333 Update README.md
2024-09-13 15:27:10 +02:00
Alexander Skoblikovandkseniaguzeeva ceefea48c5 CB-5587 override default jetty session handler to add ability to use … (#2880)
* CB-5587 override default jetty session handler to add ability to use dynamic setSecure flag

* CB-5587 handle null server url

---------

Co-authored-by: kseniaguzeeva <112612526+kseniaguzeeva@users.noreply.github.com>
2024-09-12 12:48:16 +00:00
638e5bc97b CB-5274. Added new link for download metadata file (#2900)
* CB-5274. Added new link for download metadata file

* CB-5274. Refactor after review

* CB-5274 add entityIdLink field

* CB-5274. Rename property

---------

Co-authored-by: naumov <iamemptyhuh@gmail.com>
Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
Co-authored-by: Alexander Skoblikov <aleksandr.skoblikov@dbeaver.com>
2024-09-11 16:10:26 +00:00
Alexey 31cbac1c9c CB-5641 fix: skip version check error (#2907) 2024-09-11 15:37:37 +02:00
alexandkseniaguzeeva bb7a5c384c CB-5583 prefetch notification icons (#2878)
* CB-5583 prefetch notification icons

* CB-5583 prefetch small icons

---------

Co-authored-by: kseniaguzeeva <112612526+kseniaguzeeva@users.noreply.github.com>
2024-09-11 15:50:32 +03:00
AnastasiyaandDaria Marutkina 611d06b2f8 CB-5412 update SQL Server driver to 12.8.0 (#2886)
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2024-09-11 09:35:39 +00:00
Serge Rider e0d2d367dc dbeaver/pro#3077 refactor rcp (#2902)
* dbeaver/pro#3077 Refactor RCP resources

* dbeaver/pro#3077 Refactor RCP resources

* dbeaver/pro#3077 Refactor RCP resources

* dbeaver/pro#3077 Deps fix + replace IResource with NIO path
2024-09-09 17:14:40 +02:00
Georgii b2967257e2 dbeaver-infra#126 add bundle-less test classes to iml generation & docs improvements & debug config (#2901) 2024-09-09 10:43:29 +02:00
Alexander SkoblikovandDaria Marutkina 6af5a32a9d CB-5617 disable array editing (#2895)
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2024-09-05 10:03:22 +00:00
Alexeyandmr-anton-t 8467a592e3 CB-5334 chore: update deps (#2883)
* CB-5334 chore: update deps

* CB-5334 chore: update deps again

---------

Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
2024-09-04 19:33:51 +03:00
DenisSinelnikovandDaria Marutkina 0374ddb929 CB-5599. Restricted editing firestore arrays (#2889)
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2024-09-04 15:44:06 +00:00
Alexander Skoblikov 7b5c10b9e2 CB-5602 add flag to force process event (#2888) 2024-09-03 16:09:56 +00:00
Daria Marutkina af31c5cf60 Merge pull request #2884 from dbeaver/dariamarutkina-patch-1
CB_2420 chore: update README
2024-09-02 12:35:09 +02:00
Daria Marutkina 805ae26c3c CB_2420 chore: update README 2024-09-02 12:09:16 +02:00
Alexey f565864124 CB-5228 fix: access token name (#2684)
* CB-5228 fix: access token name

* fix: remove lint triggers
2024-08-30 15:37:12 +03:00
alex a69e760c06 CB-5572 preload lisense status on product tab activate (#2874)
* CB-5572 preload lisense status on product tab activate

* CB-5572 await load
2024-08-28 14:25:41 +03:00
serge-rider cb972cb299 24.2.1 version bump 2024-08-26 19:42:23 +02:00
sergeyteleshevandAleksei Potsetsuev 74aa8c7980 CB-5503 Login form - incorrect password is cleared from the form after pressing Enter (#2853)
* CB-5503 fix: Prevent form submission from erasing password input value

* feat: Add form submission handling to AuthDialog

* Revert "feat: Add form submission handling to AuthDialog"

This reverts commit de19e67c8d.

* Revert "CB-5503 fix: Prevent form submission from erasing password input value"

This reverts commit a5a74ae558.

* CB-5503 adds useValidationStyles for the form inputs

* Revert "CB-5503 adds useValidationStyles for the form inputs"

This reverts commit 7702fdc280.

* CB-5503 removes resets for useForm submit event

* fix: form submitting process

---------

Co-authored-by: Aleksei Potsetsuev <wrouds@gmail.com>
2024-08-26 18:37:08 +02:00
443cbfcde5 CB-5549. Added ability to configure server property for Root URI (#2868)
* CB-5549. Added ability to configure server property for Root URI

* CB-5549. Added new SQL

---------

Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
Co-authored-by: Alexander Skoblikov <aleksandr.skoblikov@dbeaver.com>
2024-08-26 13:39:59 +00:00
Arioko 678ec32c44 Environment variable called "CLOUDBEAVER_ROOT_URI" in cloudbeaver.conf (#2812)
Inclusion of the ability to configure the server property "rootURI" with an environment variable called "CLOUDBEAVER_ROOT_URI" to simplify changing its value in dockenized environments.
2024-08-26 12:28:22 +00:00
Alexander Skoblikov 54544b6334 CB-5561 execute data migration if runtime config contains env variables (#2873) 2024-08-26 12:19:32 +00:00
ab077070c0 CB-5431 Easy config steps are available via url without a license (#2850)
* CB-5431 fixes redirects on unavailable pages during easy config

* CB-5431 cleanup

* Revert "CB-5431 cleanup"

This reverts commit 126e47b7e5.

* Revert "CB-5431 fixes redirects on unavailable pages during easy config"

This reverts commit 0719adc0ab.

* chore: Add ConfigurationWizardScreenService to core-administration manifest

* fix: Handle non-existing pages during route change in AdministrationScreenService

* CB-5431 pr fix

* CB-5431 cleanup

* feat: Remove unused import in AdministrationScreenService

* Fix issue with loading server configuration on non-admin screens

* chore: code style

---------

Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
Co-authored-by: Aleksei Potsetsuev <wrouds@gmail.com>
2024-08-26 12:59:14 +03:00
AinurandEvgenia Bezborodova dfd5838f38 CB-3968 prettify error (#2862)
* CB-3968 prettify error

* CB-3968 return only rm error message

---------

Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
2024-08-26 09:21:52 +00:00
00c1cc81ac CB-4708 add localization to some data viewer tokens (#2388)
* CB-4708 add localization to some data viewer tokens

* Fix conflicts

* CB-4708 remove extra code

---------

Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
2024-08-26 11:32:22 +03:00
serge-rider 1ef728ab85 Merge branch 'devel' of https://github.com/dbeaver/cloudbeaver into devel 2024-08-24 18:18:17 +02:00
serge-rider fe56f61db3 Java version config (use single property) 2024-08-24 18:14:42 +02:00
d186859cb5 CB-5177 fix: allow change unsaved credentials (#2857)
Co-authored-by: kseniaguzeeva <112612526+kseniaguzeeva@users.noreply.github.com>
Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
2024-08-23 16:19:57 +03:00
AinurandAlexander Skoblikov a51ab7d145 CB-5550 fix npe (#2867)
Co-authored-by: Alexander Skoblikov <aleksandr.skoblikov@dbeaver.com>
2024-08-23 10:53:25 +00:00
AlexeyandDaria Marutkina bdaf5dc3b4 Fix/cb-5383/sync-grid-focus (#2863)
* CB-5383 fix: sync focus in grid

* CB-5383 fix: don't reset focus on index/column

* CB-5383 fix: typo

* CB-5383 fix: focus sync lag

* refactor: rename users delete fn

---------

Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2024-08-23 12:37:13 +03:00
alex 4a4f959da8 CB-5548 add overflow to team options container (#2870) 2024-08-22 17:06:29 +02:00
Alexander Skoblikovandmr-anton-t f82660657d CB-5291 ldap integration improvements (#2844)
* CB-5291 wip

* CB-5291 ldap custom user id attribute and user filter

* CB-5291 checkstyle

* CB-5291 npe fix

---------

Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
2024-08-22 13:29:27 +00:00
Alexey d650ec104b chore: use esbuild (#2859)
* chore: use esbuild

* chore: update ts lib
2024-08-22 15:10:31 +03:00
7ca8cfe998 CB-5048 ignore undo and redo on codemirror level (#2854)
* CB-5048 ignore undo and redo on codemirror level

* CB-5048 feat: improve query history

---------

Co-authored-by: Aleksei Potsetsuev <wrouds@gmail.com>
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2024-08-22 15:07:45 +03:00
Alexeyandalex fd4a503f8b CB-5504 fix: hide tabs for not executable sql editors (#2858)
Co-authored-by: alex <48489896+devnaumov@users.noreply.github.com>
2024-08-22 15:07:10 +03:00
Alexander SkoblikovandDaria Marutkina 5287ec9859 CB-5509 - http only cookie (#2860)
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2024-08-22 09:24:11 +02:00
alex 542171ad1e CB-5261 add disabled prop to GroupClose component (#2839)
* CB-5261 add disabled prop to GroupClose component

* CB-5261 allow pointer events on disabled fieldset
2024-08-21 15:26:20 +02:00
AinurandDaria Marutkina 10b3a53c4a CB-5436 remove filter feature for tables and views (#2849)
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2024-08-21 11:02:01 +00:00
alexandkseniaguzeeva 16de895ed4 CB-5252 extend return types (#2843)
Co-authored-by: kseniaguzeeva <112612526+kseniaguzeeva@users.noreply.github.com>
2024-08-20 11:34:41 +02:00
serge-rider cab257d141 Merge remote-tracking branch 'origin/devel' into devel 2024-08-19 15:48:50 +02:00
serge-rider b48e173515 24.2.0 version fix 2024-08-19 15:48:20 +02:00
Daria Marutkina 5617d49597 Merge pull request #2852 from dbeaver/dariamarutkina-patch-3
CB_2415 chore: update README
2024-08-19 11:27:40 +02:00
Daria Marutkina 7fcfe9b5c8 CB_2415 chore: update README 2024-08-19 11:22:18 +02:00
serge-rider 351a323d9c 24.2.0 version config fix 2024-08-16 11:50:57 +02:00
serge-rider 1de2502835 24.2.0 version bump 2024-08-15 12:19:36 +02:00
Serge Rider b07510afc3 24.2.0 version bump 2024-08-14 18:32:22 +03:00
Alexander Skoblikov dd5a39e78a CB-5509 secure session cookie (#2840) 2024-08-14 17:47:01 +03:00
AinurandEvgenia Bezborodova f15c6b5ec9 CB-5386 fix npe (#2837)
Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
2024-08-14 17:12:12 +03:00
sergeyteleshevandEvgenia Bezborodova 378f60aa94 feat: Add isNotNullDefined check for valuePlaceholder in PropertyItem.tsx (#2836)
Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
2024-08-14 16:51:18 +03:00
Alexey f982b4b552 CB-5512 feat: Refactor QuotasService to use optional chaining (#2841)
The QuotasService has been refactored to use optional chaining when accessing the serverResourceQuotasResource data. This improves the code readability and reduces the need for null checks.
2024-08-14 16:32:29 +03:00
95046f076f CB-5451 adjust regex (#2824)
* CB-5451 adjust regex

* CB-5451 do not validate when deleting rm resource

---------

Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
Co-authored-by: DenisSinelnikov <142215442+DenisSinelnikov@users.noreply.github.com>
Co-authored-by: Ainur <ainur.iagudin@dbeaver.com>
2024-08-13 15:55:05 +00:00
92546849f8 CB-5123. Added backend part, added new parameter licenseStatus to ser… (#2831)
* CB-5123. Added backend part, added new parameter licenseStatus to server config gql

* CB-5123 feat: display license status information

* CB-5123 fix: after review

* CB-5123. Added version

---------

Co-authored-by: Aleksei Potsetsuev <wrouds@gmail.com>
Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
2024-08-13 11:16:56 +00:00
Ainurandkseniaguzeeva 2d45b29a07 CB-5025 update cloudbeaver features fix for ai (#2823)
Co-authored-by: kseniaguzeeva <112612526+kseniaguzeeva@users.noreply.github.com>
2024-08-12 11:14:52 +00:00
AinurandEvgenia Bezborodova de00a60aad CB-4511 clear secure props if save password is disabled (#2835)
Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
2024-08-12 11:14:27 +00:00
d118287b0e Cb 5378 dm ability to use custom ssl certificate (#2808)
* CB-5378 add getDomainFromUrl util function

* CB-5378 add uplodable prop to textarea

---------

Co-authored-by: naumov <iamemptyhuh@gmail.com>
Co-authored-by: kseniaguzeeva <112612526+kseniaguzeeva@users.noreply.github.com>
2024-08-12 11:12:18 +00:00
sergeyteleshevandmr-anton-t 8d14e42797 CB-4068 adds driver libraries resource (#2826)
Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
2024-08-09 14:30:32 +03:00
Alexander SkoblikovandEvgenia Bezborodova 36c089ed06 CB-5375 auto migration to postgres DB for default CB EE configuration (#2809)
* CB-5375 auto migration to postgres DB for default CB EE configuration

* CB-5375 fix test

* CB-5375 move legacy db

* CB-5474 async qm data migration

* CB-5375 comment unused field

---------

Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
2024-08-08 22:12:50 +03:00
sergeyteleshevandDaria Marutkina 62393937fc CB-5364 adds context menu for data-viewer (#2810)
* CB-5364 adds context menu for data-viewer

* chore: reverts changes

* CB-5364 feat: adds context menu for object viewer

---------

Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2024-08-08 16:46:13 +03:00
alex 8e0e0c9193 CB-5474 remove special behaviour for long names (#2834) 2024-08-08 13:33:07 +03:00
sergeyteleshevandDaria Marutkina de85721c8f chore: Update exception message in SpreadsheetBootstrap (#2832)
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2024-08-07 19:17:15 +03:00
AlexeyandEvgenia Bezborodova f059daf693 CB-4990 feat: add authentication timeout (#2829)
* CB-4990 feat: add authentication timeout

* CB-4990 fix: review

---------

Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
2024-08-07 19:16:57 +03:00
DenisSinelnikovandEvgenia Bezborodova 5d071e5dfd CB-5255. Fixed cb error when you tried delete node twice, return error from database (#2828)
Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
2024-08-07 17:12:11 +02:00
AlexeyandEvgenia Bezborodova afb4ea205c CB-5393 fix: modal submenu (#2830)
Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
2024-08-07 16:20:36 +03:00
sergeyteleshevandAleksei Potsetsuev 74486b35b4 CB-5340 adds unit tests for basic hooks (#2755)
* CB-5340 adds unit tests for basic hooks

* CB-5340 test: trigger github actions

* CB-5340 fixes unit tests

* CB-5340 fixes unit tests

* CB-5340 fixes unit tests

* CB-5340 adds jest moduled imports for unit tests

* CB-5340 adds jest moduled imports for unit tests

* CB-5340 revert some changes

* CB-5340 cleanup

* CB-5340 replaces global jest to moduled

* CB-5340 uncomment tests and skip it

* CB-5340 cleanup

* chore: enable jest globals

* CB-5340 fix unit tests

---------

Co-authored-by: Aleksei Potsetsuev <wrouds@gmail.com>
2024-08-07 12:42:43 +03:00
Alexeyandmr-anton-t babb29f05a CB-5333 chore: update npm dependencies (#2827)
Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
2024-08-07 12:30:30 +03:00
alexandDaria Marutkina 12b5b2b941 CB-5437 use flex component instead of container (#2818)
* CB-5437 use flex component instead of container

* CB-5437 use data attributes to apply styles

* CB-5437 simplify logic

---------

Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2024-08-07 12:06:50 +03:00
6ca587a5b0 CB-5447 npe fix (#2819)
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
Co-authored-by: Ainur <59531286+yagudin10@users.noreply.github.com>
2024-08-06 13:24:44 +00:00
sergeyteleshevandEvgenia Bezborodova 23b70441b8 CB-4618 Profile, changing password - after a successful change red borders appear (#2820)
* CB-4618 removes red border after form submission

* Revert "CB-4618 removes red border after form submission"

This reverts commit 703da4eea9.

* CB-4618 removes red border after form submission in useForm hook

---------

Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
2024-08-06 15:53:52 +03:00
sergeyteleshevandDaria Marutkina ffee7a1f2f CB-5414 Import table - wrong description for canceled import (#2821)
* feat: adds correct cancellation message to DataImportService

* Update Russian translation for the data import process fail cancel message

* CB-5414 do not set message on cancelled task during import into table

---------

Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2024-08-06 12:39:31 +03:00
alexandDaria Marutkina 62d1f05188 CB-5215 move form component (#2815)
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2024-08-05 19:31:23 +03:00
Daria Marutkina ea00ce653e Merge pull request #2825 from dbeaver/dariamarutkina-patch-2
CB_2414 chore: update README
2024-08-05 12:47:01 +02:00
Daria Marutkina b7da47a816 CB_2414 chore: update README 2024-08-05 12:44:48 +02:00
Serge Rider b2dfa0a1bb Copyright update 2024-08-05 11:23:00 +03:00
Serge Rider 6486612c0e Merge branch 'devel' of https://github.com/dbeaver/cloudbeaver into devel 2024-08-05 06:54:07 +03:00
Alexander Skoblikov c349697fa1 clear test's logs (#2822) 2024-08-02 14:46:16 +02:00
Serge Rider ab7e17900c 24.1.5 version bump 2024-07-31 16:45:10 +03:00
Serge Rider 04e8610b12 dbeaver/pro#3129 model.sql.jdbc module added (#2806) 2024-07-31 16:25:25 +03:00
alexandDaria Marutkina c4f9764e02 CB-3789 make switch color brighter in dark theme (#2799)
* CB-3789 make switch color brighter in dark theme

* CB-3789 fix dense colors

---------

Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2024-07-30 15:43:40 +02:00
sergeyteleshevandEvgenia Bezborodova 45683f1a48 CB-3733 Close data editor tabs with the middle mouse button (#2805)
* feat: Add closeOnMouseWheelClick prop to Tab components

* fix: close tab on middle mouse button if tab can be closed

* fix: closes tabs for Safari also

* CB-3733 removes closeOnMouseWheelClick prop

---------

Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
2024-07-29 11:23:55 +03:00
00aa2eb3e4 CB-5300 save deployment url after finishing easy config (#2776)
Co-authored-by: Ainur <ainur.iagudin@dbeaver.com>
Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
Co-authored-by: kseniaguzeeva <112612526+kseniaguzeeva@users.noreply.github.com>
Co-authored-by: Alexander Skoblikov <aleksandr.skoblikov@dbeaver.com>
2024-07-25 15:31:24 +00:00
sergeyteleshevandDaria Marutkina 701e681fbd CB-5081 makes search icon always visible for local databases list (#2800)
* CB-5081 makes search icon always visible for local databases list

* CB-5081 renames search icon props

---------

Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2024-07-25 16:39:19 +03:00
DenisSinelnikovandDaria Marutkina 5be8582bfd CB-5415. Added full name header for RP (#2795)
* CB-5415. Added full name header for RP

* CB-5415. Refactor after review

* CB-5415. Refactor after review

---------

Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2024-07-25 11:22:31 +00:00
081b0eaead Cb 4653 aws settings form migration (#2785)
* CB-4653 demo fixes

* CB-4653 chore: log message

---------

Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
2024-07-25 07:48:03 +03:00
AnastasiyaandEvgenia Bezborodova fa0cd1ea78 CB-5394 change descriptions for administrator rights (#2794)
Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
2024-07-24 17:15:53 +03:00
sergeyteleshev 949722cd5a CB-4537 fixes textarea size for firefox browser in ErrorDialogDetails component (#2801) 2024-07-24 17:15:18 +03:00
sergeyteleshevandDaria Marutkina 0171240ac8 CB-5329 refactors isControlPresented to be more readable (#2798)
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2024-07-24 14:27:27 +03:00
e4345ffc63 Cb 5178 redesign administration menu (#2775)
* CB-5357 resolves auth dialog on successful login (removes no license notification bug on login)

* CB-5178 fix settings names

* CB-5178 adds to the drawer items the new order

* CB-5178 removes license build and build time info from new "About" menu setting

* CB-5178 renames: plugin product -> plugin-product-information

* CB-5178 adds products info settings tab and page template

* CB-5178 adds product-info tabs

* CB-5178 revert changes from another branch

* CB-5178 fixes disappearing for sub tabs

* CB-5178 removes license redirect memory leaks + redirects correctly

* CB-5178 updates tabs state if license has new available version

* CB-5178 updates locale for new tabs

* CB-5178 moves product and product-info-administration to separate packages

* CB-5178 cleanup

* CB-5178 uses TabsContainer for Product Information Administration tabs

* CB-5178 cleanup

* CB-5178 cleanup

* CB-5178 cleanup

* CB-5178 replace icon

* CB-5178 removes extra icons

* CB-5178 fix: navigation sync with URL

* CB-5178 fix: plugin name

* CB-5178 fix: new version detection

* CB-5178 chore: add comment about style duplication

* Revert "CB-5178 removes extra icons"

This reverts commit 659b5720d5.

* CB-5178 adds about labels

* CB-5178 fixes disabled tabs for invalid license

* Revert "CB-5178 fixes disabled tabs for invalid license"

This reverts commit 2584a73219.

* CB-5178 disables administration items if license is expired (fix)

* CB-5178 disable product info tabs if no license required

* Revert "CB-5178 disable product info tabs if no license required"

This reverts commit e3d6c85313.

---------

Co-authored-by: Aleksei Potsetsuev <wrouds@gmail.com>
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2024-07-23 19:24:45 +03:00
sergeyteleshevandEvgenia Bezborodova 7959357668 CB-4823 Result set - no vertical and horizontal scrolls appear for long errors (#2797)
* CB-4823 fixes table error overflow and icon position

* CB-4823 CB-4823 fixes scroll for collapsed error icon

---------

Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
2024-07-23 18:26:26 +03:00
AlexeyandAleksandr Skoblikov 6b91a0e9e6 CB-5288 fix: connection secrets cache (#2748)
Co-authored-by: Aleksandr Skoblikov <aleksandr.skoblikov@dbeaver.com>
2024-07-23 09:36:20 +00:00
AlexeyandDaria Marutkina f834169414 chore: localization (#2406)
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2024-07-23 12:13:23 +03:00
3a10080956 CB-5134. Added flag for node features (#2770)
* CB-5134. Added flag for node features

* CB-5134 check canFilter feature

* CB-5134. Added filter for connections when connected

* CB-5134. Fix filter for schemas

* CB-5314. Fix diagram view

* CB-5314. Fix diagram view

* CB-5314. Fix diagram view

* CB-5134. Refactor after review

* CB-5134 fix: typescript error

* CB-5134 fix: typescript error

---------

Co-authored-by: naumov <iamemptyhuh@gmail.com>
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
Co-authored-by: Aleksei Potsetsuev <wrouds@gmail.com>
Co-authored-by: Alexander Skoblikov <aleksandr.skoblikov@dbeaver.com>
2024-07-22 12:32:49 +00:00
2c541b2c98 CB-5075. Fix cancel import message after download file (#2786)
Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
Co-authored-by: Alexander Skoblikov <aleksandr.skoblikov@dbeaver.com>
2024-07-22 12:24:53 +00:00
Anastasiya b967cde145 24.1.4 version bump (#2793) 2024-07-22 12:59:12 +03:00
Daria Marutkina e49086203c Merge pull request #2792 from dbeaver/dariamarutkina-patch-1
CB_2413 chore: update README
2024-07-22 11:21:31 +02:00
Daria Marutkina cf276f6a13 CB_2403 chore: update README 2024-07-22 11:18:15 +02:00
serge-rider 93ddddc913 Merge remote-tracking branch 'origin/devel' into devel 2024-07-18 09:05:11 +02:00
serge-rider 1895f3ab2e 24.1.4 version bump 2024-07-18 09:03:21 +02:00
mayer 5b436463b9 dbeaver/dbeaver-devops#823-web-path-created-in-fronted-step (#2426) 2024-07-17 15:52:56 +02:00
Alexey 75fdc2bcec Fix/cb-3823/typescript-error (#2784)
* CB-5134 fix: typescript error

* CB-5134 fix: typescript error
2024-07-16 19:23:50 +02:00
b48684b65d CB-3823 refactor: introduce service provider (#2774)
* CB-3823 refactor: introduce service provider

* CB-3823 fix: tests

* CB-5361 api for db tools

* CB-3823 feat: table group

* CB-3823 feat: connection tools resource

* CB-3823 refactor: database result action

* CB-3823 feat: session manager

* CB-3823 fix: data viewer error tracking

* CB-5361 add tools for rm admin

* CB-3823 fix: review

* CB-5361 fixes after review

* CB-5361 add comment

* CB-5361 fix permissions

* CB-3823 fix: service provider

* CB-3823 fix: useController services fallback

---------

Co-authored-by: Ainur <ainur.iagudin@dbeaver.com>
Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
2024-07-16 17:38:00 +02:00
Alexey f5149c6324 CB-5337 fix: checkbox color (#2781) 2024-07-16 18:25:28 +03:00
AlexeyandEvgenia Bezborodova 87cd84881d CB-5318 fix: language sync (#2782)
Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
2024-07-16 18:25:17 +03:00
Alexey 16e2920937 CB-5380 fix: grid loading (#2779) 2024-07-16 16:31:42 +03:00
alexandEvgenia Bezborodova d0f82d95a6 CB-5121 use different regex for long proposals mode (#2778)
Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
2024-07-15 15:26:21 +03:00
sergeyteleshevandDaria Marutkina fb9cd47bed CB-5357 Expiring license notification is not shown after login (#2767)
* CB-5357 resolves auth dialog on successful login (removes no license notification bug on login)

* CB-5357 fix: do not show 2 notifications

* CB-5357 reverts authPromise logic

---------

Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2024-07-14 17:42:24 +03:00
Alexander Skoblikov 364cb6e516 use driver version as in cb (#2766) 2024-07-13 07:02:00 +02:00
9e74f18be3 CB-5338 simplify data grid styling logic (#2762)
* CB-5338 simplify data grid styling logic

* CB-5338 do not inherit color scheme from react data grid

* CB-5338 remove DataGridContainer

* CB-5338 sync focus status

* CB-5338 review fixes

---------

Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2024-07-12 16:00:43 +03:00
DenisSinelnikov d94a6f9588 Merge pull request #2759 from dbeaver/CB-5344-big-query-cloud-host-and-port-become-empty-after-connection-editing
CB-5344 set value fix for nullable main property
2024-07-12 13:10:28 +04:00
Evgenia Bezborodova 6afd8698fe Merge branch 'devel' into CB-5344-big-query-cloud-host-and-port-become-empty-after-connection-editing 2024-07-11 12:55:27 +03:00
alexandDaria Marutkina c8436f93e1 CB-4860 change save icon (#2773)
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2024-07-10 19:05:54 +03:00
Serge RiderandMashaKorax 8cd8f83e5f dbeaver/pro#2998 Fix app certificate storage reuse. SSL constants refactoring (#2753)
Co-authored-by: MashaKorax <84867187+MashaKorax@users.noreply.github.com>
2024-07-10 12:35:57 +02:00
alexandEvgenia Bezborodova 190a9db695 CB-5084 use columnIndex instead of plain (#2769)
Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
2024-07-10 12:15:29 +03:00
sergeyteleshev aa52372422 CB-5332 updates frontend dependencies (#2772) 2024-07-10 12:15:07 +03:00
Alexey f88eb8610c chore: remove unused npm command (#2771) 2024-07-09 16:45:49 +03:00
Ainurandkseniaguzeeva 021516ae7f CB-3487 filter applicable drivers fix (#2758)
Co-authored-by: kseniaguzeeva <112612526+kseniaguzeeva@users.noreply.github.com>
2024-07-08 16:06:15 +02:00
Daria Marutkina a40993f77d CB_2412 chore: update README (#2768) 2024-07-08 11:42:20 +02:00
Alexey 1298f7e294 fix: prettier (#2765) 2024-07-05 16:26:31 +03:00
Alexey 3ea4443f48 CB-5341 chore: auto refresh localization (#2761) 2024-07-04 16:30:10 +03:00
Alexey 1be6ddaf1c CB-5342 fix: database data source tasks result (#2756)
* CB-5342 fix: database data source tasks result

* CB-5342 fix: database data source tasks tracking

* CB-5342 fix: add stop auto refresh button
2024-07-04 11:08:39 +03:00
Serge Rider 0d53211b88 24.1.3 version bump 2024-07-04 06:45:10 +02:00
Serge Rider 115efeb613 24.1.3 version bump 2024-07-04 06:43:33 +02:00
Serge Rider 220c72487f dbeaver/pro#3022 Close NIO directory streams (#2760) 2024-07-04 05:41:48 +02:00
Ainur 17dcd9464c CB-5344 set value fix for nullable main property 2024-07-03 14:05:50 +02:00
e259606422 CB-4885 feat: components registry (#2745)
* CB-4885 feat: components registry

* CB-4885 fix: table data loading behaviour

* CB-4885 chore: remove unused comments

* CB-4885 fix: dispose tables correctly

* CB-4885 fix: cache invalidation

* CB-4885 fix: nav tree state persistence

* CB-4885 fix: database disconnect detection

* CB-4885 fix: auto refresh on error

* CB-4885 fix: auto refresh behaviour

* CB-4885 fix: auto refresh behaviour

* CB-4885 fix: top menu bar styles

* CB-4885 fix: auto refresh error handling

* CB-4885 chore: add comment about implementation

---------

Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
Co-authored-by: kseniaguzeeva <112612526+kseniaguzeeva@users.noreply.github.com>
2024-07-02 20:00:39 +02:00
Alexander Skoblikovandmr-anton-t 042da7cc7c CB-5323 less priority for .product.runtime.conf (#2754)
Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
2024-07-02 20:00:02 +02:00
Alexander SkoblikovandEvgenia Bezborodova 1e2eee87d3 CB-5138 force use default properties for default database (#2751)
* CB-5138 force use default properties for default database

* CB-5138 review fix

---------

Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
2024-07-02 16:04:42 +00:00
faafcee1a4 CB-4961 Control files downloading ability (#2744)
* CB-4961 adds "disable download" setting to data viewer

* CB-4691 removes unneeded alias for new disable download setting

* CB-4691 pr fixes

* CB-4961 reverts image value presentation canSave logic

* CB-4961 disables download from image context menu

* CB-4691 fixes unit tests

* CB-4691 change new setting to existing one

* CB-4691 renames disable download -> disable export

* CB-4691 pr fixes

* CB-4691 updates tests for new export setting

---------

Co-authored-by: Alexey <wrouds@gmail.com>
Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
2024-07-02 16:48:37 +03:00
Elizabethandkseniaguzeeva 6efbd6904a dbeaver/pro#2651 Add all resource properties updating (#2747)
* dbeaver/pro#2651 Add all resource properties updating

* dbeaver/pro#2651 Fix code style

---------

Co-authored-by: kseniaguzeeva <112612526+kseniaguzeeva@users.noreply.github.com>
2024-07-02 15:04:58 +02:00
Georgii 8f740b732b dbeaver/dbeaver-infra#98 build imls for optional plugins (#2752) 2024-07-02 15:02:30 +02:00
sergeyteleshevandEvgenia Bezborodova 7e4411c0a9 CB-5153 Change description for 'Save credentials' mark on connection auth pop-up + unify (#2746)
* CB-5153 adds more UX friendly texts for connection "save credentials" checkbox

* CB-5153 fix build

* CB-5153 changes admins "Preferences" name to "Global Preferences"

* CB-5153 pr fixes

* CB-5153 adds logic to ssh/ssl login auth connection popup share cred checkboxes

* CB-5153 fixes translations with grammarly

* CB-5153 fixes tooltip texts for all languages

---------

Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
2024-07-02 14:46:28 +03:00
Alexander Skoblikov b6ac0b93e7 CB-5322 limit latest logins by time (#2750)
* CB-5322 limit latest logins by time

* CB-5322 display correct block time

* CB-5322 naming
2024-07-02 10:54:47 +02:00
b2c6306d21 CB-5114 add gql api for bigquery trace info (#2732)
* CB-5114 add gql api for bigquery trace info

* CB-5114 add has dynamic trace to gql

* CB-5114 has dynamic trace prop fix

* CB-5114 fixes after review

* CB-5113 add result trace details panel

* CB-5113 connect plugin

* CB-4882 review fixes

* CB-4882 update references

* CB-4882 use suspense instead of loader

* CB-4882 use metadata to keep promise

* CB-4882 add overflow to container

---------

Co-authored-by: naumov <iamemptyhuh@gmail.com>
Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
2024-07-01 13:21:21 +00:00
49875e4dc1 CB-5197 create main connection fields dynamically (#2693)
* CB-5238 add main properties for connections

* CB-5197 render main properties

* CB-5197 render main properties

* CB-5238 set default values to main properties

* CB-5197 fix(ci/cd): respect base and target branches

* CB-5238 fixes after review

* CB-5197 review fixes

* CB-5197 switch to new model

* CB-5238 fixes after review

* CB-5197 remove custom configuration type

* CB-5238 remove custom config type from gql schema

* CB-5197 do not check configuration type for creds

* CB-5197 make argument optional

* CB-5238 fix creating connection with url

* CB-5238 rename param

* CB-5238 rename param

* CB-5197 rename field

---------

Co-authored-by: naumov <iamemptyhuh@gmail.com>
Co-authored-by: Alexey <wrouds@gmail.com>
Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
2024-07-01 12:45:57 +00:00
4433018ed2 Cb 5124 add a notification about the upcoming expiration of the license add to status (#2733)
* CB-5124. Add license status to /status api

* CB-5124. Add license status to /status api

* CB-5124 adds reminder for soon expiring license

* CB-5124. Refactor after review

* CB-5153 adds core-website package

* CB-5124 updates TS references

* CB-5124 refactors website links service

* CB-5124 pr fixes

* CB-5124 update TS references

* CB-5124 removes WebSiteLinks from coreWebsiteManifest

---------

Co-authored-by: sergeyteleshev <iamsergeyteleshev@gmail.com>
Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
2024-06-28 17:14:33 +00:00
0755561250 CB-5165. Add parameter to api - autocommit (#2737)
* CB-5165. Add parameter to api - autocommit

* CB-5165. Refactor after review

* CB-5165 add auto commit checkbox

* CB-5165 add gap between elements

* CB-5165. Refactor after review

* CB-5165. Refactor after review

* CB-5165. Refactor after review

* CB-5165. Refactor after review

* CB-5165 change category name

---------

Co-authored-by: naumov <iamemptyhuh@gmail.com>
Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
2024-06-28 16:26:34 +00:00
sergeyteleshevandEvgenia Bezborodova ea87a48619 CB-5299 fixes border for value panel icon in different browsers (#2740)
Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
2024-06-27 17:43:13 +03:00
c2330e9c6a CB-5038 update clickhouse driver (#2731)
Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
Co-authored-by: Alexander Skoblikov <aleksandr.skoblikov@dbeaver.com>
2024-06-27 09:33:42 +00:00
Alexander SkoblikovandEvgenia Bezborodova 09de0c328a CB-4889 CB database env variables (#2739)
* CB-4889 CB database env variables

* CB-4889 fix runtime conf priority

---------

Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
2024-06-26 16:15:09 +00:00
serge-rider dab4a0d033 Merge remote-tracking branch 'origin/devel' into devel 2024-06-26 16:02:37 +02:00
serge-rider 05507db706 24.1.2 version bump 2024-06-26 16:01:46 +02:00
sergeyteleshevandAlexey 6e4f16e824 Cb 5293 unit tests for hooks in core blocks (#2724)
* CB-5293 adds unit tests for useState delay hook

* CB-5293 removes unused helper hook

* СB-5277 adds tests for useClipboard hook

---------

Co-authored-by: Alexey <wrouds@gmail.com>
2024-06-26 16:38:07 +03:00
alexandAlexey 56a2e8c13d Cb 5277 test components (#2721)
* CB-5277 add tests for core blocks components

* CB-5277 add tests for link and status message

* CB-5277 add Cell test

---------

Co-authored-by: Alexey <wrouds@gmail.com>
2024-06-26 16:37:38 +03:00
serge-rider d8b6655da5 24.1.2 version bump 2024-06-26 14:07:27 +02:00
sergeyteleshevandEvgenia Bezborodova 4842cba903 CB-5181 Display User Notification Pop-up When Copy/Paste Functionality is Disabled by Administrator (#2730)
* CB-5181 adds copy event handler for data viewer (cells, value panel)

* CB-5181 makes edit/copy settings independent from each other

* CB-5181 adds disable copy case for read state JsonLine (pre)

* CB-5181 changes message text for popup

* CB-5181 changes message text for popup 2

* СB-5181 fixes rus locale for copy message

---------

Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
2024-06-25 18:17:40 +03:00
Alexey 4078b6aa16 CB-5250 refactor: move task manager to core manifest (#2726)
* refactor: move task manager to core manifest

* chore: update dependencies
2024-06-25 18:15:32 +03:00
Georgii 241f2393be dbeaver/dbeaver-infra#91 add source links and fix small issues (#2727)
* dbeaver/dbeaver-infra#91 add source links and fix small issues

* dbeaver/dbeaver-infra#91 add a way to add required fragmens manually + fix scripts
2024-06-25 12:58:30 +02:00
Evgenia Bezborodova 5851c8f2c4 CB_2411: update README (#2729) 2024-06-24 17:30:48 +02:00
AlexeyandEvgenia Bezborodova c70c932e9c CB-5279 fix: return counter button for non result set data format (#2719)
Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
2024-06-24 12:38:23 +03:00
alex b155c98c02 CB-5292 add separate group for advanced properties (#2725) 2024-06-24 12:37:52 +03:00
serge-rider 1d0fac3eb0 Legacy constants refactoring 2024-06-24 11:28:48 +02:00
GeorgiiandSerge Rider 124fa7f691 dbeaver/infra#74 update cloudbeaver launch args (#2682)
* dbeaver/infra#74 update cloudbeaver launch args

* dbeaver/dbeaver-infra#74 add generator scripts and move rcp-gen.properties to product repos

* dbeaver/dbeaver-infra#74 add copyright config to generator CE

* dbeaver/dbeaver-infra#74 move to .ide/idea instead

* dbeaver/dbeaver-infra#74 formatting

* dbeaver/dbeaver-infra#74 update vscode configs and rename rcp-gen.properties to osgi-app.properties

* dbeaver/dbeaver-infra#74 generate workspace per osgi-app.properties file

* dbeaver/dbeaver-infra#74 remove workspace from naming

---------

Co-authored-by: Serge Rider <serge@jkiss.org>
2024-06-21 10:55:32 +02:00
Alexander Skoblikov af5cbedf22 CB-5289 load logs config in log service (#2722) 2024-06-21 09:36:13 +02:00
Ainur b46dd9b8a8 CB-5270 gql tests refactoring (#2713) 2024-06-20 09:59:57 +02:00
Alexey cdd3a356ac CB-5278 fix: don't dispose execution context (#2718) 2024-06-18 18:43:05 +02:00
Alexey 9a471bed70 Refactor cb-4018 data context api (#2708)
* CB-4018 refactor: data context api

* CB-4018 refactor: data context api

* CB-4018 refactor: form parts api

* CB-4018 fix: pr review

* CB-4018 fix: track mobx dependencies in useDataContextLink

* CB-4018 fix: unsubscribe behaviour

* CB-3510 feat: data editing actions based on view (#2710)

* CB-3510 feat: data editing actions based on view

* CB-3510 fix: pr review

* CB-3510 fix: table bottom bar styles

* CB-4018 refactor: respect presentation in data viewer

* CB-4018 fix: remove gap in data viewer toolbar

* CB-4018 fix: isolate contexts in data viewer
2024-06-18 18:19:04 +03:00
Alexey e779a23f0e CB-5213 chore: update react-data-grid (#2716) 2024-06-18 09:30:24 +03:00
240dab7c0f Added French translation files (fr.ts) to respective directories (#2670)
* Added French translation file for core-administration (fr.ts)

I have added the fr.ts file to the cloudbeaver/webapp/packages/core-administration/src/locales/ directory. This file contains the French translations for various administration-related strings used in the application. The translations include menu entries, configuration wizard titles, and success messages.

* Added French translation file for core-authentication (fr.ts)

I have added the fr.ts file to the cloudbeaver/webapp/packages/core-authentication/src/locales/ directory. This file contains the French translations for various authentication-related strings used in the application. The translations include settings group labels, options for disabling anonymous access, and password policy requirements such as minimum length, case sensitivity, digits, and special characters.

* Added French translation file for core-blocks (fr.ts)

I have added the fr.ts file to the cloudbeaver/webapp/packages/core-blocks/src/locales/ directory. This file contains the French translations for various core-blocks related strings used in the application. The translations include properties table labels, filter options, add/reset/remove property actions, placeholder texts, error messages, and validation messages.

* Added French translation file for core-browser-settings (fr.ts)

I have added the fr.ts file to the cloudbeaver/webapp/packages/core-browser-settings/src/locales/ directory. This file contains the French translations for various browser settings related strings used in the application. The translations include settings for cookies and general browser settings.

* Added French translation file for core-connections (fr.ts)

I have added the fr.ts file to the cloudbeaver/webapp/packages/core-connections/src/locales/ directory. This file contains the French translations for various connection-related strings used in the application. The translations include settings for connections, connection templates, error messages, authentication details, network handler configurations, and various tooltips and placeholder texts related to database connections and SSH tunnels.

* Added French translation file for core-localization (fr.ts)

I have added the fr.ts file to the cloudbeaver/webapp/packages/core-localization/src/locales/ directory. This file contains the French translations for various UI-related strings used in the application. The translations include messages for renaming, themes, navigation steps, loading states, error handling, clipboard operations, authentication, settings, file operations, and more.

* Added French translation file for core-navigation-tree (fr.ts)

I have added the fr.ts file to the cloudbeaver/webapp/packages/core-navigation-tree/src/locales/ directory. This file contains the French translation for the navigation tree settings group string used in the application.

* Added French translation file for core-projects (fr.ts)

I have added the fr.ts file to the cloudbeaver/webapp/packages/core-projects/src/locales/ directory. This file contains the French translation for the message indicating that a project is not found.

* Added French translation file for core-resource-manager (fr.ts)

I have added the fr.ts file to the cloudbeaver/webapp/packages/core-resource-manager/src/locales/ directory. This file contains the French translation for the resource manager settings group string used in the application.

* Added French translation file for core-settings-localization (fr.ts)

I have created the fr.ts file in the cloudbeaver/webapp/packages/core-settings-localization/src/locales/ directory. This file contains the French translations for the localization settings, including the labels and descriptions for language settings in the application.

* Added French translation file for core-settings-user (fr.ts)

I have created the fr.ts file in the cloudbeaver/webapp/packages/core-settings-user/src/locales/ directory. This file currently does not contain any translations, but it has been set up for future French translations for user settings in the application.

* Added French translation file for core-settings (fr.ts)

I have added the fr.ts file to the cloudbeaver/webapp/packages/core-settings/src/locales/ directory. This file contains the French translations for the interface and root settings groups used in the application.

* Added French translation file for core-theming (fr.ts)

I have added the fr.ts file to the cloudbeaver/webapp/packages/core-theming/src/locales/ directory. This file contains the French translations for the theming settings, including the labels and descriptions for the application color theme.

* Added French translation file for core-ui (fr.ts)

I have added the fr.ts file to the cloudbeaver/webapp/packages/core-ui/src/locales/ directory. This file contains the French translations for various UI-related messages used in the application, including messages for empty states, form save errors, and tab switching errors during form validation.

* Added French translation file for core-version-update (fr.ts)

I have added the fr.ts file to the cloudbeaver/webapp/packages/core-version-update/src/locales/ directory. This file contains the French translations for various version update-related messages used in the application, including messages about version status, refresh actions, and update instructions.

* Added French translation file for core-version (fr.ts)

I have added the fr.ts file to the cloudbeaver/webapp/packages/core-version/src/locales/ directory. This file contains the French translations for various version-related strings used in the application, including version information, release dates, tags, and error messages for loading version information.

* Added French translation file for core-view (fr.ts)

I have added the fr.ts file to the cloudbeaver/webapp/packages/core-view/src/locales/ directory. This file contains the French translations for various view-related strings used in the application, including layout settings, zoom actions, and labels for creating and editing items and folders.

* Added French translation file for plugin-administration (fr.ts)

I have added the fr.ts file to the cloudbeaver/webapp/packages/plugin-administration/src/locales/ directory. This file contains the French translations for various administration-related messages used in the application, including server configuration, welcome messages, security settings, and navigation options.

* Added French translation file for plugin-authentication-administration (fr.ts)

I have added the fr.ts file to the cloudbeaver/webapp/packages/plugin-authentication-administration/src/locales/ directory. This file contains the French translations for various authentication and administration-related messages used in the application, including user connections, access management, identity providers, and team management.

* Added French translation file for plugin-authentication (fr.ts)

I have added the fr.ts file to the cloudbeaver/webapp/packages/plugin-authentication/src/locales/ directory. This file contains the French translations for various authentication-related messages used in the application, including login, logout, user credentials, error messages, and identity provider configurations.

* Added French translation file for plugin-browser (fr.ts)

I have added the fr.ts file to the cloudbeaver/webapp/packages/plugin-browser/src/locales/ directory. This file contains the French translations for various update-related messages used in the application, including installation of the application, installation of updates, and restart messages with progress information.

* Added French translation file for plugin-connection-custom (fr.ts)

I have added the fr.ts file to the cloudbeaver/webapp/packages/plugin-connection-custom/src/locales/ directory. This file contains the French translations for various custom connection-related messages used in the application, including parameters, URL, main settings, driver properties, and connection actions like testing and creating connections.

* Added French translation file for plugin-connection-search (fr.ts)

I have added the fr.ts file to the cloudbeaver/webapp/packages/plugin-connection-search/src/locales/ directory. This file contains the French translation for the label used in the plugin-connection-search, specifically the message "Find Local Database" which is translated to "Trouver une base de données locale".

* Added French translation file for plugin-connection-template (fr.ts)

I have added the fr.ts file to the cloudbeaver/webapp/packages/plugin-connection-template/src/locales/ directory. This file contains the French translations for various strings used in the connection template plugin. The translations include labels and messages related to new connections, database connection dialogs, and connection templates. This addition will help French-speaking users interact with the connection template plugin more easily.

* Added French translation file for plugin-connections-administration (fr.ts)

I have added the fr.ts file to the cloudbeaver/webapp/packages/plugin-connections-administration/src/locales/ directory. This file contains the French translations for various connection-related strings used in the application. The translations include menu items for editing connections, confirmation messages for reconnection, and descriptions of the templates used by administrators to create reusable connection parameters.

* Added French translation file for plugin-connections (fr.ts)

I have added the fr.ts file to the cloudbeaver/webapp/packages/plugin-connections/src/locales/ directory. This file contains the French translations for various connection-related strings used in the application. The translations include messages for editing connections, connection status updates, and SSL settings.

* Added French translation file for plugin-data-export (fr.ts)

Added French translations for various data export-related strings in the plugin-data-export module. This includes translations for dialogs, notifications, and settings related to data export functionality.

* Added French translation file for plugin-data-import (fr.ts)

- Added French translations for the data import plugin.
- Included translations for various stages and messages related to data import process.

* Add French translation file for plugin-data-spreadsheet-new (fr.ts)

Added French translations for plugin-data-spreadsheet-new. This includes translations for various table and data grid related functionalities such as table editing, sorting, filtering, and error messages.

* Added French translation file for plugin-data-viewer (fr.ts)

This commit includes the French translation for the plugin-data-viewer module.

* Add French translation for Data Viewer plugin (fr.ts)

Added French translations for the Data Viewer plugin.

* Added French translation to plugin-datasource-context-switch (fr.ts)

Added French translations for the context switch plugin messages.

* Added French translation to plugin-datasource-transaction-manager (fr.ts)

Added French translations for the transaction manager plugin messages.

* Added French translation to plugin-gis-viewer (fr.ts)

Added French translations for the GIS viewer plugin messages.

* Added French translation to plugin-help (fr.ts)

Added French translations for the help plugin messages.

* Added French translation to plugin-log-viewer (fr.ts)

Added French translations for the log viewer plugin messages.

* Added French translation to plugin-navigation-tree-filters (fr.ts)

Added French translations for the navigation tree filters plugin messages.

* Added French translation to plugin-navigation-tree-rm (fr.ts)

Added French translations for the navigation tree remove plugin messages.

* Added French translation to plugin-navigation-tree (fr.ts)

Added French translations for the navigation tree plugin messages.

* Added French translation to plugin-object-viewer (fr.ts)

Added French translations for the object viewer plugin messages.

* Added French translation to plugin-product (fr.ts)

Added French translations for the product plugin messages.

* Added French translation to plugin-projects (fr.ts)

Added French translations for the projects plugin messages.

* Added French translation to plugin-resource-manager-administration (fr.ts)

Added French translations for the resource manager administration plugin messages.

* Added French translation to plugin-resource-manager-scripts (fr.ts)

Added French translations for the resource manager scripts plugin messages.

* Added French translation to plugin-resource-manager (fr.ts)

Added French translations for the resource manager plugin messages.

* Added French translation to plugin-root (fr.ts)

Added French translations for the root plugin messages.

* Added French translation to plugin-session-expiration (fr.ts)

Added an empty template for French translations for the session expiration plugin messages.

* Added French translation to plugin-settings-administration (fr.ts)

Added French translations for the settings administration plugin messages.

* Added French translation to plugin-settings-panel (fr.ts)

Added French translations for the settings panel plugin messages.

* Added French translation to plugin-sql-editor-navigation-tab-script (fr.ts)

Added French translations for the SQL editor navigation tab script plugin messages.

* Added French translation to plugin-sql-editor-navigation-tab (fr.ts)

Added French translations for the SQL editor navigation tab plugin messages.

* Added French translation to plugin-sql-editor-new (fr.ts)

Added French translations for the new SQL editor plugin messages.

* Added French translation to plugin-sql-editor-screen (fr.ts)

Added French translations for the SQL editor screen plugin messages.

* Added French translation to plugin-sql-editor (fr.ts)

Added French translations for the SQL editor plugin messages.

* Added French translation to plugin-sql-generator (fr.ts)

Added fr.ts to cloudbeaver/webapp/packages/plugin-sql-generator/src/locales

* Added French translation to plugin-task-manager (fr.ts)

Added French translations for the task manager plugin messages.

* Added French translation to plugin-tools-panel (fr.ts)

Added French translations for the tools panel plugin messages.

* Added French translation to plugin-user-profile-settings (fr.ts)

Added French translations for the user profile settings plugin messages.

* Added French translation to plugin-user-profile (fr.ts)

Added French translations for the user profile plugin messages.

* Added French translation to plugin-version-update-administration (fr.ts)

Added French translations for the version update administration plugin messages.

* Added French translation to product-default (fr.ts)

Added French translations for the default product plugin messages.

* CB-5266 registers french localization all over the app

* CB-5266 adds core-app localization from other PR

* CB-5266 shorter translate for log-viewer french action enable label

---------

Co-authored-by: sergeyteleshev <iamsergeyteleshev@gmail.com>
Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
2024-06-14 17:52:23 +03:00
Alexey 422e6283df CB-5276 fix: auth fallback (#2712) 2024-06-14 17:30:57 +03:00
0b98569c9e CB-5129. Implemented add and delete logic for user team api (#2695)
* CB-5129. Implemented add and delete logic for user team api

---------

Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
Co-authored-by: Alexander Skoblikov <aleksandr.skoblikov@dbeaver.com>
2024-06-14 13:59:17 +00:00
Serge Riderandmr-anton-t 340c6e850c CB-2070 DBException refactoring (#2703)
Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
2024-06-14 13:41:57 +00:00
AnastasiyaandDaria Marutkina bdfb637633 CB-4870 add tooltip for Disable Table presentation setting; add Germa… (#2704)
* CB-4870 add tooltip for Disable Table presentation setting; add German localization

* CB-4870 Update ru localization

---------

Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2024-06-14 12:36:10 +03:00
Anastasiya df4b88c7e4 dbeaver/dbeaver#17169 Update FireBird driver to version 5.0.4 (#2707) 2024-06-13 19:13:16 +02:00
Alexander SkoblikovandElizabeth e7f6cbd2fc dbeaver/pro#2116 send user deleted event for headless session (#2659)
Co-authored-by: Elizabeth <e1izabeth.k@outlook.com>
2024-06-13 16:50:37 +02:00
Alexander SkoblikovandMashaKorax a84f822124 dbeaver/pro#1803 send permissions update to headless session (#2698)
Co-authored-by: MashaKorax <84867187+MashaKorax@users.noreply.github.com>
2024-06-13 16:00:49 +02:00
Alexey c5399de7af fix: remove extra files (#2701) 2024-06-13 12:34:32 +03:00
a65dff32d6 Cb 4760 add to value panel more clear abstractions and separation of the logic (#2688)
* CB-4760 refactors value panel boolean presentation

* CB-4760 refactors value panel image presentation

* CB-4760 refactors value panel text presentation (part 1)

* CB-4760 refactors value panel text presentation (part 2)

* CB-4760 moves ValuePanel presentation layer to ValuePanel folder

* CB-4760 fixes type in file name

* CB-4760 modifies isBlob truncated logic

* CB-4760 booleanValuePresentation uses actions helper

* CB-4760 reverts value panel helpers location

* CB-4760 reverts getResultSetActions

* CB-4760 add preprocessBooleanValue helper instead of hook

* CB-4760 reverts truncated message isTruncated logic

* CB-4760 cleanup

* CB-4760 cleanup

* CB-4760 test commit for save file history

* CB-4760 test commit for save file history [2]

* CB-4760 test commit for save file history [3]

* CB-4760 moves back ValuePanelPresentation directory to src folder to save git history

* CB-4760 pr fixes

* CB-4760 adds placeholder for non selected elements in boolean value presentation (value panel)

* CB-4760 fixes placeholder translation for non selected elements in boolean value presentation (value panel)

* CB-4760 fix: app restart process

* CB-4760 fix: app restart process

---------

Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
Co-authored-by: Aleksei Potsetsuev <wrouds@gmail.com>
2024-06-13 08:04:22 +03:00
alexandmr-anton-t 1c9b4f1ece CB-4706 remove duplicated styles (#2689)
* CB-4705 remove duplicated styles

* CB-4706 pass ref

* CB-4706 review fixes

---------

Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
2024-06-13 08:03:39 +03:00
Serge Rider b13b58b589 dbeaver/dbeaver#23203 Optional monitor for nav API (#2687)
* dbeaver/dbeaver#23203 Optional monitor for nav API

* #23203 Local cache progress monitor
2024-06-12 08:56:35 +02:00
alexandmr-anton-t 3d56701dc6 CB-4705 make data viewer model loaders more flexible (#2690)
* CB-4705 make data viewer model loaders more flexible

* CB-4705 review fixes

* CB-4705 remove unused import

---------

Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
2024-06-11 16:51:57 +03:00
AnastasiyaandDaria Marutkina 078c11c657 CB-5268 fix tooltip; add localization (#2699)
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2024-06-11 15:45:25 +03:00
Alexander Skoblikov baffbfd838 CB-5263 fix null projectId in gql (#2697) 2024-06-11 10:06:48 +02:00
serge-rider 0134b79ee0 24.1.1 version bump 2024-06-10 17:44:50 +02:00
serge-rider 791da679fe 24.1.1 version bump 2024-06-10 17:42:07 +02:00
sergeyteleshevandAlexey dc0e3075fa Cb 5198 unit tests (#2674)
* CB-5198 adds errorOf unit test

* CB-5198 adds unit tests for metadata map

* CB-5198 open centered popup covered with unit tests

* CB-5198 removed unused utils helper

* CB-5198 adds unit tests for utf8 to base64 helper

* СB-5198 adds unit tests fro TempMap

* СB-5198 adds unit tests for GlobalConstants

* CB-5198 removes unused helper

* CB-5198 fix: unit tests for global consts

* СB-5198 adds unit tests for ILoadableState

* СB-5198 adds unit tests for CancellablePromise and cancellableTimeout

* CB-5198 unit tests cleanup

* CB-5198 unit tests cleanup

* CB-5198 updates TS references

* CB-5198 adds PR fixes

* CB-5186 cleanup

* CB-5198 adds correct window object mock for global consts tests

* Revert "CB-5198 updates TS references"

This reverts commit 9388477a79.

* CB-5198 fixes PR comments

* CB-5198 fixes PR comments

* CB-4760 fix: metadatamap return non observed values correctly

---------

Co-authored-by: Alexey <wrouds@gmail.com>
2024-06-10 16:52:08 +03:00
f04c2b1452 Cb 5188 support page outdating for object properties table (#2686)
* CB-5188 marks page outdated on onDisconnect event for DBObjectPageResource

* CB-5188 removes properties table error on logout

* Revert "CB-5188 removes properties table error on logout"

This reverts commit aa4d64cc83.

* Revert "CB-5188 marks page outdated on onDisconnect event for DBObjectPageResource"

This reverts commit cdab1b76c9.

* CB-5188 makes cached map resource

---------

Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
2024-06-07 16:36:40 +03:00
ce6cfd3e3c CB-5196 Update GraphQL usage (#2671)
Co-authored-by: Alexey <wrouds@gmail.com>
Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
2024-06-07 11:03:52 +00:00
Alexander Skoblikovandkseniaguzeeva 776b6d5c6d CB-5253 store only changed common runtime properties (#2692)
* CB-5253 store only changed common runtime properties

* CB-5253 remove null properties

---------

Co-authored-by: kseniaguzeeva <112612526+kseniaguzeeva@users.noreply.github.com>
2024-06-07 10:55:11 +00:00
Anastasiya 9a729cb47f Add info about contributors in our readme file (#2691) 2024-06-06 17:24:45 +02:00
c3ae4acdfb Cb 5164 deps update (#2675)
* CB-5164 update sup deps

* CB-5164 update typescript and mobx

* CB-5164 update react

* CB-5164 fix: specify only major versions

* CB-5164 fix class format

---------

Co-authored-by: Aleksei Potsetsuev <wrouds@gmail.com>
Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
2024-06-05 13:29:38 +03:00
4cb171ed19 CB-5180 rename .m -> .module (#2679)
Co-authored-by: Alexey <wrouds@gmail.com>
Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
2024-06-04 20:31:45 +03:00
Daria Marutkina b3952e7247 Merge pull request #2685 from dbeaver/cb_readme_duplication
Fix release notes duplication
2024-06-04 14:10:46 +02:00
LonwoLonwo d83822d4ad Fix release notes duplication 2024-06-04 12:59:17 +02:00
Alexey 5579970447 fix: dev mode (#2683) 2024-06-03 16:07:26 +03:00
Daria Marutkina c216a77f23 Merge pull request #2681 from dbeaver/dariamarutkina-patch-2
CB_2410 chore: update README
2024-06-03 13:01:20 +02:00
Anastasiya e7ff007151 Update README.md
fix driver version
2024-06-03 11:29:54 +02:00
Daria Marutkina b62b144ced CB_2410 chore: update README 2024-06-03 11:21:41 +02:00
Alexey 8eaabce90b CB-5228 feat: fast frontend unit tests (#2677)
* fix: try to fix make docker container.sh

* fix: specify correct docker build scripts folder

* fix: validate branch to valid docker tag name

* feat: combined workflows

* feat: add readable names for github actions

* feat: add docker pull command comment

* fix: comment publishing comment with docker instructions

* feat: improve build & test performance

* feat: add option to skip cache

* fix: flush cache

* fix: flush cache

* feat: merge tests and build steps

* fix: github action outputs keys

* feat: add lint job

* feat: change file to trigger lint

* fix: omit webapp path

* fix: trigger lint

* fix: continue  on linting errors

* feat: add publishing container to github docker registry

* feat: add lint status

* chore: re-trigger-lint

* feat: add java checkstyle

* fix: java linting

* fix: github token

* fix: update jave checkstyle action

* chore: simplify frontend lint action

* chore: remove changed java files

* feat: revert lint trigger frontend

* feat: add docker credentials helper

* fix: remove credentials warning

* fix: tests and clean command

* CB-5228 feat: run frontend tests for every build

* fix: clean tasks

* feat: update cli tools
2024-05-31 21:34:57 +03:00
Alexey 6077a52181 fix: docker container build (#2676) 2024-05-30 17:13:01 +03:00
Alexey 7b728311c0 fix: backend build action (#2673)
* fix: backend build action

* chore: update github actions version
2024-05-30 15:24:03 +02:00
Alexey baad9d6f98 chore: add build github actions (#2672)
* chore: add build github actions

* chore: remove docker push

* chore: update cache maven
2024-05-29 19:24:39 +02:00
Ainur d7658d4f93 CB-5161 generate workspace id property on dc side (#2653) 2024-05-27 17:49:21 +00:00
Alexeyandkseniaguzeeva 4e1a593321 CB-5139 domain manager improvements (#2645)
* CB-5139 feat: domain manager improvements

* CB-5139 feat: deployment address verification

* CB-5139 refactor: use computed isDisabled in FormState

---------

Co-authored-by: kseniaguzeeva <112612526+kseniaguzeeva@users.noreply.github.com>
2024-05-27 17:45:21 +02:00
Ainurandkseniaguzeeva 57a517111b CB-5158 do not send event to initiator for generating domain (#2655)
Co-authored-by: kseniaguzeeva <112612526+kseniaguzeeva@users.noreply.github.com>
2024-05-27 15:02:25 +00:00
Alexander SkoblikovandDaria Marutkina c893e476e8 CB-4949 merge runtime and root config in original properties (#2667)
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2024-05-27 15:01:24 +00:00
sergeyteleshevandDaria Marutkina 0151edf002 CB-4584 fix: loads object properties tabs after relogin correctly + added loader (#2649)
* CB-4584 fix: loads object properties tabs after relogin correctly + added loader

* CB-4584 adds force suspense for Object property table

* CB-4584 trigger object property page outdate on connection being disconnected

* Revert "CB-4584 trigger object property page outdate on connection being disconnected"

This reverts commit 93b844f592.

* CB-4584 fix: object property table reloads pages after connection being disconnected

* Revert "CB-4584 fix: object property table reloads pages after connection being disconnected"

This reverts commit 46f28dc045.

---------

Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2024-05-27 16:47:57 +03:00
AlexeyandEvgenia Bezborodova f9962b90f9 CB-4820 fix: grid focus sync (#2665)
Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
2024-05-27 16:46:25 +03:00
Alexey b1e62d93e4 CB-4090 fix: keep results for editing (#2664) 2024-05-27 16:08:39 +03:00
sergeyteleshevandkseniaguzeeva ea1f3460eb CB-4812 change tooltip text for share creds checkbox in connection creation (#2663)
* CB-4812 change tooltip text for share creds checkbox in connection creation

* СB-4812 fix: makes correct ru text for shared credentials

---------

Co-authored-by: kseniaguzeeva <112612526+kseniaguzeeva@users.noreply.github.com>
2024-05-27 12:52:40 +03:00
alex c6127b0ac5 CB-4977 return undefined if parse query call returns zeros (#2662) 2024-05-27 11:49:56 +03:00
1133112a66 CB-5004 Do not spam server while typing query in Sql Editor (#2615)
* CB-5004 adds debounce for sql editor script set and auto complete

* CB-5004 adds correct debounce time for parse script + parses script before its execution

* CB-5004 disable script buttons only for empty sql editor or script being executing

* CB-5004 fix: executes script parsing before get sub query

* CB-5004 reverts getHintProposals throttling

* CB-5004 fix: force launch sql editor script actions and removes delay from format script button

---------

Co-authored-by: Alexey <wrouds@gmail.com>
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
2024-05-27 11:49:08 +03:00
serge-rider 965d96c386 Web session read fix (use copy to avoid ConcurrentModificationException) 2024-05-27 09:57:35 +02:00
Alexander Skoblikov 407259b8b2 Revert "CB-5061. remove mandatory parameters for database form (#2650)" (#2661)
This reverts commit 15e5574ed6.
2024-05-24 13:59:29 +00:00
Ainurandkseniaguzeeva c60d513e66 dbeaver/dbeaver-infra#30 add singleton tasks to sm (#2652)
* dbeaver/dbeaver-infra#30 add singleton tasks to sm

* dbeaver/dbeaver-infra#30 move tasks to ee

---------

Co-authored-by: kseniaguzeeva <112612526+kseniaguzeeva@users.noreply.github.com>
2024-05-24 15:30:32 +02:00
AlexeyandEvgenia Bezborodova 674627ebea CB-4090 fix: catch throttle errors (#2651)
* CB-4090 fix: catch throttle errors

* CB-4090 fix: catch throttle errors

* CB-4090 fix: detect closed contexts

* CB-4090 fix: close results properly

---------

Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
2024-05-24 15:52:50 +03:00
Alexey 22634c7c19 CB-4812 feat: add app restart hook (#2660) 2024-05-24 19:17:35 +08:00
DenisSinelnikovandDaria Marutkina 15e5574ed6 CB-5061. remove mandatory parameters for database form (#2650)
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2024-05-24 08:17:15 +00:00
Alexey 95f1a4e6ad CB-4812 chore: update vscode workspace (#2657) 2024-05-24 15:17:52 +08:00
serge-rider 2abe057299 24.1.0 version bump 2024-05-23 19:05:01 +02:00
serge-rider b9b02828dd 24.1.0 version bump 2024-05-23 19:04:23 +02:00
Alexey 691cceb784 CB-4812 fix: infinite loading in error boundary (#2656) 2024-05-23 23:42:12 +08:00
alexandEvgenia Bezborodova 0957684bce CB-4868 extend editor highlight (#2647)
* CB-4868 extend editor highlight

* CB-4868 update colors

* CB-4868 fix variable

* CB-4868 increase contrast ratio

---------

Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
2024-05-23 16:49:43 +03:00
mayerro f9b8e85239 dbeaver/dbeaver-devops#1218 change base image ver to latest lts 2024-05-23 13:07:31 +02:00
alexandEvgenia Bezborodova 1e599fdd88 CB-5160 adjust set to null behaviour (#2648)
Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
2024-05-22 10:09:23 +03:00
sergeyteleshev e05dafd710 CB-4853 updates docker containerId view in update instruction for CE (#2646)
* CB-4853 updates docker containerId view in update instruction for CE

* CB-4853 adds const "{your container id}" in the update instruction
2024-05-22 10:08:50 +03:00
sergeyteleshevandDaria Marutkina fac08c1b93 CB-5092 Top navigation bar is not visible (#2616)
* CB-5092 fix: combobox opens on small screens without eating off a bottom space of the window

* CB-5092 does arrow click in separate function

* CB-5092 fix: selectors and nodes context menu do not break layout for small screens

---------

Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2024-05-22 10:08:26 +03:00
Alexander SkoblikovandDaria Marutkina 77ae1a59d2 CB-4956 restore web session if it expired at login (#2618)
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2024-05-21 16:52:21 +02:00
alexandDaria Marutkina e3a859fee7 Cb 5133 tree expand focus (#2605)
* CB-5133 make tree expand focusable

* CB-5133 make tree expand clickable

* CB-5133 add label for the expand button

---------

Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2024-05-21 11:10:47 +03:00
Alexander SkoblikovandEvgenia Bezborodova 72ce16b2e8 CB-931 ldap identity provider (#2609)
* CB-931 ldap identity provider

* CB-931 add bruteforce protection to ldap

---------

Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
2024-05-20 15:05:09 +00:00
Serge Riderandmayerro 7cd22a84c2 dbeaver/dbeaver devops#1201 base java image (#2642)
* dbeaver/dbeaver-devops#1201 Base Java image

* dbeaver/dbeaver-devops#1201 Fix scripts

* dbeaver/dbeaver-devops#1201 hilevel default env var

---------

Co-authored-by: mayerro <roman.kunitskiy@gmail.com>
2024-05-20 16:44:25 +02:00
Alexey eaf19cf1d2 fix: dev mode hot module replacement (#2643) 2024-05-20 22:17:55 +08:00
Evgenia Bezborodova 0dddeb70b2 Merge pull request #2641 from dbeaver/EvgeniaBzzz-patch-1
Update CB README 24-0-5.md
2024-05-20 12:25:43 +03:00
Evgenia Bezborodova d701cb4fbe Update CB README 24-0-5.md 2024-05-20 12:25:15 +03:00
serge-rider 53efa4ef40 Tests fix (windows crlf) 2024-05-19 16:53:54 +02:00
Serge Rider 554c983283 CB-5167 Cleanup and move 2024-05-18 19:58:52 +02:00
Alexey 02d70e1029 Merge pull request #2622 from dbeaver:fix/cb-4978/ignore-images-for-preload
CB-4978 fix: ignore images for preload
2024-05-17 23:46:20 +08:00
Aleksei Potsetsuev 176864c5a5 CB-4978 fix: ignore images for preload 2024-05-17 23:44:22 +08:00
Alexander Skoblikov 14858f13f3 revert field renaming (#2620) 2024-05-17 10:44:14 +00:00
AlexeyandEvgenia Bezborodova 0b27db0b38 CB-5140 fix: loader overlay (#2613)
Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
2024-05-17 13:29:23 +03:00
Alexeyandmr-anton-t 10582d1333 CB-5149 fix: app loading (#2617)
Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
2024-05-17 13:24:58 +03:00
Ainur d606ca0c77 CB-5127 make instance id more readable and add port (#2614) 2024-05-17 08:37:30 +00:00
494101d659 dbeaver/dbeaver-infra#2 (CB-5110) add job for certificate renewal (#2597)
* dbeaver/dbeaver-infra#2 add job for certificate renewal

* CB-5110 feat: deployment domain expiration time info

* CB-5110 feat: display unsuccessful renewal attempt message

---------

Co-authored-by: Aleksei Potsetsuev <wrouds@gmail.com>
Co-authored-by: kseniaguzeeva <112612526+kseniaguzeeva@users.noreply.github.com>
2024-05-16 12:53:37 +02:00
Alexander Skoblikovandnaumov 6416486513 Cb 4460 shared query history for the team (#2598)
* CB-5067 team supervisor

* CB-4460 extended team members info api

* CB-5118 support supervisor role

* CB-4460 api fix

* CB-4460 change role name

* CB-4460 gql fix

* CB-4460 fix unexpected team role modification

* CB-4460 fix unexpected team role modification

* CB-4460 fix unexpected team role modification

* CB-4460 fix anonymous preferences

* CB-4460 adjust compare fn


---------

Co-authored-by: naumov <iamemptyhuh@gmail.com>
2024-05-14 17:30:26 +00:00
AinurandDenisSinelnikov 6061ec340c CB-5127 web application instance id fix (#2603)
Co-authored-by: DenisSinelnikov <142215442+DenisSinelnikov@users.noreply.github.com>
2024-05-14 19:29:09 +02:00
b40646e69b Cb 4931 auth dialog focus (#2602)
* CB-4931 focus first child of the auth form

* CB-4931 focus dialog from inner component

---------

Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2024-05-14 19:27:09 +02:00
serge-rider 003a89be57 24.0.5 version bump 2024-05-14 18:37:03 +02:00
DenisSinelnikov bbd296f197 CB-5007. Fixed import to mongo (#2612)
* CB-5007. Fixed import to mongo

* CB-5007. Fixed checkstyle
2024-05-14 16:18:08 +00:00
AlexeyandEvgenia Bezborodova 39bfc54ca5 CB-4698 fix: limit grid inline editor (#2608)
Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
2024-05-14 19:03:52 +03:00
bac47d20ce CB-5070 refactor: forms design (#2607)
* CB-5070 refactor: forms design

* Merge remote-tracking branch 'origin/devel' into refactor/cb-5070/forms-design

* CB-5070 fix: html semantics

* CB-5070 fix: table header styles

* CB-5070 fix: table header styles

---------

Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2024-05-14 19:03:11 +03:00
alexandDaria Marutkina 5fce0a544b CB-5085 make errors focusable (#2585)
* CB-5085 make errors focusable

* CB-5085 add lazy import

---------

Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2024-05-14 16:36:24 +03:00
833dae58ce CB-5060 add beta features config param (#2599)
* CB-5109 add beta features config param

* CB-5109 rename param

* CB-5060 feat: disable beta features

* CB-5109 add param to config file

---------

Co-authored-by: Alexey <wrouds@gmail.com>
Co-authored-by: kseniaguzeeva <112612526+kseniaguzeeva@users.noreply.github.com>
2024-05-14 09:31:24 +00:00
Alexander SkoblikovandEvgenia Bezborodova 12bc21257d CB-5128 do not store jetty sessions cache in files (#2600)
Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
2024-05-14 09:42:42 +02:00
d280171b97 CB-4978 feat: handle app update (#2579)
* CB-4978 feat: handle app update

* CB-4978 fix: app loading status info

* feat: async module loading and preload api

* chore: disable SW in dev env

* CB-4978 feat: improve precaching

* CB-4978 fix: split style chunks in two file

* CB-4978 fix: App rebinding

* CB-4978 fix: styles specificity

* CB-4978 fix: app loading

* CB-4978 fix: styles specificity

* CB-4978 fix: flickering bad positioned loader

* CB-4978 fix: styles specificity

* CB-4978 fix: table presentation scrolls

* CB-4978 chore: add extra error logging

* CB-4978 chore: add extra error logging

* CB-4978 fix: toolbar scrolling

* CB-4978 fix: log viewer empty message

* CB-4978 fix: cell styles

* CB-4978 fix: tabs styles

* CB-4978 fix: tests

---------

Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
Co-authored-by: kseniaguzeeva <112612526+kseniaguzeeva@users.noreply.github.com>
2024-05-14 09:16:46 +03:00
alexandDaria Marutkina c8ec5716b8 CB-4931 make export and import dialog focusable (#2584)
* CB-4931 make export and import dialog focusable

* CB-4931 always focus the dialog

---------

Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2024-05-10 16:51:08 +03:00
serge-rider 7045575d95 dbeaver/pro#2800 Code style 2024-05-10 14:57:48 +02:00
AlexeyandDaria Marutkina bdea460218 CB-4837 fix: show in value panel menu button (#2596)
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2024-05-09 13:19:08 +03:00
674c522d55 Cb 5076 remove reshadow leftovers (#2582)
* CB-3960 removes unused SlideBox styles

* CB-3960 makes menu panel reshadowless

* CB-3960 makes menu bar small item reshadowless

* CB-3960 removes reshadow from loaders

* CB-5076 some reshadow

* CB-5076 makes auto refresh reshadowless

* CB-5076 removes reshadow from result set grouping presentation

* CB-5076 makes data grid reshadowless

* CB-5076 makes object viewer table reshadowless

* CB-5076 makes value panel GIS presentation reshadowless

* CB-5076 removes reshadow's all dependencies

* CB-5076 removes ComponentStyles from tsx files

* CB-5076 fixes shortcut dialog titles paddings

* CB-5076 federated auth providers has more space for providers list container

* CB-5076 removes unneeded global from base scss

* CB-5076 import base styles as regular styles (not moduled)

* CB-5076 fix: styles

* CB-5076 chore: add packageManager

---------

Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
Co-authored-by: Aleksei Potsetsuev <wrouds@gmail.com>
2024-05-09 13:17:13 +03:00
Alexander Skoblikov d0933b2b17 CB-5050 query translator unit tests (#2590)
* CB-5050 query translator unit tests

* CB-5050 mysql UUID column

* CB-5050 update mysql dialect tests
2024-05-08 19:03:11 +00:00
alexandEvgenia Bezborodova 56143132d6 CB-5077 adjust contrast ratio (#2583)
Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
2024-05-08 13:56:02 +03:00
Alexander Skoblikov 639f42fa1c CB-4922 bump duck db driver version (#2594) 2024-05-08 09:32:17 +00:00
Alexander Skoblikov c0bbe7fdc5 remove gson map usage (#2593) 2024-05-07 13:29:01 +00:00
Daria Marutkina 64103bc369 Merge pull request #2592 from dbeaver/dariamarutkina-patch-1
CB_2404 chore: update README
2024-05-07 09:49:58 +02:00
Daria Marutkina 87e7f774e9 CB_2404 chore: update README 2024-05-07 09:49:46 +02:00
Ainurandkseniaguzeeva 00cb84c71d CB-5029 close all sessions with event (#2577)
* CB-5029 close all sessions with event

* CB-5029 fixes after review

* CB-5029 remove mac address from instance

---------

Co-authored-by: kseniaguzeeva <112612526+kseniaguzeeva@users.noreply.github.com>
2024-04-30 10:38:29 +00:00
sergeyteleshevandmr-anton-t c8457c2004 Cb 3960 migrate core blocks components to css modules (#2578)
* CB-3960 removes unused SlideBox styles

* CB-3960 makes menu panel reshadowless

* CB-3960 makes menu bar small item reshadowless

* CB-3960 removes reshadow from loaders

* fix: loader styles are the same as was

* fix: CB-3960 fix hidden actions in table footer

* fix: menu trigger

---------

Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
2024-04-29 21:22:57 +03:00
1f3ae6a508 CB-5020 feat: wait till domain available (#2567)
* CB-5020 feat: wait till domain available

* CB-5020 fix: group styles

* CB-5020 add header to status endpoint

---------

Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
Co-authored-by: kseniaguzeeva <112612526+kseniaguzeeva@users.noreply.github.com>
Co-authored-by: Ainur <ainur.iagudin@dbeaver.com>
2024-04-29 16:26:02 +03:00
DenisSinelnikovandkseniaguzeeva a95f8d021f CB-4513. Added event for execute task success (#2575)
* CB-4513. Added event for execute task success


---------

Co-authored-by: kseniaguzeeva <112612526+kseniaguzeeva@users.noreply.github.com>
2024-04-29 09:43:30 +00:00
alexandEvgenia Bezborodova 6fd824e6a8 CB-4980 cancel file upload (#2573)
* CB-4980 cancel file upload

* CB-4980 use CanceledError instead of message mutation

* CB-4980 review fixes

* CB-4980 do not init cancel on close inside snackbar

---------

Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
2024-04-29 12:16:26 +03:00
serge-rider 836acf879f Merge branch 'devel' of https://github.com/dbeaver/cloudbeaver into devel 2024-04-28 12:31:33 +02:00
serge-rider b44840730a GQL schema fix 2024-04-28 12:31:14 +02:00
alexandkseniaguzeeva 1bffe8a28a CB-4982 disable transaction manager for viewer (#2576)
* CB-4982 disable transaction manager for viewer

* CB-4982 change naming

---------

Co-authored-by: kseniaguzeeva <112612526+kseniaguzeeva@users.noreply.github.com>
2024-04-26 16:49:32 +03:00
sergeyteleshev 885e423048 fix: adds webpack-dev-middleware resolution for package.json + updates yarn.lock (#2580) 2024-04-26 15:42:27 +03:00
Alexeyandmr-anton-t 8f87ec6618 Fix/cb-5019/components unification (#2560)
* CB-4629 fix: group close button

* CB-4629 fix: value presentation

* CB-4629 fix: tab focusing

* CB-5019 refactor: unify filter components

* CB-5019 fix: group title header styles

* CB-5019 fix: remove duplicated close button for creation forms

---------

Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
2024-04-26 06:34:52 +03:00
alexandmr-anton-t 01ea4794ea CB-5033 remove reshadow from log viewer and other packages (#2561)
* CB-5033 remove reshadow from log viewer and other packages

* CB-5033 remove unused code

* CB-5033 migrate small data viewer components to css modules

* CB-5033 review fixes

---------

Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
2024-04-25 20:25:15 +03:00
alexandEvgenia Bezborodova 7aaee5047e CB-4873 allow set blob data to null (#2574)
* CB-4873 allow set blob data to null

* CB-4873 truncated cells can be set to null

---------

Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
2024-04-25 20:24:50 +03:00
b701d21d89 Cb 4268 force logout (#2549)
* CB-4703. Hide private ssl key, added new parameter to features

* CB-4631. Fix Build

* CB-4703. Hide private ssl key, added new parameter to features

* CB-4631. Fix Build

* CB-4631. Added logic

* CB-4728. Refactor after review

* CB-4268: adds too many session checkbox for local and federated authentication

* CB-4268 ux improve for force session dialog. do not close main popup if confirm dialog rejected

* CB-4268 cleanup

* CB-4268 adds too-many-sessions-plugin to close error of the external window while logging in

* CB-4268 cleanup

* CB-4268 cleanup

* CB-4268 auth dialog: removes unneeded state

* CB-4268. Add logic to force logout for federated users

* CB-4268. Added redirect for Federated users

* CB-4268. Update script

* CB-4268 split force session dialog checkbox for each tab its own instance

* CB-4268 set exceptions for each auth tab individually

* CB-4268 show error for all auth tabs

* CB-4268. Update script, refactor event for user

* CB-4268. Fixed force logout for sso

* CB-4268. Fixed class cast exception

* CB-4268. Refactor after review

* Revert "CB-4268 show error for all auth tabs"

This reverts commit 996bdfebdb.

* Revert "CB-4268 set exceptions for each auth tab individually"

This reverts commit dbeca03a31.

* Revert "CB-4268 split force session dialog checkbox for each tab its own instance"

This reverts commit cf79208d41.

* CB-4268 show error for all auth dialog tabs

* CB-4268 resets error state on auth dialog tab change

* CB-4268 fix: reset error state only on tab change

* CB-4268 auth login function cleanup

* CB-4268. Refactor after review, cleanup code

* CB-4268 removes too-many-sessions plugin

* CB-4268 removes unneeded translations

* CB-4268 fix: show login button only for non federated auth tabs

* CB-4268 refactor: reset error on switching auth mode

* CB-4268 stop resetting error with flag for auth dialog

* CB-4268 stop resetting error with flag for auth dialog (reset error default true)

* CB-4268 rename to ssoError.html

* CB-4268. Rename parameter for html

* CB-4268. Revert

* CB-4854. Refactor after review

* CB-4854. Refactor after review

* CB-4268 adds tooltip for force logout checkbox

* CB-4268 changes force sessions popup title to shorter version

---------

Co-authored-by: sergeyteleshev <iamsergeyteleshev@gmail.com>
Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
2024-04-25 13:20:24 +00:00
sergeyteleshev 426650076a CB-4947 increases webpack-dev-middle version (#2572) 2024-04-25 13:37:29 +03:00
alexandDaria Marutkina 035d2fe156 CB-5034 translate aria label in MenuActionElement (#2565)
* CB-5034 translate aria label in MenuActionElement

* CB-5034 translate additional tokens

---------

Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2024-04-25 13:15:41 +03:00
Alexey d70470b853 CB-5010 fix: ensure session opened (#2566) 2024-04-25 13:14:56 +03:00
AinurandDaria Marutkina 368c9e2179 CB-4796 update drivers for trino, oracle and sqlite (#2568)
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2024-04-25 09:47:24 +00:00
Alexander Skoblikovandkseniaguzeeva 6ad136f2fa CB-4282 filter redundant '/' in event (#2571)
* CB-4282 filter redundant '/' in event

* CB-4282 update copyright

---------

Co-authored-by: kseniaguzeeva <112612526+kseniaguzeeva@users.noreply.github.com>
2024-04-24 17:33:11 +02:00
DenisSinelnikovandDaria Marutkina 00f56e8c58 CB-4854. Change success message (#2569)
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2024-04-24 17:32:41 +02:00
serge-rider ccefc5cb9b 24.0.4 version bump 2024-04-24 15:06:01 +02:00
Georgii 2a612aea63 INF-52 improvements (#2564) 2024-04-24 12:25:33 +02:00
sergeyteleshev b1349c7a07 CB-5036 disables uploading files for readonly tables for cells (#2570)
* CB-5036 disables uploading files for readonly tables for cells

* CB-5036 cleanup
2024-04-24 12:06:18 +02:00
alexandDaria Marutkina 99b9f6f193 CB-4932 add alt text to the logo (#2559)
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2024-04-23 09:00:56 +03:00
51ef899922 Cb 4270 row counter add cancel button for big tables (#2545)
* CB-4270 adds cancel option for load total count of rows in table

* CB-4270 adds ui for load total count of rows in table

* CB-4270 fix: task cancels in a true way

* CB-4270 cleanup

* CB-4270 cancel load total count on close table tab

* CB-4270 cancel load total count on close sql editor tab

* CB-4270 fix: cancel close only task if it is not already cancelled

* CB-4270 chore: tasks -> cancelLoadTotalCountTasks

* CB-4270 stops counting rows when tab closes

* CB-4270 reverts incorrect calls of cancelLoadTotalCount

* CB-4270 reverts ToolsActions unneeded props

* CB-4270 pr fixes

* СB-4270 cancel load total count for refresh action

* CB-4270 fix: place cancelLoadTotalCount to DatabaseDataSource

* CB-4270 fix: cancel load rows in refresh data in data source

* CB-4270 cancels load on close result set tab

* CB-4270 refactor: move cancelLoadTotalCount to resultsetdatasource

* CB-4270 cancel load total count execute only for resultsetdatasource

* CB-4270 adds constraint for TableFooterRowCount

* CB-4270 fix: do not load new value if cancelled rows loading

* CB-4270 cleanup

* Revert "CB-4270 cleanup"

This reverts commit f8bffa253a.

* CB-4270 pr fixes

* CB-4270 pr fixes

* CB-4270 deletes cross icon icon

* CB-4270 DataSources has correct tree of calls for cancel and dispose functions

* CB-4270 cleanup

* chore: add experimental cancellable promise implementation

* CB-4270 pr fixes: remove unneeded disposes + close results in close result tab flow

* CB-4270 removes closeResults abstraction leak in ResultSetDataSource extended classes

* CB-4270 removes unused context in data sources

* CB-4270 adds loader for CancelTotalCountAction on cancel task action

* CB-4270 cancel row count job fix

* CB-4270 cancel row counter with notification

* CB-4270 pr fixes

* CB-4270 pr fixes

---------

Co-authored-by: Aleksei Potsetsuev <wrouds@gmail.com>
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
Co-authored-by: Ainur <ainur.iagudin@dbeaver.com>
2024-04-23 08:59:58 +03:00
Daria Marutkina acde2c5b8b Merge pull request #2563 from dbeaver/dariamarutkina-patch-2
CB_2403 chore: update README
2024-04-22 11:11:23 +02:00
Daria Marutkina 49247ade5d CB_2403 chore: update README 2024-04-22 11:11:11 +02:00
Alexey e355cdc953 fix: vscode update launch task (#2558) 2024-04-17 21:41:48 +08:00
Alexey 2198d5f69f fix: remove extra space for settings (#2557) 2024-04-17 21:36:47 +08:00
Alexey 1e373d9ff4 CB-5026 fix: root menu check (#2556) 2024-04-17 12:29:21 +03:00
Georgiiandserge-rider 8aeacfeb4e INF-36 [wip] allow downloading artifacts from p2 repositories (#2528)
Co-authored-by: serge-rider <serge@dbeaver.com>
2024-04-17 05:33:38 +02:00
3a304b1902 Cb 4631 backup database (#2536)
* CB-4631. Added logic for database backup h2

* CB-4631. Refactor after review, added information about postgres database to backuper

* CB-4631. Refactor after review, added information about postgres database to backuper

* CB-4703. Refactor after review

* CB-4631. Added flag to config for do backup

* CB-4631. Added flag to config for do backup

* CB-4631. renamed env parameters

* CB-4631. Revert schema version

---------

Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
Co-authored-by: kseniaguzeeva <112612526+kseniaguzeeva@users.noreply.github.com>
2024-04-16 20:08:39 +02:00
sergeyteleshev 916055eb6d fix: remove-uneeded-interface-prop (#2554) 2024-04-16 20:04:53 +02:00
91d83fdac8 CB-4767 generate domains using deployment manager (#2515)
* CB-4767 fix: group close styles

* CB-4767 chore: log only errors and warnings for webpack dev server

* CB-4767 chore: deprecate useController

* CB-4767 feat: an option to throw exceptions with useAutoLoad

* CB-4767 fix: rethrow exception from interrupted load of resource

* CB-4767 fix: replace useController with useResource

* CB-4767 feat: add schema validation for MetadataMap

* CB-4767 fix: wrap administration page with TabPanel

* CB-4767 feat: support for contents style in TabPanel

* CB-4767 feat: support for schema for useTabLocalState

* CB-4767 feat: support async form submitting

* CB-4767 feat: add skip localization

* CB-4767 fix: types

* CB-4767 feat: support administration tab state

* CB-4767 feat: form part getter API

* CB-4767 feat: async status read API

* CB-4770 clear all auth tokens when new domain is generated

* CB-4770 save common config api

* CB-4770 fixes after review

* CB-4770 fix sql query

* CB-4770 delete certificate on certbot and get workspace id

---------

Co-authored-by: kseniaguzeeva <112612526+kseniaguzeeva@users.noreply.github.com>
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
Co-authored-by: Ainur <ainur.iagudin@dbeaver.com>
2024-04-16 17:33:39 +00:00
3e71a7a6ce Cb 4629 end user preferences (#2546)
* CB-4629 feat: enable user settings UI

* CB-4629 feat: localization

* CB-4629 feat: restore default settings

* CB-4629 feat: preferences menu

* CB-4629 chore: update ts references

* CB-4629 user preference store

* CB-4629 fix anonymous preferences

* CB-4629 nullable annotation

* CB-4629 refactor: context menu API

* CB-4629 fix: tools panel styles

* CB-4629 fix: remove outline for tab list

* CB-4629 fix: hide account tab in anonymous mode

* CB-4629 anonymous preferences

* CB-4629 read anonymous user parameters

* CB-4629 fix: zod validation and localization

* CB-4629 use websession preference store in completion context

* CB-4629 fix: revert tools styles

---------

Co-authored-by: Aleksei Potsetsuev <wrouds@gmail.com>
Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
2024-04-16 17:25:57 +00:00
Ainurandmr-anton-t 9051abe90b CB-4996 recreate rm controller for user session (#2551)
Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
2024-04-16 11:44:55 +00:00
Alexander Skoblikovandmr-anton-t 9a46bb2a88 CB-4502 dpi sql execute support (#2542)
* CB-4502 wip

* CB-4502 DPI: read data from container and script execution support

---------

Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
2024-04-15 15:29:57 +00:00
alexandEvgenia Bezborodova c7ed9f3b5b CB-4933 focus snackbar on open (#2543)
* CB-4933 focus snackbar on open

* CB-4933 make notifications accessible for tab navigation

---------

Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
2024-04-15 18:28:40 +03:00
alexandkseniaguzeeva e45267c17c CB-4358 omit patch version (#2548)
Co-authored-by: kseniaguzeeva <112612526+kseniaguzeeva@users.noreply.github.com>
2024-04-15 14:54:53 +03:00
AlexeyandDaria Marutkina 8f29b67ba6 CB-4841 fix: concurrent tree update (#2539)
* CB-4841 fix: concurrent tree update

* CB-4841 chore: tree re-render optimization

---------

Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2024-04-12 16:40:31 +03:00
Alexey 0550cb9982 CB-4699 fix: prevent cell copy in editing mode (#2547) 2024-04-12 16:39:19 +03:00
alexandEvgenia Bezborodova 530af6dfed CB-4967 check that connection is not loading new data (#2541)
Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
2024-04-11 13:39:48 +03:00
2a610c3f50 Cb 4911 add license headers with git hooks (#2504)
* adds husky with license script

* fix: license can pass file not fitted to provided FILES_PATH pattern

* license: notify user for updated files with new license header

* moves husky to frontend directory

* adds check for unstaged files with license

* change pre commit to pre push

* test: remove license from value panel

* Revert "test: remove license from value panel"

This reverts commit b690b75c6b.

* adds postinstall

* test: remove license from value panel [2]

* Revert "test: remove license from value panel [2]"

This reverts commit ea86fd3c57.

* sets back precommit

* CB-4911 validate missed license

* CB-4911 fix linter

* CB-4911 check license line by line

* CB-4911 feat: use node for license check

---------

Co-authored-by: s.teleshev <s.teleshev@mu.se>
Co-authored-by: Aleksei Potsetsuev <wrouds@gmail.com>
2024-04-10 14:08:20 +03:00
09dfae412c Replace bash process using java process instead of creating a sub process (#1452)
This enables docker to do a graceful shutdown of the container, because the java process gets notified that it should be terminated.

Co-authored-by: Anastasiya <45152336+LonwoLonwo@users.noreply.github.com>
Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
2024-04-09 16:59:33 +00:00
serge-rider d605e09ef4 24.0.3 version bump 2024-04-09 17:52:03 +02:00
serge-rider 2dc97fb706 24.0.3 version bump 2024-04-09 17:51:34 +02:00
sergeyteleshevandEvgenia Bezborodova 9e3e4322a3 Cb 4178 te cloud storage improvements (#2532)
* CB-4178 chore: makes tree nodes names visible in react dev tools

* CB-4178 adds validation for loading files in cloud storage

* CB-4178 pr fixes

* CB-4178 pr fixes

* CB-4178 code cleanup

* CB-4178 selectFiles can return empty array

---------

Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
2024-04-09 16:35:13 +03:00
alexandEvgenia Bezborodova 433eaacd24 CB-4960 remove data import button from query sources (#2529)
* CB-4960 remove data import button from query sources

* CB-4960 show import button only in container data source

* CB-4960 show import button on json tab

---------

Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
2024-04-09 12:53:02 +03:00
Alexey fec9e856f6 fix: deprecated settings tests (#2538) 2024-04-09 17:49:34 +08:00
alexandDaria Marutkina 28714a628f CB-4966 remove unused detail from the timer icon (#2533)
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2024-04-09 09:27:04 +03:00
Ainur fd82b24e5f CB-4917 remove applications from configuration controller and fix deserialization (#2531) 2024-04-08 09:18:54 +00:00
serge-rider d34d59ee6c Revert "CB-4603 Set global default user team ID"
This reverts commit b09a85d324.
2024-04-03 12:04:40 +02:00
serge-rider b09a85d324 CB-4603 Set global default user team ID 2024-04-03 10:36:19 +02:00
serge-rider 5ac7ece108 CB-4603 Set global default user team ID 2024-04-03 10:28:12 +02:00
serge-rider 449c31bf44 24.0.2 version bump 2024-04-02 20:24:10 +02:00
32b4e4ec19 CB-3330 add data import plugin (#2506)
* CB-3330 add data import plugin

* CB-3330 add mock api

* CB-3330 pass processor id

* CB-3330 remove extra code

* CB-3330 simplify logic, allow import only one file

* CB-3330. Implemented import data to table

* CB-3330 replace mocks with api

* CB-3330 add references

* CB-3330. Parsing request, added xml, xls

* CB-3330 support new settings

* CB-3330 use getter

* CB-3330 add svg icons

* CB-3330 pass arguments in handleImport fn

* CB-3330 remove extra fn wrapper

* CB-3330. Fix build

* CB-3330. Fix build

* CB-3330. Fix import

* CB-3330. Fixed import

* CB-3300 fix: frontend can build

* CB-3330. Refactor after review

* CB-3330. Refactor after review, delete temp file after import

* CB-3330. Refactor after review

* CB-3330. Refactor after review

* CB-3330. Added log message

* CB-3330. Added response for task

* CB-3330 fix icon and button shadow

* CB-3330. Refactor response value

* CB-3330. Refactor response value

* CB-3330. delete unused imports

* CB-3330 run additional task after file import

* CB-3330 always allow data import for admins

* CB-3330 import resource as module

---------

Co-authored-by: DenisSinelnikov <142215442+DenisSinelnikov@users.noreply.github.com>
Co-authored-by: denis.sinelnikov <denis.sinelnikov@dbeaver.com>
Co-authored-by: sergeyteleshev <iamsergeyteleshev@gmail.com>
Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
2024-04-02 16:51:27 +00:00
101d26158b CB-4603. Refactor searching by group, include default group for all s… (#2440)
* CB-4603. Refactor searching by group, include default group for all sql query with team

---------

Co-authored-by: DenisSinelnikov <denis.sinelnikov@dbaever.com>
Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
Co-authored-by: kseniaguzeeva <112612526+kseniaguzeeva@users.noreply.github.com>
2024-04-02 16:50:21 +00:00
Ainurandkseniaguzeeva 8b5aac0093 CB-4829 connection cache same ids fix (#2491)
* CB-4829 connection cache same ids fix

* CB-4829 find connection info with project id fix

* CB-4829 add project id to gql functions

---------

Co-authored-by: kseniaguzeeva <112612526+kseniaguzeeva@users.noreply.github.com>
2024-04-02 16:47:48 +00:00
Serge RiderandDaria Marutkina 5fd847f209 CB-4924 Fix CVE-2022-45868. Remove web interface from H2 driver (#2526)
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2024-04-02 17:23:37 +02:00
Alexander Skoblikov 2936b14aed CB-4500 preference to enable env variables resolving (#2522)
* CB-4500 preference to enable env variables resolving

* CB-4500 save systemVariablesResolvingEnabled to runtime config
2024-04-02 15:15:15 +00:00
sergeyteleshev 6dfbbecd59 CB-4943: fix: Value Panel has correct layout with new groups styles (#2524) 2024-04-02 15:52:58 +02:00
sergeyteleshevandDaria Marutkina 44b6f8a3ae Cb 4548 sql editor resultsets can be closed one by one only when execute sql statement has been used for several queries (#2503)
* CB-4548 fix: removes all result tabs on "close all" action

* CB-4548 adds "close all of the same query" action for sql result tabs

* Revert "CB-4548 adds "close all of the same query" action for sql result tabs"

This reverts commit 453664e41c.

* CB-4548 adds close all of the same group

* CB-4548 adds handleCloseTabGroup with SqlResultTabService

* CB-4548 sql editor bootstrap cleanup

* СB-4548 group tabs logic moved logic to sql-editor-plugin

* СB-4548 cleanup

* CB-4548 adds ACTION_TAB_CLOSE_SQL_RESULT_GROUP to the end of the tabs

* CB-4548 closes group tabs via tabs context close function (to save highlight tab logic)

* CB-4548 pr fixes

* CB-4548 code cleanup

---------

Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2024-04-02 11:55:42 +02:00
AlexeyandEvgenia Bezborodova 9f46e49e01 CB-4776 fix: input default value handling (#2518)
Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
2024-04-02 11:44:17 +02:00
Alexander SkoblikovandDaria Marutkina 552163e6ee CB-4836 convert max idle time to seconds (#2514)
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2024-03-29 15:31:42 +00:00
Alexey 517db739ae CB-4938 CB-4937 fix: metadata editor and shortcuts (#2520) 2024-03-29 17:38:18 +03:00
Ainur 8004db0f8b CB-4919 update results fix (#2509) 2024-03-28 17:00:45 +00:00
AinurandEvgenia Bezborodova 66f6ccb245 CB-4569 set default database when getting driver props (#2512)
Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
2024-03-28 16:59:53 +00:00
77f531ddac Update trino driver to 438 (#2372)
Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
Co-authored-by: Anastasiya <45152336+LonwoLonwo@users.noreply.github.com>
2024-03-28 16:58:42 +00:00
Cheng PanandDaria Marutkina 192da2c0d6 Support Apache Kyuubi as built-in datasource (#1336)
* Add Kyuubi driver JDBC driver 1.9.0
---------

Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2024-03-28 16:58:06 +00:00
sergeyteleshevandEvgenia Bezborodova f3c6cf94d7 CB-4030 makes clear log viewer button sticky to the top-right corner (#2505)
Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
2024-03-28 17:32:06 +03:00
eaa26dfe52 CB-4619 user scope settings (#2471)
* CB-4619 feat: update gql schema

* CB-4808 bulk update user parameters

* CB-4808 param type fix

* CB-4619 feat: updateUserPreferences API


* CB-4619 refactor: settings api

* CB-4619 refactor: move file

* CB-4619 refactor: settings api

* CB-4619 fix: pr review

* CB-4619 refactor: remove web-based product settings

* CB-4619 fix: after pr review

* CB-4619 refactor: move product conf to cloudbeaver conf

* CB-4619 fix: hide settings bar and log exception with changing session language

* CB-4619 fix: revert after merge

* CB-4808 new settings api

* CB-4808 update product.conf format

* CB-4808 update product.conf format

* CB-4619 feat: support server provided settings

* CB-4619 feat: prettify settings

* CB-4619 chore: map sql editor settings group

* CB-4808 add use short/long object name settings to CloudBeaver

* CB-4808 update default product.conf

* CB-4808 mode short/long settings to SQLModelPreferences

* CB-4808 review fix

* CB-4619 refactor: unit tests

* CB-4619 fix: prevent websocket opening spam

* CB-4619 fix: dependencies

* CB-4619 fix: remove extra theme loading

* CB-4619 fix: rename settings alias resolver file

* CB-4619 fix: after review

* CB-4619 fix conflicts

* CB-4619 rename server property

* CB-4619 remove shortname property

* CB-4619 fix legacy product conf reading

* CB-4619 merge root and runtime configurations

* CB-4619 chore: remove log viewer setting

* CB-4619 integer fields with env variables fix

* CB-4619 fix: property naming

* CB-4619 fix: parseJSONFlat null values

* CB-4619 fix: settings loading

* CB-4619 fix: save only actual settings

---------

Co-authored-by: Aleksandr Skoblikov <aleksandr.skoblikov@dbeaver.com>
Co-authored-by: kseniaguzeeva <112612526+kseniaguzeeva@users.noreply.github.com>
Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
2024-03-28 10:30:52 +00:00
AnastasiyaandDaria Marutkina b54dd5380d CB-4913 fix contact site link in the Product Information (#2507)
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2024-03-27 14:44:49 +03:00
alexandDaria Marutkina f548406446 CB-4676 change delete button text to cancel (#2499)
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2024-03-27 14:44:34 +03:00
ad37e89ecb CB-4686 add new client event for updating session info (#2462)
* CB-4810 add new client event for updating session info

* CB-4810 update request parameters on creating web session

* CB-4810 deprecate update session gql functions

* CB-4810 fix tests

* CB-4810 add params to session state event

* CB-4810 add params to gql schema

* CB-4686 feat: migrates touch session from REST to WebSockets

* CB-4686 fix: do not open websocket if session is expired

* Revert "CB-4686 fix: do not open websocket if session is expired"

This reverts commit 1f6ba77998.

* CB-4686 setData uses performUpdate for the SessionResource

* CB-4686 unsubscribes from the websocket when session expired event arrived

* Revert "CB-4686 unsubscribes from the websocket when session expired event arrived"

This reverts commit 7aeffffc67.

* CB-4810 rename client event

* CB-4686 pr fixes

* CB-4686 makes onDataOutdated execution manual

* CB-4686 fix: onDataOutdated.execute executes in the end of the performUpdate

---------

Co-authored-by: s.teleshev <s.teleshev@mu.se>
Co-authored-by: Alexey <wrouds@gmail.com>
Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2024-03-27 10:45:09 +00:00
sergeyteleshevandmr-anton-t a6a01c2896 CB-4910-broken-layout-for-login-identity-providers-form (#2498)
* authorization-federated-auth-providers-has-correct-layout

* Revert "authorization-federated-auth-providers-has-correct-layout"

This reverts commit cfd97b045d.

* fix: configList layout with container

* CB-4910 centers buttons in configuration list

---------

Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
2024-03-27 09:01:29 +03:00
Ainurandmr-anton-t cae7699a48 Cb 4280 refactor cb application configuration logic (#2242)
* CB-4280 prettify reading configuration file

* CB-4280 serialize db config, remove it from te

* CB-4280 extract configs from app classes

* CB-4280 resolve conflicts

* CB-4280 fixes after review

* CB-4280 fix copyrights

* CB-4280 add comments

* CB-4280 resolve conflicts

---------

Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
2024-03-26 15:12:49 +00:00
Daria Marutkina d9150180f9 Merge pull request #2497 from dbeaver/dariamarutkina-patch-1
CB_2401 chore: update README
2024-03-25 17:31:30 +01:00
Daria Marutkina 95b7f35228 CB_2401 chore: update README 2024-03-25 17:31:18 +01:00
alexandmr-anton-t 1fd1ebeecf CB-4074 transform metadata editor footer to the new context menu (#2490)
* CB-4074 transform metadata editor footer to the new context menu

* CB-4074 use existing data context for nodes

---------

Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
2024-03-25 16:07:04 +01:00
Serge RiderandEvgenia Bezborodova 4daf1efe49 CB-4903 Clickhouse driver version update (#2494)
Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
2024-03-25 14:03:05 +01:00
alexandmr-anton-t affbe444a0 CB-4707 move connection shield logic to separate component (#2478)
* CB-4707 move connection shield logic to separate component

* CB-4707 use lazy import

* CB-4707 revert interface

---------

Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
2024-03-22 20:33:34 +03:00
sergeyteleshevands.teleshev e9163b8a2b cleans up the frontend ts references (#2493)
Co-authored-by: s.teleshev <s.teleshev@mu.se>
2024-03-22 12:38:24 +03:00
alexandmr-anton-t b3f7d85687 CB-4884 migrate sql editor to css modules (#2487)
* CB-4884 migrate sql editor to css modules

* CB-4884 review fixes

---------

Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
2024-03-22 07:37:05 +03:00
e033a63f5c CB-4657 removes reshadow from plugin-connections-administration (#2484)
Co-authored-by: s.teleshev <s.teleshev@mu.se>
Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
2024-03-22 07:32:32 +03:00
d4a9c6595e CB-4656 removes reshadow from plugin-connections (#2481)
Co-authored-by: s.teleshev <s.teleshev@mu.se>
Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
2024-03-22 07:32:08 +03:00
7f5fb194c5 CB-4655 removes reshadow from plugin-authentication-administration (#2485)
Co-authored-by: s.teleshev <s.teleshev@mu.se>
Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
2024-03-22 07:31:45 +03:00
2d44a492fc CB-4686 removes reshadow from core-ui (#2489)
* CB-4686 removes reshadow from core-ui

* CB-4283 pr fixes

---------

Co-authored-by: s.teleshev <s.teleshev@mu.se>
Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
2024-03-22 07:30:47 +03:00
ebb517318b CB-4471 removes reshadow from plugin-administration (#2479)
* CB-4471 removes reshadow from plugin-administration

* CB-4471 fill is has higher style priority

---------

Co-authored-by: s.teleshev <s.teleshev@mu.se>
Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
2024-03-21 20:34:37 +03:00
23de1131b9 CB-4654 removes reshadow from plugin-authentication (#2480)
* CB-4654 removes reshadow from plugin-authentication

* CB-4654 ConfigurationList uses container component

---------

Co-authored-by: s.teleshev <s.teleshev@mu.se>
Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
2024-03-21 20:32:06 +03:00
alexandmr-anton-t a5911223ef CB-4859 migrate some styles from driver properties table and metadata… (#2469)
* CB-4859 migrate some styles from driver properties table and metadata editor

* CB-4859 use useS instead of clsx

---------

Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
2024-03-20 14:13:19 +03:00
Alexey 37e4c699fe chore: update vscode configs (#2483) 2024-03-20 13:34:25 +03:00
4568 changed files with 129749 additions and 84498 deletions
-35
View File
@@ -1,35 +0,0 @@
// For format details, see https://aka.ms/devcontainer.json. For config options, see the
// README at: https://github.com/devcontainers/templates/tree/main/src/java
{
"name": "Java",
// Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile
"image": "mcr.microsoft.com/devcontainers/java:1-17-bookworm",
"features": {
"ghcr.io/devcontainers/features/java:1": {
"version": "none",
"installMaven": "true",
"installGradle": "false"
},
"ghcr.io/devcontainers/features/github-cli:1": {},
"ghcr.io/devcontainers/features/node:1": {}
},
"hostRequirements": {
"cpus": 8,
"memory": "16gb",
"storage": "64gb"
}
// Use 'forwardPorts' to make a list of ports inside the container available locally.
// "forwardPorts": [],
// Use 'postCreateCommand' to run commands after the container is created.
// "postCreateCommand": "java -version",
// Configure tool-specific properties.
// "customizations": {},
// Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root.
// "remoteUser": "root"
}
-29
View File
@@ -1,29 +0,0 @@
---
name: Bug report
about: Create a report to help us improve CloudBeaver
title: ''
labels: bug, wait for review
assignees: ''
---
**Describe the bug**
A clear and concise description of what the bug is.
**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
**Screenshots**
If applicable, add screenshots to help explain your problem.
**Desktop (please complete the following information):**
- OS: [e.g. iOS]
- Browser [e.g. chrome, safari]
- Version [e.g. 22]
**Additional context**
Add any other context about the problem here, e.g. error log.
+61
View File
@@ -0,0 +1,61 @@
name: 🐛 Bug Report
description: Create a report to help us improve our product
labels: [wait for review]
type: Bug
body:
- type: markdown
attributes:
value: |
Thank you for reporting a bug in CloudBeaver!
To ensure we can address the issue as quickly and efficiently as possible, please provide as much detail as you can in the fields below.
- type: textarea
id: description
attributes:
label: Description
description: |
A clear and concise description of the issue being addressed.
- Describe the actual problematic behavior.
- Ensure private information is redacted.
- Include console output or log files if relevant.
- If applicable, add screenshots or screen recordings to help explain your problem.
placeholder: |
Please enter a description of the issue. Here you can also attach log files, screenshots or a video
validations:
required: true
- type: textarea
id: reproduce
attributes:
label: Steps to reproduce
description: Describe the steps to reproduce the bug
placeholder: |
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
- type: textarea
id: expected
attributes:
label: Expected/Desired Behavior
description: |
A clear and concise description of what happens in the software **after** a fix is created and merged.
validations:
required: true
- type: input
id: version
attributes:
label: CloudBeaver Version
description: What version of CloudBeaver are you running?
placeholder: ex. CloudBeaver Community 25.0.0
validations:
required: true
- type: textarea
id: additional-context
attributes:
label: Additional context
description: Any additional context about the environment
placeholder: |
Example:
1. OS: [e.g. iOS, Ubuntu, Windows 11]
2. Browser: [e.g. Chrome, Safari]
validations:
required: false
+14
View File
@@ -0,0 +1,14 @@
blank_issues_enabled: false
contact_links:
- name: Read our documentations
url: https://dbeaver.com/docs/cloudbeaver
about: Many articles about product deployment and features.
- name: Try advanced database management features in DBeaver PRO or CloudBeaver EE
url: https://dbeaver.com/download/?utm_source=github&utm_medium=social&utm_campaign=issue
about: Download a 14-day free trial on dbeaver.com. No credit card is needed.
- name: Learn how to use CloudBeaver effectively with our tutorial videos
url: https://www.youtube.com/channel/UC-yOjsQLSaJVEghg6UB3N7A
about: Subscribe to our YouTube channel and watch new tutorials every week.
- name: Follow us on X (ex. Twitter)
url: https://x.com/dbeaver_news
about: Get everyday tips, fresh news, and DBeaver/CloudBeaver feature overviews.
+10 -3
View File
@@ -1,8 +1,9 @@
---
name: Feature request
about: Suggest an idea for CloudBeaver
name: Feature Request
about: Provide a description of your feature request for CloudBeaver. Include the problem you are trying to solve, why it is important, and any specific functionality you believe would improve the platform.
title: ''
labels: feature request, wait for review
labels: wait for review
type: Feature
assignees: ''
---
@@ -12,3 +13,9 @@ A clear and concise description of what the problem is. Ex. I'm always frustrate
**Describe the solution you'd like**
A clear and concise description of what you want to happen.
**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.
**Additional context**
Add any other context or screenshots about the feature request here.
+3 -2
View File
@@ -1,8 +1,9 @@
---
name: Question
about: Is there something unclear?
about: Is there something unclear? Ask your question.
title: ''
labels: question, wait for review
labels: wait for review
type: Question
assignees: ''
---
+42
View File
@@ -0,0 +1,42 @@
name: Backend Build
on:
# Allows you to reuse workflows by referencing their YAML files
workflow_call:
jobs:
build-backend:
name: Build
timeout-minutes: 10
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
path: cloudbeaver
- name: Clone Deps Repositories
uses: dbeaver/github-actions/clone-repositories@devel
with:
project_deps_path: "./cloudbeaver/project.deps"
- name: Set up JDK 21
uses: actions/setup-java@v4
with:
distribution: "temurin"
java-version: "21"
cache: maven
- uses: dbeaver/github-actions/install-maven@devel
- name: Run build script
run: ./build-backend.sh
shell: bash
working-directory: ./cloudbeaver/deploy
# - name: Archive build artifacts
# uses: actions/upload-artifact@v4
# with:
# name: backend-build-artifacts
# path: cloudbeaver/deploy/cloudbeaver
# if-no-files-found: error
+14
View File
@@ -0,0 +1,14 @@
name: Cleanup
on:
pull_request:
types: [closed]
push:
branches:
- devel
jobs:
delete-caches:
name: Cleanup
uses: dbeaver/dbeaver-common/.github/workflows/cleanup-caches.yml@devel
secrets: inherit
@@ -0,0 +1,93 @@
name: Build and Push Docker Image
on:
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
# Allows you to reuse workflows by referencing their YAML files
workflow_call:
jobs:
build-and-push-docker:
name: Build and Push Docker Image
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Download backend artifacts
uses: actions/download-artifact@v4
with:
name: backend-build-artifacts
path: deploy/cloudbeaver/
- name: Download frontend artifacts
uses: actions/download-artifact@v4
with:
name: frontend-build-artifacts
path: deploy/cloudbeaver/web
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Run custom Docker build script
run: ./make-docker-container.sh
shell: bash
working-directory: ./deploy/docker
- name: Tag Docker Image
run: |
REPO_NAME=$(basename ${{ github.repository }})
IMAGE_NAME=ghcr.io/${{ github.repository_owner }}/$REPO_NAME
BRANCH_NAME=${{ github.head_ref || github.ref_name }}
TAG_NAME=$(echo $BRANCH_NAME | sed 's/[^a-zA-Z0-9._-]/-/g')
docker tag dbeaver/cloudbeaver:dev $IMAGE_NAME:$TAG_NAME
echo "image=$IMAGE_NAME:$TAG_NAME" >> $GITHUB_ENV
# - name: Install Docker Credential Helper
# run: |
# sudo apt-get update
# sudo apt-get install -y gnupg2 pass
# curl -fsSL https://github.com/docker/docker-credential-helpers/releases/download/v0.6.4/docker-credential-pass-v0.6.4-amd64.tar.gz -o docker-credential-pass.tar.gz
# tar xzvf docker-credential-pass.tar.gz
# sudo mv docker-credential-pass /usr/local/bin/docker-credential-pass
# sudo chmod +x /usr/local/bin/docker-credential-pass
# - name: Configure Docker to use Credential Helper
# run: |
# mkdir -p ~/.docker
# echo '{"credsStore":"pass"}' > ~/.docker/config.json
# - name: Initialize Password Store
# run: |
# gpg --batch --gen-key <<EOF
# %no-protection
# Key-Type: default
# Subkey-Type: default
# Name-Real: Docker Credential Helper
# Expire-Date: 0
# %commit
# EOF
# pass init "$(gpg --list-keys --with-colons | grep '^pub' | cut -d: -f5)"
- name: Log in to GitHub Container Registry
run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u ${{ github.repository_owner }} --password-stdin
- name: Push Docker Image
run: docker push ${{ env.image }}
# - name: Comment on Pull Request
# if: github.event_name == 'pull_request'
# uses: actions/github-script@v6
# with:
# github-token: ${{ secrets.PAT }}
# script: |
# const tag = process.env.TAG_NAME;
# const commentBody = `The Docker image has been built and pushed to Docker Hub.\n\nYou can pull the image using the following command:\n\`\`\`\ndocker pull dbeaver/cloudbeaver:${tag}\n\`\`\``;
# github.rest.issues.createComment({
# owner: context.repo.owner,
# repo: context.repo.repo,
# issue_number: context.issue.number,
# body: commentBody
# });
+98
View File
@@ -0,0 +1,98 @@
name: Frontend Build
on:
# Allows you to reuse workflows by referencing their YAML files
workflow_call:
outputs:
build-status:
description: "Build status"
value: ${{ jobs.frontend-build.outputs.build-status }}
test-status:
description: "Test status"
value: ${{ jobs.frontend-build.outputs.test-status }}
inputs:
clean-cache:
required: false
type: boolean
jobs:
frontend-build:
name: Build
runs-on: ubuntu-latest
timeout-minutes: 10
permissions:
contents: read
outputs:
build-status: ${{ steps.build.outcome }}
test-status: ${{ steps.test.outcome }}
defaults:
run:
working-directory: ./cloudbeaver/webapp
steps:
- name: Checkout cloudbeaver
uses: actions/checkout@v4
with:
path: cloudbeaver
- name: Clone Deps Repositories
uses: dbeaver/github-actions/clone-repositories@devel
with:
project_deps_path: "./cloudbeaver/project.deps"
token: ${{ secrets.DEVOPS_ISSUE_RO_TOKEN }}
- run: corepack enable
- uses: actions/setup-node@v4
with:
node-version: "lts/*"
cache: "yarn"
cache-dependency-path: |
cloudbeaver/common-*/yarn.lock
cloudbeaver/webapp/yarn.lock
- name: restore cloudbeaver-common typescript cache
uses: actions/cache@v4
with:
path: "cloudbeaver/common-*/**/*/lib"
key: ${{ runner.os }}-common-dist-${{ hashFiles('cloudbeaver/common-*/yarn.lock') }}
restore-keys: |
${{ runner.os }}-common-dist-
- name: restore typescript cache
uses: actions/cache@v4
with:
path: "cloudbeaver/webapp/**/packages/*/dist"
key: ${{ runner.os }}-dist-${{ hashFiles('cloudbeaver/webapp/yarn.lock') }}
restore-keys: |
${{ runner.os }}-dist-
- if: inputs.clean-cache
run: yarn clear
- run: yarn install --immutable
working-directory: ./cloudbeaver/common-typescript
- run: yarn install --immutable
working-directory: ./cloudbeaver/common-react
- run: yarn install --immutable
- run: yarn bundle
working-directory: ./cloudbeaver/webapp/packages/product-default
- run: yarn test
working-directory: ./cloudbeaver/common-typescript
# - run: yarn test
# working-directory: ./cloudbeaver/common-react
- run: yarn test
# - name: Archive build artifacts
# uses: actions/upload-artifact@v4
# with:
# name: frontend-build-artifacts
# path: webapp/packages/product-default/lib
# if-no-files-found: error
-76
View File
@@ -1,76 +0,0 @@
name: frontend-cache
on:
push:
branches: ["devel"]
paths:
- "webapp/**"
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
jobs:
build_and_test:
runs-on: ubuntu-latest
defaults:
run:
working-directory: ./webapp
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: "18"
- name: Get yarn cache directory path
id: yarn-cache-dir-path
run: echo "dir=$(yarn cache dir)" >> $GITHUB_OUTPUT
- name: restore yarn cache
uses: actions/cache@v3
with:
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
${{ runner.os }}-yarn-
- name: restore node_modules
uses: actions/cache@v3
with:
path: "**/node_modules"
key: ${{ runner.os }}-node_modules-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
${{ runner.os }}-node_modules-
- name: restore typescript cache
uses: actions/cache@v3
with:
path: "**/packages/*/dist"
key: ${{ runner.os }}-dist-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
${{ runner.os }}-dist-
- name: yarn install
uses: borales/actions-yarn@v4
with:
dir: webapp
cmd: install
- name: yarn lerna bootstrap
uses: borales/actions-yarn@v4
with:
dir: webapp
cmd: lerna bootstrap
- name: build
uses: borales/actions-yarn@v4
with:
dir: webapp/packages/product-default
cmd: build # build tyescript source code
- name: test
uses: borales/actions-yarn@v4
with:
dir: webapp
cmd: lerna run test # build packages that have test script
-29
View File
@@ -1,29 +0,0 @@
name: cleanup caches by a branch
on:
pull_request:
types:
- closed
jobs:
cleanup:
runs-on: ubuntu-latest
steps:
- name: Cleanup
run: |
gh extension install actions/gh-actions-cache
echo "Fetching list of cache key"
cacheKeysForPR=$(gh actions-cache list -R $REPO -B $BRANCH -L 100 | cut -f 1 )
## Setting this to not fail the workflow while deleting cache keys.
set +e
echo "Deleting caches..."
for cacheKey in $cacheKeysForPR
do
gh actions-cache delete $cacheKey -R $REPO -B $BRANCH --confirm
done
echo "Done"
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
REPO: ${{ github.repository }}
BRANCH: refs/pull/${{ github.event.pull_request.number }}/merge
+46
View File
@@ -0,0 +1,46 @@
name: Frontend Lint
on:
# Allows you to reuse workflows by referencing their YAML files
workflow_call:
jobs:
lint:
name: Lint
runs-on: ubuntu-latest
timeout-minutes: 5
permissions:
contents: read
defaults:
run:
working-directory: ./cloudbeaver/webapp
steps:
- name: Checkout cloudbeaver
uses: actions/checkout@v4
with:
path: cloudbeaver
- run: corepack enable
- uses: actions/setup-node@v4
with:
node-version: "lts/*"
cache: "yarn"
cache-dependency-path: "./cloudbeaver/webapp/yarn.lock"
# - run: yarn install --immutable
# working-directory: ./cloudbeaver/common-typescript
# - run: yarn install --immutable
# working-directory: ./cloudbeaver/common-react
- run: |
yarn install --immutable
git fetch origin "${{ github.base_ref }}" --depth=1
FILES=$(git diff --name-only 'origin/${{ github.base_ref }}' ${{ github.sha }} -- . | sed 's|^webapp/||')
if [ -n "$FILES" ]; then
yarn lint --pass-on-no-patterns --no-error-on-unmatched-pattern $FILES
else
echo "No files to lint"
fi
-80
View File
@@ -1,80 +0,0 @@
name: frontend
on:
# Triggers the workflow on push or pull request events but only for the "devel" branch
pull_request:
branches: ["devel"]
paths:
- "webapp/**" # monitor for the frontend changes
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
# Allows you to reuse workflows by referencing their YAML files
workflow_call:
jobs:
build_and_test:
runs-on: ubuntu-latest
defaults:
run:
working-directory: ./webapp
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: "20"
- name: Get yarn cache directory path
id: yarn-cache-dir-path
run: echo "dir=$(yarn cache dir)" >> $GITHUB_OUTPUT
- name: restore yarn cache
uses: actions/cache@v3
with:
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
${{ runner.os }}-yarn-
- name: restore node_modules
uses: actions/cache@v3
with:
path: "**/node_modules"
key: ${{ runner.os }}-node_modules-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
${{ runner.os }}-node_modules-
- name: restore typescript cache
uses: actions/cache@v3
with:
path: "**/packages/*/dist"
key: ${{ runner.os }}-dist-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
${{ runner.os }}-dist-
- name: yarn install
uses: borales/actions-yarn@v4
with:
dir: webapp
cmd: install
- name: yarn lerna bootstrap
uses: borales/actions-yarn@v4
with:
dir: webapp
cmd: lerna bootstrap
- name: build
uses: borales/actions-yarn@v4
with:
dir: webapp/packages/product-default
cmd: bundle
- name: test
uses: borales/actions-yarn@v4
with:
dir: webapp
cmd: lerna run test
+64
View File
@@ -0,0 +1,64 @@
name: CI
on:
pull_request:
types:
- opened
- synchronize
- reopened
push:
branches: [devel]
concurrency:
group: ${{ github.workflow }}-${{ github.event_name == 'pull_request' && github.event.pull_request.number || github.ref_name }}
cancel-in-progress: true
jobs:
build-server:
uses: dbeaver/dbeaver-common/.github/workflows/mvn-package.yml@devel
name: Check
secrets: inherit
with:
mvn-args: -Dplain-api-server -Dheadless-platform
project-directory: ./cloudbeaver/server/product/aggregate
project-deps: ./cloudbeaver/project.deps
timeout-minutes: 5
# build-server:
# name: Server
# uses: ./.github/workflows/backend-build.yml
# secrets: inherit
build-frontend:
name: Frontend
uses: ./.github/workflows/frontend-build.yml
secrets: inherit
lint-server:
name: Server
uses: dbeaver/dbeaver-common/.github/workflows/java-checkstyle.yml@devel
secrets: inherit
lint-frontend:
name: Frontend
uses: ./.github/workflows/frontend-lint.yml
secrets: inherit
# call-frontend-tests:
# name: Frontend Unit Tests
# needs: call-frontend-build
# runs-on: ubuntu-latest
# steps:
# - name: Check if tests passed
# if: ${{ needs.call-frontend-build.outputs.test-status != 'success' }}
# run: |
# echo "Tests failed"
# exit 1
# - name: Continue if tests passed
# if: ${{ needs.call-frontend-build.outputs.test-status == 'success' }}
# run: echo "Tests passed"
# call-docker-build-and-push:
# name: Run
# needs: [call-backend-build, call-frontend-build]
# uses: ./.github/workflows/docker-build-and-push.yml
-17
View File
@@ -1,17 +0,0 @@
name: validation
on:
pull_request:
branches:
- devel
types:
- opened
- synchronize
- reopened
- edited
- ready_for_review
- labeled
jobs:
commit-message:
uses: dbeaver/dbeaver/.github/workflows/reused-commit-msgs-validator.yml@devel
+7 -2
View File
@@ -26,7 +26,7 @@ dist/
*.iml
/idea/
.idea/
## Mac OS
.DS_Store
@@ -40,6 +40,11 @@ server/test/io.cloudbeaver.test.platform/workspace/.data/
.classpath
.settings/
## Eclipse PDE
*.product.launch
workspace-dev-ce/
deploy/cloudbeaver
server/**/target
apps/**/target
apps/**/target
osgi-cache/
+2 -2
View File
@@ -15,11 +15,11 @@
"streetsidesoftware.code-spell-checker",
"streetsidesoftware.code-spell-checker-russian",
"syler.sass-indented",
"VisualStudioExptTeam.intellicode-api-usage-examples",
"VisualStudioExptTeam.vscodeintellicode",
"yzhang.markdown-all-in-one",
"GraphQL.vscode-graphql-syntax",
"mrmlnc.vscode-json5",
"esbenp.prettier-vscode"
"esbenp.prettier-vscode",
"devnaumov.licensify"
]
}
+59 -75
View File
@@ -4,89 +4,73 @@
{
"type": "chrome",
"request": "launch",
"name": "Chrome",
"name": "CloudBeaver CE",
"url": "http://localhost:8080",
"webRoot": "${workspaceFolder}/..",
"outFiles": [
"${workspaceFolder}/../cloudbeaver/webapp/packages/**/dist/**/*.{js,jsx}"
],
"smartStep": true,
"sourceMaps": true,
"sourceMapPathOverrides": {
"webpack:///*": "${workspaceFolder}/../*"
},
"skipFiles": [
"<node_internals>/**",
"**/node_modules/**",
"${workspaceFolder}/webapp/**/node_modules/**/*.js",
"${workspaceFolder}/webapp/**/dist/**/*.js"
]
"disableNetworkCache": true,
"skipFiles": ["<node_internals>/**", "**/node_modules/**"]
},
{
"type": "java",
"name": "CloudBeaver CE",
"cwd": "${workspaceFolder}/../opt/cbce",
"name": "CloudBeaver CE Server",
"cwd": "${workspaceFolder}/../dbeaver-workspace/app-workspace/cbce",
"request": "launch",
"mainClass": "org.jkiss.dbeaver.launcher.DBeaverLauncher",
"windows": {
"type": "java",
"name": "CloudBeaver CE",
"request": "launch",
"mainClass": "org.jkiss.dbeaver.launcher.DBeaverLauncher",
"args": [
"-product",
"io.cloudbeaver.product.ce.product",
"-configuration",
"file:${workspaceFolder}/../eclipse/workspace/.metadata/.plugins/org.eclipse.pde.core/CloudbeaverServer.product/",
"-dev",
"file:${workspaceFolder}/../eclipse/workspace/.metadata/.plugins/org.eclipse.pde.core/CloudbeaverServer.product/dev.properties",
"-os",
"win32",
"-ws",
"win32",
"-arch",
"x86_64",
"-nl",
"en",
"-showsplash",
"-web-config",
"conf/cloudbeaver.conf"
],
"vmArgs": [
"-XX:+IgnoreUnrecognizedVMOptions",
"--add-modules=ALL-SYSTEM",
"-Xms64m",
"-Xmx1024m",
"-Declipse.pde.launch=true"
]
},
"osx": {
"type": "java",
"name": "CloudBeaver CE",
"request": "launch",
"mainClass": "org.jkiss.dbeaver.launcher.DBeaverLauncher",
"args": [
"-product",
"io.cloudbeaver.product.ce.product",
"-configuration",
"file:${workspaceFolder}/../eclipse/workspace/.metadata/.plugins/org.eclipse.pde.core/CloudbeaverServer.product/",
"-dev",
"file:${workspaceFolder}/../eclipse/workspace/.metadata/.plugins/org.eclipse.pde.core/CloudbeaverServer.product/dev.properties",
"-os",
"macosx",
"-ws",
"cocoa",
"-arch",
"aarch64",
"-nl",
"en_US",
"-showsplash"
],
"vmArgs": [
"-XX:+IgnoreUnrecognizedVMOptions",
"--add-modules=ALL-SYSTEM",
"-Xms64m",
"-Xmx1024m",
"-Declipse.pde.launch=true",
"-XstartOnFirstThread"
]
}
"args": [
"-product",
"io.cloudbeaver.product.ce.product",
"-configuration",
"file:${workspaceFolder}/../dbeaver-workspace/products/CloudbeaverServer.product/",
"-dev",
"file:${workspaceFolder}/../dbeaver-workspace/products/CloudbeaverServer.product/dev.properties",
"-nl",
"en",
"-web-config",
"conf/cloudbeaver.conf",
"-registryMultiLanguage"
],
// "windows": {
// "args": ["-os", "win32", "-ws", "win32", "-arch", "x86_64"]
// },
// "osx": {
// "args": ["-os", "macosx", "-ws", "cocoa", "-arch", "aarch64"]
// },
"vmArgs": [
"-XX:+IgnoreUnrecognizedVMOptions",
"-Xms64m",
"-Xmx1024m",
"-Declipse.pde.launch=true",
"-XstartOnFirstThread",
"-Dfile.encoding=UTF-8",
"--add-modules=ALL-SYSTEM",
"--add-opens=java.base/java.io=ALL-UNNAMED",
"--add-opens=java.base/java.lang=ALL-UNNAMED",
"--add-opens=java.base/java.lang.reflect=ALL-UNNAMED",
"--add-opens=java.base/java.net=ALL-UNNAMED",
"--add-opens=java.base/java.nio=ALL-UNNAMED",
"--add-opens=java.base/java.nio.charset=ALL-UNNAMED",
"--add-opens=java.base/java.text=ALL-UNNAMED",
"--add-opens=java.base/java.time=ALL-UNNAMED",
"--add-opens=java.base/java.util=ALL-UNNAMED",
"--add-opens=java.base/java.util.concurrent=ALL-UNNAMED",
"--add-opens=java.base/java.util.concurrent.atomic=ALL-UNNAMED",
"--add-opens=java.base/jdk.internal.vm=ALL-UNNAMED",
"--add-opens=java.base/jdk.internal.misc=ALL-UNNAMED",
"--add-opens=java.base/sun.nio.ch=ALL-UNNAMED",
"--add-opens=java.base/sun.security.ssl=ALL-UNNAMED",
"--add-opens=java.base/sun.security.action=ALL-UNNAMED",
"--add-opens=java.base/sun.security.util=ALL-UNNAMED",
"--add-opens=java.security.jgss/sun.security.jgss=ALL-UNNAMED",
"--add-opens=java.security.jgss/sun.security.krb5=ALL-UNNAMED",
"--add-opens=java.base/java.util.concurrent.atomic=ALL-UNNAMED",
"--add-opens=java.sql/java.sql=ALL-UNNAMED"
]
}
]
}
-17
View File
@@ -1,17 +0,0 @@
{
"license": {
"scope": "typescript,typescriptreact,javascript,javascriptreact,css,scss",
"prefix": "license",
"body": [
"/*",
" * CloudBeaver - Cloud Database Manager",
" * Copyright (C) 2020-2024 DBeaver Corp and others",
" *",
" * Licensed under the Apache License, Version 2.0.",
" * you may not use this file except in compliance with the License.",
" */",
"",
""
]
}
}
+9 -11
View File
@@ -2,19 +2,18 @@
"editor.tabSize": 2,
"editor.formatOnSave": true,
"editor.linkedEditing": true,
"task.autoDetect": "off",
"java.configuration.updateBuildConfiguration": "automatic",
"java.jdt.ls.vmargs": "-XX:+UseParallelGC -XX:GCTimeRatio=4 -XX:AdaptiveSizePolicyWeight=90 -Dsun.zip.disableMemoryMapping=true -Xmx16G -Xms100m -Xlog:disable",
"java.compile.nullAnalysis.mode": "automatic",
"typescript.preferences.useAliasesForRenames": false,
"typescript.preferences.importModuleSpecifier": "relative",
"typescript.preferences.includePackageJsonAutoImports": "on",
"typescript.preferences.quoteStyle": "single",
"typescript.tsdk": "webapp/node_modules/typescript/lib",
"typescript.tsdk": "webapp/.yarn/sdks/typescript/lib",
"typescript.enablePromptUseWorkspaceTsdk": true,
"prettier.prettierPath": "webapp/.yarn/sdks/prettier/index.cjs",
"eslint.nodePath": "webapp/.yarn/sdks",
"eslint.enable": true,
"eslint.validate": [
"javascript",
@@ -22,8 +21,9 @@
"typescript",
"typescriptreact"
],
"eslint.workingDirectories": ["webapp"],
"eslint.workingDirectories": [
"webapp"
],
"editor.defaultFormatter": "esbenp.prettier-vscode",
"[javascript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
@@ -40,12 +40,10 @@
"[java]": {
"editor.defaultFormatter": "redhat.java"
},
"files.eol": "\n",
"files.associations": {
"*.css": "postcss"
},
"java.checkstyle.configuration": "${workspaceFolder}/../dbeaver/dbeaver-checkstyle-config.xml",
"java.checkstyle.configuration": "${workspaceFolder}/../dbeaver-common/.github/dbeaver-checkstyle-config.xml",
"java.checkstyle.version": "10.12.0"
}
}
+32 -6
View File
@@ -17,7 +17,7 @@
"type": "shell",
"command": "yarn",
"group": "test",
"args": ["lerna", "run", "test", "--no-bail", "--stream", "--"]
"args": ["test"]
},
{
"label": "Run DevServer CE",
@@ -33,14 +33,32 @@
"cwd": "${workspaceFolder}/webapp/packages/product-default"
}
},
{
"label": "Generate Eclipse PDE CloudBeaver",
"type": "shell",
"osx": {
"command": "./generate_workspace.sh"
},
"windows": {
"command": "./generate_workspace.cmd"
},
"options": {
"cwd": "${workspaceFolder}/../cloudbeaver"
},
"presentation": {
"reveal": "silent",
"close": true,
"clear": false
}
},
{
"label": "Build CE",
"type": "shell",
"windows": {
"command": "./build-sqlite.bat"
"command": "./build.bat"
},
"osx": {
"command": "./build-sqlite.sh"
"command": "./build.sh"
},
"options": {
"cwd": "${workspaceFolder}/deploy"
@@ -66,7 +84,7 @@
{
"label": "Yarn Install",
"type": "shell",
"command": "yarn install; yarn lerna bootstrap",
"command": "yarn install",
"args": [],
"presentation": {
"reveal": "silent",
@@ -75,12 +93,20 @@
}
},
{
"label": "Update TS references CE",
"label": "Clean CE",
"type": "shell",
"command": "yarn lerna run update-ts-references --stream",
"command": "yarn clear",
"options": {
"cwd": "${workspaceFolder}/webapp"
}
},
{
"label": "Add Custom Plugin",
"type": "shell",
"command": "yarn run add-plugin",
"options": {
"cwd": "${workspaceFolder}/webapp/packages"
}
}
],
"inputs": [
+78 -37
View File
@@ -1,57 +1,98 @@
<img src="https://github.com/dbeaver/cloudbeaver/wiki/images/cloudbeaver-logo.png" align="right" width="250"/>
# CloudBeaver Community
<img src="https://github.com/dbeaver/cloudbeaver/wiki/images/cloudbeaver-logo.png" width="250"/>
Cloud Database Manager - Community Edition.
CloudBeaver is a web server which provides rich web interface. Server itself is a Java application, web part is written on TypeScript and React.
CloudBeaver is a web server that provides a rich web interface. The server itself is a Java application, and the web part is written in TypeScript and React.
It is free to use and open-source (licensed under [Apache 2](https://github.com/dbeaver/cloudbeaver/blob/devel/LICENSE) license).
See out [WIKI](https://github.com/dbeaver/cloudbeaver/wiki) for more details.
See our [WIKI](https://github.com/dbeaver/cloudbeaver/wiki) for more details.
![](https://github.com/dbeaver/cloudbeaver/wiki/images/demo_screenshot_1.png)
<a><img src="https://github.com/dbeaver/cloudbeaver/wiki/images/connection-creation-demo.png" width="400"/></a>
<img src="https://github.com/dbeaver/cloudbeaver/wiki/images/gis-demo.png" width="400"/>
<img src="https://github.com/dbeaver/cloudbeaver/wiki/images/data-transfer-demo.png" width="400"/>
<img src="https://github.com/dbeaver/cloudbeaver/wiki/images/sql-editor-demo.png" width="400"/>
## Run in Docker
- [Official Docker repository](https://hub.docker.com/r/dbeaver/cloudbeaver)
- [Running instructions](https://github.com/dbeaver/cloudbeaver/wiki/Run-Docker-Container)
- [Deployment instructions](https://github.com/dbeaver/cloudbeaver/wiki/CloudBeaver-Deployment)
## Demo server
You can see live demo of CloudBeaver here: https://demo.cloudbeaver.io
You can see a live demo of CloudBeaver here: https://demo.cloudbeaver.io
[Database access instructions](https://github.com/dbeaver/cloudbeaver/wiki/Demo-Server)
## 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).
### 24.0.0. 2024-03-04
- Changes since 23.3.0:
### 25.0.4 2025-05-05
- 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.
- Main updates:
- Have enhanced security for unauthorised access;
- Have added a password policy for the local authorization. Password parameters can be set in the configuration file;
- Have added validation for mandatory fields in all forms to create and edit entities;
- Have added an ability to edit the default preferences of the following parts: interface, tools and data viewer in the settings panel in the administrative part;
- Performance:
- Have improved the performance of the server.
- Administration:
- Have added the ability to configure reverse proxy header name and redirect URL at logout. Now the administrator can configure all settings. The delimiter symbol for the reverse proxy team headers is configurable;
- Preferences:
- Have added the ability in the admin panel to customise copying in the Tables and Values panel for all users except the administrator;
- Have added the ability to disable alias autocomplete for all users.
- Access Management:
- A default user group was added to the product. This group includes all users which could not be deleted.
- Connections:
- The 'Keep alive' option has been added to the connection settings to keep the connection active even in case of inactivity.
- Data Editor:
- Have added the ability to view decoded binary-type data in the Value panel;
- Text wrap is activated by default for texts and BLOBs in the Values panel for better visibility. The user can switch to the one-line mode using a button on the toolbar;
- Have added the ability to display full text for a string data type in the Value panel;
- Have added the ability to display the OpenStreetMap layer with the coordinate system ESPG 4326.
- Resource management:
- Read-only scripts now have a padlock icon.
- Databases:
- The DuckDB driver has been added;
- Updated PostgreSQL driver to 42.5.2;
- ClickHouse Legacy driver has been removed to prevent potential vulnerability issues;
- Updated MariaDB driver to version 3.3.2.
### 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.
- 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.
- 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.
## Contribution
As a community-driven open-source project, we warmly welcome contributions through GitHub pull requests.
[We are happy to reward](https://dbeaver.com/help-dbeaver/) our most active contributors every major sprint.
The most significant contribution to our code for the major release 24.3.0 was made by:
1. [cashlifei](https://github.com/cashlifei)
+4 -3
View File
@@ -9,9 +9,10 @@ currently being supported with security updates.
| ------- | --------- |
| 22.x | yes |
| 23.x | yes |
| 24.x | yes |
## Reporting a Vulnerability
Please report (suspected) security vulnerabilities to devops@dbeaver.com.
You will receive a response from us within 48 hours.
If the issue is confirmed, we will release a patch as soon as possible depending on complexity but historically within a few days.
Please report (suspected) security vulnerabilities to devops@dbeaver.com.
You will receive a response from us within 48 hours.
If the issue is confirmed, we will release a patch as soon as possible, depending on complexity, but historically, within a few days.
+1 -1
View File
@@ -17,7 +17,7 @@
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>2.2.220</version>
<version>2.1.214</version>
</dependency>
</dependencies>
<build>
+10
View File
@@ -0,0 +1,10 @@
root = true
[*]
end_of_line = lf
insert_final_newline = true
[*.{js,json,yml}]
charset = utf-8
indent_style = space
indent_size = 2
+4
View File
@@ -0,0 +1,4 @@
/.yarn/** linguist-vendored
/.yarn/releases/* binary
/.yarn/plugins/**/* binary
/.pnp.* binary linguist-generated
+21
View File
@@ -0,0 +1,21 @@
# artifacts
lib
out
dist
node_modules
# Yarn
.yarn/*
!.yarn/patches
!.yarn/plugins
!.yarn/releases
!.yarn/sdks
!.yarn/versions
!.yarn/sdks/**
# Swap the comments on the following lines if you wish to use zero-installs
# In that case, don't forget to run `yarn config set enableGlobalCache false`!
# Documentation here: https://yarnpkg.com/features/caching#zero-installs
#!.yarn/cache
.pnp.*
+10
View File
@@ -0,0 +1,10 @@
import defaultDbeaverConfig from '@dbeaver/prettier-config';
/**
* @type {import("prettier").Config}
*/
const config = {
...defaultDbeaverConfig,
};
export default config;
+6
View File
@@ -0,0 +1,6 @@
{
"recommendations": [
"arcanis.vscode-zipfs",
"esbenp.prettier-vscode"
]
}
+9
View File
@@ -0,0 +1,9 @@
{
"search.exclude": {
"**/.yarn": true,
"**/.pnp.*": true
},
"typescript.tsdk": ".yarn/sdks/typescript/lib",
"typescript.enablePromptUseWorkspaceTsdk": true,
"prettier.prettierPath": ".yarn/sdks/prettier/index.cjs"
}
File diff suppressed because one or more lines are too long
+5
View File
@@ -0,0 +1,5 @@
# This file is automatically generated by @yarnpkg/sdks.
# Manual changes might be lost!
integrations:
- vscode
+32
View File
@@ -0,0 +1,32 @@
#!/usr/bin/env node
const {existsSync} = require(`fs`);
const {createRequire, register} = require(`module`);
const {resolve} = require(`path`);
const {pathToFileURL} = require(`url`);
const relPnpApiPath = "../../../../.pnp.cjs";
const absPnpApiPath = resolve(__dirname, relPnpApiPath);
const absUserWrapperPath = resolve(__dirname, `./sdk.user.cjs`);
const absRequire = createRequire(absPnpApiPath);
const absPnpLoaderPath = resolve(absPnpApiPath, `../.pnp.loader.mjs`);
const isPnpLoaderEnabled = existsSync(absPnpLoaderPath);
if (existsSync(absPnpApiPath)) {
if (!process.versions.pnp) {
// Setup the environment to be able to require prettier/bin/prettier.cjs
require(absPnpApiPath).setup();
if (isPnpLoaderEnabled && register) {
register(pathToFileURL(absPnpLoaderPath));
}
}
}
const wrapWithUserWrapper = existsSync(absUserWrapperPath)
? exports => absRequire(absUserWrapperPath)(exports)
: exports => exports;
// Defer to the real prettier/bin/prettier.cjs your application uses
module.exports = wrapWithUserWrapper(absRequire(`prettier/bin/prettier.cjs`));
+32
View File
@@ -0,0 +1,32 @@
#!/usr/bin/env node
const {existsSync} = require(`fs`);
const {createRequire, register} = require(`module`);
const {resolve} = require(`path`);
const {pathToFileURL} = require(`url`);
const relPnpApiPath = "../../../.pnp.cjs";
const absPnpApiPath = resolve(__dirname, relPnpApiPath);
const absUserWrapperPath = resolve(__dirname, `./sdk.user.cjs`);
const absRequire = createRequire(absPnpApiPath);
const absPnpLoaderPath = resolve(absPnpApiPath, `../.pnp.loader.mjs`);
const isPnpLoaderEnabled = existsSync(absPnpLoaderPath);
if (existsSync(absPnpApiPath)) {
if (!process.versions.pnp) {
// Setup the environment to be able to require prettier
require(absPnpApiPath).setup();
if (isPnpLoaderEnabled && register) {
register(pathToFileURL(absPnpLoaderPath));
}
}
}
const wrapWithUserWrapper = existsSync(absUserWrapperPath)
? exports => absRequire(absUserWrapperPath)(exports)
: exports => exports;
// Defer to the real prettier your application uses
module.exports = wrapWithUserWrapper(absRequire(`prettier`));
+7
View File
@@ -0,0 +1,7 @@
{
"name": "prettier",
"version": "3.5.3-sdk",
"main": "./index.cjs",
"type": "commonjs",
"bin": "./bin/prettier.cjs"
}
+10
View File
@@ -0,0 +1,10 @@
enableTelemetry: false
preferReuse: true
# pnpIgnorePatterns:
# - "**/cloudbeaver/common-typescript/**"
plugins:
- checksum: 50414773926286d8c0fc32e9936a799ad23296281046f03674bc33517b597e1ff7856092c3fcf8d5460a29549ef8b3dca3f59a1732b650a02bf523b255d726e7
path: .yarn/plugins/@yarnpkg/plugin-ts-project-linker.cjs
spec: "https://raw.githubusercontent.com/Wroud/foundation/refs/heads/main/packages/yarn-plugin-ts-project-linker/bundles/%40yarnpkg/plugin-ts-project-linker.js"
@@ -0,0 +1 @@
# @dbeaver/react-data-grid
@@ -0,0 +1 @@
!lib
File diff suppressed because it is too large Load Diff
File diff suppressed because one or more lines are too long
@@ -0,0 +1,490 @@
import { Context } from 'react';
import { JSX } from 'react/jsx-runtime';
import type { Key } from 'react';
import type { ReactElement } from 'react';
import { ReactNode } from 'react';
declare interface BaseRenderRowProps<TRow, TSummaryRow = unknown> extends Omit_2<React.ComponentProps<'div'>, 'style' | 'children'>, Pick<DataGridProps<TRow, TSummaryRow>, 'onCellClick' | 'onCellDoubleClick' | 'onCellContextMenu'> {
viewportColumns: readonly CalculatedColumn<TRow, TSummaryRow>[];
rowIdx: number;
selectedCellIdx: number | undefined;
isRowSelectionDisabled: boolean;
isRowSelected: boolean;
gridRowStart: number;
selectCell: (position: Position, enableEditor?: Maybe<boolean>) => void;
}
export declare interface CalculatedColumn<TRow, TSummaryRow = unknown> extends Column<TRow, TSummaryRow> {
readonly parent: CalculatedColumnParent<TRow, TSummaryRow> | undefined;
readonly idx: number;
readonly level: number;
readonly width: number | string;
readonly minWidth: number;
readonly maxWidth: number | undefined;
readonly resizable: boolean;
readonly sortable: boolean;
readonly draggable: boolean;
readonly frozen: boolean;
readonly renderCell: (props: RenderCellProps<TRow, TSummaryRow>) => ReactNode;
readonly renderHeaderCell: (props: RenderHeaderCellProps<TRow, TSummaryRow>) => ReactNode;
}
export declare type CalculatedColumnOrColumnGroup<R, SR> = CalculatedColumnParent<R, SR> | CalculatedColumn<R, SR>;
export declare interface CalculatedColumnParent<R, SR> {
readonly name: string | ReactElement;
readonly parent: CalculatedColumnParent<R, SR> | undefined;
readonly idx: number;
readonly colSpan: number;
readonly level: number;
readonly headerCellClass?: Maybe<string>;
}
export declare const Cell: <R, SR>(props: CellRendererProps<R, SR>) => React.JSX.Element;
export declare interface CellClickArgs<TRow, TSummaryRow = unknown> {
rowIdx: number;
row: TRow;
column: CalculatedColumn<TRow, TSummaryRow>;
selectCell: (enableEditor?: boolean) => void;
}
declare type CellEvent<E extends React.SyntheticEvent<HTMLDivElement>> = E & {
preventGridDefault: () => void;
isGridDefaultPrevented: () => boolean;
};
export declare type CellKeyboardEvent = CellEvent<React.KeyboardEvent<HTMLDivElement>>;
export declare type CellKeyDownArgs<TRow, TSummaryRow = unknown> = SelectCellKeyDownArgs<TRow, TSummaryRow> | EditCellKeyDownArgs<TRow, TSummaryRow>;
export declare type CellMouseEvent = CellEvent<React.MouseEvent<HTMLDivElement>>;
export declare interface CellRendererProps<TRow, TSummaryRow> extends Pick<RenderRowProps<TRow, TSummaryRow>, 'row' | 'rowIdx' | 'selectCell'>, Omit_2<React.ComponentProps<'div'>, 'children' | 'onClick' | 'onDoubleClick' | 'onContextMenu'> {
column: CalculatedColumn<TRow, TSummaryRow>;
colSpan: number | undefined;
isCopied: boolean;
isDraggedOver: boolean;
isCellSelected: boolean;
onClick: RenderRowProps<TRow, TSummaryRow>['onCellClick'];
onDoubleClick: RenderRowProps<TRow, TSummaryRow>['onCellDoubleClick'];
onContextMenu: RenderRowProps<TRow, TSummaryRow>['onCellContextMenu'];
onRowChange: (column: CalculatedColumn<TRow, TSummaryRow>, newRow: TRow) => void;
}
export declare interface CellSelectArgs<TRow, TSummaryRow = unknown> {
rowIdx: number;
row: TRow | undefined;
column: CalculatedColumn<TRow, TSummaryRow>;
}
export declare type ColSpanArgs<TRow, TSummaryRow> = {
type: 'HEADER';
} | {
type: 'ROW';
row: TRow;
} | {
type: 'SUMMARY';
row: TSummaryRow;
};
export declare interface Column<TRow, TSummaryRow = unknown> {
/** The name of the column. By default it will be displayed in the header cell */
readonly name: string | ReactElement;
/** A unique key to distinguish each column */
readonly key: string;
/**
* Column width. If not specified, it will be determined automatically based on grid width and specified widths of other columns
* @default 'auto'
*/
readonly width?: Maybe<number | string>;
/**
* Minimum column width in px
* @default '50px'
*/
readonly minWidth?: Maybe<number>;
/** Maximum column width in px. */
readonly maxWidth?: Maybe<number>;
readonly cellClass?: Maybe<string | ((row: TRow) => Maybe<string>)>;
readonly headerCellClass?: Maybe<string>;
readonly summaryCellClass?: Maybe<string | ((row: TSummaryRow) => Maybe<string>)>;
/** Render function used to render the content of cells */
readonly renderCell?: Maybe<(props: RenderCellProps<TRow, TSummaryRow>) => ReactNode>;
/** Render function used to render the content of the column's header cell */
readonly renderHeaderCell?: Maybe<(props: RenderHeaderCellProps<TRow, TSummaryRow>) => ReactNode>;
/** Render function used to render the content of summary cells */
readonly renderSummaryCell?: Maybe<(props: RenderSummaryCellProps<TSummaryRow, TRow>) => ReactNode>;
/** Render function used to render the content of group cells */
readonly renderGroupCell?: Maybe<(props: RenderGroupCellProps<TRow, TSummaryRow>) => ReactNode>;
/** Render function used to render the content of edit cells. When set, the column is automatically set to be editable */
readonly renderEditCell?: Maybe<(props: RenderEditCellProps<TRow, TSummaryRow>) => ReactNode>;
/** Enables cell editing. If set and no editor property specified, then a textinput will be used as the cell editor */
readonly editable?: Maybe<boolean | ((row: TRow) => boolean)>;
readonly colSpan?: Maybe<(args: ColSpanArgs<TRow, TSummaryRow>) => Maybe<number>>;
/** Determines whether column is frozen or not */
readonly frozen?: Maybe<boolean>;
/** Enable resizing of a column */
readonly resizable?: Maybe<boolean>;
/** Enable sorting of a column */
readonly sortable?: Maybe<boolean>;
/** Enable dragging of a column */
readonly draggable?: Maybe<boolean>;
/** Sets the column sort order to be descending instead of ascending the first time the column is sorted */
readonly sortDescendingFirst?: Maybe<boolean>;
readonly editorOptions?: Maybe<{
/**
* Render the cell content in addition to the edit cell.
* Enable this option when the editor is rendered outside the grid, like a modal for example.
* By default, the cell content is not rendered when the edit cell is open.
* @default false
*/
readonly displayCellContent?: Maybe<boolean>;
/** @default true */
readonly commitOnOutsideClick?: Maybe<boolean>;
}>;
}
export declare interface ColumnGroup<R, SR = unknown> {
/** The name of the column group, it will be displayed in the header cell */
readonly name: string | ReactElement;
readonly headerCellClass?: Maybe<string>;
readonly children: readonly ColumnOrColumnGroup<R, SR>[];
}
export declare type ColumnOrColumnGroup<R, SR = unknown> = Column<R, SR> | ColumnGroup<R, SR>;
export declare interface CopyEvent<TRow> {
sourceColumnKey: string;
sourceRow: TRow;
}
/**
* Main API Component to render a data grid of rows and columns
*
* @example
*
* <DataGrid columns={columns} rows={rows} />
*/
export declare function DataGrid<R, SR = unknown, K extends Key = Key>(props: DataGridProps<R, SR, K>): JSX.Element;
export declare const DataGridDefaultRenderersContext: Context<Maybe<Renderers<any, any>>>;
export declare interface DataGridHandle {
element: HTMLDivElement | null;
scrollToCell: (position: PartialPosition) => void;
selectCell: (position: Position, enableEditor?: Maybe<boolean>) => void;
}
export declare interface DataGridProps<R, SR = unknown, K extends Key = Key> extends SharedDivProps {
ref?: Maybe<React.Ref<DataGridHandle>>;
/**
* Grid and data Props
*/
/** An array of objects representing each column on the grid */
columns: readonly ColumnOrColumnGroup<NoInfer<R>, NoInfer<SR>>[];
/** A function called for each rendered row that should return a plain key/value pair object */
rows: readonly R[];
/**
* Rows to be pinned at the top of the rows view for summary, the vertical scroll bar will not scroll these rows.
*/
topSummaryRows?: Maybe<readonly SR[]>;
/**
* Rows to be pinned at the bottom of the rows view for summary, the vertical scroll bar will not scroll these rows.
*/
bottomSummaryRows?: Maybe<readonly SR[]>;
/** The getter should return a unique key for each row */
rowKeyGetter?: Maybe<(row: NoInfer<R>) => K>;
onRowsChange?: Maybe<(rows: NoInfer<R>[], data: RowsChangeData<NoInfer<R>, NoInfer<SR>>) => void>;
/**
* Dimensions props
*/
/**
* The height of each row in pixels
* @default 35
*/
rowHeight?: Maybe<number | ((row: NoInfer<R>) => number)>;
/**
* The height of the header row in pixels
* @default 35
*/
headerRowHeight?: Maybe<number>;
/**
* The height of each summary row in pixels
* @default 35
*/
summaryRowHeight?: Maybe<number>;
/**
* Feature props
*/
/** Set of selected row keys */
selectedRows?: Maybe<ReadonlySet<K>>;
/** Determines if row selection is disabled, per row */
isRowSelectionDisabled?: Maybe<(row: NoInfer<R>) => boolean>;
/** Function called whenever row selection is changed */
onSelectedRowsChange?: Maybe<(selectedRows: Set<NoInfer<K>>) => void>;
/** Used for multi column sorting */
sortColumns?: Maybe<readonly SortColumn[]>;
onSortColumnsChange?: Maybe<(sortColumns: SortColumn[]) => void>;
defaultColumnOptions?: Maybe<DefaultColumnOptions<NoInfer<R>, NoInfer<SR>>>;
onFill?: Maybe<(event: FillEvent<NoInfer<R>>) => NoInfer<R>>;
onCopy?: Maybe<(event: CopyEvent<NoInfer<R>>) => void>;
onPaste?: Maybe<(event: PasteEvent<NoInfer<R>>) => NoInfer<R>>;
/**
* Event props
*/
/** Function called whenever a cell is clicked */
onCellClick?: Maybe<(args: CellClickArgs<NoInfer<R>, NoInfer<SR>>, event: CellMouseEvent) => void>;
/** Function called whenever a cell is double clicked */
onCellDoubleClick?: Maybe<(args: CellClickArgs<NoInfer<R>, NoInfer<SR>>, event: CellMouseEvent) => void>;
/** Function called whenever a cell is right clicked */
onCellContextMenu?: Maybe<(args: CellClickArgs<NoInfer<R>, NoInfer<SR>>, event: CellMouseEvent) => void>;
onCellKeyDown?: Maybe<(args: CellKeyDownArgs<NoInfer<R>, NoInfer<SR>>, event: CellKeyboardEvent) => void>;
/** Function called whenever cell selection is changed */
onSelectedCellChange?: Maybe<(args: CellSelectArgs<NoInfer<R>, NoInfer<SR>>) => void>;
/** Called when the grid is scrolled */
onScroll?: Maybe<(event: React.UIEvent<HTMLDivElement>) => void>;
/** Called when a column is resized */
onColumnResize?: Maybe<(column: CalculatedColumn<R, SR>, width: number) => void>;
/** Called when a column is reordered */
onColumnsReorder?: Maybe<(sourceColumnKey: string, targetColumnKey: string) => void>;
/**
* Toggles and modes
*/
/** @default true */
enableVirtualization?: Maybe<boolean>;
/**
* The minimum number of rows to render when virtualization is enabled
*/
minimumRowsToRender?: Maybe<number>;
/**
* Miscellaneous
*/
renderers?: Maybe<Renderers<NoInfer<R>, NoInfer<SR>>>;
rowClass?: Maybe<(row: NoInfer<R>, rowIdx: number) => Maybe<string>>;
/** @default 'ltr' */
direction?: Maybe<Direction>;
'data-testid'?: Maybe<string>;
'data-cy'?: Maybe<string>;
}
export declare type DefaultColumnOptions<R, SR> = Pick<Column<R, SR>, 'renderCell' | 'renderHeaderCell' | 'width' | 'minWidth' | 'maxWidth' | 'resizable' | 'sortable' | 'draggable'>;
declare type Direction = 'ltr' | 'rtl';
declare interface EditCellKeyDownArgs<TRow, TSummaryRow = unknown> {
mode: 'EDIT';
row: TRow;
column: CalculatedColumn<TRow, TSummaryRow>;
rowIdx: number;
navigate: () => void;
onClose: (commitChanges?: boolean, shouldFocusCell?: boolean) => void;
}
export declare interface FillEvent<TRow> {
columnKey: string;
sourceRow: TRow;
targetRow: TRow;
}
declare interface GroupRow<TRow> {
readonly childRows: readonly TRow[];
readonly id: string;
readonly parentId: unknown;
readonly groupKey: unknown;
readonly isExpanded: boolean;
readonly level: number;
readonly posInSet: number;
readonly setSize: number;
readonly startRowIndex: number;
}
declare type Maybe<T> = T | undefined | null;
declare type Omit_2<T, K extends keyof T> = Pick<T, Exclude<keyof T, K>>;
declare interface PartialPosition {
readonly idx?: number | undefined;
readonly rowIdx?: number | undefined;
}
export declare interface PasteEvent<TRow> {
sourceColumnKey: string;
sourceRow: TRow;
targetColumnKey: string;
targetRow: TRow;
}
declare interface Position {
readonly idx: number;
readonly rowIdx: number;
}
export declare interface RenderCellProps<TRow, TSummaryRow = unknown> {
column: CalculatedColumn<TRow, TSummaryRow>;
row: TRow;
rowIdx: number;
isCellEditable: boolean;
tabIndex: number;
onRowChange: (row: TRow) => void;
}
export declare function renderCheckbox({ onChange, indeterminate, ...props }: RenderCheckboxProps): JSX.Element;
export declare interface RenderCheckboxProps extends Pick<React.ComponentProps<'input'>, 'aria-label' | 'aria-labelledby' | 'checked' | 'tabIndex' | 'disabled'> {
indeterminate?: boolean | undefined;
onChange: (checked: boolean, shift: boolean) => void;
}
export declare interface RenderEditCellProps<TRow, TSummaryRow = unknown> {
column: CalculatedColumn<TRow, TSummaryRow>;
row: TRow;
rowIdx: number;
onRowChange: (row: TRow, commitChanges?: boolean) => void;
onClose: (commitChanges?: boolean, shouldFocusCell?: boolean) => void;
}
export declare interface Renderers<TRow, TSummaryRow> {
renderCell?: Maybe<(key: Key, props: CellRendererProps<TRow, TSummaryRow>) => ReactNode>;
renderCheckbox?: Maybe<(props: RenderCheckboxProps) => ReactNode>;
renderRow?: Maybe<(key: Key, props: RenderRowProps<TRow, TSummaryRow>) => ReactNode>;
renderSortStatus?: Maybe<(props: RenderSortStatusProps) => ReactNode>;
noRowsFallback?: Maybe<ReactNode>;
}
export declare interface RenderGroupCellProps<TRow, TSummaryRow = unknown> {
groupKey: unknown;
column: CalculatedColumn<TRow, TSummaryRow>;
row: GroupRow<TRow>;
childRows: readonly TRow[];
isExpanded: boolean;
tabIndex: number;
toggleGroup: () => void;
}
export declare function renderHeaderCell<R, SR>({ column, sortDirection, priority }: RenderHeaderCellProps<R, SR>): string | JSX.Element;
export declare interface RenderHeaderCellProps<TRow, TSummaryRow = unknown> {
column: CalculatedColumn<TRow, TSummaryRow>;
sortDirection: SortDirection | undefined;
priority: number | undefined;
tabIndex: number;
}
export declare interface RenderRowProps<TRow, TSummaryRow = unknown> extends BaseRenderRowProps<TRow, TSummaryRow> {
row: TRow;
lastFrozenColumnIndex: number;
copiedCellIdx: number | undefined;
draggedOverCellIdx: number | undefined;
selectedCellEditor: ReactElement<RenderEditCellProps<TRow>> | undefined;
onRowChange: (column: CalculatedColumn<TRow, TSummaryRow>, rowIdx: number, newRow: TRow) => void;
rowClass: Maybe<(row: TRow, rowIdx: number) => Maybe<string>>;
setDraggedOverRowIdx: ((overRowIdx: number) => void) | undefined;
}
export declare function renderSortIcon({ sortDirection }: RenderSortIconProps): JSX.Element | null;
export declare interface RenderSortIconProps {
sortDirection: SortDirection | undefined;
}
export declare function renderSortPriority({ priority }: RenderSortPriorityProps): number | undefined;
export declare interface RenderSortPriorityProps {
priority: number | undefined;
}
export declare interface RenderSortStatusProps extends RenderSortIconProps, RenderSortPriorityProps {
}
export declare interface RenderSummaryCellProps<TSummaryRow, TRow = unknown> {
column: CalculatedColumn<TRow, TSummaryRow>;
row: TSummaryRow;
tabIndex: number;
}
export declare function renderToggleGroup<R, SR>(props: RenderGroupCellProps<R, SR>): JSX.Element;
export declare function renderValue<R, SR>(props: RenderCellProps<R, SR>): ReactNode;
export declare const Row: <R, SR>(props: RenderRowProps<R, SR>) => React.JSX.Element;
export declare type RowHeightArgs<TRow> = {
type: 'ROW';
row: TRow;
} | {
type: 'GROUP';
row: GroupRow<TRow>;
};
export declare interface RowsChangeData<R, SR = unknown> {
indexes: number[];
column: CalculatedColumn<R, SR>;
}
export declare const SELECT_COLUMN_KEY = "rdg-select-column";
export declare function SelectCellFormatter({ value, tabIndex, indeterminate, disabled, onChange, 'aria-label': ariaLabel, 'aria-labelledby': ariaLabelledBy }: SelectCellFormatterProps): ReactNode;
declare interface SelectCellFormatterProps extends SharedInputProps {
value: boolean;
}
declare interface SelectCellKeyDownArgs<TRow, TSummaryRow = unknown> {
mode: 'SELECT';
row: TRow;
column: CalculatedColumn<TRow, TSummaryRow>;
rowIdx: number;
selectCell: (position: Position, enableEditor?: Maybe<boolean>) => void;
}
export declare const SelectColumn: Column<any, any>;
export declare interface SelectHeaderRowEvent {
checked: boolean;
}
export declare interface SelectRowEvent<TRow> {
row: TRow;
checked: boolean;
isShiftClick: boolean;
}
declare type SharedDivProps = Pick<React.ComponentProps<'div'>, 'role' | 'aria-label' | 'aria-labelledby' | 'aria-description' | 'aria-describedby' | 'aria-rowcount' | 'className' | 'style'>;
declare type SharedInputProps = Pick<RenderCheckboxProps, 'disabled' | 'tabIndex' | 'aria-label' | 'aria-labelledby' | 'indeterminate' | 'onChange'>;
export declare interface SortColumn {
readonly columnKey: string;
readonly direction: SortDirection;
}
export declare type SortDirection = 'ASC' | 'DESC';
export declare function textEditor<TRow, TSummaryRow>({ row, column, onRowChange, onClose }: RenderEditCellProps<TRow, TSummaryRow>): JSX.Element;
export declare function ToggleGroup<R, SR>({ groupKey, isExpanded, tabIndex, toggleGroup }: RenderGroupCellProps<R, SR>): JSX.Element;
export declare function TreeDataGrid<R, SR = unknown, K extends Key = Key>({ columns: rawColumns, rows: rawRows, rowHeight: rawRowHeight, rowKeyGetter: rawRowKeyGetter, onCellKeyDown: rawOnCellKeyDown, onRowsChange, selectedRows: rawSelectedRows, onSelectedRowsChange: rawOnSelectedRowsChange, renderers, groupBy: rawGroupBy, rowGrouper, expandedGroupIds, onExpandedGroupIdsChange, ...props }: TreeDataGridProps<R, SR, K>): JSX.Element;
export declare interface TreeDataGridProps<R, SR = unknown, K extends Key = Key> extends Omit_2<DataGridProps<R, SR, K>, 'columns' | 'role' | 'aria-rowcount' | 'rowHeight' | 'onFill' | 'isRowSelectionDisabled'> {
columns: readonly Column<NoInfer<R>, NoInfer<SR>>[];
rowHeight?: Maybe<number | ((args: RowHeightArgs<NoInfer<R>>) => number)>;
groupBy: readonly string[];
rowGrouper: (rows: readonly NoInfer<R>[], columnKey: string) => Record<string, readonly NoInfer<R>[]>;
expandedGroupIds: ReadonlySet<unknown>;
onExpandedGroupIdsChange: (expandedGroupIds: Set<unknown>) => void;
}
export declare function useHeaderRowSelection(): {
isIndeterminate: boolean;
isRowSelected: boolean;
onRowSelectionChange: (selectRowEvent: SelectHeaderRowEvent) => void;
};
export declare function useRowSelection(): {
isRowSelectionDisabled: boolean;
isRowSelected: boolean;
onRowSelectionChange: (selectRowEvent: SelectRowEvent<any>) => void;
};
export { }
@@ -0,0 +1,451 @@
@layer rdg {
@layer Defaults,
FocusSink,
CheckboxInput,
CheckboxIcon,
CheckboxLabel,
Cell,
HeaderCell,
SummaryCell,
EditCell,
Row,
HeaderRow,
SummaryRow,
GroupedRow,
Root;
}
.mlln6zg7-0-0-beta-50 {
@layer rdg.MeasuringCell {
contain: strict;
grid-row: 1;
visibility: hidden;
}
}
.cj343x07-0-0-beta-50 {
@layer rdg.Cell {
/* max-content does not work with size containment
* dynamically switching between different containment styles incurs a heavy relayout penalty
* Chromium bug: at odd zoom levels or subpixel positioning,
* layout/paint/style containment can make cell borders disappear
* https://issues.chromium.org/issues/40840864
*/
position: relative; /* needed for absolute positioning to work */
padding-block: 0;
padding-inline: 8px;
border-inline-end: 1px solid var(--rdg-border-color);
border-block-end: 1px solid var(--rdg-border-color);
grid-row-start: var(--rdg-grid-row-start);
align-content: center;
background-color: inherit;
white-space: nowrap;
overflow: clip;
text-overflow: ellipsis;
outline: none;
&[aria-selected='true'] {
outline: 2px solid var(--rdg-selection-color);
outline-offset: -2px;
}
}
}
.csofj7r7-0-0-beta-50 {
@layer rdg.Cell {
position: sticky;
/* Should have a higher value than 0 to show up above unfrozen cells */
z-index: 1;
/* Add box-shadow on the last frozen cell */
&:nth-last-child(1 of &) {
box-shadow: var(--rdg-cell-frozen-box-shadow);
}
}
}
.c1bn88vv7-0-0-beta-50 {
@layer rdg.CheckboxInput {
display: block;
margin: auto;
inline-size: 20px;
block-size: 20px;
&:focus-visible {
outline: 2px solid var(--rdg-checkbox-focus-color);
outline-offset: -3px;
}
&:enabled {
cursor: pointer;
}
}
}
.g1s9ylgp7-0-0-beta-50 {
@layer rdg.GroupCellContent {
outline: none;
}
}
.cz54e4y7-0-0-beta-50 {
@layer rdg.GroupCellCaret {
margin-inline-start: 4px;
stroke: currentColor;
stroke-width: 1.5px;
fill: transparent;
vertical-align: middle;
> path {
transition: d 0.1s;
}
}
}
.h44jtk67-0-0-beta-50 {
@layer rdg.SortableHeaderCell {
display: flex;
}
}
.hcgkhxz7-0-0-beta-50 {
@layer rdg.SortableHeaderCellName {
flex-grow: 1;
overflow: clip;
text-overflow: ellipsis;
}
}
.c6ra8a37-0-0-beta-50 {
@layer rdg.Cell {
background-color: #ccccff;
}
}
.cq910m07-0-0-beta-50 {
@layer rdg.Cell {
background-color: #ccccff;
&.c6ra8a37-0-0-beta-50 {
background-color: #9999ff;
}
}
}
.c1w9bbhr7-0-0-beta-50 {
@layer rdg.DragHandle {
--rdg-drag-handle-size: 8px;
z-index: 0;
cursor: move;
inline-size: var(--rdg-drag-handle-size);
block-size: var(--rdg-drag-handle-size);
background-color: var(--rdg-selection-color);
place-self: end;
&:hover {
--rdg-drag-handle-size: 16px;
border: 2px solid var(--rdg-selection-color);
background-color: var(--rdg-background-color);
}
}
}
.c1creorc7-0-0-beta-50 {
@layer rdg.DragHandle {
z-index: 1;
position: sticky;
}
}
.cis5rrm7-0-0-beta-50 {
@layer rdg.EditCell {
padding: 0;
}
}
.c6l2wv17-0-0-beta-50 {
@layer rdg.HeaderCell {
cursor: pointer;
}
}
.c1kqdw7y7-0-0-beta-50 {
@layer rdg.HeaderCell {
touch-action: none;
}
}
.r1y6ywlx7-0-0-beta-50 {
@layer rdg.HeaderCell {
cursor: col-resize;
position: absolute;
inset-block-start: 0;
inset-inline-end: 0;
inset-block-end: 0;
inline-size: 10px;
}
}
.c1bezg5o7-0-0-beta-50 {
opacity: 0.5;
}
.c1vc96037-0-0-beta-50 {
background-color: var(--rdg-header-draggable-background-color);
}
.r1upfr807-0-0-beta-50 {
@layer rdg.Row {
display: contents;
background-color: var(--rdg-background-color);
&:hover {
background-color: var(--rdg-row-hover-background-color);
}
&[aria-selected='true'] {
background-color: var(--rdg-row-selected-background-color);
&:hover {
background-color: var(--rdg-row-selected-hover-background-color);
}
}
}
}
.r190mhd37-0-0-beta-50 {
@layer rdg.FocusSink {
outline: 2px solid var(--rdg-selection-color);
outline-offset: -2px;
}
}
.r139qu9m7-0-0-beta-50 {
@layer rdg.FocusSink {
&::before {
content: '';
display: inline-block;
block-size: 100%;
position: sticky;
inset-inline-start: 0;
border-inline-start: 2px solid var(--rdg-selection-color);
}
}
}
.h10tskcx7-0-0-beta-50 {
@layer rdg.HeaderRow {
display: contents;
background-color: var(--rdg-header-background-color);
font-weight: bold;
& > .cj343x07-0-0-beta-50 {
/* Should have a higher value than 1 to show up above regular cells and the focus sink */
z-index: 2;
position: sticky;
}
& > .csofj7r7-0-0-beta-50 {
z-index: 3;
}
}
}
.a3ejtar7-0-0-beta-50 {
@layer rdg.SortIcon {
fill: currentColor;
> path {
transition: d 0.1s;
}
}
}
.rnvodz57-0-0-beta-50 {
@layer rdg.Defaults {
*,
*::before,
*::after {
box-sizing: inherit;
}
}
@layer rdg.Root {
--rdg-color: #000; --rdg-border-color: #ddd; --rdg-summary-border-color: #aaa; --rdg-background-color: hsl(0deg 0% 100%); --rdg-header-background-color: hsl(0deg 0% 97.5%); --rdg-header-draggable-background-color: hsl(0deg 0% 90.5%); --rdg-row-hover-background-color: hsl(0deg 0% 96%); --rdg-row-selected-background-color: hsl(207deg 76% 92%); --rdg-row-selected-hover-background-color: hsl(207deg 76% 88%); --rdg-checkbox-focus-color: hsl(207deg 100% 69%);
--rdg-selection-color: #66afe9;
--rdg-font-size: 14px;
--rdg-cell-frozen-box-shadow: 2px 0 5px -2px rgba(136, 136, 136, 0.3);
&:dir(rtl) {
--rdg-cell-frozen-box-shadow: -2px 0 5px -2px rgba(136, 136, 136, 0.3);
}
display: grid;
color-scheme: var(--rdg-color-scheme, light dark);
accent-color: light-dark(hsl(207deg 100% 29%), hsl(207deg 100% 79%));
/* https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Positioning/Understanding_z_index/The_stacking_context */
/* We set a stacking context so internal elements don't render on top of external elements. */
/* size containment is not used as it could break "width: min-content" for example, and the grid would infinitely resize on Chromium browsers */
contain: content;
content-visibility: auto;
block-size: 350px;
border: 1px solid var(--rdg-border-color);
box-sizing: border-box;
overflow: auto;
background-color: var(--rdg-background-color);
color: var(--rdg-color);
font-size: var(--rdg-font-size);
/* needed on Firefox to fix scrollbars */
&::before {
content: '';
grid-column: 1/-1;
grid-row: 1/-1;
}
&.rdg-dark {
--rdg-color-scheme: dark;
--rdg-color: #ddd; --rdg-border-color: #444; --rdg-summary-border-color: #555; --rdg-background-color: hsl(0deg 0% 13%); --rdg-header-background-color: hsl(0deg 0% 10.5%); --rdg-header-draggable-background-color: hsl(0deg 0% 17.5%); --rdg-row-hover-background-color: hsl(0deg 0% 9%); --rdg-row-selected-background-color: hsl(207deg 76% 42%); --rdg-row-selected-hover-background-color: hsl(207deg 76% 38%); --rdg-checkbox-focus-color: hsl(207deg 100% 89%);
}
&.rdg-light {
--rdg-color-scheme: light;
}
@media (prefers-color-scheme: dark) {
&:not(.rdg-light) {
--rdg-color: #ddd; --rdg-border-color: #444; --rdg-summary-border-color: #555; --rdg-background-color: hsl(0deg 0% 13%); --rdg-header-background-color: hsl(0deg 0% 10.5%); --rdg-header-draggable-background-color: hsl(0deg 0% 17.5%); --rdg-row-hover-background-color: hsl(0deg 0% 9%); --rdg-row-selected-background-color: hsl(207deg 76% 42%); --rdg-row-selected-hover-background-color: hsl(207deg 76% 38%); --rdg-checkbox-focus-color: hsl(207deg 100% 89%);
}
}
> :nth-last-child(1 of .rdg-top-summary-row) {
> .cj343x07-0-0-beta-50 {
border-block-end: 2px solid var(--rdg-summary-border-color);
}
}
> :nth-child(1 of .rdg-bottom-summary-row) {
> .cj343x07-0-0-beta-50 {
border-block-start: 2px solid var(--rdg-summary-border-color);
}
}
}
}
.vlqv91k7-0-0-beta-50 {
@layer rdg.Root {
user-select: none;
& .r1upfr807-0-0-beta-50 {
cursor: move;
}
}
}
.f1lsfrzw7-0-0-beta-50 {
@layer rdg.FocusSink {
grid-column: 1/-1;
pointer-events: none;
/* Should have a higher value than 1 to show up above regular frozen cells */
z-index: 1;
}
}
.f1cte0lg7-0-0-beta-50 {
@layer rdg.FocusSink {
/* Should have a higher value than 3 to show up above header and summary rows */
z-index: 3;
}
}
.s8wc6fl7-0-0-beta-50 {
@layer rdg.SummaryCell {
inset-block-start: var(--rdg-summary-row-top);
inset-block-end: var(--rdg-summary-row-bottom);
}
}
.skuhp557-0-0-beta-50 {
@layer rdg.SummaryRow {
> .cj343x07-0-0-beta-50 {
position: sticky;
}
}
}
.tf8l5ub7-0-0-beta-50 {
@layer rdg.SummaryRow {
> .cj343x07-0-0-beta-50 {
z-index: 2;
}
> .csofj7r7-0-0-beta-50 {
z-index: 3;
}
}
}
.g1yxluv37-0-0-beta-50 {
@layer rdg.GroupedRow {
&:not([aria-selected='true']) {
background-color: var(--rdg-header-background-color);
}
> .cj343x07-0-0-beta-50:not(:last-child, .csofj7r7-0-0-beta-50),
> :nth-last-child(n + 2 of .csofj7r7-0-0-beta-50) {
border-inline-end: none;
}
}
}
.t7vyx3i7-0-0-beta-50 {
@layer rdg.TextEditor {
appearance: none;
box-sizing: border-box;
inline-size: 100%;
block-size: 100%;
padding-block: 0;
padding-inline: 6px;
border: 2px solid #ccc;
vertical-align: top;
color: var(--rdg-color);
background-color: var(--rdg-background-color);
font-family: inherit;
font-size: var(--rdg-font-size);
&:focus {
border-color: var(--rdg-selection-color);
outline: none;
}
&::placeholder {
color: #999;
opacity: 1;
}
}
}
/*# sourceMappingURL=styles.css.map*/
File diff suppressed because one or more lines are too long
@@ -0,0 +1,29 @@
{
"name": "react-data-grid",
"version": "7.0.0-beta.50",
"type": "module",
"exports": {
"./lib/styles.css": "./lib/styles.css",
".": {
"types": "./lib/index.d.ts",
"default": "./lib/bundle.js"
}
},
"browser": "./lib/bundle.js",
"main": "./lib/bundle.js",
"module": "./lib/bundle.js",
"types": "./lib/index.d.ts",
"files": [
"lib"
],
"sideEffects": [
"**/*.css"
],
"dependencies": {
"clsx": "^2.0.0"
},
"peerDependencies": {
"react": "^19.0",
"react-dom": "^19.0"
}
}
@@ -0,0 +1,42 @@
{
"name": "@dbeaver/react-data-grid",
"type": "module",
"sideEffects": [],
"exports": {
".": "./lib/index.js",
"./*.css": "./src/*.css",
"./*": "./lib/*.js"
},
"scripts": {
"clear": "rimraf lib"
},
"files": [
"package.json",
"LICENSE",
"README.md",
"CHANGELOG.md",
"lib",
"!lib/**/*.d.ts.map",
"!lib/**/*.test.js",
"!lib/**/*.test.d.ts",
"!lib/**/*.test.d.ts.map",
"!lib/**/*.test.js.map",
"!lib/tests",
"!.tsbuildinfo"
],
"packageManager": "yarn@4.6.0",
"devDependencies": {
"@dbeaver/tsconfig": "workspace:^",
"@types/react": "^19",
"@types/react-dom": "^19",
"rimraf": "^6",
"typescript": "^5"
},
"dependencies": {
"@dbeaver/react-dnd": "workspace:^",
"@dbeaver/ui-kit": "workspace:^",
"react": "^19",
"react-data-grid": "file:./artifacts",
"react-dom": "^19"
}
}
@@ -0,0 +1,86 @@
import { memo, use, useMemo } from 'react';
import { Cell, type CellRendererProps } from 'react-data-grid';
import { DataGridCellContext, type IDataGridCellRenderer } from './DataGridCellContext.js';
import { createCellMouseEvent } from './eventUtils.js';
import { DataGridCellInnerContext, type IDataGridCellInnerContext } from './DataGridCellInnerContext.js';
import { useGridReactiveValue } from './useGridReactiveValue.js';
import { HeaderDnDContext } from './useHeaderDnD.js';
export const BaseCell = memo(function BaseCell<TRow, TSummaryRow>(props: CellRendererProps<TRow, TSummaryRow>) {
const cellContext = use(DataGridCellContext);
const dndContext = use(HeaderDnDContext)!;
const virtualColIdx = props.column.idx;
const dataColIdx = dndContext.getDataColIdx(props.column.idx);
const rowIdx = props.rowIdx;
const tooltip = useGridReactiveValue(cellContext?.cellTooltip, rowIdx, dataColIdx);
function handleClick(event: React.MouseEvent<HTMLDivElement>) {
props.onClick?.(
{
rowIdx,
row: props.row,
column: props.column,
selectCell(enableEditor) {
props.selectCell({ rowIdx, idx: virtualColIdx }, enableEditor);
},
},
createCellMouseEvent(event),
);
}
function handleDoubleClick(event: React.MouseEvent<HTMLDivElement>) {
props.onDoubleClick?.(
{
rowIdx,
row: props.row,
column: props.column,
selectCell(enableEditor) {
props.selectCell({ rowIdx, idx: virtualColIdx }, enableEditor);
},
},
createCellMouseEvent(event),
);
}
function handleContextMenu(event: React.MouseEvent<HTMLDivElement>) {
props.onContextMenu?.(
{
rowIdx,
row: props.row,
column: props.column,
selectCell(enableEditor) {
props.selectCell({ rowIdx, idx: virtualColIdx }, enableEditor);
},
},
createCellMouseEvent(event),
);
}
const mappedProps = useMemo(
() => ({ ...props, isFocused: props.isCellSelected, onClick: handleClick, onDoubleClick: handleDoubleClick, onContextMenu: handleContextMenu }),
Object.values(props),
);
const renderDefaultCell = useMemo<IDataGridCellRenderer>(
() =>
({ onClick, onDoubleClick, onContextMenu, ...rest }) => {
return (
<Cell
{...props}
title={tooltip}
onClick={(_, event) => onClick?.(event)}
onDoubleClick={(_, event) => onDoubleClick?.(event)}
onContextMenu={(_, event) => onContextMenu?.(event)}
{...rest}
isCellSelected={props.isCellSelected || rest.isFocused || false}
/>
);
},
[...Object.values(props), tooltip],
);
const cellElement = useGridReactiveValue(cellContext?.cellElement, rowIdx, dataColIdx, mappedProps, renderDefaultCell);
const innerCellContext = useMemo<IDataGridCellInnerContext>(() => ({ isFocused: props.isCellSelected }), [props.isCellSelected]);
return <DataGridCellInnerContext value={innerCellContext}>{cellElement ?? <Cell title={tooltip} {...props} />}</DataGridCellInnerContext>;
}) as <TRow, TSummaryRow>(props: CellRendererProps<TRow, TSummaryRow>) => React.ReactNode;
@@ -0,0 +1,16 @@
import { Row, type RenderRowProps } from 'react-data-grid';
import { DataGridRowContext } from './DataGridRowContext.js';
import { memo, use, useEffect } from 'react';
import { useGridReactiveValue } from './useGridReactiveValue.js';
export const BaseRow = memo(function BaseRow<TRow, TSummaryRow>(props: RenderRowProps<TRow, TSummaryRow>) {
const rowContext = use(DataGridRowContext);
const rowsCount = useGridReactiveValue(rowContext?.onScrollToBottom ? rowContext?.rowCount : undefined);
useEffect(() => {
if (rowsCount === props.rowIdx + 1) {
rowContext?.onScrollToBottom?.();
}
}, [rowsCount]);
return <Row {...props} />;
}) as <TRow, TSummaryRow>(props: RenderRowProps<TRow, TSummaryRow>) => React.ReactNode;
@@ -0,0 +1,33 @@
@import url('@dbeaver/ui-kit/index.css');
@import url('react-data-grid/lib/styles.css') layer(components);
@layer components.rdg.MeasuringCell {
[data-measuring-cell] {
max-width: var(--rdg-max-auto-size, 350px);
}
}
@layer components.rdg.Cell {
.rdg {
--dbv-kit-icon-btn-outline-width: 1px;
}
@media (prefers-color-scheme: dark) {
.rdg-cell-frozen {
&:nth-last-child(1 of &) {
box-shadow: none;
&::before {
content: '';
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: -1;
background-color: rgba(255, 255, 255, 0.02);
}
}
}
}
}
@@ -0,0 +1,172 @@
import { forwardRef, useImperativeHandle, useMemo, useRef } from 'react';
import { DataGrid as DataGridBase, type ColumnOrColumnGroup, type CellSelectArgs, type DataGridHandle } from 'react-data-grid';
import { rowRenderer } from './renderers/rowRenderer.js';
import { cellRenderer } from './renderers/cellRenderer.js';
import { DataGridCellHeaderContext, type IDataGridHeaderCellContext } from './DataGridHeaderCellContext.js';
import { DataGridCellContext, type IDataGridCellContext } from './DataGridCellContext.js';
import type { IInnerRow } from './IInnerRow.js';
import type { IGridReactiveValue } from './IGridReactiveValue.js';
import { useGridReactiveValue } from './useGridReactiveValue.js';
import { mapCellContentRenderer } from './mapCellContentRenderer.js';
import { mapRenderHeaderCell } from './mapRenderHeaderCell.js';
import { mapEditCellRenderer } from './mapEditCellRenderer.js';
import { DataGridRowContext, type IDataGridRowContext } from './DataGridRowContext.js';
import './DataGrid.css';
import { HeaderDnDContext, useHeaderDnD } from './useHeaderDnD.js';
export interface ICellPosition {
rowIdx: number;
colIdx: number;
}
export interface DataGridCellKeyboardEvent extends React.KeyboardEvent<HTMLDivElement> {
preventGridDefault: () => void;
isGridDefaultPrevented: () => boolean;
}
export interface DataGridProps extends IDataGridCellContext, IDataGridRowContext, IDataGridHeaderCellContext, React.PropsWithChildren {
getRowHeight?: (rowIdx: number) => number;
getRowId?: (rowIdx: number) => React.Key;
columnCount: IGridReactiveValue<number, []>;
getColumnKey?: (colIdx: number) => string;
onScroll?: (event: React.UIEvent<HTMLDivElement>) => void;
onFocus?: (position: ICellPosition) => void;
onEditorOpen?: (position: ICellPosition) => void;
onCellKeyDown?: (position: ICellPosition, event: DataGridCellKeyboardEvent) => void;
className?: string;
}
export interface DataGridRef {
selectCell: (position: ICellPosition) => void;
scrollToCell: (position: Partial<ICellPosition>) => void;
openEditor: (position: ICellPosition) => void;
}
export const DataGrid = forwardRef<DataGridRef, DataGridProps>(function DataGrid(
{
headerElement,
getHeaderWidth,
headerText,
getHeaderOrder,
getHeaderResizable,
columnSortable,
getHeaderHeight,
getHeaderPinned,
columnSortingState,
getHeaderDnD,
cell,
cellText,
cellElement,
cellTooltip,
getCellEditable,
columnCount,
getColumnKey,
rowCount,
getRowId,
getRowHeight,
onHeaderReorder,
onScroll,
onScrollToBottom,
onFocus,
onCellChange,
onColumnSort,
children,
className,
onCellKeyDown,
},
ref,
) {
const rowsCount = useGridReactiveValue(rowCount);
const columnsCount = useGridReactiveValue(columnCount);
const gridKey = useRef(0);
const rowsCountRef = useRef(rowsCount);
const innerGridRef = useRef<DataGridHandle>(null);
const columns = new Array<ColumnOrColumnGroup<IInnerRow, unknown>>(columnsCount)
.fill(null as any)
.map((_, i): ColumnOrColumnGroup<IInnerRow, unknown> => {
const width = getHeaderWidth?.(i) ?? 'max-content';
return {
key: getColumnKey?.(i) ?? String(i),
name: '',
resizable: getHeaderResizable?.(i) ?? true,
width,
minWidth: 26,
editable: row => getCellEditable?.(row.idx, i) ?? false,
frozen: getHeaderPinned?.(i),
renderHeaderCell: mapRenderHeaderCell(i),
renderCell: mapCellContentRenderer(i),
renderEditCell: mapEditCellRenderer(i),
};
});
const dndHeaderContext = useHeaderDnD({ columns, onReorder: onHeaderReorder, getCanDrag: getHeaderDnD, getHeaderOrder });
useImperativeHandle(ref, () => ({
selectCell: (position: ICellPosition) => {
innerGridRef.current?.selectCell({ idx: dndHeaderContext.getDataColIdx(position.colIdx), rowIdx: position.rowIdx });
},
scrollToCell: (position: Partial<ICellPosition>) => {
innerGridRef.current?.scrollToCell({ idx: position.colIdx && dndHeaderContext.getDataColIdx(position.colIdx), rowIdx: position.rowIdx });
},
openEditor: (position: ICellPosition) => {
innerGridRef.current?.selectCell({ idx: dndHeaderContext.getDataColIdx(position.colIdx), rowIdx: position.rowIdx }, true);
},
}));
if (rowsCountRef.current !== rowsCount) {
const previousRowCount = rowsCountRef.current;
rowsCountRef.current = rowsCount;
if (previousRowCount === 0) {
// we trigger columns size recalculation when rows are added
gridKey.current++;
}
}
const rows = useMemo(
() =>
new Array<IInnerRow>(rowsCount).fill({ idx: 0 }).map((_, i) => ({
idx: i,
})),
[rowsCount],
);
function handleCellFocus(args: CellSelectArgs<IInnerRow, unknown>) {
onFocus?.({ colIdx: dndHeaderContext.getDataColIdx(args.column.idx), rowIdx: args.rowIdx });
}
function handleCellKeyDown(args: CellSelectArgs<IInnerRow, unknown>, event: DataGridCellKeyboardEvent) {
onCellKeyDown?.({ colIdx: dndHeaderContext.getDataColIdx(args.column.idx), rowIdx: args.rowIdx }, event);
}
return (
<HeaderDnDContext value={dndHeaderContext}>
<DataGridRowContext value={{ rowCount, onScrollToBottom }}>
<DataGridCellContext value={{ cell, cellText, cellElement, cellTooltip, onCellChange }}>
<DataGridCellHeaderContext value={{ headerElement, headerText, getHeaderDnD, columnSortable, onColumnSort, columnSortingState }}>
<DataGridBase
key={gridKey.current}
ref={innerGridRef}
columns={dndHeaderContext.columns}
rows={rows}
className={className}
headerRowHeight={getHeaderHeight?.()}
onScroll={onScroll}
rowHeight={getRowHeight ? row => getRowHeight(row.idx) : undefined}
rowKeyGetter={getRowId ? row => getRowId(row.idx) : undefined}
onSelectedCellChange={handleCellFocus}
onCellKeyDown={handleCellKeyDown}
renderers={{
renderRow: rowRenderer,
renderCell: cellRenderer,
noRowsFallback: children,
}}
minimumRowsToRender={100}
/>
</DataGridCellHeaderContext>
</DataGridCellContext>
</DataGridRowContext>
</HeaderDnDContext>
);
});
@@ -0,0 +1,24 @@
import { createContext } from 'react';
import type { IGridReactiveValue } from './IGridReactiveValue.js';
export interface IDataGridCellProps extends React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement> {
isFocused: boolean;
}
export interface IDataGridCellRenderer {
(propsOverride: Partial<IDataGridCellProps> & { [key: string]: any }): React.ReactNode;
}
export interface IDataGridCellContext {
cellElement?: IGridReactiveValue<
React.ReactNode,
[rowIdx: number, colIdx: number, props: IDataGridCellProps, renderDefaultCell: IDataGridCellRenderer]
>;
cell?: IGridReactiveValue<React.ReactNode, [rowIdx: number, colIdx: number]>;
cellText?: IGridReactiveValue<string, [rowIdx: number, colIdx: number]>;
cellTooltip?: IGridReactiveValue<string, [rowIdx: number, colIdx: number]>;
getCellEditable?: (rowIdx: number, colIdx: number) => boolean;
onCellChange?: (rowIdx: number, colIdx: number, value: any) => void;
}
export const DataGridCellContext = createContext<IDataGridCellContext | null>(null);
@@ -0,0 +1,7 @@
import { createContext } from 'react';
export interface IDataGridCellInnerContext {
isFocused: boolean;
}
export const DataGridCellInnerContext = createContext<IDataGridCellInnerContext | null>(null);
@@ -0,0 +1,19 @@
import { createContext } from 'react';
import type { IGridReactiveValue } from './IGridReactiveValue.js';
export interface IDataGridHeaderCellContext {
headerElement?: IGridReactiveValue<React.ReactNode, [colIdx: number]>;
headerText?: IGridReactiveValue<string, [colIdx: number]>;
getHeaderOrder?: () => number[];
getHeaderWidth?: (colIdx: number) => number | string | null;
getHeaderResizable?: (colIdx: number) => boolean;
getHeaderHeight?: () => number;
getHeaderPinned?: (colIdx: number) => boolean;
getHeaderDnD?: (colIdx: number) => boolean;
onHeaderReorder?: (from: number, to: number) => void;
columnSortingState?: IGridReactiveValue<'asc' | 'desc' | undefined | null, [colIdx: number]>;
columnSortable?: IGridReactiveValue<boolean, [colIdx: number]>;
onColumnSort?: (colIdx: number, order: 'asc' | 'desc' | null, isMultiple: boolean) => void;
}
export const DataGridCellHeaderContext = createContext<IDataGridHeaderCellContext | null>(null);
@@ -0,0 +1,9 @@
import { createContext } from 'react';
import type { IGridReactiveValue } from './IGridReactiveValue.js';
export interface IDataGridRowContext {
rowCount: IGridReactiveValue<number, []>;
onScrollToBottom?: () => void;
}
export const DataGridRowContext = createContext<IDataGridRowContext | null>(null);
@@ -0,0 +1,6 @@
export type IGridReactiveValueSubscribe<TArgs extends any[]> = (onValueChange: () => void, ...args: TArgs) => () => void;
export interface IGridReactiveValue<T, TArgs extends any[]> {
get(...args: TArgs): T;
subscribe: IGridReactiveValueSubscribe<TArgs>;
}
@@ -0,0 +1,3 @@
export interface IInnerRow {
idx: number;
}
@@ -0,0 +1,33 @@
:global(.rdg-cell) .editor {
appearance: none;
box-sizing: border-box;
min-height: initial;
inline-size: 100%;
block-size: 100%;
padding-block: 0;
padding-inline: 6px;
border: 2px solid #ccc;
vertical-align: top;
color: var(--rdg-color);
background-color: var(--rdg-background-color);
font: inherit;
font-family: inherit;
font-size: inherit;
line-height: inherit;
font-weight: inherit;
letter-spacing: inherit;
text-decoration: inherit;
text-transform: inherit;
&:focus {
border-color: var(--rdg-selection-color);
outline: none;
}
&::placeholder {
color: #999;
opacity: 1;
}
}
@@ -0,0 +1,39 @@
/*
* CloudBeaver - Cloud Database Manager
* Copyright (C) 2020-2025 DBeaver Corp and others
*
* Licensed under the Apache License, Version 2.0.
* you may not use this file except in compliance with the License.
*/
import { use } from 'react';
import classes from './TextEditor.module.css';
import { DataGridCellContext } from '../DataGridCellContext.js';
import { useGridReactiveValue } from '../useGridReactiveValue.js';
function autoFocusAndSelect(input: HTMLInputElement | null) {
input?.focus();
input?.select();
}
export interface IProps {
rowIdx: number;
colIdx: number;
onClose: () => void;
}
export function TextEditor({ rowIdx, colIdx, onClose }: IProps) {
const cellContext = use(DataGridCellContext);
const value = useGridReactiveValue(cellContext?.cellText, rowIdx, colIdx) ?? '';
return (
<input
className={classes['editor']}
ref={autoFocusAndSelect}
value={value}
onChange={event => cellContext?.onCellChange?.(rowIdx, colIdx, event.target.value)}
onBlur={() => onClose()}
/>
);
}
@@ -0,0 +1,25 @@
/*
* CloudBeaver - Cloud Database Manager
* Copyright (C) 2020-2025 DBeaver Corp and others
*
* Licensed under the Apache License, Version 2.0.
* you may not use this file except in compliance with the License.
*/
import type { CellMouseEvent } from 'react-data-grid';
export function createCellMouseEvent<E extends React.MouseEvent<HTMLDivElement>>(event: E): CellMouseEvent {
let defaultPrevented = false;
const cellEvent = {
...event,
preventGridDefault() {
defaultPrevented = true;
},
isGridDefaultPrevented() {
return defaultPrevented;
},
};
Object.setPrototypeOf(cellEvent, Object.getPrototypeOf(event));
return cellEvent;
}
@@ -0,0 +1,14 @@
import { clsx } from '@dbeaver/ui-kit';
interface Props {
className?: string;
onClick?: React.MouseEventHandler<HTMLElement>;
}
export function BlobFormatter({ className, onClick }: Props) {
return (
<span className={clsx('tw:uppercase', className)} onClick={onClick}>
[blob]
</span>
);
}
@@ -0,0 +1,27 @@
import { NullFormatter } from './NullFormatter.js';
import { Checkbox, clsx, Focusable } from '@dbeaver/ui-kit';
interface Props {
value: boolean | null;
className?: string;
onClick?: React.MouseEventHandler<HTMLElement>;
onKeyDown?: React.KeyboardEventHandler<HTMLElement>;
}
export function BooleanFormatter({ value, className, onClick, onKeyDown }: Props) {
const handleKeyDown = (event: React.KeyboardEvent<HTMLElement>) => {
if (event.code === 'Enter' || event.code === 'Space') {
event.preventDefault();
onKeyDown?.(event);
}
};
return (
<Focusable
className={clsx('tw:flex tw:items-center tw:outline-none tw:hover:cursor-pointer', className)}
onKeyDown={handleKeyDown}
onClick={onClick}
>
{value === null ? <NullFormatter /> : <Checkbox className="tw:data-disabled:opacity-100!" disabled size="small" checked={value} />}
</Focusable>
);
}
@@ -0,0 +1,21 @@
import { NullFormatter } from './NullFormatter.js';
interface Props {
value: Date | null;
type?: 'time' | 'date' | 'datetime';
onClick?: React.MouseEventHandler<HTMLElement>;
}
export function DateFormatter({ value, type = 'datetime', onClick }: Props) {
if (value === null) {
return <NullFormatter />;
}
return (
<div onClick={onClick}>
{value.toLocaleString(undefined, {
dateStyle: type === 'date' ? 'long' : undefined,
timeStyle: type === 'time' ? 'long' : undefined,
})}
</div>
);
}
@@ -0,0 +1,14 @@
import { clsx } from '@dbeaver/ui-kit';
interface Props {
className?: string;
onClick?: React.MouseEventHandler<HTMLElement>;
}
export function NullFormatter({ className, onClick }: Props) {
return (
<span className={clsx('tw:uppercase', 'tw:opacity-65', className)} onClick={onClick}>
[NULL]
</span>
);
}
@@ -0,0 +1,18 @@
import { NullFormatter } from './NullFormatter.js';
interface Props {
value: number | null;
className?: string;
onClick?: React.MouseEventHandler<HTMLElement>;
}
export function NumberFormatter({ value, className, onClick }: Props) {
if (value === null) {
return <NullFormatter className={className} onClick={onClick} />;
}
return (
<div style={{ textAlign: 'right' }} className={className} onClick={onClick}>
{value.toLocaleString()}
</div>
);
}
@@ -0,0 +1,13 @@
export * from './DataGrid.js';
export * from './DataGridCellContext.js';
export * from './DataGridCellInnerContext.js';
export * from './IGridReactiveValue.js';
export * from './useCreateGridReactiveValue.js';
export * from './useGridReactiveValue.js';
export * from './reorderArray.js';
export * from './formatters/NullFormatter.js';
export * from './formatters/BooleanFormatter.js';
export * from './formatters/NumberFormatter.js';
export * from './formatters/DateFormatter.js';
export * from './formatters/BlobFormatter.js';
@@ -0,0 +1,9 @@
import type { RenderCellProps } from 'react-data-grid';
import type { IInnerRow } from './IInnerRow.js';
import { CellContentRenderer } from './renderers/CellContentRenderer.js';
export function mapCellContentRenderer(colIdx: number) {
return function RenderCell({ rowIdx }: RenderCellProps<IInnerRow, unknown>) {
return <CellContentRenderer rowIdx={rowIdx} colIdx={colIdx} />;
};
}
@@ -0,0 +1,9 @@
import type { RenderEditCellProps } from 'react-data-grid';
import type { IInnerRow } from './IInnerRow.js';
import { TextEditor } from './editors/TextEditor.js';
export function mapEditCellRenderer(colIdx: number) {
return function RenderEditCell({ rowIdx, onClose }: RenderEditCellProps<IInnerRow, unknown>) {
return <TextEditor rowIdx={rowIdx} colIdx={colIdx} onClose={() => onClose()} />;
};
}
@@ -0,0 +1,9 @@
import type { RenderHeaderCellProps } from 'react-data-grid';
import type { IInnerRow } from './IInnerRow.js';
import { HeaderCellContentRenderer } from './renderers/HeaderCellContentRenderer.js';
export function mapRenderHeaderCell(colIdx: number) {
return function RenderHeaderCell({ tabIndex }: RenderHeaderCellProps<IInnerRow, unknown>) {
return <HeaderCellContentRenderer colIdx={colIdx} tabIndex={tabIndex} />;
};
}
@@ -0,0 +1,13 @@
import { use } from 'react';
import { DataGridCellContext } from '../DataGridCellContext.js';
import { useGridReactiveValue } from '../useGridReactiveValue.js';
export interface Props {
rowIdx: number;
colIdx: number;
}
export function CellContentRenderer({ rowIdx, colIdx }: Props) {
const cellContext = use(DataGridCellContext);
return useGridReactiveValue(cellContext?.cell, rowIdx, colIdx);
}
@@ -0,0 +1,80 @@
import { memo, use, useRef } from 'react';
import { useDrag, useDrop, type DnDStoreProvider } from '@dbeaver/react-dnd';
import { DataGridCellHeaderContext } from '../DataGridHeaderCellContext.js';
import { useGridReactiveValue } from '../useGridReactiveValue.js';
import { HeaderDnDContext } from '../useHeaderDnD.js';
import { OrderButton } from './OrderButton.js';
interface Props {
colIdx: number;
tabIndex?: number;
}
export const HeaderCellContentRenderer = memo(function HeaderCellContentRenderer({ colIdx, tabIndex }: Props) {
const dndHeaderContext = use(HeaderDnDContext);
const cellHeaderContext = use(DataGridCellHeaderContext);
const headerElement = useGridReactiveValue(cellHeaderContext?.headerElement, colIdx);
const getHeaderText = useGridReactiveValue(headerElement ? undefined : cellHeaderContext?.headerText, colIdx);
const isColumnSortable = useGridReactiveValue(cellHeaderContext?.columnSortable, colIdx);
const onColumnSort = cellHeaderContext?.onColumnSort;
const sortingState = useGridReactiveValue(cellHeaderContext?.columnSortingState, colIdx);
const orderButtonRef = useRef<HTMLButtonElement>(null);
const containerRef = useRef<HTMLDivElement>(null);
const draggable = dndHeaderContext?.getCanDrag?.(colIdx) ?? false;
const drag = useDrag({
draggable,
onDragStart(event, store) {
if (dndHeaderContext?.id) {
store.setData('dbeaver-react-data-grid-id', dndHeaderContext?.id);
}
store.setData('dbeaver-react-data-grid-col-idx', colIdx);
},
onDragEnd() {
dndHeaderContext?.onDragEnd(colIdx);
},
});
function canDrop(event: React.DragEvent<HTMLElement>, store: DnDStoreProvider | null) {
const gridId = store?.getData('dbeaver-react-data-grid-id');
return gridId === dndHeaderContext?.id;
}
const drop = useDrop({
canDrop,
onDragOver(event, store) {
if (!canDrop(event, store)) {
return;
}
const dragColIdx = store?.getData('dbeaver-react-data-grid-col-idx');
const position = event.clientX - event.currentTarget.getBoundingClientRect().left;
const width = event.currentTarget.offsetWidth;
const isAfter = position > width / 2;
dndHeaderContext?.onDragOver(dragColIdx, colIdx, isAfter);
},
});
const handleKeyDown = (e: React.KeyboardEvent) => {
if (e.key === 'Tab' && !e.shiftKey && isColumnSortable && onColumnSort && orderButtonRef.current !== document.activeElement) {
e.preventDefault();
e.stopPropagation();
containerRef.current?.parentElement?.setAttribute('aria-selected', 'false');
orderButtonRef.current?.focus();
}
};
return (
<div
ref={containerRef}
tabIndex={tabIndex}
onKeyDown={handleKeyDown}
className="tw:w-full tw:h-full tw:content-center tw:flex tw:items-center tw:justify-between tw:gap-1 tw:outline-none tw:group"
{...drag.props}
{...drop.props}
>
<span className="tw:overflow-hidden tw:text-ellipsis">{headerElement ?? getHeaderText ?? ''}</span>
{isColumnSortable && onColumnSort && <OrderButton ref={orderButtonRef} colIdx={colIdx} sortState={sortingState} onSort={onColumnSort} />}
</div>
);
});
@@ -0,0 +1,42 @@
import { clsx, IconButton } from '@dbeaver/ui-kit';
interface OrderButtonProps {
colIdx: number;
sortState?: 'asc' | 'desc' | null;
onSort: (attributePosition: number, order: 'asc' | 'desc' | null, isMultiple: boolean) => void;
tabIndex?: number;
ref: React.Ref<HTMLButtonElement>;
}
export function OrderButton({ colIdx, sortState, onSort, tabIndex, ref }: OrderButtonProps) {
function handleClick(e: React.MouseEvent<HTMLButtonElement>) {
const nextSortState = sortState === 'asc' ? 'desc' : sortState === 'desc' ? null : 'asc';
onSort(colIdx, nextSortState, e.ctrlKey || e.metaKey);
}
const svgSortAsc = '#icon-sort-asc';
const svgSortDesc = '#icon-sort-desc';
const svgSortUnknown = '#icon-sort-unknown';
const iconSrc = sortState === 'asc' ? svgSortAsc : sortState === 'desc' ? svgSortDesc : svgSortUnknown;
return (
<IconButton
variant="secondary"
size="small"
onClick={handleClick}
tabIndex={tabIndex}
ref={ref}
title="Sort by column"
aria-label="Sort by column"
className={clsx(
'tw:opacity-0 tw:group-focus:opacity-100 tw:focus:opacity-100 tw:group-hover:opacity-100 tw:hover:opacity-100 tw:outline-offset-0',
sortState && 'tw:opacity-100',
)}
>
<svg width="16" height="16" viewBox="0 0 16 16">
<use href={iconSrc} />
</svg>
</IconButton>
);
}
@@ -0,0 +1,6 @@
import type { CellRendererProps } from 'react-data-grid';
import { BaseCell } from '../BaseCell.js';
export function cellRenderer<TRow, TSummaryRow>(key: React.Key, props: CellRendererProps<TRow, TSummaryRow>) {
return <BaseCell key={key} {...props} />;
}
@@ -0,0 +1,6 @@
import type { RenderRowProps } from 'react-data-grid';
import { BaseRow } from '../BaseRow.js';
export function rowRenderer<TRow, TSummaryRow>(key: React.Key, props: RenderRowProps<TRow, TSummaryRow>) {
return <BaseRow key={key} {...props} />;
}
@@ -0,0 +1,11 @@
export function reorderArray<T>(array: T[], from: number, to: number): T[] {
const newArray = [...array];
if (from < to) {
newArray.splice(to, 0, array[from]!);
newArray.splice(from, 1);
} else {
newArray.splice(from, 1);
newArray.splice(to, 0, array[from]!);
}
return newArray;
}
@@ -0,0 +1,19 @@
import { useMemo } from 'react';
import type { IGridReactiveValue, IGridReactiveValueSubscribe } from './IGridReactiveValue.js';
type NoInfer<T> = intrinsic;
export function useCreateGridReactiveValue<T, TArgs extends any[]>(
get: (...args: TArgs) => T,
subscribe: NoInfer<IGridReactiveValueSubscribe<TArgs>> | null,
deps: React.DependencyList,
): IGridReactiveValue<T, TArgs> {
const value = useMemo<IGridReactiveValue<T, TArgs>>(
() => ({
get,
subscribe: subscribe ?? (() => () => {}),
}),
deps,
);
return value;
}
@@ -0,0 +1,36 @@
import { useMemo, useSyncExternalStore } from 'react';
import type { IGridReactiveValue } from './IGridReactiveValue.js';
export function useGridReactiveValue<P extends IGridReactiveValue<any, any[]> | undefined>(
value: P,
...args: P extends IGridReactiveValue<any, infer T> ? T : never[]
): P extends IGridReactiveValue<infer T, any[]> ? T : undefined {
const mappedValue = useMemo(
() => ({
cache: null as any,
cacheInvalidated: true,
subscribe: (onValueChange: () => void) => {
if (value) {
return value.subscribe(
() => {
mappedValue.cacheInvalidated = true;
return onValueChange();
},
...args,
);
}
return () => {};
},
get: () => {
if (mappedValue.cacheInvalidated) {
mappedValue.cache = value?.get(...args);
mappedValue.cacheInvalidated = false;
}
return mappedValue.cache;
},
}),
[value, ...args],
);
return useSyncExternalStore(mappedValue.subscribe, mappedValue.get);
}
@@ -0,0 +1,94 @@
import type { ColumnOrColumnGroup } from 'react-data-grid';
import type { IInnerRow } from './IInnerRow.js';
import { createContext, useId, useMemo, useState } from 'react';
import { reorderArray } from './reorderArray.js';
interface IHeaderDnDOptions {
columns: Array<ColumnOrColumnGroup<IInnerRow, unknown>>;
getCanDrag?: (colIdx: number) => boolean;
onReorder?: (from: number, to: number) => void;
getHeaderOrder?: () => number[];
}
interface IHeaderDnD {
id: string;
columns: Array<ColumnOrColumnGroup<IInnerRow, unknown>>;
getDataColIdx: (virtualColIdx: number) => number;
getVirtualColIdx: (dataColIdx: number) => number;
getCanDrag?: (colIdx: number) => boolean;
onDragOver: (dragColIdx: number, dropColIdx: number, isAfter: boolean) => void;
onDragEnd: (colIdx: number) => void;
}
export const HeaderDnDContext = createContext<IHeaderDnD | null>(null);
export function useHeaderDnD({ columns, getCanDrag, onReorder, getHeaderOrder }: IHeaderDnDOptions): IHeaderDnD {
const id = useId();
const [activeDnDElement, setActiveDnDElement] = useState<number | null>(null);
const [dragOverElement, setDragOverElement] = useState<[number, boolean] | null>(null);
function getDataColIdx(virtualColIdx: number) {
// Given a visible (ordered) column index, return the original data column index
const order = getHeaderOrder?.();
if (order) {
return order[virtualColIdx] ?? virtualColIdx;
}
return virtualColIdx;
}
function getVirtualColIdx(dataColIdx: number) {
// Given the original data column index, return its visible (ordered) index
const order = getHeaderOrder?.();
if (order) {
return order.indexOf(dataColIdx);
}
return dataColIdx;
}
function onDragEnd(dragColIdx: number) {
setActiveDnDElement(null);
setDragOverElement(null);
if (dragOverElement) {
const isAfter = dragOverElement?.[1];
let to = dragOverElement?.[0];
if (isAfter) {
to = getDataColIdx(getVirtualColIdx(to) + 1);
}
onReorder?.(dragColIdx, to);
}
}
function onDragOver(dragColIdx: number, dropColIdx: number, isAfter: boolean) {
setActiveDnDElement(dragColIdx);
if (dragColIdx !== dropColIdx) {
setDragOverElement([dropColIdx, isAfter]);
}
}
columns = useMemo(() => columns.map((col, idx) => columns[getDataColIdx(idx)]!), [columns, getHeaderOrder]);
if (activeDnDElement !== null && dragOverElement !== null) {
const from = getVirtualColIdx(activeDnDElement);
let to = getVirtualColIdx(dragOverElement[0]);
const isAfter = dragOverElement[1];
if (isAfter) {
to++;
}
columns = reorderArray(columns, from, to);
}
return {
id,
columns,
getDataColIdx,
getVirtualColIdx,
getCanDrag,
onDragOver,
onDragEnd,
};
}
@@ -0,0 +1,24 @@
{
"extends": "@dbeaver/tsconfig/tsconfig.webview.json",
"compilerOptions": {
"tsBuildInfoFile": "./lib/.tsbuildinfo",
"rootDir": "src",
"rootDirs": [
"src"
],
"outDir": "lib",
"incremental": true,
"composite": true
},
"include": [
"src"
],
"references": [
{
"path": "../react-dnd"
},
{
"path": "../ui-kit"
}
]
}
@@ -0,0 +1 @@
# @dbeaver/react-dnd
@@ -0,0 +1,36 @@
{
"name": "@dbeaver/react-dnd",
"type": "module",
"sideEffects": [],
"exports": {
".": "./lib/index.js",
"./*": "./lib/*.js"
},
"scripts": {
"clear": "rimraf lib"
},
"files": [
"package.json",
"LICENSE",
"README.md",
"CHANGELOG.md",
"lib",
"!lib/**/*.d.ts.map",
"!lib/**/*.test.js",
"!lib/**/*.test.d.ts",
"!lib/**/*.test.d.ts.map",
"!lib/**/*.test.js.map",
"!lib/tests",
"!.tsbuildinfo"
],
"packageManager": "yarn@4.6.0",
"devDependencies": {
"@dbeaver/tsconfig": "workspace:^",
"@types/react": "^19",
"rimraf": "^6",
"typescript": "^5"
},
"dependencies": {
"react": "^19"
}
}
@@ -0,0 +1,3 @@
export * from './useDrag.js';
export * from './useDrop.js';
export { type DnDStoreProvider } from './store.js';
@@ -0,0 +1,46 @@
export const DND_STORE_PREFIX = 'application/dbeaver-react-dnd-';
export interface DnDStoreProvider {
getData: (key: string) => any;
setData: (key: string, value: any) => void;
removeData: () => void;
}
class DnDStore {
private data: Map<string, Record<string, any>> = new Map();
setData(id: string, key: string, value: any) {
if (!this.data.has(id)) {
this.data.set(id, {});
}
this.data.get(id)![key] = value;
}
getData(id: string, key: string) {
return this.data.get(id)?.[key];
}
removeData(id: string) {
this.data.delete(id);
}
getProvider(id: string) {
return {
getData: (key: string) => this.getData(id, key),
setData: (key: string, value: any) => {
this.setData(id, key, value);
},
removeData: () => {
this.removeData(id);
},
};
}
}
export function getStoreProvider(event: React.DragEvent<HTMLElement>): DnDStoreProvider | null {
const id = event.dataTransfer.types.find(type => type.startsWith(DND_STORE_PREFIX))?.slice(DND_STORE_PREFIX.length);
return id ? globalDnDStore.getProvider(id) : null;
}
// TODO: do we want to use react context here?
// the main idea was to use native DataTransfer, but it's available only for drag start and drop events
// so we need to use a custom store
export const globalDnDStore = new DnDStore();
@@ -0,0 +1,67 @@
import { useId, useMemo, useRef, useState } from 'react';
import { DND_STORE_PREFIX, globalDnDStore, type DnDStoreProvider } from './store.js';
interface IDragOptions {
draggable?: boolean;
onDrag?: (event: React.DragEvent<HTMLElement>, provider: DnDStoreProvider) => void;
onDragStart?: (event: React.DragEvent<HTMLElement>, provider: DnDStoreProvider) => void;
onDragEnd?: (event: React.DragEvent<HTMLElement>, provider: DnDStoreProvider) => void;
}
interface IDrag {
isDragging: boolean;
props: {
draggable?: boolean;
onDrag: (event: React.DragEvent<HTMLElement>) => void;
onDragStart: (event: React.DragEvent<HTMLElement>) => void;
onDragEnd: (event: React.DragEvent<HTMLElement>) => void;
};
}
export function useDrag({ draggable, onDragStart, onDrag, onDragEnd }: IDragOptions = {}): IDrag {
const id = useId();
const [dragging, setDragging] = useState(false);
const optionsRef = useRef<IDragOptions>({ draggable, onDragStart, onDrag, onDragEnd });
optionsRef.current = { draggable, onDragStart, onDrag, onDragEnd };
function handleDragStart(event: React.DragEvent<HTMLElement>) {
if (!optionsRef.current.draggable) {
return;
}
event.stopPropagation();
event.dataTransfer.effectAllowed = 'move';
event.dataTransfer.setData(`${DND_STORE_PREFIX}${id}`, id);
setDragging(true);
optionsRef.current.onDragStart?.(event, globalDnDStore.getProvider(id));
}
function handleDrag(event: React.DragEvent<HTMLElement>) {
if (!optionsRef.current.draggable) {
return;
}
optionsRef.current.onDrag?.(event, globalDnDStore.getProvider(id));
}
function handleDragEnd(event: React.DragEvent<HTMLElement>) {
if (!optionsRef.current.draggable) {
return;
}
setDragging(false);
optionsRef.current.onDragEnd?.(event, globalDnDStore.getProvider(id));
globalDnDStore.removeData(id);
}
return {
isDragging: dragging,
props: {
draggable,
...useMemo(
() => ({
onDrag: handleDrag,
onDragStart: handleDragStart,
onDragEnd: handleDragEnd,
}),
[],
),
},
};
}
@@ -0,0 +1,61 @@
import { useMemo, useRef } from 'react';
import { getStoreProvider, type DnDStoreProvider } from './store.js';
interface IDropOptions {
canDrop?: (event: React.DragEvent<HTMLElement>, provider: DnDStoreProvider | null) => boolean;
onDrop?: (event: React.DragEvent<HTMLElement>, provider: DnDStoreProvider | null) => void;
onDragOver?: (event: React.DragEvent<HTMLElement>, provider: DnDStoreProvider | null) => void;
onDragEnter?: (event: React.DragEvent<HTMLElement>, provider: DnDStoreProvider | null) => void;
onDragLeave?: (event: React.DragEvent<HTMLElement>, provider: DnDStoreProvider | null) => void;
}
interface IDrop {
props: {
onDrop: (event: React.DragEvent<HTMLElement>) => void;
onDragOver: (event: React.DragEvent<HTMLElement>) => void;
onDragEnter: (event: React.DragEvent<HTMLElement>) => void;
onDragLeave: (event: React.DragEvent<HTMLElement>) => void;
};
}
export function useDrop({ canDrop, onDrop, onDragOver, onDragEnter, onDragLeave }: IDropOptions = {}): IDrop {
const optionsRef = useRef<IDropOptions>({ canDrop, onDrop, onDragOver, onDragEnter, onDragLeave });
optionsRef.current = { canDrop, onDrop, onDragOver, onDragEnter, onDragLeave };
function handleOver(event: React.DragEvent<HTMLElement>) {
const provider = getStoreProvider(event);
const isDroppable = optionsRef.current.canDrop?.(event, provider);
if (isDroppable) {
event.preventDefault();
event.dataTransfer.dropEffect = 'move';
} else {
event.dataTransfer.dropEffect = 'none';
}
optionsRef.current.onDragOver?.(event, provider);
}
function handleEnter(event: React.DragEvent<HTMLElement>) {
const provider = getStoreProvider(event);
optionsRef.current.onDragEnter?.(event, provider);
}
function handleLeave(event: React.DragEvent<HTMLElement>) {
const provider = getStoreProvider(event);
optionsRef.current.onDragLeave?.(event, provider);
}
function handleDrop(event: React.DragEvent<HTMLElement>) {
const provider = getStoreProvider(event);
optionsRef.current.onDrop?.(event, provider);
}
return {
props: useMemo(
() => ({
onDrop: handleDrop,
onDragOver: handleOver,
onDragEnter: handleEnter,
onDragLeave: handleLeave,
}),
[],
),
};
}
@@ -0,0 +1,16 @@
{
"extends": "@dbeaver/tsconfig/tsconfig.webview.json",
"compilerOptions": {
"tsBuildInfoFile": "./lib/.tsbuildinfo",
"rootDir": "src",
"rootDirs": [
"src"
],
"outDir": "lib",
"incremental": true,
"composite": true
},
"include": [
"src"
]
}
+23
View File
@@ -0,0 +1,23 @@
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
# dependencies
/node_modules
/.pnp
.pnp.js
# testing
/coverage
# production
/lib
# misc
.DS_Store
.env*
# debug
npm-debug.log*
yarn-debug.log*
yarn-error.log*
tsconfig.tsbuildinfo
@@ -0,0 +1,2 @@
import '../src/index.css';
import './global.css';
@@ -0,0 +1,8 @@
/** @type {import('@ladle/react').UserConfig} */
export default {
addons: {
a11y: {
enabled: true,
},
},
};
@@ -0,0 +1,132 @@
@import 'tailwindcss' layer(base) prefix(tw);
@layer theme {
main {
color: var(--dbv-kit-color-foreground);
background-color: var(--tw-color-gray-50);
}
a {
color: var(--tw-color-blue-600);
text-decoration: underline;
&:hover {
color: var(--tw-color-blue-700);
text-decoration-thickness: 2px;
}
}
code {
color: var(--tw-color-orange-700);
}
h1,
h2,
h3,
h3,
h5 {
font-weight: var(--tw-font-weight-semibold);
margin-block-start: 1em;
margin-block-end: 0.5em;
}
h1 {
font-size: var(--tw-text-2xl);
}
h2 {
font-size: var(--tw-text-xl);
}
h3 {
font-size: var(--tw-text-lg);
}
p {
font-size: var(--tw-text-base);
margin-block-start: 0.5em;
margin-block-end: 0.5em;
}
kbd {
background-color: #eee;
border-radius: 3px;
border: 1px solid #b4b4b4;
box-shadow:
0 1px 1px rgba(0, 0, 0, 0.2),
0 2px 0 0 rgba(255, 255, 255, 0.7) inset;
color: #333;
display: inline-block;
font-size: 0.85em;
font-weight: 700;
line-height: 1;
padding: 2px 4px;
white-space: nowrap;
}
.codeblock {
background-color: var(--tw-color-gray-100);
padding: 1em;
border-radius: 0.25em;
margin-block-start: 1em;
margin-block-end: 1em;
}
.comment {
color: var(--tw-color-gray-500);
}
.color-sample {
display: inline-block;
width: 1em;
height: 1em;
border-radius: 0.25em;
}
}
:root[data-theme='dark'] {
--dbv-kit-color-foreground: var(--tw-color-gray-200);
--dbv-kit-color-background: var(--tw-color-gray-900);
--dbv-kit-btn-loader-base-color: var(--tw-color-gray-900);
/* Primary Button */
--dbv-kit-btn-primary-foreground: var(--tw-color-gray-100);
--dbv-kit-btn-primary-background: var(--dbv-kit-color-primary-700);
--dbv-kit-btn-primary-background-hover: var(--dbv-kit-color-primary-600);
--dbv-kit-btn-primary-background-active: var(--dbv-kit-color-primary-500);
/* Secondary Button */
--dbv-kit-btn-secondary-foreground: var(--tw-color-gray-100);
--dbv-kit-btn-secondary-background: transparent;
--dbv-kit-btn-secondary-background-hover: var(--tw-color-gray-800);
--dbv-kit-btn-secondary-background-active: var(--tw-color-gray-700);
--dbv-kit-btn-secondary-border-color: var(--tw-color-gray-200);
/* Danger Button */
--dbv-kit-btn-danger-foreground: var(--tw-color-gray-100);
--dbv-kit-btn-danger-background: var(--tw-color-red-700);
--dbv-kit-btn-danger-background-hover: var(--tw-color-red-600);
--dbv-kit-btn-danger-background-active: var(--tw-color-red-500);
/* Input */
--dbv-kit-input-background: var(--tw-color-gray-800);
--dbv-kit-input-border-color: var(--tw-color-gray-700);
--dbv-kit-input-color: var(--tw-color-gray-100);
--dbv-kit-input-placeholder-foreground: var(--tw-color-gray-400);
main {
background-color: var(--tw-color-gray-900);
}
code {
color: var(--tw-color-orange-400);
}
a {
color: var(--tw-color-blue-300);
}
.codeblock {
background-color: var(--tw-color-gray-800);
}
}
+63
View File
@@ -0,0 +1,63 @@
# DBeaver UI Kit
#### The DBeaver UI Kit is a collection of reusable React components designed to help developers build consistent and visually appealing user interfaces.
## Using Ladle for Component Development
[Ladle](https://ladle.dev/) is a tool that allows you to develop, test, and document your React components in isolation. We use it to create a sandbox environment where you can interact with your components and ensure they work as expected.
To get started with Ladle in the DBeaver UI Kit, write in terminal:
```bash
yarn docs
```
Then open the provided URL to see components.
## How to Customize
DBeaver UI Kit components have basic styles and use some defaults from Tailwind CSS. To change styling, you can use different approaches.
### Global CSS Tokens
The UI kit uses several global CSS tokens described on the Global Tokens page. These tokens help maintain consistency across the UI components. All DBeaver UI tokens are prefixed with `--dbv-kit-`. You can use these tokens to customize the UI kit to fit your application's design. For example, changing the `--dbv-kit-font-size-base` token will change the base font size for text in the UI kit. Changing the `--dbv-kit-control-height-base` token will change all control heights. If you don't want to change all controls, you can change `--dbv-kit-control-height-small`, `--dbv-kit-control-height-medium`, or other tokens separately. They will affect only specific components.
### Component CSS Tokens
Some components have their own tokens. For example, the Button component has tokens for button sizes, padding, and colors. You can change these tokens to customize the Button component. To see the list of tokens, go to sources or start Ladle.
### Component CSS Classes
Each component in the UI kit has a default CSS class name following the `dbv-kit-[component name(in lowercase)]` naming convention that you can use to customize the component. You can find the default class name in the component's documentation.
For button:
```css
.dbv-kit-button {
/* Your custom styles */
}
```
For input:
```css
.dbv-kit-input {
/* Your custom styles */
}
```
Some components have additional classes for different states or sizes. For example, the Button component has classes for different sizes: `.dbv-kit-button--small`, `.dbv-kit-button--large`. We use the BEM convention for class names. If a component has a modifier, it will be separated by two dashes. If a component has a child element, it will be separated by two underscores, for example:
- `.dbv-kit-button__icon` - icon is a child element of the button
- `.dbv-kit-button--large` - large is a size modifier
- `.dbv-kit-button__icon--start` - icon is a child element of the button and has a start placement
Each component accepts the standard `className` and `style` props which enable using vanilla CSS, utility classes (e.g., Tailwind), CSS-in-JS (e.g., Styled Components), etc. A custom `className` can be specified and will be appended to a class list of a component:
```jsx
<Button className="my-custom-button">Button</Button>
```
```jsx
<Button style={{ background: 'red' }}>Button</Button>
```
@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" fill="currentColor">
<polygon points="2 10 12 10 7 4 2 10" />
<rect x="6" y="6" width="2" height="22" />
<rect x="14" y="6" width="16" height="2" />
<rect x="14" y="15" width="12" height="2" />
<rect x="14" y="24" width="8" height="2" />
</svg>

After

Width:  |  Height:  |  Size: 353 B

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor">
<polygon points="2 8.14 9.14 8.14 5.57 3.86 2 8.14" />
<rect x="4.86" y="5.29" width="1.43" height="15.71" />
<rect x="10.57" y="5.29" width="11.43" height="1.43" />
<rect x="10.57" y="11.71" width="8.57" height="1.43" />
<rect x="10.57" y="18.14" width="5.71" height="1.43" />
</svg>

After

Width:  |  Height:  |  Size: 414 B

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="currentColor">
<polygon points="0 4 5 4 2.5 1 0 4" />
<rect x="2" y="4" width="1" height="11" />
<rect x="6" y="3" width="10" height="1" />
<rect x="6" y="8" width="7" height="1" />
<rect x="6" y="13" width="4" height="1" />
</svg>

After

Width:  |  Height:  |  Size: 346 B

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" fill="currentColor">
<polygon points="12 22 2 22 7 28 12 22" />
<rect x="6" y="4" width="2" height="22" />
<rect x="14" y="6" width="16" height="2" />
<rect x="14" y="15" width="12" height="2" />
<rect x="14" y="24" width="8" height="2" />
</svg>

After

Width:  |  Height:  |  Size: 355 B

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor">
<polygon points="9.14 16.71 2 16.71 5.57 21 9.14 16.71" />
<rect x="4.86" y="3.86" width="1.43" height="15.71" />
<rect x="10.57" y="5.29" width="11.43" height="1.43" />
<rect x="10.57" y="11.71" width="8.57" height="1.43" />
<rect x="10.57" y="18.14" width="5.71" height="1.43" />
</svg>

After

Width:  |  Height:  |  Size: 418 B

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="currentColor">
<polygon points="5 12 0 12 2.5 15 5 12" />
<rect x="2" y="1" width="1" height="12" />
<rect x="6" y="3" width="10" height="1" />
<rect x="6" y="8" width="7" height="1" />
<rect x="6" y="13" width="4" height="1" />
</svg>

After

Width:  |  Height:  |  Size: 350 B

@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" fill="currentColor">
<polygon points="4 10 14 10 9 4 4 10" />
<rect x="8" y="6" width="2" height="22" />
<polygon points="28 22 18 22 23 28 28 22" />
<rect x="22" y="4" width="2" height="22" />
</svg>

After

Width:  |  Height:  |  Size: 307 B

@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor">
<polygon points="3.4 8.29 10.55 8.29 6.98 4 3.4 8.29" />
<rect x="6.26" y="5.43" width="1.43" height="15.71" />
<polygon points="20.55 16.86 13.4 16.86 16.98 21.14 20.55 16.86" />
<rect x="16.26" y="4" width="1.43" height="15.71" />
</svg>

After

Width:  |  Height:  |  Size: 367 B

@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="currentColor">
<polygon points="2 4 7 4 4.5 1 2 4" />
<rect x="4" y="4" width="1" height="11" />
<polygon points="14 12 9 12 11.5 15 14 12" />
<rect x="11" y="1" width="1" height="11" />
</svg>

After

Width:  |  Height:  |  Size: 306 B

@@ -0,0 +1,28 @@
<svg xmlns="http://www.w3.org/2000/svg">
<symbol id="icon-sort-unknown" viewBox="0 0 24 24" fill="currentColor">
<polygon points="3.4 8.29 10.55 8.29 6.98 4 3.4 8.29" />
<rect x="6.26" y="5.43" width="1.43" height="15.71" />
<polygon points="20.55 16.86 13.4 16.86 16.98 21.14 20.55 16.86" />
<rect x="16.26" y="4" width="1.43" height="15.71" />
</symbol>
<symbol id="icon-sort-desc" viewBox="0 0 24 24"
fill="currentColor">
<polygon points="9.14 16.71 2 16.71 5.57 21 9.14 16.71" />
<rect x="4.86" y="3.86" width="1.43" height="15.71" />
<rect x="10.57" y="5.29" width="11.43" height="1.43" />
<rect x="10.57" y="11.71" width="8.57" height="1.43" />
<rect x="10.57" y="18.14" width="5.71" height="1.43" />
</symbol>
<symbol id="icon-sort-asc" viewBox="0 0 24 24" fill="currentColor">
<polygon points="2 8.14 9.14 8.14 5.57 3.86 2 8.14" />
<rect x="4.86" y="5.29" width="1.43" height="15.71" />
<rect x="10.57" y="5.29" width="11.43" height="1.43" />
<rect x="10.57" y="11.71" width="8.57" height="1.43" />
<rect x="10.57" y="18.14" width="5.71" height="1.43" />
</symbol>
<symbol id="icon-cross" viewBox="0 0 24 24">
<path xmlns="http://www.w3.org/2000/svg" fill="currentColor" fill-rule="evenodd"
clip-rule="evenodd"
d="M3.31579 3.31579C2.89474 3.73684 2.89474 4.42105 3.31579 4.84211L10.4737 12L3.31579 19.1579C2.89474 19.5789 2.89474 20.2632 3.31579 20.6842C3.73684 21.1053 4.42105 21.1053 4.84211 20.6842L12 13.5263L19.1579 20.6842C19.5789 21.1053 20.2632 21.1053 20.6842 20.6842C21.1053 20.2632 21.1053 19.5789 20.6842 19.1579L13.5263 12L20.6842 4.84211C21.1053 4.42105 21.1053 3.73684 20.6842 3.31579C20.2632 2.89474 19.5789 2.89474 19.1579 3.31579L12 10.4737L4.84211 3.31579C4.42105 2.89474 3.73684 2.89474 3.31579 3.31579Z" />
</symbol>
</svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

Some files were not shown because too many files have changed in this diff Show More