operation

package
v0.2.1 Latest Latest
Warning

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

Go to latest
Published: Jul 12, 2026 License: MIT Imports: 9 Imported by: 0

Documentation

Index

Constants

View Source
const (
	DisableBehaviorCancel = "cancel"
	DisableBehaviorOrphan = "orphan"
	DisableBehaviorWait   = "wait"

	UninstallBehaviorCancelThenBlockDelete = "cancel_then_block_delete"
	UninstallBehaviorForceCleanupAllowed   = "force_cleanup_allowed"
)

Variables

View Source
var (
	ErrNotFound         = errors.New("operation not found")
	ErrInvalidOperation = errors.New("operation is invalid")
	ErrDeleteBlocked    = errors.New("operation blocks data deletion")
)

Functions

This section is empty.

Types

type CancelRequest

type CancelRequest struct {
	OperationID string    `json:"operation_id"`
	Reason      string    `json:"reason,omitempty"`
	Now         time.Time `json:"now,omitempty"`
}

type FinishRequest

type FinishRequest struct {
	OperationID string    `json:"operation_id"`
	Status      Status    `json:"status"`
	Reason      string    `json:"reason,omitempty"`
	Now         time.Time `json:"now,omitempty"`
}

type ListRequest

type ListRequest struct {
	PluginInstanceID string `json:"plugin_instance_id,omitempty"`
}

type MemoryStore

type MemoryStore struct {
	// contains filtered or unexported fields
}

func NewMemoryStore

func NewMemoryStore() *MemoryStore

func (*MemoryStore) Finish

func (s *MemoryStore) Finish(_ context.Context, req FinishRequest) (Record, error)

func (*MemoryStore) Get

func (s *MemoryStore) Get(_ context.Context, operationID string) (Record, error)

func (*MemoryStore) List

func (s *MemoryStore) List(_ context.Context, req ListRequest) ([]Record, error)

func (*MemoryStore) MarkPluginDisabled

func (s *MemoryStore) MarkPluginDisabled(_ context.Context, req PluginTransitionRequest) ([]Record, error)

func (*MemoryStore) MarkPluginUninstalled

func (s *MemoryStore) MarkPluginUninstalled(_ context.Context, req PluginTransitionRequest) ([]Record, error)

func (*MemoryStore) Register

func (s *MemoryStore) Register(_ context.Context, req RegisterRequest) (Record, error)

func (*MemoryStore) RequestCancel

func (s *MemoryStore) RequestCancel(_ context.Context, req CancelRequest) (Record, error)

type PluginTransitionRequest

type PluginTransitionRequest struct {
	PluginInstanceID string    `json:"plugin_instance_id"`
	Reason           string    `json:"reason,omitempty"`
	Now              time.Time `json:"now,omitempty"`
}

type Record

type Record struct {
	OperationID          string     `json:"operation_id"`
	PluginID             string     `json:"plugin_id"`
	PluginInstanceID     string     `json:"plugin_instance_id"`
	Method               string     `json:"method"`
	Effect               string     `json:"effect,omitempty"`
	Execution            string     `json:"execution"`
	SurfaceInstanceID    string     `json:"surface_instance_id,omitempty"`
	SessionChannelIDHash string     `json:"session_channel_id_hash,omitempty"`
	BridgeChannelID      string     `json:"bridge_channel_id,omitempty"`
	Status               Status     `json:"status"`
	DisableBehavior      string     `json:"disable_behavior,omitempty"`
	UninstallBehavior    string     `json:"uninstall_behavior,omitempty"`
	Reason               string     `json:"reason,omitempty"`
	CreatedAt            time.Time  `json:"created_at"`
	UpdatedAt            time.Time  `json:"updated_at"`
	CancelRequestedAt    *time.Time `json:"cancel_requested_at,omitempty"`
	OrphanedAt           *time.Time `json:"orphaned_at,omitempty"`
}

type RegisterRequest

type RegisterRequest struct {
	OperationID          string    `json:"operation_id"`
	PluginID             string    `json:"plugin_id"`
	PluginInstanceID     string    `json:"plugin_instance_id"`
	Method               string    `json:"method"`
	Effect               string    `json:"effect,omitempty"`
	Execution            string    `json:"execution"`
	SurfaceInstanceID    string    `json:"surface_instance_id,omitempty"`
	SessionChannelIDHash string    `json:"session_channel_id_hash,omitempty"`
	BridgeChannelID      string    `json:"bridge_channel_id,omitempty"`
	DisableBehavior      string    `json:"disable_behavior,omitempty"`
	UninstallBehavior    string    `json:"uninstall_behavior,omitempty"`
	Now                  time.Time `json:"now,omitempty"`
}

type SQLiteStore

type SQLiteStore struct {
	// contains filtered or unexported fields
}

func NewSQLiteStore

func NewSQLiteStore(ctx context.Context, path string) (*SQLiteStore, error)

func (*SQLiteStore) Close

func (s *SQLiteStore) Close() error

func (*SQLiteStore) Finish

func (s *SQLiteStore) Finish(ctx context.Context, req FinishRequest) (Record, error)

func (*SQLiteStore) Get

func (s *SQLiteStore) Get(ctx context.Context, operationID string) (Record, error)

func (*SQLiteStore) List

func (s *SQLiteStore) List(ctx context.Context, req ListRequest) ([]Record, error)

func (*SQLiteStore) MarkPluginDisabled

func (s *SQLiteStore) MarkPluginDisabled(ctx context.Context, req PluginTransitionRequest) ([]Record, error)

func (*SQLiteStore) MarkPluginUninstalled

func (s *SQLiteStore) MarkPluginUninstalled(ctx context.Context, req PluginTransitionRequest) ([]Record, error)

func (*SQLiteStore) Register

func (s *SQLiteStore) Register(ctx context.Context, req RegisterRequest) (Record, error)

func (*SQLiteStore) RequestCancel

func (s *SQLiteStore) RequestCancel(ctx context.Context, req CancelRequest) (Record, error)

type Status

type Status string
const (
	StatusRunning                Status = "running"
	StatusCancelRequested        Status = "cancel_requested"
	StatusCanceled               Status = "canceled"
	StatusCompleted              Status = "completed"
	StatusFailed                 Status = "failed"
	StatusOrphanedAfterDisable   Status = "orphaned_after_disable"
	StatusOrphanedAfterUninstall Status = "orphaned_after_uninstall"
)

type Store

type Store interface {
	Register(ctx context.Context, req RegisterRequest) (Record, error)
	List(ctx context.Context, req ListRequest) ([]Record, error)
	Get(ctx context.Context, operationID string) (Record, error)
	RequestCancel(ctx context.Context, req CancelRequest) (Record, error)
	Finish(ctx context.Context, req FinishRequest) (Record, error)
	MarkPluginDisabled(ctx context.Context, req PluginTransitionRequest) ([]Record, error)
	MarkPluginUninstalled(ctx context.Context, req PluginTransitionRequest) ([]Record, error)
}

Jump to

Keyboard shortcuts

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