internal

package
v0.0.0-...-d86c301 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 12, 2026 License: MIT Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrRegoResultsEmpty = errors.New("rego results are empty")
	ErrNotOpened        = errors.New("not opened")
)

Functions

func Evaluate

func Evaluate(ctx context.Context, options ...func(r *rego.Rego)) (any, error)

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 NewPolicy

func NewPolicy(parameters ...any) *Policy

func (*Policy) Close

func (r *Policy) Close() error

func (*Policy) Compile

func (r *Policy) Compile(ctx context.Context, query string, input any, v ...any) (any, error)

func (*Policy) CompilePrepared

func (r *Policy) CompilePrepared(ctx context.Context, query string, input any, v ...any) (any, error)

func (*Policy) Configure

func (r *Policy) Configure(envs map[string]string) error

func (*Policy) Evaluate

func (r *Policy) Evaluate(ctx context.Context, query string, input any, v ...any) (any, error)

func (*Policy) EvaluatePrepared

func (r *Policy) EvaluatePrepared(ctx context.Context, query string, input any, v ...any) (any, error)

func (*Policy) Open

func (r *Policy) Open() error

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 PolicyEvaluationInput struct {
	TokenUserId string   `json:"tokenUserId"`
	UserId      string   `json:"userId"`
	TimerUserId string   `json:"timerUserId"`
	TimerId     string   `json:"timerId"`
	TimerIds    []string `json:"timerIds"`
	PolicyCompile
}

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

type PolicyTimer struct {
	Id     string `json:"id"`
	UserId string `json:"userId"`
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL