diff --git a/CHANGELOG.md b/CHANGELOG.md index f777d16b6..abc10921b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,7 +15,6 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). * Added reference materials and supported platforms information for FDC3 in .NET via the [finos/fdc3-dotnet](https://github.com/finos/fdc3-dotnet) project. ([#1108](https://github.com/finos/FDC3/pull/1108)) * Specifications for getAgent() and Browser-Resident Desktop Agents. ([#1191](https://github.com/finos/FDC3/pull/1191)) * Specification for Preload Desktop Agents. This content was previously in the supported platforms section. It had been revised and amended to include recommended behavior related to the new validateAppIdentity() function. ([#1191](https://github.com/finos/FDC3/pull/1191)) -* Added optional validateAppIdentity() function to DesktopAgent interface. ([#1191](https://github.com/finos/FDC3/pull/1191)) * Typescript definitions for getAgent() and related types. ([#1191](https://github.com/finos/FDC3/pull/1191)) * Typescript definitions for Desktop Agent Communication Protocol (DACP). These constitute the internal "wire protocol" that the "@finos/fdc3" library uses to communicate with Browser-Resident DAs. ([#1191](https://github.com/finos/FDC3/pull/1191)) * Typescript definitions for Web Connection Protocol (WCP). These constitute the messages used to establish connectivity between "@finos/fdc3" and a Browser-Resident DA. ([#1191](https://github.com/finos/FDC3/pull/1191)) diff --git a/toolbox/fdc3-for-web/demo/package.json b/toolbox/fdc3-for-web/demo/package.json index 3d12e35cb..a585a499f 100644 --- a/toolbox/fdc3-for-web/demo/package.json +++ b/toolbox/fdc3-for-web/demo/package.json @@ -2,6 +2,7 @@ "name": "@finos/demo", "private": true, "version": "2.2.0-alpha.3", + "license": "Apache-2.0", "scripts": { "dev": "nodemon -w src/server src/server/main.ts", "lint": "eslint src/" diff --git a/toolbox/fdc3-for-web/reference-ui/eslint.config.js b/toolbox/fdc3-for-web/reference-ui/eslint.config.mjs similarity index 100% rename from toolbox/fdc3-for-web/reference-ui/eslint.config.js rename to toolbox/fdc3-for-web/reference-ui/eslint.config.mjs diff --git a/toolbox/fdc3-for-web/reference-ui/package.json b/toolbox/fdc3-for-web/reference-ui/package.json index 016a9990c..119125f97 100644 --- a/toolbox/fdc3-for-web/reference-ui/package.json +++ b/toolbox/fdc3-for-web/reference-ui/package.json @@ -2,6 +2,7 @@ "name": "fdc3-for-web-reference-ui", "private": true, "version": "2.2.0-alpha.3", + "license": "Apache-2.0", "type": "module", "scripts": { "dev": "vite", diff --git a/toolbox/fdc3-workbench/package.json b/toolbox/fdc3-workbench/package.json index 2a1b40d04..66eba4ad2 100644 --- a/toolbox/fdc3-workbench/package.json +++ b/toolbox/fdc3-workbench/package.json @@ -2,7 +2,11 @@ "name": "fdc3-workbench", "version": "2.2.0-alpha.3", "private": true, - "homepage": ".", + "homepage": "https://fdc3.finos.org", + "repository": { + "type": "git", + "url": "git+https://github.com/finos/FDC3.git" + }, "license": "Apache-2.0", "scripts": { "dev": "vite", diff --git a/website/data/community.json b/website/data/community.json index 5f72ae3c4..f9bcf80d5 100644 --- a/website/data/community.json +++ b/website/data/community.json @@ -201,14 +201,14 @@ "description": "
interop.io was formed in June 2023 through the merger of Finsemble and Glue42 to create the global powerhouse driving application interoperability in capital markets and beyond. Leveraging FDC3 and workflow automation, interop.io allows clients to create Straight Through Workflows™ and benefit from unparalleled levels of business agility, a more productive workforce and better operational control.
The firm employs over 170 people including 110 full time R&D and implementation engineers located in New York, Charlottesville, London, and Sofia. For more information, visit interop.io.
" }, { - "title": "OpenFin", - "publisher": "OpenFin Inc.", - "image": "/img/users/Openfin.png", - "infoLink": "https://openfin.co/", + "title": "Here", + "publisher": "Here Enterprise Inc.", + "image": "/img/users/OpenFin_Here_Browser_250x120.png", + "infoLink": "https://here.io/", "docsLink": "https://developers.openfin.co/of-docs", "type": "platform-provider", "badges": [], - "description": "OpenFin founded the FDC3 standard in 2017 in collaboration with major banks and asset managers. Deployed at more than 2400 financial firms, OpenFin OS, allows applications from multiple providers to co-exist and interoperate on the desktop.
OpenFin OS consists of a secure, Chromium-based runtime called Container and a visual interface called Workspace. Workspace gets you running in no time, with themeable UI components for complex windowing, advanced search, actionable notifications and application discovery.
You can also build your own solutions using the OpenFin Container, native language adapters and APIs while remaining compatible with everything else built on OpenFin.
", + "description": "Here™ (formerly OpenFin) founded the FDC3 standard in 2017 in collaboration with major banks and asset managers. Deployed at more than 2400 financial firms, OpenFin OS, allows applications from multiple providers to co-exist and interoperate on the desktop.
OpenFin OS consists of a secure, Chromium-based runtime called Container and a visual interface called Workspace. Workspace gets you running in no time, with themeable UI components for complex windowing, advanced search, actionable notifications and application discovery.
You can also build your own solutions using the OpenFin Container, native language adapters and APIs while remaining compatible with everything else built on OpenFin.
", "conformance": [ { "src": "/img/community/certified-1.2.png", @@ -415,15 +415,6 @@ "badges": [], "type": "solution-provider" }, - { - "title": "Pictet AM smart Desktop", - "publisher": "Pictet Asset Management", - "image": "/img/users/pictet.png", - "infoLink": "https://am.pictet", - "description": "Pictet AM smart Desktop - linking our internal PMS (proprietary), our OMS (Charles River IMS) and various in-house react.js applications implementing FDC3 to share context and intents to provide a streamlined experience for Traders and Fund managers.", - "badges": [], - "type": "adopter" - }, { "title": "Connectifi", "publisher": "Connectifi Co.", @@ -593,4 +584,4 @@ "badges": [], "type": "adopter" } -] \ No newline at end of file +] diff --git a/website/data/users.json b/website/data/users.json index 8cb0f9b80..94f200997 100644 --- a/website/data/users.json +++ b/website/data/users.json @@ -84,9 +84,9 @@ "isMember": true }, { - "caption": "OpenFin", - "image": "/img/users/Openfin.png", - "infoLink": "https://openfin.co/", + "caption": "Here", + "image": "/img/users/OpenFin_Here_Browser_250x120.png", + "infoLink": "https://here.io/", "pinned": true, "isMember": true }, @@ -139,13 +139,6 @@ "pinned": true, "isMember": true }, - { - "caption": "Pictet", - "image": "/img/users/pictet.png", - "infoLink": "https://www.pictet.com/", - "pinned": true, - "isMember": true - }, { "caption": "UBS", "image": "/img/users/ubs.png", @@ -202,4 +195,4 @@ "pinned": true, "isMember": true } -] \ No newline at end of file +] diff --git a/website/docs/api/specs/browserResidentDesktopAgents.md b/website/docs/api/specs/browserResidentDesktopAgents.md index 2da15f53c..9dfc43587 100644 --- a/website/docs/api/specs/browserResidentDesktopAgents.md +++ b/website/docs/api/specs/browserResidentDesktopAgents.md @@ -4,17 +4,17 @@ sidebar_label: Browser Desktop Agents title: Browser-Resident Desktop Agents (next) --- -:::info _[@experimental](../fdc3-compliance#experimental-features)_ +:::info _[@experimental](../../fdc3-compliance#experimental-features)_ Browser Resident Desktop Agents (DAs) are an experimental feature added to FDC3 in 2.2. Limited aspects of their design may change in future versions and they are exempted from the FDC3 Standard's normal versioning and deprecation policies in order to facilitate any necessary change. ::: -This document specifies the required behavior for Browser-Resident Desktop Agents (DA). Such agents allow FDC3 applications running directly in a browser to participate in FDC3 interop by way of a `getAgent()` function that is provided by the [`@finos/fdc3` NPM module](https://www.npmjs.com/package/@finos/fdc3) and a standardized communication protocol. This approach is in contrast to "Preload DAs" which run on technology that allows the FDC3 interface to be injected (such as Electron, WebView2 or a browser-extension based implementation). +This document specifies the required behavior for Browser-Resident Desktop Agents (DA). Such agents allow FDC3 applications running directly in a browser to participate in FDC3 interop by way of a `getAgent()` function that is provided by the [`@finos/fdc3` npm module](https://www.npmjs.com/package/@finos/fdc3) and a standardized communication protocol. This approach is in contrast to "Preload DAs" which run on technology that allows the FDC3 interface to be injected (such as Electron, WebView2 or a browser-extension based implementation). This specification only applies to apps running in a browser and therefore assumes use of JavaScript/TypeScript and HTML APIs. Implementations in other languages such as .NET are not covered. -Along with this specification, a new general connection strategy has been established for FDC3 compliant web-applications: FDC3 compliant apps SHOULD make use of `getAgent()` function provided by the [`@finos/fdc3` NPM module](https://www.npmjs.com/package/@finos/fdc3) to retrieve their FDC3 interface (an instance of an implementation of the [`DesktopAgent`](../ref/DesktopAgent) interface). Apps that follow these guidelines will be able to interop through either Browser-Resident DAs or [Preload DAs](./preloadDesktopAgents) without the inclusion of code or libraries specific to a particular Desktop Agent vendor or implementation. We refer to this concept as Write Once Run Anywhere (WORA). +Along with this specification, a new general connection strategy has been established for FDC3 compliant web-applications: FDC3 compliant apps SHOULD make use of `getAgent()` function provided by the [`@finos/fdc3` npm module](https://www.npmjs.com/package/@finos/fdc3) to retrieve their FDC3 interface (an instance of an implementation of the [`DesktopAgent`](../ref/DesktopAgent) interface). Apps that follow these guidelines will be able to interop through either Browser-Resident DAs or [Preload DAs](./preloadDesktopAgents) without the inclusion of code or libraries specific to a particular Desktop Agent vendor or implementation. We refer to this concept as Write Once Run Anywhere (WORA). :::info @@ -24,7 +24,7 @@ Prior to FDC3 2.2, only [Preload Desktop Agents](./preloadDesktopAgents) were su :::note -This document covers the requirements for _implementors of Browser-Resident Desktop Agents_. The `getAgent()` function that applications use to gain access to an FDC3 interface is provided by the [`@finos/fdc3` NPM module](https://www.npmjs.com/package/@finos/fdc3). Many behavioral details of `getAgent()` are purposefully omitted from this document in order to reduce the required scope of understanding. Please refer to the [getAgent() specification in the FDC3 Web Connection Protocol](webConnectionProtocol.md) for information on how the client side operates or [supported platforms](../supported-platforms) for details of how to access the Desktop Agent API in an application. +This document covers the requirements for _implementors of Browser-Resident Desktop Agents_. The `getAgent()` function that applications use to gain access to an FDC3 interface is provided by the [`@finos/fdc3` npm module](https://www.npmjs.com/package/@finos/fdc3). Many behavioral details of `getAgent()` are purposefully omitted from this document in order to reduce the required scope of understanding. Please refer to the [getAgent() specification in the FDC3 Web Connection Protocol](webConnectionProtocol.md) for information on how the client side operates or [supported platforms](../supported-platforms) for details of how to access the Desktop Agent API in an application. ::: diff --git a/website/docs/api/specs/desktopAgentCommunicationProtocol.md b/website/docs/api/specs/desktopAgentCommunicationProtocol.md index 20d6c573c..0384d6158 100644 --- a/website/docs/api/specs/desktopAgentCommunicationProtocol.md +++ b/website/docs/api/specs/desktopAgentCommunicationProtocol.md @@ -4,7 +4,7 @@ sidebar_label: Desktop Agent Communication Protocol title: Desktop Agent Communication Protocol (next) --- -:::info _[@experimental](../fdc3-compliance#experimental-features)_ +:::info _[@experimental](../../fdc3-compliance#experimental-features)_ FDC3's Desktop Agent Communication Protocol (DACP) is an experimental feature added to FDC3 in 2.2. Limited aspects of its design may change in future versions and it is exempted from the FDC3 Standard's normal versioning and deprecation polices in order to facilitate any necessary change. diff --git a/website/docs/api/specs/preloadDesktopAgents.md b/website/docs/api/specs/preloadDesktopAgents.md index 9e25259ce..7d59b6b22 100644 --- a/website/docs/api/specs/preloadDesktopAgents.md +++ b/website/docs/api/specs/preloadDesktopAgents.md @@ -15,7 +15,7 @@ A Preload Desktop Agent is an FDC3 Desktop Agent (DA) supporting web application ## Injecting the global FDC3 object -Since FDC3 is typically available to the whole web application, Desktop Agents are expected to make the [`DesktopAgent`](../api/ref/DesktopAgent) interface available at a global level. Hence, a Preload Desktop Agent MUST provide the FDC3 API via a global accessible as `window.fdc3`. Implementors MAY additionally make the API available through modules, imports, or other means. +Since FDC3 is typically available to the whole web application, Desktop Agents are expected to make the [`DesktopAgent`](../ref/DesktopAgent) interface available at a global level. Hence, a Preload Desktop Agent MUST provide the FDC3 API via a global accessible as `window.fdc3`. Implementors MAY additionally make the API available through modules, imports, or other means. The global `window.fdc3` MUST only be available after the API is ready to use. Implementors MUST provide a global `fdc3Ready` event that is fired when the API is ready for use. diff --git a/website/docs/api/specs/webConnectionProtocol.md b/website/docs/api/specs/webConnectionProtocol.md index 3a422239e..66e92790e 100644 --- a/website/docs/api/specs/webConnectionProtocol.md +++ b/website/docs/api/specs/webConnectionProtocol.md @@ -4,13 +4,13 @@ sidebar_label: Web Connection Protocol title: Web Connection Protocol (next) --- -:::info _[@experimental](../fdc3-compliance#experimental-features)_ +:::info _[@experimental](../../fdc3-compliance#experimental-features)_ FDC3's Web Connection Protocol (WCP) is an experimental feature added to FDC3 in 2.2. Limited aspects of its design may change in future versions and it is exempted from the FDC3 Standard's normal versioning and deprecation polices in order to facilitate any necessary change. ::: -The FDC3 Web Connection Protocol (WCP) defines the procedure for a web-application to connect to an FDC3 Desktop Agent. The WCP is used to implement a [`getAgent()`](../ref/GetAgent) function in the [`@finos/fdc3` npm module](https://www.npmjs.com/package/@finos/fdc3), which is the recommended way for web applications to connect to a Desktop Agent. This specification details how it retrieves and provides the FDC3 `DesktopAgent` interface object and requirements that Desktop Agents MUST implement in order to support discovery and connection via `getAgent()`. Please see the [`getAgent` reference document](../ref/GetAgent.md) for its TypeScript definition and related types. +The FDC3 Web Connection Protocol (WCP) defines the procedure for a web-application to connect to an FDC3 Desktop Agent. The WCP is used to implement a [`getAgent()`](../ref/GetAgent) function in the [`@finos/fdc3` npm module](https://www.npmjs.com/package/@finos/fdc3), which is the recommended way for web applications to connect to a Desktop Agent. This specification details how it retrieves and provides the FDC3 [`DesktopAgent`](../ref/DesktopAgent) interface object and requirements that Desktop Agents MUST implement in order to support discovery and connection via `getAgent()`. Please see the [`getAgent` reference document](../ref/GetAgent.md) for its TypeScript definition and related types. :::tip diff --git a/website/package.json b/website/package.json index 024383f49..caf96f0d4 100644 --- a/website/package.json +++ b/website/package.json @@ -12,10 +12,10 @@ "copy-workbench": "del-cli static/toolbox/fdc3-workbench && cpy \"../toolbox/fdc3-workbench/build/**\" static/toolbox/fdc3-workbench", "copy-reference-ui": "del-cli static/toolbox/fdc3-reference-ui && cpy \"../toolbox/fdc3-for-web/reference-ui/dist/**\" static/toolbox/fdc3-reference-ui", "copy-explained": "del-cli static/toolbox/fdc3-explained && cpy \"../toolbox/fdc3-explained\" ./static/toolbox/", - "version": "cross-env-shell VERSION=2.1 \"echo \\\"Creating version: $VERSION...\\\" && npm run version:docs && npm run version:docs-schema && npm run version:docs-replace && npm run version:schemas && npm run version:schemas-replace && npm run version:appd-replace", - "version:docs": "cross-env-shell \"docusaurus docs:version $VERSION\"", + "version": "cross-env-shell VERSION=2.1 npm run version-run", + "version-run": "cross-env-shell \"echo Creating version: \\$VERSION... && npm run version:docs-schema && npm run version:docs-replace && npm run version:schemas && npm run version:schemas-replace && npm run version:appd-replace\"", "version:docs-schema": "cross-env-shell replace-in-files --string=/schemas/next --replacement=/schemas/$VERSION versioned_docs/version-$VERSION/**/*.md", - "version:docs-replace": "cross-env-shell replace-in-files --string=(next) --replacement=($VERSION) versioned_docs/version-$VERSION/*/*.md", + "version:docs-replace": "cross-env-shell replace-in-files --string='\\(next\\)' --replacement='\\($VERSION\\)' versioned_docs/version-$VERSION/*/*.md", "version:schemas": "cross-env-shell cpy static/schemas/next/** static/schemas/$VERSION", "version:schemas-replace": "cross-env-shell replace-in-files --string=/schemas/next --replacement=/schemas/$VERSION static/schemas/$VERSION/*/*.schema.json", "version:appd-replace": "cross-env-shell replace-in-files --string=\"\"next\"\" --replacement=\"\"$VERSION\"\" static/schemas/$VERSION/appd.schema.json", diff --git a/website/static/img/users/OpenFin_Here_Browser.png b/website/static/img/users/OpenFin_Here_Browser.png new file mode 100644 index 000000000..2079c2e34 Binary files /dev/null and b/website/static/img/users/OpenFin_Here_Browser.png differ diff --git a/website/static/img/users/OpenFin_Here_Browser_250x120.png b/website/static/img/users/OpenFin_Here_Browser_250x120.png new file mode 100644 index 000000000..05114cfa1 Binary files /dev/null and b/website/static/img/users/OpenFin_Here_Browser_250x120.png differ diff --git a/website/static/img/users/pictet.png b/website/static/img/users/pictet.png deleted file mode 100644 index 9e55c66d0..000000000 Binary files a/website/static/img/users/pictet.png and /dev/null differ