introspectionenabled

package
v0.10.0 Latest Latest
Warning

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

Go to latest
Published: Aug 30, 2026 License: MIT Imports: 12 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var Check = hxcheckdef.NewCheck(Def, func(ctx context.Context, _ harnessx.Target, store harnessx.ResultStore) (harnessx.Result, error) {
	resources := store.Resources()
	if len(resources) == 0 {
		return harnessx.Result{Skipped: true, SkipReason: "no resources"}, nil
	}
	op, ok := harnessx.ResourceDataAs[*operation.Operation](resources[0])
	if !ok {
		return harnessx.Result{Err: errors.New("introspection_enabled: resource missing *operation.Operation")}, nil
	}
	securityScheme := op.GetSecurityScheme()
	securitySchemes := []*auth.SecurityScheme{securityScheme}

	newRequest, err := newPostGraphqlIntrospectionRequest(ctx, op.URL)
	if err != nil {
		return harnessx.Result{}, err
	}
	newOperation, err := operation.NewOperationFromHTTPRequest(newRequest)
	if err != nil {
		return harnessx.Result{}, err
	}

	newOperation.SetSecuritySchemes(securitySchemes)
	attempt, err := finding.Fetch(ctx, newOperation, securityScheme)
	if err != nil {
		return harnessx.Result{}, err
	}

	if introspectionSucceeded(attempt) {
		return harnessx.Result{Data: &finding.Finding{Operation: op, Attempt: attempt}}, nil
	}

	newRequest, err = newGetGraphqlIntrospectionRequest(ctx, op.URL)
	if err != nil {
		return harnessx.Result{}, err
	}
	newOperation, err = operation.NewOperationFromHTTPRequest(newRequest)
	if err != nil {
		return harnessx.Result{}, err
	}

	newOperation.SetSecuritySchemes(securitySchemes)
	attempt, err = finding.Fetch(ctx, newOperation, securityScheme)
	if err != nil {
		return harnessx.Result{}, err
	}

	if introspectionSucceeded(attempt) {
		return harnessx.Result{Data: &finding.Finding{Operation: op, Attempt: attempt}}, nil
	}

	return harnessx.Result{}, nil
})
View Source
var Def = hxcheckdef.MustParseCheckDefYAML("introspection_enabled", checkYAML)

Functions

This section is empty.

Types

This section is empty.

Jump to

Keyboard shortcuts

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