This is now addressed in 3.0.0.RC4
https://github.com/finos/symphony-bdk-java/releases/tag/v3.0.0.RC4
Thanks for the feedback - we've channeled this to the product team and this looks to be an improvement item for the desktop app, which will allow for better notifications rendering in the future.
Our JIRA integration is a commercial offering. Please contact your account manager to find out more.
This change was deliberate to support a proper structure for command arguments that could be parameterised and typed. The BDK never officially supported regular expressions so it was by chance that this worked for you in the versions prior. If you would like to use custom matchers, you can choose to extend CommandActivity
.
@Component
public class HelloCommand extends CommandActivity<CommandContext> {
@Autowired
private MessageService messageService;
@Override...
You can either use the Activities API and specify an @mention argument, or use a manual RealTimeEventListener. The User ID is contained within the event but you'll need an additional call to obtain other user attributes like email address.
Activities API
activities = bdk.activities()
@activities.slash(command = "/hello1 {@user}", mention_bot = False)
async def hello(context: CommandContext):
user_id = context.arguments.get_mention('user').user_id
email = (await ...
The old BDK 1.0 guides have all been removed and replaced by new guides that make use of the new App Developer Kit. Please have a look - it should make developing extension apps much easier than before.
https://docs.developers.symphony.com/dev-tools/app-developer-kit/build-a-basic-extension-app
Please review the new App Developer Kit guide on how to build a basic extension app with added buttons and handlers.
https://docs.developers.symphony.com/dev-tools/app-developer-kit/build-a-basic-extension-app
Disabled elements are not supported as of writing unfortunately
Please review the new guide in the App Developer Kit section on message renderers.
https://docs.developers.symphony.com/dev-tools/app-developer-kit/build-an-extension-app-with-message-renderers
For non-development related queries, especially if it impacts bots in production, please email support@symphony.com instead for a timely response.
Please review the migration guide here: https://symphony-bdk-java.finos.org/migration.html
It is also useful to get a good understanding of the capabilities of BDK 2.0 as some concepts did not exist in the old SDK.
Getting Started: https://docs.developers.symphony.com/bots/getting-started/bdk
Reference: https://docs.developers.symphony.com/dev-tools/bdk-java
The ECP SDK returns a standard Javascript promise so you either use await
or then()
to retrieve the response, in which streamId
is in the object root.
window.symphony.createRoom(
'Room Name',
[ 123456789, 123456788, 123456787 ],
{},
'.ecp-div'
).then((response) => console.log(response.streamId));
Please refer to Jinja2 documentation. Jinja2 is packaged separately from the Python BDK as an example in the generator project only to demonstrate how templating can be achieved. You are expected to have prior experience with Jinja2 or templating in general to employ its use with the BDK.
The package generator-symphony
is deprecated. You should instead be running: npm i -g yo @finos/generator-symphony
and the launch command should be yo @finos/symphony
.
You should also try not to run npm with sudo
. Setup a user-specific globals package location where possible.
The warning you received is not about the datafeed configuration timeout, but rather the excessive 300s of waiting. You should instead use a scheduler feature of some sort to perform the tasks in your else block so that this on_message_sent def returns immediately. This avoids the situation where the same incoming message gets requeued and you perform duplicate processing. If any member of the help team respond, you can then cancel the scheduled task.
Use the UserService
to lookup the user id and obtain profile details like username.
Java BDK example, assuming users
is an instance of UserService
:
users.listUsersByIds(List.of(123456L)).get(0).getUsername()
The current BDK Spring Boot Starters are still based on Spring Boot 2 but you should be able to use them in Spring Boot 3 projects. There are ongoing efforts to eventually transit the entire BDK Java project to Java 17 and have the BDK Spring Starters migrate to Spring Boot 3 as well.
MembershipList
is an object. The actual list is in a field named value
.
members = await bdk.streams().list_room_members(stream_id)
for member in members.value:
print(member.id)
Unfortunately, middle-align
is not a supported inline style. Here are some workarounds:
Use padding for cells in rows that contain a button
This helps a little, though the positioning is not universal, depending on user layout preferences (condensed vs spacious etc)
<tr>
<td style="padding:0.4rem 0.2rem">Something goes here</td>
<td><button name="x">Hello</button</td>
</tr>
Use divs to replicate tables
A lot more markup, but alignment ships automatically
...
Hi @<1558879210431320064|Charlie Jones>, there is no default feature that does what you suggest as the point of Symphony is to reduce email as much as possible, not divert it. However, this is still technically possible by writing a bot that polls on an email inbox then constructs and sends a Symphony message whenever a new email arrives.
Hi @<1564627635714134016|Stephen Cunningham>, if you're asking about a customer product trial, we do not offer that. This developer platform is meant for education only.
Hi @<1568015779889156096|Shifny Ahmed>, there was a glitch in the badge issuing process when you completed your exam which should be resolved now. I've just reissued your badge so it should be fine now.
You can try categorising your checkboxes to divide them into a multi-step process, then use the update message endpoint to create a wizard-style experience. Unfortunately the entity limit per message is what it is and you can't really change that.
You didn't share your method body, but I suspect you're trying to echo the incoming message back into the room. The exception you see is not due to the incoming format but the outgoing format.
When sending messages, all special characters have to be escaped, as you have found. You can review the docs at this page:
https://docs.developers.symphony.com/building-bots-on-symphony/messages/overview-of-messageml#xml-formatting
This is more of a cultural rather than technical issue that you should discuss with the users on their preferred experience. There are broadly two ways to go about this:
Option 1: Maintain the user-group mappings outside of Symphony, then lookup the list of users upon the need to send alerts, sending individual 1-to-1 IMs to affected users. Users only see that single IM with the bot, regardless of alert type.
Option 2: As you suggested, create 1 room per alert (or category) type...
This issue is now fixed with the following PR and published as of release 2.4.0.
From your use of underscores, I assume you're using the Python BDK.
You can use the slash command decorator and include an @mention as an argument in your pattern.
https://symphony-bdk-python.finos.org/markdown/activity-api.html#slash-command-pattern-format
For example,
@activities.slash("/ping {@person}")
async def on_echo_mention(context: CommandContext):
person = context.arguments.get_mention("person")
name = person.user_display_name
uid = person.user_id
...
The BDKs serve to ease building of Symphony bots and do not actually deliver any webhook functionality, so it would be incorrect to say it exists in the Java version. What does exist is a Spring Boot integration for the Java BDK, which uses Spring Boot Core. This can be changed to Spring Boot Web that contains an embedded web server that can be used to listen on a webhook. Symphony does not maintain nor provide support for that so you will have to refer to Spring's documentation.
Likewise,...
No, that is not possible. It also does not sound intuitive or performant to embed a resource heavy legacy application into Symphony.
Unfortunately, not at this point in time. That endpoint is used to list every entitlement feature available in the current pod so it seems unlikely to be used in an automation context. Maybe you can elaborate on the workflow you are trying to achieve and file it as a feature request on the BDK repo.
https://github.com/finos/symphony-bdk-java/issues
What is available is the user features endpoint, available via userService.getFeatureEntitlements(long userId)
as well as the ability to u...