-
Notifications
You must be signed in to change notification settings - Fork 129
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 specification #1191
base: main
Are you sure you want to change the base?
Conversation
Draft Agent agnostic fdc3 spec
❌ Deploy Preview for fdc3 failed. Why did it fail? →
|
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
Co-authored-by: Brian Ingenito <28159742+bingenito@users.noreply.github.com>
Make window.fdc3 optional
…-fns Deprecating functions in Methods.ts
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for doing all this work! This would be such an amazing addition to the standard!
f71010e
to
34587f7
Compare
@kemerava many thanks for the detailed review. I've resolved most of the comments for things fixed. I've left a few open for you to look at, please resolve those as well. Our branch protection will require you to post another review/confirm requested changes have been made. |
|
||
```js | ||
const desktopAgent = await getAgent({ | ||
timeoutMs: 250, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Timeouts are usually counted in milliseconds. Isn’t it overkill to name it timeoutMs
rather than just timeout
?
@@ -603,7 +613,7 @@ To find a User channel, one calls: | |||
```ts | |||
// returns an array of channels | |||
const allChannels = await fdc3.getUserChannels(); | |||
const redChannel = allChannels.find(c => c.id === 'red'); | |||
const redChannel = allChannels.find(c => c.id === "red"); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this would be the correct example.
const redChannel = allChannels.find(c => c.id === "fdc3.channel.1");
resolves #896
resolves #1385
resolves #1402
This PR adds specifications and documentation related to enabling FDC3 for the web. This was based off of the committee's working doc and an initial PR (#1167) with the draft by @thorsent.
This assumes that "@finos/fdc3" will implement getAgent() and communication mechanisms to work with a Desktop Agent running in a different browser window.
The protocols were codified as "Web Connection Protocol (WCP)" for negotiating the handshake between the library and desktop agents, and "Browser Communication Protocol (BCP)" which encompasses the complete "wire protocol". The former is entirely specific to working in a Web Browser, however the latter might be reused in other implementations and hence may change name (e.g. 'The FDC3 Wire Protocol' or similar).
This documentation followed three streams:
Some changes and additions were made from the original working document:
Deep links to docs for review:
getAgent()
for gaining access to an API implementation for web apps: https://deploy-preview-1191--fdc3.netlify.app/docs/next/api/supported-platformsgetAgent()
reference docs for app implementors: https://deploy-preview-1191--fdc3.netlify.app/docs/next/api/ref/GetAgentAgentError
enumeration added for connection issues: https://deploy-preview-1191--fdc3.netlify.app/docs/next/api/ref/Errors#agenterror