Skip to content

Slack Integration#30

Merged
sfmskywalker merged 4 commits intoelsa-workflows:mainfrom
adamfisher:feature/integration-slack
Feb 23, 2025
Merged

Slack Integration#30
sfmskywalker merged 4 commits intoelsa-workflows:mainfrom
adamfisher:feature/integration-slack

Conversation

@adamfisher
Copy link
Contributor

Closes #26

A few things to note or consider:

  • I had to pull in pieces of the pending Azure Blob storage branch to get a consistent foundation for the solution and ancillary config files so I just deleted those related to specifically to Blob storage from my branch. I know this won't be the normal thing we need to do in the future.
  • I really would like to make the inputs to activities more rich and dynamic but unsure how to achieve that. I'm also wondering how time-consuming that will be (e.g. for a channel input you could populate a dropdown of available channels based on what can be found for the Slack instance you are connected to).
  • Most of the event activities are not implemented yet because I'm unsure of how to approach making those triggering activities using Elsa's built-in semantics (e.g. The WatchDirectMessages acts as a trigger activity and waits for a new slack message to be published to a channel for the workflow to start).
  • How do we want to approach testing in general - unit or integration testing? I am leaning toward unit testing only and no integration testing due to how many integrations we may get over time and setting all of them up and running them against lots of disparate services seems daunting especially for a new developer that wants to work on integrations. So pulling in Moq or NSubstitute and using Bogus.Faker to generate fake responses for these services and doing only unit testing will allow us to scale nicely as we add more services.
  • I'm not a fan of doc comments being enforced in the test project as it seems overly wordy to me.

sfmskywalker and others added 4 commits February 8, 2025 23:17
This commit introduces the Azure Storage integration for the Elsa framework. It includes features for managing `BlobServiceClient` and `BlobContainerClient` instances, as well as utilities for efficient JSON streaming and parallel block blob uploads to Azure Blob Storage. Configuration is provided via `.editorconfig`, project settings, and centralized NuGet dependencies.
Copy link
Member

@sfmskywalker sfmskywalker left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this is a great starting point. Regarding your comment on automated tests, I agree that we should start with unit tests and leave the end-to-end tests be, for now. As for XML documentation, I hear you, but we will probably be adding it anyway because it does help others to understand how things are to be used and fit together (when written properly). That said, I won't require it for this PR to go in.

Thank you for this awesome PR!

@sfmskywalker sfmskywalker merged commit 2b8491b into elsa-workflows:main Feb 23, 2025
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add Slack Integration

2 participants