azcli

package
v0.0.5 Latest Latest
Warning

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

Go to latest
Published: Jan 12, 2026 License: MIT Imports: 13 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var DefaultReadOnlyPatterns = `` /* 455-byte string literal not displayed */
View Source
var DefaultSecurityPolicy = `` /* 197-byte string literal not displayed */

Functions

func RegisterCallAzTool

func RegisterCallAzTool(readOnlyMode bool, defaultSubscription string) mcp.Tool

Types

type AuthConfig

type AuthConfig struct {
	SkipSetup           bool
	AuthMethod          string
	TenantID            string
	ClientID            string
	FederatedTokenFile  string
	ClientSecret        string
	DefaultSubscription string
}

type AuthSetup

type AuthSetup interface {
	Setup(ctx context.Context) error
}

type AuthValidator

type AuthValidator interface {
	ValidateAuth(ctx context.Context) error
}

type AzCliError

type AzCliError struct {
	Type    ErrorType
	Message string
	Command string
	Context map[string]any
}

func NewAzCliError

func NewAzCliError(errType ErrorType, message string, command string) *AzCliError

func (*AzCliError) Error

func (e *AzCliError) Error() string

func (*AzCliError) WithContext

func (e *AzCliError) WithContext(key string, value any) *AzCliError

type Client

type Client interface {
	ExecuteCommand(ctx context.Context, cmdStr string) (*Result, error)
	ValidateCommand(cmdStr string) error
}

func NewClient

func NewClient(cfg ClientConfig) (Client, error)

type ClientConfig

type ClientConfig struct {
	ReadOnlyMode         bool
	EnableSecurityPolicy bool
	Timeout              time.Duration
	WorkingDir           string
	SecurityPolicyFile   string
	ReadOnlyPatternsFile string
	AuthSetup            AuthSetup
}

type DefaultAuthSetup

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

func NewDefaultAuthSetup

func NewDefaultAuthSetup(config AuthConfig) *DefaultAuthSetup

func (*DefaultAuthSetup) Setup

func (s *DefaultAuthSetup) Setup(ctx context.Context) error

type DefaultAuthValidator

type DefaultAuthValidator struct{}

func (*DefaultAuthValidator) ValidateAuth

func (v *DefaultAuthValidator) ValidateAuth(ctx context.Context) error

type DefaultClient

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

func (*DefaultClient) ExecuteCommand

func (c *DefaultClient) ExecuteCommand(ctx context.Context, cmdStr string) (*Result, error)

func (*DefaultClient) ValidateCommand

func (c *DefaultClient) ValidateCommand(cmdStr string) error

type DefaultExecutor

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

func NewDefaultExecutor

func NewDefaultExecutor(config ExecutorConfig) *DefaultExecutor

func (*DefaultExecutor) Execute

func (e *DefaultExecutor) Execute(ctx context.Context, cmdStr string) (*Result, error)

type DefaultValidator

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

func NewDefaultValidator

func NewDefaultValidator(cfg ClientConfig) (*DefaultValidator, error)

func (*DefaultValidator) Validate

func (v *DefaultValidator) Validate(cmdStr string) error

type ErrorType

type ErrorType string
const (
	ErrorTypeInvalidCommand ErrorType = "invalid_command"
	ErrorTypeCommandDenied  ErrorType = "command_denied"
	ErrorTypeExecution      ErrorType = "execution_failed"
	ErrorTypeTimeout        ErrorType = "timeout"
	ErrorTypeParseOutput    ErrorType = "parse_output"
	ErrorTypeAuth           ErrorType = "auth_failed"
)

type Executor

type Executor interface {
	Execute(ctx context.Context, cmdStr string) (*Result, error)
}

type ExecutorConfig

type ExecutorConfig struct {
	Timeout        time.Duration
	WorkingDir     string
	MaxOutputSize  int64
	AllowedEnvVars []string
}

type PolicyRules

type PolicyRules struct {
	DenyList []string `yaml:"denyList"`
}

type ReadOnlyPatterns

type ReadOnlyPatterns struct {
	Patterns []string `yaml:"patterns"`
}

func LoadReadOnlyPatterns

func LoadReadOnlyPatterns(filePath string) (*ReadOnlyPatterns, error)

type Result

type Result struct {
	Output   json.RawMessage
	ExitCode int
	Error    string
	Duration time.Duration
}

type SecurityPolicy

type SecurityPolicy struct {
	Version string      `yaml:"version"`
	Policy  PolicyRules `yaml:"policy"`
}

func LoadSecurityPolicy

func LoadSecurityPolicy(filePath string) (*SecurityPolicy, error)

type Validator

type Validator interface {
	Validate(cmdStr string) error
}

Jump to

Keyboard shortcuts

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