 Documentation
      ¶
      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
      ¶
      Source Files
      ¶
    
   Click to show internal directories. 
   Click to hide internal directories.