Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Desktop Agent Bridging Discussion group 6th July 2022 #772

Closed
4 of 9 tasks
kriswest opened this issue Jul 6, 2022 · 16 comments
Closed
4 of 9 tasks

Desktop Agent Bridging Discussion group 6th July 2022 #772

kriswest opened this issue Jul 6, 2022 · 16 comments
Labels
Desktop Agent Bridging Desktop Agent Bridging Discussion Group help wanted Extra attention is needed indexed When a meeting attendance is being tracked meeting

Comments

@kriswest
Copy link
Contributor

kriswest commented Jul 6, 2022

Group overview

Discussion group for developing proposals for producing bridges between FDC3 implementations (aka Desktop Agents), allowing applications running on one Desktop Agent, to integrate with FDC3 applications running on a second Desktop Agent for the same user.

The interop between applications running on different Desktop Agents aka Platforms would ideally cover

  • Channels
  • Raising and resolving Intents
  • Launching Applications

Relevant issue tags

Meeting Date

Wednesday 06 July 2022 - 9am EST / 2pm BST

WebEx info

More ways to join

  • Join by video system:
  • Join by phone
    • +1-415-655-0003 US Toll
    • +44-20319-88141 UK Toll
  • Access code: ### ### ###

Meeting notices

  • FINOS Project leads are responsible for observing the FINOS guidelines for running project meetings. Project maintainers can find additional resources in the FINOS Maintainers Cheatsheet.

  • All participants in FINOS project meetings are subject to the LF Antitrust Policy, the FINOS Community Code of Conduct and all other FINOS policies.

  • FINOS meetings involve participation by industry competitors, and it is the intention of FINOS and the Linux Foundation to conduct all of its activities in accordance with applicable antitrust and competition laws. It is therefore extremely important that attendees adhere to meeting agendas, and be aware of, and not participate in, any activities that are prohibited under applicable US state, federal or foreign antitrust and competition laws. Please contact legal@finos.org with any questions.

  • FINOS project meetings may be recorded for use solely by the FINOS team for administration purposes. In very limited instances, and with explicit approval, recordings may be made more widely available.

  • A Discussion Group has no direct decision-making power regarding the FDC3 standard - rather it is intended that anything they propose or work on will result in proposals (via Github issues and PRs) for the Standards Working Group participants to consider and vote on for inclusion in the standard. As such, participation in a Discussion group is not required for contributing to any particular issue or FDC 2.0 as a whole.

Agenda

Minutes

  • @kriswest provided a summary of the proposed connection protocol (see current proposal preview)
    • @Yannick-Symphony suggested a clarification on initial websocket connection to the DAB - update mermaid diagram to show the initial connection event as part of the exchange.
    • @Yannick-Symphony suggested we use 2-way authentication (as was preferred in the initial poll on the top) in which an auth token would be added to the hello message coming from the bridge so that DA can authenticate the bridge
      • All: No strong feelings in favor or against it. It (a suitable JWT token) could be added as an additional field to the hello message in the connection protocol, which would ensure implementation simplicity by making validation of it optional.
        • Whether sending the token should be required (MUST) was not discussed.
    • All - No major concerns about the current connection protocol proposal.
  • @Vivek-NatWest request some clarification on channel state synchronization - the relevant section of the proposal was reviewed
    • @nkolba Commented that there is a potential race condition on handling channel state synchronization:
      • On startup, apps might load and start broadcasting state immediately - concurrent with the desktop agent connecting to the bridge and receiving state.
      • @kriswest: I believe this is avoidable, and, as this is an important point we should spell out how to go about doing so in the specification
        • Channels are the only stateful mechanism in the FDC3 that we have to consider
        • Connection handshakes (or more specifically the channel sync portion of the handshake) should be handled serially and atomically by the DAB.
        • Channel state sync messages from the DAB to agents should also be handled atomically (allow no overlap with fdc3.broadcast, channel.broadcast, fdc3.addContextListener or channel.getCurrentContext messages)
          • Note that the synchronisation will only bring in new state, on already known channels, for the agent connecting to the bridge - although existing agents should pick up state for channels they have not yet seen.
        • Future work on message exchanges should provide more clarity on the possible race conditions. This can be one of the main topics for the next meeting agenda.
  • Details about channel state synchronization to be discussed on the next session.

