You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
49663 fix bug with duplicate template names (finos#39)
* fix issue with editing template name and duplicate name check
* don't allow save on enter if save disabled
* swap out yarn.lock for package-lock.json and update
* fixing a couple of minor build warnings
Copy file name to clipboardExpand all lines: CHANGELOG.md
+7Lines changed: 7 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -10,6 +10,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
10
10
11
11
### Changed
12
12
13
+
* Updated definition of the `Instrument` context type to include optional market identifiers ([#819](https://github.com/finos/FDC3/pull/819))
14
+
13
15
### Deprecated
14
16
15
17
### Fixed
@@ -96,6 +98,11 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
96
98
* Updated Methods.ts to support the updated signature for `addContextListener` introduced in FDC3 1.2 ([#462](https://github.com/finos/FDC3/pull/462))
97
99
* Clarified the description of the addContextListener functions from the Desktop Agent and Channel APIs in spec and docs. ([#492](https://github.com/finos/FDC3/pull/492))
98
100
* Clarified that implementing `fdc3.getInfo()` is required for compliance with the FDC3 standard ([#515](https://github.com/finos/FDC3/pull/515))
101
+
* Corrected syntax errors in valuation schema ([#834](https://github.com/finos/FDC3/pull/834))
102
+
* Clarified that API errors are promises rejected with a JavaScript (or language appropriate) Error Object with a message chosen from the error enumerations. ([#843](https://github.com/finos/FDC3/pull/843))
103
+
* Clarified that `findIntent` functions should return the `ResolveError.NoAppsFound` error, rather than an `AppIntent` with an empty `apps` array when no apps are fund during intent resolution. ([#843](https://github.com/finos/FDC3/pull/843))
104
+
* Clarified spec requirements for registration of intent handlers (SHOULD support `interop.intents.listensFor` in an appD record, may support other routes including dynamic registration at runtime) ([#844](https://github.com/finos/FDC3/pull/844))
105
+
* Corrected schema definition for appD `interop.intents.listensFor` element ([#847](https://github.com/finos/FDC3/pull/847))
[](https://bestpractices.coreinfrastructure.org/projects/6579)
11
12
12
13
FDC3 aims to provide an open standard for interoperability on the financial desktop. This includes standardized verbs to invoke actions between applications (called "intents"), a standardized data format, an OpenAPI app directory standard, and standardized API operations.
Copy file name to clipboardExpand all lines: docs/api/ref/Channel.md
+2-2Lines changed: 2 additions & 2 deletions
Original file line number
Diff line number
Diff line change
@@ -132,7 +132,7 @@ public broadcast(context: Context): Promise<void>;
132
132
133
133
Broadcasts a context on the channel. This function can be used without first joining the channel, allowing applications to broadcast on both App Channels and User Channels that they aren't a member of.
134
134
135
-
If the broadcast is denied by the channel or the channel is not available, the method will return an `Error` with a string from the [`ChannelError`](ChannelError) enumeration.
135
+
If the broadcast is denied by the channel or the channel is not available, the promise will be rejected with an `Error` with a`message` string from the [`ChannelError`](ChannelError) enumeration.
136
136
137
137
Channel implementations should ensure that context messages broadcast by an application on a channel should not be delivered back to that same application if they are joined to the channel.
138
138
@@ -173,7 +173,7 @@ If no _context type_ is provided, the most recent context that was broadcast on
173
173
174
174
It is up to the specific Desktop Agent implementation whether and how recent contexts are stored. For example, an implementation could store context history for a channel in a single array and search through the array for the last context matching a provided type, or context could be maintained as a dictionary keyed by context types. An implementation could also choose not to support context history, in which case this method will return `null` for any context type not matching the type of the most recent context.
175
175
176
-
If getting the current context fails, the promise will return an `Error` with a string from the [`ChannelError`](ChannelError) enumeration.
176
+
If getting the current context fails, the promise will be rejected with an `Error` with a`message` string from the [`ChannelError`](ChannelError) enumeration.
Returns a `Channel`with an auto-generated identity that is intended forprivate communication between applications. Primarily used to create channels that will be returned to other applications via an IntentResolution for a raised intent.
194
195
195
-
If the `PrivateChannel` cannot be created, the returned promise MUST be rejected with an error string from the [`ChannelError`](Errors#channelerror) enumeration.
196
+
If the `PrivateChannel` cannot be created, the returned promise MUST be rejected with an `Error` object with a `message` chosen from the [`ChannelError`](Errors#channelerror) enumeration.
196
197
197
198
The `PrivateChannel` type is provided to support synchronisation of data transmitted over returned channels, by allowing both parties to listen for events denoting subscription and unsubscription from the returned channel. `PrivateChannels` are only retrievable via raising an intent.
198
199
@@ -247,7 +248,7 @@ Find all the available instances for a particular application.
247
248
248
249
If there are no instances of the specified application the returned promise should resolve to an empty array.
249
250
250
-
If the request fails for another reason, the promise will returnan `Error`with a string from the `ResolveError` enumeration.
251
+
If the request fails for another reason, the promise MUST be rejected withan `Error`Objectwith a `message` chosen from the `ResolveError` enumeration.
Find out more information about a particular intent by passing its name, and optionally its context and/or a desired result context type.
269
270
270
271
`findIntent` is effectively granting programmatic access to the Desktop Agent's resolver.
271
-
It returns a promise resolving to the intent, its metadata and metadata about the apps and app instances that are registered to handle it.
272
-
This can be used to raise the intent against a specific app or app instance.
272
+
It returns a promise resolving to an `AppIntent` which provides details of the intent, its metadata and metadata about the apps and app instances that are registered to handle it. This can be used to raise the intent against a specific app or app instance.
273
273
274
-
If the resolution fails, the promise will return an `Error` with a string from the [`ResolveError`](Errors#resolveerror) enumeration.
274
+
If the resolution fails, the promise MUST be rejected with an `Error` Object with a `message` chosen from the [`ResolveError`](Errors#resolveerror) enumeration. This includes the case where no apps are found that resolve the intent, when the `ResolveError.NoAppsFound` message should be used.
275
275
276
276
Result types may be a type name, the string `"channel"` (which indicates that the app will return a channel) or a string indicating a channel that returns a specific type, e.g. `"channel<fdc3,instrument>"`. If intent resolution to an app returning a channel is requested, the desktop agent MUST include both apps that are registered as returning a channel and those registered as returning a channel with a specific type in the response.
277
277
@@ -349,7 +349,7 @@ Find all the available intents for a particular context, and optionally a desire
349
349
`findIntentsByContext` is effectively granting programmatic access to the Desktop Agent's resolver.
350
350
A promise resolving to all the intents, their metadata and metadata about the apps and app instances that registered as handlers is returned, based on the context types the intents have registered.
351
351
352
-
If the resolution fails, the promise will returnan `Error`with a string from the [`ResolveError`](Errors#resolveerror) enumeration.
352
+
If the resolution fails, the promise MUST be rejected withan `Error`Objectwith a `message` chosen from the [`ResolveError`](Errors#resolveerror) enumeration. This includes the case where no intents with associated apps are found, when the `ResolveError.NoAppsFound` message should be used.
353
353
354
354
The optional `resultType` argument may be a type name, the string `"channel"` (which indicates that the app will return a channel) or a string indicating a channel that returns a specific type, e.g. `"channel<fdc3,instrument>"`. If intent resolution to an app returning a channel is requested without a specified context type, the desktop agent MUST include both apps that are registered as returning a channel and those registered as returning a channel with a specific type in the response.
Returns a `Channel` object for the specified channel, creating it (as an _App_ channel) if it does not exist.
492
492
493
-
If the Channel cannot be created or access was denied, the returned promise MUST be rejected with an error string from the `ChannelError` enumeration.
493
+
If the Channel cannot be created or access was denied, the returned promise MUST be rejected with an `Error` Object with a `message` chosen from the `ChannelError` enumeration.
494
494
495
495
#### Example
496
496
@@ -541,7 +541,7 @@ If the channel already contains context that would be passed to context listener
541
541
542
542
An app can only be joined to one channel at a time.
543
543
544
-
Rejects with an error if the channel is unavailable or the join request is denied. The error string will be drawn from the [`ChannelError`](Errors#channelerror) enumeration.
544
+
If an error occurs (such as the channel is unavailable or the join request is denied) the promise MUST be rejected with an `Error` Object with a `message` chosen from the [`ChannelError`](Errors#channelerror) enumeration.
Launches an app, specified via an [`AppIdentifier`](Metadata#appidentifier) object.
593
+
Launches an app, specified via an [`AppIdentifier`](Types#appidentifier) object.
594
594
595
595
The `open` method differs in use from [`raiseIntent`](#raiseintent). Generally, it should be used when the target application is known but there is no specific intent. For example, if an application is querying an App Directory, `open` would be used to open an app returned in the search results.
596
596
597
597
**Note**, if the intent, context and target app name are all known, it is recommended to instead use [`raiseIntent`](#raiseintent) with the `target` argument.
598
598
599
599
If a [`Context`](Types#context) object is passed in, this object will be provided to the opened application via a contextListener. The Context argument is functionally equivalent to opening the target app with no context and broadcasting the context directly to it.
600
600
601
-
Returns an [`AppIdentifier`](Metadata#appidentifier) object with the `instanceId` field set to identify the instance of the application opened by this call.
601
+
Returns an [`AppIdentifier`](Types#appidentifier) object with the `instanceId` field set to identify the instance of the application opened by this call.
602
602
603
-
If opening errors, it returns an `Error` with a string from the [`OpenError`](Errors#openerror) enumeration.
603
+
If an error occurs while opening the app, the promise MUST be rejected with an `Error`Object with a `message` chosen from the [`OpenError`](Errors#openerror) enumeration.
604
604
605
605
#### Example
606
606
@@ -616,7 +616,7 @@ let instanceIdentifier = await fdc3.open(appIdentifier, context);
616
616
#### See also
617
617
618
618
* [`Context`](Types#context)
619
-
* [`AppIdentifier`](Metadata#AppIdentifier)
619
+
* [`AppIdentifier`](Types#appidentifier)
620
620
* [`AppMetadata`](Metadata#appmetadata)
621
621
* [`OpenError`](Errors#openerror)
622
622
@@ -631,7 +631,7 @@ Raises a specific intent for resolution against apps registered with the desktop
631
631
The desktop agent MUST resolve the correct app to target based on the provided intent name and context data. If multiple matching apps are found, a method for resolving the intent to a target app, such as presenting the user with a resolver UI allowing them to pick an app, SHOULD be provided.
632
632
Alternatively, the specific app or app instance to target can also be provided. A list of valid target applications and instances can be retrieved via [`findIntent`](DesktopAgent#findintent).
633
633
634
-
If a target app for the intent cannot be found with the criteria provided or the user either closes the resolver UI or otherwise cancels resolution, an `Error` with a string from the [`ResolveError`](Errors#resolveerror) enumeration is returned. If a specific target `app` parameter was set, but either the app or app instance is not available then the `ResolveError.TargetAppUnavailable` or `ResolveError.TargetInstanceUnavailable`errors MUST be returned.
634
+
If a target app for the intent cannot be found with the criteria provided or the user either closes the resolver UI or otherwise cancels resolution, the promise MUST be rejected with an `Error`object with a `message` chosen from the [`ResolveError`](Errors#resolveerror) enumeration. If a specific target `app` parameter was set, but either the app or app instance is not available, the promise MUST be rejected with an `Error` object with either the `ResolveError.TargetAppUnavailable` or `ResolveError.TargetInstanceUnavailable`string as its `message`.
635
635
636
636
If you wish to raise an intent without a context, use the `fdc3.nothing` context type. This type exists so that apps can explicitly declare support for raising an intent without context.
637
637
@@ -674,8 +674,9 @@ try {
674
674
675
675
#### See also
676
676
677
+
* [Raising Intents](../spec#raising-intents)
677
678
* [`Context`](Types#context)
678
-
* [`AppIdentifier`](Metadata#AppIdentifier)
679
+
* [`AppIdentifier`](Types#AppIdentifier)
679
680
* [`IntentResult`](Types#intentresult)
680
681
* [`IntentResolution`](Metadata#intentresolution)
681
682
* [`ResolveError`](Errors#resolveerror)
@@ -696,7 +697,7 @@ Using `raiseIntentForContext` is similar to calling `findIntentsByContext`, and
696
697
697
698
Returns an `IntentResolution` object, see [`raiseIntent()`](#raiseintent) for details.
698
699
699
-
If a target app for the intent cannot be found with the criteria provided or the user either closes the resolver UI or otherwise cancels resolution, an `Error` with a string from the [`ResolveError`](Errors#resolveerror) enumeration is returned. If a specific target `app` parameter was set, but either the app or app instance is not available then the `ResolveError.TargetAppUnavailable` or `ResolveError.TargetInstanceUnavailable`errors MUST be returned.
700
+
If a target intent and app cannot be found with the criteria provided or the user either closes the resolver UI or otherwise cancels resolution, the promise MUST be rejected with an `Error`object with a `message` chosen from the [`ResolveError`](Errors#resolveerror) enumeration. If a specific target `app` parameter was set, but either the app or app instance is not available, the promise MUST be rejected with an `Error` object with either the `ResolveError.TargetAppUnavailable` or `ResolveError.TargetInstanceUnavailable`string as its `message`.
Copy file name to clipboardExpand all lines: docs/api/ref/Errors.md
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -2,7 +2,7 @@
2
2
title: Errors
3
3
---
4
4
5
-
Some FDC3 API operations return promises that can result in errors.
5
+
FDC3 API operations may sometimes result in an error, which must be returned to the caller. Errors should be returned by rejecting the promise returned by the API with a JavaScript `Error` object (or equivalent for the language of the implementation). The `Error` Object's message should be chosen from the appropriate Error enumeration below.
0 commit comments