Skip to content

Java docs and security - #1941

Open
robmoffat wants to merge 170 commits into
mainfrom
java-docs-and-security
Open

Java docs and security#1941
robmoffat wants to merge 170 commits into
mainfrom
java-docs-and-security

Conversation

@robmoffat

Copy link
Copy Markdown
Member

This pull request introduces significant updates to the WebSocket Connection Protocol (WSCP) and enhances the API documentation, particularly by adding Java language bindings. The main changes include a refactor of the WSCP handshake to use role-specific connect messages, the addition of new JSON schema files for WSCP message types, and comprehensive Java examples and interface details in the Channel API reference.

WebSocket Connection Protocol (WSCP) Refactor and Schema Additions:

  • Refactored the WSCP handshake to use role-specific connect messages, where the TCP initiator sends the sharedSecret and the acceptor does not echo it. The assigned app identity is now carried in implementationMetadata.appMetadata.
  • Added new JSON schema files for WSCP message types: WSCPApplicationConnect, WSCPDesktopAgentConnect, WSCPConnectFailed, WSCPGoodbye, and the shared WSCPConnectionStep schema. These define the structure and requirements for each protocol message, improving clarity and interoperability. [1] [2] [3] [4] [5]

API Documentation Enhancements:

  • Added Java language binding documentation to the API reference, including detailed interface definitions, method signatures, and usage examples for the Channel API. This improves accessibility for Java developers and ensures parity with other supported languages. [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19]

robmoffat and others added 30 commits January 20, 2026 11:57
@robmoffat
robmoffat requested a review from a team as a code owner June 23, 2026 09:33
@netlify

netlify Bot commented Jun 23, 2026

Copy link
Copy Markdown

Deploy Preview for fdc3 ready!

Name Link
🔨 Latest commit 1431e29
🔍 Latest deploy log https://app.netlify.com/projects/fdc3/deploys/6a5de9bf3c46020008171d6f
😎 Deploy Preview https://deploy-preview-1941.preview-fdc3.finos.org
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@robmoffat

Copy link
Copy Markdown
Member Author

From the old PR:

Weird. Ok, I've created: #1941

This is the PR for the protocol support in the FDC3 Java API project: finos-labs/fdc3-java-api#7

My plan was to get this migrated to FINOS once we're ready to merge the first one.

@kriswest

kriswest commented Jun 23, 2026

Copy link
Copy Markdown
Contributor

Needs rebasing against main - currently sucking all the commits from fdc3-metadata and fdc3-security PRs and creating conflicts

@robmoffat

robmoffat commented Jul 20, 2026

Copy link
Copy Markdown
Member Author

Ok, rebased.

@kemerava could you review please? (Ideally, at some stage we should implement a go binding for WSCP. )

@robmoffat
robmoffat requested a review from kemerava July 20, 2026 09:27
@codecov-commenter

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 95.32%. Comparing base (97a4c85) to head (1431e29).

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #1941   +/-   ##
=======================================
  Coverage   95.32%   95.32%           
=======================================
  Files          85       85           
  Lines        6690     6690           
  Branches      932     1028   +96     
=======================================
  Hits         6377     6377           
  Misses        313      313           

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@kemerava kemerava 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.

Looks good, @robmoffat, a few small suggestions


```java
// desktop-agent scope context listener
Listener fdc3Listener = desktopAgent.addContextListener(null, (context, metadata) -> {}).toCompletableFuture().get();

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.

Just suggesting this for consistency with other examples

Suggested change
Listener fdc3Listener = desktopAgent.addContextListener(null, (context, metadata) -> {}).toCompletableFuture().get();
Listener fdc3Listener = desktopAgent.addContextListener(null, (context, metadata) -> { ... }).toCompletableFuture().get();


```java
// Open an app without context, using an AppIdentifier object to specify the target
AppIdentifier appIdentifier = new AppIdentifier("myApp-v1.0.1");

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.

Another small suggestion - we were encouraging the fully qualified appId, so might make sense to have it here

Suggested change
AppIdentifier appIdentifier = new AppIdentifier("myApp-v1.0.1");
AppIdentifier appIdentifier = new AppIdentifier("MyAppId@my.appd.com");

<TabItem value="java" label="Java">

```java
Not implemented

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.

Is it intended to stay unimplemented?

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.

6 participants