Documentation ¶
Index ¶
- Variables
- type AuthnService
- type Check
- type ConfigRepository
- type Filter
- type OrgService
- type ProjectService
- type RelationService
- type Repository
- type Resource
- type Service
- func (s Service) AddProjectToResource(ctx context.Context, projectID string, res Resource) error
- func (s Service) AddResourceOwner(ctx context.Context, res Resource) error
- func (s Service) BatchCheck(ctx context.Context, checks []Check) ([]relation.CheckPair, error)
- func (s Service) CheckAuthz(ctx context.Context, check Check) (bool, error)
- func (s Service) Create(ctx context.Context, res Resource) (Resource, error)
- func (s Service) Delete(ctx context.Context, namespaceID, id string) error
- func (s Service) Get(ctx context.Context, id string) (Resource, error)
- func (s Service) List(ctx context.Context, flt Filter) ([]Resource, error)
- func (s Service) Update(ctx context.Context, resource Resource) (Resource, error)
- type YAML
Constants ¶
This section is empty.
Variables ¶
View Source
var ( ErrNotExist = errors.New("resource doesn't exist") ErrInvalidUUID = errors.New("invalid syntax of uuid") ErrInvalidID = errors.New("resource id is invalid") ErrInvalidURN = errors.New("resource urn is invalid") ErrConflict = errors.New("resource already exist") ErrInvalidDetail = errors.New("invalid resource detail") )
Functions ¶
This section is empty.
Types ¶
type AuthnService ¶
type AuthnService interface {
GetPrincipal(ctx context.Context, via ...authenticate.ClientAssertion) (authenticate.Principal, error)
}
type ConfigRepository ¶
type OrgService ¶
type OrgService interface {
Get(ctx context.Context, idOrName string) (organization.Organization, error)
}
type ProjectService ¶
type RelationService ¶
type RelationService interface { Create(ctx context.Context, rel relation.Relation) (relation.Relation, error) CheckPermission(ctx context.Context, rel relation.Relation) (bool, error) BatchCheckPermission(ctx context.Context, relations []relation.Relation) ([]relation.CheckPair, error) Delete(ctx context.Context, rel relation.Relation) error }
type Repository ¶
type Repository interface { GetByID(ctx context.Context, id string) (Resource, error) GetByURN(ctx context.Context, urn string) (Resource, error) Create(ctx context.Context, resource Resource) (Resource, error) List(ctx context.Context, flt Filter) ([]Resource, error) Update(ctx context.Context, resource Resource) (Resource, error) Delete(ctx context.Context, id string) error }
type Resource ¶
type Resource struct { ID string `json:"id"` URN string `json:"urn"` Name string `json:"name"` Title string `json:"title"` ProjectID string `json:"project_id"` NamespaceID string `json:"namespace_id"` PrincipalID string `json:"principal_id"` PrincipalType string `json:"principal_type"` Metadata metadata.Metadata CreatedAt time.Time UpdatedAt time.Time }
type Service ¶
type Service struct {
// contains filtered or unexported fields
}
func NewService ¶
func NewService(repository Repository, configRepository ConfigRepository, relationService RelationService, authnService AuthnService, projectService ProjectService, orgService OrgService) *Service
func (Service) AddProjectToResource ¶
func (Service) AddResourceOwner ¶
func (Service) BatchCheck ¶ added in v0.7.4
func (Service) CheckAuthz ¶
Click to show internal directories.
Click to hide internal directories.