statemachine

package
v0.1.12 Latest Latest
Warning

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

Go to latest
Published: Mar 4, 2026 License: MIT Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func IsValidTransition

func IsValidTransition(from, to types.SignRequestStatus) bool

IsValidTransition checks if a state transition is valid

Types

type StateMachine

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

StateMachine manages the lifecycle of sign requests

func NewStateMachine

func NewStateMachine(requestRepo storage.RequestRepository, auditRepo storage.AuditRepository, logger *slog.Logger) (*StateMachine, error)

NewStateMachine creates a new state machine

func (*StateMachine) ApproveForSigning

func (sm *StateMachine) ApproveForSigning(ctx context.Context, reqID types.SignRequestID, ruleID *types.RuleID, approvedBy *string, reason string) (*TransitionResult, error)

ApproveForSigning transitions from authorizing to signing (after rule match or manual approval)

func (*StateMachine) CompleteSign

func (sm *StateMachine) CompleteSign(ctx context.Context, reqID types.SignRequestID, signature []byte, signedData []byte) (*TransitionResult, error)

CompleteSign transitions from signing to completed

func (*StateMachine) FailSign

func (sm *StateMachine) FailSign(ctx context.Context, reqID types.SignRequestID, errorMsg string) (*TransitionResult, error)

FailSign transitions from signing to failed

func (*StateMachine) RejectOnAuthorization

func (sm *StateMachine) RejectOnAuthorization(ctx context.Context, reqID types.SignRequestID, rejectedBy string, reason string) (*TransitionResult, error)

RejectOnAuthorization transitions from authorizing to rejected

func (*StateMachine) RejectOnValidation

func (sm *StateMachine) RejectOnValidation(ctx context.Context, reqID types.SignRequestID, reason string) (*TransitionResult, error)

RejectOnValidation transitions from pending to rejected due to validation failure

func (*StateMachine) ValidateAndStartAuthorizing

func (sm *StateMachine) ValidateAndStartAuthorizing(ctx context.Context, reqID types.SignRequestID) (*TransitionResult, error)

ValidateAndStartAuthorizing transitions from pending to authorizing

type TransitionResult

type TransitionResult struct {
	PreviousStatus types.SignRequestStatus
	NewStatus      types.SignRequestStatus
	Reason         string
}

TransitionResult contains the result of a state transition

Jump to

Keyboard shortcuts

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