syncplan

package
v0.1.7 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 18, 2026 License: MIT Imports: 4 Imported by: 0

Documentation

Index

Constants

View Source
const PlanSchemaVersion = "pinax.cloud.sync_plan.v1"

Variables

View Source
var ErrRevisionConflict = errors.New("REVISION_CONFLICT")

Functions

func ConflictError

func ConflictError(plan Plan) error

Types

type ConflictEntry

type ConflictEntry struct {
	Code            string `json:"code"`
	BaseRevision    string `json:"base_revision"`
	CurrentRevision string `json:"current_revision"`
	Resolution      string `json:"resolution"`
}

type Direction

type Direction string
const (
	DirectionDiff Direction = "diff"
	DirectionPull Direction = "pull"
	DirectionPush Direction = "push"
)

type Operation

type Operation struct {
	ObjectID       string `json:"object_id,omitempty"`
	ObjectKind     string `json:"object_kind,omitempty"`
	FromPath       string `json:"from_path,omitempty"`
	ToPath         string `json:"to_path,omitempty"`
	LocalRevision  string `json:"local_revision,omitempty"`
	RemoteRevision string `json:"remote_revision,omitempty"`
	BaseRevision   string `json:"base_object_revision,omitempty"`
	Kind           string `json:"kind"` // "upload_blob", "download_blob", "delete_local", "delete_remote", "conflict"
	Path           string `json:"path,omitempty"`
	PathHash       string `json:"path_hash,omitempty"`
	BlobID         string `json:"blob_id,omitempty"`
	Status         string `json:"status"`
}

type Plan

type Plan struct {
	SchemaVersion    string          `json:"schema_version"`
	Status           string          `json:"status"`
	Direction        Direction       `json:"direction"`
	Target           string          `json:"target"`
	BaseRevision     string          `json:"base_revision"`
	RemoteRevision   string          `json:"remote_revision"`
	DryRun           bool            `json:"dry_run"`
	RequiresApproval bool            `json:"requires_approval"`
	RemoteWrite      bool            `json:"remote_write"`
	Operations       []Operation     `json:"operations"`
	ConflictQueue    []ConflictEntry `json:"conflict_queue,omitempty"`
}

func BuildPlan

func BuildPlan(req Request) (Plan, error)

type Request

type Request struct {
	Direction      Direction
	Target         string
	LocalManifest  remote.Manifest
	RemoteManifest remote.Manifest
	BaseManifest   remote.Manifest
	BaseRevision   string
	RemoteRevision string
	DryRun         bool
	Yes            bool
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL