Documentation
¶
Index ¶
- type CapabilityAwareExecutor
- type CapabilityContext
- type CapabilitySystem
- func (cs *CapabilitySystem) AcquireLock(capability types.Capability, key, holder string) (*LockResult, error)
- func (cs *CapabilitySystem) CheckConflicts(effect1, effect2 effectus.Effect, cap1, cap2 types.Capability) bool
- func (cs *CapabilitySystem) CleanupExpiredLocks()
- func (cs *CapabilitySystem) GetActiveLocks() map[string]LockInfo
- func (cs *CapabilitySystem) RegisterResourcePolicy(policy *ResourcePolicy)
- func (cs *CapabilitySystem) ValidateCapability(effect effectus.Effect, requiredCapability types.Capability) error
- func (cs *CapabilitySystem) ValidateCapabilityForHolder(effect effectus.Effect, requiredCapability types.Capability, holder string) error
- type CapabilityValidator
- type DefaultCapabilityValidator
- type LockInfo
- type LockResult
- type ResourcePolicy
- type TimeBasedCapabilityValidator
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
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 ¶
func (dcv *DefaultCapabilityValidator) Validate(ctx CapabilityContext) error
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 ¶
func (tbcv *TimeBasedCapabilityValidator) Validate(ctx CapabilityContext) error
Validate implements CapabilityValidator