elsa-workflows / elsa-workflows/elsa-core

[FEAT] Add Connection Module to Manage Connections to 3rd Party Services

Open
#6,361 0 comments 1 reaction 0 assignees View on GitHub
triaged
Dominant language
C#
Stars
7.9k
Forks
1.5k
Avg merge
15h 22m
Merged PRs (30d)
114

Description

## Feature Request

### Problem Overview
When using the same activity in different workflows that depend on a specific connection/configuration for a third party dependency, today there is no way to manage those connections or see what workflow a connection is part of unless you modify/manage it from the `IConfiguration`.

### Proposed Solution
Provide a new UI experience in Elsa Studio under the left sidebar called "Connections". This page would contain a table of different connections allowing you to easily:

* **Eye Icon** - See which workflows reference the connection
* **Edit** the connection information - the name of the connection and the payload (a JSON object)
* **Verify** the connection is still valid/working. Not sure this option can be offered without deeper integration with specific activities exposing this through some abstraction.
* **Reauthorize** to start an authentication flow (i.e. Google SSO for example). Not sure this option can be offered without deeper integration with specific activities exposing this through some abstraction.
* **Delete** to remove the connection

### Use Cases
* I have a custom Twitter activity and I want to reference the account credentials used for the activity by the connection name since i have three different social media accounts I administer.
* I have a custom activity to upload files to One Drive but I have three different ones I use in different workflows. Managing connections to those different Microsoft accounts by name makes it easier to centralize and manage the connection information.

### Impact of Feature
Allows for management of connections independently from the activities and workflows they are used within - allowing for global updates.

### Visuals and Mockups

Very similar idea is achieved on Make.com. Any time you add a new activity, you also add a connection to that service if one does not exist:

![Image](https://github.com/user-attachments/assets/e02c1e27-2619-40e6-9e1e-6a7fe623b37a)

### Additional Context
Arguably this could just be handled with a combination of the DI container and app settings/configuration plumbing. Maybe introducing a light abstraction to get the connection by name and storing them in the DB or key vault if necessary. But this abstraction allows for a bit more self-service on the frontend in Elsa Studio while also allowing for real-time changes to credentials to occur.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.