capability

package
v0.3.0 Latest Latest
Warning

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

Go to latest
Published: Sep 1, 2026 License: MIT Imports: 8 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type CapabilityAwareExecutor

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

CapabilityAwareExecutor wraps an executor with capability checking

func NewCapabilityAwareExecutor

func NewCapabilityAwareExecutor(executor effectus.Executor, capSystem *CapabilitySystem, holderID string) *CapabilityAwareExecutor

NewCapabilityAwareExecutor creates a new capability-aware executor

func (*CapabilityAwareExecutor) Do

func (cae *CapabilityAwareExecutor) Do(effect effectus.Effect) (interface{}, error)

Do executes through the legacy context-free API.

func (*CapabilityAwareExecutor) DoContext

func (cae *CapabilityAwareExecutor) DoContext(ctx context.Context, effect effectus.Effect) (interface{}, error)

DoContext executes an effect with capability checking, locking, and cancellation.

type CapabilityContext

type CapabilityContext struct {
	Effect     effectus.Effect
	Capability types.Capability
	Key        string
	Holder     string
	Timestamp  time.Time
}

CapabilityContext provides context for capability validation

type CapabilitySystem

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

CapabilitySystem provides comprehensive capability-based protection

func NewCapabilitySystem

func NewCapabilitySystem() *CapabilitySystem

NewCapabilitySystem creates a new capability system

func (*CapabilitySystem) AcquireLock

func (cs *CapabilitySystem) AcquireLock(capability types.Capability, key, holder string) (*LockResult, error)

AcquireLock attempts to acquire a capability-based lock

func (*CapabilitySystem) CheckConflicts

func (cs *CapabilitySystem) CheckConflicts(effect1, effect2 effectus.Effect, cap1, cap2 types.Capability) bool

CheckConflicts checks if two effects would conflict based on their capabilities

func (*CapabilitySystem) CleanupExpiredLocks

func (cs *CapabilitySystem) CleanupExpiredLocks()

CleanupExpiredLocks removes expired locks from the system

func (*CapabilitySystem) GetActiveLocks

func (cs *CapabilitySystem) GetActiveLocks() map[string]LockInfo

GetActiveLocks returns information about currently active locks

func (*CapabilitySystem) RegisterResourcePolicy

func (cs *CapabilitySystem) RegisterResourcePolicy(policy *ResourcePolicy)

RegisterResourcePolicy registers a capability policy for a resource type

func (*CapabilitySystem) ValidateCapability

func (cs *CapabilitySystem) ValidateCapability(effect effectus.Effect, requiredCapability types.Capability) error

ValidateCapability validates an effect for callers that do not identify a holder.

func (*CapabilitySystem) ValidateCapabilityForHolder

func (cs *CapabilitySystem) ValidateCapabilityForHolder(effect effectus.Effect, requiredCapability types.Capability, holder string) error

ValidateCapabilityForHolder validates an effect and gives policy validators the identity that will own the resource lock.

type CapabilityValidator

type CapabilityValidator interface {
	Validate(ctx CapabilityContext) error
}

CapabilityValidator checks if a capability request should be allowed

type DefaultCapabilityValidator

type DefaultCapabilityValidator struct{}

DefaultCapabilityValidator provides basic capability validation

func (*DefaultCapabilityValidator) Validate

Validate implements CapabilityValidator

type LockInfo

type LockInfo struct {
	Capability string
	Key        string
	Holder     string
	Acquired   time.Time
	Expires    time.Time
	Exclusive  bool
}

LockInfo provides information about a lock

type LockResult

type LockResult struct {
	LockID        string
	FenceToken    int64
	Guarantee     fencing.Guarantee
	FencingStatus invocation.FencingStatus
	ExpiresAt     time.Time
	Unlock        func()
}

LockResult represents the result of acquiring a lock

type ResourcePolicy

type ResourcePolicy struct {
	ResourceType       string
	RequiredCapability types.Capability
	AllowConcurrent    bool
	MaxConcurrency     int
	DefaultTimeout     time.Duration
	Validators         []CapabilityValidator
}

ResourcePolicy defines capability requirements for a resource type

type TimeBasedCapabilityValidator

type TimeBasedCapabilityValidator struct {
	AllowedHours []int // Hours when operations are allowed (0-23)
}

TimeBasedCapabilityValidator validates capabilities based on time constraints

func (*TimeBasedCapabilityValidator) Validate

Validate implements CapabilityValidator

Jump to

Keyboard shortcuts

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