Skip to content

dbeaver/pro#11108 Add External DAM transport contracts and backend client - #16

Open
vkirst wants to merge 18 commits into
develfrom
dbeaver/pro#11108-desktop-websocket-transport
Open

vkirst wants to merge 18 commits into
develfrom
dbeaver/pro#11108-desktop-websocket-transport

Conversation

@vkirst

@vkirst vkirst commented Oct 20, 2026

Copy link
Copy Markdown
Member

Summary

  • Add shared Desktop WebSocket contracts: hello/ready registration, connection identity, topic-based messages and subscriptions.
  • Add a backend Java client for the service-authenticated External DAM GraphQL API.
  • Scope connection listing and targeted sends by account; keep service credentials separate from Desktop JWT authentication.
  • Add protocol, model and client tests, and document the API contract and delivery guarantees.

Closes dbeaver/pro#11108

@vkirst
vkirst marked this pull request as ready for review October 20, 2026 08:32
@vkirst
vkirst requested a balanced review from Copilot October 20, 2026 08:43

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🔵 Needs a closer look

Protocol separation and OSGi visibility need correction, while shared-client transport guarantees still require human validation.

2 open issues
What changed in this PR

Adds an External DAM API module for Desktop messaging contracts and backend service integration.

Changes:

  • Defines WebSocket registration, connection identity, and topic-based messaging contracts.
  • Adds an account-scoped GraphQL client with separate service authentication.
  • Includes validation tests, delivery documentation, and Maven/OSGi integration.
File Description
apis/​pom.xml Registers the new module.
apis/​com.dbeaver.datadam.external.api/​src/​test/​java/​com/​dbeaver/​datadam/​external/​api/​model/​DDMessageTest.java Tests payload isolation and validation.
apis/​com.dbeaver.datadam.external.api/​src/​test/​java/​com/​dbeaver/​datadam/​external/​api/​model/​DDExternalDamConnectionTest.java Tests connection metadata.
apis/​com.dbeaver.datadam.external.api/​src/​test/​java/​com/​dbeaver/​datadam/​external/​api/​DDExternalDamProtocolTest.java Tests message encoding and decoding.
apis/​com.dbeaver.datadam.external.api/​src/​test/​java/​com/​dbeaver/​datadam/​external/​api/​DDExternalDamApiTest.java Tests service-secret validation.
apis/​com.dbeaver.datadam.external.api/​src/​test/​java/​com/​dbeaver/​datadam/​external/​api/​client/​DDExternalDamClientTest.java Tests requests, authentication, and failures.
apis/​com.dbeaver.datadam.external.api/​src/​main/​java/​com/​dbeaver/​datadam/​external/​api/​transport/​DDSubscription.java Defines subscription cleanup.
apis/​com.dbeaver.datadam.external.api/​src/​main/​java/​com/​dbeaver/​datadam/​external/​api/​transport/​DDMessageListener.java Defines message callbacks.
apis/​com.dbeaver.datadam.external.api/​src/​main/​java/​com/​dbeaver/​datadam/​external/​api/​transport/​DDMessageChannel.java Defines messaging and subscriptions.
apis/​com.dbeaver.datadam.external.api/​src/​main/​java/​com/​dbeaver/​datadam/​external/​api/​transport/​DDConnectionListener.java Defines connection callbacks.
apis/​com.dbeaver.datadam.external.api/​src/​main/​java/​com/​dbeaver/​datadam/​external/​api/​model/​DDReady.java Models registration acknowledgment.
apis/​com.dbeaver.datadam.external.api/​src/​main/​java/​com/​dbeaver/​datadam/​external/​api/​model/​DDMessage.java Models messages with isolated payloads.
apis/​com.dbeaver.datadam.external.api/​src/​main/​java/​com/​dbeaver/​datadam/​external/​api/​model/​DDHello.java Models Desktop registration metadata.
apis/​com.dbeaver.datadam.external.api/​src/​main/​java/​com/​dbeaver/​datadam/​external/​api/​model/​DDExternalDamConnection.java Models backend connection results.
apis/​com.dbeaver.datadam.external.api/​src/​main/​java/​com/​dbeaver/​datadam/​external/​api/​model/​DDConnectionInfo.java Models connection identity.
apis/​com.dbeaver.datadam.external.api/​src/​main/​java/​com/​dbeaver/​datadam/​external/​api/​exception/​DDExternalDamException.java Defines client exceptions.
apis/​com.dbeaver.datadam.external.api/​src/​main/​java/​com/​dbeaver/​datadam/​external/​api/​DDExternalDamProtocol.java Implements WebSocket message serialization.
apis/​com.dbeaver.datadam.external.api/​src/​main/​java/​com/​dbeaver/​datadam/​external/​api/​DDExternalDamApi.java Defines endpoint and authentication constants.
apis/​com.dbeaver.datadam.external.api/​src/​main/​java/​com/​dbeaver/​datadam/​external/​api/​client/​DDExternalDamClient.java Implements account-scoped GraphQL operations.
apis/​com.dbeaver.datadam.external.api/​README.md Documents authentication and delivery guarantees.
apis/​com.dbeaver.datadam.external.api/​pom.xml Configures dependencies and tests.
apis/​com.dbeaver.datadam.external.api/​META-INF/​MANIFEST.MF Declares OSGi exports and dependencies.
apis/​com.dbeaver.datadam.external.api/​build.properties Configures bundle packaging.

Review effort: Balanced

Comment thread apis/com.dbeaver.datadam.external.api/META-INF/MANIFEST.MF Outdated
@vkirst
vkirst requested a balanced review from Copilot October 21, 2026 11:46

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@vkirst

vkirst commented Oct 21, 2026

Copy link
Copy Markdown
Member Author

@codex review

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 21, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-23T07:39:47.729167Z f2bc61b Manual request
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 6edb503c35

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@vkirst

vkirst commented Oct 22, 2026

Copy link
Copy Markdown
Member Author

@codex review

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: e289d469d2

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@vkirst

vkirst commented Oct 23, 2026

Copy link
Copy Markdown
Member Author

@codex review

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Bravo.

Reviewed commit: f2bc61b59d

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

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.

2 participants