getAppMetadata
Desktop Agent bridging message exchange for a getAppMetadata
API call on the DesktopAgent
. Generated by API calls:
Message Exchange Type: Request Response (single)
E.g.
let appIdentifier = { appId: "myApp@my.appd.com", desktopAgent: "agent-B" }
let appMetadata = await fdc3.getAppMetadata(appIdentifier);
info
fdc3.getAppMetadata
calls should only involve the Desktop Agent Bridge where a desktopAgent
field appears in the AppIdentifier being queried, all other calls should be handled locally by the Desktop Agent. Hence, the payload.app.desktopAgent
is required on all requests.
Message exchange
Request format
Request message schemas
- https://fdc3.finos.org/schemas/next/bridging/getAppMetadataAgentRequest.schema.json
- https://fdc3.finos.org/schemas/next/bridging/getAppMetadataBridgeRequest.schema.json
Example
Outward message to the bridge:
// agent-A -> DAB
{
"type": "getAppMetadataRequest",
"payload": {
"app": {
{ "appId": "myApp@my.appd.com", "desktopAgent": "agent-B" }
}
},
"meta": {
"requestUuid": "<requestUuid>",
"timestamp": "2020-03-...",
"source": {
"appId": "AChatApp",
"instanceId": "02e575aa-4c3a-4b66-acad-155073be21f6"
}
}
}
which is repeated on to the target agent as:
// DAB -> agent-B
{
"type": "getAppMetadataRequest",
"payload": {
"app": {
{ "appId": "myApp@my.appd.com", "desktopAgent": "agent-B" }
}
},
"meta": {
"requestUuid": "<requestUuid>",
"timestamp": "2020-03-...",
"source": {
"appId": "AChatApp",
"instanceId": "02e575aa-4c3a-4b66-acad-155073be21f6",
"desktopAgent": "agent-A" //added by DAB
}
}
}
Response format
Response message schemas
- https://fdc3.finos.org/schemas/next/bridging/getAppMetadataAgentResponse.schema.json
- https://fdc3.finos.org/schemas/next/bridging/getAppMetadataAgentErrorResponse.schema.json
- https://fdc3.finos.org/schemas/next/bridging/getAppMetadataBridgeResponse.schema.json
- https://fdc3.finos.org/schemas/next/bridging/getAppMetadataBridgeErrorResponse.schema.json
Example
Response message from a Desktop Agent:
// agent-B -> DAB
{
"type": "getAppMetadataResponse",
"payload": {
"appMetadata": {
"appId": "myApp@my.appd.com",
"name": "myApp",
"version": "1.0",
"title": "My example application",
"tooltip": " A tooltip for the application that can be used to render UI elements.",
"description": "A longer, multi-paragraph description for the application that could include mark-up.",
"icons": [..],
"screenshots": [...]
}
},
"meta": {
"requestUuid": "<requestUuid>",
"responseUuid": "<responseUuidAgentB>",
"timestamp": "2020-03-...",
}
}
The bridge receives the response, augments the appMetadata with a desktopAgent
field, producing the following response which it sends back to agent-A:
// DAB -> agent-A
{
"type": "getAppMetadataResponse",
"payload": {
"appMetadata": {
"appId": "myApp@my.appd.com",
"name": "myApp",
"version": "1.0",
"title": "My example application",
"tooltip": " A tooltip for the application that can be used to render UI elements.",
"description": "A longer, multi-paragraph description for the application that could include mark-up.",
"icons": [..],
"screenshots": [...],
"desktopAgent": "agent-B" //added by DAB
}
},
"meta": {
"requestUuid": "<requestUuid>",
"responseUuid": "<responseUuidAgentB>",
"timestamp": "2020-03-...",
"sources": [{ "desktopAgent": "agent-B" }]
}
}