Documentation
¶
Index ¶
- Constants
- Variables
- func EncodeCursor(cursor *Cursor) (string, error)
- type CancelRequest
- type Cursor
- type FinishRequest
- type ListRequest
- type MemoryStore
- func (*MemoryStore) Durable() bool
- func (s *MemoryStore) Finish(_ context.Context, req FinishRequest) (Record, error)
- func (s *MemoryStore) Get(_ context.Context, operationID string) (Record, error)
- func (s *MemoryStore) List(_ context.Context, req ListRequest) (Page, error)
- func (s *MemoryStore) MarkPluginDisabled(_ context.Context, req PluginTransitionRequest) ([]Record, error)
- func (s *MemoryStore) MarkPluginUninstalled(_ context.Context, req PluginTransitionRequest) ([]Record, error)
- func (s *MemoryStore) Prune(_ context.Context, req PruneRequest) (PruneResult, error)
- func (s *MemoryStore) Register(_ context.Context, req RegisterRequest) (Record, error)
- func (s *MemoryStore) ReportProgress(_ context.Context, req ProgressRequest) (Record, error)
- func (s *MemoryStore) RequestCancel(_ context.Context, req CancelRequest) (Record, error)
- func (s *MemoryStore) RevokeSessionScope(_ context.Context, req RevokeSessionScopeRequest) (RevokeSessionScopeResult, error)
- type OwnerScope
- type Page
- type PluginTransitionRequest
- type ProgressRequest
- type PruneRequest
- type PruneResult
- type Record
- type RegisterRequest
- type RevokeSessionScopeRequest
- type RevokeSessionScopeResult
- type SQLiteStore
- func (s *SQLiteStore) Close() error
- func (*SQLiteStore) Durable() bool
- func (s *SQLiteStore) Finish(ctx context.Context, req FinishRequest) (Record, error)
- func (s *SQLiteStore) Get(ctx context.Context, operationID string) (Record, error)
- func (s *SQLiteStore) List(ctx context.Context, req ListRequest) (Page, error)
- func (s *SQLiteStore) MarkPluginDisabled(ctx context.Context, req PluginTransitionRequest) ([]Record, error)
- func (s *SQLiteStore) MarkPluginUninstalled(ctx context.Context, req PluginTransitionRequest) ([]Record, error)
- func (s *SQLiteStore) Prune(ctx context.Context, req PruneRequest) (PruneResult, error)
- func (s *SQLiteStore) Register(ctx context.Context, req RegisterRequest) (Record, error)
- func (s *SQLiteStore) ReportProgress(ctx context.Context, req ProgressRequest) (Record, error)
- func (s *SQLiteStore) RequestCancel(ctx context.Context, req CancelRequest) (Record, error)
- func (s *SQLiteStore) RevokeSessionScope(ctx context.Context, req RevokeSessionScopeRequest) (RevokeSessionScopeResult, error)
- type Status
- type Store
Constants ¶
View Source
const ( DisableBehaviorCancel = "cancel" DisableBehaviorOrphan = "orphan" DisableBehaviorWait = "wait" UninstallBehaviorCancelThenBlockDelete = "cancel_then_block_delete" UninstallBehaviorForceCleanupAllowed = "force_cleanup_allowed" DefaultListLimit = 100 MaxListLimit = 500 DefaultPruneLimit = 500 MaxPruneLimit = 5000 DefaultMaxTerminalRecordsPerPlugin = 1000 MaxTerminalRecordsPerPlugin = 100_000 DefaultTerminalRetention = 7 * 24 * time.Hour SessionRevokedReason = "session revoked" )
Variables ¶
View Source
var ( ErrNotFound = errors.New("operation not found") ErrInvalidOperation = errors.New("operation is invalid") ErrAlreadyExists = errors.New("operation already exists") ErrDeleteBlocked = errors.New("operation blocks data deletion") ErrNotCancelable = errors.New("operation is not cancelable") )
Functions ¶
func EncodeCursor ¶ added in v0.5.0
Types ¶
type CancelRequest ¶
type Cursor ¶ added in v0.5.0
func DecodeCursor ¶ added in v0.5.0
type FinishRequest ¶
type FinishRequest struct {
OperationID string `json:"operation_id"`
Status Status `json:"status"`
FailureCode capability.ExecutionFailureCode `json:"failure_code,omitempty"`
Reason string `json:"reason,omitempty"`
Now time.Time `json:"-"`
}
type ListRequest ¶
type ListRequest struct {
PluginInstanceID string `json:"plugin_instance_id,omitempty"`
Cursor *Cursor
Limit int `json:"limit"`
Owner OwnerScope `json:"-"`
AllOwners bool `json:"-"`
}
type MemoryStore ¶
type MemoryStore struct {
// contains filtered or unexported fields
}
func NewMemoryStore ¶
func NewMemoryStore() *MemoryStore
func (*MemoryStore) Durable ¶ added in v0.6.0
func (*MemoryStore) Durable() bool
func (*MemoryStore) Finish ¶
func (s *MemoryStore) Finish(_ context.Context, req FinishRequest) (Record, error)
func (*MemoryStore) List ¶
func (s *MemoryStore) List(_ context.Context, req ListRequest) (Page, 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) Prune ¶ added in v0.5.0
func (s *MemoryStore) Prune(_ context.Context, req PruneRequest) (PruneResult, error)
func (*MemoryStore) Register ¶
func (s *MemoryStore) Register(_ context.Context, req RegisterRequest) (Record, error)
func (*MemoryStore) ReportProgress ¶ added in v0.6.20
func (s *MemoryStore) ReportProgress(_ context.Context, req ProgressRequest) (Record, error)
func (*MemoryStore) RequestCancel ¶
func (s *MemoryStore) RequestCancel(_ context.Context, req CancelRequest) (Record, error)
func (*MemoryStore) RevokeSessionScope ¶ added in v0.6.0
func (s *MemoryStore) RevokeSessionScope(_ context.Context, req RevokeSessionScopeRequest) (RevokeSessionScopeResult, error)
type OwnerScope ¶ added in v0.5.0
type OwnerScope = capability.ExecutionOwnerScope
type PluginTransitionRequest ¶
type PluginTransitionRequest struct {
PluginInstanceID string `json:"plugin_instance_id"`
ResourceScope sessionctx.ResourceScope `json:"-"`
Reason string `json:"reason,omitempty"`
Now time.Time `json:"-"`
}
type ProgressRequest ¶ added in v0.6.20
type ProgressRequest struct {
OperationID string
Progress capability.OperationProgress
Now time.Time `json:"-"`
}
type PruneRequest ¶ added in v0.5.0
type PruneResult ¶ added in v0.5.0
type PruneResult struct {
Deleted int `json:"deleted"`
}
type Record ¶
type Record struct {
OperationID string `json:"operation_id"`
capability.ExecutionBinding
Status Status `json:"status"`
Cancelable bool `json:"cancelable"`
CancelAckTimeoutMS int `json:"cancel_ack_timeout_ms,omitempty"`
DisableBehavior string `json:"disable_behavior,omitempty"`
UninstallBehavior string `json:"uninstall_behavior,omitempty"`
FailureCode capability.ExecutionFailureCode `json:"failure_code,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"`
TerminalAt *time.Time `json:"terminal_at,omitempty"`
Progress *capability.OperationProgress `json:"progress,omitempty"`
}
type RegisterRequest ¶
type RegisterRequest struct {
OperationID string `json:"operation_id"`
ExecutionBinding capability.ExecutionBinding `json:"execution_binding"`
Cancelable *bool `json:"cancelable,omitempty"`
CancelAckTimeoutMS int `json:"cancel_ack_timeout_ms,omitempty"`
DisableBehavior string `json:"disable_behavior,omitempty"`
UninstallBehavior string `json:"uninstall_behavior,omitempty"`
Now time.Time `json:"-"`
}
type RevokeSessionScopeRequest ¶ added in v0.6.0
type RevokeSessionScopeRequest struct {
SessionScope sessionctx.SessionScope `json:"-"`
Now time.Time `json:"-"`
}
type RevokeSessionScopeResult ¶ added in v0.6.0
type RevokeSessionScopeResult struct {
Revoked int `json:"revoked"`
}
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) Durable ¶ added in v0.6.0
func (*SQLiteStore) Durable() bool
func (*SQLiteStore) Finish ¶
func (s *SQLiteStore) Finish(ctx context.Context, req FinishRequest) (Record, error)
func (*SQLiteStore) List ¶
func (s *SQLiteStore) List(ctx context.Context, req ListRequest) (Page, 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) Prune ¶ added in v0.5.0
func (s *SQLiteStore) Prune(ctx context.Context, req PruneRequest) (PruneResult, error)
func (*SQLiteStore) Register ¶
func (s *SQLiteStore) Register(ctx context.Context, req RegisterRequest) (Record, error)
func (*SQLiteStore) ReportProgress ¶ added in v0.6.20
func (s *SQLiteStore) ReportProgress(ctx context.Context, req ProgressRequest) (Record, error)
func (*SQLiteStore) RequestCancel ¶
func (s *SQLiteStore) RequestCancel(ctx context.Context, req CancelRequest) (Record, error)
func (*SQLiteStore) RevokeSessionScope ¶ added in v0.6.0
func (s *SQLiteStore) RevokeSessionScope(ctx context.Context, req RevokeSessionScopeRequest) (RevokeSessionScopeResult, 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 {
Durable() bool
Register(ctx context.Context, req RegisterRequest) (Record, error)
List(ctx context.Context, req ListRequest) (Page, error)
Get(ctx context.Context, operationID string) (Record, error)
ReportProgress(ctx context.Context, req ProgressRequest) (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)
RevokeSessionScope(ctx context.Context, req RevokeSessionScopeRequest) (RevokeSessionScopeResult, error)
Prune(ctx context.Context, req PruneRequest) (PruneResult, error)
}
Click to show internal directories.
Click to hide internal directories.