Documentation
¶
Index ¶
- func CreateHandler(svc WarrantService, w http.ResponseWriter, r *http.Request) error
- func DeleteHandler(svc WarrantService, w http.ResponseWriter, r *http.Request) error
- func ListHandler(svc WarrantService, w http.ResponseWriter, r *http.Request) error
- type FilterOptions
- type Model
- type MySQLRepository
- func (repo MySQLRepository) Create(ctx context.Context, model Model) (int64, error)
- func (repo MySQLRepository) DeleteAllByObject(ctx context.Context, objectType string, objectId string) error
- func (repo MySQLRepository) DeleteAllBySubject(ctx context.Context, subjectType string, subjectId string) error
- func (repo MySQLRepository) DeleteById(ctx context.Context, id int64) error
- func (repo MySQLRepository) Get(ctx context.Context, objectType string, objectId string, relation string, ...) (Model, error)
- func (repo MySQLRepository) GetAllMatchingObjectAndRelation(ctx context.Context, objectType string, objectId string, relation string) ([]Model, error)
- func (repo MySQLRepository) GetAllMatchingObjectAndRelationBySubjectType(ctx context.Context, objectType string, objectId string, relation string, ...) ([]Model, error)
- func (repo MySQLRepository) GetAllMatchingObjectRelationAndSubject(ctx context.Context, objectType string, objectId string, relation string, ...) ([]Model, error)
- func (repo MySQLRepository) GetByID(ctx context.Context, id int64) (Model, error)
- func (repo MySQLRepository) List(ctx context.Context, filterOptions *FilterOptions, ...) ([]Model, error)
- type Policy
- type PolicyContext
- type PostgresRepository
- func (repo PostgresRepository) Create(ctx context.Context, model Model) (int64, error)
- func (repo PostgresRepository) DeleteAllByObject(ctx context.Context, objectType string, objectId string) error
- func (repo PostgresRepository) DeleteAllBySubject(ctx context.Context, subjectType string, subjectId string) error
- func (repo PostgresRepository) DeleteById(ctx context.Context, id int64) error
- func (repo PostgresRepository) Get(ctx context.Context, objectType string, objectId string, relation string, ...) (Model, error)
- func (repo PostgresRepository) GetAllMatchingObjectAndRelation(ctx context.Context, objectType string, objectId string, relation string) ([]Model, error)
- func (repo PostgresRepository) GetAllMatchingObjectAndRelationBySubjectType(ctx context.Context, objectType string, objectId string, relation string, ...) ([]Model, error)
- func (repo PostgresRepository) GetAllMatchingObjectRelationAndSubject(ctx context.Context, objectType string, objectId string, relation string, ...) ([]Model, error)
- func (repo PostgresRepository) GetByID(ctx context.Context, id int64) (Model, error)
- func (repo PostgresRepository) List(ctx context.Context, filterOptions *FilterOptions, ...) ([]Model, error)
- type SQLiteRepository
- func (repo SQLiteRepository) Create(ctx context.Context, model Model) (int64, error)
- func (repo SQLiteRepository) DeleteAllByObject(ctx context.Context, objectType string, objectId string) error
- func (repo SQLiteRepository) DeleteAllBySubject(ctx context.Context, subjectType string, subjectId string) error
- func (repo SQLiteRepository) DeleteById(ctx context.Context, id int64) error
- func (repo SQLiteRepository) Get(ctx context.Context, objectType string, objectId string, relation string, ...) (Model, error)
- func (repo SQLiteRepository) GetAllMatchingObjectAndRelation(ctx context.Context, objectType string, objectId string, relation string) ([]Model, error)
- func (repo SQLiteRepository) GetAllMatchingObjectAndRelationBySubjectType(ctx context.Context, objectType string, objectId string, relation string, ...) ([]Model, error)
- func (repo SQLiteRepository) GetAllMatchingObjectRelationAndSubject(ctx context.Context, objectType string, objectId string, relation string, ...) ([]Model, error)
- func (repo SQLiteRepository) GetByID(ctx context.Context, id int64) (Model, error)
- func (repo SQLiteRepository) List(ctx context.Context, filterOptions *FilterOptions, ...) ([]Model, error)
- type SortOptions
- type SubjectSpec
- type Warrant
- func (warrant Warrant) GetCreatedAt() time.Time
- func (warrant Warrant) GetDeletedAt() *time.Time
- func (warrant Warrant) GetID() int64
- func (warrant Warrant) GetObjectId() string
- func (warrant Warrant) GetObjectType() string
- func (warrant Warrant) GetPolicy() Policy
- func (warrant Warrant) GetPolicyHash() string
- func (warrant Warrant) GetRelation() string
- func (warrant Warrant) GetSubjectId() string
- func (warrant Warrant) GetSubjectRelation() string
- func (warrant Warrant) GetSubjectType() string
- func (warrant Warrant) GetUpdatedAt() time.Time
- func (warrant Warrant) String() string
- func (warrant Warrant) ToWarrantSpec() *WarrantSpec
- type WarrantListParamParser
- type WarrantRepository
- type WarrantService
- func (svc WarrantService) Create(ctx context.Context, warrantSpec WarrantSpec) (*WarrantSpec, error)
- func (svc WarrantService) Delete(ctx context.Context, warrantSpec WarrantSpec) error
- func (svc WarrantService) DeleteRelatedWarrants(ctx context.Context, objectType string, objectId string) error
- func (svc WarrantService) Get(ctx context.Context, objectType string, objectId string, relation string, ...) (*WarrantSpec, error)
- func (svc WarrantService) List(ctx context.Context, filterOptions *FilterOptions, ...) ([]*WarrantSpec, error)
- func (svc WarrantService) Routes() ([]service.Route, error)
- type WarrantSpec
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CreateHandler ¶ added in v0.11.0
func CreateHandler(svc WarrantService, w http.ResponseWriter, r *http.Request) error
func DeleteHandler ¶ added in v0.11.0
func DeleteHandler(svc WarrantService, w http.ResponseWriter, r *http.Request) error
func ListHandler ¶ added in v0.11.0
func ListHandler(svc WarrantService, w http.ResponseWriter, r *http.Request) error
Types ¶
type FilterOptions ¶
type FilterOptions struct {
ObjectType string
ObjectId string
Relation string
Subject *SubjectSpec
Policy Policy
ObjectIds []string
SubjectIds []string
}
FilterOptions type for the filter options available on the warrant table
type Model ¶ added in v0.8.0
type Model interface {
GetID() int64
GetObjectType() string
GetObjectId() string
GetRelation() string
GetSubjectType() string
GetSubjectId() string
GetSubjectRelation() string
GetPolicy() Policy
GetPolicyHash() string
GetCreatedAt() time.Time
GetUpdatedAt() time.Time
GetDeletedAt() *time.Time
ToWarrantSpec() *WarrantSpec
String() string
}
type MySQLRepository ¶
type MySQLRepository struct {
database.SQLRepository
}
func NewMySQLRepository ¶
func NewMySQLRepository(db *database.MySQL) MySQLRepository
func (MySQLRepository) DeleteAllByObject ¶
func (MySQLRepository) DeleteAllBySubject ¶
func (MySQLRepository) DeleteById ¶
func (repo MySQLRepository) DeleteById(ctx context.Context, id int64) error
func (MySQLRepository) GetAllMatchingObjectAndRelation ¶
func (MySQLRepository) GetAllMatchingObjectAndRelationBySubjectType ¶ added in v0.16.1
func (MySQLRepository) GetAllMatchingObjectRelationAndSubject ¶ added in v0.18.0
func (MySQLRepository) List ¶
func (repo MySQLRepository) List(ctx context.Context, filterOptions *FilterOptions, listParams service.ListParams) ([]Model, error)
type PolicyContext ¶ added in v0.19.0
type PolicyContext map[string]interface{}
func (PolicyContext) String ¶ added in v0.19.0
func (pc PolicyContext) String() string
type PostgresRepository ¶ added in v0.4.0
type PostgresRepository struct {
database.SQLRepository
}
func NewPostgresRepository ¶ added in v0.4.0
func NewPostgresRepository(db *database.Postgres) PostgresRepository
func (PostgresRepository) DeleteAllByObject ¶ added in v0.4.0
func (PostgresRepository) DeleteAllBySubject ¶ added in v0.4.0
func (PostgresRepository) DeleteById ¶ added in v0.4.0
func (repo PostgresRepository) DeleteById(ctx context.Context, id int64) error
func (PostgresRepository) GetAllMatchingObjectAndRelation ¶ added in v0.4.0
func (PostgresRepository) GetAllMatchingObjectAndRelationBySubjectType ¶ added in v0.16.1
func (PostgresRepository) GetAllMatchingObjectRelationAndSubject ¶ added in v0.18.0
func (PostgresRepository) List ¶ added in v0.4.0
func (repo PostgresRepository) List(ctx context.Context, filterOptions *FilterOptions, listParams service.ListParams) ([]Model, error)
type SQLiteRepository ¶ added in v0.11.0
type SQLiteRepository struct {
database.SQLRepository
}
func NewSQLiteRepository ¶ added in v0.11.0
func NewSQLiteRepository(db *database.SQLite) SQLiteRepository
func (SQLiteRepository) DeleteAllByObject ¶ added in v0.11.0
func (SQLiteRepository) DeleteAllBySubject ¶ added in v0.11.0
func (SQLiteRepository) DeleteById ¶ added in v0.11.0
func (repo SQLiteRepository) DeleteById(ctx context.Context, id int64) error
func (SQLiteRepository) GetAllMatchingObjectAndRelation ¶ added in v0.11.0
func (SQLiteRepository) GetAllMatchingObjectAndRelationBySubjectType ¶ added in v0.16.1
func (SQLiteRepository) GetAllMatchingObjectRelationAndSubject ¶ added in v0.18.0
func (SQLiteRepository) List ¶ added in v0.11.0
func (repo SQLiteRepository) List(ctx context.Context, filterOptions *FilterOptions, listParams service.ListParams) ([]Model, error)
type SortOptions ¶
SortOptions type for sorting filtered results from the warrant table
type SubjectSpec ¶
type SubjectSpec struct {
ObjectType string `json:"objectType,omitempty" validate:"required_with=ObjectId,valid_object_type"`
ObjectId string `json:"objectId,omitempty" validate:"required_with=ObjectType,valid_object_id"`
Relation string `json:"relation,omitempty" validate:"omitempty,valid_relation"`
}
func StringToSubjectSpec ¶
func StringToSubjectSpec(str string) (*SubjectSpec, error)
func (*SubjectSpec) String ¶
func (spec *SubjectSpec) String() string
type Warrant ¶
type Warrant struct {
ID int64 `mysql:"id" postgres:"id" sqlite:"id"`
ObjectType string `mysql:"objectType" postgres:"object_type" sqlite:"objectType"`
ObjectId string `mysql:"objectId" postgres:"object_id" sqlite:"objectId"`
Relation string `mysql:"relation" postgres:"relation" sqlite:"relation"`
SubjectType string `mysql:"subjectType" postgres:"subject_type" sqlite:"subjectType"`
SubjectId string `mysql:"subjectId" postgres:"subject_id" sqlite:"subjectId"`
SubjectRelation string `mysql:"subjectRelation" postgres:"subject_relation" sqlite:"subjectRelation"`
Policy Policy `mysql:"policy" postgres:"policy" sqlite:"policy"`
PolicyHash string `mysql:"policyHash" postgres:"policy_hash" sqlite:"policyHash"`
CreatedAt time.Time `mysql:"createdAt" postgres:"created_at" sqlite:"createdAt"`
UpdatedAt time.Time `mysql:"updatedAt" postgres:"updated_at" sqlite:"updatedAt"`
DeletedAt *time.Time `mysql:"deletedAt" postgres:"deleted_at" sqlite:"deletedAt"`
}
func StringToWarrant ¶
func (Warrant) GetCreatedAt ¶ added in v0.8.0
func (Warrant) GetDeletedAt ¶ added in v0.8.0
func (Warrant) GetObjectId ¶ added in v0.8.0
func (Warrant) GetObjectType ¶ added in v0.8.0
func (Warrant) GetPolicyHash ¶ added in v0.18.0
func (Warrant) GetRelation ¶ added in v0.8.0
func (Warrant) GetSubjectId ¶ added in v0.8.0
func (Warrant) GetSubjectRelation ¶ added in v0.8.0
func (Warrant) GetSubjectType ¶ added in v0.8.0
func (Warrant) GetUpdatedAt ¶ added in v0.8.0
func (Warrant) ToWarrantSpec ¶
func (warrant Warrant) ToWarrantSpec() *WarrantSpec
type WarrantListParamParser ¶
type WarrantListParamParser struct{}
func (WarrantListParamParser) GetDefaultSortBy ¶
func (parser WarrantListParamParser) GetDefaultSortBy() string
func (WarrantListParamParser) GetSupportedSortBys ¶
func (parser WarrantListParamParser) GetSupportedSortBys() []string
func (WarrantListParamParser) ParseValue ¶
func (parser WarrantListParamParser) ParseValue(val string, sortBy string) (interface{}, error)
type WarrantRepository ¶
type WarrantRepository interface {
Create(ctx context.Context, warrant Model) (int64, error)
Get(ctx context.Context, objectType string, objectId string, relation string, subjectType string, subjectId string, subjectRelation string, policyHash string) (Model, error)
GetByID(ctx context.Context, id int64) (Model, error)
GetAllMatchingObjectRelationAndSubject(ctx context.Context, objectType string, objectId string, relation string, subjectType string, subjectId string, subjectRelation string) ([]Model, error)
GetAllMatchingObjectAndRelation(ctx context.Context, objectType string, objectId string, relation string) ([]Model, error)
GetAllMatchingObjectAndRelationBySubjectType(ctx context.Context, objectType string, objectId string, relation string, subjectType string) ([]Model, error)
List(ctx context.Context, filterOptions *FilterOptions, listParams service.ListParams) ([]Model, error)
DeleteById(ctx context.Context, id int64) error
DeleteAllByObject(ctx context.Context, objectType string, objectId string) error
DeleteAllBySubject(ctx context.Context, subjectType string, subjectId string) error
}
func NewRepository ¶
func NewRepository(db database.Database) (WarrantRepository, error)
type WarrantService ¶
type WarrantService struct {
service.BaseService
Repository WarrantRepository
EventSvc event.EventService
ObjectTypeSvc objecttype.ObjectTypeService
}
func NewService ¶
func NewService(env service.Env, repository WarrantRepository, eventSvc event.EventService, objectTypeSvc objecttype.ObjectTypeService) WarrantService
func (WarrantService) Create ¶
func (svc WarrantService) Create(ctx context.Context, warrantSpec WarrantSpec) (*WarrantSpec, error)
func (WarrantService) Delete ¶
func (svc WarrantService) Delete(ctx context.Context, warrantSpec WarrantSpec) error
func (WarrantService) DeleteRelatedWarrants ¶
func (WarrantService) List ¶
func (svc WarrantService) List(ctx context.Context, filterOptions *FilterOptions, listParams service.ListParams) ([]*WarrantSpec, error)
type WarrantSpec ¶
type WarrantSpec struct {
ObjectType string `json:"objectType" validate:"required,valid_object_type"`
ObjectId string `json:"objectId" validate:"required,valid_object_id"`
Relation string `json:"relation" validate:"required,valid_relation"`
Subject *SubjectSpec `json:"subject" validate:"required"`
Policy Policy `json:"policy,omitempty"`
CreatedAt time.Time `json:"createdAt"`
}
func StringToWarrantSpec ¶
func StringToWarrantSpec(warrantString string) (*WarrantSpec, error)
func (WarrantSpec) String ¶
func (spec WarrantSpec) String() string
func (*WarrantSpec) ToMap ¶
func (spec *WarrantSpec) ToMap() map[string]interface{}
func (*WarrantSpec) ToWarrant ¶
func (spec *WarrantSpec) ToWarrant() (*Warrant, error)
Click to show internal directories.
Click to hide internal directories.