Documentation ¶
Index ¶
- Constants
- func CleanRelativePath(path string) (string, error)
- func ClientIP(r *http.Request) string
- func ContextWithUserInfo(ctx context.Context) context.Context
- 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 NewAuthClient(cli client.Client) client.Client
- func ProjectFrom(ctx context.Context) (string, bool)
- func SetUsernameAndProjectInRequestContext(req *restful.Request, userName string, projectName string)
- func UsernameFrom(ctx context.Context) (string, bool)
- func WithProject(parent context.Context, project string) context.Context
- func WithUsername(parent context.Context, username string) context.Context
- type MemoryCacheStore
- type ResponseCapture
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 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 NewAuthClient ¶
NewAuthClient will carry UserInfo for mutating requests automatically
func ProjectFrom ¶
ProjectFrom extract project from context
func SetUsernameAndProjectInRequestContext ¶
func SetUsernameAndProjectInRequestContext(req *restful.Request, userName string, projectName string)
SetUsernameAndProjectInRequestContext .
func UsernameFrom ¶
UsernameFrom extract username from context
func WithProject ¶
WithProject carries project in context
Types ¶
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