handler

package
v0.0.0-...-4b1ed1d Latest Latest
Warning

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

Go to latest
Published: Dec 18, 2025 License: Apache-2.0 Imports: 28 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ForbiddenModeError

func ForbiddenModeError(mode string) error

func ForbiddenPathError

func ForbiddenPathError(path string) error

func ForbiddenTypeError

func ForbiddenTypeError(typ string) error

Types

type Arguments

type Arguments struct {
	// Request
	Proto      *string          `json:"proto,omitempty"`
	Method     *string          `json:"method,omitempty"`
	RequestURI *string          `json:"uri,omitempty"`
	Header     *http.Header     `json:"headers,omitempty"`
	Host       *string          `json:"host,omitempty"`
	Path       *string          `json:"path,omitempty"`
	Query      *url.Values      `json:"query,omitempty"`
	RemoteAddr *string          `json:"remoteAddr,omitempty"`
	BodyHash   *string          `json:"bodyHash,omitempty"`
	Body       *string          `json:"body,omitempty"`
	TLS        *ConnectionState `json:"tls"`

	// Environment
	Options  *options.Options `json:"options,omitempty"`
	BasePath *string          `json:"basePath,omitempty"`

	// Error handling
	Error  *Error      `json:"error"`
	Result *EvalResult `json:"result,omitempty"`
}

func (*Arguments) Request

func (a *Arguments) Request() (req *http.Request, err error)

type Certificate

type Certificate struct {
	SerialNumber                string   `json:"serialNumber"`
	Issuer                      string   `json:"issuer"`
	Subject                     string   `json:"subject"`
	NotBefore                   int64    `json:"notBefore"`
	NotAfter                    int64    `json:"notAfter"`
	KeyUsage                    string   `json:"keyUsage"`
	ExtKeyUsage                 []string `json:"extKeyUsage"`
	SignatureAlgorithm          string   `json:"signatureAlgorithm"`
	PublicKeyAlgorithm          string   `json:"publicKeyAlgorithm"`
	Version                     int      `json:"version"`
	OCSPServer                  []string `json:"ocspServer"`
	IssuingCertificateURL       []string `json:"issuingCertificateURL"`
	DNSNames                    []string `json:"dnsNames"`
	EmailAddresses              []string `json:"emailAddresses"`
	IPAddresses                 []string `json:"ipAddresses"`
	URIs                        []string `json:"uris"`
	PermittedDNSDomainsCritical bool     `json:"permittedDNSDomainsCritical"`
	PermittedDNSDomains         []string `json:"permittedDNSDomains"`
	ExcludedDNSDomains          []string `json:"excludedDNSDomains"`
	PermittedIPRanges           []string `json:"permittedIPRanges"`
	ExcludedIPRanges            []string `json:"excludedIPRanges"`
	PermittedEmailAddresses     []string `json:"permittedEmailAddresses"`
	ExcludedEmailAddresses      []string `json:"excludedEmailAddresses"`
	PermittedURIDomains         []string `json:"permittedURIDomains"`
	ExcludedURIDomains          []string `json:"excludedURIDomains"`
}

type ConnectionState

type ConnectionState struct {
	Version            string           `json:"version"`
	HandshakeComplete  bool             `json:"handshakeComplete"`
	DidResume          bool             `json:"didResume"`
	CipherSuite        string           `json:"cipherSuite"`
	NegotiatedProtocol string           `json:"negotiatedProtocol"`
	ServerName         string           `json:"serverName"`
	PeerCertificates   []*Certificate   `json:"peerCertificates"`
	VerifiedChains     [][]*Certificate `json:"verifiedChains"`
}

type Error

type Error struct {
	Error error `json:"error,omitempty"`

	Status int `json:"status,omitempty"`

	Path       string        `json:"path,omitempty"`
	Args       []string      `json:"args,omitempty"`
	Env        []string      `json:"env,omitempty"`
	Dir        string        `json:"dir,omitempty"`
	Exited     bool          `json:"exited,omitempty"`
	PID        int           `json:"pid,omitempty"`
	Time       time.Duration `json:"time,omitempty"`
	ExitStatus int           `json:"exitStatus,omitempty"`
	TermSignal int           `json:"termSignal,omitempty"`
	StopSignal int           `json:"stopSignal,omitempty"`
	CoreDump   bool          `json:"coreDump,omitempty"`

	Stdout string `json:"stdout,omitempty"`
	Stderr string `json:"stderr,omitempty"`
}

func Errorf

func Errorf(status int, format string, args ...any) *Error

func NewError

func NewError(err error) (e *Error)

type EvalCacheIgnore

type EvalCacheIgnore struct {
	Args    []string `json:"args,omitempty"`
	Headers []string `json:"headers,omitempty"`
	Query   []string `json:"query,omitempty"`
}

type EvalResult

type EvalResult struct {
	Status  int                 `json:"status,omitempty"`
	Headers map[string][]string `json:"headers,omitempty"`

	Mode      string            `json:"mode,omitempty"`
	Type      string            `json:"type,omitempty"`
	Body      string            `json:"body,omitempty"`
	SubPath   string            `json:"subPath,omitempty"`
	Args      []string          `json:"args,omitempty"`
	Env       map[string]string `json:"env,omitempty"`
	Output    string            `json:"output,omitempty"`
	Stream    bool              `json:"stream,omitempty"`
	Recursive bool              `json:"recursive,omitempty"`
	Rebuild   bool              `json:"rebuild,omitempty"`
	PTY       bool              `json:"pty,omitempty"`
}

type Handler

type Handler struct {
	InspectResult InspectResult

	Expression string
	File       string

	FlakeAttribute string
	FlakeReference string
	FlakeStorePath string
	// contains filtered or unexported fields
}

func NewHandler

func NewHandler(opts options.Options) (h *Handler, err error)

func (*Handler) ArgumentsFromRequest

func (h *Handler) ArgumentsFromRequest(req *http.Request) (args Arguments, err error)

func (*Handler) ListenAndServe

func (h *Handler) ListenAndServe(addr string, rdTo, wrTo time.Duration, tlsCertFilename, tlsKeyFilename string) (err error)

func (*Handler) ServeHTTP

func (h *Handler) ServeHTTP(wr http.ResponseWriter, req *http.Request)

func (*Handler) Test

func (h *Handler) Test(testSpecsFilename string, overwriteResults bool) error

type InspectResult

type InspectResult struct {
	Description string `json:"description,omitempty"`
	Path        string `json:"path,omitempty"`

	EvalCacheIgnore EvalCacheIgnore `json:"evalCacheIgnore,omitempty"`

	ExpectedArgs map[string]bool `json:"expectedArgs,omitempty"`
	Pure         bool            `json:"pure,omitempty"`

	EvalArgs []string `json:"evalArgs,omitempty"`
	PTY      bool     `json:"pty,omitempty"`
}

type Request

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

func (*Request) Handle

func (r *Request) Handle() (err error)

type TestCase

type TestCase struct {
	Name string `json:"name"`

	Arguments      Arguments   `json:"arguments"`
	ExpectedResult *EvalResult `json:"results"`

	Recorder     *httptest.ResponseRecorder `json:"-"`
	ActualResult *EvalResult                `json:"-"`
}

func (*TestCase) Run

func (tc *TestCase) Run(h *Handler, overwriteResults bool) (err error)

Jump to

Keyboard shortcuts

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