Documentation
¶
Index ¶
- Constants
- Variables
- type AppGroup
- type AppServeApp
- type AppServeAppTask
- type Application
- type Audit
- type CacheEmailCode
- type CloudAccount
- type Cluster
- type ClusterDomain
- type ClusterFavorite
- type Dashboard
- type Endpoint
- type ExpiredTokenTime
- type Organization
- type Permission
- type PermissionKind
- type PermissionSet
- type Policy
- type PolicyCount
- type PolicyTargetCluster
- type PolicyTemplate
- func (pt *PolicyTemplate) AfterFind(tx *gorm.DB) (err error)
- func (pt *PolicyTemplate) BeforeCreate(tx *gorm.DB) (err error)
- func (pt *PolicyTemplate) IsOrganizationTemplate() bool
- func (pt *PolicyTemplate) IsPermittedToOrganization(organizationId *string) bool
- func (pt *PolicyTemplate) IsTksTemplate() bool
- func (pt *PolicyTemplate) ResoureName() string
- type PolicyTemplatePermittedOrganization
- type PolicyTemplateSupportedVersion
- type Project
- type ProjectMember
- type ProjectNamespace
- type ProjectRole
- type ProjectStack
- type ProjectUser
- type Role
- type Stack
- type StackConf
- type StackTemplate
- type StackTemplateOrganization
- type SystemNotification
- type SystemNotificationAction
- type SystemNotificationCondition
- type SystemNotificationMetricParameter
- type SystemNotificationRule
- type SystemNotificationTemplate
- type UsageCount
- type User
Constants ¶
View Source
const ( DashBoardPermission PermissionKind = "대시보드" StackPermission PermissionKind = "스택" PolicyPermission PermissionKind = "정책" ProjectPermission PermissionKind = "프로젝트" NotificationPermission PermissionKind = "알림" ConfigurationPermission PermissionKind = "설정" ClusterAccessControl PermissionKind = "클러스터 접근 제어" OperationRead = "READ" OperationCreate = "CREATE" OperationUpdate = "UPDATE" OperationDelete = "DELETE" OperationDownload = "DOWNLOAD" // Key TopDashboardKey = "DASHBOARD" MiddleDashboardKey = "DASHBOARD-DASHBOARD" TopStackKey = "STACK" MiddleStackKey = "STACK-STACK" MiddleClusterAccessControlKey = "STACK-CLUSTER_ACCESS_CONTROL" TopPolicyKey = "POLICY" MiddlePolicyKey = "POLICY-POLICY" TopNotificationKey = "NOTIFICATION" MiddleNotificationKey = "NOTIFICATION-SYSTEM_NOTIFICATION" MiddlePolicyNotificationKey = "NOTIFICATION-POLICY_NOTIFICATION" TopProjectKey = "PROJECT" MiddleProjectKey = "PROJECT-PROJECT_LIST" MiddleProjectCommonConfigurationKey = "PROJECT-PROJECT_COMMON_CONFIGURATION" MiddleProjectMemberConfigurationKey = "PROJECT-PROJECT_MEMBER_CONFIGURATION" MiddleProjectNamespaceKey = "PROJECT-PROJECT_NAMESPACE" MiddleProjectAppServeKey = "PROJECT-PROJECT_APP_SERVE" TopConfigurationKey = "CONFIGURATION" MiddleConfigurationKey = "CONFIGURATION-CONFIGURATION" MiddleConfigurationCloudAccountKey = "CONFIGURATION-CLOUD_ACCOUNT" MiddleConfigurationProjectKey = "CONFIGURATION-PROJECT" MiddleConfigurationUserKey = "CONFIGURATION-USER" MiddleConfigurationRoleKey = "CONFIGURATION-ROLE" MiddleConfigurationSystemNotificationKey = "CONFIGURATION-SYSTEM_NOTIFICATION" )
View Source
const (
FILE_DELIMETER = "---\n"
)
Variables ¶
View Source
var SortOrder = map[string]int{
OperationRead: 0,
OperationCreate: 1,
OperationUpdate: 2,
OperationDelete: 3,
OperationDownload: 4,
}
Functions ¶
This section is empty.
Types ¶
type AppGroup ¶
type AppGroup struct {
gorm.Model
ID domain.AppGroupId `gorm:"primarykey"`
AppGroupType domain.AppGroupType
ClusterId domain.ClusterId
Name string
Description string
WorkflowId string
Status domain.AppGroupStatus
StatusDesc string
CreatorId *uuid.UUID `gorm:"type:uuid"`
Creator User `gorm:"foreignKey:CreatorId"`
UpdatorId *uuid.UUID `gorm:"type:uuid"`
Updator User `gorm:"foreignKey:UpdatorId"`
}
Models
type AppServeApp ¶
type AppServeApp struct {
ID string `gorm:"primarykey" json:"id"`
Name string `gorm:"index" json:"name"` // application name
Namespace string `json:"namespace"` // application namespace
OrganizationId string `json:"organizationId"` // contractId is a contract ID which this app belongs to
ProjectId string `json:"projectId"` // project ID which this app belongs to
Type string `json:"type"` // type (build/deploy/all)
AppType string `json:"appType"` // appType (spring/springboot)
EndpointUrl string `json:"endpointUrl"` // endpoint URL of deployed app
PreviewEndpointUrl string `json:"previewEndpointUrl"` // preview svc endpoint URL in B/G deployment
TargetClusterId string `json:"targetClusterId"` // target cluster to which the app is deployed
TargetClusterName string `gorm:"-:all" json:"targetClusterName"` // target cluster name
Status string `gorm:"index" json:"status"` // status is status of deployed app
GrafanaUrl string `json:"grafanaUrl"` // grafana dashboard URL for deployed app
Description string `json:"description"` // description for application
CreatedAt time.Time `gorm:"autoCreateTime:false" json:"createdAt" `
UpdatedAt *time.Time `gorm:"autoUpdateTime:false" json:"updatedAt"`
DeletedAt *time.Time `json:"deletedAt"`
}
type AppServeAppTask ¶
type AppServeAppTask struct {
ID string `gorm:"primarykey" json:"id"`
AppServeAppId string `gorm:"not null" json:"appServeAppId"` // ID for appServeApp that this task belongs to
Version string `json:"version"` // application version
Status string `json:"status"` // status is app status
Output string `json:"output"` // output for task result
ArtifactUrl string `json:"artifactUrl"` // URL of java app artifact (Eg, Jar)
ImageUrl string `json:"imageUrl"` // URL of built image for app
ExecutablePath string `json:"executablePath"` // Executable path of app image
Profile string `json:"profile"` // java app profile
AppConfig string `json:"appConfig"` // java app config
AppSecret string `json:"appSecret"` // java app secret
ExtraEnv string `json:"extraEnv"` // env variable list for java app
Port string `json:"port"` // java app port
ResourceSpec string `json:"resourceSpec"` // resource spec of app pod
HelmRevision int32 `gorm:"default:0" json:"helmRevision"` // revision of deployed helm release
Strategy string `json:"strategy"` // deployment strategy (eg, rolling-update)
RollbackVersion string `json:"rollbackVersion"` // rollback target version
PvEnabled bool `json:"pvEnabled"`
PvStorageClass string `json:"pvStorageClass"`
PvAccessMode string `json:"pvAccessMode"`
PvSize string `json:"pvSize"`
PvMountPath string `json:"pvMountPath"`
AvailableRollback bool `gorm:"-:all" json:"availableRollback"`
CreatedAt time.Time `gorm:"autoCreateTime:false" json:"createdAt"` // createdAt is a creation timestamp for the application
UpdatedAt *time.Time `gorm:"autoUpdateTime:false" json:"updatedAt"`
DeletedAt *time.Time `json:"deletedAt"`
}
func (*AppServeAppTask) BeforeCreate ¶
func (t *AppServeAppTask) BeforeCreate(tx *gorm.DB) (err error)
type Application ¶
type Audit ¶
type Audit struct {
gorm.Model
ID uuid.UUID `gorm:"primarykey"`
OrganizationId string
OrganizationName string
Group string
Message string
Description string
ClientIP string
UserId *uuid.UUID `gorm:"type:uuid"`
UserAccountId string
UserName string
UserRoles string
}
Models
type CacheEmailCode ¶
type CloudAccount ¶
type CloudAccount struct {
gorm.Model
ID uuid.UUID `gorm:"primarykey"`
OrganizationId string
Organization Organization `gorm:"foreignKey:OrganizationId"`
Name string `gorm:"index"`
Description string `gorm:"index"`
Resource string
CloudService string
WorkflowId string
Status domain.CloudAccountStatus
StatusDesc string
AwsAccountId string
AccessKeyId string `gorm:"-:all"`
SecretAccessKey string `gorm:"-:all"`
SessionToken string `gorm:"-:all"`
Clusters int `gorm:"-:all"`
CreatedIAM bool
CreatorId *uuid.UUID `gorm:"type:uuid"`
Creator User `gorm:"foreignKey:CreatorId"`
UpdatorId *uuid.UUID `gorm:"type:uuid"`
Updator User `gorm:"foreignKey:UpdatorId"`
}
Models
type Cluster ¶
type Cluster struct {
gorm.Model
ID domain.ClusterId `gorm:"primarykey"`
Name string `gorm:"index"`
CloudService string `gorm:"default:AWS"`
OrganizationId string
Organization Organization `gorm:"foreignKey:OrganizationId"`
Description string `gorm:"index"`
WorkflowId string
Status domain.ClusterStatus
StatusDesc string
CloudAccountId *uuid.UUID
CloudAccount CloudAccount `gorm:"foreignKey:CloudAccountId"`
StackTemplateId uuid.UUID
StackTemplate StackTemplate `gorm:"foreignKey:StackTemplateId"`
Favorites *[]ClusterFavorite
ClusterType domain.ClusterType `gorm:"default:0"`
ByoClusterEndpointHost string
ByoClusterEndpointPort int
IsStack bool `gorm:"default:false"`
TksCpNode int
TksCpNodeMax int
TksCpNodeType string
TksInfraNode int
TksInfraNodeMax int
TksInfraNodeType string
TksUserNode int
TksUserNodeMax int
TksUserNodeType string
Kubeconfig string `gorm:"-:all"`
PolicyIds []string `gorm:"-:all"`
CreatorId *uuid.UUID `gorm:"type:uuid"`
Creator User `gorm:"foreignKey:CreatorId"`
UpdatorId *uuid.UUID `gorm:"type:uuid"`
Updator User `gorm:"foreignKey:UpdatorId"`
Policies []Policy `gorm:"many2many:policy_target_clusters"`
Domains []ClusterDomain `gorm:"foreignKey:ClusterId;constraint:OnUpdate:RESTRICT,OnDelete:RESTRICT"`
}
func (*Cluster) SetDefaultConf ¶
func (m *Cluster) SetDefaultConf()
type ClusterDomain ¶
type ClusterFavorite ¶
type ClusterFavorite struct {
gorm.Model
ID uuid.UUID `gorm:"primarykey;type:uuid"`
ClusterId domain.ClusterId
Cluster Cluster `gorm:"foreignKey:ClusterId"`
UserId uuid.UUID `gorm:"type:uuid"`
User User `gorm:"foreignKey:UserId"`
}
Models
type Dashboard ¶
type ExpiredTokenTime ¶
type ExpiredTokenTime struct {
gorm.Model
OrganizationId string `gorm:"index:idx_org_id_subject_id,unique;not null"`
SubjectId string `gorm:"index:idx_org_id_subject_id,unique;not null"`
ExpiredTime time.Time
}
Models
type Organization ¶
type Organization struct {
gorm.Model
ID string `gorm:"primarykey;type:varchar(36);not null"`
Name string
Description string
Phone string
PrimaryClusterId string
WorkflowId string
Status domain.OrganizationStatus
StatusDesc string
CreatorId *uuid.UUID `gorm:"type:uuid"`
StackTemplates []StackTemplate `gorm:"many2many:stack_template_organizations;"`
StackTemplateIds []uuid.UUID `gorm:"-:all"`
PolicyTemplates []PolicyTemplate `gorm:"many2many:policy_template_permitted_organizations;"`
PolicyTemplateIds []uuid.UUID `gorm:"-:all"`
SystemNotificationTemplates []SystemNotificationTemplate `gorm:"many2many:system_notification_template_organizations"`
SystemNotificationTemplateIds []uuid.UUID `gorm:"-:all"`
ClusterCount int `gorm:"-:all"`
AdminId *uuid.UUID
Admin *User `gorm:"-:all"`
}
type Permission ¶
type Permission struct {
gorm.Model
ID uuid.UUID `gorm:"primarykey;type:uuid;" json:"ID"`
Name string `json:"name"`
Key string `gorm:"type:text;" json:"key,omitempty"`
IsAllowed *bool `gorm:"type:boolean;" json:"is_allowed,omitempty"`
RoleID *string `json:"role_id,omitempty"`
Role *Role `gorm:"foreignKey:RoleID;references:ID;" json:"role,omitempty"`
Endpoints []*Endpoint `gorm:"many2many:permission_endpoints;" json:"endpoints,omitempty"`
ParentID *uuid.UUID `json:"parent_id,omitempty"`
Parent *Permission `gorm:"foreignKey:ParentID;references:ID;" json:"parent,omitempty"`
Children []*Permission `gorm:"foreignKey:ParentID;references:ID;" json:"children,omitempty"`
}
func GetEdgePermission ¶
func GetEdgePermission(root *Permission, edgePermissions []*Permission, f func(permission Permission) bool) []*Permission
type PermissionKind ¶
type PermissionKind string
type PermissionSet ¶
type PermissionSet struct {
Dashboard *Permission `gorm:"-:all" json:"dashboard,omitempty"`
Stack *Permission `gorm:"-:all" json:"stack,omitempty"`
Policy *Permission `gorm:"-:all" json:"policy,omitempty"`
ProjectManagement *Permission `gorm:"-:all" json:"project_management,omitempty"`
Notification *Permission `gorm:"-:all" json:"notification,omitempty"`
Configuration *Permission `gorm:"-:all" json:"configuration,omitempty"`
Common *Permission `gorm:"-:all" json:"common,omitempty"`
Admin *Permission `gorm:"-:all" json:"admin,omitempty"`
}
func NewAdminPermissionSet ¶
func NewAdminPermissionSet() *PermissionSet
func NewDefaultPermissionSet ¶
func NewDefaultPermissionSet() *PermissionSet
func (*PermissionSet) SetAllowedPermissionSet ¶
func (p *PermissionSet) SetAllowedPermissionSet()
func (*PermissionSet) SetRoleId ¶
func (p *PermissionSet) SetRoleId(roleId string)
func (*PermissionSet) SetUserPermissionSet ¶
func (p *PermissionSet) SetUserPermissionSet()
type Policy ¶
type Policy struct {
gorm.Model
ID uuid.UUID `gorm:"primarykey;type:varchar(36);not null"`
OrganizationId string
PolicyName string
PolicyResourceName string
Mandatory bool
Description string
TargetClusterIds []string `gorm:"-:all"`
TargetClusters []Cluster `gorm:"many2many:policy_target_clusters"`
EnforcementAction string
Parameters string `gorm:"type:text"`
PolicyMatch string `gorm:"type:text"`
MatchYaml *string `gorm:"type:text"`
Match *domain.Match `gorm:"-:all"`
TemplateName string `gorm:"-:all"`
TemplateId uuid.UUID `gorm:"type:uuid"`
PolicyTemplate PolicyTemplate `gorm:"foreignKey:TemplateId"`
CreatorId *uuid.UUID `gorm:"type:uuid"`
Creator User `gorm:"foreignKey:CreatorId"`
UpdatorId *uuid.UUID `gorm:"type:uuid"`
Updator User `gorm:"foreignKey:UpdatorId"`
}
type PolicyCount ¶
type PolicyTargetCluster ¶
type PolicyTemplate ¶
type PolicyTemplate struct {
gorm.Model
ID uuid.UUID `gorm:"primarykey;type:varchar(36);not null"`
TemplateName string
Type string // Org or Tks
Version string `gorm:"-:all"` // 삭제 예정
CurrentVersion string `gorm:"-:all"`
LatestVersion string `gorm:"-:all"`
SupportedVersions []PolicyTemplateSupportedVersion `gorm:"foreignKey:PolicyTemplateId"`
OrganizationId *string // Org 인 경우에만 설정
Organization Organization `gorm:"foreignKey:OrganizationId"`
Description string
Kind string
Deprecated bool
Mandatory bool // Tks 인 경우에는 무시
Severity string
PermittedOrganizations []Organization `gorm:"many2many:policy_template_permitted_organizations"`
ParametersSchema []*domain.ParameterDef `gorm:"-:all"`
Rego string `gorm:"-:all"`
Libs []string `gorm:"-:all"`
SyncKinds *[]string `gorm:"-:all"`
SyncJson *string `gorm:"-:all"`
PermittedOrganizationIds []string `gorm:"-:all"`
CreatorId *uuid.UUID `gorm:"type:uuid"`
Creator User `gorm:"foreignKey:CreatorId"`
UpdatorId *uuid.UUID `gorm:"type:uuid"`
Updator User `gorm:"foreignKey:UpdatorId"`
}
func (*PolicyTemplate) BeforeCreate ¶
func (pt *PolicyTemplate) BeforeCreate(tx *gorm.DB) (err error)
func (*PolicyTemplate) IsOrganizationTemplate ¶
func (pt *PolicyTemplate) IsOrganizationTemplate() bool
func (*PolicyTemplate) IsPermittedToOrganization ¶
func (pt *PolicyTemplate) IsPermittedToOrganization(organizationId *string) bool
func (*PolicyTemplate) IsTksTemplate ¶
func (pt *PolicyTemplate) IsTksTemplate() bool
func (*PolicyTemplate) ResoureName ¶
func (pt *PolicyTemplate) ResoureName() string
type PolicyTemplateSupportedVersion ¶
type PolicyTemplateSupportedVersion struct {
gorm.Model
PolicyTemplateId uuid.UUID `gorm:"index:template_version,unique"`
Version string `gorm:"index:template_version,unique"`
ParameterSchema string `gorm:"type:text"`
Rego string `gorm:"type:text"`
Libs string `gorm:"type:text"`
SyncKinds *string `gorm:"type:text"`
SyncJson *string `gorm:"type:text"`
}
type Project ¶
type Project struct {
ID string `gorm:"primarykey" json:"id"`
OrganizationId string `json:"organizationId"`
Name string `gorm:"index" json:"name"`
Description string `json:"description,omitempty"`
CreatedAt time.Time `gorm:"autoCreateTime:false" json:"createdAt"`
UpdatedAt *time.Time `gorm:"autoUpdateTime:false" json:"updatedAt"`
DeletedAt *time.Time `json:"deletedAt"`
ProjectMembers []ProjectMember `gorm:"foreignKey:ProjectId;constraint:OnUpdate:RESTRICT,OnDelete:RESTRICT" json:"projectMembers,omitempty"`
ProjectNamespaces []ProjectNamespace `gorm:"foreignKey:ProjectId;constraint:OnUpdate:RESTRICT,OnDelete:RESTRICT" json:"projectNamespaces,omitempty"`
}
type ProjectMember ¶
type ProjectMember struct {
ID string `gorm:"primarykey" json:"id"`
ProjectId string `gorm:"not null" json:"projectId"`
ProjectUserId uuid.UUID `json:"projectUserId"`
ProjectUser *ProjectUser `gorm:"foreignKey:ProjectUserId;references:ID;constraint:OnUpdate:RESTRICT,OnDelete:RESTRICT" json:"projectUser"`
ProjectRoleId string `json:"projectRoleId"`
ProjectRole *ProjectRole `gorm:"foreignKey:ProjectRoleId;references:ID;constraint:OnUpdate:RESTRICT,OnDelete:RESTRICT" json:"projectRole"`
IsProjectLeader bool `gorm:"default:false" json:"projectLeader"`
CreatedAt time.Time `gorm:"autoCreateTime:false" json:"createdAt"`
UpdatedAt *time.Time `gorm:"autoUpdateTime:false" json:"updatedAt"`
DeletedAt *time.Time `json:"deletedAt"`
}
type ProjectNamespace ¶
type ProjectNamespace struct {
StackId string `gorm:"primarykey" json:"stackId"`
Namespace string `gorm:"primarykey" json:"namespace"`
Stack *ProjectStack `gorm:"foreignKey:StackId;references:ID;constraint:OnUpdate:RESTRICT,OnDelete:RESTRICT" json:"stack"`
ProjectId string `gorm:"not null" json:"projectId"`
Description string `json:"description,omitempty"`
Status string `json:"status,omitempty"`
GrafanaUrl string `gorm:"-:all" json:"grafanaUrl,omitempty"`
CreatedAt time.Time `gorm:"autoCreateTime:false" json:"createdAt"`
UpdatedAt *time.Time `gorm:"autoUpdateTime:false" json:"updatedAt"`
DeletedAt *time.Time `json:"deletedAt"`
}
type ProjectRole ¶
type ProjectRole struct {
ID string `gorm:"primarykey" json:"id"`
Name string `json:"name"` // project-leader, project-member, project-viewer
Description string `json:"description,omitempty"`
CreatedAt time.Time `gorm:"autoCreateTime:false" json:"createdAt" `
UpdatedAt *time.Time `gorm:"autoUpdateTime:false" json:"updatedAt"`
DeletedAt *time.Time `json:"deletedAt"`
}
func (*ProjectRole) BeforeCreate ¶
func (t *ProjectRole) BeforeCreate(*gorm.DB) (err error)
type ProjectStack ¶
type ProjectStack struct {
ID string `gorm:"primarykey" json:"id"`
OrganizationId string `json:"organizationId"`
Name string `json:"name"`
}
func (ProjectStack) TableName ¶
func (ProjectStack) TableName() string
type ProjectUser ¶
type ProjectUser struct {
ID uuid.UUID `gorm:"primarykey;type:uuid" json:"id"`
AccountId string `json:"accountId"`
Name string `json:"name"`
Email string `json:"email"`
Department string `json:"department"`
Description string `json:"description"`
CreatedAt time.Time `json:"createdAt"`
UpdatedAt time.Time `json:"updatedAt"`
}
func (ProjectUser) TableName ¶
func (ProjectUser) TableName() string
type Role ¶
type Role struct {
gorm.Model
ID string `gorm:"primarykey;" json:"id"`
Name string `json:"name"`
OrganizationID string `json:"organizationId"`
Organization Organization `gorm:"foreignKey:OrganizationID;references:ID;" json:"organization"`
Type string `json:"type"`
Description string `json:"description"`
Creator uuid.UUID `json:"creator"`
CreatedAt time.Time `json:"createdAt"`
UpdatedAt time.Time `json:"updatedAt"`
}
type Stack ¶
type Stack = struct {
gorm.Model
ID domain.StackId
Name string
Description string
ClusterId string
OrganizationId string
CloudService string
CloudAccountId uuid.UUID
CloudAccount CloudAccount
StackTemplateId uuid.UUID
StackTemplate StackTemplate
Status domain.StackStatus
StatusDesc string
PrimaryCluster bool
GrafanaUrl string
CreatorId *uuid.UUID
Creator User
UpdatorId *uuid.UUID
Updator User
Favorited bool
ClusterEndpoint string
Resource domain.DashboardStack
PolicyIds []string
Conf StackConf
AppServeAppCnt int
Domains []ClusterDomain
Kubeconfig string
}
type StackTemplate ¶
type StackTemplate struct {
gorm.Model
ID uuid.UUID `gorm:"primarykey"`
Name string `gorm:"index,unique"`
Description string `gorm:"index"`
Template string
TemplateType string
Version string
CloudService string
Platform string
KubeVersion string
KubeType string
Organizations []Organization `gorm:"many2many:stack_template_organizations"`
Services datatypes.JSON
ServiceIds []string `gorm:"-:all"`
OrganizationIds []string `gorm:"-:all"`
CreatorId *uuid.UUID `gorm:"type:uuid"`
Creator User `gorm:"foreignKey:CreatorId"`
UpdatorId *uuid.UUID `gorm:"type:uuid"`
Updator User `gorm:"foreignKey:UpdatorId"`
}
type SystemNotification ¶
type SystemNotification struct {
gorm.Model
ID uuid.UUID `gorm:"primarykey"`
Name string
NotificationType string `gorm:"default:SYSTEM_NOTIFICATION"`
OrganizationId string
Organization Organization `gorm:"foreignKey:OrganizationId"`
ClusterId domain.ClusterId
Cluster Cluster `gorm:"foreignKey:ClusterId"`
Severity string
MessageTitle string
MessageContent string
MessageActionProposal string
Node string
GrafanaUrl string
FiredAt *time.Time `gorm:"-:all"`
TakedAt *time.Time `gorm:"-:all"`
ClosedAt *time.Time `gorm:"-:all"`
TakedSec int `gorm:"-:all"`
ProcessingSec int `gorm:"-:all"`
LastTaker User `gorm:"-:all"`
SystemNotificationActions []SystemNotificationAction `gorm:"foreignKey:SystemNotificationId;constraint:OnUpdate:RESTRICT,OnDelete:RESTRICT"`
Summary string
RawData datatypes.JSON
Status domain.SystemNotificationActionStatus `gorm:"index"`
Read bool `gorm:"-:all"`
Readers []User `gorm:"many2many:system_notification_users;constraint:OnUpdate:RESTRICT,OnDelete:RESTRICT"`
SystemNotificationRuleId *uuid.UUID
PolicyName string
}
Models
type SystemNotificationMetricParameter ¶
type SystemNotificationMetricParameter struct {
gorm.Model
SystemNotificationTemplateId uuid.UUID
Order int
Key string
Value string
}
Models
type SystemNotificationRule ¶
type SystemNotificationRule struct {
gorm.Model
ID uuid.UUID `gorm:"primarykey"`
Name string `gorm:"index,unique"`
Description string
NotificationType string `gorm:"default:SYSTEM_NOTIFICATION"`
OrganizationId string
Organization Organization `gorm:"foreignKey:OrganizationId"`
IsSystem bool `gorm:"default:false"`
SystemNotificationTemplateId uuid.UUID
SystemNotificationTemplate SystemNotificationTemplate `gorm:"foreignKey:SystemNotificationTemplateId"`
SystemNotificationCondition SystemNotificationCondition `gorm:"foreignKey:SystemNotificationRuleId"`
TargetUsers []User `gorm:"many2many:system_notification_rule_users;constraint:OnUpdate:RESTRICT,OnDelete:RESTRICT"`
TargetUserIds []string `gorm:"-:all"`
MessageTitle string
MessageContent string
MessageActionProposal string
Status domain.SystemNotificationRuleStatus
CreatorId *uuid.UUID `gorm:"type:uuid"`
Creator *User `gorm:"foreignKey:CreatorId"`
UpdatorId *uuid.UUID `gorm:"type:uuid"`
Updator *User `gorm:"foreignKey:UpdatorId"`
}
type SystemNotificationTemplate ¶
type SystemNotificationTemplate struct {
gorm.Model
ID uuid.UUID `gorm:"primarykey"`
Name string `gorm:"index:idx_name,unique"`
NotificationType string `gorm:"default:SYSTEM_NOTIFICATION"`
IsSystem bool `gorm:"default:false"`
Organizations []Organization `gorm:"many2many:system_notification_template_organizations;constraint:OnUpdate:RESTRICT,OnDelete:RESTRICT"`
OrganizationIds []string `gorm:"-:all"`
Description string
MetricQuery string
MetricParameters []SystemNotificationMetricParameter `gorm:"foreignKey:SystemNotificationTemplateId;constraint:OnUpdate:RESTRICT,OnDelete:RESTRICT"`
CreatorId *uuid.UUID
Creator User `gorm:"foreignKey:CreatorId"`
UpdatorId *uuid.UUID
Updator User `gorm:"foreignKey:UpdatorId"`
}
type UsageCount ¶
type User ¶
type User struct {
gorm.Model
ID uuid.UUID `gorm:"primarykey;type:uuid" json:"id"`
AccountId string `json:"accountId"`
Password string `gorm:"-:all" json:"password"`
Name string `json:"name"`
Token string `json:"token"`
Roles []Role `gorm:"many2many:user_roles;" json:"roles"`
OrganizationId string
Organization Organization `gorm:"foreignKey:OrganizationId;references:ID" json:"organization"`
Creator string `json:"creator"`
CreatedAt time.Time `json:"createdAt"`
UpdatedAt time.Time `json:"updatedAt"`
PasswordUpdatedAt time.Time `json:"passwordUpdatedAt"`
PasswordExpired bool `gorm:"-:all" json:"passwordExpired"`
Email string `json:"email"`
Department string `json:"department"`
Description string `json:"description"`
}
Source Files
¶
Click to show internal directories.
Click to hide internal directories.