Action Items

  • @tpina @kriswest Update initial websockect connection mermaid diagram - show the initial connection event as part of the exchange.
  • @tpina @kriswest Add optional JWT token to DAB's hello message in the connection protocol. Validation of this token by the agent connecting should be optional but recommended (SHOULD).
  • @tpina @kriswest Add clarifications suggested above to channel state synchronisation portion of proposal
  • @kriswest Add to next meeting agenda:
    • Review additions and clarifications to connection protocol
    • Review channel synchronisation clarifications added to proposal
    • Review and discuss any other potential race conditions or workflows broken by disconnection

Untracked attendees

Full name Affiliation GitHub username
@kriswest kriswest added help wanted Extra attention is needed meeting Desktop Agent Bridging Desktop Agent Bridging Discussion Group labels Jul 6, 2022
@mistryvinay
Copy link
Contributor

Vinay / Symphony

@kriswest
Copy link
Contributor Author

kriswest commented Jul 6, 2022

Kris / Cosaic 🚀

@tpina
Copy link
Contributor

tpina commented Jul 6, 2022

Tiago Pina / Cosaic

@Julia-Ritter
Copy link
Contributor

Julia / FINOS

@Vivek-NatWest
Copy link

Vivek / Natwest

@pierreneu
Copy link

Pierre Neu / Symphony

@nkolba
Copy link
Contributor

nkolba commented Jul 6, 2022

Nick Kolba / Connectifi

@hughtroeger
Copy link
Contributor

Hugh Troeger / FactSet

@robmoffat
Copy link
Member

Rob / FINOS

@dominicgifford
Copy link
Contributor

Dom Gifford / S&P Global

@manishbhutani
Copy link

Manish / NWM

@Aaron-Haines
Copy link

Aaron / NWM

@dominicgifford
Copy link
Contributor

Out of interest, is there any plan to protect against cross-environment contamination?

Let's say I have:

  • The Production version of App A
  • The Production version of App B
  • The UAT version of App A
  • The UAT version of App B

The desktop containers for App A and App B are from two different vendors. I want to ensure that while testing the flow from App A UAT to App B UAT, I don't accidentally connect to App B Production.

@Qiana-Citi
Copy link

Qiana / Citi

@kriswest
Copy link
Contributor Author

kriswest commented Jul 7, 2022

Hi @dominicgifford. What do you mean by 'connect', as the answer differs depending on the API calls in use...

If we're talking about channels, then its down to which user channels the user adds the apps to, or for app channels, which ones they join. That said, 2.0 introduces (optional) exposure of originating app metadata passed to the context handler which might allow you to filter which context broadcasts on the channel that you listen to.

For intents, if there's more than one option to resolve an intent then you'll see a resolver UI (usually) pop up requiring the user to pick the app. However, you can specify a target app/instance to avoid the resolver and send it straight there (With the resolver either filtered to instances of the app, or go direct by specifying a particular instance). Hence, if you know the details of the UAT and production apps, you can make sure your messages head to the right one.

As far as I am aware there is no other thought on environments in the FDC3 API nor Desktop Agent Bridging. If we were to add something I think it'd begin in the FDC3 API and then be carried over into bridging. That said a particular desktop agent implementation I know quite well has a feature that solves for exactly this problem via config ;-). A similar standardized solution may be possible through an appD config...

@kriswest
Copy link
Contributor Author

Apologies for the delay, minutes for the last meeting have now been posted and we'll crack on with updating the proposal again this week hopefully.

@github-actions github-actions bot added the indexed When a meeting attendance is being tracked label Jul 28, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Desktop Agent Bridging Desktop Agent Bridging Discussion Group help wanted Extra attention is needed indexed When a meeting attendance is being tracked meeting
Projects
None yet
Development

No branches or pull requests