mirror of
https://github.com/open-webui/oikb.git
synced 2026-11-05 01:27:25 +00:00
[GH-ISSUE #135] SharePoint connector: modified files never detected — eTag truncated to 16 chars stays inside the constant GUID portion #79
Labels
No labels
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
open-webui/oikb#79
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @pckw on GitHub (Sep 30, 2026).
Original GitHub issue: https://github.com/open-webui/oikb/issues/135
Summary
The SharePoint connector's change detection never fires for in-place content edits. Only additions and deletions are picked up on subsequent syncs; a file edited in place is always reported as unchanged.
Root cause
In
src/oikb/connectors/sharepoint.py,_walk_folder()builds the manifest checksum like this:A SharePoint/OneDrive driveItem eTag has the form:
The 36-character GUID before the comma stays constant for the item's lifetime; only the number after the comma increments on content changes. Since
etag[:16]only takes{7A9D4B29-49F0— a slice entirely inside the constant GUID — the truncated checksum never changes across edits. The sync/diff step on the server therefore always classifies the file as unmodified.Additions and deletions are detected correctly, but in-place content modifications are silently never synced.
Steps to reproduce
sharepoint:contoso.sharepoint.com/Documents, and sync it into a Knowledge Base.oikb sync --dry-run --verboseagainst the same source/KB.Expected behavior
An in-place content edit to a SharePoint file should be classified as
modifiedin the sync diff and re-uploaded to the Knowledge Base.Suggested fix
Don't truncate the eTag to 16 characters. Either use the full eTag as the checksum, or explicitly extract the version segment after the comma, e.g.:
Environment
ghcr.io/open-webui/oikb