Skip to content

Releases: arcanelabsio/cloud_sync

cloud_sync_s3 0.1.1

Choose a tag to compare

@ajitgunturi ajitgunturi released this 18 Apr 18:43

Published to pub.dev: cloud_sync_s3 0.1.1

Install

dependencies:
  cloud_sync_s3: ^0.1.1

Changes

Initial release. S3 + S3-compatible storage adapter for the cloud_sync family.

  • S3Adapter implements StorageAdapter from cloud_sync_core
  • S3Config — bucket, region, endpoint override, path-style toggle (for MinIO and others)
  • S3Credentials — static credentials (access key + secret key, optional session token)
  • S3AuthClienthttp.BaseClient wrapper that signs every request with AWS SigV4
  • Hand-rolled SigV4 implementation — no aws_* family dependencies
  • SHA256 preservation via x-amz-meta-sha256 custom 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

cloud_sync_drive 0.1.1

Choose a tag to compare

Published to pub.dev: cloud_sync_drive 0.1.1

Install

dependencies:
  cloud_sync_drive: ^0.1.1

Changes

Initial release as part of the cloud_sync family. Behavior ported from drive_sync_flutter 1.2.0.

  • DriveAdapter (renamed from GoogleDriveAdapter) implements StorageAdapter from cloud_sync_core
  • Three factory constructors for OAuth scope selection:
    • DriveAdapter.userDrive(basePath:, subPath:) — full drive scope
    • DriveAdapter.appFiles(folderName:, subPath:)drive.file scope
    • DriveAdapter.appData(subPath:)drive.appdata scope
  • DriveAuthClienthttp.BaseClient wrapper that injects Google auth headers
  • DriveScope enum + DriveScopeError for scope-mismatch detection
  • Legacy constructors (sandboxed, withPath, default positional) removed — not ported from drive_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.


cloud_sync_core 0.1.1

Choose a tag to compare

Published to pub.dev: cloud_sync_core 0.1.1

Install

dependencies:
  cloud_sync_core: ^0.1.1

Changes

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 transfer
  • ManifestDiffer: compares two sync manifests (added / modified / deleted / unchanged)
  • ConflictResolver: four strategies — newerWins, localWins, remoteWins, askUser
  • SyncClient: high-level bidirectional sync with push / pull / sync / status operations
  • PathValidator: structural path safety (no traversal, no absolute paths, no empty segments)
  • Value types: RemoteFileInfo, SyncFileEntry, SyncManifest, SyncResult, SyncStatus, SyncConflict, ManifestDiff

cloud_sync_box 0.1.1

Choose a tag to compare

@ajitgunturi ajitgunturi released this 18 Apr 18:43

Published to pub.dev: cloud_sync_box 0.1.1

Install

dependencies:
  cloud_sync_box: ^0.1.1

Changes

Initial release. Box Content API adapter for the cloud_sync family.

  • BoxAdapter implements StorageAdapter from cloud_sync_core
  • BoxConfig — rootFolderId, optional base/upload URL overrides
  • BoxAuthClienthttp.BaseClient wrapper that injects Bearer token
  • BoxPathResolver — lazy recursive walk + in-memory path↔ID cache; creates missing folder segments on demand
  • SHA256 preservation via /files/{id}/metadata/global/properties custom 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