Releases: arcanelabsio/cloud_sync
Releases · arcanelabsio/cloud_sync
Release list
cloud_sync_s3 0.1.1
Published to pub.dev: cloud_sync_s3 0.1.1
Install
dependencies:
cloud_sync_s3: ^0.1.1Changes
Initial release. S3 + S3-compatible storage adapter for the cloud_sync family.
S3AdapterimplementsStorageAdapterfromcloud_sync_coreS3Config— bucket, region, endpoint override, path-style toggle (for MinIO and others)S3Credentials— static credentials (access key + secret key, optional session token)S3AuthClient—http.BaseClientwrapper that signs every request with AWS SigV4- Hand-rolled SigV4 implementation — no
aws_*family dependencies - SHA256 preservation via
x-amz-meta-sha256custom metadata (read back via HeadObject) - 50MB file size ceiling (no multipart upload in v1)
- Validated compatibility: AWS S3, Cloudflare R2, MinIO, Backblaze B2, Wasabi, DO Spaces
- Full CHANGELOG: cloud_sync_s3/CHANGELOG.md
- Package README: cloud_sync_s3
cloud_sync_drive 0.1.1
Published to pub.dev: cloud_sync_drive 0.1.1
Install
dependencies:
cloud_sync_drive: ^0.1.1Changes
Initial release as part of the cloud_sync family. Behavior ported from drive_sync_flutter 1.2.0.
DriveAdapter(renamed fromGoogleDriveAdapter) implementsStorageAdapterfromcloud_sync_core- Three factory constructors for OAuth scope selection:
DriveAdapter.userDrive(basePath:, subPath:)— fulldrivescopeDriveAdapter.appFiles(folderName:, subPath:)—drive.filescopeDriveAdapter.appData(subPath:)—drive.appdatascope
DriveAuthClient—http.BaseClientwrapper that injects Google auth headersDriveScopeenum +DriveScopeErrorfor scope-mismatch detection- Legacy constructors (
sandboxed,withPath, default positional) removed — not ported fromdrive_sync_flutter
Not backward-compatible with drive_sync_flutter — this is a fresh package with clean naming. Consumers of drive_sync_flutter 1.2.0 migrate by renaming classes and updating imports.
- Full CHANGELOG: cloud_sync_drive/CHANGELOG.md
- Package README: cloud_sync_drive
cloud_sync_core 0.1.1
Published to pub.dev: cloud_sync_core 0.1.1
Install
dependencies:
cloud_sync_core: ^0.1.1Changes
Initial release. Storage-agnostic core extracted from drive_sync_flutter 1.2.0.
StorageAdapter: 5-method abstract interface (ensureFolder,listFiles,uploadFile,downloadFile,deleteFile)SyncEngine: orchestrates manifest diffing, conflict resolution, and file transferManifestDiffer: compares two sync manifests (added / modified / deleted / unchanged)ConflictResolver: four strategies —newerWins,localWins,remoteWins,askUserSyncClient: high-level bidirectional sync withpush/pull/sync/statusoperationsPathValidator: structural path safety (no traversal, no absolute paths, no empty segments)- Value types:
RemoteFileInfo,SyncFileEntry,SyncManifest,SyncResult,SyncStatus,SyncConflict,ManifestDiff
- Full CHANGELOG: cloud_sync_core/CHANGELOG.md
- Package README: cloud_sync_core
cloud_sync_box 0.1.1
Published to pub.dev: cloud_sync_box 0.1.1
Install
dependencies:
cloud_sync_box: ^0.1.1Changes
Initial release. Box Content API adapter for the cloud_sync family.
BoxAdapterimplementsStorageAdapterfromcloud_sync_coreBoxConfig— rootFolderId, optional base/upload URL overridesBoxAuthClient—http.BaseClientwrapper that injects Bearer tokenBoxPathResolver— lazy recursive walk + in-memory path↔ID cache; creates missing folder segments on demand- SHA256 preservation via
/files/{id}/metadata/global/propertiescustom metadata (Box's native SHA1 is not compatible with the engine's SHA256 contract) - 50MB file size ceiling (single-request upload — no chunked upload in v1)
- OAuth2 Bearer token only — JWT App Auth requires consumer-supplied authenticated
http.Client
- Full CHANGELOG: cloud_sync_box/CHANGELOG.md
- Package README: cloud_sync_box