You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add getAgent opt-in flags for own broadcasts and self intent resolution
Implements #1751 and #1860 by adding two optional booleans to GetAgentParams:
- receiveOwnBroadcasts: when set, the Desktop Agent delivers an app's own
broadcasts back to it. Defaults to false (current behaviour).
- resolveOwnIntents: when set, the raising app's own instance is considered
when resolving an intent it raised. Defaults to false (current behaviour);
other instances of the same app remain eligible either way.
The flags travel on the WCP4ValidateAppIdentity handshake message and are
stored per-instance by the reference Desktop Agent (each instance of an app
may connect with different getAgent options). BroadcastHandler makes its
self-delivery filter conditional on receiveOwnBroadcasts; IntentHandler
excludes the raising instance (by instanceId) unless resolveOwnIntents is set,
dropping any AppIntent left with no resolvers so a self-only intent yields
NoAppsFound.
Updates the API spec, getAgent, broadcast, Channel and raiseIntent/
raiseIntentForContext documentation (including net-new intent self-resolution
wording), regenerates schema types, and adds conformance/BDD tests.
Copy file name to clipboardExpand all lines: CHANGELOG.md
+1Lines changed: 1 addition & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -12,6 +12,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
12
12
* Added conformance coverage for `ChannelError.NoChannelFound`, `ChannelError.MalformedContext`, and `ChannelError.InvalidArguments`. ([#1779](https://github.com/finos/FDC3/issues/1779))
13
13
* Added conformance coverage verifying that Desktop Agent methods continue to work when destructured from the `fdc3` object. ([#1778](https://github.com/finos/FDC3/issues/1778))
14
14
* Added standalone Workbench examples for the FDC3 2.2 `fdc3.action`, `fdc3.fileAttachment`, `fdc3.message`, `fdc3.orderList`, `fdc3.tradeList`, and `fdc3.timeRange` context types. ([#1949](https://github.com/finos/FDC3/pull/1949))
15
+
* Added `receiveOwnBroadcasts` and `resolveOwnIntents` options to `getAgent`, allowing an application to opt in to receiving its own broadcasts and/or having its own instance considered when resolving intents it raises. Both default to the existing behaviour (an app does not receive its own broadcasts and an intent is not resolved to the raising instance; other instances of the same app remain eligible). The options are carried on the `WCP4ValidateAppIdentity` handshake message and stored per-instance by the Desktop Agent. Updated the API spec, `getAgent`, `broadcast`, `Channel` and `raiseIntent`/`raiseIntentForContext` documentation, and added conformance tests. ([#1751](https://github.com/finos/FDC3/issues/1751), [#1860](https://github.com/finos/FDC3/issues/1860))
15
16
* Added advanced conformance tests (`fdc3.intentListenerConflict`) covering intent listener conflicts, verifying that `addIntentListener`/`addIntentListenerWithContext` reject with `ResolveError.IntentListenerConflict` for conflicting listeners (unfiltered, or overlapping context types) and allow non-overlapping filtered listeners, listeners for different intents, and re-adding after `unsubscribe()`. Added the corresponding test definitions to the "Avoiding Adding Multiple Intent Listeners" section of the Intents conformance docs.
16
17
* Added a classification field to Instrument context type ([#1665](https://github.com/finos/FDC3/pull/1665))
17
18
* Added Go language binding. ([#1483](https://github.com/finos/FDC3/pull/1483))
Copy file name to clipboardExpand all lines: packages/fdc3-schema/schemas/api/WCP4ValidateAppIdentity.schema.json
+10Lines changed: 10 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -45,6 +45,16 @@
45
45
"title": "instanceUuid",
46
46
"description": "Instance UUID associated with the requested instanceId.",
47
47
"type": "string"
48
+
},
49
+
"receiveOwnBroadcasts": {
50
+
"title": "receiveOwnBroadcasts",
51
+
"description": "Flag indicating that the application wishes to receive its own broadcasts, i.e. context messages it broadcasts to a channel it is joined to (or listening on) should be delivered back to it. Defaults to false when omitted, in which case the Desktop Agent SHOULD NOT deliver the application's own broadcasts back to it.",
52
+
"type": "boolean"
53
+
},
54
+
"resolveOwnIntents": {
55
+
"title": "resolveOwnIntents",
56
+
"description": "Flag indicating that the application is willing for its own instance to be considered when resolving intents that it raises. Defaults to false when omitted, in which case the Desktop Agent SHOULD NOT resolve an intent raised by the application instance to that same instance (other instances of the same app remain eligible).",
.filter(appRegistration=>allIntents.every(intent=>intent.appId!==appRegistration.appId));// filter out apps that have intents registered in the directory
.filter(appRegistration=>allIntents.every(intent=>intent.appId!==appRegistration.appId));// filter out apps that have intents registered in the directory
0 commit comments