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
Test Extension App in Sandbox

I'm trying to create an extension app, using the example here:

I can see the web app in my browser (outside Symphony) and I can see in the readme.md that I should upload the bundle to my pod using the querystring.

However, at this stage I'm working in the develop2 sandbox. Can I upload and test my extension app from there or do I have to have a corporate pod before I can do this?


Votes Newest


Firstly, you should note that the repository you referenced is rather old and no longer maintained. Nevertheless, most concepts should still apply today. You can find the latest on the Extension API at the developer documentation site here: https://docs.developers.symphony.com/building-extension-applications-on-symphony/overview-of-extension-api

In a real-world scenario, what you would need to do is contact your pod administrator and have them create an Extension App entry in the Admin Console either by uploading a bundle.json that you supply or manually filling in the required fields.

For the Developer Sandbox (develop2.symphony.com), we have a sample shared Extension App entry that you can use for develop-time testing on localhost. The entry is called Localhost 4000 that you can self-install from Symphony Marketplace. As listed in the Marketplace description, you will need to have your app's entrypoint served on http://localhost:4000/controller.html and you can download the sample RSA key for App Authentication if you require things like the user's identity.

To get a quick example running, install the latest Symphony generator using npm i -g yo @finos/generator-symphony. Then create a working directory, enter it and launch yo @finos/symphony. When prompted for "Select your type of application", select "Extension App Application". Choose either language but I'll reference the Java project below. Once the project is generated, open it in your IDE and make a few changes:

  1. Edit src/main/resources/application.yaml, changing bdk.app.appId to localhost-4000 and bdk.app.privateKey.path to wherever you saved the private key.
  2. Change server.port to 4000
  3. Edit src/main/resources/static/scripts/controller.js, updating references to appId and the server port:
let appId = 'localhost-4000'
modulesService.show("test-app", {title: "Circle Of Trust"}, "app:controller", "https://localhost:4000/app.html")

Launch the project and first visit https://localhost:4000. You will see a warning for the first time because the site serves an untrusted self-signed certificate. You will need to clear the warning, if not the extension app cannot load. You can then proceed into the sandbox, go into Marketplace, install the Localhost 4000 app and it should show up on the left nav. A new app entry named "Circle of Trust" will appear, which you can click into to launch a sample page with some buttons that demonstrate other backend calls.

Posted 2 years ago
Edited 2 years ago
Yong Sheng Tan
39 × 2 Administrator