Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support broadcast in FDC3 Action #1353

Open
symphony-jean-michael opened this issue Sep 13, 2024 · 0 comments
Open

Support broadcast in FDC3 Action #1353

symphony-jean-michael opened this issue Sep 13, 2024 · 0 comments
Labels
enhancement New feature or request

Comments

@symphony-jean-michael
Copy link
Contributor

symphony-jean-michael commented Sep 13, 2024

Enhancement Request

Use Case:

Today, in Symphony, the user can send a chat message using the FDC3 StartChat intent.
ℹ️ The format of the message can be found here : https://fdc3.finos.org/docs/context/ref/Message.

A great FDC3 feature is the ability to attach entities to the message. This is defined in the FDC3 action.

Example: The user can send an FDC3 message containing a button. When the user clicks on the button, it will trigger the FDC3 action attached to the button. This is the entity defined in FDC3.action.
See example in the standard: https://fdc3.finos.org/docs/context/ref/Action#example

This works perfectly. But today, some of our customers would also like to broadcast a context instead of raising an intent. But the current FDC3 action format doesn't allow this for now.

In the FDC3 specification, you can read :

The action may be completed by calling fdc3.raiseIntent() with the specified Intent and Context, or, if only a context is specified, by calling fdc3.raiseIntentForContext()

(From https://fdc3.finos.org/docs/context/ref/Action)

Workflow Description

So, we would like to suggest an update of the FDC3 action to support the broadcast.

We propose to modify the current table of FDC3 Action properties. Our modifications are shown in bold.

Property Type Required Example Value
type string Yes 'fdc3.action'
action string No 'broadcast' or 'raiseIntent'
title string Yes 'Click to view Chart'
intent string No 'ViewChart'
context string Yes See Below
channel object No myChannel
channel.id string Yes 'Channel 1'
app object No 'myApp'
app.appId string Yes 'app1'
app.instanceId string No 'instance1'

The action field indicates the type of action:

  • raiseIntent : If no action or raiseIntent is specified, then the current default behaviour would be used with fdc3.rainseIntent / fdc3.raiseIntentForContext
  • broadcast : If broadcast action is specified, it will call fdc3.getOrCreateChannel('Channel 1')to retrieve the channel, then broadcast the context to that channel with channel.broadcast(context). If no, channel has been specified, it will try to broadcast to the current channel (fdc3.getCurrentChannel())

Workflow Examples

Here is the Action example updated :

const action = {
    type: 'fdc3.action',
    title: 'Click to view Chart',
    action: 'broadcast',      <========= NEW
    channel: {      <========= NEW
      id : 'Channel 1'
    },
    context {
        type: 'fdc3.chart',
        instruments: [
            {
                type: 'fdc3.instrument',
                id: {
                    ticker: 'EURUSD'
                }
            }
        ],
        range: {
            type: 'fdc3.dateRange',
            starttime: '2020-09-01T08:00:00.000Z',
            endtime: '2020-10-31T08:00:00.000Z'
        },
        style: 'candle'
    },
    app {
        appId: 'MyChartViewingApp',
        instanceId: 'instance1'
    }
}

What do you think ?
Thank you

@symphony-jean-michael symphony-jean-michael added the enhancement New feature or request label Sep 13, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant