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

AppD consolidated update PR #668

Merged
merged 62 commits into from
May 27, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
62 commits
Select commit Hold shift + click to select a range
a282c2a
Defining a term for a single appD record
kriswest Apr 4, 2022
baa33e1
changelog
kriswest Apr 4, 2022
7445769
Move latest work on appD to /v2/ urls and restore /v1/ urls to 1.2 st…
kriswest Apr 19, 2022
bcd732d
Adds appD /v2/ API paths and fixes some html issues in the appD spec
kriswest Apr 19, 2022
cb9aa60
remove appD v1 search API example
kriswest Apr 20, 2022
fc81042
Merge pull request #666 from finos/553-appd-backwards-compatibility
kriswest Apr 20, 2022
19df580
adding moreInfo field to application record and applying formats to f…
kriswest Apr 20, 2022
3417d3a
changelog
kriswest Apr 20, 2022
0fc35a8
changelog
kriswest Apr 20, 2022
b8b62c2
Merge branch 'Appd-consolidated-update-branch' into AppD-more-info
kriswest Apr 20, 2022
116903c
adding lang tag to specify primary language of application and appD r…
kriswest Apr 20, 2022
fb201ed
adding localizedVersions field to appD application record schema to s…
kriswest Apr 21, 2022
a67dfed
changelog
kriswest Apr 21, 2022
a4589be
Introducing launch details for native application types and adjusting…
kriswest Apr 21, 2022
44bcf2f
making details field required, fixing description of citrix alias
kriswest Apr 21, 2022
2dac483
Improving documentation of application types
kriswest Apr 21, 2022
7fb7f30
Apply suggestions from code review
kriswest Apr 22, 2022
3976d29
Merge pull request #670 from finos/AppD-lang-and-translations
kriswest Apr 22, 2022
3dad413
Merge branch 'Appd-consolidated-update-branch' into AppD-more-info
kriswest Apr 22, 2022
a30c023
Merge pull request #669 from finos/AppD-more-info
kriswest Apr 22, 2022
26ff4ed
Merge branch 'Appd-consolidated-update-branch' into 560-appD-record-term
kriswest Apr 22, 2022
784f9b5
Merge pull request #658 from ChartIQ/560-appD-record-term
kriswest Apr 22, 2022
f92df72
adding categories field to appD and suggested list of categoreis
kriswest Apr 22, 2022
5b21431
add allocations, tca, research and trading system categories to sugge…
kriswest Apr 22, 2022
8362832
Merge pull request #570 from ChartIQ/555-558-improve-AppD-overview
kriswest Apr 22, 2022
fe849b7
Merge branch 'Appd-consolidated-update-branch' into App-categories
kriswest Apr 22, 2022
349ae03
Merge branch 'Appd-consolidated-update-branch' into AppD-vendor-agnos…
kriswest Apr 22, 2022
6cc60fd
add statement on alignment with other standards, changes appd images …
kriswest Apr 22, 2022
29e3fe5
changelog
kriswest Apr 22, 2022
d5ef18c
changelog
kriswest Apr 22, 2022
f9aec0c
changelog
kriswest Apr 22, 2022
4644aae
improve category list rendering
kriswest Apr 25, 2022
52e0741
improve rendering of type list
kriswest Apr 25, 2022
de1dde9
add app type and clarify that web type MUST be supported, other type…
kriswest Apr 25, 2022
8ace2ed
Update docs/app-directory/overview.md
kriswest May 3, 2022
91ca024
adding 'other' category
kriswest May 5, 2022
8753a65
Merge pull request #673 from finos/App-categories
kriswest May 5, 2022
7a85f5a
Merge branch 'Appd-consolidated-update-branch' into Appd-better-align…
kriswest May 5, 2022
b385d8c
Merge pull request #675 from finos/Appd-better-align-with-web-applica…
kriswest May 5, 2022
70eded6
Merge branch 'Appd-consolidated-update-branch' into AppD-vendor-agnos…
kriswest May 5, 2022
e850c35
add an endpoint for retrieving all apps from an appD (a primary use c…
kriswest May 5, 2022
9400bce
build
kriswest May 5, 2022
a9e10e3
Merge pull request #694 from finos/565-list-all-apps-in-appd
kriswest May 5, 2022
6386ec3
removing appD create application endpoint
kriswest May 6, 2022
ef3f6ea
changelog
kriswest May 6, 2022
84fc359
removing appD search application endpoint
kriswest May 6, 2022
a53ae89
changelog
kriswest May 6, 2022
673151a
Add note that implementations MAY extend beyond the standardized AppD…
kriswest May 16, 2022
54f1853
Merge pull request #695 from finos/566-remove-appd-create-fn
kriswest May 16, 2022
1339c60
Merge pull request #720 from finos/566-remove-appd-create-fn
kriswest May 16, 2022
4fb38f8
Merge branch 'Appd-consolidated-update-branch' into 370-remove-appd-s…
kriswest May 16, 2022
70d33c2
Merge branch 'Appd-consolidated-update-branch' into 370-remove-appd-s…
kriswest May 16, 2022
b668e06
Merge branch 'Appd-consolidated-update-branch' into AppD-vendor-agnos…
kriswest May 16, 2022
704603b
Merge pull request #696 from finos/370-remove-appd-search-endpoint
kriswest May 16, 2022
a89f21f
Merge branch 'Appd-consolidated-update-branch' into AppD-vendor-agnos…
kriswest May 16, 2022
310b45f
Merge pull request #671 from finos/AppD-vendor-agnostic-native-apps
kriswest May 16, 2022
9332132
Merge branch 'master' into Appd-consolidated-update-branch
kriswest May 16, 2022
0c82f7f
Merge branch 'master' into Appd-consolidated-update-branch
kriswest May 18, 2022
b63f0ba
Merge branch 'master' into Appd-consolidated-update-branch
kriswest May 20, 2022
ee2741a
correct type on FDC3Workbech appD examples
kriswest May 20, 2022
67fe65a
Apply suggestions from code review
kriswest May 25, 2022
f946a5a
Merge branch 'master' into Appd-consolidated-update-branch
kriswest May 27, 2022
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
12 changes: 11 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,13 +16,20 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
* Added a field to specify the Context type that intent can return to the AppD Application schema and extended the findIntent API calls to be able to use it for resolution. ([#499](https://github.com/finos/FDC3/pull/499))
* Added the ability to return a Channel from an intent (via the `IntentResult` type), resolver support for intents that return Channels and the concept of PrivateChannels. ([#508](https://github.com/finos/FDC3/pull/508))
* Added error `UserCancelled` to the `ResolveError` enumeration to be used when user closes the resolver UI or otherwise cancels resolution of a raised intent ([#522](https://github.com/finos/FDC3/pull/522))
* Added `IntentDeliveryFailed` to the `ResolveError` enumeration to be used when delivery of an intent and context to a targetted app or instance fails. ([#601](https://github.com/finos/FDC3/pull/601))
* Added an `instanceId` (and optional `instanceMetadata`) field to `AppMetadata` allowing it to refer to specific app instances and thereby supporting targetting of intents to specific app instances. Also added a `findInstances()` function to the desktop agent and `TargetAppUnavailable` and `TargetInstanceUnavailable` Errors to the `ResolveError` enumeration. ([#509]((https://github.com/finos/FDC3/pull/509))
* Added a References and Bibliography section to the Standard's documentation to hold links to 'normative references' and other documentation that is useful for understanding the standard ([#530](https://github.com/finos/FDC3/pull/530))
* `IntentResolution` now requires the name of the intent raised to included, allowing it to be used to determine the intent raised via `fdc3.raiseIntentForContext()`. ([#507](https://github.com/finos/FDC3/pull/507))
* A Trademarks page was added to acknowledge trademarks used within the Standard not owned by FINOS or the Linux Foundation ([#534](https://github.com/finos/FDC3/pull/534))
* Added details of FDC3's existing versioning and deprecation policies to the FDC3 compliance page ([#539](https://github.com/finos/FDC3/pull/539))
* Added a new experimental features policy, which exempts features designated as experimental from the versioning and deprecation policies, to the FDC3 compliance page ([#549](https://github.com/finos/FDC3/pull/549))
* Added `IntentDeliveryFailed` to the `ResolveError` enumeration to be used when delivery of an intent and context to a targetted app or instance fails. ([#601](https://github.com/finos/FDC3/pull/601))
* Added a definition for "app directory record" to the FDC3 glossary to be used to refer to a single appD record ([#658](https://github.com/finos/FDC3/pull/658))
* Added `/v2/` paths to the AppD's specification, allowing a single implementation to support serving both FDC3 v1.2 and v2.0 application records, enabling simpler migration ([#666](https://github.com/finos/FDC3/pull/666))
* Added a `moreInfo` URL field to AppD application records to enable linking to a web page with more information on an app ([#669](https://github.com/finos/FDC3/pull/669))
* Added `lang` field to AppD application records to specify the primary language of an app and its appD record. ([#670](https://github.com/finos/FDC3/pull/670))
* Added `localizedVersions` field to AppD application records to support localized versions of descriptive fields in the app records and alternative launch details for localized versions of the applications themselves. ([#670](https://github.com/finos/FDC3/pull/670))
* Added `type` and `details` elements to AppD application records to support vendor-agnostic launch details for both web and native apps ([#671](https://github.com/finos/FDC3/pull/671))
* Added `categories` field and recommended categories list to AppD application records to enable category based browsing of AppDs ([#673](https://github.com/finos/FDC3/pull/673))
* Added `AppIdentifier` type, which is a new parent of `AppMetadata` and clarifies required fields for API call parameters which now prefer `appId` and `instanceId` over `name` ([#722](https://github.com/finos/FDC3/pull/722))

### Changed
Expand All @@ -36,6 +43,9 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
* Moved the Icon type definition into the Types documentation page for consistency with other types. ([#493](https://github.com/finos/FDC3/pull/493)
* The `fdc3.joinChannel()`, `fdc3.getCurrentChannel()` and `fdc3.leaveCurrentChannel()` functions have been made optional for FDC3 API compliance, but are recommended through the application of the SHOULD keyword. ([#512](https://github.com/finos/FDC3/pull/512))
* All DesktopAgent and Channel API functions are now async for consistency, changing the return type of the `broadcast`, `addIntentListener`, `addContextListener` and `getInfo` functions ([#516](https://github.com/finos/FDC3/pull/516))
* App Directory `images` field was replaced with `screenshots` to better align the application record with web application manifest and match its format to that used by `icons` ([#675](https://github.com/finos/FDC3/pull/675))
* App Directory endpoint for creating applications was removed as these will often be implementation dependent and should not be required for compliance ([#695](https://github.com/finos/FDC3/pull/695))
* App Directory endpoint for searching applications was removed as searches over multiple app directories are better implemented by retrieving all the records and searching over the resulting combined dataset ([#696](https://github.com/finos/FDC3/pull/696))

### Deprecated

Expand Down
6 changes: 6 additions & 0 deletions docs/app-directory/overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,12 @@ As a vendor, you prefer for all your customers to run your latest software. Howe

By hosting our own appD we can easily combine applications from various providers into one cohesive directory. Alternatively, we can connect to directories from multiple providers (in standardized format) and provide a single view over them. This reduces fragmentation in the market, allows end-users more flexibility in what apps to include in their smart desktop, and obviates the need for vendors to provide application details in diverse formats or for their customers to work out these details for themselves.

## Relationship to Other Standards

The App Directory's application record is similar to application manifests defined in other standards, in particular the W3C's [Web Application Manifest](https://www.w3.org/TR/appmanifest/). However, the App Directory, and by extension the application record, serve a different set of use-cases specific to application interoperability on financial services desktops, which other standards do not fully address.

Wherever possible, FDC3 seeks to draw inspiration from, align itself with and reference other standards - ensuring that conventions and best practices developed by those standards are reused, along with the standard itself (e.g. data formats in ISO standard formats, external links to technology-specific manifest file formats etc.). For a list of standards that FDC3 references, see the [References](../references) page.

## Use Cases

An application directory provides information about an application's identifiers, publisher details, intents that it supports, and metadata necessary to launch and integrate the application in a desktop agent.
Expand Down
10 changes: 7 additions & 3 deletions docs/app-directory/spec.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,10 @@ View the [full specification](/schemas/next/app-directory) in [OpenAPI v3.0](htt

Endpoint | Method | Description
------------------ | ------ | -----------
`/v1/apps` | POST | Create a new application definition
`/v1/apps/{appId}` | GET | Retrieve an application defintion
`/v1/apps/search` | GET | Retrieve a list of applications
`/v2/apps` | GET | Retrieve all application definitions
`/v2/apps/{appId}` | GET | Retrieve an application defintion
`/v1/apps` | POST | (deprecated v1 API version) Create a new application definition
`/v1/apps/{appId}` | GET | (deprecated v1 API version) Retrieve an application defintion
`/v1/apps/search` | GET | (deprecated v1 API version) Retrieve a list of applications

App Directory implementations MAY extend the list of endpoints to provide other necessary functionality. However, FDC3 Desktop Agent implementations MUST support connection to app directories that only provide the minimum endpoints listed here.
4 changes: 3 additions & 1 deletion docs/fdc3-glossary.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,11 @@ sidebar_label: Glossary
For the purposes of this Standard, the following definitions apply. Other terms are defined when first used, at which place they appear in bold and italic type. Terms explicitly defined in this Standard are not to be presumed to refer implicitly to similar terms defined elsewhere. Terms not defined are assumed to be well-known in the financial services or software industries.


- **app directory**: A repository of application metadata supporting discovery, for example via name or intent, and retrieval of metadata necessary to launch an application.
- **app**: Shorthand for application.
- **app directory**: A repository of application metadata supporting discovery, for example via name or intent, and retrieval of metadata necessary to launch an application.
- **app directory record**: Metadata relating to a single application, encoded in JSON.
- **appD**: Shorthand for app directory.
- **appD record**: Shorthand for app directory record.
- **application**: Any endpoint on the desktop that is registered with/known by a Desktop Agent, launchable by a Desktop Agent, addressable by a Desktop Agent or otherwise able to interact with the Desktop Agent.
- **application, hybrid**: Any web application running within the context of a standalone native application that embeds a web view, typically based on Chromium.
- **application, native**: A non-web-based application; i.e., one that runs outside the context of web browser, web view or web container. A user-written program—typically implemented in a language such as C++, C#, Java, or Python, rather than JavaScript or TypeScript.
Expand Down
3 changes: 2 additions & 1 deletion docs/references.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,9 @@ The following normative documents contain provisions, which, through reference i
- **OpenAPI Standard v3.0**, [https://www.openapis.org/].
- **RFC 2119**, _Keywords for use in RFCs to Indicate Requirement Levels, March 1997_, [https://datatracker.ietf.org/doc/html/rfc2119].
- **RFC 2782**, _A DNS RR for specifying the location of services (DNS SRV), February 2000_, [https://datatracker.ietf.org/doc/html/rfc2782].
- **RFC 5646**, _Tags for Identifying Languages, September 2009_, [https://datatracker.ietf.org/doc/html/rfc5646].
- **TypeScript Programming Language**, [https://www.typescriptlang.org/].

- **Web Application Manifest**, _W3C Working Draft_, February 2022 [https://www.w3.org/TR/appmanifest/]

The following documents may be useful in understanding certain aspects of this Standard; however, knowledge of them is not essential to the creation of a compliant implementation of this Standard:

Expand Down
4 changes: 2 additions & 2 deletions src/app-directory/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@ The purpose of the Application Directory specification within FDC3 is to:

## Specification

* [View the OpenAPI Specification in Swagger](https://editor.swagger.io/?url=https://fdc3.finos.org/schemas/1.1/app-directory.yaml)
* [More about the Specification on the FDC3 Website](https://fdc3.finos.org/docs/1.1/app-directory/overview)
* [View the OpenAPI Specification in Swagger](https://editor.swagger.io/?url=https://fdc3.finos.org/schemas/1.2/app-directory.yaml)
* [More about the Specification on the FDC3 Website](https://fdc3.finos.org/docs/1.2/app-directory/overview)


## Directory structure
Expand Down
Loading