openapi

package
v1.12.4 Latest Latest
Warning

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

Go to latest
Published: Apr 9, 2024 License: Apache-2.0 Imports: 15 Imported by: 0

Documentation

Index

Constants

View Source
const HTTPScheme = "http"

Variables

View Source
var AllHTTPMethod = "all"
View Source
var ErrNotFoundOASDefinition = errors.New("not found oas definition")
View Source
var (
	ErrRequestFailed = errors.New("request failed")
)

Functions

func ConvertPathVariablesToBrackets

func ConvertPathVariablesToBrackets(path string) string

func ConvertPathVariablesToColons

func ConvertPathVariablesToColons(path string) string

func GetXPermission

func GetXPermission(requestContext context.Context) (*core.RondConfig, error)

GetXPermission can be used by a request handler to get XPermission instance from its context.

func SetupEvaluators added in v1.9.0

func SetupEvaluators(ctx context.Context, logger logging.Logger, oas *OpenAPISpec, opaModuleConfig *core.OPAModuleConfig, options *core.OPAEvaluatorOptions) (core.PartialResultsEvaluators, error)

func WithXPermission

func WithXPermission(requestContext context.Context, permission *core.RondConfig) context.Context

Types

type IgnoreTrailingSlashMap added in v1.8.0

type IgnoreTrailingSlashMap map[string]map[string]bool

func (IgnoreTrailingSlashMap) Add added in v1.8.0

func (i IgnoreTrailingSlashMap) Add(path, verb string, ignore bool)

type LoadOptions added in v1.9.0

type LoadOptions struct {
	APIPermissionsFilePath string
	TargetServiceOASPath   string
	TargetServiceHost      string
}

type OpenAPIPaths

type OpenAPIPaths map[string]PathVerbs

type OpenAPISpec

type OpenAPISpec struct {
	Paths OpenAPIPaths `json:"paths"`
}

func LoadOASFile

func LoadOASFile(APIPermissionsFilePath string) (*OpenAPISpec, error)

func LoadOASFromFileOrNetwork

func LoadOASFromFileOrNetwork(log logging.Logger, config LoadOptions) (*OpenAPISpec, error)

func (*OpenAPISpec) FindPermission

func (oas *OpenAPISpec) FindPermission(OASRouter *bunrouter.CompatRouter, path string, method string) (core.RondConfig, RouterInfo, error)

FIXME: This is not a logic method of OAS, but could be a method of OASRouter

func (*OpenAPISpec) PrepareOASRouter

func (oas *OpenAPISpec) PrepareOASRouter() (*bunrouter.CompatRouter, error)

func (*OpenAPISpec) UnwrapConfiguration added in v1.8.0

func (oas *OpenAPISpec) UnwrapConfiguration() ([]string, map[string][]string, IgnoreTrailingSlashMap)

type PathVerbs

type PathVerbs map[string]VerbConfig

type ResourceFilter

type ResourceFilter struct {
	RowFilter RowFilterConfiguration `json:"rowFilter"`
}

Config v1 //

type ResponseFilterConfiguration

type ResponseFilterConfiguration struct {
	Policy string `json:"policy"`
}

type RouterInfo

type RouterInfo struct {
	MatchedPath   string
	RequestedPath string
	Method        string
}

type RoutesMap

type RoutesMap map[string]bool

type RowFilterConfiguration

type RowFilterConfiguration struct {
	HeaderKey string `json:"headerKey"`
	Enabled   bool   `json:"enabled"`
}

type VerbConfig

type VerbConfig struct {
	PermissionV1 *XPermission     `json:"x-permission"`
	PermissionV2 *core.RondConfig `json:"x-rond"`
}

type XPermission

type XPermission struct {
	AllowPermission string                      `json:"allow"`
	ResponseFilter  ResponseFilterConfiguration `json:"responseFilter"`
	ResourceFilter  ResourceFilter              `json:"resourceFilter"`
	Options         core.PermissionOptions      `json:"options"`
}

type XPermissionKey

type XPermissionKey struct{}

Jump to

Keyboard shortcuts

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