Documentation
¶
Index ¶
- Constants
- func RegisterJSVerifier(v JSVerifier)
- type AccessPolicy
- type AccessPolicyComponent
- type AccessPolicyContext
- type AccessPolicyTemplate
- type Action
- type ClientContext
- type JSVerifier
- type PolicyType
- type ResolverContext
- type ServerContext
- type TransformType
- type Transformer
- type UserstoreDataProvenance
- type Validator
Constants ¶
const ( // PolicyTypeInvalid is an invalid policy type PolicyTypeInvalid PolicyType = "invalid" // PolicyTypeCompositeIntersection is the type for composite policies in which all components must be satisfied to grant access PolicyTypeCompositeIntersection = "compositeintersection" // PolicyTypeCompositeUnion is the type for composite policies in which any component must be satisfied to grant access PolicyTypeCompositeUnion = "compositeunion" )
Variables ¶
This section is empty.
Functions ¶
func RegisterJSVerifier ¶
func RegisterJSVerifier(v JSVerifier)
RegisterJSVerifier registers a verifier for JS
Types ¶
type AccessPolicy ¶
type AccessPolicy struct {
ID uuid.UUID `json:"id" validate:"skip"`
Name string `json:"name" validate:"length:1,128" required:"true"`
Description string `json:"description"`
PolicyType PolicyType `json:"policy_type" required:"true"`
TagIDs uuidarray.UUIDArray `json:"tag_ids" validate:"skip"`
Version int `json:"version"`
IsSystem bool `` /* 150-byte string literal not displayed */
Components []AccessPolicyComponent `json:"components" validate:"skip"`
}
AccessPolicy describes an access policy
func (AccessPolicy) GetPaginationKeys ¶ added in v0.7.1
func (AccessPolicy) GetPaginationKeys() pagination.KeyTypes
GetPaginationKeys is part of the pagination.PageableType interface
type AccessPolicyComponent ¶
type AccessPolicyComponent struct {
Policy *userstore.ResourceID `json:"policy,omitempty"`
Template *userstore.ResourceID `json:"template,omitempty"`
TemplateParameters string `json:"template_parameters,omitempty"`
}
AccessPolicyComponent is either an access policy a template paired with parameters to fill it with
func (AccessPolicyComponent) Validate ¶
func (a AccessPolicyComponent) Validate() error
Validate implments Validateable
type AccessPolicyContext ¶
type AccessPolicyContext struct {
Server ServerContext `json:"server"`
Client ClientContext `json:"client"`
User userstore.Record `json:"user"`
}
AccessPolicyContext gets passed to the access policy's function(context, params) at resolution time
type AccessPolicyTemplate ¶
type AccessPolicyTemplate struct {
ucdb.SystemAttributeBaseModel `validate:"skip"`
Name string `db:"name" json:"name" validate:"length:1,128" required:"true"`
Description string `db:"description" json:"description"`
Function string `db:"function" json:"function" required:"true"`
Version int `db:"version" json:"version"`
}
AccessPolicyTemplate describes a template for an access policy
func (*AccessPolicyTemplate) Equals ¶
func (a *AccessPolicyTemplate) Equals(other *AccessPolicyTemplate) bool
Equals returns true if the two templates are equal, ignoring the ID, description, and version fields
func (AccessPolicyTemplate) GetPaginationKeys ¶ added in v0.7.1
func (AccessPolicyTemplate) GetPaginationKeys() pagination.KeyTypes
GetPaginationKeys is part of the pagination.PageableType interface
type ClientContext ¶
type ClientContext map[string]interface{}
ClientContext is passed by the client at resolution time
type JSVerifier ¶
type JSVerifier interface {
RunScript(s string, o string, authzClient *authz.Client) (string, error)
}
JSVerifier specifies a minimal interface to allow verification of JS
type PolicyType ¶
type PolicyType string //revive:disable-line:exported
PolicyType describes the type of an access policy
type ResolverContext ¶
type ResolverContext struct {
Username string `json:"username"`
}
ResolverContext contains automatic data about the authenticated user/system at resolution time
type ServerContext ¶
type ServerContext struct {
// TODO: add token creation time
IPAddress string `json:"ip_address"`
Resolver ResolverContext `json:"resolver"`
Action Action `json:"action"`
}
ServerContext is automatically injected by the server at resolution time
type TransformType ¶
type TransformType string
TransformType describes the type of transform to be performed
const ( // TransformTypePassThrough is a no-op transformation TransformTypePassThrough TransformType = "passthrough" // TransformTypeTransform is a transformation that doesn't tokenize TransformTypeTransform TransformType = "transform" // TransformTypeTokenizeByValue is a transformation that tokenizes the value passed in TransformTypeTokenizeByValue TransformType = "tokenizebyvalue" // TransformTypeTokenizeByReference is a transformation that tokenizes the userstore reference to the value passed in TransformTypeTokenizeByReference TransformType = "tokenizebyreference" )
type Transformer ¶
type Transformer struct {
ID uuid.UUID `json:"id"`
Name string `json:"name" validate:"length:1,128" required:"true"`
Description string `json:"description"`
InputType userstore.DataType `json:"input_type" required:"true"`
TransformType TransformType `json:"transform_type" required:"true"`
TagIDs uuidarray.UUIDArray `json:"tag_ids" validate:"skip"`
Function string `json:"function" required:"true"`
Parameters string `json:"parameters"`
IsSystem bool `` /* 164-byte string literal not displayed */
}
Transformer describes a token transformer
func (*Transformer) Equals ¶
func (g *Transformer) Equals(other *Transformer) bool
Equals returns true if the two policies are equal, ignoring the ID and description fields
func (Transformer) GetPaginationKeys ¶ added in v0.7.1
func (Transformer) GetPaginationKeys() pagination.KeyTypes
GetPaginationKeys is part of the pagination.PageableType interface
func (Transformer) IsPolicyRequiredForExecution ¶
func (g Transformer) IsPolicyRequiredForExecution() bool
IsPolicyRequiredForExecution checks the transformation type and returns if an access policy is required to execute the transformer
type UserstoreDataProvenance ¶
type UserstoreDataProvenance struct {
UserID uuid.UUID `json:"user_id" validate:"notnil"`
ColumnID uuid.UUID `json:"column_id" validate:"notnil"`
}
UserstoreDataProvenance is used by TransformTypeTokenizeByReference to describe the provenance of the data
type Validator ¶
type Validator Transformer // TODO: define separate Validator, just piggybacking on Transformer for now
Validator is used to validate a data type