Compare commits

...
99 Commits
Author SHA1 Message Date
8f01d49f5f CB-3563 cloudbeaver preference store (#2370)
* CB-3563 cloudbeaver preference store

* CB-3563 fix cb custom drivers folder

* CB-3563 fix default property initialization

* CB-3563 :feat adds proposal insert table setting to admins settings

* CB-3563 feat: sqlEditorService has field canInsertAlias

* CB-3563 adds plain keys to the settings

* CB-3563 removes redundant alias resolver for sqlEditor

* CB-3563 fix: sql editor ctrl + z does not cause an error while SQL script typing

* CB-3563 pr fixes

---------

Co-authored-by: s.teleshev <s.teleshev@mu.se>
Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
2024-02-13 20:33:52 +03:00
cb897343bd Cb 4457 subcollections firestore (#2338)
* CB-4457. Add api for read subcollections firestore

* CB-4457. Move firestore to ee module

* CB-4457. Move firestore to ee module

* CB-4457. Added annotations for firestore

* CB-4457. Added metaData

* CB-4457. Fixed build

* CB-4457 add hasChildrenCollection flag

* CB-4457. Add new resultsRow

* CB-4457. Renamed SQLResultRowMetaData parameters

* CB-4457 add rows with metadata to schema

* CB-4457. Fix gql

* CB-4457. Added logic to get Firestore subcollection

* CB-4457. Refactor result, rename gql, added new type to return gql

* CB-4457. Revert list to map

* CB-4457. Get Subcollections info

* CB-4457. Refactor code

* Added sceleton for insert subcollection

* CB-4457. Added isSupportsDataFilter flag for subcollection

* CB-4457 add locales

* CB-4457. Added isSupportsDataFilter flag for subcollection

* CB-4457. Added update/insert logic for subcollection

* CB-4457 support collection editing

* CB-4457. Refactor after review, moved hierarchical model to ee.

* CB-4457 add SerializableKey

* CB-4457 keep only new rowsWithMetaData api

* CB-4457 review fixes

* CB-4457 review fixes

* CB-4457. Refactor after review. Added logic for delete

* CB-4457 pass metadata in deleted rows

* CB-4457 check row for undefined

* CB-4457 pass metadata when editing json

* CB-4457. Refactor edit, fix icons

* CB-4457. Refactor makeDocumentInputValue, created new method for locator

* CB-4457 try to get the current metadata for row

* CB-4457 clear cache on result update

* CB-4457 remove extra check

* CB-4457. Fixed npe

---------

Co-authored-by: DenisSinelnikov <denis.sinelnikov@dbaever.com>
Co-authored-by: naumov <iamemptyhuh@gmail.com>
Co-authored-by: Aleksei Potsetsuev <wrouds@gmail.com>
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2024-02-13 18:29:22 +01:00
Alexander SkoblikovandEvgenia Bezborodova eea72bd467 CB-4673 validate default team exists (#2374)
Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
2024-02-13 20:08:46 +03:00
b62b8d178d Cb 4375 support idle connection closing (#2368)
* CB-4365. Support idle connection closing

* CB-4375. Fix connection time

* CB-4375. Fixed checkstyle

* CB-4375. Refactor after review

* CB-4375. Refactor after review

* CB-4375. Refactor after review

* CB-4375. Refactor after review

* CB-4375. Refactor after review

* CB-4375. Refactor after review, change event type

* CB-4375. Refactor after review

---------

Co-authored-by: DenisSinelnikov <denis.sinelnikov@dbaever.com>
Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
2024-02-13 20:08:29 +03:00
alexandDaria Marutkina 9828b1de1e CB-4567 add disableCopyData settings (#2378)
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2024-02-13 13:45:05 +01:00
Alexey 325cbef1d8 chore: update version 23.3.5
* chore: update version 23.3.5
2024-02-13 10:47:34 +03:00
serge-rider 1e13e65205 23.3.5 version bump 2024-02-12 18:04:26 +01:00
alexandDaria Marutkina 426ab15bfc CB-4651 change wrap lines icons (#2371)
* CB-4651 change wrap lines icons

* CB-4651 remove icons from icons.svg

* CB-4651 add different size of icons

---------

Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2024-02-12 13:06:40 +03:00
898e7d9b9d CB-4570 add correct limits for text and blob columns in value panel (#2351)
* CB-4570 add correct limits for text and blob columns in value panel

* CB-4570 pr fixes

* CB-4570 adds shorter versions of limit messages

* CB-4570 pr fixes

* CB-4570 pr fixes

* CB-4570 code cleanup

* CB-4570 show more button moved to quota container

* CB-4570 code cleanup

* CB-4570 code cleanup

* CB-4570 quota placeholder to module css

* CB-4570 refactor: limit info in content action

* CB-4570 cleanup

* CB-4570 refactor: result set binary file implementation

* CB-4570 code clean

* CB-4570 adds QuotaPlaceholder getLimitInfo logic

* CB-4570 adds quota placeholder logic to not render when size is not truncated

* CB-4570 fix: shouldShowPasteButton reverted

* CB-4570 fix: show quota placeholder correctly

* CB-4570 code clean

* Revert "CB-4570 fix: show quota placeholder correctly"

This reverts commit d86b35e47a.

* CB-4570 fix: truncate image and text depending on current value panel presentation tab id

* Revert "Revert "CB-4570 fix: show quota placeholder correctly""

This reverts commit d5df008e89.

* CB-4570 code clean

* CB-4570 chore: dataContent has no image mentions

---------

Co-authored-by: s.teleshev <s.teleshev@mu.se>
Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
2024-02-09 19:31:56 +03:00
alexandDaria Marutkina 1d497fe14f CB-4628 remove unused logic (#2367)
* CB-4628 remove unused logic

* CB-4628 remove onClean callback

* CB-4628 add applyDisabled prop

* CB-4628 check if apply is enabled on enter

* CB-4628 add disable actions prop

---------

Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2024-02-09 19:08:36 +03:00
Alexander Skoblikovandkseniaguzeeva 3965f16330 CB-4498 secrets cleanup (#2352)
Co-authored-by: kseniaguzeeva <112612526+kseniaguzeeva@users.noreply.github.com>
2024-02-09 17:52:59 +03:00
Alexander Skoblikov 3891eed4a9 CB-4636 fix initial data configuration (#2358) 2024-02-09 14:24:18 +03:00
Serge Rider f980ee80b2 Merge branch 'devel' of https://github.com/dbeaver/cloudbeaver into devel 2024-02-08 13:44:24 +01:00
Serge Rider 1816016cf3 Repo dependencies 2024-02-08 13:43:07 +01:00
sergeyteleshev 9e051d5158 Merge pull request #2366 from dbeaver/CB-4633-unit-tests-licenses
CB-4633 adds licenses to unit tests
2024-02-07 17:38:27 +01:00
s.teleshev 7437b9e5eb CB-4633 adds licenses to unit tests 2024-02-07 17:37:41 +01:00
sergeyteleshevands.teleshev d96b9e94ad Cb 4633 unit tests for utils (#2357)
* CB-4633 blobToBase64 unit tests

* СB-4633 importLazyComponent tests

* CB-4633 OrderedMap unit tests

* CB-4633 removed test time limit from blobToBase64 test

* CB-4633 adds to ordered map unit tests for edge cases

* CB-4633 importLazy moved to core-blocks

* CB-4633 adds update-ts-references

---------

Co-authored-by: s.teleshev <s.teleshev@mu.se>
2024-02-07 19:31:19 +03:00
7eba02ac1f CB-4535. Remove Ability to edit all users team (#2341)
* CB-4535. Remove Ability to edit all users team

* CB-4536. Fixed test

* CB-4536. Refactor after review.

* CB-4536. Refactor after review

* CB-4536. Refactor after review

* CB-4536. Refactor after review

* CB-4536. Refactor after review

* CB-4536. Refactor after review.

* CB-4536. Auto filled default group for all user when application is started

* CB-4536. Refactor after review

* CB-4536. Fixed update empty list

* CB-4536 feat: display default user team info

* CB-4536 chore: code cleanup

---------

Co-authored-by: DenisSinelnikov <denis.sinelnikov@dbaever.com>
Co-authored-by: kseniaguzeeva <112612526+kseniaguzeeva@users.noreply.github.com>
Co-authored-by: Aleksei Potsetsuev <wrouds@gmail.com>
2024-02-07 18:15:42 +03:00
Serge Rider e285ad0279 CB-4645 Null descriptions fix (#2359) 2024-02-07 17:56:49 +03:00
AnastasiyaandMashaKorax 6b2f314383 dbeaver/pro#2420 update MariaDB driver to 3.3.2 (#2362)
Co-authored-by: MashaKorax <84867187+MashaKorax@users.noreply.github.com>
2024-02-07 14:12:00 +03:00
Serge Riderandkseniaguzeeva 09e5141e37 dbeaver/pro#2403 AWS secret controller stub (#2350)
Co-authored-by: kseniaguzeeva <112612526+kseniaguzeeva@users.noreply.github.com>
2024-02-07 14:07:55 +03:00
Alexander Skoblikov 0c03d201a8 CB-4596 fix http cookies (#2363) 2024-02-06 16:50:46 +03:00
sergeyteleshevands.teleshev d96e0b812d CB-4400 removed project margin styles to prevent tree jump on DnD (#2344)
* CB-4400 removed project margin styles to prevent tree jump on DnD

* CB-4400 removed DND jump lag for connection/script/dataset trees

* CB-4400 top tree project has margin

---------

Co-authored-by: s.teleshev <s.teleshev@mu.se>
2024-02-06 09:52:35 +03:00
Alexander Skoblikov 98d7d1f0d5 update sql to support oracle (#2355) 2024-02-05 15:49:01 +03:00
590830cbb5 CB-4605 fix: sql editor shows datasets panels correctly (#2347)
* CB-4605 fix: sql editor shows datasets panels correctly

* Revert "CB-4605 fix: sql editor shows datasets panels correctly"

This reverts commit 5e2afc5296.

* CB-4605 fix: TE edit dataset works fine with new dividers

* CB-4605 revert sqleditor displayed editors state

* CB-4605 removed sqlEditor hack to open full size dataset

* Revert "CB-4605 removed sqlEditor hack to open full size dataset"

This reverts commit 7ad98e42b4.

* CB-4605 sqlEditor works as it was for EE and TE

---------

Co-authored-by: s.teleshev <s.teleshev@mu.se>
Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
2024-02-05 15:47:23 +03:00
Daria Marutkina 4d04f4b2ee Merge pull request #2356 from dbeaver/dariamarutkina-patch-3
CB_2334 chore: update README
2024-02-05 13:15:57 +01:00
Daria Marutkina 8cdfb12ecc CB_2334 chore: update README 2024-02-05 13:15:47 +01:00
Alexander Skoblikov 30e0bad784 fix schema version (#2354) 2024-02-05 13:41:18 +03:00
Serge RiderandEvgenia Bezborodova f8e74f926c CB-4617 NPE fix (#2349)
Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
2024-02-05 12:31:30 +03:00
Alexey b7ab8b13d6 CB-4611 fix: revert font size changes (#2348) 2024-02-01 17:16:12 +03:00
8585af7f1a Cb 4429 change divider behavior (#2335)
* CB-4429 adds visible buttons for resizers

* CB-4429 adds auto margin to dividers

* CB-4429 fix initial auto margin

* CB-4429 adds auto margins without hook

* CB-4429 split controls cleanup

* CB-4429 hide content if panel minimized

* CB-4429 remove ts ignore

* CB-4429 Pane cleanup

* CB-4429 update go-split

* CB-4429 pane renders null if it is minimized splitter

* CV-4429 removed children memoization in Pane component

* CB-4429 fix: hide content if maximized pane

* CB-4429 chore: update go-split version

* CB-4429 update go-split lib

---------

Co-authored-by: s.teleshev <s.teleshev@mu.se>
Co-authored-by: Aleksei Potsetsuev <wrouds@gmail.com>
Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
2024-01-31 20:34:52 +03:00
fdde4348a2 CB-3703 save product configuration from ui (#2334)
* CB-4560 api for saving product configuration

* CB-4560 save product config in te

* CB-4560 move update product config to mutations

* CB-3703 feat: extend base components

* CB-3703 feat: settings editor

* CB-3703 chore: review fixes

* CB-3703 chore: pr review

* CB-3703 feat: update server configuration icon

* CB-4560 add events

* CB-3703 fix: localization

* CB-3703 chore: localization

---------

Co-authored-by: Alexey <wrouds@gmail.com>
Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
2024-01-31 20:33:05 +03:00
11adc7d3d6 dbeaver/pro#2404 Revert legacy Clickhouse driver (#2337)
Co-authored-by: Matvey16 <82543000+Matvey16@users.noreply.github.com>
Co-authored-by: Ainur <59531286+yagudin10@users.noreply.github.com>
2024-01-31 19:23:05 +03:00
alexandEvgenia Bezborodova d79ab9593e CB-4489 increase class priority (#2345)
Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
2024-01-31 19:18:23 +03:00
alexandDaria Marutkina cf2d647aea CB-4591 do not require password if its saved (#2342)
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2024-01-31 19:17:48 +03:00
Alexey a698363dfd chore: update javaConfig (#2346) 2024-01-31 18:25:00 +03:00
a2094a4d90 CB-3834 secret controller redesign (#2343)
* CB-3834 Secret manager database schema

* CB-3834 add credentials storage flat to teams

* CB-3834 subject based secrets

---------

Co-authored-by: Serge Rider <serge@jkiss.org>
Co-authored-by: kseniaguzeeva <112612526+kseniaguzeeva@users.noreply.github.com>
2024-01-31 16:52:00 +03:00
Alexander SkoblikovandDaria Marutkina 71a61047e2 CB-4257 validate required features for providers (#2322)
* CB-4257 validate required features for providers

* CB-4257 rename types - categories

---------

Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2024-01-31 11:23:58 +03:00
alexandDaria Marutkina cd7ffe6c2e CB-4504 transform coordinates according to the chosen srid (#2331)
* CB-4504 transform coordinates according to the chosen srid

* CB-4504 add licence

* CB-4504 move types to dev deps

---------

Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2024-01-30 17:22:52 +01:00
Ainur 7a45f2feea CB-4476 data source folder send event fix (#2340) 2024-01-30 17:46:26 +03:00
Serge Rider ba208ad024 INF-10 Include dbeaver-common in build 2024-01-29 17:16:08 +01:00
sergeyteleshevands.teleshev 04236b949b CB-4531 fix: connect to the tables/connections without red screen error (has connection already) (#2339)
Co-authored-by: s.teleshev <s.teleshev@mu.se>
2024-01-29 15:35:20 +03:00
Serge Rider 1e4cbd60b8 23.3.4 version bump 2024-01-26 11:46:08 +01:00
Serge Rider a33c17a997 23.3.4 version bump 2024-01-26 11:43:39 +01:00
f41c485ba0 Cb 4382 anonymous access restricted error (#2302)
* CB-4382 fixed anonymous error

* CB-4382 move EAdminPermission to root-resources in order to FeatureResource can import it

* CB-4282 EAdminPermission moved to core-root

* CB-4382 update-ts-references

* СB-4382 removed unneeded deps in packages

* CB-4282 revert needed deps to be present

* CB-4382 reverted popperjs for plugin-data-spreadsheet-new

* CB-4382 TE error fix for fast opening admin server settings

* CB-4382 update yarn lock

---------

Co-authored-by: s.teleshev <s.teleshev@mu.se>
Co-authored-by: Alexey <wrouds@gmail.com>
Co-authored-by: kseniaguzeeva <112612526+kseniaguzeeva@users.noreply.github.com>
2024-01-25 17:42:58 +03:00
AlexeyandDaria Marutkina ba3ca5e28a CB-4236 feat: script reopen (#2324)
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2024-01-25 17:40:31 +03:00
Serge RiderandDaria Marutkina 3c4f4a988d CB-4573 PostgreSQL driver updated to 42.5.2 (#2332)
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2024-01-25 13:43:46 +03:00
alexandEvgenia Bezborodova 3e93752d53 CB-4134 adjust cursor position (#2299)
* CB-4134 adjust cursor position

* CB-4134 pass controlled cursor to the editor

* CB-4134 do not trim value

* CB-4134 revert const history

* CB-4134 review fixes

* CB-4134 remove onUpdate method

---------

Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
2024-01-25 10:47:47 +03:00
Mikhailov Grigorii 8df248bfde #984 Changed to 23.10 ubuntu (#2329) 2024-01-24 18:13:49 +03:00
6553132019 CB-4023 sets equal window sizes on edit dataset (#2325)
* CB-4023 sets equal window sizes on edit dataset

* СB-4023 sql editor sets size on displayed editors change

* CB-4023 sqlEditor isEditorEmpty flag for SqlEditor

---------

Co-authored-by: s.teleshev <s.teleshev@mu.se>
Co-authored-by: kseniaguzeeva <112612526+kseniaguzeeva@users.noreply.github.com>
2024-01-24 17:37:56 +03:00
Daria Marutkina bcda5ebbd8 Merge pull request #2330 from dbeaver/dariamarutkina-patch-2
CB_2333 chore: update
2024-01-24 13:10:21 +01:00
Daria Marutkina 53fca74dfe CB_2333 chore: update 2024-01-24 13:10:07 +01:00
Alexey 92b5d47232 chore: fix build broken gql (#2328) 2024-01-24 12:46:40 +03:00
Alexey b0a34c7d75 CB-4541 refactor: tree (#2326)
* CB-4541 refactor: tree

* CB-4541 chore: revert test code
2024-01-24 12:31:48 +03:00
47f1267957 Cb 4523 remove identity providers tab (#2310)
* CB-4523 move identity providers from plugin-authentication-administration

* CB-4523 remove * dep

---------

Co-authored-by: Alexey <wrouds@gmail.com>
Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
2024-01-24 09:42:03 +03:00
AlexeyandEvgenia Bezborodova 544f3a8dd3 CB-4539 fix: value panel auto type detection (#2320)
* CB-4539 fix: value panel auto type detection

* CB-4539 feat: add wrap lines action

* CB-4539 fix: remove extra button

* CB-4539 chore: enable line wrapping by default

* CB-4539 fix: quota message

---------

Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
2024-01-23 19:35:00 +03:00
4cdb3ac30b Cb 4389 convert reverse proxy (#2300)
* CB-4389. Converted reverse proxy to identity provider

* CB-4039 build logout redirect link on backend side

* CB-4039 fix return value

* CB-4389. Added auto configuration for Reverse proxy if its enabled on ce, fixed typo, rename plugin parameters

* CB-4389. Added check for already exist configuration

* CB-4389. Refactor after review

* CB-4039 adds logout with context for Okta Identity Provider

* CB-4039 backward compatibility fix

* CB-4039 add since annotation

* CB-4039 api return type fix

* CB-4039 logout extended

* CB-4389. Refactor after review

* CB-4389. Refactor after review

* CB-4039 okta logout redirect moved to AuthenticationService

* CB-4039 remove windowService dep

* CB-4039 removes old logic of identity provider logout links

* CB-4039 okta review changes

* CB-4389. Merge logout logic into branch

* CB-4389. Delete param after review

* CB-4389. Converted reverse proxy to identity provider

* CB-4389. Added auto configuration for Reverse proxy if its enabled on ce, fixed typo, rename plugin parameters

* CB-4389. Added check for already exist configuration

* CB-4389. Refactor after review

* CB-4389. Refactor after review

* CB-4389. Refactor after review

* CB-4039 adds logout with context for Okta Identity Provider

* CB-4039 okta logout redirect moved to AuthenticationService

* CB-4389. Merge logout logic into branch

* CB-4389. Delete param after review

* CB-4546 shows hex/base64 only on blob column selection (#2314)

Co-authored-by: s.teleshev <s.teleshev@mu.se>
Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>

* CB-4389. Fix logout redirect and npe for logout parameter

* CB-4389. Fix logout redirect and npe for logout parameter

* CB-4389. Change version

---------

Co-authored-by: Aleksandr Skoblikov <aleksandr.skoblikov@dbeaver.com>
Co-authored-by: s.teleshev <s.teleshev@mu.se>
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
Co-authored-by: sergeyteleshev <iamsergeyteleshev@gmail.com>
2024-01-23 19:15:34 +03:00
AinurandDaria Marutkina f4fd603297 CB-4441 mariadb fix clear auth attempt info (#2313)
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2024-01-23 19:14:51 +03:00
76454a352d CB-4546 shows hex/base64 only on blob column selection (#2314)
Co-authored-by: s.teleshev <s.teleshev@mu.se>
Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2024-01-22 18:38:19 +03:00
35b625c1df CB-3015: adds an fadeout animation & min close delay time to all noti… (#2306)
* CB-3015: adds an fadeout animation & min close delay time to all notifications

* CB-3015 revert closeDelay in NotificationItem

* CB-3015 shows notification if it is not closed during first 300ms

* Revert "CB-3015 shows notification if it is not closed during first 300ms"

This reverts commit 184aae708e.

* CB-3015 show process snack bar with delay fix

* CB-3015 snackbar removed potential deps bug

---------

Co-authored-by: s.teleshev <s.teleshev@mu.se>
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2024-01-22 18:31:43 +03:00
bc7cd3b217 CB-4289 add file name param for data export (#2308)
* CB-4289 add file name param for data export

* CB-4289 pass file name based on context

* CB-4289 use existing export action

---------

Co-authored-by: naumov <iamemptyhuh@gmail.com>
Co-authored-by: kseniaguzeeva <112612526+kseniaguzeeva@users.noreply.github.com>
2024-01-22 18:30:36 +03:00
sergeyteleshevands.teleshev 3274988d4a CB-4551 unit tests form timestampToDate and cacheValue (#2316)
* CB-4551 unit tests form timestampToDate and cacheValue

* CB-4551 cacheValue added one more test case

* CB-4551 removed unused plugins for tests

* CB-4551 all tests has UTC timezone

* СB-4551 fix: icons has no data-test id

---------

Co-authored-by: s.teleshev <s.teleshev@mu.se>
2024-01-22 14:10:23 +03:00
Evgenia Bezborodova 38e5fa0cbb Merge pull request #2321 from dbeaver/EvgeniaBzzz-patch-2
CB_2333: update README.md
2024-01-22 13:36:19 +03:00
Evgenia Bezborodova 75413db6a5 CB_2333: update README.md 2024-01-22 13:36:04 +03:00
Alexey 6b124072e9 chore: performance improvements (#2319) 2024-01-21 16:18:35 +03:00
a230dac79e Cb 4403 map ad roles (#2295)
* CB-4403. Implement import with auth roles for AD

* CB-4403 feat: add auth role provided flag

* CB-4403. Refactor after review, added auto configurable flag

* CB-4403. Refactor after review

* CB-4403. Refactor after review

* CB-4403. Refactor after review

* CB-4403. Fixed set teams for imported users

* CB-4403. Refactor after review

* CB-4403. Refactor after review

---------

Co-authored-by: Denis Sinelnikov <denis.sinelnikov@dbeaver.com>
Co-authored-by: DenisSinelnikov <142215442+DenisSinelnikov@users.noreply.github.com>
Co-authored-by: kseniaguzeeva <112612526+kseniaguzeeva@users.noreply.github.com>
2024-01-19 21:11:39 +03:00
alex 10c1b374fc Cb 4534 fix circle deps (#2312)
* CB-4534 fix empty password validation (#2311)

* CB-4534 move password policy hook to core blocks
2024-01-18 16:45:04 +01:00
alex 80ce154b03 CB-4534 do not validate empty password, required attribute will (#2309)
* CB-4534 do not validate empty password, required attribute will

* CB-4534 remove trim
2024-01-18 14:19:38 +01:00
8ba0eb64b8 CB-4264 password policy configuration (#2301)
* CB-4491 password policy config api

* CB-4491 move policy config to sm

* CB-4491 cb config fix

* CB-4264 add password policy

* CB-4491 deserialization fix

* CB-4491 deserialization fix

* CB-4264 add title

* CB-4264 rename params

* CB-4264 fix naming

* CB-4264 accept any language

---------

Co-authored-by: naumov <iamemptyhuh@gmail.com>
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2024-01-17 19:26:01 +01:00
0544547f27 CB-4039 logout with context (#2296)
* CB-4039 build logout redirect link on backend side

* CB-4039 fix return value

* CB-4039 adds logout with context for Okta Identity Provider

* CB-4039 backward compatibility fix

* CB-4039 add since annotation

* CB-4039 api return type fix

* CB-4039 logout extended

* CB-4039 okta logout redirect moved to AuthenticationService

* CB-4039 remove windowService dep

* CB-4039 removes old logic of identity provider logout links

* CB-4039 okta review changes

---------

Co-authored-by: s.teleshev <s.teleshev@mu.se>
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2024-01-17 20:29:31 +03:00
5db30be61b CB-4285 read full value from text cell (#2288)
* CB-4494 api for reading full value from text cell

* CB-4494 apply function fix

* CB-4285 graphql getFileFullText for files

* CB-4285 textValuePresentation refactor

* CB-4285 textValuePresentation refactor - removed unneeded fields

* CB-4285 textValuePresentation canSave in data ref

* CB-4285 paste full text button

* CB-4285 observable map for full text in textValuePresentation

* CB-4285 reset cases comment removed (all works cool)

* СB-4285 buttons in tools container is now nearby each other

* CB-4285 use content action for caching full texts

* CB-3842 use only one row in getting full value

* CB-3842 use not null at read lob value

* CB-4285 schema changes for sqlReadString and sqlReadLobValue

* CB-4285 TextValuePresentation refactor

* CB-4285 useTextValue refactor

* CB-4285 PR comments applied

* CB-4285 view full text button for ValuePanel + remove truncated warning if loaded full text

---------

Co-authored-by: s.teleshev <s.teleshev@mu.se>
Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
2024-01-17 20:02:17 +03:00
Alexander SkoblikovandEvgenia Bezborodova ea0493883a CB-4446 more clear way to provide database credentials (#2304)
Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
2024-01-17 17:52:34 +03:00
d8f197e8a7 CB-3832 fix notification text visibility for export ones (#2305)
Co-authored-by: s.teleshev <s.teleshev@mu.se>
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2024-01-17 10:11:58 +03:00
Serge Riderandkseniaguzeeva 28c37c2971 CB-4514 SM apps refactoring + RM, QM, TE, TM configuration (#2298)
Co-authored-by: kseniaguzeeva <112612526+kseniaguzeeva@users.noreply.github.com>
2024-01-16 15:49:57 +03:00
alexandDaria Marutkina 2bd727aac2 CB-3995 move anonymous id to const (#2292)
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2024-01-12 18:58:01 +01:00
f463ea558f CB-4309 add keep alive interval for data source (#2269)
* CB-4309 add keep alive interval for data source

* CB-4309 adds keep-alive checkbox to connection form additional fields

* CB-4309 removed custom validation for keep-alive setting

---------

Co-authored-by: s.teleshev <s.teleshev@mu.se>
Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
2024-01-12 20:48:16 +03:00
5caffd0a04 CB-4162 init connection check username network handler param only for… (#2293)
* CB-4162 init connection check username network handler param only for ssh

* CB-4162 SSL secureProperties are not trimmed if is undefined

---------

Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
Co-authored-by: s.teleshev <s.teleshev@mu.se>
2024-01-12 20:45:02 +03:00
Alexey 8fdecdf757 CB-4485 fix: bundle splitting (#2282) 2024-01-12 18:48:26 +03:00
Alexander SkoblikovandDaria Marutkina dbe2cb558d CB-4301 qm autoreconnect (#2265)
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2024-01-11 20:39:40 +03:00
alexandDaria Marutkina bb743ac5b0 CB-3955 hide presentation bar in statistics mode (#2289)
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2024-01-11 17:28:26 +01:00
AinurandDaria Marutkina 44531191a8 CB-4487 add duckdb driver (#2285)
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2024-01-11 19:26:22 +03:00
cdfdb89a4d Cb 4010 auth methods dont update when switching drivers (#2286)
* CB-4010 connection form removed reshadow

* CB-4010 feat: is equal resources

* CB-4010 :feat isArraysEqual performance optimization

* CB-4010 connections options cleanup

* CB-4010 fix: isArraysEquals works with multiple objects and multiple type of data (primitive and not) in one array

* CB-4010 fix: resource isEqual can compare not only primitives

* CB-4010 chore: add isEqual to resource list class

* CB-4010 add to isArraysEqual edge cases + tests

* CB-4010 chore: remove unused import

---------

Co-authored-by: s.teleshev <s.teleshev@mu.se>
Co-authored-by: Alexey <wrouds@gmail.com>
2024-01-11 14:54:41 +03:00
alexandDaria Marutkina 768f3bc951 CB-4468 iterate over copy of state array (#2278)
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2024-01-11 14:54:18 +03:00
AlexeyandDaria Marutkina b0586e7ccb CB-4401 feat: save value panel state per column (#2272)
* CB-4401 feat: save value panel state per column

* CB-4401 fix: pr review

---------

Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2024-01-11 14:53:55 +03:00
alexandDaria Marutkina 5041312601 CB-4442 add box styles to the form itself (#2277)
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2024-01-10 14:37:10 +01:00
DenisSinelnikovandDaria Marutkina 8f66979dc4 CB-4377. Error text is more detailed to export large sql result (#2274)
* CB-4377. Error text is more detailed to export large sql result

* CB-4377. Error text is more detailed to export large sql result

* CB-4377. Fixed typo in error message

* CB-4377. Fixed typo in error message

---------

Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2024-01-10 15:33:46 +03:00
DenisSinelnikovandDaria Marutkina 51bbc59fe4 CB-4484. Rename error message for bruteforce protection (#2280)
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2024-01-10 15:32:18 +03:00
AlexeyandDaria Marutkina 008f7f9659 CB-4344 fix: table column width calculation (#2273)
* CB-4344 fix: table column width calculation

* CB-4344 fix: pr review

---------

Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
2024-01-10 13:08:28 +03:00
serge-rider f7ac96bcf2 Merge remote-tracking branch 'origin/devel' into devel 2024-01-10 10:37:09 +03:00
serge-rider 904375aa66 dbeaver/pro#2341 Copyright update 2024-01-10 10:31:38 +03:00
alexandmr-anton-t 13bd5c41c0 CB-4479 always satisfy hash function argument type (#2279)
Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
2024-01-10 08:21:00 +03:00
serge-rider dd6aa25bad 23.3.3 version bump 2024-01-09 22:21:37 +03:00
serge-rider 7e0cfa50d4 23.3.3 version bump 2024-01-09 19:19:08 +03:00
Daria Marutkina e08f6b3a1b Merge pull request #2284 from dbeaver/dariamarutkina-patch-1
CB_2332 chore: update README
2024-01-09 11:28:07 +01:00
Daria Marutkina 0ba36db4a4 CB_2332 chore: update README 2024-01-09 11:27:36 +01:00
alexandAleksei Potsetsuev 459681bffa CB-4395 add custom eslint rule for deprecated packages (#2227)
* CB-4395 add custom eslint rule for deprecated packages

* CB-4395 feat: custom eslint rules

* CB-4395 feat: custom eslint rules

* CB-4395 chore: eslint plugin catch exceptions

* CB-4395 chore(eslint-plugin): remove extra deps

---------

Co-authored-by: Aleksei Potsetsuev <wrouds@gmail.com>
2024-01-09 09:50:41 +03:00
87c8b57d05 Cb 4467 utils unit tests (#2275)
* CB-4467 adds pack of unit tests for utils

* CB-4465 get path utils covered with tests

* CB-4467 isNotNullDefined unit tests

* CB-4467 adds pack of unit tests for utils

* CB-4467 parseJSONFlat unit tests

* CB-4467 unit tests for svgToDataUri and replaceMiddle

* CB-4467 throttle utils

* CB-4467 PR fixes

* CB-4467 base64 images examples for getMIME

* CB-4467 fix: throttle function type and exception catching

---------

Co-authored-by: s.teleshev <s.teleshev@mu.se>
Co-authored-by: Aleksei Potsetsuev <wrouds@gmail.com>
2024-01-08 10:47:46 +03:00
mayer 79e55f7089 devops: revert docker (#2271) 2024-01-04 11:26:31 +03:00
serge-rider 145febbdde 23.3.2 version bump 2024-01-03 21:28:12 +03:00
2696 changed files with 13091 additions and 7736 deletions
+1 -1
View File
@@ -5,7 +5,7 @@
"body": [
"/*",
" * CloudBeaver - Cloud Database Manager",
" * Copyright (C) 2020-2023 DBeaver Corp and others",
" * 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.",
+21
View File
@@ -50,6 +50,19 @@
"isDefault": true
}
},
{
"label": "Run Backend CE",
"type": "shell",
"windows": {
"command": "./run-server.bat"
},
"osx": {
"command": "./run-server.sh"
},
"options": {
"cwd": "${workspaceFolder}/deploy/cloudbeaver"
}
},
{
"label": "Yarn Install",
"type": "shell",
@@ -60,6 +73,14 @@
"close": true,
"clear": false
}
},
{
"label": "Update TS references CE",
"type": "shell",
"command": "yarn lerna run update-ts-references --stream",
"options": {
"cwd": "${workspaceFolder}/webapp"
}
}
],
"inputs": [
+20 -33
View File
@@ -22,41 +22,28 @@ You can see live demo of CloudBeaver here: https://demo.cloudbeaver.io
## Changelog
### 23.3.1, 2023-12-25
- Performance:
- Upgraded to Jetty 11, delivering improved performance, enhanced features, and better alignment with the latest Java specifications.
- Resource management:
- Read-only scripts now have a padlock icon.
- UX improvement:
- Added validation for mandatory fields in all forms for creating and editing entities.
- Driver management:
- Apache Derby driver has been removed because of the vulnerability issues.
- Many small bug fixes, enhancements, and improvements have been made
### 23.3.4. 2024-02-05
- Text wrap is activated by default for texts and BLOBs in the Values panel for better visibility. User can switch to the one-line mode using a button on the toolbar;
- Added the ability to edit the default preferences of the following parts: interface, tools and data viewer in the settings panel in the administrative part;
- Added ability to configure reverse proxy header name and redirect URL at logout. Admin will now be able to configure all settings;
- Update PostgreSQL driver to 42.5.2;
- Added the ability to display the OpenStreetMap layer with the default coordinate system ESPG 4326;
- ClickHouse Legacy driver has been removed to prevent potential vulnerability issues;
- Different bug fixes and enhancements have been made.
### 23.3.3. 2024-01-22
- Added password policy for the local authorization. Password parameters can be set in the configuration file;
- The 'Keep alive' option has been added to the connection settings to keep the connection active even in case of inactivity;
- Added ability to display full text for a string data type in value panel;
- The DuckDB driver has been added;
- Different bug fixes and enhancements have been made.
### 23.3.2. 2024-01-08
- Added the ability to view decoded binary-type data in the Value panel;
- Enhanced security for unauthorized access;
- Different bug fixes and enhancements have been made.
### Changes since 23.2.0:
- Security:
- Unauthorized access vulnerability was fixed;
- All embedded drivers are disabled by default. Administrators can re-enable them in the Server configuration.
- Access Management:
- Administrators have gained the ability to permanently delete users and their data.
- Authorization:
- The SSL option is available for establishing a connection in SQL Server.
- Connections:
- The 'Save credentials' checkbox has been removed from a template creating form as credentials are not stored in templates.
- SQL Editor:
- Support for using custom delimiters has been added in MySQL;
- The Output tab has been implemented, which includes warnings, info, and notices generated by the database when executing user queries;
- Fixed an issue in the SQL editor where it was impossible to switch the active schema when working with Oracle databases;
- Added ability to select shared connections for private scripts;
- Private connections can be chosen for shared scripts, but this change won’t be saved to the script file.
- Data Editor:
- Scrollbars have been made theme-independent;
- Added the ability to edit binary values in a table;
- Added the ability to count the total number of entries in the table.
- Driver management:
- Updated the version of the Clickhouse driver to 0.4.6.
- Many small bug fixes, enhancements, and improvements have been made
### Old CloudBeaver releases
@@ -1,6 +1,6 @@
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2023 DBeaver Corp and others
* Copyright (C) 2010-2024 DBeaver Corp and others
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -1,6 +1,6 @@
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2023 DBeaver Corp and others
* Copyright (C) 2010-2024 DBeaver Corp and others
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -1,6 +1,6 @@
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2023 DBeaver Corp and others
* Copyright (C) 2010-2024 DBeaver Corp and others
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -1,6 +1,6 @@
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2023 DBeaver Corp and others
* Copyright (C) 2010-2024 DBeaver Corp and others
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
+2 -2
View File
@@ -2,13 +2,13 @@
teams: [
{
subjectId: "admin",
name: "Admin",
teamName: "Admin",
description: "Administrative access. Has all permissions.",
permissions: [ "admin" ]
},
{
subjectId: "user",
name: "User",
teamName: "User",
description: "All users, including anonymous.",
permissions: [ ]
}
+2 -1
View File
@@ -27,5 +27,6 @@
},
plugin_data_export: {
disabled: false
}
},
sql.proposals.insert.table.alias: true
}
@@ -23,7 +23,13 @@
enableBruteForceProtection: "${CLOUDBEAVER_BRUTE_FORCE_PROTECTION_ENABLED:true}",
maxFailedLogin: "${CLOUDBEAVER_MAX_FAILED_LOGINS:10}",
minimumLoginTimeout: "${CLOUDBEAVER_MINIMUM_LOGIN_TIMEOUT:1}",
blockLoginPeriod: "${CLOUDBEAVER_BLOCK_PERIOD:300}"
blockLoginPeriod: "${CLOUDBEAVER_BLOCK_PERIOD:300}",
passwordPolicy: {
minLength: "${CLOUDBEAVER_POLICY_MIN_LENGTH:8}",
requireMixedCase: "${CLOUDBEAVER_POLICY_REQUIRE_MIXED_CASE:true}",
minNumberCount: "${CLOUDBEAVER_POLICY_MIN_NUMBER_COUNT:1}",
minSymbolCount: "${CLOUDBEAVER_POLICY_MIN_SYMBOL_COUNT:0}"
}
},
database: {
@@ -27,6 +27,18 @@
maxConnections: 100,
validationQuery: "SELECT 1"
}
},
sm: {
enableBruteForceProtection: "${CLOUDBEAVER_BRUTE_FORCE_PROTECTION_ENABLED:true}",
maxFailedLogin: "${CLOUDBEAVER_MAX_FAILED_LOGINS:10}",
minimumLoginTimeout: "${CLOUDBEAVER_MINIMUM_LOGIN_TIMEOUT:1}",
blockLoginPeriod: "${CLOUDBEAVER_BLOCK_PERIOD:300}",
passwordPolicy: {
minLength: "${CLOUDBEAVER_POLICY_MIN_LENGTH:8}",
requireMixedCase: "${CLOUDBEAVER_POLICY_REQUIRE_MIXED_CASE:true}",
minNumberCount: "${CLOUDBEAVER_POLICY_MIN_NUMBER_COUNT:1}",
minSymbolCount: "${CLOUDBEAVER_POLICY_MIN_SYMBOL_COUNT:0}"
}
}
},
+26 -28
View File
@@ -1,54 +1,52 @@
FROM alpine:3.19
FROM ubuntu:23.10
MAINTAINER DBeaver Corp, devops@dbeaver.com
ENV LANG='en_US.UTF-8' LANGUAGE='en_US:en' LC_ALL='en_US.UTF-8'
RUN set -eux; \
apk add --no-cache \
apt-get update; \
DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
# curl required for historical reasons, see https://github.com/adoptium/containers/issues/255
curl \
wget \
# java.lang.UnsatisfiedLinkError: libfontmanager.so: libfreetype.so.6: cannot open shared object file: No such file or directory
# java.lang.NoClassDefFoundError: Could not initialize class sun.awt.X11FontManager
# https://github.com/docker-library/openjdk/pull/235#issuecomment-424466077
fontconfig ttf-dejavu \
# utilities for keeping Alpine and OpenJDK CA certificates in sync
fontconfig \
# utilities for keeping Ubuntu and OpenJDK CA certificates in sync
# https://github.com/adoptium/containers/issues/293
ca-certificates p11-kit-trust \
# locales ensures proper character encoding and locale-specific behaviors using en_US.UTF-8
musl-locales musl-locales-lang \
ca-certificates p11-kit \
# jlink --strip-debug on 13+ needs objcopy: https://github.com/docker-library/openjdk/issues/351
# Error: java.io.IOException: Cannot run program "objcopy": error=2, No such file or directory
binutils \
tzdata \
bash \
# locales ensures proper character encoding and locale-specific behaviors using en_US.UTF-8
locales \
nano \
curl \
; \
rm -rf /var/cache/apk/*
echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen; \
locale-gen en_US.UTF-8; \
rm -rf /var/lib/apt/lists/*
ENV JAVA_VERSION jdk-17.0.9+9
RUN wget https://github.com/xerial/sqlite-jdbc/releases/download/3.44.1.0/sqlite-jdbc-3.44.1.0.jar && \
unzip -j sqlite-jdbc-*.jar "org/sqlite/native/$(uname -s)/$(uname -m)/libsqlitejdbc.so" && \
mv libsqlitejdbc.so /usr/lib && \
rm -rf sqlite-jdbc-*.jar
ENV LANG=en_US.UTF-8
ENV JAVA_HOME=/opt/java/openjdk
ENV JAVA_HOME=/opt/java/openjdk
COPY --from=eclipse-temurin:17-alpine $JAVA_HOME $JAVA_HOME
COPY --from=eclipse-temurin:17 $JAVA_HOME $JAVA_HOME
ENV PATH="${JAVA_HOME}/bin:${PATH}"
RUN set -eux; \
# https://github.com/docker-library/openjdk/issues/331#issuecomment-498834472
find "$JAVA_HOME/lib" -name '*.so' -exec dirname '{}' ';' | sort -u > /etc/ld.so.conf.d/docker-openjdk.conf; \
ldconfig; \
# https://github.com/docker-library/openjdk/issues/212#issuecomment-420979840
# https://openjdk.java.net/jeps/341
java -Xshare:dump;
### Patch java security
COPY java.security* ${JAVA_HOME}/conf/security/java.security
COPY cloudbeaver /opt/cloudbeaver
RUN find /opt/cloudbeaver -type d -exec chmod 775 {} \;
WORKDIR /opt/cloudbeaver/
EXPOSE 8978
RUN find /opt/cloudbeaver -type d -exec chmod 775 {} \;
WORKDIR /opt/cloudbeaver/
ENTRYPOINT ["./run-server.sh"]
+1 -1
View File
@@ -1,4 +1,4 @@
{
"projects": ["../dbeaver", "../cloudbeaver/server"],
"projects": ["../dbeaver-common", "../dbeaver", "../cloudbeaver/server"],
"targetPlatform": "./org.jkiss.cloudbeaver.tp.target"
}
+2
View File
@@ -0,0 +1,2 @@
dbeaver-common
dbeaver
@@ -3,8 +3,8 @@ Bundle-ManifestVersion: 2
Bundle-Vendor: DBeaver Corp
Bundle-Name: Cloudbeaver Web Model
Bundle-SymbolicName: io.cloudbeaver.model;singleton:=true
Bundle-Version: 1.0.44.qualifier
Bundle-Release-Date: 20240108
Bundle-Version: 1.0.47.qualifier
Bundle-Release-Date: 20240219
Bundle-RequiredExecutionEnvironment: JavaSE-17
Bundle-ActivationPolicy: lazy
Bundle-ClassPath: .
+1 -1
View File
@@ -10,7 +10,7 @@
<relativePath>../</relativePath>
</parent>
<artifactId>io.cloudbeaver.model</artifactId>
<version>1.0.44-SNAPSHOT</version>
<version>1.0.47-SNAPSHOT</version>
<packaging>eclipse-plugin</packaging>
</project>
@@ -1,6 +1,6 @@
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2023 DBeaver Corp and others
* Copyright (C) 2010-2024 DBeaver Corp and others
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -1,6 +1,6 @@
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2023 DBeaver Corp and others
* Copyright (C) 2010-2024 DBeaver Corp and others
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -22,19 +22,21 @@ import org.jkiss.dbeaver.model.rm.RMConstants;
/**
* General constants
*/
public class DBWConstants {
public interface DBWConstants {
public static final String PERMISSION_ADMIN = DBAPermissionRealm.PERMISSION_ADMIN;
String PERMISSION_ADMIN = DBAPermissionRealm.PERMISSION_ADMIN;
public static final String PERMISSION_CONFIGURATION_MANAGER = RMConstants.PERMISSION_CONFIGURATION_MANAGER;
public static final String PERMISSION_PRIVATE_PROJECT_ACCESS = "private-project-access";
String PERMISSION_CONFIGURATION_MANAGER = RMConstants.PERMISSION_CONFIGURATION_MANAGER;
String PERMISSION_PRIVATE_PROJECT_ACCESS = "private-project-access";
String PERMISSION_SECRET_MANAGER = "secret-manager";
public static final String PERMISSION_EDIT_STRUCTURE = "edit-meta";
public static final String PERMISSION_EDIT_DATA = "edit-data";
public static final String STATE_ATTR_SIGN_IN_STATE = "state.signin";
String PERMISSION_EDIT_STRUCTURE = "edit-meta";
String PERMISSION_EDIT_DATA = "edit-data";
public enum SignInState {
String STATE_ATTR_SIGN_IN_STATE = "state.signin";
enum SignInState {
GLOBAL,
EMBEDDED
}
@@ -1,6 +1,6 @@
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2023 DBeaver Corp and others
* Copyright (C) 2010-2024 DBeaver Corp and others
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -1,6 +1,6 @@
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2023 DBeaver Corp and others
* Copyright (C) 2010-2024 DBeaver Corp and others
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -1,6 +1,6 @@
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2023 DBeaver Corp and others
* Copyright (C) 2010-2024 DBeaver Corp and others
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -1,6 +1,6 @@
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2023 DBeaver Corp and others
* Copyright (C) 2010-2024 DBeaver Corp and others
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -1,6 +1,6 @@
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2023 DBeaver Corp and others
* Copyright (C) 2010-2024 DBeaver Corp and others
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -1,6 +1,6 @@
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2023 DBeaver Corp and others
* Copyright (C) 2010-2024 DBeaver Corp and others
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -1,6 +1,6 @@
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2023 DBeaver Corp and others
* Copyright (C) 2010-2024 DBeaver Corp and others
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -1,6 +1,6 @@
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2023 DBeaver Corp and others
* Copyright (C) 2010-2024 DBeaver Corp and others
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -1,6 +1,6 @@
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2023 DBeaver Corp and others
* Copyright (C) 2010-2024 DBeaver Corp and others
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -1,6 +1,6 @@
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2023 DBeaver Corp and others
* Copyright (C) 2010-2024 DBeaver Corp and others
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -1,6 +1,6 @@
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2023 DBeaver Corp and others
* Copyright (C) 2010-2024 DBeaver Corp and others
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -1,6 +1,6 @@
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2023 DBeaver Corp and others
* Copyright (C) 2010-2024 DBeaver Corp and others
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -1,6 +1,6 @@
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2023 DBeaver Corp and others
* Copyright (C) 2010-2024 DBeaver Corp and others
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -19,6 +19,7 @@ package io.cloudbeaver.auth;
import org.jkiss.code.NotNull;
import org.jkiss.code.Nullable;
import org.jkiss.dbeaver.DBException;
import org.jkiss.dbeaver.model.security.SMAuthProviderCustomConfiguration;
import java.util.Map;
@@ -26,17 +27,18 @@ import java.util.Map;
* Federated auth provider.
* Provides links to external auth resource
*/
public interface SMAuthProviderFederated {
public interface SMAuthProviderFederated extends SMSignOutLinkProvider {
/**
* Returns new identifying credentials which can be used to find/create user in database
*/
@NotNull
String getSignInLink(String id, @NotNull Map<String, Object> providerConfig) throws DBException;
@NotNull
String getSignOutLink(String id, @NotNull Map<String, Object> providerConfig) throws DBException;
@Override
default String getUserSignOutLink(
@NotNull SMAuthProviderCustomConfiguration providerConfig,
@NotNull Map<String, Object> userCredentials
) throws DBException {
return getCommonSignOutLink(providerConfig.getId(), providerConfig.getParameters());
}
@Nullable
String getMetadataLink(String id, @NotNull Map<String, Object> providerConfig) throws DBException;
@@ -1,6 +1,6 @@
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2023 DBeaver Corp and others
* Copyright (C) 2010-2024 DBeaver Corp and others
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -1,6 +1,6 @@
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2023 DBeaver Corp and others
* Copyright (C) 2010-2024 DBeaver Corp and others
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -0,0 +1,37 @@
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2024 DBeaver Corp and others
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package io.cloudbeaver.auth;
import org.jkiss.code.NotNull;
import org.jkiss.dbeaver.DBException;
import org.jkiss.dbeaver.model.security.SMAuthProviderCustomConfiguration;
import java.util.Map;
public interface SMSignOutLinkProvider {
/**
* @return a common link for logout, not related with the user context
*/
@NotNull
String getCommonSignOutLink(String id, @NotNull Map<String, Object> providerConfig) throws DBException;
String getUserSignOutLink(
@NotNull SMAuthProviderCustomConfiguration providerConfig,
@NotNull Map<String, Object> userCredentials
) throws DBException;
}
@@ -1,6 +1,6 @@
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2023 DBeaver Corp and others
* Copyright (C) 2010-2024 DBeaver Corp and others
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -1,6 +1,6 @@
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2023 DBeaver Corp and others
* Copyright (C) 2010-2024 DBeaver Corp and others
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -1,6 +1,6 @@
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2023 DBeaver Corp and others
* Copyright (C) 2010-2024 DBeaver Corp and others
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -1,6 +1,6 @@
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2023 DBeaver Corp and others
* Copyright (C) 2010-2024 DBeaver Corp and others
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -31,4 +31,8 @@ public interface SMProvisioner {
@NotNull SMAuthProviderCustomConfiguration customConfiguration,
@NotNull SMProvisioningFilter filter
) throws DBException;
default boolean isAuthRoleProvided(SMAuthProviderCustomConfiguration configuration) {
return false;
}
}
@@ -1,6 +1,6 @@
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2023 DBeaver Corp and others
* Copyright (C) 2010-2024 DBeaver Corp and others
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -1,6 +1,6 @@
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2023 DBeaver Corp and others
* Copyright (C) 2010-2024 DBeaver Corp and others
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -1,6 +1,6 @@
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2023 DBeaver Corp and others
* Copyright (C) 2010-2024 DBeaver Corp and others
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -1,6 +1,6 @@
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2023 DBeaver Corp and others
* Copyright (C) 2010-2024 DBeaver Corp and others
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -443,4 +443,10 @@ public class WebConnectionInfo {
closeListeners.add(listener);
}
@Property
public int getKeepAliveInterval() {
return dataSourceContainer.getConnectionConfiguration().getKeepAliveInterval();
}
}
@@ -1,6 +1,6 @@
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2023 DBeaver Corp and others
* Copyright (C) 2010-2024 DBeaver Corp and others
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -1,6 +1,6 @@
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2023 DBeaver Corp and others
* Copyright (C) 2010-2024 DBeaver Corp and others
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -18,14 +18,10 @@ package io.cloudbeaver.model;
import org.jkiss.code.NotNull;
import org.jkiss.dbeaver.model.net.DBWHandlerConfiguration;
import org.jkiss.dbeaver.model.net.DBWHandlerDescriptor;
import org.jkiss.dbeaver.model.net.DBWHandlerType;
import org.jkiss.dbeaver.model.net.ssh.SSHConstants;
import org.jkiss.dbeaver.model.preferences.DBPPropertyDescriptor;
import org.jkiss.dbeaver.model.preferences.DBPPropertySource;
import org.jkiss.dbeaver.model.runtime.VoidProgressMonitor;
import org.jkiss.dbeaver.registry.RegistryConstants;
import org.jkiss.dbeaver.runtime.properties.PropertySourceMap;
import org.jkiss.utils.CommonUtils;
import java.util.LinkedHashMap;
@@ -1,6 +1,6 @@
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2023 DBeaver Corp and others
* Copyright (C) 2010-2024 DBeaver Corp and others
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -1,6 +1,6 @@
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2023 DBeaver Corp and others
* Copyright (C) 2010-2024 DBeaver Corp and others
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -1,6 +1,6 @@
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2023 DBeaver Corp and others
* Copyright (C) 2010-2024 DBeaver Corp and others
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -27,7 +27,6 @@ import org.jkiss.dbeaver.model.rm.RMResourceType;
import org.jkiss.utils.ArrayUtils;
import java.util.ArrayList;
import java.util.Collections;
public class WebProjectInfo {
private final WebSession session;
@@ -1,6 +1,6 @@
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2023 DBeaver Corp and others
* Copyright (C) 2010-2024 DBeaver Corp and others
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -1,6 +1,6 @@
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2023 DBeaver Corp and others
* Copyright (C) 2010-2024 DBeaver Corp and others
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -1,6 +1,6 @@
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2023 DBeaver Corp and others
* Copyright (C) 2010-2024 DBeaver Corp and others
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -1,6 +1,6 @@
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2023 DBeaver Corp and others
* Copyright (C) 2010-2024 DBeaver Corp and others
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -1,6 +1,6 @@
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2023 DBeaver Corp and others
* Copyright (C) 2010-2024 DBeaver Corp and others
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -1,6 +1,6 @@
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2023 DBeaver Corp and others
* Copyright (C) 2010-2024 DBeaver Corp and others
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -1,6 +1,6 @@
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2023 DBeaver Corp and others
* Copyright (C) 2010-2024 DBeaver Corp and others
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -21,8 +21,13 @@ import org.jkiss.code.Nullable;
import org.jkiss.dbeaver.DBException;
import org.jkiss.dbeaver.model.auth.SMCredentialsProvider;
import org.jkiss.dbeaver.model.auth.SMSessionContext;
import org.jkiss.dbeaver.model.exec.DBCFeatureNotSupportedException;
import org.jkiss.dbeaver.model.secret.DBSSecretController;
import org.jkiss.dbeaver.model.secret.DBSSecretControllerAuthorized;
import org.jkiss.dbeaver.model.secret.DBSSecretObject;
import org.jkiss.dbeaver.model.secret.DBSSecretValue;
import java.util.List;
/**
* Void secret controller.
@@ -37,15 +42,21 @@ public class VoidSecretController implements DBSSecretController, DBSSecretContr
@Nullable
@Override
public String getSecretValue(@NotNull String secretId) {
public String getPrivateSecretValue(@NotNull String secretId) {
return null;
}
@Override
public void setSecretValue(@NotNull String secretId, @Nullable String secretValue) throws DBException {
public void setPrivateSecretValue(@NotNull String secretId, @Nullable String secretValue) throws DBException {
throw new DBException("Secret controller is read-only");
}
@NotNull
@Override
public List<DBSSecretValue> discoverCurrentUserSecrets(@NotNull DBSSecretObject secretObject) throws DBException {
throw new DBCFeatureNotSupportedException("Secrets discovery not supported");
}
@Override
public void flushChanges() {
}
@@ -1,6 +1,6 @@
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2023 DBeaver Corp and others
* Copyright (C) 2010-2024 DBeaver Corp and others
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -1,6 +1,6 @@
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2023 DBeaver Corp and others
* Copyright (C) 2010-2024 DBeaver Corp and others
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -1,6 +1,6 @@
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2023 DBeaver Corp and others
* Copyright (C) 2010-2024 DBeaver Corp and others
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -20,6 +20,8 @@ package io.cloudbeaver.model.app;
import io.cloudbeaver.auth.CBAuthConstants;
import org.jkiss.dbeaver.DBException;
import java.util.List;
public interface WebAuthApplication extends WebApplication {
WebAuthConfiguration getAuthConfiguration();
@@ -30,4 +32,6 @@ public interface WebAuthApplication extends WebApplication {
}
void flushConfiguration() throws DBException;
String getDefaultAuthRole();
}
@@ -1,6 +1,6 @@
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2023 DBeaver Corp and others
* Copyright (C) 2010-2024 DBeaver Corp and others
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -1,6 +1,6 @@
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2023 DBeaver Corp and others
* Copyright (C) 2010-2024 DBeaver Corp and others
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -1,6 +1,6 @@
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2023 DBeaver Corp
* Copyright (C) 2010-2024 DBeaver Corp
*
* All Rights Reserved.
*
@@ -1,6 +1,6 @@
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2023 DBeaver Corp
* Copyright (C) 2010-2024 DBeaver Corp
*
* All Rights Reserved.
*
@@ -1,6 +1,6 @@
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2023 DBeaver Corp
* Copyright (C) 2010-2024 DBeaver Corp
*
* All Rights Reserved.
*
@@ -1,6 +1,6 @@
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2023 DBeaver Corp and others
* Copyright (C) 2010-2024 DBeaver Corp and others
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -1,6 +1,6 @@
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2023 DBeaver Corp and others
* Copyright (C) 2010-2024 DBeaver Corp and others
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -1155,6 +1155,11 @@ public class LocalResourceController implements RMController {
return new Builder(workspace, credentialsProvider, smControllerSupplier);
}
@Override
public String ping() {
return "pong (RM)";
}
public static final class Builder {
private final SMCredentialsProvider credentialsProvider;
private final Supplier<SMController> smController;
@@ -1,6 +1,6 @@
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2023 DBeaver Corp and others
* Copyright (C) 2010-2024 DBeaver Corp and others
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -1,6 +1,6 @@
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2023 DBeaver Corp and others
* Copyright (C) 2010-2024 DBeaver Corp and others
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -1,6 +1,6 @@
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2023 DBeaver Corp and others
* Copyright (C) 2010-2024 DBeaver Corp and others
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -1,6 +1,6 @@
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2023 DBeaver Corp and others
* Copyright (C) 2010-2024 DBeaver Corp and others
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -1,6 +1,6 @@
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2023 DBeaver Corp and others
* Copyright (C) 2010-2024 DBeaver Corp and others
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -1,6 +1,6 @@
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2023 DBeaver Corp and others
* Copyright (C) 2010-2024 DBeaver Corp and others
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -1,6 +1,6 @@
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2023 DBeaver Corp and others
* Copyright (C) 2010-2024 DBeaver Corp and others
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -1,6 +1,6 @@
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2023 DBeaver Corp and others
* Copyright (C) 2010-2024 DBeaver Corp and others
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -1,6 +1,6 @@
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2023 DBeaver Corp
* Copyright (C) 2010-2024 DBeaver Corp
*
* All Rights Reserved.
*
@@ -1,6 +1,6 @@
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2023 DBeaver Corp and others
* Copyright (C) 2010-2024 DBeaver Corp and others
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -1,6 +1,6 @@
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2023 DBeaver Corp and others
* Copyright (C) 2010-2024 DBeaver Corp and others
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -131,8 +131,6 @@ public class WebAuthInfo implements SMSessionPrincipal {
authProviderInstance.closeSession(session, authSession);
} catch (Exception e) {
log.error(e);
} finally {
authSession = null;
}
}
}
@@ -1,6 +1,6 @@
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2023 DBeaver Corp and others
* Copyright (C) 2010-2024 DBeaver Corp and others
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -1,6 +1,6 @@
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2023 DBeaver Corp and others
* Copyright (C) 2010-2024 DBeaver Corp and others
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -614,7 +614,7 @@ public class WebSession extends BaseWebSession
super.close();
}
private void clearAuthTokens() throws DBException {
private List<WebAuthInfo> clearAuthTokens() throws DBException {
ArrayList<WebAuthInfo> tokensCopy;
synchronized (authTokens) {
tokensCopy = new ArrayList<>(this.authTokens);
@@ -623,6 +623,7 @@ public class WebSession extends BaseWebSession
removeAuthInfo(ai);
}
resetAuthToken();
return tokensCopy;
}
public DBRProgressMonitor getProgressMonitor() {
@@ -873,18 +874,23 @@ public class WebSession extends BaseWebSession
}
}
public void removeAuthInfo(String providerId) throws DBException {
public List<WebAuthInfo> removeAuthInfo(String providerId) throws DBException {
List<WebAuthInfo> oldInfo;
if (providerId == null) {
clearAuthTokens();
oldInfo = clearAuthTokens();
} else {
WebAuthInfo authInfo = getAuthInfo(providerId);
if (authInfo != null) {
removeAuthInfo(authInfo);
oldInfo = List.of(authInfo);
} else {
oldInfo = List.of();
}
}
if (authTokens.isEmpty()) {
resetUserState();
}
return oldInfo;
}
public List<DBACredentialsProvider> getContextCredentialsProviders() {
@@ -921,7 +927,7 @@ public class WebSession extends BaseWebSession
.create();
credGson.fromJson(credGson.toJsonTree(configuration.getAuthProperties()), credentials.getClass());
configuration.getAuthModel().saveCredentials(dataSourceContainer, configuration, credentials);
configuration.getAuthModel().provideCredentials(dataSourceContainer, configuration, credentials);
} catch (DBException e) {
addSessionError(e);
log.error(e);
@@ -1,6 +1,6 @@
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2023 DBeaver Corp and others
* Copyright (C) 2010-2024 DBeaver Corp and others
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -1,6 +1,6 @@
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2023 DBeaver Corp and others
* Copyright (C) 2010-2024 DBeaver Corp and others
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -18,8 +18,8 @@ package io.cloudbeaver.model.session;
import org.jkiss.code.NotNull;
import org.jkiss.code.Nullable;
import org.jkiss.dbeaver.model.websocket.event.WSProjectResourceEvent;
import org.jkiss.dbeaver.model.websocket.event.WSEvent;
import org.jkiss.dbeaver.model.websocket.event.WSProjectResourceEvent;
import java.util.Set;
import java.util.concurrent.CopyOnWriteArraySet;
@@ -1,6 +1,6 @@
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2023 DBeaver Corp and others
* Copyright (C) 2010-2024 DBeaver Corp and others
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -1,6 +1,6 @@
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2023 DBeaver Corp and others
* Copyright (C) 2010-2024 DBeaver Corp and others
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -1,6 +1,6 @@
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2023 DBeaver Corp and others
* Copyright (C) 2010-2024 DBeaver Corp and others
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -1,6 +1,6 @@
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2023 DBeaver Corp and others
* Copyright (C) 2010-2024 DBeaver Corp and others
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -1,6 +1,6 @@
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2023 DBeaver Corp and others
* Copyright (C) 2010-2024 DBeaver Corp and others
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -1,6 +1,6 @@
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2023 DBeaver Corp and others
* Copyright (C) 2010-2024 DBeaver Corp and others
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -1,6 +1,6 @@
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2023 DBeaver Corp and others
* Copyright (C) 2010-2024 DBeaver Corp and others
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -18,6 +18,7 @@ package io.cloudbeaver.registry;
import io.cloudbeaver.auth.CBAuthConstants;
import io.cloudbeaver.auth.SMAuthProviderFederated;
import io.cloudbeaver.auth.SMSignOutLinkProvider;
import io.cloudbeaver.utils.WebAppUtils;
import org.jkiss.dbeaver.DBException;
import org.jkiss.dbeaver.Log;
@@ -85,8 +86,8 @@ public class WebAuthProviderConfiguration {
@Property
public String getSignOutLink() throws DBException {
SMAuthProvider<?> instance = providerDescriptor.getInstance();
return instance instanceof SMAuthProviderFederated
? ((SMAuthProviderFederated) instance).getSignOutLink(getId(), config.getParameters())
return instance instanceof SMSignOutLinkProvider
? ((SMSignOutLinkProvider) instance).getCommonSignOutLink(getId(), config.getParameters())
: null;
}
@@ -1,6 +1,6 @@
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2023 DBeaver Corp and others
* Copyright (C) 2010-2024 DBeaver Corp and others
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -49,13 +49,14 @@ public class WebAuthProviderDescriptor extends AbstractDescriptor {
private final Map<SMSubjectType, List<DBPPropertyDescriptor>> metaParameters = new HashMap<>();
private SMAuthProvider<?> instance;
private final DBPImage icon;
private final Map<String, PropertyDescriptor> configurationParameters = new LinkedHashMap<>();
private final Map<String, WebAuthProviderProperty> configurationParameters = new LinkedHashMap<>();
private final List<SMAuthCredentialsProfile> credentialProfiles = new ArrayList<>();
private final boolean configurable;
private final boolean trusted;
private final boolean isPrivate;
private final String[] requiredFeatures;
private final boolean isRequired;
private final String[] types;
public WebAuthProviderDescriptor(IConfigurationElement cfg) {
super(cfg);
@@ -68,13 +69,9 @@ public class WebAuthProviderDescriptor extends AbstractDescriptor {
this.isRequired = CommonUtils.toBoolean(cfg.getAttribute("required"));
for (IConfigurationElement cfgElement : cfg.getChildren("configuration")) {
for (IConfigurationElement propGroup : ArrayUtils.safeArray(cfgElement.getChildren(PropertyDescriptor.TAG_PROPERTY_GROUP))) {
String category = propGroup.getAttribute(PropertyDescriptor.ATTR_LABEL);
IConfigurationElement[] propElements = propGroup.getChildren(PropertyDescriptor.TAG_PROPERTY);
for (IConfigurationElement prop : propElements) {
PropertyDescriptor propertyDescriptor = new PropertyDescriptor(category, prop);
configurationParameters.put(CommonUtils.toString(propertyDescriptor.getId()), propertyDescriptor);
}
List<WebAuthProviderProperty> properties = WebAuthProviderRegistry.readProperties(cfgElement);
for (WebAuthProviderProperty property : properties) {
configurationParameters.put(CommonUtils.toString(property.getId()), property);
}
}
for (IConfigurationElement credElement : cfg.getChildren("credentials")) {
@@ -90,11 +87,10 @@ public class WebAuthProviderDescriptor extends AbstractDescriptor {
}
String rfList = cfg.getAttribute("requiredFeatures");
if (!CommonUtils.isEmpty(rfList)) {
requiredFeatures = rfList.split(",");
} else {
requiredFeatures = null;
}
requiredFeatures = CommonUtils.isEmpty(rfList) ? null : rfList.split(",");
String typesAttr = cfg.getAttribute("categories");
this.types = CommonUtils.isEmpty(typesAttr) ? new String[0] : typesAttr.split(",");
}
@NotNull
@@ -130,7 +126,7 @@ public class WebAuthProviderDescriptor extends AbstractDescriptor {
return isRequired;
}
public List<PropertyDescriptor> getConfigurationParameters() {
public List<WebAuthProviderProperty> getConfigurationParameters() {
return new ArrayList<>(configurationParameters.values());
}
@@ -198,4 +194,7 @@ public class WebAuthProviderDescriptor extends AbstractDescriptor {
return metaParameters.get(subjectType);
}
public String[] getTypes() {
return types;
}
}
@@ -0,0 +1,45 @@
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2024 DBeaver Corp and others
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package io.cloudbeaver.registry;
import org.eclipse.core.runtime.IConfigurationElement;
import org.jkiss.code.NotNull;
import org.jkiss.code.Nullable;
import org.jkiss.dbeaver.model.impl.PropertyDescriptor;
public class WebAuthProviderProperty extends PropertyDescriptor {
private final String[] requiredFeatures;
@Nullable
private final String type;
public WebAuthProviderProperty(String category, IConfigurationElement config) {
super(category, config);
String featuresAttr = config.getAttribute("requiredFeatures");
this.requiredFeatures = featuresAttr == null ? new String[0] : featuresAttr.split(",");
this.type = config.getAttribute("type");
}
@NotNull
public String[] getRequiredFeatures() {
return requiredFeatures;
}
@Nullable
public String getType() {
return type;
}
}
@@ -1,6 +1,6 @@
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2023 DBeaver Corp and others
* Copyright (C) 2010-2024 DBeaver Corp and others
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -20,7 +20,9 @@ import org.eclipse.core.runtime.IConfigurationElement;
import org.eclipse.core.runtime.IExtensionRegistry;
import org.eclipse.core.runtime.Platform;
import org.jkiss.dbeaver.Log;
import org.jkiss.dbeaver.model.impl.PropertyDescriptor;
import org.jkiss.dbeaver.registry.RegistryConstants;
import org.jkiss.utils.ArrayUtils;
import java.util.ArrayList;
import java.util.LinkedHashMap;
@@ -33,6 +35,7 @@ public class WebAuthProviderRegistry {
private static final String TAG_AUTH_PROVIDER = "authProvider"; //$NON-NLS-1$
private static final String TAG_AUTH_PROVIDER_DISABLE = "authProviderDisable"; //$NON-NLS-1$
private static final String TAG_COMMON_PROVIDER_PROPERTIES = "commonProviderProperties"; //$NON-NLS-1$
private static WebAuthProviderRegistry instance = null;
@@ -45,6 +48,7 @@ public class WebAuthProviderRegistry {
}
private final Map<String, WebAuthProviderDescriptor> authProviders = new LinkedHashMap<>();
private final List<WebCommonAuthProviderPropertyDescriptor> commonProperties = new ArrayList<>();
private WebAuthProviderRegistry() {
}
@@ -57,6 +61,9 @@ public class WebAuthProviderRegistry {
if (TAG_AUTH_PROVIDER.equals(ext.getName())) {
WebAuthProviderDescriptor providerDescriptor = new WebAuthProviderDescriptor(ext);
this.authProviders.put(providerDescriptor.getId(), providerDescriptor);
} else if (TAG_COMMON_PROVIDER_PROPERTIES.equals(ext.getName())) {
var commonProperties = new WebCommonAuthProviderPropertyDescriptor(ext);
this.commonProperties.add(commonProperties);
}
}
@@ -74,6 +81,23 @@ public class WebAuthProviderRegistry {
}
}
static List<WebAuthProviderProperty> readProperties(IConfigurationElement root) {
List<WebAuthProviderProperty> properties = new ArrayList<>();
for (IConfigurationElement propGroup : ArrayUtils.safeArray(root.getChildren(PropertyDescriptor.TAG_PROPERTY_GROUP))) {
String category = propGroup.getAttribute(PropertyDescriptor.ATTR_LABEL);
IConfigurationElement[] propElements = propGroup.getChildren(PropertyDescriptor.TAG_PROPERTY);
for (IConfigurationElement prop : propElements) {
WebAuthProviderProperty propertyDescriptor = new WebAuthProviderProperty(category, prop);
properties.add(propertyDescriptor);
}
}
return properties;
}
public List<WebCommonAuthProviderPropertyDescriptor> getCommonProperties() {
return commonProperties;
}
public List<WebAuthProviderDescriptor> getAuthProviders() {
return new ArrayList<>(authProviders.values());
}
@@ -0,0 +1,74 @@
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2024 DBeaver Corp and others
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package io.cloudbeaver.registry;
import org.eclipse.core.runtime.IConfigurationElement;
import org.jkiss.code.NotNull;
import org.jkiss.dbeaver.model.impl.AbstractDescriptor;
import org.jkiss.utils.CommonUtils;
import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
public class WebCommonAuthProviderPropertyDescriptor extends AbstractDescriptor {
private final Set<String> supportedProviderCategories = new HashSet<>();
private final Set<String> exclude = new HashSet<>();
@NotNull
private final List<WebAuthProviderProperty> configurationParameters;
public WebCommonAuthProviderPropertyDescriptor(IConfigurationElement cfg) {
super(cfg);
configurationParameters = WebAuthProviderRegistry.readProperties(cfg);
String supportedCategoriesAttr = cfg.getAttribute("supportedProviderCategories");
if (CommonUtils.isNotEmpty(supportedCategoriesAttr)) {
supportedProviderCategories.addAll(Arrays.stream(supportedCategoriesAttr.split(",")).toList());
}
String excludeAttr = cfg.getAttribute("exclude");
if (CommonUtils.isNotEmpty(excludeAttr)) {
exclude.addAll(Arrays.stream(excludeAttr.split(",")).toList());
}
}
@NotNull
public List<WebAuthProviderProperty> getConfigurationParameters() {
return configurationParameters;
}
private boolean supportAllProviders() {
return supportedProviderCategories.isEmpty() && exclude.isEmpty();
}
public boolean isApplicableFor(@NotNull WebAuthProviderDescriptor providerDescriptor) {
if (supportAllProviders()) {
return true;
}
boolean supported = false;
for (String type : providerDescriptor.getTypes()) {
if (exclude.contains(type)) {
return false;
}
if (supportedProviderCategories.contains(type)) {
supported = true;
}
}
return supported;
}
}
@@ -1,6 +1,6 @@
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2023 DBeaver Corp and others
* Copyright (C) 2010-2024 DBeaver Corp and others
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -1,6 +1,6 @@
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2023 DBeaver Corp and others
* Copyright (C) 2010-2024 DBeaver Corp and others
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -1,6 +1,6 @@
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2023 DBeaver Corp and others
* Copyright (C) 2010-2024 DBeaver Corp and others
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -1,6 +1,6 @@
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2023 DBeaver Corp and others
* Copyright (C) 2010-2024 DBeaver Corp and others
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -1,6 +1,6 @@
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2023 DBeaver Corp and others
* Copyright (C) 2010-2024 DBeaver Corp and others
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -1,6 +1,6 @@
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2023 DBeaver Corp and others
* Copyright (C) 2010-2024 DBeaver Corp and others
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -1,6 +1,6 @@
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2023 DBeaver Corp and others
* Copyright (C) 2010-2024 DBeaver Corp and others
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -1,6 +1,6 @@
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2023 DBeaver Corp and others
* Copyright (C) 2010-2024 DBeaver Corp and others
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -1,6 +1,6 @@
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2023 DBeaver Corp and others
* Copyright (C) 2010-2024 DBeaver Corp and others
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -1,6 +1,6 @@
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2023 DBeaver Corp and others
* Copyright (C) 2010-2024 DBeaver Corp and others
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.

Some files were not shown because too many files have changed in this diff Show More