Documentation ¶
Index ¶
- Constants
- func CleanRelativePath(path string) (string, error)
- func ClientIP(r *http.Request) string
- func ContextWithUserInfo(ctx context.Context) context.Context
- func EqualSlice(a, b []string) bool
- func ExtractPagingParams(req *restful.Request, minPageSize, maxPageSize int) (int, int, error)
- func GenerateVersion(pre string) string
- func GetDexConnectors(ctx context.Context, k8sClient client.Client) ([]map[string]interface{}, error)
- func MapKey2Array(source map[string]string) []string
- func NewAuthClient(cli client.Client) client.Client
- func ProjectFrom(ctx context.Context) (string, bool)
- func SetUsernameAndProjectInRequestContext(req *http.Request, userName string, projectName string, userRole []string)
- func SliceIncludeSlice(a, b []string) bool
- func ThreeWaySliceCompare(a []string, b []string) ([]string, []string, []string)
- func UserRoleFrom(ctx context.Context) ([]string, bool)
- func UsernameFrom(ctx context.Context) (string, bool)
- func WithProject(parent context.Context, project string) context.Context
- func WithUserRole(parent context.Context, roles []string) context.Context
- func WithUsername(parent context.Context, username string) context.Context
- type FilterChain
- type FilterFunction
- type MemoryCacheStore
- type ResponseCapture
- type RouteFunction
Constants ¶
const KubeVelaAdminGroupPrefix = "kubevela:admin:"
KubeVelaAdminGroupPrefix the prefix kubevela admin
const KubeVelaProjectGroupPrefix = "kubevela:project:"
KubeVelaProjectGroupPrefix the prefix kubevela project
const KubeVelaProjectReadGroupPrefix = "kubevela:project-ro:"
KubeVelaProjectReadGroupPrefix the prefix kubevela project group that only has the read permissions
const TemplateReaderGroup = "template-reader"
TemplateReaderGroup This group includes the permission that read the ConfigMap in the vela-system namespace.
const UXDefaultGroup = "kubevela:ux"
UXDefaultGroup This group means directly using the original identity registered by the cluster.
Variables ¶
This section is empty.
Functions ¶
func CleanRelativePath ¶
CleanRelativePath returns the shortest path name equivalent to path by purely lexical processing. It make sure the provided path is rooted and then uses filepath.Clean and filepath.Rel to make sure the path doesn't include any separators or elements that shouldn't be there like ., .., //.
func ContextWithUserInfo ¶
ContextWithUserInfo extract user from context (parse username and project) for impersonation
func EqualSlice ¶ added in v1.9.1
EqualSlice checks if two slice are equal
func ExtractPagingParams ¶
ExtractPagingParams extract `page` and `pageSize` params from request
func GenerateVersion ¶
GenerateVersion Generate version numbers by time
func GetDexConnectors ¶
func GetDexConnectors(ctx context.Context, k8sClient client.Client) ([]map[string]interface{}, error)
GetDexConnectors returns the dex connectors for Dex connector controller
func MapKey2Array ¶ added in v1.9.1
MapKey2Array convery map keys to array
func NewAuthClient ¶
NewAuthClient will carry UserInfo for mutating requests automatically
func ProjectFrom ¶
ProjectFrom extract project from context
func SetUsernameAndProjectInRequestContext ¶
func SetUsernameAndProjectInRequestContext(req *http.Request, userName string, projectName string, userRole []string)
SetUsernameAndProjectInRequestContext .
func SliceIncludeSlice ¶ added in v1.9.1
SliceIncludeSlice the slice include the b slice
func ThreeWaySliceCompare ¶ added in v1.9.1
ThreeWaySliceCompare will compare two string slice, with the three return values: [both in A and B], [only in A], [only in B]
func UserRoleFrom ¶
UserRoleFrom extract user role from context
func UsernameFrom ¶
UsernameFrom extract username from context
func WithProject ¶
WithProject carries project in context
func WithUserRole ¶
WithUserRole carries user role in context
Types ¶
type FilterChain ¶
type FilterChain struct {
// contains filtered or unexported fields
}
FilterChain the filter to handle the http request
func NewFilterChain ¶
func NewFilterChain(target RouteFunction, filters ...FilterFunction) *FilterChain
NewFilterChain create a filter chain
func (*FilterChain) ProcessFilter ¶
func (f *FilterChain) ProcessFilter(request *http.Request, response http.ResponseWriter)
ProcessFilter passes the request,response pair through the next of Filters. Each filter can decide to proceed to the next Filter or handle the Response itself.
type FilterFunction ¶
type FilterFunction func(*http.Request, http.ResponseWriter, *FilterChain)
FilterFunction definitions must call ProcessFilter on the FilterChain to pass on the control and eventually call the RouteFunction
type MemoryCacheStore ¶
type MemoryCacheStore struct {
// contains filtered or unexported fields
}
MemoryCacheStore a sample memory cache instance, if data set cache duration, will auto clear after timeout. But, Expired cleanup is not necessarily accurate, it has a 3-second window.
func NewMemoryCacheStore ¶
func NewMemoryCacheStore(ctx context.Context) *MemoryCacheStore
NewMemoryCacheStore memory cache store
func (*MemoryCacheStore) Delete ¶
func (m *MemoryCacheStore) Delete(key interface{})
Delete cache data from store
func (*MemoryCacheStore) Get ¶
func (m *MemoryCacheStore) Get(key interface{}) (value interface{})
Get cache data from store, if not exist or timeout, will return nil
func (*MemoryCacheStore) Put ¶
func (m *MemoryCacheStore) Put(key, value interface{}, cacheDuration time.Duration)
Put cache data, if cacheDuration>0, store will clear data after timeout.
type ResponseCapture ¶
type ResponseCapture struct { http.ResponseWriter // contains filtered or unexported fields }
ResponseCapture capture response and get response info
func NewResponseCapture ¶
func NewResponseCapture(w http.ResponseWriter) *ResponseCapture
NewResponseCapture new response capture
func (ResponseCapture) Bytes ¶
func (c ResponseCapture) Bytes() []byte
Bytes return response body bytes
func (ResponseCapture) Header ¶
func (c ResponseCapture) Header() http.Header
Header return response writer header
func (ResponseCapture) StatusCode ¶
func (c ResponseCapture) StatusCode() int
StatusCode return status code
func (ResponseCapture) Write ¶
func (c ResponseCapture) Write(data []byte) (int, error)
Write write data to response writer and body
func (*ResponseCapture) WriteHeader ¶
func (c *ResponseCapture) WriteHeader(statusCode int)
WriteHeader write header to response writer
type RouteFunction ¶
type RouteFunction func(*http.Request, http.ResponseWriter)
RouteFunction declares the signature of a function that can be bound to a Route.