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

FDC3 for Web Browsers Discussion group 21st Decemeber 2023 #1137

Closed
8 of 11 tasks
kriswest opened this issue Dec 20, 2023 · 6 comments
Closed
8 of 11 tasks

FDC3 for Web Browsers Discussion group 21st Decemeber 2023 #1137

kriswest opened this issue Dec 20, 2023 · 6 comments
Labels
FDC3 for Web Browsers help wanted Extra attention is needed indexed When a meeting attendance is being tracked meeting

Comments

@kriswest
Copy link
Contributor

kriswest commented Dec 20, 2023

Group overview

Group convened to discuss how to enable FDC3 use in a web browser, without the use of a browser extension (such as fdc3-desktop-agent or a container).

Issue: #896
Mailing list discussion: https://groups.google.com/a/finos.org/g/fdc3/c/jCvlLjokBLs

In a recent email on the FDC3 mailing list, @kriswest wrote:

... I also want to add that there is clearly significant interest in the community in enabling FDC3 use on the web. There is a strong use case in that it would enable better onboarding journeys with less drop-off (where you use an app on the web with others before adopting a desktop container or similar).

and:

But there are also additional challenges such as how to make the API available reliably without importing a proprietary module from a particular vendor into every app, how to deal with more than one implementation of API/Desktop Agent in the browser at once, how to do this reliably and securely within the browser sandbox etc.. Work needs to be done in the Standard to solve these issues and to make web browser use possible in a future FDC3 Standard version - which I believe is possible (and likely to involve using a vendor-agnostic FDC3 NPM module to detect and connect to API implementation(s)). However, we're going to need to do that work to enable the aforementioned API implementations to be compliant and if we fail to hold the line now on compliance with the current version of the FDC3 Standard, that may never happen.

Shared doc with current draft: https://tick42-my.sharepoint.com/:w:/g/personal/finsemble_datastore_interop_io/EZ0dfTCdRlJCnIF3C_1Oit0B7xK0OOJ0nAvC73dwad53AA?e=x2zlge

Relevant issue tags

Current open issues that relate to the above concepts with the label:
image

Meeting Date

Thursday 21 Dec 2023 - 11am (US eastern timezone EST) / 4pm (London, GMT)

Zoom info

  • Join Zoom Meeting
  • Meeting ID: 969 4029 4948
  • Passcode: 636931
  • Dial-in:
    Country International Dial-in Toll-free Dial-in
    US +1 929 205 6099 (New York) 877 853 5247
    UK +44 330 088 5830 0800 031 5717
    France +33 1 8699 5831 0 800 940 415
    Find your local number https://zoom.us/u/ad2WVnBzb8

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 [email protected] 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.

Participation Requirements

Note: Meeting participants are expected to accept the terms of the FDC3 license (Community Specification License), understand the governance process and have a CLA in place.

Please click the following links at the start of the meeting if you have not done so previously.

Tracking Attendance

Note: Meeting participants are expected to add a comment to this GitHub issue in order that we can track attendance of FDC3 project meetings. Please do this at the start of the meeting.

Agenda

  • Convene & roll call, review meeting notices (5 mins)
  • Review action items from previous meeting (5 mins)
  • Discuss proposal refinements (20 mins)
    • Persisting DA and instance identity details and assigning consistent instanceIds post navigation/refresh
    • Handling Channel selector UIs
    • Handling Intent resolver UIs
  • Review implementation work in finos-labs/fdc3-for-the-web (20 mins)
  • Next steps (5 mins)
  • AOB & Adjourn (5 mins)

Minutes

  • Review action items from previous meeting
  • The meeting reviewed and approved proposal changes relating to persisting DA type and app & app instance identity details and assigning consistent instanceIds post navigation or refresh of an app window.
    • @novavi noted that whwne window.open is used to clone an app window/open a new one to the same origin, SessionsStorage is copied. Refine the proposal to use WIndowProxy object comparisons to identify when this has occurred and to issue a new instance id.
  • The meeting discussed the provision of ChannelSelector and IntentResolver UIs again
    • It was agreed that this is likely the last major decision to make in the proposal before it can be turned into a concrete PR and implementation.
    • @kriswest identified that the easiest solutions are providing an OpenSource implementation for these and powering them through the API calls
      • however, DA vendors will also want to be able to provide these to apps they are managing - often this will be best done in the app window, but may be done outside the window also (e.g. DAs that render apps in iframes can add a selector UI outside the iframe)
      • hence, a more complete solution might be to:
        • allow an app to indicate whether it needs a UI for each case or not (enabling an app or opensource option to solve for this)
        • allow a DA to indicate whether it already solves for the UI outside of the app window/frame
        • allow a DA to indicate URLs that should be loaded into iframes to provide the UI(s)
          • DA provided UI Implementations will need to solve for communication back to the DA (e.g. to get options, indicate what the user chose) themselves, however, input to the Intent Resolver UIs regarding the intent/context raised might be handled through the URL parameter or postMessage - a proposal is needed.
          • The meeting agreed that this proposed solution is best evaluated through a POC implementation, which should be the next step.
        • There was some discussion at the end of the meeting about being able to open windows and the need for a connection to a user gesture (the association to a user gesture doesn't carry over cross-domain postMessages, but does same domain ones). This is likely a problem for API calls like fdc3.open where, after communicating with the DA it is unable to open the requested window... We may not need to worry about this as some existing implementations just ask for permission to open windows.

Action Items

  • @kriswest Add recommendation to the proposal that apps use BOTH instanceUuic and WindowProxy object comparisons when assigning a previously used instanceId as there are cases where SessionStorage is cloned when using window.open to opena new window. If the WIndowProxy Objects are not equal assign a new isntanceId.
  • @kriswest Draft a proposed solution for Channel and Intent Resolver UI handling based on the meeting discussion for later review.
  • @kriswest Arrange next meeting agenda to focus on POC implementation

Untracked attendees

Full name Affiliation GitHub username
@novavi
Copy link

novavi commented Dec 21, 2023

Derek Novavi / S&P Global

@robmoffat
Copy link
Member

Rob Moffat / FINOS 👾

@hughtroeger
Copy link
Contributor

Hugh Troeger / FactSet

@kriswest
Copy link
Contributor Author

Kris West / interop.io 🚀

@smocarski
Copy link

Steven Mocarski / OpenFin

@kruplm
Copy link

kruplm commented Dec 21, 2023

Maria Krupl / Morgan Stanley

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
FDC3 for Web Browsers help wanted Extra attention is needed indexed When a meeting attendance is being tracked meeting
Projects
None yet
Development

No branches or pull requests

6 participants