Background
An audit of the CloudFS codebase identified several unimplemented or stub operations across the 6 cloud storage providers. This issue tracks each gap and links to the implementing PR.
Audit Results
π΄ P0 β Critical Blockers
| # |
Feature |
File |
Status |
| 1 |
MoveFile() |
cloud_filesystem.cpp:446 |
π‘ In Progress (this branch) |
| 2 |
Google Drive JWT RS256 Signing |
gdrive_auth.cpp:120 |
β
Fixed in PR #4 |
π P1 β Important
| # |
Feature |
Providers Missing |
Status |
| 3 |
CopyItem() |
OneDrive β, SFTP β |
π‘ In Progress (OneDrive added this branch) |
| 4 |
ListFolderRecursive() native API |
GDrive, OneDrive, SharePoint, SFTP, VFS |
β³ Pending |
π’ P2 β Nice-to-have
| # |
Feature |
Providers Missing |
Status |
| 5 |
RefreshDownloadUrl() |
GDrive β, SFTP β |
β³ Pending |
| 6 |
AbortUpload() |
All providers |
β³ Pending |
Provider Coverage Matrix (After This PR)
GDrive Dropbox OneDrive SharePoint SFTP VFS
MoveFile() β
β
β
β
β
β
CopyItem() β
β
β
β
β β
ListFolderRecursive π β
π π π π
RefreshDownloadUrl β β
β
β
β β
AbortUpload β β β β β β
β
= Implemented | β = Not implemented | π = Software fallback (suboptimal)
Implementation Approach for MoveFile
Each provider uses its native move/rename API:
- SharePoint/OneDrive:
PATCH /drives/{root}/items/{id} with parentReference + name
- Google Drive:
GET /files/{id}?fields=parents then PATCH with addParents/removeParents
- Dropbox:
POST /files/move_v2
- SFTP:
libssh2_sftp_rename_ex() with OVERWRITE|ATOMIC|NATIVE flags
- VFS Agent:
POST /v1/move (requires agent-side endpoint)
Acceptance Criteria
Related
Background
An audit of the CloudFS codebase identified several unimplemented or stub operations across the 6 cloud storage providers. This issue tracks each gap and links to the implementing PR.
Audit Results
π΄ P0 β Critical Blockers
MoveFile()cloud_filesystem.cpp:446gdrive_auth.cpp:120π P1 β Important
CopyItem()ListFolderRecursive()native APIπ’ P2 β Nice-to-have
RefreshDownloadUrl()AbortUpload()Provider Coverage Matrix (After This PR)
β = Implemented | β = Not implemented | π = Software fallback (suboptimal)
Implementation Approach for MoveFile
Each provider uses its native move/rename API:
PATCH /drives/{root}/items/{id}withparentReference+nameGET /files/{id}?fields=parentsthenPATCHwithaddParents/removeParentsPOST /files/move_v2libssh2_sftp_rename_ex()with OVERWRITE|ATOMIC|NATIVE flagsPOST /v1/move(requires agent-side endpoint)Acceptance Criteria
MoveFile(src, dst)works for same-root moves on all 5 cloud providersCopyItem()works for OneDriveRelated
docs/AUTHENTICATION_AUDIT.md,docs/INVESTIGATION_SUMMARY.md