From a282c2a8e9004bfaace939b299289f3d42b19ce5 Mon Sep 17 00:00:00 2001 From: Kris West Date: Mon, 4 Apr 2022 13:04:50 +0100 Subject: [PATCH 01/35] Defining a term for a single appD record --- docs/fdc3-glossary.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/fdc3-glossary.md b/docs/fdc3-glossary.md index 9899b0ddf..6537ce6af 100644 --- a/docs/fdc3-glossary.md +++ b/docs/fdc3-glossary.md @@ -6,9 +6,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. From baa33e173f0786007afe47205c439d141ed0ed36 Mon Sep 17 00:00:00 2001 From: Kris West Date: Mon, 4 Apr 2022 13:38:21 +0100 Subject: [PATCH 02/35] changelog --- CHANGELOG.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 009970fa2..8e2dbefa3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -20,7 +20,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). * `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)) -* Add `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 `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)) ### Changed * Consolidated `Listener` documentation with other types ([#404](https://github.com/finos/FDC3/pull/404)) From 744576990db41694b3578c44a68c0fac05bc592e Mon Sep 17 00:00:00 2001 From: Kris West Date: Tue, 19 Apr 2022 15:48:56 +0100 Subject: [PATCH 03/35] Move latest work on appD to /v2/ urls and restore /v1/ urls to 1.2 standard version of spec --- src/app-directory/README.md | 4 +- src/app-directory/specification/appd.yaml | 332 ++++++++++++++++- .../static/schemas/next/app-directory.yaml | 341 +++++++++++++++++- 3 files changed, 664 insertions(+), 13 deletions(-) diff --git a/src/app-directory/README.md b/src/app-directory/README.md index 1e002229c..5e1db685b 100644 --- a/src/app-directory/README.md +++ b/src/app-directory/README.md @@ -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 diff --git a/src/app-directory/specification/appd.yaml b/src/app-directory/specification/appd.yaml index bece799ed..a6c039f9c 100644 --- a/src/app-directory/specification/appd.yaml +++ b/src/app-directory/specification/appd.yaml @@ -12,9 +12,9 @@ info: security: - bearerAuth: [] paths: - '/v1/apps/{appId}': + '/v2/apps/{appId}': get: - summary: Retrieve an application defintion + summary: Retrieve an application definition parameters: - name: appId in: path @@ -53,7 +53,7 @@ paths: $ref: '#/components/schemas/ErrorDTO' tags: - Application - /v1/apps: + /v2/apps: post: summary: Create a new application definition responses: @@ -97,7 +97,7 @@ paths: FDC3WorkbenchAppDefinition: $ref: '#/components/examples/FDC3WorkbenchAppDefinition' required: true - /v1/apps/search: + /v2/apps/search: get: summary: Retrieve a list of applications based on parameters provided. Depending on implementation, parameter values should self describe search format and type (e.g. Regex) @@ -205,6 +205,190 @@ paths: $ref: '#/components/schemas/ErrorDTO' tags: - Application + '/v1/apps/{appId}': + get: + summary: (Deprecated v1 API version) Retrieve an application definition + parameters: + - name: appId + in: path + required: true + schema: + type: string + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/ApplicationV1' + '400': + description: Bad request. + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorDTO' + '403': + description: >- + Forbidden: Certificate authentication is not allowed for the + requested user. + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorDTO' + '500': + description: 'Server error, see response body for further details.' + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorDTO' + tags: + - Application + /v1/apps: + post: + summary: (Deprecated v1 API version) Create a new application definition + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/ApplicationSearchResponseV1' + '400': + description: Bad request. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorDTO' + '403': + description: >- + Forbidden: Certificate authentication is not allowed for the + requested user. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorDTO' + '500': + description: 'Server error, see response body for further details.' + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorDTO' + tags: + - Application + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ApplicationV1' + required: true + /v1/apps/search: + get: + summary: (Deprecated v1 API version) Retrieve a list of applications based on parameters provided. Depending on implementation, parameter + values should self describe search format and type (e.g. Regex) + parameters: + - in: query + name: appId + schema: + type: string + required: false + description: > + The unique application identifier located within a specific + application directory instance. + - in: query + name: name + schema: + type: string + required: false + description: > + The name of the application. + + The name should be unique within an FDC3 App Directory instance. The + exception to the uniqueness constraint is that an App Directory can + hold definitions for multiple versions of the same app. + + The same appName could occur in other directories. We are not + currently specifying app name conventions in the document. + - in: query + name: version + schema: + type: string + required: false + description: >- + Version of the application. This allows multiple app versions to be + defined using the same app name. This can be a triplet but can also + include things like 1.2.5 (BETA) + - in: query + name: title + schema: + type: string + required: false + description: >- + Optional title for the application, if missing use appName, + typically used in a launcher UI. + - in: query + name: tooltip + schema: + type: string + required: false + description: Optional tooltip description e.g. for a launcher + - in: query + name: description + schema: + type: string + required: false + description: >- + Description of the application. This will typically be a 1-2 + paragraph style blurb about the application. Allow mark up language + - in: query + name: intent_name + schema: + type: string + required: false + description: name of intent + - in: query + name: intent_displayName + schema: + type: string + required: false + description: displayName of intent + - in: query + name: intent_context + schema: + type: string + required: false + description: search contexts list + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/ApplicationSearchResponseV1' + examples: + FDC3WorkbenchAppDefinitionSearchResponse: + $ref: '#/components/examples/FDC3WorkbenchAppDefinitionSearchResponseV1' + '400': + description: Bad request. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorDTO' + '403': + description: >- + Forbidden: Certificate authentication is not allowed for the + requested user. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorDTO' + '500': + description: 'Server error, see response body for further details.' + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorDTO' + tags: + - Application servers: - url: /appd @@ -320,6 +504,103 @@ components: $ref: '#/components/schemas/Intent' hostManifests: $ref: '#/components/schemas/HostManifests' + ApplicationV1: + description: > + (Deprecated v1 API version) Defines an application retrieved from an FDC3 App Directory, which can + then be launched. + Launching typically means running for a user on a desktop. + The details around 'launching' including who or what might do it, and how the launch action is initiated are + discussed elsewhere in the FDC3 App Directory spec. + required: + - appId + - name + - manifest + - manifestType + properties: + appId: + type: string + description: > + The unique application identifier located within a specific + application directory instance. + name: + type: string + description: > + The name of the application. + The name should be unique within an FDC3 App Directory instance. The + exception to the uniqueness constraint is that an App Directory can + hold definitions for multiple versions of the same app. + The same appName could occur in other directories. We are not + currently specifying app name conventions in the document. + manifest: + type: string + description: > + URI or full JSON of the application manifest providing all details related to launch + and use requirements as described by the vendor. + The format of this manifest is vendor specific, but can be identified by + the manifestType attribute. + manifestType: + type: string + description: > + The manifest type which relates to the format and structure of the manifest content. + The definition is based on the vendor specific format and definition outside of this specification. + version: + type: string + description: >- + Version of the application. This allows multiple app versions to be + defined using the same app name. This can be a triplet but can also + include things like 1.2.5 (BETA) + title: + type: string + description: >- + Optional title for the application, if missing use appName, + typically used in a launcher UI. + tooltip: + type: string + description: Optional tooltip description e.g. for a launcher + description: + type: string + description: >- + Description of the application. This will typically be a 1-2 + paragraph style blurb about the application. Allow mark up language + images: + type: array + description: >- + Array of images to show the user when they are looking at app + description. Each image can have an optional description/tooltip + items: + $ref: '#/components/schemas/AppImage' + contactEmail: + type: string + description: Optional e-mail to receive queries about the application + supportEmail: + type: string + description: Optional e-mail to receive support requests for the application + publisher: + type: string + description: >- + The name of the company that owns the application. The publisher has + control over their namespace/app/signature. + icons: + type: array + description: >- + Holds Icons used for the application, a Launcher may be able to use + multiple Icon sizes or there may be a 'button' Icon + items: + $ref: '#/components/schemas/IconV1' + customConfig: + type: array + description: >- + An optional set of name value pairs that can be used to deliver + custom data from an App Directory to a launcher. + items: + $ref: '#/components/schemas/NameValuePair' + intents: + type: array + description: > + The list of intents implemented by the Application as defined by + https://github.com/FDC3/Intents/blob/master/src/Intent.yaml + items: + $ref: '#/components/schemas/IntentV1' ApplicationSearchResponse: properties: applications: @@ -332,6 +613,18 @@ components: type: string description: | Response message providing status of query + ApplicationSearchResponseV1: + properties: + applications: + type: array + description: | + List of applications + items: + $ref: '#/components/schemas/ApplicationV1' + message: + type: string + description: | + Response message providing status of query NameValuePair: description: Simple name value pair properties: @@ -353,6 +646,12 @@ components: type: type: string description: Image media type. If not present the Desktop Agent may use the src file extension + IconV1: + description: (Deprecated v1 API version) Icon holder + properties: + icon: + type: string + description: Icon URL AppImage: description: App Image holder properties: @@ -391,6 +690,31 @@ components: description: >- Custom configuration for the intent that may be required for a particular desktop agent. + IntentV1: + description: >- + (Deprecated v1 API version) An intent definition as defined by spec + https://github.com/FDC3/Intents/blob/master/src/Intent.yaml + required: + - name + properties: + name: + type: string + description: The name of the intent to 'launch'. In this case the name of an Intent supported by an Application. + displayName: + type: string + description: An optional display name for the intent that may be used in UI instead of the name. + contexts: + type: array + items: + type: string + description: >- + A comma sepaarted list of the types of contexts the intent offered by the application can process. + where the first part of the context type is the namespace e.g."fdc3.contact, org.symphony.contact" + customConfig: + type: object + description: >- + Custom configuration for the intent that may be required for a + particular desktop agent. Type: type: string description: >- diff --git a/website/static/schemas/next/app-directory.yaml b/website/static/schemas/next/app-directory.yaml index 104f5bca5..a6c039f9c 100644 --- a/website/static/schemas/next/app-directory.yaml +++ b/website/static/schemas/next/app-directory.yaml @@ -12,9 +12,9 @@ info: security: - bearerAuth: [] paths: - '/v1/apps/{appId}': + '/v2/apps/{appId}': get: - summary: Retrieve an application defintion + summary: Retrieve an application definition parameters: - name: appId in: path @@ -53,7 +53,7 @@ paths: $ref: '#/components/schemas/ErrorDTO' tags: - Application - /v1/apps: + /v2/apps: post: summary: Create a new application definition responses: @@ -97,7 +97,7 @@ paths: FDC3WorkbenchAppDefinition: $ref: '#/components/examples/FDC3WorkbenchAppDefinition' required: true - /v1/apps/search: + /v2/apps/search: get: summary: Retrieve a list of applications based on parameters provided. Depending on implementation, parameter values should self describe search format and type (e.g. Regex) @@ -205,6 +205,190 @@ paths: $ref: '#/components/schemas/ErrorDTO' tags: - Application + '/v1/apps/{appId}': + get: + summary: (Deprecated v1 API version) Retrieve an application definition + parameters: + - name: appId + in: path + required: true + schema: + type: string + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/ApplicationV1' + '400': + description: Bad request. + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorDTO' + '403': + description: >- + Forbidden: Certificate authentication is not allowed for the + requested user. + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorDTO' + '500': + description: 'Server error, see response body for further details.' + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorDTO' + tags: + - Application + /v1/apps: + post: + summary: (Deprecated v1 API version) Create a new application definition + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/ApplicationSearchResponseV1' + '400': + description: Bad request. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorDTO' + '403': + description: >- + Forbidden: Certificate authentication is not allowed for the + requested user. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorDTO' + '500': + description: 'Server error, see response body for further details.' + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorDTO' + tags: + - Application + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ApplicationV1' + required: true + /v1/apps/search: + get: + summary: (Deprecated v1 API version) Retrieve a list of applications based on parameters provided. Depending on implementation, parameter + values should self describe search format and type (e.g. Regex) + parameters: + - in: query + name: appId + schema: + type: string + required: false + description: > + The unique application identifier located within a specific + application directory instance. + - in: query + name: name + schema: + type: string + required: false + description: > + The name of the application. + + The name should be unique within an FDC3 App Directory instance. The + exception to the uniqueness constraint is that an App Directory can + hold definitions for multiple versions of the same app. + + The same appName could occur in other directories. We are not + currently specifying app name conventions in the document. + - in: query + name: version + schema: + type: string + required: false + description: >- + Version of the application. This allows multiple app versions to be + defined using the same app name. This can be a triplet but can also + include things like 1.2.5 (BETA) + - in: query + name: title + schema: + type: string + required: false + description: >- + Optional title for the application, if missing use appName, + typically used in a launcher UI. + - in: query + name: tooltip + schema: + type: string + required: false + description: Optional tooltip description e.g. for a launcher + - in: query + name: description + schema: + type: string + required: false + description: >- + Description of the application. This will typically be a 1-2 + paragraph style blurb about the application. Allow mark up language + - in: query + name: intent_name + schema: + type: string + required: false + description: name of intent + - in: query + name: intent_displayName + schema: + type: string + required: false + description: displayName of intent + - in: query + name: intent_context + schema: + type: string + required: false + description: search contexts list + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/ApplicationSearchResponseV1' + examples: + FDC3WorkbenchAppDefinitionSearchResponse: + $ref: '#/components/examples/FDC3WorkbenchAppDefinitionSearchResponseV1' + '400': + description: Bad request. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorDTO' + '403': + description: >- + Forbidden: Certificate authentication is not allowed for the + requested user. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorDTO' + '500': + description: 'Server error, see response body for further details.' + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorDTO' + tags: + - Application servers: - url: /appd @@ -320,6 +504,103 @@ components: $ref: '#/components/schemas/Intent' hostManifests: $ref: '#/components/schemas/HostManifests' + ApplicationV1: + description: > + (Deprecated v1 API version) Defines an application retrieved from an FDC3 App Directory, which can + then be launched. + Launching typically means running for a user on a desktop. + The details around 'launching' including who or what might do it, and how the launch action is initiated are + discussed elsewhere in the FDC3 App Directory spec. + required: + - appId + - name + - manifest + - manifestType + properties: + appId: + type: string + description: > + The unique application identifier located within a specific + application directory instance. + name: + type: string + description: > + The name of the application. + The name should be unique within an FDC3 App Directory instance. The + exception to the uniqueness constraint is that an App Directory can + hold definitions for multiple versions of the same app. + The same appName could occur in other directories. We are not + currently specifying app name conventions in the document. + manifest: + type: string + description: > + URI or full JSON of the application manifest providing all details related to launch + and use requirements as described by the vendor. + The format of this manifest is vendor specific, but can be identified by + the manifestType attribute. + manifestType: + type: string + description: > + The manifest type which relates to the format and structure of the manifest content. + The definition is based on the vendor specific format and definition outside of this specification. + version: + type: string + description: >- + Version of the application. This allows multiple app versions to be + defined using the same app name. This can be a triplet but can also + include things like 1.2.5 (BETA) + title: + type: string + description: >- + Optional title for the application, if missing use appName, + typically used in a launcher UI. + tooltip: + type: string + description: Optional tooltip description e.g. for a launcher + description: + type: string + description: >- + Description of the application. This will typically be a 1-2 + paragraph style blurb about the application. Allow mark up language + images: + type: array + description: >- + Array of images to show the user when they are looking at app + description. Each image can have an optional description/tooltip + items: + $ref: '#/components/schemas/AppImage' + contactEmail: + type: string + description: Optional e-mail to receive queries about the application + supportEmail: + type: string + description: Optional e-mail to receive support requests for the application + publisher: + type: string + description: >- + The name of the company that owns the application. The publisher has + control over their namespace/app/signature. + icons: + type: array + description: >- + Holds Icons used for the application, a Launcher may be able to use + multiple Icon sizes or there may be a 'button' Icon + items: + $ref: '#/components/schemas/IconV1' + customConfig: + type: array + description: >- + An optional set of name value pairs that can be used to deliver + custom data from an App Directory to a launcher. + items: + $ref: '#/components/schemas/NameValuePair' + intents: + type: array + description: > + The list of intents implemented by the Application as defined by + https://github.com/FDC3/Intents/blob/master/src/Intent.yaml + items: + $ref: '#/components/schemas/IntentV1' ApplicationSearchResponse: properties: applications: @@ -332,6 +613,18 @@ components: type: string description: | Response message providing status of query + ApplicationSearchResponseV1: + properties: + applications: + type: array + description: | + List of applications + items: + $ref: '#/components/schemas/ApplicationV1' + message: + type: string + description: | + Response message providing status of query NameValuePair: description: Simple name value pair properties: @@ -353,6 +646,12 @@ components: type: type: string description: Image media type. If not present the Desktop Agent may use the src file extension + IconV1: + description: (Deprecated v1 API version) Icon holder + properties: + icon: + type: string + description: Icon URL AppImage: description: App Image holder properties: @@ -377,12 +676,40 @@ components: items: type: string description: >- - A comma separated list of the types of contexts the intent offered by the application can process, + A comma separated list of the types of contexts the intent offered by the application can process, where the first part of the context type is the namespace e.g."fdc3.contact, org.symphony.contact" - resultContext: + resultType: type: string description: >- - The type of context return by the application when resolving this intent. E.g. "fdc3.instrument" + An optional type for output returned by the application, if any, when resolving this intent. + May indicate a context type by type name (e.g. "fdc3.instrument"), a channel (e.g. "channel") + or a combination that indicates a channel that returns a particular context type + (e.g. "channel"). + customConfig: + type: object + description: >- + Custom configuration for the intent that may be required for a + particular desktop agent. + IntentV1: + description: >- + (Deprecated v1 API version) An intent definition as defined by spec + https://github.com/FDC3/Intents/blob/master/src/Intent.yaml + required: + - name + properties: + name: + type: string + description: The name of the intent to 'launch'. In this case the name of an Intent supported by an Application. + displayName: + type: string + description: An optional display name for the intent that may be used in UI instead of the name. + contexts: + type: array + items: + type: string + description: >- + A comma sepaarted list of the types of contexts the intent offered by the application can process. + where the first part of the context type is the namespace e.g."fdc3.contact, org.symphony.contact" customConfig: type: object description: >- From bcd732d8008116cfb390b84970891dff33978799 Mon Sep 17 00:00:00 2001 From: Kris West Date: Tue, 19 Apr 2022 17:30:56 +0100 Subject: [PATCH 04/35] Adds appD /v2/ API paths and fixes some html issues in the appD spec --- docs/app-directory/spec.md | 9 +++-- src/app-directory/specification/appd.yaml | 2 +- website/pages/schemas/1.1/app-directory.html | 33 +++++-------------- website/pages/schemas/1.2/app-directory.html | 33 +++++-------------- website/pages/schemas/next/app-directory.html | 33 +++++-------------- website/static/schemas/1.1/app-directory.yaml | 2 +- website/static/schemas/1.2/app-directory.yaml | 2 +- .../static/schemas/next/app-directory.yaml | 2 +- 8 files changed, 37 insertions(+), 79 deletions(-) diff --git a/docs/app-directory/spec.md b/docs/app-directory/spec.md index b2c7ccf4f..70edf81a8 100644 --- a/docs/app-directory/spec.md +++ b/docs/app-directory/spec.md @@ -11,6 +11,9 @@ 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` | POST | Create a new application definition + `/v2/apps/{appId}` | GET | Retrieve an application defintion + `/v2/apps/search` | GET | Retrieve a list of applications + `/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 diff --git a/src/app-directory/specification/appd.yaml b/src/app-directory/specification/appd.yaml index a6c039f9c..54dfc9987 100644 --- a/src/app-directory/specification/appd.yaml +++ b/src/app-directory/specification/appd.yaml @@ -1,7 +1,7 @@ openapi: 3.0.0 info: title: FDC3 Application Directory - version: next + version: 'next' description: > Application Directory specification providing both interface definition and objects necessary to construct an application directory diff --git a/website/pages/schemas/1.1/app-directory.html b/website/pages/schemas/1.1/app-directory.html index a149a1725..f9ebbf171 100644 --- a/website/pages/schemas/1.1/app-directory.html +++ b/website/pages/schemas/1.1/app-directory.html @@ -1,24 +1,9 @@ - - - - ReDoc - - - - - - - - - - - - - \ No newline at end of file + + + + diff --git a/website/pages/schemas/1.2/app-directory.html b/website/pages/schemas/1.2/app-directory.html index a149a1725..7ff93048f 100644 --- a/website/pages/schemas/1.2/app-directory.html +++ b/website/pages/schemas/1.2/app-directory.html @@ -1,24 +1,9 @@ - - - - ReDoc - - - - - - - - - - - - - \ No newline at end of file + + + + diff --git a/website/pages/schemas/next/app-directory.html b/website/pages/schemas/next/app-directory.html index a149a1725..faebf3691 100644 --- a/website/pages/schemas/next/app-directory.html +++ b/website/pages/schemas/next/app-directory.html @@ -1,24 +1,9 @@ - - - - ReDoc - - - - - - - - - - - - - \ No newline at end of file + + + + \ No newline at end of file diff --git a/website/static/schemas/1.1/app-directory.yaml b/website/static/schemas/1.1/app-directory.yaml index e1ccdacfd..ac034f4c2 100644 --- a/website/static/schemas/1.1/app-directory.yaml +++ b/website/static/schemas/1.1/app-directory.yaml @@ -1,7 +1,7 @@ openapi: 3.0.0 info: title: FDC3 Application Directory - version: 1.1 + version: '1.1' description: > Application Directory specification providing both interface definition and objects necessary to construct an application directory diff --git a/website/static/schemas/1.2/app-directory.yaml b/website/static/schemas/1.2/app-directory.yaml index 762f275e9..7d06b2692 100644 --- a/website/static/schemas/1.2/app-directory.yaml +++ b/website/static/schemas/1.2/app-directory.yaml @@ -1,7 +1,7 @@ openapi: 3.0.0 info: title: FDC3 Application Directory - version: 1.2 + version: '1.2' description: > Application Directory specification providing both interface definition and objects necessary to construct an application directory diff --git a/website/static/schemas/next/app-directory.yaml b/website/static/schemas/next/app-directory.yaml index a6c039f9c..54dfc9987 100644 --- a/website/static/schemas/next/app-directory.yaml +++ b/website/static/schemas/next/app-directory.yaml @@ -1,7 +1,7 @@ openapi: 3.0.0 info: title: FDC3 Application Directory - version: next + version: 'next' description: > Application Directory specification providing both interface definition and objects necessary to construct an application directory From cb9aa6041d57c7e8d9c3444edd607f2095cf2f67 Mon Sep 17 00:00:00 2001 From: Kris West Date: Wed, 20 Apr 2022 10:54:17 +0100 Subject: [PATCH 05/35] remove appD v1 search API example --- src/app-directory/specification/appd.yaml | 3 --- website/static/schemas/next/app-directory.yaml | 3 --- 2 files changed, 6 deletions(-) diff --git a/src/app-directory/specification/appd.yaml b/src/app-directory/specification/appd.yaml index 54dfc9987..dd6540f29 100644 --- a/src/app-directory/specification/appd.yaml +++ b/src/app-directory/specification/appd.yaml @@ -364,9 +364,6 @@ paths: application/json: schema: $ref: '#/components/schemas/ApplicationSearchResponseV1' - examples: - FDC3WorkbenchAppDefinitionSearchResponse: - $ref: '#/components/examples/FDC3WorkbenchAppDefinitionSearchResponseV1' '400': description: Bad request. content: diff --git a/website/static/schemas/next/app-directory.yaml b/website/static/schemas/next/app-directory.yaml index 54dfc9987..dd6540f29 100644 --- a/website/static/schemas/next/app-directory.yaml +++ b/website/static/schemas/next/app-directory.yaml @@ -364,9 +364,6 @@ paths: application/json: schema: $ref: '#/components/schemas/ApplicationSearchResponseV1' - examples: - FDC3WorkbenchAppDefinitionSearchResponse: - $ref: '#/components/examples/FDC3WorkbenchAppDefinitionSearchResponseV1' '400': description: Bad request. content: From 19df580f72bdfe83a473d79e25e19991d4bd6a32 Mon Sep 17 00:00:00 2001 From: Kris West Date: Wed, 20 Apr 2022 17:36:33 +0100 Subject: [PATCH 06/35] adding moreInfo field to application record and applying formats to fields that should already have them --- src/app-directory/specification/appd.yaml | 13 +++++++++++++ website/static/schemas/next/app-directory.yaml | 13 +++++++++++++ 2 files changed, 26 insertions(+) diff --git a/src/app-directory/specification/appd.yaml b/src/app-directory/specification/appd.yaml index dd6540f29..2044908cd 100644 --- a/src/app-directory/specification/appd.yaml +++ b/src/app-directory/specification/appd.yaml @@ -469,10 +469,16 @@ components: $ref: '#/components/schemas/AppImage' contactEmail: type: string + format: email description: Optional e-mail to receive queries about the application supportEmail: type: string + format: email description: Optional e-mail to receive support requests for the application + moreInfo: + type: string + format: uri + description: Optional URL that provides more infomation about the application publisher: type: string description: >- @@ -568,9 +574,11 @@ components: $ref: '#/components/schemas/AppImage' contactEmail: type: string + format: email description: Optional e-mail to receive queries about the application supportEmail: type: string + format: email description: Optional e-mail to receive support requests for the application publisher: type: string @@ -636,6 +644,7 @@ components: properties: src: type: string + format: uri description: Icon URL size: type: string @@ -648,12 +657,14 @@ components: properties: icon: type: string + format: uri description: Icon URL AppImage: description: App Image holder properties: url: type: string + format: uri description: App Image URL Intent: description: >- @@ -727,6 +738,7 @@ components: properties: url: type: string + format: uri description: Application URL. additionalProperties: false HostManifests: @@ -761,6 +773,7 @@ components: tooltip: FDC3 logo contactEmail: fdc3@finos.org supportEmail: fdc3-maintainers@finos.org + moreInfo: https://fdc3.finos.org #update to point to implementations page when it exists publisher: FDC3 intents: [{ name: ViewChart, diff --git a/website/static/schemas/next/app-directory.yaml b/website/static/schemas/next/app-directory.yaml index dd6540f29..2044908cd 100644 --- a/website/static/schemas/next/app-directory.yaml +++ b/website/static/schemas/next/app-directory.yaml @@ -469,10 +469,16 @@ components: $ref: '#/components/schemas/AppImage' contactEmail: type: string + format: email description: Optional e-mail to receive queries about the application supportEmail: type: string + format: email description: Optional e-mail to receive support requests for the application + moreInfo: + type: string + format: uri + description: Optional URL that provides more infomation about the application publisher: type: string description: >- @@ -568,9 +574,11 @@ components: $ref: '#/components/schemas/AppImage' contactEmail: type: string + format: email description: Optional e-mail to receive queries about the application supportEmail: type: string + format: email description: Optional e-mail to receive support requests for the application publisher: type: string @@ -636,6 +644,7 @@ components: properties: src: type: string + format: uri description: Icon URL size: type: string @@ -648,12 +657,14 @@ components: properties: icon: type: string + format: uri description: Icon URL AppImage: description: App Image holder properties: url: type: string + format: uri description: App Image URL Intent: description: >- @@ -727,6 +738,7 @@ components: properties: url: type: string + format: uri description: Application URL. additionalProperties: false HostManifests: @@ -761,6 +773,7 @@ components: tooltip: FDC3 logo contactEmail: fdc3@finos.org supportEmail: fdc3-maintainers@finos.org + moreInfo: https://fdc3.finos.org #update to point to implementations page when it exists publisher: FDC3 intents: [{ name: ViewChart, From 3417d3a55cab329e2fbb0c5d96976255bdfdab9c Mon Sep 17 00:00:00 2001 From: Kris West Date: Wed, 20 Apr 2022 17:45:11 +0100 Subject: [PATCH 07/35] changelog --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 009970fa2..f10860dbb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -21,7 +21,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). * 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)) * Add `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 `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)) ### Changed * Consolidated `Listener` documentation with other types ([#404](https://github.com/finos/FDC3/pull/404)) * Updated definition of the `Position` context type to support negative (short) positions ([#419](https://github.com/finos/FDC3/pull/419)) From 0fc35a8a3345a30033f75c506414677e35407e48 Mon Sep 17 00:00:00 2001 From: Kris West Date: Wed, 20 Apr 2022 17:47:32 +0100 Subject: [PATCH 08/35] changelog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 009970fa2..f9865d145 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -21,6 +21,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). * 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)) * Add `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 `/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)) ### Changed * Consolidated `Listener` documentation with other types ([#404](https://github.com/finos/FDC3/pull/404)) From 116903c1056947356212c67d9f4c9b4c799a97b4 Mon Sep 17 00:00:00 2001 From: Kris West Date: Wed, 20 Apr 2022 18:10:39 +0100 Subject: [PATCH 09/35] adding lang tag to specify primary language of application and appD record --- docs/references.md | 1 + src/app-directory/specification/appd.yaml | 4 ++++ website/static/schemas/next/app-directory.yaml | 4 ++++ 3 files changed, 9 insertions(+) diff --git a/docs/references.md b/docs/references.md index 9f78881da..261e87ca6 100644 --- a/docs/references.md +++ b/docs/references.md @@ -14,6 +14,7 @@ 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/]. diff --git a/src/app-directory/specification/appd.yaml b/src/app-directory/specification/appd.yaml index dd6540f29..bed7bd0b5 100644 --- a/src/app-directory/specification/appd.yaml +++ b/src/app-directory/specification/appd.yaml @@ -455,6 +455,10 @@ components: tooltip: type: string description: Optional tooltip description e.g. for a launcher + lang: + type: string + pattern: '[a-z]{2}(-[a-zA-Z0-9]{2,8}){0,1}' + description: a language tag that specifies the primary language of both application and it's AppD entry, as defined by IETF RFC 5646. description: type: string description: >- diff --git a/website/static/schemas/next/app-directory.yaml b/website/static/schemas/next/app-directory.yaml index dd6540f29..bed7bd0b5 100644 --- a/website/static/schemas/next/app-directory.yaml +++ b/website/static/schemas/next/app-directory.yaml @@ -455,6 +455,10 @@ components: tooltip: type: string description: Optional tooltip description e.g. for a launcher + lang: + type: string + pattern: '[a-z]{2}(-[a-zA-Z0-9]{2,8}){0,1}' + description: a language tag that specifies the primary language of both application and it's AppD entry, as defined by IETF RFC 5646. description: type: string description: >- From fb201ed2d632853c8bf0c90a8406c4f2c05f400a Mon Sep 17 00:00:00 2001 From: Kris West Date: Thu, 21 Apr 2022 16:31:53 +0100 Subject: [PATCH 10/35] adding localizedVersions field to appD application record schema to support localized copies of descriptive fields and of the apps themselves --- src/app-directory/specification/appd.yaml | 49 +- website/package.json | 2 +- .../static/schemas/next/app-directory.yaml | 49 +- website/yarn.lock | 761 ++++++++++-------- 4 files changed, 479 insertions(+), 382 deletions(-) diff --git a/src/app-directory/specification/appd.yaml b/src/app-directory/specification/appd.yaml index bed7bd0b5..7414fa2db 100644 --- a/src/app-directory/specification/appd.yaml +++ b/src/app-directory/specification/appd.yaml @@ -404,18 +404,7 @@ components: format: int32 message: type: string - Application: - description: > - Defines an application retrieved from an FDC3 App Directory, which can - then be launched. - - Launching typically means running for a user on a desktop. - The details around 'launching' including who or what might do it, and how the launch action is initiated are - discussed elsewhere in the FDC3 App Directory spec. - required: # details are not required as the host type applications use the hostsManifests mapping instead - - appId - - name - - type + BaseApplication: properties: appId: type: string @@ -457,7 +446,7 @@ components: description: Optional tooltip description e.g. for a launcher lang: type: string - pattern: '[a-z]{2}(-[a-zA-Z0-9]{2,8}){0,1}' + pattern: '^[a-z]{2}(-[a-zA-Z0-9]{2,8}){0,1}$' description: a language tag that specifies the primary language of both application and it's AppD entry, as defined by IETF RFC 5646. description: type: string @@ -505,6 +494,24 @@ components: $ref: '#/components/schemas/Intent' hostManifests: $ref: '#/components/schemas/HostManifests' + Application: + description: > + Defines an application retrieved from an FDC3 App Directory, which can + then be launched. + + Launching typically means running for a user on a desktop. + The details around 'launching' including who or what might do it, and how the launch action is initiated are + discussed elsewhere in the FDC3 App Directory spec. + required: # details are not required as the host type applications use the hostsManifests mapping instead + - appId + - name + - type + allOf: + - $ref: '#/components/schemas/BaseApplication' + - type: object + properties: + localizedVersions: + $ref: '#/components/schemas/LocalizedVersions' ApplicationV1: description: > (Deprecated v1 API version) Defines an application retrieved from an FDC3 App Directory, which can @@ -749,6 +756,15 @@ components: type: object description: >- Object containing all host specific properties. + LocalizedVersions: + type: object # keys should be constrained to valid language tags '^[a-z]{2}(-[a-zA-Z0-9]{2,8}){0,1}$' - not possible to express in OpenAPI without moving to v3.1.0 and the javascript/jsonschema version + description: > + Provides localized alternatives to any field of the AppD record, which may also refer to an alternative + version of the application that is also localized (e.g. by providing customConfig or an alternative URL). + The keys to this object should be language tags as defined by IETF RFC 5646, e.g. en, en-GB or fr-FR. + additionalProperties: + x-additionalPropertiesName: Language tag + $ref: '#/components/schemas/BaseApplication' # due to a bug in redoc this may display as a recursive definition, it is not. It will render correctly in swagger and other OpenAPI parsers. examples: FDC3WorkbenchAppDefinition: value: @@ -758,6 +774,7 @@ components: description: Development and test tool for FDC3 desktop agents and apps version: 1.0.0 tooltip: FDC3 Workbench + lang: en-US icons: - src: http://fdc3.finos.org/toolbox/fdc3-workbench/fdc3-icon-256.png images: @@ -824,6 +841,12 @@ components: }, Web App Manifest: https://example.com/fdc3-workbench.json } + localizedVersions: { + fr-FR: { + title: FDC3 Table de travail, + description: Outil de développement et de test pour les desktop agents et applications FDC3 + } + } summary: A sample app definition for the FDC3 Workbench application FDC3WorkbenchAppDefinitionSearchResponse: value: diff --git a/website/package.json b/website/package.json index 00a9bd6f1..9bf5471c8 100644 --- a/website/package.json +++ b/website/package.json @@ -26,7 +26,7 @@ "del-cli": "4.0.1", "docusaurus": "1.14.7", "docusaurus-delete-version": "0.1.1", - "redoc-cli": "0.10.1", + "redoc-cli": "0.13.10", "replace-in-files-cli": "1.0.0", "replace-json-property": "1.6.3", "rimraf": "3.0.2" diff --git a/website/static/schemas/next/app-directory.yaml b/website/static/schemas/next/app-directory.yaml index bed7bd0b5..e719d622b 100644 --- a/website/static/schemas/next/app-directory.yaml +++ b/website/static/schemas/next/app-directory.yaml @@ -404,18 +404,7 @@ components: format: int32 message: type: string - Application: - description: > - Defines an application retrieved from an FDC3 App Directory, which can - then be launched. - - Launching typically means running for a user on a desktop. - The details around 'launching' including who or what might do it, and how the launch action is initiated are - discussed elsewhere in the FDC3 App Directory spec. - required: # details are not required as the host type applications use the hostsManifests mapping instead - - appId - - name - - type + BaseApplication: properties: appId: type: string @@ -457,7 +446,7 @@ components: description: Optional tooltip description e.g. for a launcher lang: type: string - pattern: '[a-z]{2}(-[a-zA-Z0-9]{2,8}){0,1}' + pattern: '^[a-z]{2}(-[a-zA-Z0-9]{2,8}){0,1}$' description: a language tag that specifies the primary language of both application and it's AppD entry, as defined by IETF RFC 5646. description: type: string @@ -505,6 +494,24 @@ components: $ref: '#/components/schemas/Intent' hostManifests: $ref: '#/components/schemas/HostManifests' + Application: + description: > + Defines an application retrieved from an FDC3 App Directory, which can + then be launched. + + Launching typically means running for a user on a desktop. + The details around 'launching' including who or what might do it, and how the launch action is initiated are + discussed elsewhere in the FDC3 App Directory spec. + required: # details are not required as the host type applications use the hostsManifests mapping instead + - appId + - name + - type + allOf: + - $ref: '#/components/schemas/BaseApplication' + - type: object + properties: + localizedVersions: + $ref: '#/components/schemas/LocalizedVersions' ApplicationV1: description: > (Deprecated v1 API version) Defines an application retrieved from an FDC3 App Directory, which can @@ -749,6 +756,15 @@ components: type: object description: >- Object containing all host specific properties. + LocalizedVersions: + type: object # keys should be constrained to valid language tags '^[a-z]{2}(-[a-zA-Z0-9]{2,8}){0,1}$' - not possible to express in OpenAPI without moving to v3.1.0 and the javascript/jsonschema version + description: > + Provides localized alternatives to any field of the AppD record, which may also refer to an alternative + version of the application that is also localized (e.g. by providing customConfig or an alternative URL). + The keys to this object should be language tags as defined by IETF RFC 5646, e.g. en, en-GB or fr-FR. + additionalProperties: + x-additionalPropertiesName: Language tag + $ref: '#/components/schemas/BaseApplication' examples: FDC3WorkbenchAppDefinition: value: @@ -758,6 +774,7 @@ components: description: Development and test tool for FDC3 desktop agents and apps version: 1.0.0 tooltip: FDC3 Workbench + lang: en-US icons: - src: http://fdc3.finos.org/toolbox/fdc3-workbench/fdc3-icon-256.png images: @@ -824,6 +841,12 @@ components: }, Web App Manifest: https://example.com/fdc3-workbench.json } + localizedVersions: { + fr-FR: { + title: FDC3 Table de travail, + description: Outil de développement et de test pour les desktop agents et applications FDC3 + } + } summary: A sample app definition for the FDC3 Workbench application FDC3WorkbenchAppDefinitionSearchResponse: value: diff --git a/website/yarn.lock b/website/yarn.lock index 20a8fb953..761cd84ac 100644 --- a/website/yarn.lock +++ b/website/yarn.lock @@ -61,13 +61,6 @@ jsesc "^2.5.1" source-map "^0.5.0" -"@babel/helper-annotate-as-pure@^7.0.0": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.4.tgz#5bf0d495a3f757ac3bda48b5bf3b3ba309c72ba3" - integrity sha512-XQlqKQP4vXFB7BN8fEEerrmYvHp3fK/rBkRFz9jaJbzK0B1DSfej9Kc7ZzE8Z/OnId1jpJdNAZ3BFQjWG68rcA== - dependencies: - "@babel/types" "^7.10.4" - "@babel/helper-annotate-as-pure@^7.10.4", "@babel/helper-annotate-as-pure@^7.12.13": version "7.12.13" resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.12.13.tgz#0f58e86dfc4bb3b1fcd7db806570e177d439b6ab" @@ -75,6 +68,13 @@ dependencies: "@babel/types" "^7.12.13" +"@babel/helper-annotate-as-pure@^7.16.0": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz#bb2339a7534a9c128e3102024c60760a3a7f3862" + integrity sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw== + dependencies: + "@babel/types" "^7.16.7" + "@babel/helper-builder-binary-assignment-operator-visitor@^7.12.13": version "7.12.13" resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.12.13.tgz#6bc20361c88b0a74d05137a65cac8d3cbf6f61fc" @@ -178,6 +178,13 @@ dependencies: "@babel/types" "^7.12.13" +"@babel/helper-module-imports@^7.16.0": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz#25612a8091a999704461c8a222d0efec5d091437" + integrity sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg== + dependencies: + "@babel/types" "^7.16.7" + "@babel/helper-module-transforms@^7.13.0": version "7.13.0" resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.13.0.tgz#42eb4bd8eea68bab46751212c357bfed8b40f6f1" @@ -250,6 +257,11 @@ resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz#c9a1f021917dcb5ccf0d4e453e399022981fc9ed" integrity sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw== +"@babel/helper-validator-identifier@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz#e8c602438c4a8195751243da9031d1607d247cad" + integrity sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw== + "@babel/helper-validator-option@^7.12.17": version "7.12.17" resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.12.17.tgz#d1fbf012e1a79b7eebbfdc6d270baaf8d9eb9831" @@ -889,10 +901,10 @@ pirates "^4.0.0" source-map-support "^0.5.16" -"@babel/runtime@^7.0.0", "@babel/runtime@^7.9.2": - version "7.11.2" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.11.2.tgz#f549c13c754cc40b87644b9fa9f09a6a95fe0736" - integrity sha512-TeWkU52so0mPtDcaCTxNBI/IHiz0pZgr8VEFqXFtZWpYD08ZB6FaSwVAS8MKRQAP3bYKiVjwysOJgMFY28o6Tw== +"@babel/runtime@^7.17.8": + version "7.17.9" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.17.9.tgz#d19fbf802d01a8cb6cf053a64e472d42c434ba72" + integrity sha512-lSiBBvodq29uShpWGNbgFdKYNiFDo5/HIYsaCEY9ff4sb10x9jizo2+pRrSyF4jKZCXqgzuqBOQKbUm90gQwJg== dependencies: regenerator-runtime "^0.13.4" @@ -951,17 +963,25 @@ lodash "^4.17.19" to-fast-properties "^2.0.0" -"@emotion/is-prop-valid@^0.8.8": - version "0.8.8" - resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz#db28b1c4368a259b60a97311d6a952d4fd01ac1a" - integrity sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA== +"@babel/types@^7.16.7": + version "7.17.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.17.0.tgz#a826e368bccb6b3d84acd76acad5c0d87342390b" + integrity sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw== dependencies: - "@emotion/memoize" "0.7.4" + "@babel/helper-validator-identifier" "^7.16.7" + to-fast-properties "^2.0.0" -"@emotion/memoize@0.7.4": - version "0.7.4" - resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.7.4.tgz#19bf0f5af19149111c40d98bb0cf82119f5d9eeb" - integrity sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw== +"@emotion/is-prop-valid@^1.1.0": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-1.1.2.tgz#34ad6e98e871aa6f7a20469b602911b8b11b3a95" + integrity sha512-3QnhqeL+WW88YjYbQL5gUIkthuMw7a0NGbZ7wfFVk2kg/CK5w8w5FFa0RzWjyY1+sujN0NWbtSHH6OJmWHtJpQ== + dependencies: + "@emotion/memoize" "^0.7.4" + +"@emotion/memoize@^0.7.4": + version "0.7.5" + resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.7.5.tgz#2c40f81449a4e554e9fc6396910ed4843ec2be50" + integrity sha512-igX9a37DR2ZPGYtV6suZ6whr8pTFtyHL3K/oLUotxpSVO2ASaprmAe2Dkq7tBo7CRY7MMDrAa9nuQP9/YG8FxQ== "@emotion/stylis@^0.8.4": version "0.8.5" @@ -1012,6 +1032,32 @@ "@nodelib/fs.scandir" "2.1.3" fastq "^1.6.0" +"@redocly/ajv@^8.6.4": + version "8.6.4" + resolved "https://registry.yarnpkg.com/@redocly/ajv/-/ajv-8.6.4.tgz#94053e7a9d4146d1a4feacd3813892873f229a85" + integrity sha512-y9qNj0//tZtWB2jfXNK3BX18BSBp9zNR7KE7lMysVHwbZtY392OJCjm6Rb/h4UHH2r1AqjNEHFD6bRn+DqU9Mw== + dependencies: + fast-deep-equal "^3.1.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + uri-js "^4.2.2" + +"@redocly/openapi-core@^1.0.0-beta.88": + version "1.0.0-beta.94" + resolved "https://registry.yarnpkg.com/@redocly/openapi-core/-/openapi-core-1.0.0-beta.94.tgz#7fc3a34aea8b0ee12ae2de26bedf90a4cf717366" + integrity sha512-xTklcobv+51bQVkUOpUiNY0GztL+0u3yGsy2BtldaHpcnNGMu3lu/utsoOHkiNTpgVEGyEWVZzBtF6Sz5v/Fkg== + dependencies: + "@redocly/ajv" "^8.6.4" + "@types/node" "^14.11.8" + colorette "^1.2.0" + js-levenshtein "^1.1.6" + js-yaml "^4.1.0" + lodash.isequal "^4.5.0" + minimatch "^3.0.4" + node-fetch "^2.6.1" + pluralize "^8.0.0" + yaml-ast-parser "0.0.43" + "@redocly/react-dropdown-aria@^2.0.11": version "2.0.11" resolved "https://registry.yarnpkg.com/@redocly/react-dropdown-aria/-/react-dropdown-aria-2.0.11.tgz#532b864b329237e646abe45d0f8edc923e77370a" @@ -1043,6 +1089,11 @@ "@types/minimatch" "*" "@types/node" "*" +"@types/json-schema@^7.0.7": + version "7.0.11" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3" + integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ== + "@types/minimatch@*": version "3.0.3" resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" @@ -1063,10 +1114,10 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.35.tgz#42c953a4e2b18ab931f72477e7012172f4ffa313" integrity sha512-Lt+wj8NVPx0zUmUwumiVXapmaLUcAk3yPuHCFVXras9k5VT9TdhJqKqGVUQCD60OTMCl0qxJ57OiTL0Mic3Iag== -"@types/node@^13.11.1": - version "13.13.25" - resolved "https://registry.yarnpkg.com/@types/node/-/node-13.13.25.tgz#768d6712b15099a744812a92b84ffde8f4e13cf1" - integrity sha512-6ZMK4xRcF2XrPdKmPYQxZkdHKV18xKgUFVvhIgw2iwaaO6weleLPHLBGPZmLhjo+m1N+MZXRAoBEBCCVqgO2zQ== +"@types/node@^14.11.8": + version "14.18.13" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.18.13.tgz#6ad4d9db59e6b3faf98dcfe4ca9d2aec84443277" + integrity sha512-Z6/KzgyWOga3pJNS42A+zayjhPbf2zM3hegRQaOPnLOzEi86VV++6FLDWgR1LGrVCRufP/ph2daa3tEa5br1zA== "@types/normalize-package-data@^2.4.0": version "2.4.0" @@ -1114,16 +1165,6 @@ airbnb-prop-types@^2.16.0: prop-types-exact "^1.2.0" react-is "^16.13.1" -ajv@^5.5.2: - version "5.5.2" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965" - integrity sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU= - dependencies: - co "^4.6.0" - fast-deep-equal "^1.0.0" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.3.0" - ajv@^6.12.3: version "6.12.6" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" @@ -1156,6 +1197,11 @@ ansi-regex@^5.0.0: resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== +ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + ansi-styles@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" @@ -1180,10 +1226,10 @@ ansi-wrap@0.1.0: resolved "https://registry.yarnpkg.com/ansi-wrap/-/ansi-wrap-0.1.0.tgz#a82250ddb0015e9a27ca82e82ea603bbfa45efaf" integrity sha1-qCJQ3bABXponyoLoLqYDu/pF768= -anymatch@~3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.1.tgz#c55ecf02185e2469259399310c173ce31233b142" - integrity sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg== +anymatch@~3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" + integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== dependencies: normalize-path "^3.0.0" picomatch "^2.0.4" @@ -1207,6 +1253,11 @@ argparse@^1.0.10, argparse@^1.0.7: dependencies: sprintf-js "~1.0.2" +argparse@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== + arr-diff@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" @@ -1411,15 +1462,16 @@ babel-plugin-polyfill-regenerator@^0.1.2: dependencies: "@babel/helper-define-polyfill-provider" "^0.1.5" -"babel-plugin-styled-components@>= 1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/babel-plugin-styled-components/-/babel-plugin-styled-components-1.11.1.tgz#5296a9e557d736c3186be079fff27c6665d63d76" - integrity sha512-YwrInHyKUk1PU3avIRdiLyCpM++18Rs1NgyMXEAQC33rIXs/vro0A+stf4sT0Gf22Got+xRWB8Cm0tw+qkRzBA== +"babel-plugin-styled-components@>= 1.12.0": + version "2.0.7" + resolved "https://registry.yarnpkg.com/babel-plugin-styled-components/-/babel-plugin-styled-components-2.0.7.tgz#c81ef34b713f9da2b7d3f5550df0d1e19e798086" + integrity sha512-i7YhvPgVqRKfoQ66toiZ06jPNA3p6ierpfUuEWxNF+fV27Uv5gxBkf8KZLHUCc1nFA9j6+80pYoIpqCeyW3/bA== dependencies: - "@babel/helper-annotate-as-pure" "^7.0.0" - "@babel/helper-module-imports" "^7.0.0" + "@babel/helper-annotate-as-pure" "^7.16.0" + "@babel/helper-module-imports" "^7.16.0" babel-plugin-syntax-jsx "^6.18.0" lodash "^4.17.11" + picomatch "^2.3.0" babel-plugin-syntax-jsx@^6.18.0: version "6.18.0" @@ -1461,19 +1513,6 @@ bcrypt-pbkdf@^1.0.0: dependencies: tweetnacl "^0.14.3" -better-ajv-errors@^0.6.1, better-ajv-errors@^0.6.7: - version "0.6.7" - resolved "https://registry.yarnpkg.com/better-ajv-errors/-/better-ajv-errors-0.6.7.tgz#b5344af1ce10f434fe02fc4390a5a9c811e470d1" - integrity sha512-PYgt/sCzR4aGpyNy5+ViSQ77ognMnWq7745zM+/flYO4/Yisdtp9wDQW2IKCyVYPUxQt3E/b5GBSwfhd1LPdlg== - dependencies: - "@babel/code-frame" "^7.0.0" - "@babel/runtime" "^7.0.0" - chalk "^2.4.1" - core-js "^3.2.1" - json-to-ast "^2.0.3" - jsonpointer "^4.0.1" - leven "^3.1.0" - big.js@^5.2.2: version "5.2.2" resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" @@ -1983,20 +2022,20 @@ cheerio@^1.0.0-rc.3: parse5 "^6.0.0" parse5-htmlparser2-tree-adapter "^6.0.0" -chokidar@^3.4.1: - version "3.4.2" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.4.2.tgz#38dc8e658dec3809741eb3ef7bb0a47fe424232d" - integrity sha512-IZHaDeBeI+sZJRX7lGcXsdzgvZqKv6sECqsbErJA4mHWfpRrD8B97kSFN4cQz6nGBGiuFia1MKR4d6c1o8Cv7A== +chokidar@^3.5.1: + version "3.5.3" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" + integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== dependencies: - anymatch "~3.1.1" + anymatch "~3.1.2" braces "~3.0.2" - glob-parent "~5.1.0" + glob-parent "~5.1.2" is-binary-path "~2.1.0" is-glob "~4.0.1" normalize-path "~3.0.0" - readdirp "~3.4.0" + readdirp "~3.6.0" optionalDependencies: - fsevents "~2.1.2" + fsevents "~2.3.2" cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: version "1.0.4" @@ -2021,19 +2060,24 @@ classnames@^2.2.6: resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.2.6.tgz#43935bffdd291f326dad0a205309b38d00f650ce" integrity sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q== +classnames@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.3.1.tgz#dfcfa3891e306ec1dad105d0e88f4417b8535e8e" + integrity sha512-OlQdbZ7gLfGarSqxesMesDa5uz7KFbID8Kpq/SxIoNGDqY8lSYs0D+hhtBXhcdB3rcbXArFr7vlHheLk1voeNA== + clean-stack@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== -cliui@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" - integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== +cliui@^7.0.2: + version "7.0.4" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" + integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== dependencies: string-width "^4.2.0" strip-ansi "^6.0.0" - wrap-ansi "^6.2.0" + wrap-ansi "^7.0.0" clone-response@1.0.2: version "1.0.2" @@ -2047,11 +2091,6 @@ clsx@^1.1.0: resolved "https://registry.yarnpkg.com/clsx/-/clsx-1.1.1.tgz#98b3134f9abbdf23b2663491ace13c5c03a73188" integrity sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA== -co@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" - integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= - coa@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/coa/-/coa-2.0.2.tgz#43f6c21151b4ef2bf57187db0d73de229e3e7ec3" @@ -2061,11 +2100,6 @@ coa@^2.0.2: chalk "^2.4.1" q "^1.1.2" -code-error-fragment@0.0.230: - version "0.0.230" - resolved "https://registry.yarnpkg.com/code-error-fragment/-/code-error-fragment-0.0.230.tgz#d736d75c832445342eca1d1fedbf17d9618b14d7" - integrity sha512-cadkfKp6932H8UkhzE/gcUqhRMNf8jHzkAN7+5Myabswaghu4xABTgPHDCjW+dBAJxj/SpkTYokpzDqY4pCzQw== - coffee-script@^1.12.4: version "1.12.7" resolved "https://registry.yarnpkg.com/coffee-script/-/coffee-script-1.12.7.tgz#c05dae0cb79591d05b3070a8433a98c9a89ccc53" @@ -2119,6 +2153,11 @@ color@^3.0.0: color-convert "^1.9.1" color-string "^1.5.4" +colorette@^1.2.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.4.0.tgz#5190fbb87276259a86ad700bff2c6d6faa3fca40" + integrity sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g== + colorette@^1.2.1: version "1.2.2" resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.2.tgz#cbcc79d5e99caea2dbf10eb3a26fd8b3e6acfa94" @@ -2253,11 +2292,6 @@ core-js@^2.6.5: resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec" integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== -core-js@^3.2.1: - version "3.6.5" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.6.5.tgz#7395dc273af37fb2e50e9bd3d9fe841285231d1a" - integrity sha512-vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA== - core-util-is@1.0.2, core-util-is@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" @@ -2934,10 +2968,10 @@ domhandler@^4.0.0: dependencies: domelementtype "^2.1.0" -dompurify@^2.0.12: - version "2.1.1" - resolved "https://registry.yarnpkg.com/dompurify/-/dompurify-2.1.1.tgz#b5aa988676b093a9c836d8b855680a8598af25fe" - integrity sha512-NijiNVkS/OL8mdQL1hUbCD6uty/cgFpmNiuFxrmJ5YPH2cXrPKIewoixoji56rbZ6XBPmtM8GA8/sf9unlSuwg== +dompurify@^2.2.8: + version "2.3.6" + resolved "https://registry.yarnpkg.com/dompurify/-/dompurify-2.3.6.tgz#2e019d7d7617aacac07cbbe3d88ae3ad354cf875" + integrity sha512-OFP2u/3T1R5CEgWCEONuJ1a5+MFKnOYpkywpUSxv/dj1LeBT1erK+JwM7zK0ROy2BRhqVCf0LRw/kHqKuMkVGg== domutils@1.5.1: version "1.5.1" @@ -3243,7 +3277,7 @@ etag@~1.8.1: resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= -eventemitter3@^4.0.4: +eventemitter3@^4.0.7: version "4.0.7" resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== @@ -3420,11 +3454,6 @@ extsprintf@^1.2.0: resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= -fast-deep-equal@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz#c053477817c86b51daa853c81e059b733d023614" - integrity sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ= - fast-deep-equal@^3.1.1: version "3.1.3" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" @@ -3674,11 +3703,6 @@ form-data@~2.3.2: combined-stream "^1.0.6" mime-types "^2.1.12" -format-util@^1.0.3: - version "1.0.5" - resolved "https://registry.yarnpkg.com/format-util/-/format-util-1.0.5.tgz#1ffb450c8a03e7bccffe40643180918cc297d271" - integrity sha512-varLbTj0e0yVyRpqQhuWV+8hlePAgaoFRhNFj50BNjEIrw1/DphHSObtqwskVCPWNgzwPoQrZAbfa/SBiicNeg== - forwarded@~0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" @@ -3733,10 +3757,10 @@ fs.realpath@^1.0.0: resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= -fsevents@~2.1.2: - version "2.1.3" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.3.tgz#fb738703ae8d2f9fe900c33836ddebee8b97f23e" - integrity sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ== +fsevents@~2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" + integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== function-bind@^1.1.1: version "1.1.1" @@ -3770,7 +3794,7 @@ gensync@^1.0.0-beta.2: resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== -get-caller-file@^2.0.1: +get-caller-file@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== @@ -3853,13 +3877,20 @@ glob-parent@^3.1.0: is-glob "^3.1.0" path-dirname "^1.0.0" -glob-parent@^5.1.0, glob-parent@~5.1.0: +glob-parent@^5.1.0: version "5.1.1" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229" integrity sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ== dependencies: is-glob "^4.0.1" +glob-parent@~5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + glob-to-regexp@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz#8c5a1494d2066c570cc3bfe4496175acc4d502ab" @@ -4011,11 +4042,6 @@ graceful-fs@^4.2.4: resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.8.tgz#e412b8d33f5e006593cbd3cee6df9f2cebbe802a" integrity sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg== -grapheme-splitter@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz#9cf3a665c6247479896834af35cf1dbb4400767e" - integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ== - gray-matter@^2.1.0: version "2.1.1" resolved "https://registry.yarnpkg.com/gray-matter/-/gray-matter-2.1.1.tgz#3042d9adec2a1ded6a7707a9ed2380f8a17a430e" @@ -4044,7 +4070,7 @@ gzip-size@5.1.1: duplexer "^0.1.1" pify "^4.0.1" -handlebars@^4.7.6: +handlebars@^4.7.7: version "4.7.7" resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.7.tgz#9ce33416aad02dbd6c8fafa8240d5d98004945a1" integrity sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA== @@ -4883,19 +4909,16 @@ jpegtran-bin@^4.0.0: bin-wrapper "^4.0.0" logalot "^2.0.0" +js-levenshtein@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/js-levenshtein/-/js-levenshtein-1.1.6.tgz#c6cee58eb3550372df8deb85fad5ce66ce01d59d" + integrity sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g== + "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== -js-yaml@^3.12.1: - version "3.14.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.0.tgz#a7a34170f26a21bb162424d8adacb4113a69e482" - integrity sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A== - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - js-yaml@^3.13.1, js-yaml@^3.8.1: version "3.14.1" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" @@ -4904,6 +4927,13 @@ js-yaml@^3.13.1, js-yaml@^3.8.1: argparse "^1.0.7" esprima "^4.0.0" +js-yaml@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== + dependencies: + argparse "^2.0.1" + jsbn@~0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" @@ -4934,32 +4964,23 @@ json-parse-even-better-errors@^2.3.0: resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== -json-pointer@^0.6.0: - version "0.6.1" - resolved "https://registry.yarnpkg.com/json-pointer/-/json-pointer-0.6.1.tgz#3c6caa6ac139e2599f5a1659d39852154015054d" - integrity sha512-3OvjqKdCBvH41DLpV4iSt6v2XhZXV1bPB4OROuknvUXI7ZQNofieCPkmE26stEJ9zdQuvIxDHCuYhfgxFAAs+Q== +json-pointer@0.6.2, json-pointer@^0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/json-pointer/-/json-pointer-0.6.2.tgz#f97bd7550be5e9ea901f8c9264c9d436a22a93cd" + integrity sha512-vLWcKbOaXlO+jvRy4qNd+TI1QUPZzfJj1tpJ3vAXDych5XJf93ftpUKe5pKCrzyIIwgBJcOcCVRUfqQP25afBw== dependencies: foreach "^2.0.4" -json-schema-ref-parser@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/json-schema-ref-parser/-/json-schema-ref-parser-6.1.0.tgz#30af34aeab5bee0431da805dac0eb21b574bf63d" - integrity sha512-pXe9H1m6IgIpXmE5JSb8epilNTGsmTb2iPohAXpOdhqGFbQjNeHHsZxU+C8w6T81GZxSPFLeUoqDJmzxx5IGuw== - dependencies: - call-me-maybe "^1.0.1" - js-yaml "^3.12.1" - ono "^4.0.11" - -json-schema-traverse@^0.3.0: - version "0.3.1" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340" - integrity sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A= - json-schema-traverse@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== +json-schema-traverse@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" + integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== + json-schema@0.2.3: version "0.2.3" resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" @@ -4970,14 +4991,6 @@ json-stringify-safe@~5.0.1: resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= -json-to-ast@^2.0.3: - version "2.1.0" - resolved "https://registry.yarnpkg.com/json-to-ast/-/json-to-ast-2.1.0.tgz#041a9fcd03c0845036acb670d29f425cea4faaf9" - integrity sha512-W9Lq347r8tA1DfMvAGn9QNcgYm4Wm7Yc+k8e6vezpMnRT+NHbtlxgNBXRVjXe9YM6eTn6+p/MKOlV/aABJcSnQ== - dependencies: - code-error-fragment "0.0.230" - grapheme-splitter "^1.0.4" - json5@^2.1.2: version "2.2.0" resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.0.tgz#2dfefe720c6ba525d9ebd909950f0515316c89a3" @@ -5010,11 +5023,6 @@ jsonfile@^6.0.1: optionalDependencies: graceful-fs "^4.1.6" -jsonpointer@^4.0.1: - version "4.1.0" - resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-4.1.0.tgz#501fb89986a2389765ba09e6053299ceb4f2c2cc" - integrity sha512-CXcRvMyTlnR53xMcKnuMzfCA5i/nfblTnnr74CZb6C4vG39eu6w51t7nKmU5MfLfbTgGItliNyjO/ciNPDqClg== - jsprim@^1.2.2: version "1.4.1" resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" @@ -5073,11 +5081,6 @@ lazy-cache@^2.0.2: dependencies: set-getter "^0.1.0" -leven@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" - integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== - lines-and-columns@^1.1.6: version "1.1.6" resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" @@ -5333,10 +5336,10 @@ lru-cache@^6.0.0: dependencies: yallist "^4.0.0" -lunr@2.3.8: - version "2.3.8" - resolved "https://registry.yarnpkg.com/lunr/-/lunr-2.3.8.tgz#a8b89c31f30b5a044b97d2d28e2da191b6ba2072" - integrity sha512-oxMeX/Y35PNFuZoHp+jUj5OSEmLCaIH4KTFJh7a93cHBoFmpw2IoPs22VIz7vyO2YUnx2Tn9dzIwO2P/4quIRg== +lunr@^2.3.9: + version "2.3.9" + resolved "https://registry.yarnpkg.com/lunr/-/lunr-2.3.9.tgz#18b123142832337dd6e964df1a5a7707b25d35e1" + integrity sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow== make-dir@^1.0.0, make-dir@^1.2.0: version "1.3.0" @@ -5415,10 +5418,10 @@ markdown-toc@^1.2.0: repeat-string "^1.6.1" strip-color "^0.1.0" -marked@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/marked/-/marked-0.7.0.tgz#b64201f051d271b1edc10a04d1ae9b74bb8e5c0e" - integrity sha512-c+yYdCZJQrsRjTPhUx7VKkApw9bwDkNbHUKo1ovgcfDjb2kc8rLuRbIFyXL5WOEUwzSSKo3IXpph2K6DqB/KZg== +marked@^4.0.10: + version "4.0.14" + resolved "https://registry.yarnpkg.com/marked/-/marked-4.0.14.tgz#7a3a5fa5c80580bac78c1ed2e3b84d7bd6fc3870" + integrity sha512-HL5sSPE/LP6U9qKgngIIPTthuxC0jrfxpYMZ3LdGDD3vTnLs59m2Z7r6+LNDR3ToqEQdkKd6YaaEfJhodJmijQ== math-random@^1.0.1: version "1.0.4" @@ -5449,11 +5452,6 @@ media-typer@0.3.0: resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= -memoize-one@~5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/memoize-one/-/memoize-one-5.1.1.tgz#047b6e3199b508eaec03504de71229b8eb1d75c0" - integrity sha512-HKeeBpWvqiVJD57ZUAsJNm71eHTykffzcLZVYWiVfQeI1rJtuEaS7hQiEpWfVVk18donPwJEcFKIkCmPJNOhHA== - meow@^10.1.0: version "10.1.1" resolved "https://registry.yarnpkg.com/meow/-/meow-10.1.1.tgz#87fa665f18e727024116d456e725f69033ca6d8f" @@ -5660,22 +5658,22 @@ mkdirp@^1.0.4: resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== -mobx-react-lite@^3.1.6: - version "3.1.6" - resolved "https://registry.yarnpkg.com/mobx-react-lite/-/mobx-react-lite-3.1.6.tgz#e7f4809ab66edd1acca5adb00c6b88c600ae1952" - integrity sha512-MM3x9BLt5nC7iE/ILA5n2+hfrplEKYbFjqROEuGkzBdZP/KD+Z44+2gseczRrTG0xFuiPWfEzgT68+6/zqOiEw== +mobx-react-lite@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/mobx-react-lite/-/mobx-react-lite-3.3.0.tgz#7174e807201943beff6f9d3701492314c9fc0db3" + integrity sha512-U/kMSFtV/bNVgY01FuiGWpRkaQVHozBq5CEBZltFvPt4FcV111hEWkgwqVg9GPPZSEuEdV438PEz8mk8mKpYlA== -mobx-react@^7.0.5: - version "7.0.5" - resolved "https://registry.yarnpkg.com/mobx-react/-/mobx-react-7.0.5.tgz#a458ec3fd44349d398274eb08aec1abe9b5129ff" - integrity sha512-WmHl3Ni30ujVcOOnllmGmyccsbfFCKtAwpkIwncwxhgLcvXcE0Wa9lGJIhoqQdTJzGr0AJqGzMVAdwNc3Fj2DQ== +mobx-react@^7.2.0: + version "7.3.0" + resolved "https://registry.yarnpkg.com/mobx-react/-/mobx-react-7.3.0.tgz#a17dedb71b75dad2337e3f95eb753179f6cfe732" + integrity sha512-RGEcwZokopqyJE5JPwXKB9FWMSqFM9NJVO2QPI+z6laJTJeBHqvPicjnKgY5mvihxTeXB1+72TnooqUePeGV1g== dependencies: - mobx-react-lite "^3.1.6" + mobx-react-lite "^3.3.0" -mobx@^6.0.4: - version "6.0.4" - resolved "https://registry.yarnpkg.com/mobx/-/mobx-6.0.4.tgz#8fc3e3629a3346f8afddf5bd954411974744dad1" - integrity sha512-wT2QJT9tW19VSHo9x7RPKU3z/I2Ps6wUS8Kb1OO+kzmg7UY3n4AkcaYG6jq95Lp1R9ohjC/NGYuT2PtuvBjhFg== +mobx@^6.3.2: + version "6.5.0" + resolved "https://registry.yarnpkg.com/mobx/-/mobx-6.5.0.tgz#dc2d028b1882737f6e813fc92454381e438b7ad3" + integrity sha512-pHZ/cySF00FVENDWIDzJyoObFahK6Eg4d0papqm6d7yMkxWTZ/S/csqJX1A3PsYy4t5k3z2QnlwuCfMW5lSEwA== moo@^0.5.0: version "0.5.1" @@ -5756,6 +5754,13 @@ node-fetch-h2@^2.3.0: dependencies: http2-client "^1.2.5" +node-fetch@^2.6.1: + version "2.6.7" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad" + integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ== + dependencies: + whatwg-url "^5.0.0" + node-libs-browser@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.1.tgz#b64f513d18338625f90346d27b0d235e631f6425" @@ -5887,46 +5892,44 @@ oas-kit-common@^1.0.8: dependencies: fast-safe-stringify "^2.0.7" -oas-linter@^3.1.3: - version "3.2.0" - resolved "https://registry.yarnpkg.com/oas-linter/-/oas-linter-3.2.0.tgz#82d2e586da00adc24c44e44de4b31a6f6ba5cc7e" - integrity sha512-LP5F1dhjULEJV5oGRg6ROztH2FddzttrrUEwq5J2GB2Zy938mg0vwt1+Rthn/qqDHtj4Qgq21duNGHh+Ew1wUg== +oas-linter@^3.2.2: + version "3.2.2" + resolved "https://registry.yarnpkg.com/oas-linter/-/oas-linter-3.2.2.tgz#ab6a33736313490659035ca6802dc4b35d48aa1e" + integrity sha512-KEGjPDVoU5K6swgo9hJVA/qYGlwfbFx+Kg2QB/kd7rzV5N8N5Mg6PlsoCMohVnQmo+pzJap/F610qTodKzecGQ== dependencies: "@exodus/schemasafe" "^1.0.0-rc.2" should "^13.2.1" yaml "^1.10.0" -oas-resolver@^2.4.3: - version "2.5.1" - resolved "https://registry.yarnpkg.com/oas-resolver/-/oas-resolver-2.5.1.tgz#d129b4f62bd21021184d765747b72d559e864c62" - integrity sha512-MdMY8YAnCdFTAt5+CTC/aYEOSIFt+ICOWxQvKKxsIHjc0/0tG6V4DzbkHW9SWWqUmDPiHDxJsi79kjsE/1PJ5g== +oas-resolver@^2.5.6: + version "2.5.6" + resolved "https://registry.yarnpkg.com/oas-resolver/-/oas-resolver-2.5.6.tgz#10430569cb7daca56115c915e611ebc5515c561b" + integrity sha512-Yx5PWQNZomfEhPPOphFbZKi9W93CocQj18NlD2Pa4GWZzdZpSJvYwoiuurRI7m3SpcChrnO08hkuQDL3FGsVFQ== dependencies: node-fetch-h2 "^2.3.0" oas-kit-common "^1.0.8" - reftools "^1.1.6" + reftools "^1.1.9" yaml "^1.10.0" - yargs "^15.3.1" + yargs "^17.0.1" oas-schema-walker@^1.1.5: version "1.1.5" resolved "https://registry.yarnpkg.com/oas-schema-walker/-/oas-schema-walker-1.1.5.tgz#74c3cd47b70ff8e0b19adada14455b5d3ac38a22" integrity sha512-2yucenq1a9YPmeNExoUa9Qwrt9RFkjqaMAA1X+U7sbb0AqBeTIdMHky9SQQ6iN94bO5NW0W4TRYXerG+BdAvAQ== -oas-validator@^4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/oas-validator/-/oas-validator-4.0.8.tgz#4f1a4d6bd9e030ad07db03fd7a7bc3a91aabcc7d" - integrity sha512-bIt8erTyclF7bkaySTtQ9sppqyVc+mAlPi7vPzCLVHJsL9nrivQjc/jHLX/o+eGbxHd6a6YBwuY/Vxa6wGsiuw== +oas-validator@^5.0.8: + version "5.0.8" + resolved "https://registry.yarnpkg.com/oas-validator/-/oas-validator-5.0.8.tgz#387e90df7cafa2d3ffc83b5fb976052b87e73c28" + integrity sha512-cu20/HE5N5HKqVygs3dt94eYJfBi0TsZvPVXDhbXQHiEityDN+RROTleefoKRKKJ9dFAF2JBkDHgvWj0sjKGmw== dependencies: - ajv "^5.5.2" - better-ajv-errors "^0.6.7" call-me-maybe "^1.0.1" oas-kit-common "^1.0.8" - oas-linter "^3.1.3" - oas-resolver "^2.4.3" + oas-linter "^3.2.2" + oas-resolver "^2.5.6" oas-schema-walker "^1.1.5" - reftools "^1.1.5" + reftools "^1.1.9" should "^13.2.1" - yaml "^1.8.3" + yaml "^1.10.0" oauth-sign@~0.9.0: version "0.9.0" @@ -6042,13 +6045,6 @@ once@^1.3.0, once@^1.3.1, once@^1.4.0: dependencies: wrappy "1" -ono@^4.0.11: - version "4.0.11" - resolved "https://registry.yarnpkg.com/ono/-/ono-4.0.11.tgz#c7f4209b3e396e8a44ef43b9cedc7f5d791d221d" - integrity sha512-jQ31cORBFE6td25deYeD80wxKBMj+zBmHTrVxnc6CKhx8gho6ipmWM5zj/oeoqioZ99yqBls9Z/9Nss7J26G2g== - dependencies: - format-util "^1.0.3" - open@^7.0.2: version "7.4.2" resolved "https://registry.yarnpkg.com/open/-/open-7.4.2.tgz#b8147e26dcf3e426316c730089fd71edd29c2321" @@ -6057,12 +6053,13 @@ open@^7.0.2: is-docker "^2.0.0" is-wsl "^2.1.1" -openapi-sampler@^1.0.0-beta.18: - version "1.0.0-beta.18" - resolved "https://registry.yarnpkg.com/openapi-sampler/-/openapi-sampler-1.0.0-beta.18.tgz#9e0845616a669e048860625ea5c10d0f554f1b53" - integrity sha512-nG/0kvvSY5FbrU5A+Dbp1xTQN++7pKIh87/atryZlxrzDuok5Y6TCbpxO1jYqpUKLycE4ReKGHCywezngG6xtQ== +openapi-sampler@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/openapi-sampler/-/openapi-sampler-1.2.1.tgz#2ca9eea527f8f2ddb32c3ae1dda31afd8bf0833f" + integrity sha512-mHrYmyvcLD0qrfqPkPRBAL2z16hGT2rW0d0B7nklfoTcc3pmkJLkSZlKSeFgerUM41E5c7jlxf0Y19xrM7mWQQ== dependencies: - json-pointer "^0.6.0" + "@types/json-schema" "^7.0.7" + json-pointer "0.6.2" optipng-bin@^5.0.0: version "5.1.0" @@ -6308,6 +6305,11 @@ path-browserify@0.0.1: resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a" integrity sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ== +path-browserify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-1.0.1.tgz#d98454a9c3753d5790860f16f68867b9e46be1fd" + integrity sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g== + path-dirname@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" @@ -6392,10 +6394,10 @@ pend@~1.2.0: resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" integrity sha1-elfrVQpng/kRUzH89GY9XI4AelA= -perfect-scrollbar@^1.4.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/perfect-scrollbar/-/perfect-scrollbar-1.5.0.tgz#821d224ed8ff61990c23f26db63048cdc75b6b83" - integrity sha512-NrNHJn5mUGupSiheBTy6x+6SXCFbLlm8fVZh9moIzw/LgqElN5q4ncR4pbCBCYuCJ8Kcl9mYM0NgDxvW+b4LxA== +perfect-scrollbar@^1.5.1: + version "1.5.5" + resolved "https://registry.yarnpkg.com/perfect-scrollbar/-/perfect-scrollbar-1.5.5.tgz#41a211a2fb52a7191eff301432134ea47052b27f" + integrity sha512-dzalfutyP3e/FOpdlhVryN4AJ5XDVauVWxybSkLZmakFE2sS3y3pc4JnSprw8tGmHvkaG5Edr5T7LBTZ+WWU2g== performance-now@^2.1.0: version "2.1.0" @@ -6407,6 +6409,11 @@ picomatch@^2.0.4, picomatch@^2.0.5, picomatch@^2.2.1: resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== +picomatch@^2.3.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + pify@^2.0.0, pify@^2.2.0, pify@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" @@ -6455,12 +6462,17 @@ pkg-up@3.1.0: dependencies: find-up "^3.0.0" -polished@^3.6.5: - version "3.6.7" - resolved "https://registry.yarnpkg.com/polished/-/polished-3.6.7.tgz#44cbd0047f3187d83db0c479ef0c7d5583af5fb6" - integrity sha512-b4OViUOihwV0icb9PHmWbR+vPqaSzSAEbgLskvb7ANPATVXGiYv/TQFHQo65S53WU9i5EQ1I03YDOJW7K0bmYg== +pluralize@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-8.0.0.tgz#1a6fa16a38d12a1901e0320fa017051c539ce3b1" + integrity sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA== + +polished@^4.1.3: + version "4.2.2" + resolved "https://registry.yarnpkg.com/polished/-/polished-4.2.2.tgz#2529bb7c3198945373c52e34618c8fe7b1aa84d1" + integrity sha512-Sz2Lkdxz6F2Pgnpi9U5Ng/WdWAUZxmHrNPoVlm3aAemxoy2Qy7LGjQg4uf8qKelDAUW94F4np3iH2YPf2qefcQ== dependencies: - "@babel/runtime" "^7.9.2" + "@babel/runtime" "^7.17.8" portfinder@^1.0.28: version "1.0.28" @@ -6771,11 +6783,16 @@ prepend-http@^2.0.0: resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc= -prismjs@^1.20.0, prismjs@^1.22.0: +prismjs@^1.22.0: version "1.27.0" resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.27.0.tgz#bb6ee3138a0b438a3653dd4d6ce0cc6510a45057" integrity sha512-t13BGPUlFDR7wRB5kQDG4jjl7XeuH6jbJGt11JHPL96qwsEHNX2+68tFXqc1/k+/jALsbSWJKUOT/hcYAZ5LkA== +prismjs@^1.27.0: + version "1.28.0" + resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.28.0.tgz#0d8f561fa0f7cf6ebca901747828b149147044b6" + integrity sha512-8aaXdYvl1F7iC7Xm1spqSaY/OJBpYW3v+KJ+F17iYxvdc8sfjW194COK5wVhMZX45tGteiBQgdvD/nhxcRwylw== + process-nextick-args@~2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" @@ -7018,16 +7035,6 @@ react-dev-utils@^11.0.1: strip-ansi "6.0.0" text-table "0.2.0" -react-dom@^16.13.1: - version "16.13.1" - resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.13.1.tgz#c1bd37331a0486c078ee54c4740720993b2e0e7f" - integrity sha512-81PIMmVLnCNLO/fFOQxdQkvEq/+Hfpv24XNJfpyZhTRfO0QcmQIF/PgCa1zCOj2w1hrn12MFLyaJ/G0+Mxtfag== - dependencies: - loose-envify "^1.1.0" - object-assign "^4.1.1" - prop-types "^15.6.2" - scheduler "^0.19.1" - react-dom@^16.8.4: version "16.14.0" resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.14.0.tgz#7ad838ec29a777fb3c75c3a190f661cf92ab8b89" @@ -7038,6 +7045,15 @@ react-dom@^16.8.4: prop-types "^15.6.2" scheduler "^0.19.1" +react-dom@^17.0.1: + version "17.0.2" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-17.0.2.tgz#ecffb6845e3ad8dbfcdc498f0d0a939736502c23" + integrity sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA== + dependencies: + loose-envify "^1.1.0" + object-assign "^4.1.1" + scheduler "^0.20.2" + react-error-overlay@^6.0.9: version "6.0.9" resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-6.0.9.tgz#3c743010c9359608c375ecd6bc76f35d93995b0a" @@ -7048,10 +7064,10 @@ react-is@^16.13.1, react-is@^16.7.0, react-is@^16.8.1, react-is@^16.8.6: resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== -react-tabs@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/react-tabs/-/react-tabs-3.1.1.tgz#b363a239f76046bb2158875a1e5921b11064052f" - integrity sha512-HpySC29NN1BkzBAnOC+ajfzPbTaVZcSWzMSjk56uAhPC/rBGtli8lTysR4CfPAyEE/hfweIzagOIoJ7nu80yng== +react-tabs@^3.2.2: + version "3.2.3" + resolved "https://registry.yarnpkg.com/react-tabs/-/react-tabs-3.2.3.tgz#ccbb3e1241ad3f601047305c75db661239977f2f" + integrity sha512-jx325RhRVnS9DdFbeF511z0T0WEqEoMl1uCE3LoZ6VaZZm7ytatxbum0B8bCTmaiV0KsU+4TtLGTGevCic7SWg== dependencies: clsx "^1.1.0" prop-types "^15.5.0" @@ -7066,15 +7082,6 @@ react-test-renderer@^16.0.0-0: react-is "^16.8.6" scheduler "^0.19.1" -react@^16.13.1: - version "16.13.1" - resolved "https://registry.yarnpkg.com/react/-/react-16.13.1.tgz#2e818822f1a9743122c063d6410d85c1e3afe48e" - integrity sha512-YMZQQq32xHLX0bz5Mnibv1/LHb3Sqzngu7xstSM+vrkE5Kzr9xE0yMByK5kMoTK30YVJE61WfbxIFFvfeDKT1w== - dependencies: - loose-envify "^1.1.0" - object-assign "^4.1.1" - prop-types "^15.6.2" - react@^16.8.4: version "16.14.0" resolved "https://registry.yarnpkg.com/react/-/react-16.14.0.tgz#94d776ddd0aaa37da3eda8fc5b6b18a4c9a3114d" @@ -7084,6 +7091,14 @@ react@^16.8.4: object-assign "^4.1.1" prop-types "^15.6.2" +react@^17.0.1: + version "17.0.2" + resolved "https://registry.yarnpkg.com/react/-/react-17.0.2.tgz#d0b5cc516d29eb3eee383f75b62864cfb6800037" + integrity sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA== + dependencies: + loose-envify "^1.1.0" + object-assign "^4.1.1" + read-pkg-up@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" @@ -7161,10 +7176,10 @@ readable-stream@^3.1.1, readable-stream@^3.6.0: string_decoder "^1.1.1" util-deprecate "^1.0.1" -readdirp@~3.4.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.4.0.tgz#9fdccdf9e9155805449221ac645e8303ab5b9ada" - integrity sha512-0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ== +readdirp@~3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" + integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== dependencies: picomatch "^2.2.1" @@ -7206,52 +7221,50 @@ redent@^4.0.0: indent-string "^5.0.0" strip-indent "^4.0.0" -redoc-cli@0.10.1: - version "0.10.1" - resolved "https://registry.yarnpkg.com/redoc-cli/-/redoc-cli-0.10.1.tgz#56861390f607abf8eb88cade2712e8dcb4368ff8" - integrity sha512-RZqE1dFdIB3hBvxpBc+CRTjD10xDdPIUk3xA4moHzQMP5Gp2MeGCiRWyt747+4CV42s7oUQbxSMeeY1IMz0vAQ== +redoc-cli@0.13.10: + version "0.13.10" + resolved "https://registry.yarnpkg.com/redoc-cli/-/redoc-cli-0.13.10.tgz#188a9b0f3b43a80bc0ad62ee0b12bb6352179aa0" + integrity sha512-txYchKO6rpXJapD6Kg/Vd6mEg3ZJDz+TLCev8dvj8cGQxiSZDJ/V/x3uRfg03EH5FrC71kHC4ETI97MUlye9NQ== dependencies: - chokidar "^3.4.1" - handlebars "^4.7.6" + chokidar "^3.5.1" + handlebars "^4.7.7" isarray "^2.0.5" mkdirp "^1.0.4" - mobx "^6.0.4" + mobx "^6.3.2" node-libs-browser "^2.2.1" - react "^16.13.1" - react-dom "^16.13.1" - redoc "2.0.0-rc.47" - styled-components "^5.1.1" - tslib "^2.0.0" - yargs "^15.4.1" - -redoc@2.0.0-rc.47: - version "2.0.0-rc.47" - resolved "https://registry.yarnpkg.com/redoc/-/redoc-2.0.0-rc.47.tgz#4c1998684bfd80529027393ee0d00b2451a780a3" - integrity sha512-weoRsJngABqWOuign5wXqVHLE0WRpODNQqwsZqtdKqCQ/paLxJRMBqSklAQdUnx4x5SEYvLxXatUGnw1mp2o4g== - dependencies: + react "^17.0.1" + react-dom "^17.0.1" + redoc "2.0.0-rc.66" + styled-components "^5.3.0" + yargs "^17.3.1" + +redoc@2.0.0-rc.66: + version "2.0.0-rc.66" + resolved "https://registry.yarnpkg.com/redoc/-/redoc-2.0.0-rc.66.tgz#f38495c408ab1b9d1f9bd5db2cdae09a21047018" + integrity sha512-ZjmZhYkg46QAkza4SYCouY3TEuqnkjf50uyJBiz6Dyaz55RLClofAKokPoy5uEBo0RkPjxebKf9HTGyrxNqJ8A== + dependencies: + "@redocly/openapi-core" "^1.0.0-beta.88" "@redocly/react-dropdown-aria" "^2.0.11" - "@types/node" "^13.11.1" - classnames "^2.2.6" + classnames "^2.3.1" decko "^1.2.0" - dompurify "^2.0.12" - eventemitter3 "^4.0.4" - json-pointer "^0.6.0" - json-schema-ref-parser "^6.1.0" - lunr "2.3.8" + dompurify "^2.2.8" + eventemitter3 "^4.0.7" + json-pointer "^0.6.2" + lunr "^2.3.9" mark.js "^8.11.1" - marked "^0.7.0" - memoize-one "~5.1.1" - mobx-react "^7.0.5" - openapi-sampler "^1.0.0-beta.18" - perfect-scrollbar "^1.4.0" - polished "^3.6.5" - prismjs "^1.20.0" + marked "^4.0.10" + mobx-react "^7.2.0" + openapi-sampler "^1.2.1" + path-browserify "^1.0.1" + perfect-scrollbar "^1.5.1" + polished "^4.1.3" + prismjs "^1.27.0" prop-types "^15.7.2" - react-tabs "^3.1.1" - slugify "^1.4.4" + react-tabs "^3.2.2" + slugify "~1.4.7" stickyfill "^1.1.1" - swagger2openapi "^6.2.1" - tslib "^2.0.0" + style-loader "^3.3.1" + swagger2openapi "^7.0.6" url-template "^2.0.8" reflect.ownkeys@^0.2.0: @@ -7259,10 +7272,10 @@ reflect.ownkeys@^0.2.0: resolved "https://registry.yarnpkg.com/reflect.ownkeys/-/reflect.ownkeys-0.2.0.tgz#749aceec7f3fdf8b63f927a04809e90c5c0b3460" integrity sha1-dJrO7H8/34tj+SegSAnpDFwLNGA= -reftools@^1.1.5, reftools@^1.1.6: - version "1.1.6" - resolved "https://registry.yarnpkg.com/reftools/-/reftools-1.1.6.tgz#841b1ac241259632d63167bf708eccfbfbbba5b5" - integrity sha512-rQfJ025lvPjw9qyQuNPqE+cRs5qVs7BMrZwgRJnmuMcX/8r/eJE8f5/RCunJWViXKHmN5K2DFafYzglLOHE/tw== +reftools@^1.1.9: + version "1.1.9" + resolved "https://registry.yarnpkg.com/reftools/-/reftools-1.1.9.tgz#e16e19f662ccd4648605312c06d34e5da3a2b77e" + integrity sha512-OVede/NQE13xBQ+ob5CKd5KyeJYU2YInb1bmV4nRoOfquZPkAkxuOXicSe1PvqIuZZ4kD13sPKBbR7UFDmli6w== regenerate-unicode-properties@^8.2.0: version "8.2.0" @@ -7410,10 +7423,10 @@ require-directory@^2.1.1: resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= -require-main-filename@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" - integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== +require-from-string@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" + integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== resolve-from@^3.0.0: version "3.0.0" @@ -7544,6 +7557,14 @@ scheduler@^0.19.1: loose-envify "^1.1.0" object-assign "^4.1.1" +scheduler@^0.20.2: + version "0.20.2" + resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.20.2.tgz#4baee39436e34aa93b4874bddcbf0fe8b8b50e91" + integrity sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ== + dependencies: + loose-envify "^1.1.0" + object-assign "^4.1.1" + seek-bzip@^1.0.5: version "1.0.6" resolved "https://registry.yarnpkg.com/seek-bzip/-/seek-bzip-1.0.6.tgz#35c4171f55a680916b52a07859ecf3b5857f21c4" @@ -7614,11 +7635,6 @@ serve-static@1.14.1: parseurl "~1.3.3" send "0.17.1" -set-blocking@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" - integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= - set-getter@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/set-getter/-/set-getter-0.1.1.tgz#a3110e1b461d31a9cfc8c5c9ee2e9737ad447102" @@ -7792,10 +7808,10 @@ slash@^3.0.0: resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== -slugify@^1.4.4: - version "1.4.5" - resolved "https://registry.yarnpkg.com/slugify/-/slugify-1.4.5.tgz#a7517acf5f4c02a4df41e735354b660a4ed1efcf" - integrity sha512-WpECLAgYaxHoEAJ8Q1Lo8HOs1ngn7LN7QjXgOLbmmfkcWvosyk4ZTXkTzKyhngK640USTZUlgoQJfED1kz5fnQ== +slugify@~1.4.7: + version "1.4.7" + resolved "https://registry.yarnpkg.com/slugify/-/slugify-1.4.7.tgz#e42359d505afd84a44513280868e31202a79a628" + integrity sha512-tf+h5W1IrjNm/9rKKj0JU2MDMruiopx0jjVA5zCdBtcGjfp0+c5rHw/zADLC3IeKlGHtVbHtpfzvYA0OYT+HKg== snapdragon-node@^2.0.1: version "2.1.1" @@ -8005,6 +8021,15 @@ string-width@^4.1.0, string-width@^4.2.0: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.0" +string-width@^4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + string.prototype.trim@^1.2.1: version "1.2.4" resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.4.tgz#6014689baf5efaf106ad031a5fa45157666ed1bd" @@ -8063,6 +8088,13 @@ strip-ansi@^3.0.0: dependencies: ansi-regex "^2.0.0" +strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + strip-bom@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" @@ -8115,17 +8147,22 @@ strip-outer@^1.0.0: dependencies: escape-string-regexp "^1.0.2" -styled-components@^5.1.1: - version "5.2.0" - resolved "https://registry.yarnpkg.com/styled-components/-/styled-components-5.2.0.tgz#6dcb5aa8a629c84b8d5ab34b7167e3e0c6f7ed74" - integrity sha512-9qE8Vgp8C5cpGAIdFaQVAl89Zgx1TDM4Yf4tlHbO9cPijtpSXTMLHy9lmP0lb+yImhgPFb1AmZ1qMUubmg3HLg== +style-loader@^3.3.1: + version "3.3.1" + resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-3.3.1.tgz#057dfa6b3d4d7c7064462830f9113ed417d38575" + integrity sha512-GPcQ+LDJbrcxHORTRes6Jy2sfvK2kS6hpSfI/fXhPt+spVzxF6LJ1dHLN9zIGmVaaP044YKaIatFaufENRiDoQ== + +styled-components@^5.3.0: + version "5.3.5" + resolved "https://registry.yarnpkg.com/styled-components/-/styled-components-5.3.5.tgz#a750a398d01f1ca73af16a241dec3da6deae5ec4" + integrity sha512-ndETJ9RKaaL6q41B69WudeqLzOpY1A/ET/glXkNZ2T7dPjPqpPCXXQjDFYZWwNnE5co0wX+gTCqx9mfxTmSIPg== dependencies: "@babel/helper-module-imports" "^7.0.0" "@babel/traverse" "^7.4.5" - "@emotion/is-prop-valid" "^0.8.8" + "@emotion/is-prop-valid" "^1.1.0" "@emotion/stylis" "^0.8.4" "@emotion/unitless" "^0.7.4" - babel-plugin-styled-components ">= 1" + babel-plugin-styled-components ">= 1.12.0" css-to-react-native "^3.0.0" hoist-non-react-statics "^3.0.0" shallowequal "^1.1.0" @@ -8190,22 +8227,22 @@ svgo@^1.0.0, svgo@^1.3.2: unquote "~1.1.1" util.promisify "~1.0.0" -swagger2openapi@^6.2.1: - version "6.2.3" - resolved "https://registry.yarnpkg.com/swagger2openapi/-/swagger2openapi-6.2.3.tgz#4a8059f89d851aee4c9ab178f9b7190debd904e2" - integrity sha512-cUUktzLpK69UwpMbcTzjMw2ns9RZChfxh56AHv6+hTx3StPOX2foZjPgds3HlJcINbxosYYBn/D3cG8nwcCWwQ== +swagger2openapi@^7.0.6: + version "7.0.8" + resolved "https://registry.yarnpkg.com/swagger2openapi/-/swagger2openapi-7.0.8.tgz#12c88d5de776cb1cbba758994930f40ad0afac59" + integrity sha512-upi/0ZGkYgEcLeGieoz8gT74oWHA0E7JivX7aN9mAf+Tc7BQoRBvnIGHoPDw+f9TXTW4s6kGYCZJtauP6OYp7g== dependencies: - better-ajv-errors "^0.6.1" call-me-maybe "^1.0.1" + node-fetch "^2.6.1" node-fetch-h2 "^2.3.0" node-readfiles "^0.2.0" oas-kit-common "^1.0.8" - oas-resolver "^2.4.3" + oas-resolver "^2.5.6" oas-schema-walker "^1.1.5" - oas-validator "^4.0.8" - reftools "^1.1.5" - yaml "^1.8.3" - yargs "^15.3.1" + oas-validator "^5.0.8" + reftools "^1.1.9" + yaml "^1.10.0" + yargs "^17.0.1" tapable@^1.0.0: version "1.1.3" @@ -8365,6 +8402,11 @@ tr46@^1.0.1: dependencies: punycode "^2.1.0" +tr46@~0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" + integrity sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o= + tree-node-cli@^1.2.5: version "1.4.0" resolved "https://registry.yarnpkg.com/tree-node-cli/-/tree-node-cli-1.4.0.tgz#8f4028554610d6ee1cdeb98554a60841a3cfa3ac" @@ -8407,11 +8449,6 @@ tslib@^1.9.3: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tslib@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.0.3.tgz#8e0741ac45fc0c226e58a17bfc3e64b9bc6ca61c" - integrity sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ== - tty-browserify@0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" @@ -8683,6 +8720,11 @@ vm-browserify@^1.0.1: resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== +webidl-conversions@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" + integrity sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE= + webidl-conversions@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" @@ -8702,6 +8744,14 @@ websocket-extensions@>=0.1.1: resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42" integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== +whatwg-url@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" + integrity sha1-lmRU6HZUYuN2RNNib2dCzotwll0= + dependencies: + tr46 "~0.0.3" + webidl-conversions "^3.0.0" + whatwg-url@^7.0.0: version "7.1.0" resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-7.1.0.tgz#c2c492f1eca612988efd3d2266be1b9fc6170d06" @@ -8722,11 +8772,6 @@ which-boxed-primitive@^1.0.1: is-string "^1.0.5" is-symbol "^1.0.3" -which-module@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" - integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= - which@^1.2.9, which@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" @@ -8758,10 +8803,10 @@ worker-rpc@^0.1.0: dependencies: microevent.ts "~0.1.1" -wrap-ansi@^6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" - integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== dependencies: ansi-styles "^4.0.0" string-width "^4.1.0" @@ -8799,10 +8844,10 @@ xtend@^4.0.0, xtend@~4.0.1: resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== -y18n@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.1.tgz#8db2b83c31c5d75099bb890b23f3094891e247d4" - integrity sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ== +y18n@^5.0.5: + version "5.0.8" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" + integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== yallist@^2.1.2: version "2.1.2" @@ -8814,7 +8859,12 @@ yallist@^4.0.0: resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== -yaml@^1.10.0, yaml@^1.8.3: +yaml-ast-parser@0.0.43: + version "0.0.43" + resolved "https://registry.yarnpkg.com/yaml-ast-parser/-/yaml-ast-parser-0.0.43.tgz#e8a23e6fb4c38076ab92995c5dca33f3d3d7c9bb" + integrity sha512-2PTINUwsRqSd+s8XxKaJWQlUuEMHJQyEuh2edBbW8KNJz0SJPwUSD2zRWqezFEdN7IzAgeuYHFUCF7o8zRdZ0A== + +yaml@^1.10.0: version "1.10.0" resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.0.tgz#3b593add944876077d4d683fee01081bd9fff31e" integrity sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg== @@ -8827,7 +8877,7 @@ yamljs@^0.2.1: argparse "^1.0.7" glob "^7.0.5" -yargs-parser@^18.1.2, yargs-parser@^18.1.3: +yargs-parser@^18.1.3: version "18.1.3" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== @@ -8840,22 +8890,23 @@ yargs-parser@^20.2.9: resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== -yargs@^15.3.1, yargs@^15.4.1: - version "15.4.1" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8" - integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A== +yargs-parser@^21.0.0: + version "21.0.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.0.1.tgz#0267f286c877a4f0f728fceb6f8a3e4cb95c6e35" + integrity sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg== + +yargs@^17.0.1, yargs@^17.3.1: + version "17.4.1" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.4.1.tgz#ebe23284207bb75cee7c408c33e722bfb27b5284" + integrity sha512-WSZD9jgobAg3ZKuCQZSa3g9QOJeCCqLoLAykiWgmXnDo9EPnn4RPf5qVTtzgOx66o6/oqhcA5tHtJXpG8pMt3g== dependencies: - cliui "^6.0.0" - decamelize "^1.2.0" - find-up "^4.1.0" - get-caller-file "^2.0.1" + cliui "^7.0.2" + escalade "^3.1.1" + get-caller-file "^2.0.5" require-directory "^2.1.1" - require-main-filename "^2.0.0" - set-blocking "^2.0.0" - string-width "^4.2.0" - which-module "^2.0.0" - y18n "^4.0.0" - yargs-parser "^18.1.2" + string-width "^4.2.3" + y18n "^5.0.5" + yargs-parser "^21.0.0" yargs@^2.3.0: version "2.3.0" From a67dfed0b1c097689c7f33c7033c894bba7c18f5 Mon Sep 17 00:00:00 2001 From: Kris West Date: Thu, 21 Apr 2022 16:40:29 +0100 Subject: [PATCH 11/35] changelog --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index f9865d145..5ba692bfc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -22,6 +22,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). * Added details of FDC3's existing versioning and deprecation policies to the FDC3 compliance page ([#539](https://github.com/finos/FDC3/pull/539)) * Add `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 `/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 `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 andalternative launch details for localized versions of the applications themselves. ([#670](https://github.com/finos/FDC3/pull/670)) ### Changed * Consolidated `Listener` documentation with other types ([#404](https://github.com/finos/FDC3/pull/404)) From a4589be168bee8d6940a42d16b4e9f80b56c0bc8 Mon Sep 17 00:00:00 2001 From: Kris West Date: Thu, 21 Apr 2022 17:55:24 +0100 Subject: [PATCH 12/35] Introducing launch details for native application types and adjusting the standardized application types --- src/app-directory/specification/appd.yaml | 73 ++++++++++++++---- .../static/schemas/next/app-directory.yaml | 75 +++++++++++++++---- 2 files changed, 119 insertions(+), 29 deletions(-) diff --git a/src/app-directory/specification/appd.yaml b/src/app-directory/specification/appd.yaml index 7414fa2db..66498fe63 100644 --- a/src/app-directory/specification/appd.yaml +++ b/src/app-directory/specification/appd.yaml @@ -426,10 +426,11 @@ components: $ref: '#/components/schemas/Type' details: description: >- - The type specific details of the application. Currently only the "browser" type is standardized. - "host" type applications should use the hostManifest's object for all application details. + The type specific launch details of the application. These details are intended to be + vendor-agnostic and _MAY_ be duplicated or overridden by details provided in the hostManifests + object for a specific host. oneOf: - - $ref: '#/components/schemas/BrowserDetails' + - $ref: '#/components/schemas/LaunchDetails' version: type: string description: >- @@ -726,28 +727,72 @@ components: Type: type: string description: >- - Enumeration describing the supported application types. Currently only the browser application type is officially supported. - The host application type allows for host specific application types (e.g. exe, workspaces, citrix, etc.). + The technology type that is used to launch and run the application. Particular application types imply enum: - - browser - - host - BrowserDetails: - description: Properties common to all browser applications. + - web + - native + - citrix + - clickonce + LaunchDetails: + description: Properties used to launch apps of various types. + oneOf: + - $ref: '#/components/schemas/WebAppDetails' + - $ref: '#/components/schemas/NativeAppDetails' + - $ref: '#/components/schemas/CitrixAppDetails' + - $ref: '#/components/schemas/OnlineNativeAppDetails' + WebAppDetails: + description: Properties used to launch web apps. required: - url properties: url: type: string - description: Application URL. + formt: uri + description: Application start URL. + additionalProperties: false + NativeAppDetails: + description: Properties used to launch native apps installed on a desktop. + required: + - path + properties: + path: + type: string + description: The path on disk from which the application is launched. + arguments: + type: string + description: Arguments that must be passed on the command line to launch the app in the expected configuration. + additionalProperties: false + CitrixAppDetails: + description: Properties used to launch apps virtualized via Citrix. + required: + - alias + properties: + alias: + type: string + description: Application start URL. + arguments: + type: string + description: Arguments that must be passed on the command line to launch the app in the expected configuration. + additionalProperties: false + OnlineNativeAppDetails: + description: Properties used to launch native application with an online launcher, e.g. online ClickOnce app deployments. + required: + - url + properties: + url: + type: string + formt: uri + description: Application start URL. additionalProperties: false HostManifests: type: object description: >- - A mapping from host string to a host-specific application manifest object or URI - from which that manifest can be retrieved. The manifest should provide all details required to - launch and use the application within the specified host. + A mapping from host name to a host-specific application manifest object or URI + from which that manifest can be retrieved. The manifest should provide details required to + launch and use the application within the specified host. The manifest _MAY_ duplicate or + override information provided in the `details` field. additionalProperties: - x-additionalPropertiesName: Host + x-additionalPropertiesName: Host name oneOf: - type: string # URI pointing to a JSON containing all host specific properties format: uri diff --git a/website/static/schemas/next/app-directory.yaml b/website/static/schemas/next/app-directory.yaml index e719d622b..66498fe63 100644 --- a/website/static/schemas/next/app-directory.yaml +++ b/website/static/schemas/next/app-directory.yaml @@ -426,10 +426,11 @@ components: $ref: '#/components/schemas/Type' details: description: >- - The type specific details of the application. Currently only the "browser" type is standardized. - "host" type applications should use the hostManifest's object for all application details. + The type specific launch details of the application. These details are intended to be + vendor-agnostic and _MAY_ be duplicated or overridden by details provided in the hostManifests + object for a specific host. oneOf: - - $ref: '#/components/schemas/BrowserDetails' + - $ref: '#/components/schemas/LaunchDetails' version: type: string description: >- @@ -726,28 +727,72 @@ components: Type: type: string description: >- - Enumeration describing the supported application types. Currently only the browser application type is officially supported. - The host application type allows for host specific application types (e.g. exe, workspaces, citrix, etc.). + The technology type that is used to launch and run the application. Particular application types imply enum: - - browser - - host - BrowserDetails: - description: Properties common to all browser applications. + - web + - native + - citrix + - clickonce + LaunchDetails: + description: Properties used to launch apps of various types. + oneOf: + - $ref: '#/components/schemas/WebAppDetails' + - $ref: '#/components/schemas/NativeAppDetails' + - $ref: '#/components/schemas/CitrixAppDetails' + - $ref: '#/components/schemas/OnlineNativeAppDetails' + WebAppDetails: + description: Properties used to launch web apps. required: - url properties: url: type: string - description: Application URL. + formt: uri + description: Application start URL. + additionalProperties: false + NativeAppDetails: + description: Properties used to launch native apps installed on a desktop. + required: + - path + properties: + path: + type: string + description: The path on disk from which the application is launched. + arguments: + type: string + description: Arguments that must be passed on the command line to launch the app in the expected configuration. + additionalProperties: false + CitrixAppDetails: + description: Properties used to launch apps virtualized via Citrix. + required: + - alias + properties: + alias: + type: string + description: Application start URL. + arguments: + type: string + description: Arguments that must be passed on the command line to launch the app in the expected configuration. + additionalProperties: false + OnlineNativeAppDetails: + description: Properties used to launch native application with an online launcher, e.g. online ClickOnce app deployments. + required: + - url + properties: + url: + type: string + formt: uri + description: Application start URL. additionalProperties: false HostManifests: type: object description: >- - A mapping from host string to a host-specific application manifest object or URI - from which that manifest can be retrieved. The manifest should provide all details required to - launch and use the application within the specified host. + A mapping from host name to a host-specific application manifest object or URI + from which that manifest can be retrieved. The manifest should provide details required to + launch and use the application within the specified host. The manifest _MAY_ duplicate or + override information provided in the `details` field. additionalProperties: - x-additionalPropertiesName: Host + x-additionalPropertiesName: Host name oneOf: - type: string # URI pointing to a JSON containing all host specific properties format: uri @@ -764,7 +809,7 @@ components: The keys to this object should be language tags as defined by IETF RFC 5646, e.g. en, en-GB or fr-FR. additionalProperties: x-additionalPropertiesName: Language tag - $ref: '#/components/schemas/BaseApplication' + $ref: '#/components/schemas/BaseApplication' # due to a bug in redoc this may display as a recursive definition, it is not. It will render correctly in swagger and other OpenAPI parsers. examples: FDC3WorkbenchAppDefinition: value: From 44bcf2f67309218d7efa7bd88074d7a6b112d8b9 Mon Sep 17 00:00:00 2001 From: Kris West Date: Thu, 21 Apr 2022 18:14:24 +0100 Subject: [PATCH 13/35] making details field required, fixing description of citrix alias --- src/app-directory/specification/appd.yaml | 3 ++- website/static/schemas/next/app-directory.yaml | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/app-directory/specification/appd.yaml b/src/app-directory/specification/appd.yaml index 66498fe63..049f58c59 100644 --- a/src/app-directory/specification/appd.yaml +++ b/src/app-directory/specification/appd.yaml @@ -503,10 +503,11 @@ components: Launching typically means running for a user on a desktop. The details around 'launching' including who or what might do it, and how the launch action is initiated are discussed elsewhere in the FDC3 App Directory spec. - required: # details are not required as the host type applications use the hostsManifests mapping instead + required: - appId - name - type + - details allOf: - $ref: '#/components/schemas/BaseApplication' - type: object diff --git a/website/static/schemas/next/app-directory.yaml b/website/static/schemas/next/app-directory.yaml index 66498fe63..049f58c59 100644 --- a/website/static/schemas/next/app-directory.yaml +++ b/website/static/schemas/next/app-directory.yaml @@ -503,10 +503,11 @@ components: Launching typically means running for a user on a desktop. The details around 'launching' including who or what might do it, and how the launch action is initiated are discussed elsewhere in the FDC3 App Directory spec. - required: # details are not required as the host type applications use the hostsManifests mapping instead + required: - appId - name - type + - details allOf: - $ref: '#/components/schemas/BaseApplication' - type: object From 2dac4839f80bf1cf563c889161010cbbaf1a3134 Mon Sep 17 00:00:00 2001 From: Kris West Date: Thu, 21 Apr 2022 18:53:45 +0100 Subject: [PATCH 14/35] Improving documentation of application types --- src/app-directory/specification/appd.yaml | 20 ++++++++++++------- .../static/schemas/next/app-directory.yaml | 20 ++++++++++++------- 2 files changed, 26 insertions(+), 14 deletions(-) diff --git a/src/app-directory/specification/appd.yaml b/src/app-directory/specification/appd.yaml index 049f58c59..ff8b628d7 100644 --- a/src/app-directory/specification/appd.yaml +++ b/src/app-directory/specification/appd.yaml @@ -728,12 +728,18 @@ components: Type: type: string description: >- - The technology type that is used to launch and run the application. Particular application types imply + The technology type that is used to launch and run the application. + Each application type implies a particular set of launch `details`. + The supported types include:
+ **web**: Web applications launched via a URL
+ **native**: Native applications pre-installed on a device and launch via a filesystem path
+ **citrix**: Apps virtualized via Citrix
+ **onlineNative**: Native apps that have an online launcher, e.g. online ClickOnce app deployments. enum: - web - native - citrix - - clickonce + - onlineNative LaunchDetails: description: Properties used to launch apps of various types. oneOf: @@ -742,7 +748,7 @@ components: - $ref: '#/components/schemas/CitrixAppDetails' - $ref: '#/components/schemas/OnlineNativeAppDetails' WebAppDetails: - description: Properties used to launch web apps. + description: 'Properties used to launch apps with `type: web`.' required: - url properties: @@ -752,7 +758,7 @@ components: description: Application start URL. additionalProperties: false NativeAppDetails: - description: Properties used to launch native apps installed on a desktop. + description: 'Properties used to launch apps with `type: native` that are already installed on the device.' required: - path properties: @@ -764,19 +770,19 @@ components: description: Arguments that must be passed on the command line to launch the app in the expected configuration. additionalProperties: false CitrixAppDetails: - description: Properties used to launch apps virtualized via Citrix. + description: 'Properties used to launch apps virtualized apps with `type: citrix`.' required: - alias properties: alias: type: string - description: Application start URL. + description: The Citrix alias / name of the virtual app (passed to the Citrix SelfService qlaunch parameter). arguments: type: string description: Arguments that must be passed on the command line to launch the app in the expected configuration. additionalProperties: false OnlineNativeAppDetails: - description: Properties used to launch native application with an online launcher, e.g. online ClickOnce app deployments. + description: 'Properties used to launch a native apps with `type: onelineNative` that have an online launcher, e.g. online ClickOnce app deployments.' required: - url properties: diff --git a/website/static/schemas/next/app-directory.yaml b/website/static/schemas/next/app-directory.yaml index 049f58c59..ff8b628d7 100644 --- a/website/static/schemas/next/app-directory.yaml +++ b/website/static/schemas/next/app-directory.yaml @@ -728,12 +728,18 @@ components: Type: type: string description: >- - The technology type that is used to launch and run the application. Particular application types imply + The technology type that is used to launch and run the application. + Each application type implies a particular set of launch `details`. + The supported types include:
+ **web**: Web applications launched via a URL
+ **native**: Native applications pre-installed on a device and launch via a filesystem path
+ **citrix**: Apps virtualized via Citrix
+ **onlineNative**: Native apps that have an online launcher, e.g. online ClickOnce app deployments. enum: - web - native - citrix - - clickonce + - onlineNative LaunchDetails: description: Properties used to launch apps of various types. oneOf: @@ -742,7 +748,7 @@ components: - $ref: '#/components/schemas/CitrixAppDetails' - $ref: '#/components/schemas/OnlineNativeAppDetails' WebAppDetails: - description: Properties used to launch web apps. + description: 'Properties used to launch apps with `type: web`.' required: - url properties: @@ -752,7 +758,7 @@ components: description: Application start URL. additionalProperties: false NativeAppDetails: - description: Properties used to launch native apps installed on a desktop. + description: 'Properties used to launch apps with `type: native` that are already installed on the device.' required: - path properties: @@ -764,19 +770,19 @@ components: description: Arguments that must be passed on the command line to launch the app in the expected configuration. additionalProperties: false CitrixAppDetails: - description: Properties used to launch apps virtualized via Citrix. + description: 'Properties used to launch apps virtualized apps with `type: citrix`.' required: - alias properties: alias: type: string - description: Application start URL. + description: The Citrix alias / name of the virtual app (passed to the Citrix SelfService qlaunch parameter). arguments: type: string description: Arguments that must be passed on the command line to launch the app in the expected configuration. additionalProperties: false OnlineNativeAppDetails: - description: Properties used to launch native application with an online launcher, e.g. online ClickOnce app deployments. + description: 'Properties used to launch a native apps with `type: onelineNative` that have an online launcher, e.g. online ClickOnce app deployments.' required: - url properties: From 7fb7f308e30d2a1499bc364f22269330986cef55 Mon Sep 17 00:00:00 2001 From: Kris West Date: Fri, 22 Apr 2022 11:23:37 +0100 Subject: [PATCH 15/35] Apply suggestions from code review Co-authored-by: Hugh Troeger --- CHANGELOG.md | 2 +- src/app-directory/specification/appd.yaml | 2 +- website/static/schemas/next/app-directory.yaml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5ba692bfc..f9f143ae9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -23,7 +23,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). * Add `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 `/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 `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 andalternative launch details for localized versions of the applications themselves. ([#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)) ### Changed * Consolidated `Listener` documentation with other types ([#404](https://github.com/finos/FDC3/pull/404)) diff --git a/src/app-directory/specification/appd.yaml b/src/app-directory/specification/appd.yaml index 7414fa2db..ed01ba3d0 100644 --- a/src/app-directory/specification/appd.yaml +++ b/src/app-directory/specification/appd.yaml @@ -447,7 +447,7 @@ components: lang: type: string pattern: '^[a-z]{2}(-[a-zA-Z0-9]{2,8}){0,1}$' - description: a language tag that specifies the primary language of both application and it's AppD entry, as defined by IETF RFC 5646. + description: a language tag that specifies the primary language of both application and its AppD entry, as defined by IETF RFC 5646. description: type: string description: >- diff --git a/website/static/schemas/next/app-directory.yaml b/website/static/schemas/next/app-directory.yaml index e719d622b..991655abd 100644 --- a/website/static/schemas/next/app-directory.yaml +++ b/website/static/schemas/next/app-directory.yaml @@ -447,7 +447,7 @@ components: lang: type: string pattern: '^[a-z]{2}(-[a-zA-Z0-9]{2,8}){0,1}$' - description: a language tag that specifies the primary language of both application and it's AppD entry, as defined by IETF RFC 5646. + description: a language tag that specifies the primary language of both application and its AppD entry, as defined by IETF RFC 5646. description: type: string description: >- From f92df727ac9396fa8ca298e02084db081f46102a Mon Sep 17 00:00:00 2001 From: Kris West Date: Fri, 22 Apr 2022 13:15:03 +0100 Subject: [PATCH 16/35] adding categories field to appD and suggested list of categoreis --- src/app-directory/specification/appd.yaml | 67 ++++++++++++++++--- .../static/schemas/next/app-directory.yaml | 67 ++++++++++++++++--- 2 files changed, 118 insertions(+), 16 deletions(-) diff --git a/src/app-directory/specification/appd.yaml b/src/app-directory/specification/appd.yaml index e47838f9f..df9cb7f69 100644 --- a/src/app-directory/specification/appd.yaml +++ b/src/app-directory/specification/appd.yaml @@ -447,12 +447,53 @@ components: lang: type: string pattern: '^[a-z]{2}(-[a-zA-Z0-9]{2,8}){0,1}$' - description: a language tag that specifies the primary language of both application and its AppD entry, as defined by IETF RFC 5646. + description: >- + A language tag that specifies the primary language of both + application and its AppD entry, as defined by IETF RFC 5646. description: type: string description: >- Description of the application. This will typically be a 1-2 - paragraph style blurb about the application. Allow mark up language + paragraph style blurb about the application. + categories: + description: >- + An array of string categories that describe the application. + These are meant as a hint to catalogs or stores listing FDC3-enabled + apps and it is expected that these will make a best effort to find + appropriate categories (or category) under which to list the app. + AppD record authors are encouraged to use lower-case and, where + possible, to select categories from the following list:
+ - analytics
+ - charts
+ - chat
+ - communication
+ - compliance
+ - crm
+ - developer tools
+ - events
+ - execution management
+ - file sharing
+ - market data
+ - news
+ - networking
+ - order management
+ - office apps
+ - portfolio management
+ - presentation
+ - pricing
+ - productivity
+ - risk
+ - screen sharing
+ - security
+ - spreadsheet
+ - training
+ - travel
+ - video
+ - visualisation
+ - weather
+ type: array + items: + type: string images: type: array description: >- @@ -784,6 +825,7 @@ components: name: fdc3-workbench title: FDC3 Workbench description: Development and test tool for FDC3 desktop agents and apps + categories: [developer tools, training] version: 1.0.0 tooltip: FDC3 Workbench lang: en-US @@ -863,21 +905,24 @@ components: summary: A sample app definition for the FDC3 Workbench application FDC3WorkbenchAppDefinitionSearchResponse: value: - applications: + applications: # you can't $ref inside a $ref so example is repeated here for search response - appId: fdc3-workbench name: fdc3-workbench title: FDC3 Workbench - description: Development and test tool for FDC3 desktop agents and apps, + description: Development and test tool for FDC3 desktop agents and apps + categories: [developer tools, training] version: 1.0.0 tooltip: FDC3 Workbench + lang: en-US icons: - src: http://fdc3.finos.org/toolbox/fdc3-workbench/fdc3-icon-256.png images: - - url: https://fdc3.finos.org/docs/assets/fdc3-logo.png, + - url: https://fdc3.finos.org/docs/assets/fdc3-logo.png tooltip: FDC3 logo - contactEmail: fdc3@finos.org, - supportEmail: fdc3-maintainers@finos.org, - publisher: FDC3, + contactEmail: fdc3@finos.org + supportEmail: fdc3-maintainers@finos.org + moreInfo: https://fdc3.finos.org #update to point to implementations page when it exists + publisher: FDC3 intents: [{ name: ViewChart, displayName: View Chart, @@ -936,5 +981,11 @@ components: }, Web App Manifest: https://example.com/fdc3-workbench.json } + localizedVersions: { + fr-FR: { + title: FDC3 Table de travail, + description: Outil de développement et de test pour les desktop agents et applications FDC3 + } + } message: OK summary: A sample application search response containing the FDC3 Workbench application diff --git a/website/static/schemas/next/app-directory.yaml b/website/static/schemas/next/app-directory.yaml index 6a61fb744..4b922e881 100644 --- a/website/static/schemas/next/app-directory.yaml +++ b/website/static/schemas/next/app-directory.yaml @@ -447,12 +447,53 @@ components: lang: type: string pattern: '^[a-z]{2}(-[a-zA-Z0-9]{2,8}){0,1}$' - description: a language tag that specifies the primary language of both application and its AppD entry, as defined by IETF RFC 5646. + description: >- + A language tag that specifies the primary language of both + application and its AppD entry, as defined by IETF RFC 5646. description: type: string description: >- Description of the application. This will typically be a 1-2 - paragraph style blurb about the application. Allow mark up language + paragraph style blurb about the application. + categories: + description: >- + An array of string categories that describe the application. + These are meant as a hint to catalogs or stores listing FDC3-enabled + apps and it is expected that these will make a best effort to find + appropriate categories (or category) under which to list the app. + AppD record authors are encouraged to use lower-case and, where + possible, to select categories from the following list:
+ - analytics
+ - charts
+ - chat
+ - communication
+ - compliance
+ - crm
+ - developer tools
+ - events
+ - execution management
+ - file sharing
+ - market data
+ - news
+ - networking
+ - order management
+ - office apps
+ - portfolio management
+ - presentation
+ - pricing
+ - productivity
+ - risk
+ - screen sharing
+ - security
+ - spreadsheet
+ - training
+ - travel
+ - video
+ - visualisation
+ - weather
+ type: array + items: + type: string images: type: array description: >- @@ -776,7 +817,7 @@ components: The keys to this object should be language tags as defined by IETF RFC 5646, e.g. en, en-GB or fr-FR. additionalProperties: x-additionalPropertiesName: Language tag - $ref: '#/components/schemas/BaseApplication' + $ref: '#/components/schemas/BaseApplication' # due to a bug in redoc this may display as a recursive definition, it is not. It will render correctly in swagger and other OpenAPI parsers. examples: FDC3WorkbenchAppDefinition: value: @@ -784,6 +825,7 @@ components: name: fdc3-workbench title: FDC3 Workbench description: Development and test tool for FDC3 desktop agents and apps + categories: [developer tools, training] version: 1.0.0 tooltip: FDC3 Workbench lang: en-US @@ -867,17 +909,20 @@ components: - appId: fdc3-workbench name: fdc3-workbench title: FDC3 Workbench - description: Development and test tool for FDC3 desktop agents and apps, + description: Development and test tool for FDC3 desktop agents and apps + categories: [developer tools, training] version: 1.0.0 tooltip: FDC3 Workbench + lang: en-US icons: - src: http://fdc3.finos.org/toolbox/fdc3-workbench/fdc3-icon-256.png images: - - url: https://fdc3.finos.org/docs/assets/fdc3-logo.png, + - url: https://fdc3.finos.org/docs/assets/fdc3-logo.png tooltip: FDC3 logo - contactEmail: fdc3@finos.org, - supportEmail: fdc3-maintainers@finos.org, - publisher: FDC3, + contactEmail: fdc3@finos.org + supportEmail: fdc3-maintainers@finos.org + moreInfo: https://fdc3.finos.org #update to point to implementations page when it exists + publisher: FDC3 intents: [{ name: ViewChart, displayName: View Chart, @@ -936,5 +981,11 @@ components: }, Web App Manifest: https://example.com/fdc3-workbench.json } + localizedVersions: { + fr-FR: { + title: FDC3 Table de travail, + description: Outil de développement et de test pour les desktop agents et applications FDC3 + } + } message: OK summary: A sample application search response containing the FDC3 Workbench application From 5b21431711759b24296425fdf2f22af5a1f629ba Mon Sep 17 00:00:00 2001 From: Kris West Date: Fri, 22 Apr 2022 16:41:42 +0100 Subject: [PATCH 17/35] add allocations, tca, research and trading system categories to suggested list --- src/app-directory/specification/appd.yaml | 4 ++++ website/static/schemas/next/app-directory.yaml | 6 +++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/app-directory/specification/appd.yaml b/src/app-directory/specification/appd.yaml index df9cb7f69..f7e7d3814 100644 --- a/src/app-directory/specification/appd.yaml +++ b/src/app-directory/specification/appd.yaml @@ -463,6 +463,7 @@ components: appropriate categories (or category) under which to list the app. AppD record authors are encouraged to use lower-case and, where possible, to select categories from the following list:
+ - allocations
- analytics
- charts
- chat
@@ -482,10 +483,13 @@ components: - presentation
- pricing
- productivity
+ - research
- risk
- screen sharing
- security
- spreadsheet
+ - trade cost analysis
+ - trading system
- training
- travel
- video
diff --git a/website/static/schemas/next/app-directory.yaml b/website/static/schemas/next/app-directory.yaml index 4b922e881..f7e7d3814 100644 --- a/website/static/schemas/next/app-directory.yaml +++ b/website/static/schemas/next/app-directory.yaml @@ -463,6 +463,7 @@ components: appropriate categories (or category) under which to list the app. AppD record authors are encouraged to use lower-case and, where possible, to select categories from the following list:
+ - allocations
- analytics
- charts
- chat
@@ -482,10 +483,13 @@ components: - presentation
- pricing
- productivity
+ - research
- risk
- screen sharing
- security
- spreadsheet
+ - trade cost analysis
+ - trading system
- training
- travel
- video
@@ -905,7 +909,7 @@ components: summary: A sample app definition for the FDC3 Workbench application FDC3WorkbenchAppDefinitionSearchResponse: value: - applications: + applications: # you can't $ref inside a $ref so example is repeated here for search response - appId: fdc3-workbench name: fdc3-workbench title: FDC3 Workbench From 6cc60fd39fd81249aa032ecb7549495b668b8b4e Mon Sep 17 00:00:00 2001 From: Kris West Date: Fri, 22 Apr 2022 18:20:48 +0100 Subject: [PATCH 18/35] add statement on alignment with other standards, changes appd images to screenshots and match format to icon/web app manifest --- docs/app-directory/overview.md | 4 ++ docs/references.md | 2 +- src/app-directory/specification/appd.yaml | 38 +++++++++++++----- .../static/schemas/next/app-directory.yaml | 40 +++++++++++++------ 4 files changed, 60 insertions(+), 24 deletions(-) diff --git a/docs/app-directory/overview.md b/docs/app-directory/overview.md index 95896a259..224d73af2 100644 --- a/docs/app-directory/overview.md +++ b/docs/app-directory/overview.md @@ -74,6 +74,10 @@ 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 solve for. + +Whereever 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. ## Sections to review diff --git a/docs/references.md b/docs/references.md index 261e87ca6..1f399df07 100644 --- a/docs/references.md +++ b/docs/references.md @@ -16,7 +16,7 @@ The following normative documents contain provisions, which, through reference i - **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: diff --git a/src/app-directory/specification/appd.yaml b/src/app-directory/specification/appd.yaml index e47838f9f..a706ed2fa 100644 --- a/src/app-directory/specification/appd.yaml +++ b/src/app-directory/specification/appd.yaml @@ -453,13 +453,13 @@ components: description: >- Description of the application. This will typically be a 1-2 paragraph style blurb about the application. Allow mark up language - images: + screenshots : type: array description: >- Array of images to show the user when they are looking at app description. Each image can have an optional description/tooltip items: - $ref: '#/components/schemas/AppImage' + $ref: '#/components/schemas/Screenshot' contactEmail: type: string format: email @@ -582,7 +582,7 @@ components: Array of images to show the user when they are looking at app description. Each image can have an optional description/tooltip items: - $ref: '#/components/schemas/AppImage' + $ref: '#/components/schemas/AppImageV1' contactEmail: type: string format: email @@ -659,7 +659,7 @@ components: description: Icon URL size: type: string - description: Icon dimension formatted as "x" + description: Icon dimension formatted as `x` type: type: string description: Image media type. If not present the Desktop Agent may use the src file extension @@ -670,7 +670,23 @@ components: type: string format: uri description: Icon URL - AppImage: + Screenshot: + description: Images representing the app in common usage scenarios + properties: + src: + type: string + format: uri + description: App Image URL + size: + type: string + description: Icon dimension formatted as `x` + type: + type: string + description: Image media type. If not present the Desktop Agent may use the src file extension + label: + type: string + description: Optional caption for the image + AppImageV1: description: App Image holder properties: url: @@ -789,9 +805,9 @@ components: lang: en-US icons: - src: http://fdc3.finos.org/toolbox/fdc3-workbench/fdc3-icon-256.png - images: - - url: https://fdc3.finos.org/docs/assets/fdc3-logo.png - tooltip: FDC3 logo + screenshots: + - src: https://fdc3.finos.org/docs/assets/fdc3-logo.png + label: FDC3 logo contactEmail: fdc3@finos.org supportEmail: fdc3-maintainers@finos.org moreInfo: https://fdc3.finos.org #update to point to implementations page when it exists @@ -872,9 +888,9 @@ components: tooltip: FDC3 Workbench icons: - src: http://fdc3.finos.org/toolbox/fdc3-workbench/fdc3-icon-256.png - images: - - url: https://fdc3.finos.org/docs/assets/fdc3-logo.png, - tooltip: FDC3 logo + screenshots: + - src: https://fdc3.finos.org/docs/assets/fdc3-logo.png, + label: FDC3 logo contactEmail: fdc3@finos.org, supportEmail: fdc3-maintainers@finos.org, publisher: FDC3, diff --git a/website/static/schemas/next/app-directory.yaml b/website/static/schemas/next/app-directory.yaml index 6a61fb744..a706ed2fa 100644 --- a/website/static/schemas/next/app-directory.yaml +++ b/website/static/schemas/next/app-directory.yaml @@ -453,13 +453,13 @@ components: description: >- Description of the application. This will typically be a 1-2 paragraph style blurb about the application. Allow mark up language - images: + screenshots : type: array description: >- Array of images to show the user when they are looking at app description. Each image can have an optional description/tooltip items: - $ref: '#/components/schemas/AppImage' + $ref: '#/components/schemas/Screenshot' contactEmail: type: string format: email @@ -582,7 +582,7 @@ components: Array of images to show the user when they are looking at app description. Each image can have an optional description/tooltip items: - $ref: '#/components/schemas/AppImage' + $ref: '#/components/schemas/AppImageV1' contactEmail: type: string format: email @@ -659,7 +659,7 @@ components: description: Icon URL size: type: string - description: Icon dimension formatted as "x" + description: Icon dimension formatted as `x` type: type: string description: Image media type. If not present the Desktop Agent may use the src file extension @@ -670,7 +670,23 @@ components: type: string format: uri description: Icon URL - AppImage: + Screenshot: + description: Images representing the app in common usage scenarios + properties: + src: + type: string + format: uri + description: App Image URL + size: + type: string + description: Icon dimension formatted as `x` + type: + type: string + description: Image media type. If not present the Desktop Agent may use the src file extension + label: + type: string + description: Optional caption for the image + AppImageV1: description: App Image holder properties: url: @@ -776,7 +792,7 @@ components: The keys to this object should be language tags as defined by IETF RFC 5646, e.g. en, en-GB or fr-FR. additionalProperties: x-additionalPropertiesName: Language tag - $ref: '#/components/schemas/BaseApplication' + $ref: '#/components/schemas/BaseApplication' # due to a bug in redoc this may display as a recursive definition, it is not. It will render correctly in swagger and other OpenAPI parsers. examples: FDC3WorkbenchAppDefinition: value: @@ -789,9 +805,9 @@ components: lang: en-US icons: - src: http://fdc3.finos.org/toolbox/fdc3-workbench/fdc3-icon-256.png - images: - - url: https://fdc3.finos.org/docs/assets/fdc3-logo.png - tooltip: FDC3 logo + screenshots: + - src: https://fdc3.finos.org/docs/assets/fdc3-logo.png + label: FDC3 logo contactEmail: fdc3@finos.org supportEmail: fdc3-maintainers@finos.org moreInfo: https://fdc3.finos.org #update to point to implementations page when it exists @@ -872,9 +888,9 @@ components: tooltip: FDC3 Workbench icons: - src: http://fdc3.finos.org/toolbox/fdc3-workbench/fdc3-icon-256.png - images: - - url: https://fdc3.finos.org/docs/assets/fdc3-logo.png, - tooltip: FDC3 logo + screenshots: + - src: https://fdc3.finos.org/docs/assets/fdc3-logo.png, + label: FDC3 logo contactEmail: fdc3@finos.org, supportEmail: fdc3-maintainers@finos.org, publisher: FDC3, From 29e3fe55c9829dd1ffa32459ed79b9b3a23e0e74 Mon Sep 17 00:00:00 2001 From: Kris West Date: Fri, 22 Apr 2022 18:36:12 +0100 Subject: [PATCH 19/35] changelog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 09eb8c3b5..a9beef2ef 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -37,6 +37,7 @@ 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)) +* AppD `images` field was replaced with `screenshots` to better align the applicaiton record with web application manifest and match its format to that used by `icons` ([#675](https://github.com/finos/FDC3/pull/675)) ### Deprecated * Removed details of the 'global' channel that was deprecated in FDC3 1.2. ([#496](https://github.com/finos/FDC3/pull/496)) From d5ef18c430ab0438a520012eac339c6a8a3f0588 Mon Sep 17 00:00:00 2001 From: Kris West Date: Fri, 22 Apr 2022 18:38:35 +0100 Subject: [PATCH 20/35] changelog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 09eb8c3b5..909df9ce7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -26,6 +26,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). * 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 `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)) ### Changed * Consolidated `Listener` documentation with other types ([#404](https://github.com/finos/FDC3/pull/404)) From f9aec0c7d765d2f86f81eebc3a1dacda6009d1d7 Mon Sep 17 00:00:00 2001 From: Kris West Date: Fri, 22 Apr 2022 18:41:59 +0100 Subject: [PATCH 21/35] changelog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 09eb8c3b5..7c5b865ed 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -26,6 +26,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). * 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)) ### Changed * Consolidated `Listener` documentation with other types ([#404](https://github.com/finos/FDC3/pull/404)) From 4644aaeb997fa0531e519d5bbbd8ee0c95d62eb0 Mon Sep 17 00:00:00 2001 From: Kris West Date: Mon, 25 Apr 2022 11:10:13 +0100 Subject: [PATCH 22/35] improve category list rendering --- src/app-directory/specification/appd.yaml | 69 ++++++++++--------- .../static/schemas/next/app-directory.yaml | 69 ++++++++++--------- 2 files changed, 70 insertions(+), 68 deletions(-) diff --git a/src/app-directory/specification/appd.yaml b/src/app-directory/specification/appd.yaml index f7e7d3814..24f33f2d9 100644 --- a/src/app-directory/specification/appd.yaml +++ b/src/app-directory/specification/appd.yaml @@ -456,45 +456,46 @@ components: Description of the application. This will typically be a 1-2 paragraph style blurb about the application. categories: - description: >- + description: | An array of string categories that describe the application. These are meant as a hint to catalogs or stores listing FDC3-enabled apps and it is expected that these will make a best effort to find appropriate categories (or category) under which to list the app. AppD record authors are encouraged to use lower-case and, where - possible, to select categories from the following list:
- - allocations
- - analytics
- - charts
- - chat
- - communication
- - compliance
- - crm
- - developer tools
- - events
- - execution management
- - file sharing
- - market data
- - news
- - networking
- - order management
- - office apps
- - portfolio management
- - presentation
- - pricing
- - productivity
- - research
- - risk
- - screen sharing
- - security
- - spreadsheet
- - trade cost analysis
- - trading system
- - training
- - travel
- - video
- - visualisation
- - weather
+ possible, to select categories from the following list: + + - allocations + - analytics + - charts + - chat + - communication + - compliance + - crm + - developer tools + - events + - execution management + - file sharing + - market data + - news + - networking + - order management + - office apps + - portfolio management + - presentation + - pricing + - productivity + - research + - risk + - screen sharing + - security + - spreadsheet + - trade cost analysis + - trading system + - training + - travel + - video + - visualisation + - weather type: array items: type: string diff --git a/website/static/schemas/next/app-directory.yaml b/website/static/schemas/next/app-directory.yaml index f7e7d3814..24f33f2d9 100644 --- a/website/static/schemas/next/app-directory.yaml +++ b/website/static/schemas/next/app-directory.yaml @@ -456,45 +456,46 @@ components: Description of the application. This will typically be a 1-2 paragraph style blurb about the application. categories: - description: >- + description: | An array of string categories that describe the application. These are meant as a hint to catalogs or stores listing FDC3-enabled apps and it is expected that these will make a best effort to find appropriate categories (or category) under which to list the app. AppD record authors are encouraged to use lower-case and, where - possible, to select categories from the following list:
- - allocations
- - analytics
- - charts
- - chat
- - communication
- - compliance
- - crm
- - developer tools
- - events
- - execution management
- - file sharing
- - market data
- - news
- - networking
- - order management
- - office apps
- - portfolio management
- - presentation
- - pricing
- - productivity
- - research
- - risk
- - screen sharing
- - security
- - spreadsheet
- - trade cost analysis
- - trading system
- - training
- - travel
- - video
- - visualisation
- - weather
+ possible, to select categories from the following list: + + - allocations + - analytics + - charts + - chat + - communication + - compliance + - crm + - developer tools + - events + - execution management + - file sharing + - market data + - news + - networking + - order management + - office apps + - portfolio management + - presentation + - pricing + - productivity + - research + - risk + - screen sharing + - security + - spreadsheet + - trade cost analysis + - trading system + - training + - travel + - video + - visualisation + - weather type: array items: type: string From 52e074197a2c1f11c5d1c3315018d19be2ce89be Mon Sep 17 00:00:00 2001 From: Kris West Date: Mon, 25 Apr 2022 11:16:04 +0100 Subject: [PATCH 23/35] improve rendering of type list --- src/app-directory/specification/appd.yaml | 13 +++++++------ website/static/schemas/next/app-directory.yaml | 13 +++++++------ 2 files changed, 14 insertions(+), 12 deletions(-) diff --git a/src/app-directory/specification/appd.yaml b/src/app-directory/specification/appd.yaml index 7857772fb..8f8865b5d 100644 --- a/src/app-directory/specification/appd.yaml +++ b/src/app-directory/specification/appd.yaml @@ -738,14 +738,15 @@ components: particular desktop agent. Type: type: string - description: >- + description: | The technology type that is used to launch and run the application. Each application type implies a particular set of launch `details`. - The supported types include:
- **web**: Web applications launched via a URL
- **native**: Native applications pre-installed on a device and launch via a filesystem path
- **citrix**: Apps virtualized via Citrix
- **onlineNative**: Native apps that have an online launcher, e.g. online ClickOnce app deployments. + The supported types include: + + - **web**: Web applications launched via a URL + - **native**: Native applications pre-installed on a device and launch via a filesystem path + - **citrix**: Apps virtualized via Citrix + - **onlineNative**: Native apps that have an online launcher, e.g. online ClickOnce app deployments. enum: - web - native diff --git a/website/static/schemas/next/app-directory.yaml b/website/static/schemas/next/app-directory.yaml index 7857772fb..8f8865b5d 100644 --- a/website/static/schemas/next/app-directory.yaml +++ b/website/static/schemas/next/app-directory.yaml @@ -738,14 +738,15 @@ components: particular desktop agent. Type: type: string - description: >- + description: | The technology type that is used to launch and run the application. Each application type implies a particular set of launch `details`. - The supported types include:
- **web**: Web applications launched via a URL
- **native**: Native applications pre-installed on a device and launch via a filesystem path
- **citrix**: Apps virtualized via Citrix
- **onlineNative**: Native apps that have an online launcher, e.g. online ClickOnce app deployments. + The supported types include: + + - **web**: Web applications launched via a URL + - **native**: Native applications pre-installed on a device and launch via a filesystem path + - **citrix**: Apps virtualized via Citrix + - **onlineNative**: Native apps that have an online launcher, e.g. online ClickOnce app deployments. enum: - web - native From de1dde947ae5a7c2be7ccabd3ec8ea41784eefc9 Mon Sep 17 00:00:00 2001 From: Kris West Date: Mon, 25 Apr 2022 12:19:14 +0100 Subject: [PATCH 24/35] add app type and clarify that web type MUST be supported, other types MAY be supported --- src/app-directory/specification/appd.yaml | 28 +++++++++++-------- .../static/schemas/next/app-directory.yaml | 28 +++++++++++-------- 2 files changed, 34 insertions(+), 22 deletions(-) diff --git a/src/app-directory/specification/appd.yaml b/src/app-directory/specification/appd.yaml index 8f8865b5d..991a67b5f 100644 --- a/src/app-directory/specification/appd.yaml +++ b/src/app-directory/specification/appd.yaml @@ -425,12 +425,7 @@ components: type: $ref: '#/components/schemas/Type' details: - description: >- - The type specific launch details of the application. These details are intended to be - vendor-agnostic and _MAY_ be duplicated or overridden by details provided in the hostManifests - object for a specific host. - oneOf: - - $ref: '#/components/schemas/LaunchDetails' + $ref: '#/components/schemas/LaunchDetails' version: type: string description: >- @@ -743,22 +738,30 @@ components: Each application type implies a particular set of launch `details`. The supported types include: - - **web**: Web applications launched via a URL - - **native**: Native applications pre-installed on a device and launch via a filesystem path - - **citrix**: Apps virtualized via Citrix - - **onlineNative**: Native apps that have an online launcher, e.g. online ClickOnce app deployments. + - `web`: Web applications launched via a URL + - `native`: Native applications pre-installed on a device and launch via a filesystem path + - `citrix`: Apps virtualized via Citrix + - `onlineNative`: Native apps that have an online launcher, e.g. online ClickOnce app deployments. + - `other`: Used to represent apps that do not conform to or cannot be launched via the other types, and are likely to be defined solely by a hostManifest. + + FDC3 Desktop Agents MUST support at least the `web` application type and MAY support any or all of the other types. enum: - web - native - citrix - onlineNative + - other LaunchDetails: - description: Properties used to launch apps of various types. + description: >- + The type specific launch details of the application. These details are intended to be + vendor-agnostic and MAY be duplicated or overridden by details provided in the hostManifests + object for a specific host. oneOf: - $ref: '#/components/schemas/WebAppDetails' - $ref: '#/components/schemas/NativeAppDetails' - $ref: '#/components/schemas/CitrixAppDetails' - $ref: '#/components/schemas/OnlineNativeAppDetails' + - $ref: '#/components/schemas/OtherAppDetails' WebAppDetails: description: 'Properties used to launch apps with `type: web`.' required: @@ -803,6 +806,9 @@ components: format: uri description: Application URL. additionalProperties: false + OtherAppDetails: + description: 'Apps with `type: other` are defined by a hostManifest and do not require other details.' + additionalProperties: false HostManifests: type: object description: >- diff --git a/website/static/schemas/next/app-directory.yaml b/website/static/schemas/next/app-directory.yaml index 8f8865b5d..49ea6800d 100644 --- a/website/static/schemas/next/app-directory.yaml +++ b/website/static/schemas/next/app-directory.yaml @@ -425,12 +425,7 @@ components: type: $ref: '#/components/schemas/Type' details: - description: >- - The type specific launch details of the application. These details are intended to be - vendor-agnostic and _MAY_ be duplicated or overridden by details provided in the hostManifests - object for a specific host. - oneOf: - - $ref: '#/components/schemas/LaunchDetails' + $ref: '#/components/schemas/LaunchDetails' version: type: string description: >- @@ -743,22 +738,30 @@ components: Each application type implies a particular set of launch `details`. The supported types include: - - **web**: Web applications launched via a URL - - **native**: Native applications pre-installed on a device and launch via a filesystem path - - **citrix**: Apps virtualized via Citrix - - **onlineNative**: Native apps that have an online launcher, e.g. online ClickOnce app deployments. + - `web`: Web applications launched via a URL + - `native`: Native applications pre-installed on a device and launch via a filesystem path + - `citrix`: Apps virtualized via Citrix + - `onlineNative`: Native apps that have an online launcher, e.g. online ClickOnce app deployments. + - `other`: Used to represent apps that do not conform to or cannot be launched via the other types, and are likely to be defined solely by a hostManifest. + + FDC3 Desktop Agents MUST support at least the `web` application type and MAY support any or all of the other types. enum: - web - native - citrix - onlineNative + - other LaunchDetails: - description: Properties used to launch apps of various types. + description: >- + The type specific launch details of the application. These details are intended to be + vendor-agnostic and _MAY_ be duplicated or overridden by details provided in the hostManifests + object for a specific host. oneOf: - $ref: '#/components/schemas/WebAppDetails' - $ref: '#/components/schemas/NativeAppDetails' - $ref: '#/components/schemas/CitrixAppDetails' - $ref: '#/components/schemas/OnlineNativeAppDetails' + - $ref: '#/components/schemas/OtherAppDetails' WebAppDetails: description: 'Properties used to launch apps with `type: web`.' required: @@ -803,6 +806,9 @@ components: format: uri description: Application URL. additionalProperties: false + OtherAppDetails: + description: 'Apps with `type: other` are defined by a hostManifest and do not require other details.' + additionalProperties: false HostManifests: type: object description: >- From 8ace2edc4eecdefec27ca4777e81179e5bed0448 Mon Sep 17 00:00:00 2001 From: Kris West Date: Tue, 3 May 2022 13:05:26 +0100 Subject: [PATCH 25/35] Update docs/app-directory/overview.md --- docs/app-directory/overview.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/app-directory/overview.md b/docs/app-directory/overview.md index 224d73af2..8d59b583b 100644 --- a/docs/app-directory/overview.md +++ b/docs/app-directory/overview.md @@ -75,9 +75,9 @@ 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 solve for. +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. -Whereever 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. +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. ## Sections to review From 91ca02467e4f02a578a173a8d181db5789123240 Mon Sep 17 00:00:00 2001 From: Kris West Date: Thu, 5 May 2022 14:51:07 +0100 Subject: [PATCH 26/35] adding 'other' category --- src/app-directory/specification/appd.yaml | 3 ++- website/static/schemas/next/app-directory.yaml | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/app-directory/specification/appd.yaml b/src/app-directory/specification/appd.yaml index 24f33f2d9..e3b1759f8 100644 --- a/src/app-directory/specification/appd.yaml +++ b/src/app-directory/specification/appd.yaml @@ -478,8 +478,9 @@ components: - market data - news - networking - - order management - office apps + - order management + - other - portfolio management - presentation - pricing diff --git a/website/static/schemas/next/app-directory.yaml b/website/static/schemas/next/app-directory.yaml index 24f33f2d9..e3b1759f8 100644 --- a/website/static/schemas/next/app-directory.yaml +++ b/website/static/schemas/next/app-directory.yaml @@ -478,8 +478,9 @@ components: - market data - news - networking - - order management - office apps + - order management + - other - portfolio management - presentation - pricing From e850c35612e5e91136131e1717112bd09f76e493 Mon Sep 17 00:00:00 2001 From: Kris West Date: Thu, 5 May 2022 17:04:30 +0100 Subject: [PATCH 27/35] add an endpoint for retrieving all apps from an appD (a primary use case) --- docs/app-directory/spec.md | 1 + src/app-directory/specification/appd.yaml | 51 ++++++++++++++++--- .../static/schemas/next/app-directory.yaml | 43 ++++++++++++++-- 3 files changed, 85 insertions(+), 10 deletions(-) diff --git a/docs/app-directory/spec.md b/docs/app-directory/spec.md index 70edf81a8..492b32869 100644 --- a/docs/app-directory/spec.md +++ b/docs/app-directory/spec.md @@ -11,6 +11,7 @@ View the [full specification](/schemas/next/app-directory) in [OpenAPI v3.0](htt Endpoint | Method | Description ------------------ | ------ | ----------- + `/v2/apps` | GET | Retrieve all application definitions `/v2/apps` | POST | Create a new application definition `/v2/apps/{appId}` | GET | Retrieve an application defintion `/v2/apps/search` | GET | Retrieve a list of applications diff --git a/src/app-directory/specification/appd.yaml b/src/app-directory/specification/appd.yaml index 676809953..74edb2c82 100644 --- a/src/app-directory/specification/appd.yaml +++ b/src/app-directory/specification/appd.yaml @@ -54,8 +54,8 @@ paths: tags: - Application /v2/apps: - post: - summary: Create a new application definition + get: + summary: Retrieve all application definitions responses: '200': description: OK @@ -66,6 +66,40 @@ paths: examples: FDC3WorkbenchAppDefinitionSearchResponse: $ref: '#/components/examples/FDC3WorkbenchAppDefinitionSearchResponse' + '400': + description: Bad request. + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorDTO' + '403': + description: >- + Forbidden: Certificate authentication is not allowed for the + requested user. + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorDTO' + '500': + description: 'Server error, see response body for further details.' + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorDTO' + tags: + - Application + post: + summary: Create a new application definition + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/Application' + examples: + FDC3WorkbenchAppDefinition: + $ref: '#/components/examples/FDC3WorkbenchAppDefinition' '400': description: Bad request. content: @@ -207,7 +241,8 @@ paths: - Application '/v1/apps/{appId}': get: - summary: (Deprecated v1 API version) Retrieve an application definition + deprecated: true + summary: Retrieve an application definition parameters: - name: appId in: path @@ -245,7 +280,8 @@ paths: - Application /v1/apps: post: - summary: (Deprecated v1 API version) Create a new application definition + deprecated: true + summary: Create a new application definition responses: '200': description: OK @@ -283,7 +319,8 @@ paths: required: true /v1/apps/search: get: - summary: (Deprecated v1 API version) Retrieve a list of applications based on parameters provided. Depending on implementation, parameter + deprecated: true + summary: Retrieve a list of applications based on parameters provided. Depending on implementation, parameter values should self describe search format and type (e.g. Regex) parameters: - in: query @@ -448,7 +485,7 @@ components: type: string pattern: '^[a-z]{2}(-[a-zA-Z0-9]{2,8}){0,1}$' description: >- - A language tag that specifies the primary language of both + A language tag that specifies the primary language of both the application and its AppD entry, as defined by IETF RFC 5646. description: type: string @@ -531,7 +568,7 @@ components: description: >- The name of the company that owns the application. The publisher has control over their namespace/app/signature. - customConfig: + customConfig: type: array description: >- An optional set of name value pairs that can be used to deliver diff --git a/website/static/schemas/next/app-directory.yaml b/website/static/schemas/next/app-directory.yaml index 676809953..8cf067b41 100644 --- a/website/static/schemas/next/app-directory.yaml +++ b/website/static/schemas/next/app-directory.yaml @@ -54,8 +54,8 @@ paths: tags: - Application /v2/apps: - post: - summary: Create a new application definition + get: + summary: Retrieve all application definitions responses: '200': description: OK @@ -66,6 +66,40 @@ paths: examples: FDC3WorkbenchAppDefinitionSearchResponse: $ref: '#/components/examples/FDC3WorkbenchAppDefinitionSearchResponse' + '400': + description: Bad request. + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorDTO' + '403': + description: >- + Forbidden: Certificate authentication is not allowed for the + requested user. + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorDTO' + '500': + description: 'Server error, see response body for further details.' + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorDTO' + tags: + - Application + post: + summary: Create a new application definition + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/Application' + examples: + FDC3WorkbenchAppDefinition: + $ref: '#/components/examples/FDC3WorkbenchAppDefinition' '400': description: Bad request. content: @@ -207,6 +241,7 @@ paths: - Application '/v1/apps/{appId}': get: + deprecated: true summary: (Deprecated v1 API version) Retrieve an application definition parameters: - name: appId @@ -245,6 +280,7 @@ paths: - Application /v1/apps: post: + deprecated: true summary: (Deprecated v1 API version) Create a new application definition responses: '200': @@ -283,6 +319,7 @@ paths: required: true /v1/apps/search: get: + deprecated: true summary: (Deprecated v1 API version) Retrieve a list of applications based on parameters provided. Depending on implementation, parameter values should self describe search format and type (e.g. Regex) parameters: @@ -531,7 +568,7 @@ components: description: >- The name of the company that owns the application. The publisher has control over their namespace/app/signature. - customConfig: + customConfig: type: array description: >- An optional set of name value pairs that can be used to deliver From 9400bced4e92de8171cabf763c21e1a5998562b4 Mon Sep 17 00:00:00 2001 From: Kris West Date: Thu, 5 May 2022 17:08:59 +0100 Subject: [PATCH 28/35] build --- website/static/schemas/next/app-directory.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/website/static/schemas/next/app-directory.yaml b/website/static/schemas/next/app-directory.yaml index 8cf067b41..74edb2c82 100644 --- a/website/static/schemas/next/app-directory.yaml +++ b/website/static/schemas/next/app-directory.yaml @@ -242,7 +242,7 @@ paths: '/v1/apps/{appId}': get: deprecated: true - summary: (Deprecated v1 API version) Retrieve an application definition + summary: Retrieve an application definition parameters: - name: appId in: path @@ -281,7 +281,7 @@ paths: /v1/apps: post: deprecated: true - summary: (Deprecated v1 API version) Create a new application definition + summary: Create a new application definition responses: '200': description: OK @@ -320,7 +320,7 @@ paths: /v1/apps/search: get: deprecated: true - summary: (Deprecated v1 API version) Retrieve a list of applications based on parameters provided. Depending on implementation, parameter + summary: Retrieve a list of applications based on parameters provided. Depending on implementation, parameter values should self describe search format and type (e.g. Regex) parameters: - in: query @@ -485,7 +485,7 @@ components: type: string pattern: '^[a-z]{2}(-[a-zA-Z0-9]{2,8}){0,1}$' description: >- - A language tag that specifies the primary language of both + A language tag that specifies the primary language of both the application and its AppD entry, as defined by IETF RFC 5646. description: type: string From 6386ec39fbdb959a5b50c3654530280da517be76 Mon Sep 17 00:00:00 2001 From: Kris West Date: Fri, 6 May 2022 16:09:57 +0100 Subject: [PATCH 29/35] removing appD create application endpoint --- CHANGELOG.md | 3 +- docs/app-directory/spec.md | 1 - src/app-directory/specification/appd.yaml | 43 ------------------- .../static/schemas/next/app-directory.yaml | 43 ------------------- 4 files changed, 2 insertions(+), 88 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 889ad023f..76cfdd2e7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -38,7 +38,8 @@ 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)) -* AppD `images` field was replaced with `screenshots` to better align the applicaiton record with web application manifest and match its format to that used by `icons` ([#675](https://github.com/finos/FDC3/pull/675)) +* 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 ([#](https://github.com/finos/FDC3/pull/)) ### Deprecated * Removed details of the 'global' channel that was deprecated in FDC3 1.2. ([#496](https://github.com/finos/FDC3/pull/496)) diff --git a/docs/app-directory/spec.md b/docs/app-directory/spec.md index 492b32869..6ba765788 100644 --- a/docs/app-directory/spec.md +++ b/docs/app-directory/spec.md @@ -12,7 +12,6 @@ View the [full specification](/schemas/next/app-directory) in [OpenAPI v3.0](htt Endpoint | Method | Description ------------------ | ------ | ----------- `/v2/apps` | GET | Retrieve all application definitions - `/v2/apps` | POST | Create a new application definition `/v2/apps/{appId}` | GET | Retrieve an application defintion `/v2/apps/search` | GET | Retrieve a list of applications `/v1/apps` | POST | (deprecated v1 API version) Create a new application definition diff --git a/src/app-directory/specification/appd.yaml b/src/app-directory/specification/appd.yaml index 74edb2c82..ede6fbd0d 100644 --- a/src/app-directory/specification/appd.yaml +++ b/src/app-directory/specification/appd.yaml @@ -88,49 +88,6 @@ paths: $ref: '#/components/schemas/ErrorDTO' tags: - Application - post: - summary: Create a new application definition - responses: - '200': - description: OK - content: - application/json: - schema: - $ref: '#/components/schemas/Application' - examples: - FDC3WorkbenchAppDefinition: - $ref: '#/components/examples/FDC3WorkbenchAppDefinition' - '400': - description: Bad request. - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorDTO' - '403': - description: >- - Forbidden: Certificate authentication is not allowed for the - requested user. - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorDTO' - '500': - description: 'Server error, see response body for further details.' - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorDTO' - tags: - - Application - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/Application' - examples: - FDC3WorkbenchAppDefinition: - $ref: '#/components/examples/FDC3WorkbenchAppDefinition' - required: true /v2/apps/search: get: summary: Retrieve a list of applications based on parameters provided. Depending on implementation, parameter diff --git a/website/static/schemas/next/app-directory.yaml b/website/static/schemas/next/app-directory.yaml index 74edb2c82..ede6fbd0d 100644 --- a/website/static/schemas/next/app-directory.yaml +++ b/website/static/schemas/next/app-directory.yaml @@ -88,49 +88,6 @@ paths: $ref: '#/components/schemas/ErrorDTO' tags: - Application - post: - summary: Create a new application definition - responses: - '200': - description: OK - content: - application/json: - schema: - $ref: '#/components/schemas/Application' - examples: - FDC3WorkbenchAppDefinition: - $ref: '#/components/examples/FDC3WorkbenchAppDefinition' - '400': - description: Bad request. - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorDTO' - '403': - description: >- - Forbidden: Certificate authentication is not allowed for the - requested user. - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorDTO' - '500': - description: 'Server error, see response body for further details.' - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorDTO' - tags: - - Application - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/Application' - examples: - FDC3WorkbenchAppDefinition: - $ref: '#/components/examples/FDC3WorkbenchAppDefinition' - required: true /v2/apps/search: get: summary: Retrieve a list of applications based on parameters provided. Depending on implementation, parameter From ef3f6ead79ce4af5f3ea6844e764ea5a196b6073 Mon Sep 17 00:00:00 2001 From: Kris West Date: Fri, 6 May 2022 16:15:22 +0100 Subject: [PATCH 30/35] changelog --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 76cfdd2e7..02ed30242 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -39,7 +39,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). * 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 ([#](https://github.com/finos/FDC3/pull/)) +* 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)) ### Deprecated * Removed details of the 'global' channel that was deprecated in FDC3 1.2. ([#496](https://github.com/finos/FDC3/pull/496)) From 84fc3592dc66880f9f431242b75b36bfcb401282 Mon Sep 17 00:00:00 2001 From: Kris West Date: Fri, 6 May 2022 16:40:38 +0100 Subject: [PATCH 31/35] removing appD search application endpoint --- CHANGELOG.md | 1 + docs/app-directory/spec.md | 1 - src/app-directory/specification/appd.yaml | 120 +----------------- .../static/schemas/next/app-directory.yaml | 120 +----------------- 4 files changed, 13 insertions(+), 229 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 889ad023f..941cd2f50 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -39,6 +39,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). * 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)) * AppD `images` field was replaced with `screenshots` to better align the applicaiton 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 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 ([#](https://github.com/finos/FDC3/pull/)) ### Deprecated * Removed details of the 'global' channel that was deprecated in FDC3 1.2. ([#496](https://github.com/finos/FDC3/pull/496)) diff --git a/docs/app-directory/spec.md b/docs/app-directory/spec.md index 492b32869..3812d5aff 100644 --- a/docs/app-directory/spec.md +++ b/docs/app-directory/spec.md @@ -14,7 +14,6 @@ View the [full specification](/schemas/next/app-directory) in [OpenAPI v3.0](htt `/v2/apps` | GET | Retrieve all application definitions `/v2/apps` | POST | Create a new application definition `/v2/apps/{appId}` | GET | Retrieve an application defintion - `/v2/apps/search` | GET | Retrieve a list of applications `/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 diff --git a/src/app-directory/specification/appd.yaml b/src/app-directory/specification/appd.yaml index 74edb2c82..1fda4c07d 100644 --- a/src/app-directory/specification/appd.yaml +++ b/src/app-directory/specification/appd.yaml @@ -62,10 +62,10 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/ApplicationSearchResponse' + $ref: '#/components/schemas/AllApplicationsResponse' examples: - FDC3WorkbenchAppDefinitionSearchResponse: - $ref: '#/components/examples/FDC3WorkbenchAppDefinitionSearchResponse' + FDC3WorkbenchAppDefinitionAllAppsResponse: + $ref: '#/components/examples/FDC3WorkbenchAppDefinitionAllAppsResponse' '400': description: Bad request. content: @@ -131,114 +131,6 @@ paths: FDC3WorkbenchAppDefinition: $ref: '#/components/examples/FDC3WorkbenchAppDefinition' required: true - /v2/apps/search: - get: - summary: Retrieve a list of applications based on parameters provided. Depending on implementation, parameter - values should self describe search format and type (e.g. Regex) - parameters: - - in: query - name: appId - schema: - type: string - required: false - description: > - The unique application identifier located within a specific - application directory instance. - - in: query - name: name - schema: - type: string - required: false - description: > - The name of the application. - - The name should be unique within an FDC3 App Directory instance. The - exception to the uniqueness constraint is that an App Directory can - hold definitions for multiple versions of the same app. - - The same appName could occur in other directories. We are not - currently specifying app name conventions in the document. - - in: query - name: version - schema: - type: string - required: false - description: >- - Version of the application. This allows multiple app versions to be - defined using the same app name. This can be a triplet but can also - include things like 1.2.5 (BETA) - - in: query - name: title - schema: - type: string - required: false - description: >- - Optional title for the application, if missing use appName, - typically used in a launcher UI. - - in: query - name: tooltip - schema: - type: string - required: false - description: Optional tooltip description e.g. for a launcher - - in: query - name: description - schema: - type: string - required: false - description: >- - Description of the application. This will typically be a 1-2 - paragraph style blurb about the application. Allow mark up language - - in: query - name: intent_name - schema: - type: string - required: false - description: name of intent - - in: query - name: intent_displayName - schema: - type: string - required: false - description: displayName of intent - - in: query - name: intent_context - schema: - type: string - required: false - description: search contexts list - responses: - '200': - description: OK - content: - application/json: - schema: - $ref: '#/components/schemas/ApplicationSearchResponse' - examples: - FDC3WorkbenchAppDefinitionSearchResponse: - $ref: '#/components/examples/FDC3WorkbenchAppDefinitionSearchResponse' - '400': - description: Bad request. - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorDTO' - '403': - description: >- - Forbidden: Certificate authentication is not allowed for the - requested user. - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorDTO' - '500': - description: 'Server error, see response body for further details.' - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorDTO' - tags: - - Application '/v1/apps/{appId}': get: deprecated: true @@ -701,7 +593,7 @@ components: https://github.com/FDC3/Intents/blob/master/src/Intent.yaml items: $ref: '#/components/schemas/IntentV1' - ApplicationSearchResponse: + AllApplicationsResponse: properties: applications: type: array @@ -962,7 +854,7 @@ components: } } summary: A sample app definition for the FDC3 Workbench application - FDC3WorkbenchAppDefinitionSearchResponse: + FDC3WorkbenchAppDefinitionAllAppsResponse: value: applications: # you can't $ref inside a $ref so example is repeated here for search response - appId: fdc3-workbench @@ -1046,4 +938,4 @@ components: } } message: OK - summary: A sample application search response containing the FDC3 Workbench application + summary: A sample 'all applications' listing response containing the FDC3 Workbench application diff --git a/website/static/schemas/next/app-directory.yaml b/website/static/schemas/next/app-directory.yaml index 74edb2c82..1fda4c07d 100644 --- a/website/static/schemas/next/app-directory.yaml +++ b/website/static/schemas/next/app-directory.yaml @@ -62,10 +62,10 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/ApplicationSearchResponse' + $ref: '#/components/schemas/AllApplicationsResponse' examples: - FDC3WorkbenchAppDefinitionSearchResponse: - $ref: '#/components/examples/FDC3WorkbenchAppDefinitionSearchResponse' + FDC3WorkbenchAppDefinitionAllAppsResponse: + $ref: '#/components/examples/FDC3WorkbenchAppDefinitionAllAppsResponse' '400': description: Bad request. content: @@ -131,114 +131,6 @@ paths: FDC3WorkbenchAppDefinition: $ref: '#/components/examples/FDC3WorkbenchAppDefinition' required: true - /v2/apps/search: - get: - summary: Retrieve a list of applications based on parameters provided. Depending on implementation, parameter - values should self describe search format and type (e.g. Regex) - parameters: - - in: query - name: appId - schema: - type: string - required: false - description: > - The unique application identifier located within a specific - application directory instance. - - in: query - name: name - schema: - type: string - required: false - description: > - The name of the application. - - The name should be unique within an FDC3 App Directory instance. The - exception to the uniqueness constraint is that an App Directory can - hold definitions for multiple versions of the same app. - - The same appName could occur in other directories. We are not - currently specifying app name conventions in the document. - - in: query - name: version - schema: - type: string - required: false - description: >- - Version of the application. This allows multiple app versions to be - defined using the same app name. This can be a triplet but can also - include things like 1.2.5 (BETA) - - in: query - name: title - schema: - type: string - required: false - description: >- - Optional title for the application, if missing use appName, - typically used in a launcher UI. - - in: query - name: tooltip - schema: - type: string - required: false - description: Optional tooltip description e.g. for a launcher - - in: query - name: description - schema: - type: string - required: false - description: >- - Description of the application. This will typically be a 1-2 - paragraph style blurb about the application. Allow mark up language - - in: query - name: intent_name - schema: - type: string - required: false - description: name of intent - - in: query - name: intent_displayName - schema: - type: string - required: false - description: displayName of intent - - in: query - name: intent_context - schema: - type: string - required: false - description: search contexts list - responses: - '200': - description: OK - content: - application/json: - schema: - $ref: '#/components/schemas/ApplicationSearchResponse' - examples: - FDC3WorkbenchAppDefinitionSearchResponse: - $ref: '#/components/examples/FDC3WorkbenchAppDefinitionSearchResponse' - '400': - description: Bad request. - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorDTO' - '403': - description: >- - Forbidden: Certificate authentication is not allowed for the - requested user. - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorDTO' - '500': - description: 'Server error, see response body for further details.' - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorDTO' - tags: - - Application '/v1/apps/{appId}': get: deprecated: true @@ -701,7 +593,7 @@ components: https://github.com/FDC3/Intents/blob/master/src/Intent.yaml items: $ref: '#/components/schemas/IntentV1' - ApplicationSearchResponse: + AllApplicationsResponse: properties: applications: type: array @@ -962,7 +854,7 @@ components: } } summary: A sample app definition for the FDC3 Workbench application - FDC3WorkbenchAppDefinitionSearchResponse: + FDC3WorkbenchAppDefinitionAllAppsResponse: value: applications: # you can't $ref inside a $ref so example is repeated here for search response - appId: fdc3-workbench @@ -1046,4 +938,4 @@ components: } } message: OK - summary: A sample application search response containing the FDC3 Workbench application + summary: A sample 'all applications' listing response containing the FDC3 Workbench application From a53ae8928bb34e4e1449f9098446504afbe78c80 Mon Sep 17 00:00:00 2001 From: Kris West Date: Fri, 6 May 2022 17:12:59 +0100 Subject: [PATCH 32/35] changelog --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 941cd2f50..21443648e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -39,7 +39,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). * 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)) * AppD `images` field was replaced with `screenshots` to better align the applicaiton 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 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 ([#](https://github.com/finos/FDC3/pull/)) +* 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 * Removed details of the 'global' channel that was deprecated in FDC3 1.2. ([#496](https://github.com/finos/FDC3/pull/496)) From 673151acb6ef58eff29e7489c424fb4037501e8e Mon Sep 17 00:00:00 2001 From: Kris West Date: Mon, 16 May 2022 17:49:03 +0100 Subject: [PATCH 33/35] Add note that implementations MAY extend beyond the standardized AppD endpoints --- docs/app-directory/spec.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/app-directory/spec.md b/docs/app-directory/spec.md index 6ba765788..3457e633c 100644 --- a/docs/app-directory/spec.md +++ b/docs/app-directory/spec.md @@ -17,3 +17,5 @@ View the [full specification](/schemas/next/app-directory) in [OpenAPI v3.0](htt `/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. From ee2741af734c9c9a207b27c29dbd6132d7690fb6 Mon Sep 17 00:00:00 2001 From: Kris West Date: Fri, 20 May 2022 17:58:21 +0100 Subject: [PATCH 34/35] correct type on FDC3Workbech appD examples --- src/app-directory/specification/appd.yaml | 4 ++-- website/static/schemas/next/app-directory.yaml | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/app-directory/specification/appd.yaml b/src/app-directory/specification/appd.yaml index 8d23b5cd4..11eb7fbad 100644 --- a/src/app-directory/specification/appd.yaml +++ b/src/app-directory/specification/appd.yaml @@ -809,7 +809,7 @@ components: displayName: View Chart, contexts: [fdc3.instrument] }] - type: browser + type: web details: url: https://fdc3.finos.org/toolbox/fdc3-workbench/ hostManifests: { @@ -893,7 +893,7 @@ components: displayName: View Chart, contexts: [fdc3.instrument] }] - type: browser + type: web details: url: https://fdc3.finos.org/toolbox/fdc3-workbench/ hostManifests: { diff --git a/website/static/schemas/next/app-directory.yaml b/website/static/schemas/next/app-directory.yaml index 97e70ff8b..11eb7fbad 100644 --- a/website/static/schemas/next/app-directory.yaml +++ b/website/static/schemas/next/app-directory.yaml @@ -642,7 +642,7 @@ components: type: string description: >- A comma separated list of the types of contexts the intent offered by the application can process, - where the first part of the context type is the namespace e.g."fdc3.contact", "org.symphony.contact" + where the first part of the context type is the namespace e.g."fdc3.contact, org.symphony.contact" resultType: type: string description: >- @@ -703,7 +703,7 @@ components: LaunchDetails: description: >- The type specific launch details of the application. These details are intended to be - vendor-agnostic and _MAY_ be duplicated or overridden by details provided in the hostManifests + vendor-agnostic and MAY be duplicated or overridden by details provided in the hostManifests object for a specific host. oneOf: - $ref: '#/components/schemas/WebAppDetails' @@ -809,7 +809,7 @@ components: displayName: View Chart, contexts: [fdc3.instrument] }] - type: browser + type: web details: url: https://fdc3.finos.org/toolbox/fdc3-workbench/ hostManifests: { @@ -893,7 +893,7 @@ components: displayName: View Chart, contexts: [fdc3.instrument] }] - type: browser + type: web details: url: https://fdc3.finos.org/toolbox/fdc3-workbench/ hostManifests: { From 67fe65a149e6e29da59f4a190417601bf2eb70ea Mon Sep 17 00:00:00 2001 From: Kris West Date: Wed, 25 May 2022 12:38:29 +0100 Subject: [PATCH 35/35] Apply suggestions from code review Co-authored-by: Hugh Troeger --- CHANGELOG.md | 3 +-- src/app-directory/specification/appd.yaml | 4 ++-- website/static/schemas/next/app-directory.yaml | 4 ++-- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 68ef02b0d..c90dd826d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -21,8 +21,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). * 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)) -* Add `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 `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)) +* Add `IntentDeliveryFailed` to the `ResolveError` enumeration to be used when delivery of an intent and context to a targeted 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)) diff --git a/src/app-directory/specification/appd.yaml b/src/app-directory/specification/appd.yaml index 11eb7fbad..c2a7e4913 100644 --- a/src/app-directory/specification/appd.yaml +++ b/src/app-directory/specification/appd.yaml @@ -673,7 +673,7 @@ components: items: type: string description: >- - A comma sepaarted list of the types of contexts the intent offered by the application can process. + A comma separated list of the types of contexts the intent offered by the application can process. where the first part of the context type is the namespace e.g."fdc3.contact, org.symphony.contact" customConfig: type: object @@ -746,7 +746,7 @@ components: description: Arguments that must be passed on the command line to launch the app in the expected configuration. additionalProperties: false OnlineNativeAppDetails: - description: 'Properties used to launch a native apps with `type: onelineNative` that have an online launcher, e.g. online ClickOnce app deployments.' + description: 'Properties used to launch a native apps with `type: onlineNative` that have an online launcher, e.g. online ClickOnce app deployments.' required: - url properties: diff --git a/website/static/schemas/next/app-directory.yaml b/website/static/schemas/next/app-directory.yaml index 11eb7fbad..c2a7e4913 100644 --- a/website/static/schemas/next/app-directory.yaml +++ b/website/static/schemas/next/app-directory.yaml @@ -673,7 +673,7 @@ components: items: type: string description: >- - A comma sepaarted list of the types of contexts the intent offered by the application can process. + A comma separated list of the types of contexts the intent offered by the application can process. where the first part of the context type is the namespace e.g."fdc3.contact, org.symphony.contact" customConfig: type: object @@ -746,7 +746,7 @@ components: description: Arguments that must be passed on the command line to launch the app in the expected configuration. additionalProperties: false OnlineNativeAppDetails: - description: 'Properties used to launch a native apps with `type: onelineNative` that have an online launcher, e.g. online ClickOnce app deployments.' + description: 'Properties used to launch a native apps with `type: onlineNative` that have an online launcher, e.g. online ClickOnce app deployments.' required: - url properties: