* dbeaver/pro#9880 updates isChanged with isReadonly flag to fix the form flow
* Revert "dbeaver/pro#9880 updates isChanged with isReadonly flag to fix the form flow"
This reverts commit 69ab0b0cbd.
* dbeaver/pro#9880 update isChanged logic to handle readonly mode in ConnectionFormSSHPart
---------
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
* dbeaver/pro#4551 adds full DDL for GeneratedSql dialog
* dbeaver/pro#4551 introduces core-sql-generator plugin + adds "full DDL" action into data editor footer for DDL properties tab
* dbeaver/pro#4551 adds supportsFullDdl flag to hide full ddl feature if connection doesn't support it
* dbeaver/pro#4551 adds SqlEntityQueryResource to separate sqlGenerator logic
* dbeaver/pro#4551 refactor: remove core-sql-generator package and related files; migrate SQL generation logic to plugin-sql-generator
* dbeaver/pro#4551 implements DDL query state management and refactors DDL viewer context
* dbeaver/pro#4551 removes state & name in favor of onChange for GeneratedSqlDIalog
---------
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
Added changelog entries for version 26.1.4, including new AI features, connectivity improvements, accessibility updates, general enhancements, security fixes, and database driver updates.
* dbeaver/pro#9638 fix: update project filtering logic to use project IDs for active projects
Changed all four spots from reference equality to id comparison, matching the rest of the codebase, see https://github.com/dbeaver/cloudbeaver/issues/4430
* dbeaver/pro#9638 refactor(connectionUpdateHandler): move node to a new parent on change
* dbeaver/pro#9638 revert commit eb2ba7871e
* dbeaver/pro#9638 fix: update node parents on move in other session
Server events don't carry the actual data, so besides outdating (which lets the handlers invalidate the previous state, e.g. the old location in the navigation tree) we explicitly load the connection to guarantee that the handlers receive the actual state
* dbeaver/pro#9638 fix: sync connection folder move from another session
* dbeaver/pro#9638 fix: revert back connectionUpdateHandler
* dbeaver/pro#9638 fix: remove try catch
---------
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
Added changelog for version 26.1.3, including updates on data editor, general improvements, data transfer enhancements, accessibility features, security fixes, and database driver updates.
* dbeaver/pro#9704 fix: adjust combobox and select control outline properties
* dbeaver/pro#9704 fix: add control outline color and width for checkbox and radio components
* dbeaver/pro#9704 fix: set outline color and width for disclosure component
* dbeaver/pro#9704 refactor: add text overflow handling for combobox item values
remove tw:truncate because it adds hidden text-sm font-size
* dbeaver/pro#9704 fix: update combobox popover and item classes
* dbeaver/pro#9704 fix: correct portal handling in SelectPopover component
* dbeaver/pro#9704 fix: ensure correct portal handling in ComboboxPopover component
* dbeaver/pro#9704 refactor: rename ComboboxType to IComboboxType for consistency
* dbeaver/pro#9704 fix: line-height for combobox items
* dbeaver/pro#9704 style: remove unnecessary letter-spacing from combobox item
---------
Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
* dbeaver/pro#9502 feat: allow importing css files from core-blocks package
Plugins that build UI directly on ui-kit components need the CloudBeaver theme css for these components without importing the components themselves. Expose css files through package exports so a plugin can load them as a side effect.
* dbeaver/pro#9502 fix: update focus-visible styles for select component
* dbeaver/pro#9502 feat: add tokens for combobox items
* dbeaver/pro#9502 feat: load Select/Combobox base styles from core-blocks
ui-kit controls reuse these styles, but the CE wrapper components are lazy, so the CSS only shipped in the lazy chunk, we need those styles for widgets that use UI-kit controls
* dbeaver/pro#9502 feat: enhance Select component with value display styling
---------
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
* dbeaver/pro#8796 refactor: extract Execution Plan into separate plugin
Move all Execution Plan logic out of plugin-sql-editor into a new plugin-sql-editor-execution-plan. plugin-sql-editor no longer knows about execution plan and instead exposes generic extension points
Execution plan tab data now lives in-memory in SqlExecutionPlanService instead of the persisted editor state schema (these tabs are session-only).
* dbeaver/pro#8796 feat: add naming convention rule for exported interfaces
* dbeaver/pro#8796 fix: update js-helpers dependency version in yarn.lock
* dbeaver/pro#8796 refactor: reorder register method for better readability
---------
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
in 6.7.0 they have broken the replaceNext functionality and until they fix it we lock on the working version
Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
* dbeaver/pro#9436 feat: add isNumber and replaceMiddle utility functions
* dbeaver/pro#9436 refactor: move uuid helper into @dbeaver/js-helpers
Move uuid() from @cloudbeaver/core-utils into the portable @dbeaver/js-helpers so chart widget code can depend on it without pulling in CloudBeaver. core-utils re-exports uuid/V4Options/V1Options from js-helpers, so existing importers are unaffected; the uuid npm dependency moves to js-helpers.
* dbeaver/pro#9436 style: update copyright year in uuid_ file
* dbeaver/pro#9436 refactor: reexport isNumber and replaceMiddle functions from @dbeaver/js-helpers
* dbeaver/pro#9436 refactor: rename uuid file to uuid_ and update exports
---------
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>
* dbeaver/pro#8780 moves switch to ui-kit component + adds story
* redesigns switch
* fixes dense example
* fixes animations
* removes outline for whole area of switch
* adds tied to the input label
* adds innerChecked
* adds composition to the Switch component
* refactors switch API to make it more composable
* adds specifity to win css race with font weight for label
* fixes dense font weight
---------
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>
* dbeaver/pro#9308 moves context menu from the cell level to table level
* cleanup
* adds DataGridMenuContextProvider
* uses context menu position from the hook useContextMenuPosition
* closes menu if cell is not visible
* adds useViewLeave hook to close menu if it is out of the view
* changes approach for re-opening menus + removes isMenuVisible logic
* removes redundant event prevent default and stopPropogation
* fixes focus stealing issue
* hides menu on scroll
* cleanup
* pr fixes
* cleanup
* uses cell key to open table
* pr fixes
* simplifies the menu api
* adds openMenuAt to reduce casting to mouse event while opening menu via shortcut
* cleanup
* removes isMenuOpened guard
* moves menu to the center of icon when opens from keyboard
* removes onClose handling and focus cell in sync workaround
* adds keyboard event handling for the context menu api
* compares cells with keys utils helper
* removes open menu at
* removes setContext
* cleanup
* simplifies interfaces
* fixes bug with menu not being able to rerender
* restores focus on close
* dbeaver/pro#9308 simplify logic
* adds closing menu on scroll
* pr fixes
* dbeaver/pro#9308 adds context menu sr-only for accessibility
* adds arialabel for icon button
* Revert "adds arialabel for icon button"
This reverts commit a830301f7a.
* adds span to make scrolling work
---------
Co-authored-by: alex <48489896+devnaumov@users.noreply.github.com>
Co-authored-by: naumov <iamemptyhuh@gmail.com>
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
* dbeaver/pro#9525 register project-info plugin
* adds project info to the context menu
* adds project info form
* adds project options part info tab content
* separates logic with bootstraps
* removes unused locales
* pr fixes
* removes global and shared checkboxes
---------
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
* dbeaver/pro#8684 feat: unlock autoscroll when dragging in data grid
* dbeaver/pro#8684 fix: don't select value panel and rows input in the toolbar on drag
as a bonus enhance data grid context menu accessibility to improve user selection behavior when we start dragging from the menu button
return selection only when the cell is edited
* dbeaver/pro#8684 refactor: add selection background color for input in editing cell
---------
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
* dbeaver/pro#8782 migrates form controls from scss to css
* migrates all scss to css
* removes all scss mentions
* fixes input colors
* fixes thumb and link colors
* fixes padding & border errors (search panel & where filter)
* fixes disabled state for switches (input type="checkbox")
---------
Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
we mimic here the old input's behaviour, when we can't see the scroll but can navigate through the 1-line value with keyboard or mouse drag/selection
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
* dbeaver/pro#8486 feat: add DataReadonlyReason API for data sources
Previously TableStatusIndicator relied on model.isReadonly() which lost reasons. This caused the "Read-only connection" tooltip to show in grouping panel even on
editable connections — the connection wasn't read-only, the
presentation was.
Each data source now declares its specific reason via getReadonlyReason(). UI maps the typed reason to an accurate
message
* dbeaver/pro#8486 refactor: remove DataReadonlyReason references and use hasFeature flag
---------
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
* dbeaver/pro#8424 adds shortcut top open/close context menu for the data editor
* moves helper into parseHotkeys + simplifies it
* adds unit tests
* adds autoFocusOnShow prop to support backward compatibility
* dbeaver/pro#8424 use current state
* adds few test cases for the extra buttons pressed
---------
Co-authored-by: naumov <iamemptyhuh@gmail.com>
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
* dbeaver/cloudbeaver#4138 feat: support inline editing of multi-line values in data grid cells
- TextEditor: switch <input> to <textarea rows=1> so newlines are preserved when editing. Suppress the trailing insertLineBreak from the Enter that opens the editor (would otherwise wipe the auto-selected value).
- ResultSetFormatAction.truncateText: substitute \n, \r, \r\n, \t with
visible glyphs (↵, ␍, →) and collapse other control chars to a space
in a single pass.
Perf note: the new replace should be faster than the prior
split('') + map + join. No intermediate array allocations, and the
callback runs only on matched chars (which are sparse in display text). \p{Cc} also expands coverage from charCode < 32 to include DEL and C1 controls (U+007F, U+0080–U+009F). (closer to Dbeaver behavior)
* dbeaver/pro#4138 feat: show raw text in title for text cells
* dbeaver/pro#4138 treat one cell differently
---------
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
Co-authored-by: naumov <iamemptyhuh@gmail.com>
Co-authored-by: alex <48489896+devnaumov@users.noreply.github.com>
Added changelog for version 26.0.5, detailing new features, fixes, and updates across various components including authorization, data editor, SQL editor, database drivers, and security improvements.
* dbeaver/pro#8294 allows to refresh only connection root nodes for non-established connections
* renames variable
* checks if connection is connected to refresh it properly
* adds node check instead of connection directly
* dbeaver/pro#9046 adds vertical tabs for execution plan to add more space for new button or panel with buttons
* adds ask AI feature for execution plan
* removes editor id and uses context state
* makes ai feature spotlighted in the ui
* rotates the icon also
* removes bold label
---------
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
* dbeaver/pro#8810 adds cancel action for auth via link
* lint fix + handles edge case when no popup appeared
* reverts eslint fix
* adds synchronization to connection init with oauth cancelling to remove stuck loading state
* reverts abort logic
* removes onAuthCancelled
* dbeaver/pro#8416 adds masks for connection fields with password
* adds placeholder for password with mask
* Revert "dbeaver/pro#8416 adds masks for connection fields with password"
This reverts commit 4f89c46207.
* keeps old translation for file
---------
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
* dbeaver/pro#8943 updates yarn locks
* updates vite
* updates vite-plugin-svgr
* removes CVEs
* reverts vite to update it later
* updates yarn lock
* updates yarn lock
* updates uuid
* removes axios CVE
* reverts @codemirror/search in order to fix the issue with replace 1 symbol (broken focus next)
* locks versions of other codemirror packages in order to keep versions 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>
This PR implements dynamic generation of the manifest.webmanifest file to respect the CLOUDBEAVER_ROOT_URI environment variable configuration. Previously, the manifest was a static file with hardcoded values that didn't adapt to custom ro
ot URI configurations.
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
* dbeaver/pro#7562 feat: persist data editor filter state after reconnect
* dbeaver/pro#7562 feat: update data viewer to persist filter state
* dbeaver/pro#7562 feat: enhance constraint resolution in WebSQLDataFilter
allow using attrName without attrPosition
* dbeaver/pro#7562 refactor: don't use options
replaced private restorePendingState() with public restoreViewState(pinnedColumnNames, columnOrderNames?) that takes data directly as arguments
* dbeaver/pro#7562 fix: stale constraints in UI
bug with skipping constraints if any without a position.
if (!prevColumn) {
return;
}
* dbeaver/pro#7562 refactor: add method to retrieve pinned column names in GridViewAction
* dbeaver/pro#7562 refactor: simplify state validation using schema
* dbeaver/pro#7562 refactor: simplify state management in useDataViewerPanel
* dbeaver/pro#7562 refactor: move persisted state to IDataViewerPageState
* dbeaver/pro#7562 fix: initial pageState
* dbeaver/pro#7562 refactor: simplify getPinnedColumnNames method in GridViewAction
* dbeaver/pro#7562 refactor: shadowed column renamed to c for clarity
* dbeaver/pro#7562 refactor: change type of value in IPersistedConstraint to unknown
* dbeaver/pro#7562 refactor: remove manual state operations
* dbeaver/pro#7562 refactor: introduce DatabasePersistedStateAction for centralized state persistence
* dbeaver/pro#7562 fix
* dbeaver/pro#7562 refactor: replace reaction with when
* Revert "dbeaver/pro#7562 feat: enhance constraint resolution in WebSQLDataFilter"
This reverts commit 3e0e86f4b2.
Last test showed that we don't need any additional logic on BE. It handles all constraints properly.
* dbeaver/pro#7562 fix: make pinColumns optional
* dbeaver/pro#7562 refactor: simplify pinned column handling
* dbeaver/pro#7562 refactor: initialize store in DatabasePersistedStateAction constructor as observable
* dbeaver/pro#7562 refactor: rename getColumnNameByPosition to getColumnNameAt for clarity
* dbeaver/pro#7562 refactor: move DatabasePersistedStateAction to source level, simplify persisted state sync
- Make DatabasePersistedStateAction a standalone class on DatabaseDataSource instead of per-result action
- Convert options to getter
- Auto-sync constraints to persisted state via autorun + action batching
- Restore view state (pinned columns, column order) in GridViewAction constructor
* dbeaver/pro#7562 refactor: replace DatabasePersistedStateAction with DatabasePersistedStateStore and update related references
* dbeaver/pro#7562 refactor: simplify view-state persistence
- DatabasePersistedStateStore: pure KV (observable.ref + actions)
- DatabaseDataSource: add loadPersistedState() + onPersistedStateLoaded() hook
- DatabaseDataConstraintAction: own the constraint persist
- ResultSetDataSource: thin dispatcher
- GridViewAction: columnsOrder/pinnedColumns become computed getters
* dbeaver/pro#7562 refactor: create universal ColumnReference
* dbeaver/pro#7562 refactor: simplify persistence flow, remove extra guards, simplify persisted data filter state handling
* dbeaver/pro#7562 refactor: simplify GridViewAction column-ref handling and layout resolution
* dbeaver/pro#7562 refactor: per-key reactive persisted state store, drop constraint persistence hacks
* dbeaver/pro#7562 refactor: simplify setOptions method to use superclass implementation
* dbeaver/pro#7562 add missing fields
---------
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
Co-authored-by: naumov <iamemptyhuh@gmail.com>
Co-authored-by: alex <48489896+devnaumov@users.noreply.github.com>
* dbeaver/pro#7880 adds MVP for saving script to cloud storage
* removes registerScriptExportController
* finalizes the ui
* adds missing locales
* introduces footer slot to use CommonDialog api
* adds locales
* moves success message to the tab components itself
* pr small fixes
* saves file with timestamp
* send notification with correct filename
* fixes locales
* uses different approach for handling dialog save
* cleanup
* self review fixes
* adds lazy import for export dialog
* uses form API to save the dialog
* fixes imports (tab -> panel)
* uses react state for filename
* build fix
* handles form validation
* sanitizes file name
* removes redundant form layout
* fixes bug: allows to load tree root with useTreeData
* uses context api to resolve export script dialog instead of throwing errors approach
* dbeaver/pro#7880 do not show notification on local export
* dbeaver/pro#7880 remove notification from local export
---------
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
Co-authored-by: naumov <iamemptyhuh@gmail.com>
- Use Math.log10 instead of toString().length to count integer digits — toString() on a float
like 4036.29 has length 7, which incorrectly bucketed thousands-range values into millions
- Fix exponent formula for 3n-digit numbers (e.g. 100000 gave exponent=6→M instead of 3→k)
- Apply precision param d below 1000 (was hardcoded 2); default to 2
- Add formatNumber.test.ts
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
* dbeaver/pro#8236 adds submenus for the connection tree
* adds disabled state for submenu with no items
* removes variable
* loads first menus then draws it
* reverts submenu fix
* splits manage handlers from root handlers
* removes loader for manage menu to prevent bug
* cleanup
* removes action leaks for tables
* removes leak of the action delete
---------
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>
* dbeaver/pro#7251 feat: add skip navigation feature for improved accessibility
* dbeaver/pro#7251 refactor: replace direct import with lazy loading for SkipNavLinks and SkipNavShortcutsLink
* dbeaver/pro#7251 refactor: use css modules for skip nav styles
* dbeaver/pro#7251 refactor: remove SkipNavBootstrap
* dbeaver/pro#8572 fixes password validity on blur
* Revert "dbeaver/pro#8572 fixes password validity on blur"
This reverts commit cefd174254.
* adds context to the form for correct validation + handles validation on change also to keep the actual validity state
* adds context check to prevent validation inconsistent behavior
* adds revalidate to handle depended validations cases
* adds useFormCustomInputValidation
* cleanup
* uses useFormCustomInputValidation to avoid regression after refactor
* dbeaver/pro#8518 adds message for string parameters
* aligned message with dbeaver: "string values must be quoted"
* reverts branding and uses it optionally for bind parameters popup
* renames prop
* makes few versions of alert
* Revert "makes few versions of alert"
This reverts commit 5b9f09009e.
* adds gray message
* adds icon
---------
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
* dbeaver/pro#7023 feat: add SearchPanel component and related styles to UI-kit
add chevron Icon to UI-kit (used in Search Panel)
* dbeaver/pro#7023 feat: add SearchPanel story
* dbeaver/pro#7023 feat: update SearchPanel integration in CodeMirror
* dbeaver/pro#7023 feat: add onReplaceToggle prop to SearchPanel for toggle functionality
* dbeaver/pro#7023 fix: replace-input styles
* dbeaver/pro#7023 feat: implement search functionality in DataGrid v2
* dbeaver/pro#7023 fix: update react-data-grid workspace reference in yarn.lock
* dbeaver/pro#7023 feat: don't focus cell on replace
* dbeaver/pro#7023 feat: add searchReadOnly prop to DataGrid and GridSearchPanel components
* dbeaver/pro#7023 fix: update styles for search panel
* dbeaver/pro#7023 feat: add theme variables for improved styling in storybook
* dbeaver/pro#7023 feat: update search panel styles in datagrid
* dbeaver/pro#7023 feat: improve search functionality by resetting active match index and triggering search on find actions
* dbeaver/pro#7023 refactor: useGridSearch
* dbeaver/pro#7023 fix: search panel styles
* dbeaver/pro#7023 feat: implement grid search state management
* dbeaver/pro#7023 feat: add refresh functionality to search components
* dbeaver/pro#7023 feat: add history action to refresh search results on undo/redo
* dbeaver/pro#7023 feat: add batch cell update functionality to data grid
That functionality comes in handy when we want to use Undo and Replace All functions together:
Before that commit we used to perform N operations where N is a number of replaced cells. And history would record them as atomic operations, so pressing Undo would revert only the last replace.
setMany enables batch editing and batch reverting, so now we can Replace All and then revert it by using one Undo operation
* dbeaver/pro#7023 refactor: remove unnecessary eslint disable comment in useGridSearch
* dbeaver/pro#7023 feat: select affected cell on history change
* dbeaver/pro#7023 feat: add searchReadOnly prop to DataGridTable for conditional read-only state
* dbeaver/pro#7023 refactor: simplify isReadOnly logic in GridSearchPanel
* dbeaver/pro#7023 refactor: use constants for flags
* dbeaver/pro#7023 refactor: update focus and refresh methods in GridSearchPanel
* dbeaver/pro#7023 refactor: consolidate grid search state update logic
* dbeaver/pro#7023 refactor: update scrollToCell method signature and related usages
* dbeaver/pro#7023 refactor: update handleCellChangeBatch to use ICellChange type
* dbeaver/pro#7023 refactor: remove unwanted code
* dbeaver/pro#7023 feat: refactor search functionality to use standalone functions
* dbeaver/pro#7023 feat: implement useDataGridSearch hook to avoid bloating the DataGrid component with the search-related logic
* dbeaver/pro#7023 feat: update search functionality to use onReplace for cell value updates
* dbeaver/pro#7023 feat: use Activity component for search panel visibility in DataGrid
* dbeaver/pro#7023 refactor: use common value transformation fn in set and setMany methods
* dbeaver/pro#7023 refactor: rename methods for "unnkeyed" cache
* dbeaver/pro#7023 refactor: unify cell edit history handling and remove batch edit references
* dbeaver/pro#7023 fix: update searchReadOnly logic
* dbeaver/pro#7023 refactor: replace rowsCountRef with useState (Error: Cannot access refs during render)
* dbeaver/pro#7023 refactor: expose getCellClassName via useImperativeHandle
Replaced onCellClassNameChange prop + useEffect with useImperativeHandle as suggested in code review. Using useState setter directly as callback ref either caused infinite re-renders (without deps) or lost context synchronization entirely (with stable deps). Settled on useCallback ref that sets both useRef (for method access) and useState (for context propagation).
* dbeaver/pro#7023 fix: Cmd+F not re-focusing the search panel when already open
* dbeaver/pro#7023 refactor: cell edit history compression
* dbeaver/pro#7023 fix: refresh search state on revert
* dbeaver/pro#7023 refactor: move focus blocking during replace into grid component
Previously DataGridTable checked isReplacing() before syncing
focus/selection, leaking grid internals
Now the grid's selectCell blocks during replacing internally and
supports deferred mode (setTimeout + rAF) for post-render focus sync.
* dbeaver/pro#7023 refactor: restructure grid search logic with useReducer and improve state management
* dbeaver/pro#7023 refactor: improve grid search
moved ref synchronization out of render,
unified search+scroll into one shared path,
added a SET_MATCHES no-op guard to reduce unnecessary updates,
removed duplicate open=false persistence from useDataGridSearch (single owner now in useGridSearch).
* dbeaver/pro#7023 refactor: update search state types
* dbeaver/pro#7023 refactor: restructure grid search state interfaces for improved clarity
* dbeaver/pro#7023 refactor: optimize match retrieval logic after removal in grid search
* dbeaver/pro#7023 refactor: sync refs and computed props in one effect
* dbeaver/pro#7023 fix: Esc double handling between SearchPanel and CaptureView hotkeys
* dbeaver/pro#7023 refactor: fix review comments in useGridSearch
* dbeaver/pro#7023 refactor: unify hotkey stop propagation via shared EventContext/EventStopPropagationFlag
* dbeaver/pro#7023 refactor: pass reactive cellText to useGridSearch
* dbeaver/pro#7023 refactor: update grid search reducer actions and navigation logic
reuse SET_ACTIVE_MATCH and computeActiveMatchIdx for consistency
* dbeaver/pro#7023 refactor: improve equality check for cell matches
* dbeaver/pro#7023 feat: implement cell change tracking subscriptions and cleanup logic
* dbeaver/pro#7023 refactor: remove redundant clearTrackedCellSubscriptions
Cleanup implemented in useTrackedGridSearchCellSubscriptions hook
* dbeaver/pro#7023 fix: cancel stale deferred selectCell to prevent infinite focus loop
When multiple rows are deleted, competing deferred selectCell timeouts
cause focusSyncRef mismatch and endless focus-change cycle.
* dbeaver/pro#7023 fix: update keyboard shortcut for search to use 'KeyF'
* dbeaver/pro#7023 feat: make search disabled by default
* dbeaver/pro#7023 fix: layout
* dbeaver/pro#7023 fix: update scrollBox selection method in Table component
---------
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: Viktor Kirst <viktor.kirst@dbeaver.com>
Co-authored-by: sergeyteleshev <iamsergeyteleshev@gmail.com>
* dbeaver/pro#7566 feat: add settings functionality to the new tree
Implemented settings as a part of Toolbar. The key reason was that the TreeToolbar sets different contexts for all other actions related to tree and easily extendible as a menu service. It might limit in some weird cases, but for now it looks like a valid decision
Settings are made as unknown intentionally to be polymorphic. We could use Record<string, unknown> instead, but I don't see it really improving anything.
* dbeaver/pro#7566 refactor: introduce ITreeSettings interface
add filter with settings connection via useTreeFilterState hook
* dbeaver/pro#7566 refactor: remove redundant hooks, update ITreeSettings
* dbeaver/pro#7566 refactor: move actions to cloudbeaver part
* dbeaver/pro#7566 feat: add universal hook that persists any tree settings via UserDataService as a flat key-value record
* dbeaver/pro#7566 refactor: remove unused childrenTransformers and stateTransformers from ITreeFilterState
* dbeaver/pro#7566 feat: enhance tree settings functionality with replace method and user data synchronization
* dbeaver/pro#7566 refactor: remove toolbarFilter from ITreeFilterState interface
* dbeaver/pro#7566 refactor: simplify useUserTreeSettings
* dbeaver/pro#7566 fix: lint rule and defaults inconsistency
* dbeaver/pro#7566 fix: defaults
* dbeaver/pro#7566 fix: update Russian translations for navigation tree settings
---------
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
Co-authored-by: sergeyteleshev <iamsergeyteleshev@gmail.com>
* dbeaver/pro#8468 adds server is not available network error
* removes localization
* renames method for network state issues
* adds comment
* adds explanations for dev and prod mode errors
* supports multiple browser with network errors
* moves logic to a single method + reuses for events
---------
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
* dbeaver/pro#8068 fix: FormPart reload after save: race condition between loaded=false and savingPromise
Problem:
FormPart.save() sets loaded=false after successful save, expecting
useAutoLoad to call load() and reload data from server. However,
load() is blocked by formState.savingPromise guard (added recently in dbeaver/pro#8151, 9c406a4e1e),
which is only cleared later in FormState.save() finally block.
By the time savingPromise is cleared, no observable changes trigger
a React re-render, so useAutoLoad never retries — loaded stays false
forever and isChanged always returns false, permanently disabling
the Save button.
Solution:
Make FormPart.save() self-contained by adding an inline post-save
reload. After saveChanges(), set loaded=false (so setInitialState
resets both initialState and state), call loader() directly, then
set loaded=true. This eliminates the dependency on the external
useAutoLoad mechanism for post-save reload, avoiding the race
condition with savingPromise entirely.
* dbeaver/pro#8068 fix(Combobox): preserve custom value on Enter key press
When allowCustomValue is enabled, pressing Enter was selecting
an auto-highlighted item from the dropdown instead of keeping
the user's typed value. Disable autoSelect and close the popover
via Ariakit store on Enter to match the blur behavior.
* dbeaver/pro#8068 fix: after saveChanges(), reset state synchronously via setInitialState
* dbeaver/pro#8068 fix: remove redundant state loading in FormPart class
* dbeaver/pro#8068 feat: improve loadable state handling in useAutoLoad and FormPart
---------
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
* dbeaver/pro#8279 feat: rename CloudBeaver CE to CloudBeaver Community across multiple files
* dbeaver/pro#8279 ci: remove unused dependency
* dbeaver/pro#8279 feat: remove unnecessary description fields in plugin.xml and defaultServerConfig.ts
* dbeaver/pro#8279 feat: update copyright year and remove product description fields in multiple locale files
* dbeaver/pro#8279 feat: return product version back to Logo component
* dbeaver/pro#8279 fix: remove exclamation mark from easy config heading
---------
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
Initial translation of a menu led to a unwanted hover effect on a first item due to menu and trigger overlapping. Removing this property fixes the problem and the menu still has a nice animation effect, thanks to opacity and scale
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
* dbeaver/pro#8048 pass commit message validation
* fixes json + translations
* fixes gis generation
* uses format action to get text value for sql generators
* dbeaver/pro#4999 feat: add TableStatusIndicator component and update tooltips for key detection
* dbeaver/pro#4999 feat: update TableStatusIndicator to handle read-only connection state and improve tooltips
* dbeaver/pro#4999 feat: use new backend endpoint to provide info about identifier
* dbeaver/pro#4999 refactor: simplify TableStatusIndicator by removing props and using context directly
* dbeaver/pro#4999 refactor: move hasElementIdentifier to ResultSetDataSource
* pr fixes
* fixes indicator center position + removes duplicated translation
* fixes contrast for color-status (JSON edit row + keys indicator for tables)
---------
Co-authored-by: sergeyteleshev <iamsergeyteleshev@gmail.com>
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
* dbeaver/pro#6306 api for original query
* uses original query from backend for sql data source
* adds description for popup
* removes message
* fixes creating dataset from grouping panel
* adds new full query abstraction
* pr fixes
---------
Co-authored-by: sergeyteleshev <iamsergeyteleshev@gmail.com>
Co-authored-by: kseniaguzeeva <112612526+kseniaguzeeva@users.noreply.github.com>
* dbeaver/pro#8202 decreases border for radio buttons + matches border colors
* fixes checkboxes and radios space conflicts so it aligned on the left and has correct spacing with text also
* reverts margin top for checkboxes
---------
Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
* dbeaver/pro#7614 adds first implementation of grid history action (has bugs)
* some pr fixes
* replace last instead of update method
* adds history compression to cell edit
* add add row history for undo/redo
* adds history for delete row
* adds duplicate row undo/redo
* adds history for revert action
* clears history inside edit clear action
* refactors the undo/redo history to have more clean structure
* cleanup
* adds limits to history
* uses data viewer undo/redo actions
* cleanup for undo/redo actions + adds to the top of table icons
* applies tooltips for the header table only
* removes createEditorDataAccess (refactor)
* removes getPrevCellValue (refactor)
* bug fix: add row, change something, delete row, undo/redo in this history
* adds more specific function naming
* Revert "bug fix: add row, change something, delete row, undo/redo in this history"
This reverts commit 5f1799fe26.
* adds batching history to the adding/deleting operations
* refactors GridHistoryHandlers & GridEditAction API + fixes the bug with deleting added row
* handling edge cases
* cleanup
* pr fixes
* refactor: removes extra interfaces, uses addRow for duplication rows action, handlers cleanup
* refactors the code to split editor changes to private and edits, history & action executions to public methods
* Revert "refactors the code to split editor changes to private and edits, history & action executions to public methods"
This reverts commit 374201179a.
* refactor: removes duplications of the code
* cleanup
* fixes menu bar item tooltip
* fixes labels
* removes get action info
* hides undo/redo for readonly table action
---------
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
* dbeaver/pro#7626 bumps yarn locks
* updates globals
* bumps subscript major version
* bumps react-data-grid
* fixes react-data-grid checksum
* bumps yarn.lock
* reverts 'true' & 'false' literals for ObjectPropertyInfo
* reverts subscript to ver v9 due to poor v10 library support (it is not working api)
---------
Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
* dbeaver/pro#7555 adds autocomplete on tab + refactors shortcuts api
* adds unit tests for getCommonAndOSSpecificKeys
* uses prec.high to give some space to overriding shortcuts
* reverts keysWin + fixes the tests
* pr fixes
* adds escape editor shortcut to the shortcuts helper
* shows only 1 shortcut for autocomplete + shows os specific keys first in help doc
* fixes shortcuts so no repeats applied
---------
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
* dbeaver/pro#7772 adds truncated tooltips for context menus
* dbeaver/pro#7772 adds " ... " for long labels
* adds unit tests
* Update webapp/packages/core-blocks/src/Menu/MenuItemElement.tsx
Co-authored-by: Alexey Potsetsuev <wrouds@gmail.com>
* adds binding for delete row
* removes tooltips
* fixes tree filters clipping
* clips only names, not whole labels
* clips only names, not whole labels [2]
* reverts getBindingLabels + fixes the os specific keys to show it first
* clips only names, not whole labels [3]
* dbeaver/pro#7772 simplifies keys helpers logic
---------
Co-authored-by: Alexey Potsetsuev <wrouds@gmail.com>
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
* dbeaver/pro#7855 feat: Add setting to use the user's OS formatting for numbers and dates
* dbeaver/pro#7855 refactor: update OS formatting option value in DataGridSettingsService
* dbeaver/pro#7855 feat: implement OS formatting for date and time in DataGrid
* dbeaver/pro#7855 feat: implement user-specific formatting for numbers in DataGrid
* dbeaver/pro#7855 feat: add translations
* dbeaver/pro#7855 style: update date formatter
* dbeaver/pro#7855 feat: add locale-specific formatting options for DataGrid settings
* dbeaver/pro#7855 feat: add support for locale-specific formatting with regions
* dbeaver/pro#7855 refactor: move date type detection to the grid level
* dbeaver/pro#7855 refactor: simplify cell formatter selection logic
* dbeaver/pro#7855 refactor: move formatting to a separate context
* dbeaver/pro#7855 refactor: optimize extended date kind retrieval logic
* dbeaver/pro#7855 fix: tw class names
* dbeaver/pro#7855 refactor: change caching mechanism and other improvements
---------
Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
* dbeaver/pro#7025 moves shortcuts for data editor to plugin-data-viewer and reuses it in shortcuts helper plugin
* adds save binding to data editor
* adds cancel shortcut
* changes save shortcut
* dbeaver/pro#7025 change binding key
* uses mod+. shortcut for cancel action (data editor)
* Revert "uses mod+. shortcut for cancel action (data editor)"
This reverts commit c5b375c2cf.
* adds mod+. shortcut for cancel
* adds shortcut for mac for deleting row in table
---------
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
Co-authored-by: naumov <iamemptyhuh@gmail.com>
* dbeaver/pro#5232 feat: add Dialog component to UI-kit
* dbeaver/pro#5232 feat: add slide variant for Dialog component
* dbeaver/pro#5232 refactor: dialog backdrop component
* dbeaver/pro#5232 feat: use dialog component for side panel to prevent focus escaping
* dbeaver/pro#5232 feat: add DialogHeader, DialogBody, and DialogFooter components for improved dialog layout
* dbeaver/pro#5232 feat: add Storysource addon to Storybook configuration
* dbeaver/pro#5232 refactor: use ui-kit dialog for CommonDialog implementation
* dbeaver/pro#5232 feat: add animated prop to Dialog component to control animations
* dbeaver/pro#5232 refactor: remove dialog animation for side panel
* dbeaver/pro#5232 refactor: remove unused backdrop and focus management logic from DialogsPortal
now handled by ariakit dialog component
* dbeaver/pro#5232 style: adjust dialog padding and size for large variant
* dbeaver/pro#5232 feat: add dialog to admin part implementation
* dbeaver/pro#5232 fix: remove autofocus prop from CommonDialogWrapper in AuthDialog and DriverSelectorDialog
* dbeaver/pro#5232 style: correct apostrophe in label text for NestedDialogs component
* dbeaver/pro#5232 fix: update dialog component styles for improved accessibility and layout
* dbeaver/pro#5232 refactor: add DialogElement component to get rid of code duplication
* dbeaver/pro#5232 fix: correct min-width for large fixedWidth dialog size
* dbeaver/pro#5232 refactor: update DialogElement properties for improved focus management
* dbeaver/pro#5232 fix: use l10n for DialogElement close buttons
* dbeaver/pro#5232 refactor: update DialogElement to be a modal to trap focus
* dbeaver/pro#5232 refactor: remove unmountOnHide prop from CommonDialogWrapper
* dbeaver/pro#5232 feat: return ESC hotkey handling in SlideBox
* dbeaver/pro#5232 feat: make background panel inert to make focus never reach hidden panel
* dbeaver/pro#5232 feat: add SlidePanel component to replace DialogElement by removing Dialog
* dbeaver/pro#5232 feat: add inert prop to SlideElement for focus trapping in visible part
* dbeaver/pro#5232 feat: pass onClose handler to SlideBox to activate hotkey
* dbeaver/pro#5232 style: return to initial state to avoid redundant diffs
* dbeaver/pro#5232 style: update copyright year in SlideElement.module.css
* dbeaver/pro#5232 chore: remove ui-kit dependency from package.json and tsconfig.json
* dbeaver/pro#5232 build: update @storybook/addon-storysource dependency version
* dbeaver/pro#5232 build: update @storybook/addon-storysource dependency version
* dbeaver/pro#5232 style: remove border styles from dialog header and footer
* dbeaver/pro#5232 fix: update hover background color for icon button
* dbeaver/pro#5232 feat: move focus from driver dialog to panel when applicable
* dbeaver/pro#6326 fix: large window size
* dbeaver/pro#5232 fix: update focus on hide logic
* dbeaver/pro#5232 fix: update hover and focus styles for icon button in SlidePanel
* dbeaver/pro#5232 feat: return back the common backdrop, replace common fallback to spinner
* dbeaver/pro#5232 fix: replace useFocus by dialog's initial focus in Rename dialog
* dbeaver/pro#5232 build: update deps after merge
* dbeaver/pro#5232 refactor: use constant for button id
* dbeaver/pro#5232 feat: add Loader component to DialogsPortal
* dbeaver/pro#5232 refactor: update Dialog component to use semantic HTML elements for header and footer
* dbeaver/pro#5232 fix: gap in footer of dialogs
* dbeaver/pro#5232 feat: focus input initially in New Folder dialog
* dbeaver/pro#5232 feat: add autoFocusOnShow prop to CommonDialogWrapper for improved focus management
* dbeaver/pro#5232 fix: padding for CommonDialogFooter
---------
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: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
* dbeaver/pro#7798 fix: remove unwanted wrapper and relevant CSS module
* dbeaver/pro#7798 feat: add refresh action to user administration tools menu
* dbeaver/pro#7798 fix: add loader to context menu rendering
The menu was failing to open on first click due to lazy-loaded custom items (ContextMenuSearchItem) suspending the entire top navigation bar on initial load, causing portal recreation and loss of open state. Wrapped menu items in a local Loader to ensure lazy components load within the popover without affecting the parent component.
* dbeaver/pro#7798 fix: use suspense for each renderMenuItem
* dbeaver/pro#7798 refactor: simplify orderItems method in CreateUserBootstrap
* dbeaver/pro#7798 fix: fix menuBarItem styles
* dbeaver/pro#7798 refactor: update CreateUserBootstrap to include AdministrationScreenService
---------
Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
* dbeaver/pro#7564 feat: add selectChildren option to tree selection API
* dbeaver/pro#7564 feat: add node multi selection API to the new tree component
* dbeaver/pro#7564 feat: add new selection type
* dbeaver/pro#7564 refactor: remove getSelectedNodes method from tree selection interfaces
* dbeaver/pro#7564 fix: update selection clearing logic in useTreeClickSelection to avoid multiple callback calls
* dbeaver/pro#7564 refactor: optimize node collection in collectVisibleNodes function
* dbeaver/pro#7564 refactor: simplify selection handling logic in Node component
* dbeaver/pro#7564 refactor: streamline selection state handling in useTreeClickSelection
* dbeaver/pro#7564 refactor: replace inline default selection state with constant
* dbeaver/pro#7564 refactor: replace default node selection constant with a function
---------
Co-authored-by: sergeyteleshev <iamsergeyteleshev@gmail.com>
* dbeaver/pro#7667 feat: add tree toolbar functionality to new tree
* dbeaver/pro#7667 refactor: remove unused ITreeSelection import and selection property from ITreeToolbar
* dbeaver/pro#7667 refactor: remove autoFocus from Filter component
* dbeaver/pro#7667 refactor: move onClick handler from Icon to IconButton
* dbeaver/pro#7667 refactor: add className prop to TreeToolbarMenu component
* dbeaver/pro#7667 feat: implement new navigation tree toolbar using composition and data context
* dbeaver/pro#7667 feat: update toolbar menu localization files
* dbeaver/pro#7667 refactor: navigation tree components to use lazy loading and improve type definitions
* dbeaver/pro#7667 refactor: restructure Tree component removing extra wrapper
* dbeaver/pro#7667 refactor: update treeToolbarActionHandler to use async/await for refresh actions
* dbeaver/pro#7667 refactor: remove undefined type from data context creation
* dbeaver/pro#7667 fix: restructure Tree component to fix Toolbar with scroll
---------
Co-authored-by: sergeyteleshev <iamsergeyteleshev@gmail.com>
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
* dbeaver/pro#6859 adds pin/unpin methods for data grid
* resets state when pins + makes pin icon stay when pinned
* adds TableHeaderCellIcon component with new Menu
* make actions alive
* cleanup
* moves pin logic into data-viewer
* cleanup
* restructures pin logic via contexts
* cleanup
* synchronizes column ids with view ids so pining works fine
* fixes actions visibility
* fix: correct layout on editing frozen cell
* fixes layout so frozen cell box-shadow can divide pinned and unpinned columns
* fixes border and box shadow interactions for frozen and editing cell
* makes pinned columns non transparent
* makes frozen border 3px and reverts previous style changes
* styles cleanup
* adds column true and visual indexes and reuses it across the data grid features
* cleanup
* reverts removed code
* reverts hacks with ids
* dbeaver/pro#7748 updates yarn.locks
* fixes incorrect types
* updates helper libs
* updates vitest + fixes test cases incorrect mocks
* runs tests sequentially with document and windows objects to prevent mock collisions
* Revert "runs tests sequentially with document and windows objects to prevent mock collisions"
This reverts commit f871837df3.
* skips download test
* removes export from resetDeprecatedSettings
* updates react-data-grid to beta-59 and react to 19.2
* updates storybook
* pr fixes
* updates yarn lock
* removes skip for download test
* cleanups download ts with empty body html
* updates vitest for core-connections
* updates yarn.lock
* linter fix + mocks once
* fixes hotkeys
* reverts version of react-hotkeys-hook library
* pr fixes
* code style fix
* dbeaver/pro#6859 adds selectCellByKey for opening editor
* reverts styles
* adds pin/unpin icons
* Revert "reverts styles"
This reverts commit 7857ef672d.
* on add actions sets correct focus
* removes incorrect positioning when editing pinned column
* tunes dark theme colors
* adds DnD to pin/unpin feature
* pr fixes
* fixes multiple selections for pinned & unpinned columns
* refactors multiple selections for pinned & unpinned columns so it uses data-grid api of getting sorted columns
* moves pin logic to usePinnedColumns hook
* moves color styles into data grid
* fixes letter
* adds styles for pinned border only for data editor
* adds unpin all columns action
* moves pinned logic to grid view action to save pinned state between tabs
---------
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: Sychev Andrey <44414066+SychevAndrey@users.noreply.github.com>
* dbeaver/pro#7570 adds highlight for text spaces and new line
* refactors + changes colors
* allows to add props to extensions
* pointer events none for new line
* do not show enter symbol if line has no whitespaces below this line
* removes highlightTrailingWhitespace so the red background disappears
---------
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
Co-authored-by: Sychev Andrey <44414066+SychevAndrey@users.noreply.github.com>
* dbeaver/pro#7465 refactor: migrate context menu to ariakit
* refactor: remove unused modal prop from ContextMenu and clean up schema name handling
* chore: add memoization to the base context menu components
* fix: menu issues
---------
Co-authored-by: sergeyteleshev <iamsergeyteleshev@gmail.com>
* dbeaver/pro#6962 refactor: replace complex loader with-simple solution
* refactor: simplify function declarations in createLazyLoader
* fix: ensure notify is called after loading state updates in createLazyLoader
---------
Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
* dbeaver/pro#7554 adds translation for order button
* moves translate context to render app level + adds 2 translations for the sorting with the flag
* cleanup
* linter fix
* pr fixes
---------
Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
* dbeaver/pro#7041 replaces uikit input with core-blocks InputField for PropertyItem (connection driver properties)
* uses Input from ui-kit for react-data-grid from common-react
* separates Input and InputField logic so we can reuse Input somewhere else
* uses input from core-blocks in search panel
* uses input from core-blocks inside fetch size action
* removes hover styles if input is focused
* adds Input to inline editor
* removes style registries
* replaces module styles with css layers api
* cleanup
* calcs padding from spacing
* reverts input field base
* reverts input fields base 2
* fixes styles for inline editor and fetch size action
* fixes outline for inputs
* fixes hover styles for combobox so it matches input hover behavior
---------
Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
* dbeaver/pro#6480 checks if nodes parents loaded to verify if some entities are missing
* fixes linter await issues
* uses offset pagination key to check if all parents were loaded
* adds isNodeLoadedInAnyPage logic
* reverts all changes
* adds hasMorePagesForRootNode logic
* linter fix
* checks if parent has more data for each closest parent (not just a root one) + renames helper
* renames helper to sound shorter
* build fix
---------
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
* dbeaver/pro#7442 Add Long-Polling transport support for event manager
* dbeaver/pro#7442 Inline headless-session creation in LongPolling servlet
* dbeaver/pro#7442 Improve long-poll session resolution and add unit tests
* dbeaver/pro#7442 Expose resolveSession for testing and remove reflection in tests
* dbeaver/pro#7442 Add copyright
* dbeaver/pro#7442 Improve long-poll CORS and interrupt handling
* dbeaver/pro#7413 feat: add Disclosure component to UI Kit
* dbeaver/pro#7413 feat: implement new disclosure component in CB with proper outline support and animations
* dbeaver/pro#7413 style: update disclosure gap to use tw spacing
* dbeaver/pro#7413 refactor: add Disclosure component story to Storybook (remove from ladle)
* dbeaver/pro#7413 refactor: update class names for disclosure components in Expandable
* dbeaver/pro#7413 feat: disable transitions for reduced motion preference
* dbeaver/pro#7413 refactor: convert arrow function to named function in Expandable component
* dbeaver/pro#7413 refactor: simplify media query for reduced motion transitions
---------
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
Co-authored-by: sergeyteleshev <iamsergeyteleshev@gmail.com>
* dbeaver/pro#6724 feat: add authentication model label to connection form
* dbeaver/pro#6724 refactor: change interface in StaticImage component to pass native props to provide a11y properties
* dbeaver/pro#6724 fix: add role attribute for icons in Driver selector
Those driver icons are not adding any meaning to the list items, so we can easily hide them from a11y tools.
* dbeaver/pro#6724 refactor: rename autofillToken to autocompleteSectionName and update related logic in forms
We used to have autocomplete parameters that do not meet specifications of HTML Input Autocomplete attribute.
We can't use any string there, there are list of tokens that browsers support: https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#autofill plus two global states: "on" and "off".
Logic was refactored to use section token + username or current password tokens fo form where we provide auth details.
All other inputs use just general "on" state to let browsers decide how to fill this field, except cases where we disable password autocompletion.
also fixes a typo
* dbeaver/pro#6724 fix: don't turn on autocomplete if disabled
---------
Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
* dbeaver/pro#4583 feat: add tab reordering functionality in NavigationTabsService
* dbeaver/pro#4583 feat: update tab filtering to support tabs order
* dbeaver/pro#4583 feat: add tab drag-and-drop functionality and associated tests
* dbeaver/pro#4583 feat: implement tab drag-and-drop functionality
* dbeaver/pro#4583 fix: adjust tab reordering logic to handle dragged tab position correctly
since our reordering logic is duplicating in two components and, moreover, I found a bug in one of the implementations, I decided to put all the common logic to a dedicated helper with test coverage to be sure we use the right logic everywhere.
* dbeaver/pro#4583 test: remove redundant tests for onReorder in useTabDragAndDrop
* dbeaver/pro#4583 refactor: update reorderTab method to remove return value
* dbeaver/pro#4583 feat: add tab reordering functionality to SqlResultTabs component
* dbeaver/pro#4583 feat: add tabs order persistence via useUserData hook
* dbeaver/pro#4583 feat: integrate react-dnd for tab drag-and-drop functionality
* dbeaver/pro#4583 chore: update deps
* dbeaver/pro#4583 feat: integrate @dbeaver/js-helpers for array reordering in useHeaderDnD
* dbeaver/pro#4583 refactor: simplify reorderArray implementation by extracting some logic to helpers
* dbeaver/pro#4583 refactor: extracted tab reordering to a separate hook
- moved the tab order persistence logic into a new useTabOrderPersistence hook to make the flow is more obvious (we use this default persistence only with tabs container)
- introduced new reorderStateKey tab state to have an identifier for a tab panel, use it in canDrop check to prevent cross-panel DnD
-replaced reorderable prop with reorderStateKey, because without a key you can't use reordering
* dbeaver/pro#4583 refactor: add dropAllowed state to useTabDragAndDrop for improved drag-and-drop UI
* dbeaver/pro#4583 chore: add a comment about reorderStateKey
* dbeaver/pro#4583 refactor: add safe guard in SqlResultTabs.tsx
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* dbeaver/pro#4583 refactor: wrap onReorder function into useCallback for improved performance
* dbeaver/pro#4583 refactor: remove applyOrder method from ITabsContainer and update useTabOrderPersistence to not have dependencies on container
* dbeaver/pro#4583 refactor: use refactored hook in SideBarPanel and ToolsPanel
Since we are not mutating a container state anymore, we have to update sorting separately in TabList level because it reads directly from the container.
* dbeaver/pro#4583 refactor: remove fallback for stateKey
* dbeaver/pro#4583 refactor: replace hardcoded values with constants in useTabDragAndDrop
* dbeaver/pro#4583 refactor: add DragPosition type
* dbeaver/pro#4583 refactor: remove dependencies in TabsState effect
* dbeaver/pro#4583 refactor: remove stateKey from useTab hook
* dbeaver/pro#4583 feat: add panelId prop to SideBarPanel and use as persistence key
* dbeaver/pro#4583 refactor: persistence key in useTabOrderPersistence
* dbeaver/pro#4583 feat: add reorderArrayWithOrder helper and update SqlResultTabs to use it
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.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>
* dbeaver/pro#7549 refactor: adjust padding and color for disabled select state to unify view between disabled controls
unify icon view as well
* dbeaver/pro#7549 style: fix if clause
* dbeaver/pro#5085 sorts users alphabetically + shows new users on top
* reverts sorting for enabled and disabled users (required backend to sort properly)
* cleanup
* removes repetitive filters and sorting
* simplifies users logic + user.createdAt is number type
* refactor: sortUsersById -> compareUsers
* compare new users
---------
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
* dbeaver/pro#7480 fix: preloads only connection info by key (not all) to prevent connectioInfoResource loading of all data and all following handlers actions
* adds console error and return empty array for origin info loader
* warning instead of error
* dbeaver/pro#5078 adds chart export
* adds ExportImageDialog and reuses it across the app
* uses canvas2html for downloading images
* Revert "uses canvas2html for downloading images"
This reverts commit b59374cf85.
* moves transformClassesToStyles to helpers
* transforms styling attributes to computed styles
* adds file name
* fixes translations
* fixes styles for png image so it do not exports in black&white mode with incorrect sizing
* fixes styles for svg export
* uses domToImage library to save chart with legend
* cleanup
* moves helpers back to d3js diagrams
* cleanup
* uses html-to-image instead of dom-to-image
* cleanup
* pr fixes
* replaces the lib
* fixes svg so it is not blur
* validation for image urls
* cleanup
---------
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
The problem was that In ReactCodemirror, the updateListener calls onChange whenever the document changes and it's not marked as a remote transaction, but in value panel, when we switch changes, the new value coming to the panel was considered as the user change.
So, update listener were calling onChange from TextValuePresentation which calls editAction.set() and changes the real cell value.
In order to fix it, this commit mark programmatic updates by dispatching transaction annotations together with a change.
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
* dbeaver/pro#6026 feat: merge value panel tabs in one group
move all text representations to the first tab level
specific representation is used if present (boolean, image)
auto type detection is used only for text
* dbeaver/pro#6026 refactor: remove unused CSS files for TextValuePresentation
* dbeaver/pro#6026 refactor: remove automatic state update in ValuePanel component
* dbeaver/pro#6026 refactor: update content type handling in ValuePanel
Move all the content type determination logic into the hook
Simplify the component
* dbeaver/pro#6026 refactor: consolidate content type handling in useAutoContentType hook
* dbeaver/pro#6026 fix: show scroll on tabs in value panel when overflow
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 our [WIKI](https://github.com/dbeaver/cloudbeaver/wiki) for more details.
- Autocomplete values in SQL Editor are ordered alphabetically to simplify object search.
- "Show all databases" setting was added on the connection page for MySQL and MariaDB.
- Different bug fixes and enhancements have been made.
### 26.1.4 2026-08-03
### 25.2.0 2025-09-01
### Changes since 25.1.0:
- Administration:
- Added support for multiple server URLs to accommodate different access policies for internal and external users, improving flexibility in network-restricted environments. To set it up, use the Allowed Server URLs field in the Server configuration within the Administration section;
- Added the Force HTTPS mode setting in Server Configuration to enforce redirecting from HTTP to HTTPS. This setting helps avoid a potential man-in-the-middle attack. This setting is turned off by default. Please remember to configure your proxy before enabling;
- Added the CLOUDBEAVER_BIND_SESSION_TO_IP option to improve session security by linking user sessions to their IP address. It is disabled by default. When enabled, this helps protect against certain types of session hijacking attacks, where an attacker could try to take over a user’s session. Note: Users will be logged out automatically on the IP address change (switching networks or using mobile data);
- A password confirmation field has been added for administrators in the Easy Config section to prevent accidental misconfigurations.
- SQL Editor:
- Changed the default engine used for autocompletion in the SQL Editor. This Semantic engine offers improved suggestions for database objects, keywords, and functions. You can switch back to the Legacy engine in Preferences > SQL Editor;
- A “Clear” button was added to the output panel.
- Data Editor:
- Column descriptions were added in the Data Editor under column names to provide more metadata context. You can disable this in Preferences > Data Viewer;
- Added an ability to review the script before execution when users edit tables without primary keys.
- AI Assistant:
- Added AI Chat to help users generate and fix queries and explore data more easily. It’s integrated with the SQL Editor to run generated queries instantly. Access it from the top toolbar. All AI features can be turned off in the Server configuration.
- Added the option to configure AI profiles in the Administration panel, usable in the AI Chat and for the @ai command in the SQL Editor. Both OpenAI and Copilot engines can be utilized for configuration.
- Connectivity:
- Resolved the issue where the application could no longer connect to the database after running for an extended period.
- Resolved the issue where user connection settings required re-login in a new session to apply their changes.
- Accessibility:
- Added a loader to the Save button in the Administration panel for visualizing the loading process.
- Improved drag-and-drop in the Navigator Tree for objects by enlarging the auto-scroll trigger areas.
- General:
- Added a new welcome screen for a freshly opened application. This screen contains shortcuts to create a new connection, open SQL Editor, or documentation;
- Added a search panel for SQL Editor and Value panel: press Ctrl/Cmd + F to open a panel that allows searching and replacing by keyword or regular expression;
- Changed the data transfer mechanism to avoid intermediate file creation. The parameter dataExportFileSizeLimit was removed from the server configuration as deprecated;
- The CloudBeaver default theme matches the device theme by default now. You can change this behavior in user preferences under the Theme section;
- Added the option to display tabs across multiple rows, allowing you to see all tabs without scrolling. You can enable this in Preferences > Interface;
- Improved dark theme accessibility by enhancing color contrast across the app for better readability and compliance with accessibility standards;
- The database navigator now automatically hides empty folders in shared projects, reducing visual clutter and speeding up the process of finding active connections.
- Added the ability to export generated SQL to a .sql file from the Generate SQL dialog.
- Improved "Open in SQL Editor" behavior by preserving the source table context for the Generate SQL dialog.
- Fixed synchronization between instances eliminates the need to refresh to see the updated connection or folder in another instance.
- Security:
- Added a new "Auto-create users" setting for the reverse proxy provider, allowing new user creation on login. It is enabled by default.
- Updated the PostgreSQL JDBC driver to version 42.7.13, including a fix for a high-severity security vulnerability (CVE-2026-54291).
- Fixed the critical vulnerability (CVE-2026-59873) in the tar library. The library was updated to version 7.5.19.
- Fixed the high vulnerability (CVE-2026-10050) in the jetty-security library. The library was updated to version 12.1.11.
- Fixed the high vulnerability (CVE-2026-14257) in the brace-expansion library. The library was updated to version 5.0.8.
- Fixed the high vulnerability (GHSA-r28c-9q8g-f849) in the postcss library. The library was updated to version 8.5.18.
- Fixed the high vulnerability (GHSA-pm4m-ph32-ghv5) in the js-yaml library. The library was updated to version 5.2.2.
- Fixed the high vulnerability (CVE-2026-59880) in the immutable library. The library was updated to version 5.1.8.
- Fixed the high vulnerability (CVE-2026-59879) in the fast-uri library. The library was updated to version 3.1.3.
- Fixed the high vulnerability (CVE-2026-13311) in the shell-quote library. The library was updated to version 1.9.0.
- Fixed the high vulnerability (GHSA-gcfj-64vw-6mp9) in the axios library. The library was updated to version 1.18.0.
- Databases and drivers:
- Clickhouse: fixed the presentation of tuples and map data types in the Data Editor;
- Databend database support has been added (thanks to @hantmac);
- DuckDB: driver has been updated to version 1.3;
- MySQL: Improved performance when retrieving foreign keys metadata;
- PostgreSQL: fixed misplaced comment for table DDL generation.
- ClickHouse
- The driver was updated to version 0.10.0.
- Improved JSON display in the Value panel.
- MySQL: Fixed support for comments starting with '#' symbol in the SQL Editor.
- PostgreSQL:
- The driver was updated to version 42.7.13.
- Fixed an error that occurred when applying filters to database nodes.
- Fixed generated calls for procedures with OUT parameters.
## Contribution
As a community-driven open-source project, we warmly welcome contributions through GitHub pull requests.
### 26.1.3 2026-07-20
[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 25.2.0 was made by:
1. [hantmac](https://github.com/hantmac) - added support for Databend in CloudBeaver Community Edition.
- Data Editor:
- Fixed copying of large JSON values in the Data Editor - now the full value can be copied and transferred.
- Updated the Reference panel to show only relevant rows when a foreign key is null.
- General:
- Added connection types to visually distinguish database environments using background colors across the Database Navigator and application UI. Users with edit permissions can assign built-in environment types color-coded configurations.
- Data Transfer:
- Improved memory usage when importing large CSV files.
- Fixed CSV export with multi-character quotes and improved quote/delimiter validation
- Accessibility:
- Enabled the use of the Enter or space keys to toggle checkboxes in the administration tabs and the metadata viewer.
- Added the ability to expand and collapse code block elements, including JSON, using the keyboard.
- Fixed shortcuts behavior for AZERTY keyboards. Now shortcuts like Ctrl/Cmd + Z work correctly.
- Security:
- Resolved an authorization vulnerability when testing connections by enforcing strict permission checks. This mitigation prevented unauthenticated users from exploiting JDBC requests to read arbitrary server files.
- Resolved an LDAP injection vulnerability by properly escaping user input in the authentication username field, preventing attackers from manipulating search filters, bypassing access restrictions, and enumerating directory users.
- Fixed the high vulnerability (GHSA-gv7w-rqvm-qjhr) in the esbuild library. The library was updated to version 0.28.1.
- Fixed the high vulnerability (CVE-2026-12143) in the form-data library. The library was updated to version 4.0.6.
- Databases and drivers:
- The Databend driver was updated to version 0.4.8.
- Fixed an issue related to the display of metadata in the navigation tree for DB2, Firebird, and MySQL.
### 26.1.2 2026-07-06
- Data Editor:
- Added the References panel showing related records from other tables connected by foreign keys. It helps to explore table relationships directly in the Data editor.
- Resolved an issue where the Data Editor ignored the text preview's maximum length quota. Increasing this quota now enables the ability to edit large values.
- General:
- Added the Last Login time to the user form and the user table in the administration part.
- Fixed the bug with the inability to select entered text in the Find and Replace panel in editors.
- Accessibility:
- Added the ability to use the Enter or Space key to turn checkboxes on/off in the connection properties tab.
- Security:
- Fixed CVE-2026-55449. Resolved a local file disclosure vulnerability by enforcing strict validation of file identifiers and path containment during data updates.
- Updated session handling to prevent session fixation vulnerabilities. The application generates new session identifiers upon login.
- Fixed the high vulnerability (CVE-2026-12151) in the undici library. The library was updated to version 6.27.0.
### 26.1.1 2026-06-22
- General: Added a "Project Info" tab containing the project description to the project context menu.
- Security:
- Fixed a cross-site scripting vulnerability caused by unsanitized user input in the web interface.
- Resolved a security flaw related to user-controlled file paths by adding strict validation to prevent unauthorized resource access.
- Fixed the critical vulnerability (CVE-2026-9277) in the shell-quote library (updated to version 1.8.4).
### 26.1.0 2026-06-01
### Changes since 26.0.0:
- Administration:
- Added support for custom startup arguments when running CloudBeaver in a container. Administrators can specify configuration file locations to adapt the application to their environment. (thanks to @MalteHei)
- Updated the manifest.webmanifest file to generate dynamically based on the CLOUDBEAVER_ROOT_URI environment variable. (thanks to @houssemexo26)
- Authorization:
- Added HTTP header authentication support for GraphQL queries. Users can provide API tokens via Authorization or X-Api-Key headers, allowing external data tools to authenticate without modifying request bodies.
- Fixed a bug in the authentication form: the existing password is now required for password changes.
- SQL Editor:
- Updated the SQL Editor to use real tab characters for indentation. The application displayed tabs as four-space gaps with a distinct visual marker.
- Added an ability to view and edit scripts without connecting to the database.
- Added the ability to open generated queries right from the Generate SQL window.
- Added fuzzy search to SQL Editor auto-completion for object names. The feature allows users to find tables and containers even with typos or incorrect letter ordering.
- Added the tooltip about quoting rules for the Bind variables parameters dialog.
- Fixed keyword autocompletion for partially typed keywords to avoid redundant letters.
- Data Editor:
- Added the ability to copy-paste multiple cells at once. Pasted values will be distributed across selected cells.
- Added an ability to add, duplicate, delete, or set values to NULL in multiple highlighted rows via the Data Editor context menu.
- Added the Find and Replace functionality for the Data Editor with the ability to find data by matching case, whole word, or using regular expressions.
- Data Editor started to keep the state of column configurations, such as filters, sorting, and ordering, after the reconnect, page refresh, and re-login.
- Added key column mark for tables with unique keys in the data grid.
- Added more settings to the Generated SQL window, including the ability to select fully qualified names for query or use compact SQL formatting.
- Added a DDL generation option to the Data Editor and Result Set context menu.
- Fixed copy and paste behavior for multiline and special characters in the Data Editor. Added visual glyphs to indicate line breaks and tabs in the data grid.
- Fixed the ability to copy Boolean values in the clipboard in the Data Editor.
- Fixed the ability to calculate row count for non-standard SELECT statements. (thanks to @fdcastel)
- Navigator tree:
- Reorganized the context menu on the connection level to make it more compact.
- Added support for special symbols (pipe, comma, and asterisk) for the search field.
- Removed the "Folders" setting from the settings list for the Navigator Tree.
- Accessibility:
- Added the Skip to content option for quick keyboard access to the Navigator Tree, editors, and shortcuts list tab to improve application accessibility.
- Improved keyboard navigation for context menu and buttons for Data Editor, SQL Editor, and Navigator tree.
- Added the Ctrl + / keyboard shortcut to open the context menu for selected cells in the Data Editor.
- Fixed the ability to switch tabs in the Data Editor using the keyboard.
- Fixed contrast for elements across different application parts in the light and dark themes to meet WCAG requirements.
- General:
- Marked icons for non-saved (temporary) scripts with the hourglass symbol to add visual distinction from the saved ones.
- Added the ability to set to NULL any value in the Driver Properties.
- Fixed custom driver properties display for the connection page.
- Fixed data export in SQL format for values containing single quotes.
- Databases and drivers:
- ClickHouse:
- Fixed the display of Array(JSON) types in the data grid.
- Updated driver version to 0.9.7.
- Fixed IP address display in the Data Editor by removing the leading slash.
- Added support for the "prompt=false" connection property for DB2 for IBM i to turn off interactive prompts and prevent related errors.
- DuckDB:
- Fixed map rendering for GEOMETRY types with CRS parameters.
- Fixed geometry type display for database versions > 1.5.
- H2 database:
- Added new embedded driver version 2.4.2.
- Updated server driver to version 2.4.2.
- Firebird: Expanded database-specific SQL dialect coverage for the SQL Editor. Added more keywords, built-in functions, and SQL generators.
- MySQL: Fixed query boundaries recognition in the SQL Editor for scripts with the DELIMITER keyword.
- PostgreSQL:
- Updated driver to version 42.7.11
- Fixed missing INOUT parameters in CHECK generation for procedures and functions.
- Fixed handling of 24:xx values in time columns.
- Fixed an error when connecting via URL if the database name contains a hyphen.
- SQL Server:
- Fixed DDL generation for external tables.
- Fixed the database connectivity issue after the Java update.
- Security:
- Added an administrative setting to restrict SSH tunneling capabilities. Administrators can now limit tunnel configuration to authorized users, reducing the risk of unauthorized network access.
- Fixed the critical vulnerability (CVE-2025-62718) in the axios library. The library was updated to version 1.15.0.
- Fixed the high vulnerability (CVE-2026-4800) in the lodash library. The library was updated to version 4.18.0.
- Fixed the high vulnerability (CVE-2026-39363) in the vite library. The library was updated to version 7.3.2.
- Fixed the high vulnerability (CVE-2026-42035) in the axios library. The library was updated to version 1.15.1.
- Fixed the high vulnerability (CVE-2026-3505) in the bcpg-jdk18on library. The library was updated to version 1.84.0.
- Fixed the high vulnerability (CVE-2026-33671) in the picomatch library. The library was updated to version 2.3.2.
- Fixed the high vulnerability (CVE-2026-33943) in the happy-dom library. The library was updated to version 20.8.8.
- Fixed the high vulnerability (CVE-2025-45141) in the tar library. The library was updated to version 7.5.11.
- Fixed the high vulnerability (CVE-2026-27148) in the storybook library. The library was updated to version 10.2.10.
- Fixed the high vulnerability (CVE-2026-27606) in the rollup library. The library was updated to version 4.59.0.
- Fixed the high vulnerability (CVE-2026-27904) in the minimatch library. The library was updated to version 3.1.3.
- Fixed the high vulnerability (CVE-2026-27959) in the koa library. The library was updated to version 2.16.4.
- Fixed the high vulnerability (CVE-2026-32141) in the flatted library. The library was updated to version 4.4.0.
- Fixed the medium vulnerability (CVE-2026-41305) in the postcss library. The library was updated to version 8.5.14.
<featureid="ssh"label="SSH tunnels for databases"description="Enables SSH tunnels for secure database connections, allowing access to remote databases through encrypted channels"enabledByDefault="true"/>
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.