SDKs and Frameworks

Contents


Context and objective

Development kits and frameworks that support development and implement well defined use cases. This is inclusive of both application (bot) and UI module development in the container.  Catalogue features between like solutions.

Known Projects

LanguageProjectStatusProject ownerDescription
Java


Implements the symphony-java-api language binding

Maven dependencies
<dependency>
    <groupId>org.symphonyoss.symphony</groupId>
    <artifactId>symphony-client</artifactId>
    <version>${symphony-client-version}</version>
</dependency>


1.0.3: Released

1.1.0-SNAPSHOT

The Symphony java client provides a real-time wrapper around the Symphony REST API's to simplify the creation of chat sessions, room access, presence, messaging and more... The client provides a set of logical services representing supported features of the Symphony platform. Services support real-time events through feature based listeners and communication objects. Access is not limited to the services as all underlying Symphony client implementations are exposed for advanced use and extensibility. 


Use Cases:


  • Build a full real-time client application that handles chat and room conversations.
  • Create bi-directional notification system between Symphony and external environments.
  • Integrate workflow between an external application and users on a collaboration network. 
  • Create command based interactions
  • Create an application that monitors all activity in a chat room for specific keywords.  Responses can be published back into rooms after external processing. 
  • Create passive applications that take notes from active conversations


JavaScript

Coffescript

v3.1.3: Released

Former user (Deleted)Hubot is a chatops tool developed by GitHub, with this adapter you can get up and running with a programmable bot written in JavaScript/Coffescript in a few minutes. This project wraps a small number of the Symphony REST APIs required for two-way bot communication and user lookup together with offline test cases, the adapter is in use both by Symphony clients and by Symphony themselves.
Java



v1.0.2: Released

(FE) v1.0.8 Released

Symphony LLC

Integration Core is responsible for managing active integrations and provides key services to allow third party services the ability to post messages into a configurable set of streams

The key services provided to the registered integrations are:

  • Authentication proxy - each integration should be configured with credentials, but the implementation never needs to deal with them. Once bootstrapped, the integration can use integration bridge services as if it's unauthenticated. The bridge itself proxies those services to the cloud with the proper authentication.
  • Send messages to a stream
  • Read and write configuration information to the cloud configuration services
  • Read user information to the cloud user services
  • Health check

The Integration Core exposes the implemented Integrations through its web module, integration-web. It expects messages to be posted on a specific URL format and then it will try to determine for who this message is for using the information in the URL itself.


Integration Commons provides the common components required to build a new integration to Symphony Platform, as the common base class for any WebHook based integration, Symphony authentication utility classes, metrics tools, and many other utility classes.

The third-party services that would like to post messages into a configurable set of streams should define the integration-parent as a parent of your maven project.

Use Cases and Adapters:





Javav.0.9.0: ReleasedŁukasz DróżdżJSON Aware Curl
Java

v0.9.16: Released

Łukasz Dróżdż

MessageML is a markup language used by the Symphony Agent API for representing messages, including formatting (bold, italic, numbered and unnumbered lists etc.) and entity data representing structured objects.

The format is intended to allow third parties to create and render rich content messages representing complex objects, enabling deep workflow integrations across multiple systems, with Symphony being the central hub.

Pythonv0.1.6: ReleasedMatt Joyce

A basic python module for those looking to interact with symphony from python.

Currently a fork exists to bring in a base language binding layer as well as switch to codegen methods based off the public swagger spec.  This is the next major leg of work to be done.

Need help? Email help@finos.org we'll get back to you.

Content on this page is licensed under the CC BY 4.0 license.
Code on this page is licensed under the Apache 2.0 license.