Documentation
¶
Index ¶
- Variables
- func Evaluate(ctx context.Context, options ...func(r *rego.Rego)) (any, error)
- func EvaluatePrepared(ctx context.Context, preparedQuery *rego.PreparedEvalQuery, ...) (any, error)
- type Policy
- func (r *Policy) Close() error
- func (r *Policy) Compile(ctx context.Context, query string, input any, v ...any) (any, error)
- func (r *Policy) CompilePrepared(ctx context.Context, query string, input any, v ...any) (any, error)
- func (r *Policy) Configure(envs map[string]string) error
- func (r *Policy) Evaluate(ctx context.Context, query string, input any, v ...any) (any, error)
- func (r *Policy) EvaluatePrepared(ctx context.Context, query string, input any, v ...any) (any, error)
- func (r *Policy) Open() error
- type PolicyCompilationEvaluationInput
- type PolicyCompile
- type PolicyCompileData
- type PolicyEvaluate
- type PolicyEvaluationInput
- type PolicyPermission
- type PolicyRole
- type PolicyTimer
Constants ¶
This section is empty.
Variables ¶
View Source
var ( ErrRegoResultsEmpty = errors.New("rego results are empty") ErrNotOpened = errors.New("not opened") )
Functions ¶
func EvaluatePrepared ¶
func EvaluatePrepared(ctx context.Context, preparedQuery *rego.PreparedEvalQuery, options ...rego.EvalOption) (any, error)
Types ¶
type Policy ¶
type Policy struct {
// contains filtered or unexported fields
}
func (*Policy) CompilePrepared ¶
func (*Policy) EvaluatePrepared ¶
type PolicyCompilationEvaluationInput ¶
type PolicyCompilationEvaluationInput struct {
TokenUserId string `json:"tokenUserId"`
UserId string `json:"userId"`
TimerUserId string `json:"timerUserId"`
TimerId string `json:"timerId"`
TimerIds []string `json:"timerIds"`
Roles map[string]PolicyRole `json:"roles"`
Timers map[string]PolicyTimer `json:"timers"`
}
type PolicyCompile ¶
type PolicyCompile struct {
Timers map[string]PolicyTimer `json:"timers"`
Access struct {
Users struct {
Create []string `json:"create"`
Read []string `json:"read"`
Update []string `json:"update"`
Delete []string `json:"delete"`
} `json:"users"`
Timers struct {
Create []string `json:"create"`
Read []string `json:"read"`
Update []string `json:"update"`
Delete []string `json:"delete"`
} `json:"timers"`
} `json:"access"`
}
type PolicyCompileData ¶
type PolicyCompileData struct {
Timers map[string]PolicyTimer `json:"timers"`
Roles map[string]PolicyRole `json:"roles"`
}
type PolicyEvaluate ¶
type PolicyEvaluate struct {
//users
CanCreateUser bool `json:"can_create_user"`
CanReadUser bool `json:"can_read_user"`
CanUpdateUser bool `json:"can_update_user"`
CanDeleteUser bool `json:"can_delete_user"`
//timers
CanCreateTimer bool `jon:"can_create_timer"`
CanReadTimer bool `jon:"can_read_timer"`
CanUpdateTimer bool `jon:"can_update_timer"`
CanDeleteTimer bool `jon:"can_delete_timer"`
}
type PolicyEvaluationInput ¶
type PolicyPermission ¶
type PolicyPermission string
const ( PolicyPermissionUserCreate PolicyPermission = "user_create" PolicyPermissionUserRead PolicyPermission = "user_read" PolicyPermissionUserUpdate PolicyPermission = "user_update" PolicyPermissionUserDelete PolicyPermission = "user_delete" PolicyPermissionTimerCreate PolicyPermission = "timer_create" PolicyPermissionTimerRead PolicyPermission = "timer_read" PolicyPermissionTimerUpdate PolicyPermission = "timer_update" PolicyPermissionTimerDelete PolicyPermission = "timer_delete" )
type PolicyRole ¶
type PolicyRole struct {
Name string `json:"name"`
UserIds []string `json:"userIds"`
Permissions []PolicyPermission `json:"permissions"`
}
type PolicyTimer ¶
Click to show internal directories.
Click to hide internal directories.