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

Updating 19.1 beta to support modular platform overrides #741

Merged
merged 415 commits into from
Aug 30, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
415 commits
Select commit Hold shift + click to select a range
a3fdf5d
Merge branch 'main' into workspace/v14.1.0
obany Sep 22, 2023
ab0279d
Add v15
obany Oct 2, 2023
12e4826
Update automation tests
obany Oct 2, 2023
c88ba3a
Fix linting
obany Oct 2, 2023
f27e1c5
Create mixed platform and browser windows (#565)
obany Oct 4, 2023
25aa414
Merge branch 'main' into workspace/v15.0.0
obany Oct 4, 2023
35d785b
Merge branch 'main' into workspace/v15.0.0
obany Oct 4, 2023
b108bc4
Update to v15.0.3
obany Oct 4, 2023
e4b421c
Notifications support (#564)
johnman Oct 5, 2023
6b89f8b
Merge branch 'main' into workspace/v15.0.0
obany Oct 5, 2023
2951b39
Merge branch 'main' into workspace/v15.0.0
obany Oct 6, 2023
d2d6346
Merge branch 'main' into workspace/v15.0.0
obany Oct 9, 2023
1952147
Additional FDC3 2.0 Enhancements (#572)
johnman Oct 10, 2023
f6843da
Add favorites support to pages and workspaces (#573)
obany Oct 10, 2023
147bf5c
Update to 15.0.5
obany Oct 11, 2023
194a574
Add dock endpoints for config and enable rearrange (#574)
obany Oct 12, 2023
4285108
Added support for new mixed platform window support (#575)
johnman Oct 12, 2023
f12db63
Override popup menus (#576)
obany Oct 14, 2023
2ade36b
Updated launchPreferences (#577)
johnman Oct 16, 2023
7ebbdb7
Add new init options support to composite page module (#578)
johnman Oct 17, 2023
29bc92f
Add global settings for menu styles (#579)
obany Oct 17, 2023
070bb03
Allow module developers to have access to endpoints (#580)
johnman Oct 17, 2023
0eb2025
Add support for the OpenFin PopupWindow API for the Intent Picker and…
johnman Oct 18, 2023
0aa5298
Popup menu improvements (#582)
obany Oct 19, 2023
7ad3ae6
Dependency update
obany Oct 19, 2023
be2ae54
Merge branch 'main' into workspace/v15.0.0
obany Oct 20, 2023
926a71c
Fix image conversion for menus (#586)
obany Oct 23, 2023
4889ccf
InteropBroker refactor (#587)
johnman Oct 24, 2023
df28729
Added support for endpoint support for manifest fetching and tidied h…
johnman Oct 25, 2023
1bb5b22
Merge branch 'main' into workspace/v15.0.0
obany Oct 25, 2023
43cac26
Reverted back to web window approach until a future runtime release (…
johnman Oct 25, 2023
d9942db
Updated examples of default window options and decommission windowOpt…
johnman Oct 26, 2023
ff72635
Updated manifests and added title check. (#593)
johnman Oct 27, 2023
1d956c7
Added an example of launching a saved workspace via init options (#595)
johnman Oct 30, 2023
74acd10
Update workspace platform to encourage initOptionsProvider (#596)
johnman Oct 31, 2023
03afa3b
Update changelog.
johnman Oct 31, 2023
437a01a
Update to 15.0.6
obany Nov 1, 2023
0fe6e28
Merge branch 'workspace/v15.0.0' into workspace/vnext
johnman Nov 1, 2023
0d368e0
Update version numbers
johnman Nov 1, 2023
5a4e8a3
Resolve build errors
johnman Nov 1, 2023
3bb378b
Add url and channel support (#598)
obany Nov 2, 2023
eeee813
Update conditions to client pattern (#599)
obany Nov 2, 2023
ef5e1c2
Updated package lock
johnman Nov 3, 2023
d73d6c8
Merge branch 'main' into workspace/v15.0.0
obany Nov 3, 2023
de1344d
Fix duplicate section in manifest
obany Nov 6, 2023
9983daa
Merge branch 'main' into workspace/v15.0.0
obany Nov 6, 2023
982f014
Merge branch 'workspace/v15.0.0' into workspace/vnext
obany Nov 6, 2023
656959d
Update to node-adapter. Fix some projects.
johnman Nov 6, 2023
40d7c6c
Merge branch 'workspace/vnext' of https://github.com/built-on-openfin…
johnman Nov 6, 2023
bfb6030
Update to Next.
johnman Nov 6, 2023
b489e00
Update to match v15
johnman Nov 6, 2023
41516eb
Applied suggested typo changes in readme and applied fixes. (#604)
johnman Nov 7, 2023
d3d0932
Update to 15.0.8
obany Nov 7, 2023
2fc8df9
Update dependencies
obany Nov 7, 2023
659c765
Added docs and minor fix (#605)
obany Nov 7, 2023
bb753ef
Add metadata to all storage endpoints (#606)
obany Nov 7, 2023
7d01983
Merge branch 'workspace/v15.0.0' into workspace/vnext
obany Nov 7, 2023
085cc14
Update launchPreference Option structure (#607)
johnman Nov 7, 2023
70e9c29
Merge branch 'workspace/vnext' of https://github.com/built-on-openfin…
johnman Nov 7, 2023
1e7663f
Merge branch 'workspace/v15.0.0' into workspace/vnext
johnman Nov 7, 2023
a41b526
Update to 16.0.4
obany Nov 10, 2023
cfa80f6
Add v16.0.0 branch
obany Nov 10, 2023
52459f6
Merge branch 'main' into workspace/v16.0.0
johnman Nov 14, 2023
238eca4
Add Snap Integration to Workspace Platform Starter (#608)
obany Nov 14, 2023
e6fbcae
Merge branch 'main' into workspace/v16.0.0
obany Nov 14, 2023
cd9c089
Add snap app
obany Nov 15, 2023
0c8b29b
Add content creation rule modules (#616)
obany Nov 16, 2023
47855ae
Merge branch 'main' into workspace/v16.0.0
obany Nov 16, 2023
e790657
Improve content creation logic
obany Nov 17, 2023
ca4cf75
Move actions to modules (#619)
obany Nov 17, 2023
2c31bb2
Fixed and improvements (#620)
obany Nov 21, 2023
b8c8eb8
Update dependencies
obany Nov 21, 2023
1579e85
Root public apps are now all for the developer (#621)
johnman Nov 22, 2023
3182274
Async filter improvements (#622)
obany Nov 23, 2023
1228f07
Individual validate (#623)
obany Nov 23, 2023
884f0c7
Add documentation for init options (#624)
obany Nov 24, 2023
ab79479
Merge branch 'main' into workspace/v16.0.0
obany Nov 28, 2023
3d71f59
Improve the packaging scripts (#627)
obany Nov 29, 2023
e6e33ca
Merge branch 'main' into workspace/v16.0.0
obany Nov 29, 2023
5cecf90
Fix help entries in home, move outside async debounce
obany Nov 30, 2023
08c6fb0
Dev/john/dynamic launch preference (#626)
johnman Nov 30, 2023
3dded26
Add unit testing examples (#630)
obany Nov 30, 2023
32174af
Minor tweaks (#631)
obany Nov 30, 2023
d247489
Add unit test to GHA lint
obany Nov 30, 2023
b8a70af
Separate lint and test
obany Nov 30, 2023
1802e51
Add check for undefined when it goes through the launch preference ch…
johnman Nov 30, 2023
c2f4faf
Testing use JSDOM environment
obany Nov 30, 2023
645aaab
Cache modules
obany Nov 30, 2023
cbfa83d
Adding adaptable to the list of examples (#633)
johnman Nov 30, 2023
1d2407c
Add e2e testing to wps (#634)
obany Dec 1, 2023
636bb14
Consistent GitHub Actions
obany Dec 1, 2023
b426ce0
Add push trigger
obany Dec 1, 2023
d126c85
Remove push trigger
obany Dec 1, 2023
6d5df2f
E2e start the server
obany Dec 1, 2023
1545375
Add build step for e2e
obany Dec 1, 2023
2594c47
E2E Wait for server to start
obany Dec 1, 2023
17f41a4
Remove push trigger
obany Dec 1, 2023
db92141
Only trigger if wps has changed
obany Dec 1, 2023
8b767a8
Dev/john/salesforce update (#635)
johnman Dec 2, 2023
cf970d5
Update launch preferences so that native apps can also take args via …
johnman Dec 2, 2023
333766d
Add a how to add a service document (#637)
johnman Dec 4, 2023
ef52621
Add support for reshow for when a desktop shortcut is used (#638)
johnman Dec 5, 2023
105aad4
Fix isObject
obany Dec 6, 2023
8746099
vnext compatability
obany Dec 6, 2023
294fc4e
Update to 16.0.9 and wider json schema support (#639)
johnman Dec 6, 2023
777bf13
Linting for root script
obany Dec 6, 2023
b80d354
Linting
obany Dec 6, 2023
7dcd5ba
Add @openfin/node-adaptor to root to satisfy peerDependency
obany Dec 6, 2023
27e34d5
Merge branch 'workspace/v16.0.0' into workspace/vnext
obany Dec 6, 2023
c4cc759
Merge branch 'main' into workspace/vnext
obany Dec 8, 2023
3cc9083
Merge branch 'main' into workspace/vnext
obany Dec 8, 2023
d8bbc9e
Merge branch 'main' into workspace/vnext
obany Dec 8, 2023
fa849f3
Consistent github actions
obany Dec 8, 2023
2c5e595
Merge branch 'main' into workspace/vnext
obany Dec 13, 2023
73e4391
Update packages
obany Dec 13, 2023
fa531d0
Merge branch 'main' into workspace/vnext
obany Dec 13, 2023
2d2265d
Improve the storage mapper (#650)
obany Dec 13, 2023
7710371
Update dependencies
obany Dec 14, 2023
211391c
Merge branch 'main' into workspace/vnext
obany Dec 14, 2023
1b8e9f0
Dev/martyn/split button (#652)
johnman Dec 16, 2023
43b62d6
Add advanced form example (#653)
johnman Dec 16, 2023
2dc056b
Update to 16.1 beta
johnman Dec 16, 2023
97ef070
Add additional multi monitor awareness to WPS (#654)
johnman Dec 20, 2023
2a8033b
Update readme
obany Jan 2, 2024
d39ee2d
Update dependencies
obany Jan 2, 2024
d65e000
Notification advanced form (#655)
obany Jan 2, 2024
adf7159
Remove the quote and emoji code and dependencies (#656)
obany Jan 3, 2024
504a2c7
Add support for new icons urls (#659)
obany Jan 3, 2024
a147a7a
Merge branch 'main' into workspace/v16.1.0
obany Jan 4, 2024
2913ae8
Merge branch 'main' into workspace/v16.1.0
obany Jan 5, 2024
54704e4
Update to 17.0.4
obany Jan 5, 2024
53cf67c
Update to 17.0.6
obany Jan 8, 2024
24a0080
Add support for dock submenus (#661)
obany Jan 8, 2024
a7a83d7
Add support for tags in submenus (#666)
obany Jan 11, 2024
5f9ac8c
Merge branch 'main' into workspace/vnext
obany Jan 12, 2024
0a2f883
Merge branch 'main' into workspace/vnext
johnman Jan 22, 2024
adb63af
bump version
johnman Jan 23, 2024
2d45521
Update dependencies
johnman Jan 24, 2024
a79b8d0
feat(splash screen) add `taskbarIcon` property for splash screen wind…
camc314 Jan 24, 2024
e8b782c
Update to latest wks 17 version
johnman Jan 26, 2024
0fe0557
Merge branch 'main' into workspace/vnext
johnman Jan 27, 2024
46b51f8
Added expero demo key and snap asset path.
johnman Jan 27, 2024
62a9ef8
Merge branch 'main' into workspace/vnext
johnman Feb 16, 2024
5d19b06
Update to latest 17.2
johnman Feb 16, 2024
1231b4f
perf: improve performance of switching schemes (#687)
camc314 Feb 19, 2024
4492879
Merge branch 'main' into workspace/vnext
johnman Feb 19, 2024
b69dce7
Merge branch 'main' into workspace/vnext
johnman Feb 20, 2024
0e4d1dc
perf: improve performance of computing dock configuration (#688)
camc314 Feb 21, 2024
3d5c8ff
Merge branch 'main' into workspace/vnext
johnman Feb 22, 2024
a9562e1
Bumping version
johnman Feb 24, 2024
3d06d09
Merge branch 'main' into workspace/vnext
johnman Feb 26, 2024
65b76a3
Update to latest version
johnman Feb 26, 2024
9dcacf0
bump to beta release version
johnman Feb 27, 2024
432d825
Update vnext to 17.4.0
johnman Mar 4, 2024
5b74eee
Merge branch 'main' into workspace/vnext
johnman Mar 16, 2024
040f896
Add locale support
johnman Mar 16, 2024
b88a5bb
Update all versions to 17.4.7
johnman Mar 16, 2024
b57fda1
Update versions
johnman Mar 16, 2024
a567d15
Updated to support interop overrides array.
johnman Mar 16, 2024
4d2b817
Added support for loading interop override modules.
johnman Mar 17, 2024
77a344e
Doc changes before refactor
johnman Mar 17, 2024
7aa6ddd
Broke out default interop broker into a module
johnman Mar 17, 2024
0334356
feat: platform label inside global context menu quit platform option …
camc314 Mar 18, 2024
2688118
Update typing and changelog related to title update
johnman Mar 18, 2024
f4c76b8
Merge branch 'main' into workspace/vnext
johnman Mar 18, 2024
c7f1140
Merge branch 'main' into workspace/vnext
johnman Apr 9, 2024
a695c1a
Apply changes to fdc3 error import
johnman Apr 9, 2024
a3ea780
Update to v18 of workspace
johnman Apr 9, 2024
cc04289
Added support for faster workspace-platform-starter builds
johnman Apr 9, 2024
5d3a5ed
Add additional action for a workspace lifecycle event.
johnman Apr 10, 2024
eccfe0b
Add additional action for a workspace lifecycle event. (#703)
johnman Apr 10, 2024
1a52503
Merge branch 'main' into workspace/vnext
johnman Apr 12, 2024
194d60c
Update versioning in docs
johnman Apr 12, 2024
11f4a28
Window state improvements and dependency pinning.
johnman Apr 12, 2024
fc8bbdb
Update the launch script for workspace v18
johnman Apr 12, 2024
bbbb95e
Include window state on page save
johnman Apr 12, 2024
bbc2630
Remove rspack
johnman Apr 12, 2024
94a2ffe
Gave greater control over what is built.
johnman Apr 12, 2024
6592b97
Added Cloud Interop support with documentation.
johnman Apr 12, 2024
a92d043
Merge remote-tracking branch 'origin/workspace/v18.0.0' into workspac…
johnman Apr 12, 2024
f3a9087
Add support for cloud interop, window state in page saves and better …
johnman Apr 12, 2024
bf7ffcf
Added option of creating analytics for your modules (except analytics…
johnman Apr 16, 2024
fd4c413
Merge remote-tracking branch 'origin/workspace/v18.0.0' into workspac…
johnman Apr 16, 2024
15db1b6
Added support for modules to submit module analytic events. (#706)
johnman Apr 17, 2024
c9e78ce
Bump versions for v18 Beta Release
johnman Apr 18, 2024
f82b1ce
Bump the version numbers to the latest v18 beta (#707)
johnman Apr 18, 2024
d00722d
Improved how appIds associated with views/windows are validated (#708)
johnman Apr 19, 2024
d8d00ec
Merge remote-tracking branch 'origin/workspace/v18.0.0' into workspac…
johnman Apr 19, 2024
6e9c027
Move vnext changes into v18 (#709)
johnman Apr 19, 2024
c998fc8
Merge branch 'main' into workspace/vnext
johnman Apr 23, 2024
7cc29db
Update snap version to 0.3.0
johnman Apr 23, 2024
aeea0f3
Merge remote-tracking branch 'origin/workspace/v18.0.0' into workspac…
johnman Apr 23, 2024
f8ea668
Upgrade Workspace v18 to support v0.3.0 of Snap SDK (#711)
johnman Apr 23, 2024
8f8aa83
Bumping runtime version to take in patched runtime.
johnman Apr 24, 2024
cb88a2c
Bumping runtime patch version. (#712)
johnman Apr 24, 2024
bfa42cf
Merge branch 'main' into workspace/vnext
johnman Apr 26, 2024
cf75f82
Update version paths in snap example
johnman Apr 26, 2024
ecca673
Merge remote-tracking branch 'origin/workspace/v18.0.0' into workspac…
johnman Apr 26, 2024
dc50591
Add the updated integrate-with-snap example (#715)
johnman Apr 26, 2024
ca95520
Update workspace to 18.0.9
johnman Apr 27, 2024
0bd7992
Merge remote-tracking branch 'origin/workspace/v18.0.0' into workspac…
johnman Apr 27, 2024
2535fe9
Upgrade workspace packages to 18.0.9 (#716)
johnman Apr 28, 2024
440480f
Update cloud interop to 0.36.11
johnman Apr 30, 2024
20e1478
Merge remote-tracking branch 'origin/workspace/v18.0.0' into workspac…
johnman Apr 30, 2024
44ddca2
Remove native ui automation until a review is performed.
johnman Apr 30, 2024
d6eff06
Update cloud interop to 0.36.11 (#717)
johnman Apr 30, 2024
4c391f9
Update cloud interop version
johnman May 7, 2024
2dabbae
Merge remote-tracking branch 'origin/workspace/v18.0.0' into workspac…
johnman May 7, 2024
cf53425
Upgrade cloud interop version to 0.36.12 (#720)
johnman May 8, 2024
9faf9d1
Merge remote-tracking branch 'origin/workspace/v18.0.0' into workspac…
johnman May 8, 2024
81b2a0a
Updated the common call and manager portal apps so they support runni…
johnman May 8, 2024
852caaa
Update common call/contact and manager portal examples to support Ope…
johnman May 8, 2024
d60cc79
Added security realm back
johnman May 10, 2024
82ae074
Merge branch 'main' into workspace/vnext
johnman May 10, 2024
269927a
Updated snapshots to reflect v18
johnman May 10, 2024
653d542
Adding workspace platform starter basic apps (#723)
johnman May 10, 2024
3853751
Merge remote-tracking branch 'origin/workspace/v18.0.0' into workspac…
johnman May 13, 2024
f02a5af
Added PlatformInteropBrokerHelpers type which has has access to all a…
johnman May 13, 2024
4729527
Added a new type PlatfromInteropBrokerHelpers which extends ModuleHel…
johnman May 13, 2024
392c9de
Introducing stream support to endpoints an example of being able to r…
johnman May 24, 2024
be12d54
Additional scenarios covered.
johnman May 25, 2024
38f6a48
Updated example and updated changelog and documentation.
johnman May 28, 2024
ff3e3f8
Added a close notification action as well.
johnman May 28, 2024
3dad036
Linting
johnman May 28, 2024
243489b
Merge remote-tracking branch 'origin/workspace/v18.0.0' into workspac…
johnman May 28, 2024
9bcb22b
Update documentation
johnman May 29, 2024
ad7a7c9
Added requestStreamOption to endpointProvider, updated interopBroker …
johnman May 29, 2024
e85b214
Merge remote-tracking branch 'origin/workspace/v18.0.0' into workspac…
johnman May 29, 2024
8b27f91
Adding additional preload script option so debug and non debug option…
johnman May 29, 2024
4bac81e
Break snap preload script into two: a preload with no debug window an…
johnman May 29, 2024
1467cf8
Merge remote-tracking branch 'origin/workspace/v18.0.0' into workspac…
johnman May 29, 2024
9b30de7
Bump v18 to stable version
johnman May 29, 2024
2d0f411
Merge branch 'main' into workspace/vnext
johnman Jun 24, 2024
621d69d
Upgrade vnext to 19 (currently doesn't run due to runtime restriction).
johnman Jun 24, 2024
d61cf88
Update to reflect type changes in OpenFin/Core
johnman Jun 24, 2024
c93f479
WIP
johnman Jul 2, 2024
b8e9aad
WIP
johnman Jul 2, 2024
8f8efb9
Bumping version
johnman Jul 2, 2024
8aba016
Resolved build errors because of new core-types
johnman Jul 2, 2024
e29b2c3
Update versions, version urls and salesforce starter based on feedback
johnman Jul 3, 2024
96a0fe3
Removing verbose logging
johnman Jul 3, 2024
749ed80
Merge branch 'workspace/v19.0.0' into workspace/vnext
johnman Jul 3, 2024
d9bfe74
Still WIP and broken
johnman Jul 8, 2024
e0d8c5c
Still a WIP
johnman Jul 9, 2024
5b24c77
Bumping to latest versions.
joeransegnola Aug 7, 2024
48a14a9
Merge branch 'workspace/vnext' of https://github.com/built-on-openfin…
johnman Aug 21, 2024
20b4932
Merge branch 'workspace/v19.1.0' into workspace/vnext
johnman Aug 21, 2024
b6c8882
Still a WIP
johnman Aug 23, 2024
acfb48d
Added support for generating platform override modules
johnman Aug 29, 2024
5c39d6a
Update module ids
johnman Aug 29, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
47 changes: 0 additions & 47 deletions how-to/integrate-with-snap/client/src/preload.ts

This file was deleted.

7 changes: 6 additions & 1 deletion how-to/workspace-platform-starter/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,11 @@

## v19.1.0

- Breaking Change (if you do not update your manifest): Added modules as an option for platformProvider settings and made the workspace platform starter platform override a module (so you can decide to load it, chain it with other overrides or exclude it). Please see the new document [how to customize your platform override](./docs/how-to-customize-your-platform-override.md). If you want the default platform override to check endpoints to for saving/fetching workspaces and pages then you need to add the default-wps-platform module id to the endpoint clients array in the endpointProvider (see the manifest.fin.json as an example).
- Updated module ids for default interop override to reflect new naming of modules for platform override: default-wps-interop instead of wps-interop-override.

## v19.0.0

- Updated manifests to remove verbose logging --v=1 --inspect from the runtime.arguments setting: <https://developers.openfin.co/of-docs/docs/debugging#verbose-logging>
- Updated manifests to disable app logging (where console log entries are written to disk). You can still see console log messages in dev tools or you can turn it back on by setting enableAppLogging to true.
- Added new v38 runtime setting appLogsTimezone and set it to utc for when you do capture logs to disk.
Expand All @@ -28,7 +33,7 @@
- Updated: modules/composite/default-workspace/lifecycle logic to listen out for the new `apply` action.
- Improved performance of switching schemes
- Improved performance of computing dock configuration, especially on theme changes.
- Breaking Change (if you do not update your manifest): Added modules as an option for platformProvider.interop settings and made the workspace platform starter interop override a module (so you can decide to load it, chain it with other overrides or exclude it). Please see the new document [how to customize your interop broker](./docs/how-to-customize-your-interop-broker.md). If you want the default interop broker to check endpoints to see if a context type should be enriched through an endpoint then you need to add the wps-interop-override module id to the endpoint clients array in the endpointProvider (see the manifest.fin.json as an example).
- Breaking Change (if you do not update your manifest): Added modules as an option for platformProvider.interop settings and made the workspace platform starter interop override a module (so you can decide to load it, chain it with other overrides or exclude it). Please see the new document [how to customize your interop broker](./docs/how-to-customize-your-interop-broker.md). If you want the default interop broker to check endpoints to see if a context type should be enriched through an endpoint then you need to add the default-wps-interop module id to the endpoint clients array in the endpointProvider (see the manifest.fin.json as an example).
- Added support for a title to be specified in the browserProvider that will be used as the platform name in the browser Quit menu option and the confirmation dialog.

## v17.2.0
Expand Down
1 change: 1 addition & 0 deletions how-to/workspace-platform-starter/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ The information below provides information related to configuring and using the
| [Add Intent Support To Your App](./docs/how-to-add-intent-support-to-your-app.md) | If you have added one or more apps to your platform you may want one to trigger a workflow in another using FDC3. |
| [Configure Your Platform's Intent Support](./docs/how-to-configure-fdc3-intents.md) | How to configure your platform's Intent support. What UI to present to the user if they have to make an application selection after an intent is raised. |
| [Add FDC3 Open Support To Your App](./docs/how-to-add-open-support-to-your-app.md) | If you have added one or more apps to your platform you may wish to have them easily opened using fdc3.open with the option of passing context. |
| [Customize Your Platform through Overrides](./docs/how-to-customize-your-platform-override.md) | You now have control over the platform logic beyond settings. You can use the default implementation that workspace platform starter provides, replace it or extend it without having to touch the main codebase. |
| [Customize Your Interop Broker](./docs/how-to-customize-your-interop-broker.md) | You now have control over the interop broker beyond settings. You can use the default implementation, replace it or extend it without having to touch the main codebase. |
| [Add Cloud Interop To Your Interop Broker](./docs/how-to-add-cloud-interop-to-your-interop-broker.md) | OpenFin supports sharing context across platforms and devices using our cloud offering. You can now easily add your cloud interop settings to our cloud interop module and simply enable it to see it in action. |
| [Use Notifications](./docs/how-to-use-notifications.md) | Your platform or you app(s) may want to get the end user's attention and capture a response. |
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,12 @@
import { createLogger } from "./logger-provider";
import { closedownModules, initializeModules, loadModules } from "./modules";
import type {
AnalyticsModule,
AnalyticsProviderOptions,
PlatformAnalyticsEvent
import {
MODULE_ANALYTICS_SOURCE,
type AnalyticsClient,
type AnalyticsModule,
type AnalyticsProviderOptions,
type ModuleAnalyticsEvent,
type PlatformAnalyticsEvent
} from "./shapes/analytics-shapes";
import type { ModuleEntry, ModuleHelpers } from "./shapes/module-shapes";

Expand Down Expand Up @@ -60,3 +63,40 @@ export async function handleAnalytics(events: PlatformAnalyticsEvent[]): Promise
await analyticsModule.implementation.handleAnalytics(events);
}
}

/**
* Get analytics client.
* @returns The analytics client.
*/
export async function getAnalyticsModuleClient(): Promise<AnalyticsClient | undefined> {
if (!isEnabled()) {
return;
}
return {
handleAnalytics: async (events: ModuleAnalyticsEvent[]): Promise<void> => {
if (Array.isArray(events)) {
const platformAnalyticEvents: PlatformAnalyticsEvent[] = events.map<PlatformAnalyticsEvent>(
(entry) => ({ ...entry, source: MODULE_ANALYTICS_SOURCE })
);
return handleAnalytics(platformAnalyticEvents);
}
}
};
}

/**
* Get analytics client for platform override use.
* @returns The analytics client.
*/
export async function getAnalyticsPlatformClient(): Promise<AnalyticsClient | undefined> {
if (!isEnabled()) {
return;
}
return {
handleAnalytics: async (events: PlatformAnalyticsEvent[]): Promise<void> => {
if (Array.isArray(events)) {
return handleAnalytics(events);
}
}
};
}
157 changes: 127 additions & 30 deletions how-to/workspace-platform-starter/client/src/framework/connections.ts
Original file line number Diff line number Diff line change
@@ -1,16 +1,19 @@
import type OpenFin from "@openfin/core";
import * as endpointProvider from "./endpoint";
import { launch } from "./launch";
import { createLogger } from "./logger-provider";
import { MANIFEST_TYPES } from "./manifest-types";
import type { PlatformApp } from "./shapes/app-shapes";
import type { ClientSnapshot, PlatformApp } from "./shapes/app-shapes";
import type {
AppSourceConnection,
Connection,
ConnectionClient,
ConnectionPayloadVerificationRequest,
ConnectionPayloadVerificationResponse,
ConnectionProviderOptions,
ConnectionValidationOptions,
ConnectionValidationResponse,
PlatformConnectionClient,
SnapshotSourceConnection
} from "./shapes/connection-shapes";
import { isEmpty, isStringValue, objectClone } from "./utils";
Expand Down Expand Up @@ -145,35 +148,6 @@ export function clearAction(actionName: string): boolean {
return true;
}

/**
* Get any connections that support apps.
* @returns The list of connections supporting apps.
*/
export async function getConnectedAppSourceClients(): Promise<
{
identity: OpenFin.Identity;
connectionData: AppSourceConnection;
}[]
> {
const connectionsToReturn: {
identity: OpenFin.Identity;
connectionData: AppSourceConnection;
}[] = [];

const availableConnections = Object.values(connectedClients);
for (const connection of availableConnections) {
const matchedConnection = connection.connectionTypes.find(
(supportedConnectionType) => supportedConnectionType.type === APP_SOURCE_TYPE_ID
);

if (matchedConnection?.type === APP_SOURCE_TYPE_ID) {
connectionsToReturn.push({ identity: connection.identity, connectionData: matchedConnection });
}
}

return connectionsToReturn;
}

/**
* Get any connected apps.
* @returns The list of connected apps.
Expand Down Expand Up @@ -345,6 +319,129 @@ export async function isConnectionValid<T>(
return responseToReturn;
}

/**
* Decorate a snapshot with the native window information.
* @param snapshot The snapshot to decorate.
* @returns The decorated snapshot.
*/
export async function decorateSnapshot(snapshot: OpenFin.Snapshot): Promise<OpenFin.Snapshot> {
const sources = await getConnectedSnapshotSourceClients();

if (sources.length === 0) {
return snapshot;
}

const clientSnapshots: (ClientSnapshot | undefined)[] = await Promise.all(
sources.map(async (entry) => {
const snapShotSource = await fin.SnapshotSource.wrap({ uuid: entry.identity.uuid });
try {
logger.info(`Snapshot source: ${entry.identity.uuid}. Requesting a snapshot.`);
const sourceSnapshot = (await snapShotSource.getSnapshot()) as Extract<"snapshot", ClientSnapshot>;
return { identity: entry.identity, snapshot: sourceSnapshot };
} catch {
logger.info(`Snapshot source: ${entry.identity.uuid} was not available.`);
}
})
);

const decoratedSnapshot: OpenFin.Snapshot = Object.assign(snapshot, {
clientSnapshots: clientSnapshots.filter((snapshotSource) => !isEmpty(snapshotSource))
});

return decoratedSnapshot;
}

/**
* Apply connected client to a snapshot.
* @param snapshot The snapshot.
*/
export async function applyClientSnapshot(
snapshot: OpenFin.Snapshot & { clientSnapshots?: ClientSnapshot[] }
): Promise<void> {
if (Array.isArray(snapshot?.clientSnapshots)) {
const sources = await getConnectedSnapshotSourceClients();
await Promise.all(
snapshot.clientSnapshots.map(async (clientSnapshot: ClientSnapshot) => {
if (clientSnapshot) {
if (sources.some((source) => source.identity.uuid === clientSnapshot.identity.uuid)) {
try {
const snapShotSource = await fin.SnapshotSource.wrap(clientSnapshot.identity);
logger.info(
`Snapshot source: ${clientSnapshot.identity.uuid} is running and has a snapshot entry. Applying snapshot.`
);
await snapShotSource.applySnapshot(clientSnapshot.snapshot);
} catch {
logger.warn(
`Snapshot source: ${clientSnapshot.identity.uuid} is not able to apply the snapshot.`
);
}
} else if (!isEmpty(clientSnapshot?.snapshot)) {
const sn = clientSnapshot?.snapshot;
const app: PlatformApp | undefined = sn?.App ?? sn?.app;
if (!isEmpty(app)) {
logger.info(
`Client not connected but snapshot contains an app definition. Launching app definition for ${clientSnapshot.identity.uuid}`
);
logger.debug("Client app definition:", app);
await launch(app);
}
} else {
logger.warn(
`Client snapshot was available but the source ${clientSnapshot.identity.uuid} was not connected and it didn't provide an app/App entry as part of the snapshot to trigger a launch.`
);
}
}
})
);
}
}

/**
* Returns a client that can be used by modules to interact with connections.
* @returns The connection client.
*/
export async function getConnectionClient(): Promise<ConnectionClient> {
return { isConnectionValid };
}

/**
* Returns a connection client to be passed to platform override modules.
* @returns The platform connection client.
*/
export async function getPlatformConnectionClient(): Promise<PlatformConnectionClient> {
const client = await getConnectionClient();
return { ...client, decorateSnapshot, applyClientSnapshot };
}

/**
* Get any connections that support apps.
* @returns The list of connections supporting apps.
*/
async function getConnectedAppSourceClients(): Promise<
{
identity: OpenFin.Identity;
connectionData: AppSourceConnection;
}[]
> {
const connectionsToReturn: {
identity: OpenFin.Identity;
connectionData: AppSourceConnection;
}[] = [];

const availableConnections = Object.values(connectedClients);
for (const connection of availableConnections) {
const matchedConnection = connection.connectionTypes.find(
(supportedConnectionType) => supportedConnectionType.type === APP_SOURCE_TYPE_ID
);

if (matchedConnection?.type === APP_SOURCE_TYPE_ID) {
connectionsToReturn.push({ identity: connection.identity, connectionData: matchedConnection });
}
}

return connectionsToReturn;
}

/**
* Is the specified action supported by the connection.
* @param identity The identity of the connection to test.
Expand Down
Loading
Loading