Documentation
¶
Index ¶
- Constants
- type AccessRequest
- func (a *AccessRequest) Admit() *AccessRequest
- func (s *AccessRequest) GetApprovalRule() ApprovalRule
- func (s *AccessRequest) GetProviderUsername(provider string) string
- func (s *AccessRequest) GetRole(roles []AccessRole) (AccessRole, error)
- func (s *AccessRequest) HasPermissions(user string, groups []string, utype string) bool
- func (s *AccessRequest) SetApprovalRule(rule ApprovalRule) *AccessRequest
- func (s *AccessRequest) SetExpiration(ctx context.Context) *AccessRequest
- func (s *AccessRequest) SetProviderStatusError(provider string, details string, err string) *AccessRequest
- func (s *AccessRequest) SetProviderStatusGranted(provider string, details string, err string) *AccessRequest
- func (s *AccessRequest) SetProviderStatusRevoked(provider string, details string, err string) *AccessRequest
- func (s *AccessRequest) SetProviderUsername(provider string, value string) *AccessRequest
- func (s *AccessRequest) SetProviderUsernames(usernames map[string]string) *AccessRequest
- func (a *AccessRequest) SetRequester(requester string) *AccessRequest
- func (a *AccessRequest) SetStatusApprove(approvedBy string) *AccessRequest
- func (a *AccessRequest) SetStatusDenied(approvedBy string) *AccessRequest
- func (a *AccessRequest) SetStatusExpired() *AccessRequest
- func (a *AccessRequest) SetStatusPending() *AccessRequest
- func (s *AccessRequest) SetTraceId(ctx context.Context) *AccessRequest
- type AccessRequestDetails
- type AccessRequestStatus
- type AccessRole
- type AccessRoleRef
- type ActivityLog
- type ApprovalRule
- type ApprovalRuleRef
- type ClaimsMap
- func (c ClaimsMap) GetMap(key string) map[string]interface{}
- func (c ClaimsMap) GetProviderUsernamesFromClaim(claim string) map[string]string
- func (c ClaimsMap) GetString(key string) string
- func (c ClaimsMap) GetStringSlice(key string) []string
- func (c ClaimsMap) MarshalJSON() ([]byte, error)
- func (c *ClaimsMap) UnmarshalJSON(data []byte) error
- func (c ClaimsMap) Valid() error
- type Credential
- type CredentialFromSecret
- type CredentialRef
- type Event
- type EventAttributes
- type EventParentType
- type Health
- type ProviderConfig
- type ProviderStatus
- type ProviderUsernames
- type User
- type UserProfile
- type UserProfileSettings
Constants ¶
View Source
const ( AccessRequestPending = "Pending" AccessRequestApproved = "Approved" AccessRequestDenied = "Denied" AccessRequestExpired = "Expired" ProviderStatusGranted = "Granted" ProviderStatusRevoked = "Revoked" ProviderStatusError = "Error" )
Access request status constants
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AccessRequest ¶
type AccessRequest struct {
Id string `gorm:"primaryKey" json:"id"`
CreatedAt time.Time `gorm:"index" swaggerignore:"true" json:"createdAt"`
UpdatedAt time.Time `swaggerignore:"true" json:"updatedAt"`
DeletedAt *time.Time `gorm:"index" swaggerignore:"true" json:"deletedAt,omitempty"`
RoleRef AccessRoleRef `gorm:"embedded;embeddedPrefix:roleRef_" json:"roleRef"`
Details AccessRequestDetails `gorm:"embedded;embeddedPrefix:details_" json:"details"`
Status AccessRequestStatus `swaggerignore:"true" gorm:"embedded;embeddedPrefix:status_" json:"status"`
}
Access request
func (*AccessRequest) Admit ¶
func (a *AccessRequest) Admit() *AccessRequest
func (*AccessRequest) GetApprovalRule ¶
func (s *AccessRequest) GetApprovalRule() ApprovalRule
func (*AccessRequest) GetProviderUsername ¶
func (s *AccessRequest) GetProviderUsername(provider string) string
func (*AccessRequest) GetRole ¶
func (s *AccessRequest) GetRole(roles []AccessRole) (AccessRole, error)
func (*AccessRequest) HasPermissions ¶
func (s *AccessRequest) HasPermissions(user string, groups []string, utype string) bool
func (*AccessRequest) SetApprovalRule ¶
func (s *AccessRequest) SetApprovalRule(rule ApprovalRule) *AccessRequest
func (*AccessRequest) SetExpiration ¶
func (s *AccessRequest) SetExpiration(ctx context.Context) *AccessRequest
func (*AccessRequest) SetProviderStatusError ¶
func (s *AccessRequest) SetProviderStatusError(provider string, details string, err string) *AccessRequest
func (*AccessRequest) SetProviderStatusGranted ¶
func (s *AccessRequest) SetProviderStatusGranted(provider string, details string, err string) *AccessRequest
func (*AccessRequest) SetProviderStatusRevoked ¶
func (s *AccessRequest) SetProviderStatusRevoked(provider string, details string, err string) *AccessRequest
func (*AccessRequest) SetProviderUsername ¶
func (s *AccessRequest) SetProviderUsername(provider string, value string) *AccessRequest
func (*AccessRequest) SetProviderUsernames ¶
func (s *AccessRequest) SetProviderUsernames(usernames map[string]string) *AccessRequest
func (*AccessRequest) SetRequester ¶
func (a *AccessRequest) SetRequester(requester string) *AccessRequest
func (*AccessRequest) SetStatusApprove ¶
func (a *AccessRequest) SetStatusApprove(approvedBy string) *AccessRequest
Method to approve the access request
func (*AccessRequest) SetStatusDenied ¶
func (a *AccessRequest) SetStatusDenied(approvedBy string) *AccessRequest
Method to deny the access request
func (*AccessRequest) SetStatusExpired ¶
func (a *AccessRequest) SetStatusExpired() *AccessRequest
Method to expire the access request
func (*AccessRequest) SetStatusPending ¶
func (a *AccessRequest) SetStatusPending() *AccessRequest
Method to set the access request to pending
func (*AccessRequest) SetTraceId ¶
func (s *AccessRequest) SetTraceId(ctx context.Context) *AccessRequest
type AccessRequestDetails ¶
type AccessRequestStatus ¶
type AccessRequestStatus struct {
Status string `json:"status"`
ApprovedBy string `json:"approvedBy"`
RequestedBy string `json:"requestedBy"`
ApprovalRule ApprovalRule `json:"approvalRule" gorm:"serializer:json"`
ProviderUsernames map[string]string `json:"providerUsernames" gorm:"serializer:json"`
ProviderStatuses map[string]ProviderStatus `json:"providerStatuses" gorm:"serializer:json"`
ExpiresAt *time.Time
Trace string `json:"trace"`
}
type AccessRole ¶
type AccessRole struct {
Id string `gorm:"primaryKey" json:"id,omitempty" example:"3b7af992-5a30-4ce1-821b-cac8194a230b"`
Name string `json:"name"`
Description string `json:"description"`
Tags []string `json:"tags" gorm:"serializer:json"`
Annotations map[string]string `json:"annotations" gorm:"serializer:json"`
Providers []ProviderConfig `json:"providers" gorm:"serializer:json"` // Multiple access mappings for the role
ApprovalRuleRef ApprovalRuleRef `json:"approvalRuleRef" gorm:"embedded;embeddedPrefix:approvalRuleRef_"`
}
Access role
func (*AccessRole) GetApprovalRule ¶
func (a *AccessRole) GetApprovalRule(rules []ApprovalRule) ApprovalRule
func (*AccessRole) HasAccessRolePermissions ¶
func (a *AccessRole) HasAccessRolePermissions(user string, groups []string, rules []ApprovalRule) bool
HasApprovalPermission checks if a user is allowed to approve based on the approval rule.
type AccessRoleRef ¶
type AccessRoleRef struct {
Name string `json:"name" example:"SRE-PU-ACCESS"`
}
type ActivityLog ¶ added in v0.3.0
type ActivityLog struct {
ID string `gorm:"primaryKey" json:"id" example:"0d2dab7cdcb4cf1d"`
Date time.Time `gorm:"index" json:"date"`
Severity string `json:"severity"`
RaisedBy string `json:"raisedBy"`
ApprovedBy string `json:"approvedBy"`
Type string `json:"type"`
Role string `json:"role"`
Message string `json:"message"`
RequestID string `json:"requestId"`
EventID string `json:"eventId"`
}
func NewActivityLogFromEvent ¶ added in v0.3.0
func NewActivityLogFromEvent(e Event) (*ActivityLog, error)
type ApprovalRule ¶
type ApprovalRuleRef ¶
type ApprovalRuleRef struct {
Name string `json:"name"`
}
type ClaimsMap ¶
type ClaimsMap struct {
Claims map[string]interface{} `json:"-"`
*jwt.RegisteredClaims `swaggerignore:"true"`
}
ClaimsMap wraps a map[string]interface{} to represent dynamic claims
func NewClaimsMap ¶
func NewClaimsMap() ClaimsMap
func NewUnauthenticatedUserClaims ¶
func NewUnauthenticatedUserClaims() ClaimsMap
func (ClaimsMap) GetProviderUsernamesFromClaim ¶
func (ClaimsMap) GetStringSlice ¶
GetStringSlice extracts a string slice from ClaimsMap.
func (ClaimsMap) MarshalJSON ¶
func (*ClaimsMap) UnmarshalJSON ¶
type Credential ¶
type Credential struct {
Name string `json:"name"`
FromSecret CredentialFromSecret `json:"fromSecret"`
Data map[string]string `json:"data" gorm:"serializer:json"`
}
func (*Credential) GetString ¶
func (c *Credential) GetString(key string) string
type CredentialFromSecret ¶
type CredentialFromSecret struct {
Name string `json:"name"`
}
type CredentialRef ¶
type CredentialRef struct {
Name string `json:"name,omitempty"`
}
type Event ¶ added in v0.3.0
type Event struct {
ID string `gorm:"primaryKey" json:"id" example:"0d2dab7cdcb4cf1d"` // Pod ID
CreatedAt time.Time `swaggerignore:"true" json:"createdAt,omitempty"`
UpdatedAt time.Time `swaggerignore:"true" json:"updatedAt,omitempty"`
TransactionID string `gorm:"index" json:"transactionId" example:"0d2dab7cdcb4cf1d"`
ParentID string `gorm:"index" swaggerignore:"true" json:"parentId"`
ParentType EventParentType `gorm:"index" swaggerignore:"true" json:"parentType"`
Tenant string `gorm:"index" swaggerignore:"true" json:"tenant"`
Attributes EventAttributes `gorm:"embedded;embeddedPrefix:attributes_" json:"attributes"`
Message string `json:"message"`
Data datatypes.JSONMap `swaggerignore:"true" json:"data"`
}
type EventAttributes ¶ added in v0.3.0
type EventAttributes struct {
Source string `gorm:"index" example:"sview-hook" json:"source"`
Type string `gorm:"index" example:"gitlab-mr" json:"type"`
Date time.Time `gorm:"index" example:"2022-02-28 18:03:49.750647+00" json:"date"`
Author string `gorm:"index" example:"john.doe" json:"author"`
}
func (*EventAttributes) UnmarshalJSON ¶ added in v0.3.0
func (a *EventAttributes) UnmarshalJSON(data []byte) error
type EventParentType ¶ added in v0.3.0
type EventParentType string
const ( EventParentApplication EventParentType = "application" EventParentParameter EventParentType = "parameter" EventParentSystem EventParentType = "system" EventParentSecurity EventParentType = "security" )
type ProviderConfig ¶
type ProviderStatus ¶
type ProviderUsernames ¶
type UserProfile ¶
type UserProfile struct {
Id string `gorm:"primaryKey" json:"id"`
Username string `json:"username"`
Settings UserProfileSettings `json:"settings" gorm:"embedded;embeddedPrefix:settings_"`
}
func (*UserProfile) GetUser ¶ added in v0.2.0
func (p *UserProfile) GetUser() User
func (*UserProfile) Validate ¶
func (p *UserProfile) Validate() error
type UserProfileSettings ¶
type UserProfileSettings struct {
ProviderUsernames
}
Click to show internal directories.
Click to hide internal directories.