Skip to content

dbeaver/pro#9222 validate data transfer by using product settings#4394

Open
yagudin10 wants to merge 2 commits into
develfrom
9222-data-transfer-validation
Open

dbeaver/pro#9222 validate data transfer by using product settings#4394
yagudin10 wants to merge 2 commits into
develfrom
9222-data-transfer-validation

Conversation

@yagudin10

Copy link
Copy Markdown
Member

No description provided.

@yagudin10 yagudin10 requested a review from HocKu7 June 11, 2026 14:01
@codacy-production

codacy-production Bot commented Jun 11, 2026

Copy link
Copy Markdown

Up to standards ✅

🟢 Issues 0 issues

Results:
0 new issues

View in Codacy

🟢 Metrics 0 duplication

Metric Results
Duplication 0

View in Codacy

NEW Get contextual insights on your PRs based on Codacy's metrics, along with PR and Jira context, without leaving GitHub. Enable AI reviewer
TIP This summary will be updated as you push new changes.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates CloudBeaver server-side data transfer (export/import) permission validation, aligning behavior with product settings (notably for Community edition) and tightening some null-safety/parameter handling.

Changes:

  • Add export permission validation using Community product settings (with admin override) and block export when disabled.
  • Add import restriction based on Community product settings and adjust servlet-side validation.
  • Add nullability annotations and defensive checks for missing data transfer processors; introduce legacy preference keys in CBConstants.

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 4 comments.

File Description
server/bundles/io.cloudbeaver.service.data.transfer/src/io/cloudbeaver/service/data/transfer/impl/WebServiceDataTransfer.java Adds export permission validation via product settings, validates processor IDs, and refines nullability annotations.
server/bundles/io.cloudbeaver.service.data.transfer/src/io/cloudbeaver/service/data/transfer/impl/WebDataTransferImportServlet.java Adds product-settings-based import disabling logic (Community) and refactors permission check into a helper.
server/bundles/io.cloudbeaver.service.data.transfer/src/io/cloudbeaver/service/data/transfer/DBWServiceDataTransfer.java Adds nullability annotations and requires global export permission for export actions.
server/bundles/io.cloudbeaver.model/src/io/cloudbeaver/server/CBConstants.java Adds legacy preference keys for import/export disable flags.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

return;
}
if (!session.hasGlobalPermission(DBWConstants.GLOBAL_PERMISSION_DATA_EDITOR_IMPORT)) {
if (validateImportPermission(session)) {
Comment on lines +140 to +146
private boolean validateImportPermission(@NotNull WebSession session) {
if (WebAppUtils.getWebApplication().isCommunity()) {
Map<String, Object> productSettings = WebAppUtils.getWebApplication().getServerConfiguration().getProductSettings();
return JSONUtils.getBoolean(productSettings, CBConstants.PREF_DATA_EDITOR_IMPORT_DISABLED_OLD, false);
}
return !session.hasGlobalPermission(DBWConstants.GLOBAL_PERMISSION_DATA_EDITOR_IMPORT);
}
@NotNull DataTransferProcessorDescriptor processor,
@NotNull DBSDataContainer dataContainer,
@NotNull WebDataTransferParameters parameters,
@NotNull WebSQLResultsInfo resultsInfo,
Comment on lines +235 to +236
@NotNull
public WebAsyncTaskInfo asyncImportDataContainer(
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants