elsa-workflows / elsa-workflows/elsa-extensions

Add SharePoint Integration

Open
#13 0 comments 0 reactions 0 assignees View on GitHub
triaged
Dominant language
C#
Stars
49
Forks
48
Avg merge
21h 35m
Merged PRs (30d)
20

Description

This issue tracks the implementation of an integration for **Microsoft SharePoint Online** in Elsa Workflows. The module should allow workflows to interact with SharePoint Online, supporting file management, lists, pages, and monitoring events.

## **Tasks**
- [ ] Create a new module: `Elsa.Integrations.SharePointOnline`
- [ ] Implement **Workflow Activities**:
- [ ] **CreateFolder** - Creates a folder in OneDrive.
- [ ] **CreateList** - Creates a new list.
- [ ] **CreateItem** - Creates a new item in a list.
- [ ] **DeleteItem** - Deletes a specified item.
- [ ] **DownloadFile** - Downloads a file from a specified site.
- [ ] **GetList** - Retrieves details of a specified list.
- [ ] **GetPage** - Retrieves details of a specified page.
- [ ] **GetSite** - Retrieves details of a specified site.
- [ ] **GetItem** - Retrieves details of a specified item.
- [ ] **ListItems** - Retrieves a list of all items in a specified list.
- [ ] **ListLists** - Retrieves a list of all lists in a site.
- [ ] **ListPages** - Retrieves a list of all pages in a site.
- [ ] **MakeAPICall** - Performs an arbitrary authorized API call.
- [ ] **PublishPage** - Publishes the latest version of a page.
- [ ] **SearchSites** - Searches for sites by a given search parameter.
- [ ] **UpdateItem** - Updates an existing item in a list.
- [ ] **UploadFile** - Uploads a new file to a specified site.
- [ ] **WatchFilesFolders** - Triggers when a file or folder is created or updated in a specified site.
- [ ] **WatchItems** - Triggers when an item in a specified list is created or modified.
- [ ] **WatchLists** - Triggers when a list is created or modified.
- [ ] **WatchPages** - Triggers when a page is modified.

- [ ] Add Unit Tests
- [ ] Add Documentation (`README.md`)

## **References**
- 📖 [Microsoft SharePoint API Docs](https://learn.microsoft.com/en-us/sharepoint/dev/sp-add-ins/sharepoint-net-server-csom-jsom-and-rest-api-index)
- 🛠️ [Microsoft Graph API for SharePoint](https://learn.microsoft.com/en-us/graph/onedrive-concept-overview)
- 🛠️ [PnP Core SDK for SharePoint](https://www.nuget.org/packages/PnP.Core/)

## **Notes**
- This should follow the standard structure used for Elsa Integrations.
- The integration should support authentication via OAuth 2.0.
- The **PnP Core SDK** will be used for enhanced SharePoint interactions.

## **Contributor Guidelines**
If you're interested in working on this issue:

1. Comment below to claim it.
2. Follow the [CONTRIBUTING.md](https://github.com/elsa-workflows/elsa-integrations/blob/main/CONTRIBUTING.md) guide.
3. Submit a PR referencing this issue.

Contributor guide

Open the contributing guide

Research direction

Start by reviewing the existing standard structure for Elsa Integrations, then consult the Microsoft SharePoint and Microsoft Graph API references and the PnP Core SDK documentation. The work is complete when the Elsa.Integrations.SharePointOnline module includes the listed workflow activities, OAuth 2.0 authentication, unit tests, and a README.md.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp
Domain
api, backend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.