Examples: query, "exact match", wildcard*, wild?ard, wild*rd
Fuzzy search: cake~ (finds cakes, bake)
Term boost: "red velvet"^4, chocolate^2
Field grouping: tags:(+work -"fun-stuff")
Escape special characters +-&|!(){}[]^"~*?:\ - e.g. \+ \* \!
Range search: properties.timestamp:[1587729413488 TO *] (inclusive), properties.title:{A TO Z}(excluding A and Z)
Combinations: chocolate AND vanilla, chocolate OR vanilla, (chocolate OR vanilla) NOT "vanilla pudding"
Field search: properties.title:"The Title" AND text
Create multiple chat-bot instances for different pods

Hi there,

I have read the documentation for managing multiple bot instances within a single project: https://docs.developers.symphony.com/developer-tools/developer-tools/bdk-2.0-java#managing-multiple-bots

As far as I understand, if we will be managing for example, 3 bot instances for 3 pods/clients that have Symphony of their own and based from documentation above more likely we will have something in the code:

// Bot #1
final SymphonyBdk bot1 = new SymphonyBdk(loadFromClasspath("/config_1.yaml"));

//Bot #2
final SymphonyBdk bot2 = new SymphonyBdk(loadFromClasspath("/config_2.yaml"));

//Bot #3
final SymphonyBdk bot3 = new SymphonyBdk(loadFromClasspath("/config_3.yaml"));

Where at the minimum, the format for each yaml file is as follow:

host: develop2.symphony.com
    username: devcertbotX
        path: rsa/devcertbotX-private.pem

Given this, can you help me on the following items:

  1. Can we (our company) just provide 1 public key from our side to these 3 customers we have?
  2. When they are creating our service account access on their respectice pod, what entitlements/roles do we need if we wanted the following:
    a. Search users by email/id
    b. Chatbot to automate chat room creation and add users
    c. Search chat rooms created by the chatbot only
    d. To be able to retrieve all messages on the chat room created by the chatbot
Posted one year ago
Votes Newest


Hi Jun King,

Thank you for your question,

You have correctly described the example code for running three bot instances - if you use three different configuration files.

However, it is strongly advised that you do not use the same private/public key pair across three bot instances for three different organisations using Symphony - as this would pose a potential security issue from an authentication point of view. It would be better suited to have three seprate private/public key pair set up for each organisation's Symphony Pod environment to avoid any conflict with the authentication and potential security issues.

You should use unique private/public key pair with individual Symphony Service Account to manage the authentication process for each of the Symphony Pod environment - this will ensure each authentication session for the Service Account is strictly between the bot application and the organisation's Symphony Pod environment.

To better understand the respective Bot Permissions & Entitlements - you will find the specific roles described here:

The scale of the precise permission will depends on the organisation & their Symphony Pod Administrator and whether they will permit the necessary permissions for the bot to carry out the planned function in the ways you have described.

On the Symphony REST API documentation - it states precisely what is the required bot permission needed for the Service Account to execute the request successfully.

Please let me know if you have any additional questions.

Kind regards

Posted one year ago
Kaosar Ahmed
310 × 3 Administrator

Wow - that's really a detailed explanation! Thank you for sharing the recommended approach here. All is good.

Jun King Minon   one year ago Report
1 Answer
one year ago
one year ago