Documentation ¶
Index ¶
- Constants
- Variables
- func ConvertPathVariablesToBrackets(path string) string
- func ConvertPathVariablesToColons(path string) string
- func GetXPermission(requestContext context.Context) (*core.RondConfig, error)
- func SetupEvaluators(ctx context.Context, logger logging.Logger, oas *OpenAPISpec, ...) (core.PartialResultsEvaluators, error)
- func WithXPermission(requestContext context.Context, permission *core.RondConfig) context.Context
- type IgnoreTrailingSlashMap
- type LoadOptions
- type OpenAPIPaths
- type OpenAPISpec
- func (oas *OpenAPISpec) FindPermission(OASRouter *bunrouter.CompatRouter, path string, method string) (core.RondConfig, RouterInfo, error)
- func (oas *OpenAPISpec) PrepareOASRouter() (*bunrouter.CompatRouter, error)
- func (oas *OpenAPISpec) UnwrapConfiguration() ([]string, map[string][]string, IgnoreTrailingSlashMap)
- type PathVerbs
- type ResourceFilter
- type ResponseFilterConfiguration
- type RouterInfo
- type RoutesMap
- type RowFilterConfiguration
- type VerbConfig
- type XPermission
- type XPermissionKey
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")
)
View Source
var OasSupportedHTTPMethods = []string{ http.MethodGet, http.MethodPost, http.MethodPut, http.MethodPatch, http.MethodDelete, http.MethodHead, }
Functions ¶
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 ¶
Types ¶
type IgnoreTrailingSlashMap ¶ added in v1.8.0
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 OpenAPIPaths ¶
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 RowFilterConfiguration ¶
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{}
Click to show internal directories.
Click to hide internal directories.