Documentation
¶
Index ¶
Constants ¶
View Source
const DefaultRedactedValue = "[REDACTED]"
View Source
const RiskPlanSchemaVersion = "redevplugin.capability.risk_plan.v1"
Variables ¶
View Source
var DefaultResponseRedactionPolicy = ResponseRedactionPolicy{ Replacement: DefaultRedactedValue, MaxDepth: 64, }
View Source
var ErrInvalidRiskPlan = errors.New("invalid capability risk plan")
Functions ¶
func NormalizeRiskPlanData ¶
func RedactResponseData ¶
Types ¶
type Adapter ¶
type Adapter interface {
InvokeCapability(ctx context.Context, req Invocation) (Result, error)
}
type Invocation ¶
type Invocation struct {
CapabilityID string `json:"capability_id"`
BindingID string `json:"binding_id,omitempty"`
Method string `json:"method"`
TargetMethod string `json:"target_method,omitempty"`
Effect Effect `json:"effect"`
PluginID string `json:"plugin_id"`
PluginInstanceID string `json:"plugin_instance_id"`
SurfaceInstanceID string `json:"surface_instance_id,omitempty"`
SessionChannelIDHash string `json:"session_channel_id_hash,omitempty"`
BridgeChannelID string `json:"bridge_channel_id,omitempty"`
Arguments map[string]any `json:"arguments,omitempty"`
}
type Registry ¶
type Registry struct {
// contains filtered or unexported fields
}
func NewRegistry ¶
func NewRegistry() *Registry
type ResponseRedactionPolicy ¶
func (ResponseRedactionPolicy) Redact ¶
func (p ResponseRedactionPolicy) Redact(data any) any
type RiskFlag ¶
type RiskFlag struct {
ID string `json:"id"`
Severity RiskSeverity `json:"severity"`
Summary string `json:"summary"`
Description string `json:"description,omitempty"`
RequiresConfirmation bool `json:"requires_confirmation,omitempty"`
RequiresAdmin bool `json:"requires_admin,omitempty"`
DataLossRisk bool `json:"data_loss_risk,omitempty"`
Destructive bool `json:"destructive,omitempty"`
}
type RiskPlan ¶
type RiskPlan struct {
SchemaVersion string `json:"schema_version"`
CapabilityID string `json:"capability_id,omitempty"`
BindingID string `json:"binding_id,omitempty"`
Method string `json:"method,omitempty"`
TargetMethod string `json:"target_method,omitempty"`
Action string `json:"action,omitempty"`
Effect Effect `json:"effect,omitempty"`
ResourceRef string `json:"resource_ref,omitempty"`
ResourceDisplayName string `json:"resource_display_name,omitempty"`
Summary string `json:"summary"`
RiskFlags []RiskFlag `json:"risk_flags"`
RequiresConfirmation bool `json:"requires_confirmation,omitempty"`
RequiresAdmin bool `json:"requires_admin,omitempty"`
DataLossRisk bool `json:"data_loss_risk,omitempty"`
Destructive bool `json:"destructive,omitempty"`
DenyReason string `json:"deny_reason,omitempty"`
Details map[string]any `json:"details,omitempty"`
}
func NewRiskPlan ¶
func NewRiskPlan(inv Invocation, summary string) RiskPlan
func NormalizeRiskPlan ¶
type RiskSeverity ¶
type RiskSeverity string
const ( RiskSeverityInfo RiskSeverity = "info" RiskSeverityLow RiskSeverity = "low" RiskSeverityMedium RiskSeverity = "medium" RiskSeverityHigh RiskSeverity = "high" RiskSeverityCritical RiskSeverity = "critical" )
Click to show internal directories.
Click to hide internal directories.