OfficeIMO.GoogleWorkspace.Sync
3.0.0
Prefix Reserved
dotnet add package OfficeIMO.GoogleWorkspace.Sync --version 3.0.0
NuGet\Install-Package OfficeIMO.GoogleWorkspace.Sync -Version 3.0.0
<PackageReference Include="OfficeIMO.GoogleWorkspace.Sync" Version="3.0.0" />
<PackageVersion Include="OfficeIMO.GoogleWorkspace.Sync" Version="3.0.0" />
<PackageReference Include="OfficeIMO.GoogleWorkspace.Sync" />
paket add OfficeIMO.GoogleWorkspace.Sync --version 3.0.0
#r "nuget: OfficeIMO.GoogleWorkspace.Sync, 3.0.0"
#:package OfficeIMO.GoogleWorkspace.Sync@3.0.0
#addin nuget:?package=OfficeIMO.GoogleWorkspace.Sync&version=3.0.0
#tool nuget:?package=OfficeIMO.GoogleWorkspace.Sync&version=3.0.0
OfficeIMO.GoogleWorkspace.Sync
OfficeIMO.GoogleWorkspace.Sync provides the cross-format synchronization mechanics shared by the Google Docs, Sheets, and Slides translators. It consumes Drive change feeds and executes explicit mutation plans; it does not store document content or choose merge policy for an application.
Install
dotnet add package OfficeIMO.GoogleWorkspace.Sync
Track user and shared-drive changes
using OfficeIMO.GoogleWorkspace;
using OfficeIMO.GoogleWorkspace.Sync;
var session = new GoogleWorkspaceSession(credentialSource);
using var tracker = new GoogleWorkspaceChangeTracker(session);
GoogleWorkspaceSyncCheckpoint checkpoint = await tracker.InitializeAsync(
new[] { "shared-drive-id" });
// Persist checkpoint. On the next run:
var options = new GoogleWorkspaceChangeReadOptions();
options.SharedDriveIds.Add("shared-drive-id");
GoogleWorkspaceChangeReadResult changes = await tracker.ReadAsync(checkpoint, options);
foreach (GoogleWorkspaceTrackedChange item in changes.Changes) {
Console.WriteLine($"{item.Source.Key}: {item.Change.FileId}");
}
// Persist only after processing the returned changes successfully.
checkpoint = changes.NextCheckpoint;
Each source is paged to completion. Its token advances only when that source succeeds; a failed shared-drive feed keeps its old token while completed sources can advance. A newly added shared drive is initialized at its current cursor and does not invent historical changes.
The checkpoint intentionally contains only the user cursor, per-shared-drive cursors, and optional stable source/file identity plus revision evidence. Applications remain responsible for durable storage, content, schedules, and conflict policy.
Review, dry-run, and apply
Map a Docs, Sheets, or Slides diff plan into stable shared items, then dry-run it before mutation:
GoogleWorkspaceSyncPlan plan = GoogleWorkspaceSyncPlan.Create(new[] {
new GoogleWorkspaceSyncItem("summary!A1", GoogleWorkspaceSyncItemKind.SourceChange,
"sheet/Summary/cell/1:1", "The local value changed.", googleFileId: "spreadsheet-id"),
new GoogleWorkspaceSyncItem("chart-1", GoogleWorkspaceSyncItemKind.LossyAction,
"sheet/Summary/chart/1", "This chart requires a raster fallback.", googleFileId: "spreadsheet-id")
});
GoogleWorkspaceSyncApplyResult preview = await GoogleWorkspaceSyncExecutor.ApplyAsync(
plan,
(item, cancellationToken) => ApplyItemAsync(item, cancellationToken));
var applyOptions = new GoogleWorkspaceSyncApplyOptions { DryRun = false };
applyOptions.ApprovedLossyItemIds.Add("chart-1");
GoogleWorkspaceSyncApplyResult applied = await GoogleWorkspaceSyncExecutor.ApplyAsync(
plan,
(item, cancellationToken) => ApplyItemAsync(item, cancellationToken),
applyOptions,
cancellationToken);
Conflicts are never sent to the operation. Lossy actions require approval by stable item ID. Every item returns Planned, Applied, Conflict, ApprovalRequired, Failed, Skipped, or Canceled; cancellation can return the already-applied partial result.
Boundaries
OfficeIMO.GoogleWorkspace.Driveowns Drive change-token HTTP operations.- Docs, Sheets, and Slides diff planners own format-specific comparison and fidelity classification.
- This package owns cursor consumption and common plan/apply outcomes.
- The application owns checkpoint persistence, selection/approval UI, schedules, and the actual mutation callback.
Targets: netstandard2.0, net8.0, net10.0, plus net472 on Windows. License: MIT.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 is compatible. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETFramework 4.7.2
- OfficeIMO.GoogleWorkspace (>= 3.0.0)
- OfficeIMO.GoogleWorkspace.Drive (>= 3.0.0)
-
.NETStandard 2.0
- OfficeIMO.GoogleWorkspace (>= 3.0.0)
- OfficeIMO.GoogleWorkspace.Drive (>= 3.0.0)
-
net10.0
- OfficeIMO.GoogleWorkspace (>= 3.0.0)
- OfficeIMO.GoogleWorkspace.Drive (>= 3.0.0)
-
net8.0
- OfficeIMO.GoogleWorkspace (>= 3.0.0)
- OfficeIMO.GoogleWorkspace.Drive (>= 3.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 3.0.0 | 42 | 7/20/2026 |