Repository navigation
[HWORKS-3562] SharePoint data source with one-off copy and scheduled one-way sync into a project dataset - #715
Open
jimdowling wants to merge 1 commit into
Open
jimdowling wants to merge 1 commit into
jimdowling wants to merge 1 commit into
Conversation
Contributor
There was a problem hiding this comment.
Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.
An organization owner can choose the repository organization as the billing source for reviews requested by members with a paid Copilot license. Learn about Copilot code review billing. Review the Copilot code review billing settings.
jimdowling
marked this pull request as ready for review
October 22, 2026 20:51
jimdowling
force-pushed
the
HWORKS-3562
branch
2 times, most recently
from
October 23, 2026 05:32
a10248c to
7529700
Compare
…one-way sync into a project dataset https://hopsworks.atlassian.net/browse/HWORKS-3562 Users cannot bring files from SharePoint Online document libraries into Hopsworks. Add SharePoint as a data source and a sync that copies a library folder into a new project dataset with rclone, once or on a schedule, run as an ordinary Python job whose script lives in the project. Backend (hopsworks-ee), client and CLI (hopsworks-api), UI (hopsworks-front), image (docker-images), variables (hopsworks-helm), an e2e test (loadtest) and docs change together. Add the SharePoint data source guide: the Entra ID application and its permissions, network access, the minimum client version, the cluster variables, creating the data source and a sync in the UI, the data source page, how a sync runs (the job and who it runs as, the editable sync script, the mirrored dataset and what data owners may change in it, .partial download files, the CSV audit log and querying it with DuckDB, skipped item types, how file names are stored, failures, deletion), and the Python client and CLI. Reviewed-by: OpenAI Codex (codex-plugin-cc 1.0.6) <codex@openai.com> Signed-off-by: Jim Dowling <jim@logicalclocks.com> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
jimdowling
force-pushed
the
HWORKS-3562
branch
from
October 24, 2026 06:21
7529700 to
3b8b0e1
Compare
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
user_guides/fs/data_source/creation/sharepoint.md: the Entra ID application and its permissions, the cluster variables, creating a data source and a sync in the UI, the data source page, how a sync runs (job, editable script, read-only dataset, CSV audit log with a DuckDB example, failures, deletion), and the Python client and CLI. Added to the nav.Related PRs (merge in this order)
Feature
HWORKS-3562: a SharePoint Online data source that copies a folder of a site's document library into a project dataset, once or on a schedule (one-way mirror). Each sync is an ordinary Python job in the
python-feature-pipelineenvironment runningDataSources/<connector>/sharepoint_sync.py(rclone), which data owners can edit. Every run that changes something writes a CSV audit file in Hive-styledate=partitions, rotated afterdata_source_audit_retention_days. Failure alerts go to an optional alert receiver. Two-way sync and delegated (user) sign-in are out of scope.Merge order: docker-images (image with rclone and duckdb) → hopsworks-ee → hopsworks-helm → hopsworks-api → hopsworks-front → loadtest → docs.
Testing
On cluster jim-sharepoint (5.3.0-SNAPSHOT) against a real Microsoft 365 tenant (site
hopsworks-sync-test, app withSites.ReadWrite.All), with the backend, frontend and SDK from these branches and thepython-feature-pipelineimage built from the docker-images branch:workflows/feature_store/python_driver/test_data_sources_sharepoint.py: 2 passed in 4m13s (2026-10-24, after merging upstream's SQL Server and Hopsworks data sources; SHAREPOINT is ordinal 20, after HOPSWORKS)Not verified on a cluster:
Sites.Selectedwith a site-level grant (the test app hasSites.ReadWrite.All);🤖 Generated with Claude Code