query

package
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: Apr 12, 2023 License: Apache-2.0 Imports: 9 Imported by: 0

Documentation

Overview

Package query provides the client for querying spicedb

Index

Constants

This section is empty.

Variables

View Source
var (
	// ErrActionNotAssigned represents an error condition where the subject is not able to complete
	// the given request.
	ErrActionNotAssigned = errors.New("the subject does not have permissions to complete this request")

	// ErrInvalidReference represents an error condition where a given SpiceDB object reference is for some reason invalid.
	ErrInvalidReference = errors.New("invalid reference")
)

Functions

func GetResourceTypes

func GetResourceTypes() []types.ResourceType

GetResourceTypes returns the list of resource types.

Types

type Engine

type Engine struct {
	// contains filtered or unexported fields
}

Engine represents a client for making permissions queries.

func NewEngine

func NewEngine(namespace string, client *authzed.Client) *Engine

NewEngine returns a new client for making permissions queries.

func (*Engine) AssignSubjectRole

func (e *Engine) AssignSubjectRole(ctx context.Context, subject types.Resource, role types.Role) (string, error)

AssignSubjectRole assigns the given role to the given subject.

func (*Engine) CreateRelationships

func (e *Engine) CreateRelationships(ctx context.Context, rels []types.Relationship) (string, error)

CreateRelationships atomically creates the given relationships in SpiceDB.

func (*Engine) CreateRole

func (e *Engine) CreateRole(ctx context.Context, res types.Resource, actions []string) (types.Role, string, error)

CreateRole creates a role scoped to the given resource with the given actions.

func (*Engine) ListAssignments

func (e *Engine) ListAssignments(ctx context.Context, role types.Role, queryToken string) ([]types.Resource, error)

ListAssignments returns the assigned subjects for a given role.

func (*Engine) ListRelationships

func (e *Engine) ListRelationships(ctx context.Context, resource types.Resource, queryToken string) ([]types.Relationship, error)

ListRelationships returns all non-role relationships bound to a given resource.

func (*Engine) ListRoles

func (e *Engine) ListRoles(ctx context.Context, resource types.Resource, queryToken string) ([]types.Role, error)

ListRoles returns all roles bound to a given resource.

func (*Engine) NewResourceFromURN

func (e *Engine) NewResourceFromURN(urn *urnx.URN) (types.Resource, error)

NewResourceFromURN returns a new resource struct from a given urn

func (*Engine) NewURNFromResource

func (e *Engine) NewURNFromResource(res types.Resource) (*urnx.URN, error)

NewURNFromResource creates a new URN namespaced to the given engine from the given resource.

func (*Engine) SubjectHasPermission

func (e *Engine) SubjectHasPermission(ctx context.Context, subject types.Resource, action string, resource types.Resource, queryToken string) error

SubjectHasPermission checks if the given subject can do the given action on the given resource

type Stores

type Stores struct {
	SpiceDB       *authzed.Client
	SpiceDBPrefix string
}

Stores represents a SpiceDB store.

Jump to

Keyboard shortcuts

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