elsa-workflows / elsa-workflows/elsa-core
[FEAT] Add Connection Module to Manage Connections to 3rd Party Services
- 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:

### 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
Assessment
This issue has not been assessed yet.