-
Notifications
You must be signed in to change notification settings - Fork 135
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add additional properties to AppMetadata type #240
Comments
@sean-ciq we discussed and voted on this this during the 1.1 time frame - we don't want the full app metadata exposed through the JS API, as a lot of it is hidden or unnecessary information for FDC3-enabled apps themselves. If the additional properties are needed by a framework implementation, they can be obtained by using the AppD REST API. Could you elaborate on the use case for adding all of these properties to the JS API? Also, it is worth pointing out that there is nothing in the spec preventing a framework from providing these values on the return object, we just didn't want to mandate it via the API spec. |
The other issue raised by this is that |
@rikoe one of the issues we've run into is that the desktop agent can work with more than one AppD and an AppD can have more than one application with the same The AppD spec does deal with this however, via the AppId field, which is the only unique identifier for an app (see: https://fdc3.finos.org/docs/1.0/appd-discovery#application-identifier). By not supporting the appId field, the desktop agent is both unable to return AppMetadata objects which uniquely identify apps from the findIntent(sByContext) API calls or to specify targets in raiseIntent that uniquely identify the target - meaning you have to use a resolver UI (which was not the point of raiseIntent with a target). Personally, I don't think that the proposed change to raiseintent means that it can now have multiple ambiguous meanings. It's still trying to specify a target application whether you specify a string or AppMetadata Object - it's just been allowed to specify that target in more than one format (in part for backwards comparability with 1.1). Another approace would have been to support passing in an appId, but that would require a new parameter for differentiation. It seems easier and more flexible to accept AppMetadata as you can detect it by its structure ( As for the other fields - supporting them as optional parameters allows resolver UIs etc. to make use of them. It didn't seem excessive to us to expose that (nor does it make it a requirement as they are optional in the proposal). However, we appreciate that this issue was already reviewed and voted on and will happily respect that - but we feel that at least the |
In AppD, there is the concept of name spacing the app name / id with the app directory identifier to produce a fully qualified name for the app. E.g. [email protected]. This is definitely a bit vague and in need of some clarification & updating now that we have stronger use cases in this area. In general, app.name being a relative name and app.appId being fully qualified seems to make sense and be in line with the spec. This means that a Desktop Agent should return and handle fully qualified names when it is handling multiple app directories. WRT app versions. Is there a reason that these couldn't be differentiated by name? |
If we look at the (AppD) definitions of appId, name and version in the current spec:
We can see that |
I concur with Kris on this. There would need to be the additional properties of |
👍 on this this thread. i think the very strong example here is on What the spec never explicitly states (and probably should) that the But as others have mentioned, since the latter may be ambiguous or duplicated, then opening an application by name is potentially problematic. An overload of |
This issue has been updated per the WG meeting on 9/24/2020 |
Enhancement Request
Use Case:
An application developer, in a situation where more than one App Directory exists and the names of applications are not unique, needs more information about applications returned from
findIntent()
orfindIntentsByContext()
to successfully raise an intent to a specifiedtarget
. We recommend bringing in fields from the AppD application definition that differentiate different apps with the same name:appId
: the fully qualified appID differentiates based on version and the appDirectory and hence should be globally uniqueversion
: the value that differentiates different copies of an app within a single app directoryWorkflow Description
findIntent()
orfindIntentsByContext()
name
value).Workflow Examples
name
value, the application passes an AppMetadata object containing anappId
value orname
andversion
, uniquely identifying the appAdditional Information
Note the following definitions in the AppD specification for an application record:
Integrating additional properties defined in the App D specification provides an additional way for applications to determine and specify intent targets. The argument for returning the entire AppMetadata object from
findIntents()
&findIntentsByContext()
and others is based upon deference to the application. If an application receives a list of available apps, there is currently no identifier other than thename
property. This inability to properly identify other applications by one or more properties breaks down when:Proposed Additions
Current
AppMetadata
interface:New interface:
The text was updated successfully, but these errors were encountered: