syncplan

package
v0.1.4 Latest Latest
Warning

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

Go to latest
Published: Jul 6, 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 {
	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