WSO2 Choreo — New Variant of iPaaS and Its Connector Model

Choreo

Scenario: When a GitHub issue is assigned send an alert via SMS
Low Code and Pro Code integrated together

Connectors at Choreo

  • How are they presented in Choreo: as a unit you can select and use in UI (Low Code Editor)
  • Where the connectors are hosted: at Ballerina Central
  • Where is the source: at GitHub repository Ballerina Platform
  1. As a Listener — listen to the incoming events from an external system (i.e Google Calendar events). Internally, Webhook or an HTTP listener is used in the connector. This can be the starting point of an integrated message flow in a Choreo application.
  2. As a client — call an external system to post or get data (i.e. send a SMS using Twilio). At Choreo, when you select one of the remote functions available, respective inputs needed by that function are loaded as a form to fill.
Connector as a listener and a client
Connectors available to choose

Features

Connector operation configuration view
  • When a connector operation is selected, the respective API documentation is pulled from Ballerina central and displayed. To know what are the inputs and their meanings user does not need to navigate anywhere else — it is loaded at the low code environment itself.
  • Mandatory fields are marked with a (*) and presented by default in the pop up form to fill.
  • Auto suggestions for Ballerina expressions — Choreo UI exchange messages with the Language Server to pull the suggestions using the Language Server Protocol, an open, JSON-RPC-based protocol, originally developed by Microsoft.
  • Output fields are accessible with a (.) — Connectors operations are designed to return ballerina records as output. What this means is output can be manipulated by language features easily. If you assign the output to a variable and then type “.” output fields are loaded. This way, at implementation time you know what would be the result of this operation.
  • Static value with (“”) — to input static values to connector fields use this notation.
  • Data mapping features and support for conditional routing, looping and writing statements.

Authentication support

  • No authentication : Some connectors do not need any authentication as they use public APIs (i.e COVID-19 connector)
  • OAuth 2.0 support : wherever OAuth 2.0 support is there in third party API, you can use SSO to login to your account and use the connector (except for Google connectors ATM). It is easy as you can avoid the process of obtaining tokens from remote applications.
  • Manual connector connection config: If you already have an account or your organisation has granted you an account on a third party application, manually you can configure the connection using the tokens when you use the connector for that application at Choreo.
  • Automatic token refresh: Access token renewal happens automatically using the refresh token. Application developer who uses the connector do not need to do any additional effort to do it.
  • Automatic web hook connection refresh: If you use a listener, usually server will expire the connection after a certain time. However Choreo users do not need to worry on this. Web hook connection re-init upon expiry is also handled internally. You can keep on listening to events.
  • Temporary connection support: If you are given a Bearer token to use temporary to implement or test your Choreo application, you can configure it in the connection to connect to the external system. When you go production, you can change to OAuth 2.0 without any logic changes.
  • Support for API key and JWT tokens: Some APIs use API key or a session key as a header. In such scenarios you can configure the connection with the API key or the session ID you obtained by registering to the third party service. When JWT support is there, in the connection config form that would get rendered at Choreo, you can define the inputs to generate the JWT token that should be sent to the backend

Connector versioning at Choreo

Data mapping and transformation

Extensibility and customisations

Language tools and other features
  • Variables and statements— write a statement and assign it to a variable so that you can use later in the application logic
  • Conditions — if statements
  • Loops — Foreach and While for conditional looping

Other Choreo features

Deploy as a periodic task

Observability

Troubleshooting

You will soon get

  • Connection sharing facility — configure a connection to a remote system and share it within your organisation. Good for collaborative testing also.
  • Open API connectors — convert your Open API (Swagger) 3.0 file into a connector instantly and use it in your application in a Ballerina native manner.
  • CDATA connectors — we will be exposing capability to connect to external systems through CDATA SQL interfaces.

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Hasitha Hiranya Abeykoon

Hasitha Hiranya Abeykoon

Associate Technical Lead at WSO2, Blogger