model

package
v0.6.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 9, 2023 License: MIT Imports: 9 Imported by: 0

Documentation

Index

Constants

View Source
const (
	PublishStatusRelease = iota + 1 // 发布期
	PublishStatusLock               // 锁定期
	PublishStatusEnd                // 已结束
)
View Source
const (
	StaffGroupRelKey = "StaffGroupRelKey"
)

Variables

View Source
var ConfigColumns = struct {
	ID             string
	Name           string
	ProjectID      string
	ProjectGroupID string
	NamespaceID    string
	IsPublic       string
	IsLinkPublic   string
	IsEncrypt      string
	ConfigType     string
}{
	ID:             "id",
	Name:           "name",
	ProjectID:      "project_id",
	ProjectGroupID: "project_group_id",
	NamespaceID:    "namespace_id",
	IsPublic:       "is_public",
	IsLinkPublic:   "is_link_public",
	IsEncrypt:      "is_encrypt",
	ConfigType:     "config_type",
}

ConfigColumns get sql column name.获取数据库列名

View Source
var ConfigHistoryColumns = struct {
	ID         string
	ConfigID   string
	Reversion  string
	OpType     string
	CreateTime string
	CreateBy   string
}{
	ID:         "id",
	ConfigID:   "config_id",
	Reversion:  "reversion",
	OpType:     "op_type",
	CreateTime: "create_time",
	CreateBy:   "create_by",
}

ConfigHistoryColumns get sql column name.获取数据库列名

View Source
var ConfigLinkColumns = struct {
	ID             string
	ConfigID       string
	PublicConfigID string
}{
	ID:             "id",
	ConfigID:       "config_id",
	PublicConfigID: "public_config_id",
}

ConfigLinkColumns get sql column name.获取数据库列名

View Source
var ErrNotEncryptNamespace = errors.New("ErrNotEncryptNamespace")
View Source
var NamespaceColumns = struct {
	ID             string
	ProjectGroupID string
	Name           string
	RealTime       string
	SecretKey      string
	CreateTime     string
	CreateBy       string
	DeleteTime     string
}{
	ID:             "id",
	ProjectGroupID: "project_group_id",
	Name:           "name",
	RealTime:       "real_time",
	SecretKey:      "secret_key",
	CreateTime:     "create_time",
	CreateBy:       "create_by",
	DeleteTime:     "delete_time",
}

NamespaceColumns get sql column name.获取数据库列名

View Source
var ProjectColumns = struct {
	ID             string
	ProjectGroupID string
	Key            string
	Name           string
	CreateTime     string
	CreateBy       string
	DeleteTime     string
}{
	ID:             "id",
	ProjectGroupID: "project_group_id",
	Key:            "key",
	Name:           "name",
	CreateTime:     "create_time",
	CreateBy:       "create_by",
	DeleteTime:     "delete_time",
}

ProjectColumns get sql column name.获取数据库列名

View Source
var ProjectGroupColumns = struct {
	ID         string
	Name       string
	CreateTime string
	CreateBy   string
	DeleteTime string
}{
	ID:         "id",
	Name:       "name",
	CreateTime: "create_time",
	CreateBy:   "create_by",
	DeleteTime: "delete_time",
}

ProjectGroupColumns get sql column name.获取数据库列名

View Source
var PublishColumns = struct {
	ID           string
	ProjectID    string
	NamespaceID  string
	PublishToken string
	Status       string
	CreateTime   string
	UpdateTime   string
}{
	ID:           "id",
	ProjectID:    "project_id",
	NamespaceID:  "namespace_id",
	PublishToken: "publish_token",
	Status:       "status",
	CreateTime:   "create_time",
	UpdateTime:   "update_time",
}

PublishColumns get sql column name.获取数据库列名

View Source
var PublishConfigColumns = struct {
	ID                 string
	PublishID          string
	ConfigID           string
	ConfigPreReversion string
	Status             string
	CreateTime         string
	UpdateTime         string
}{
	ID:                 "id",
	PublishID:          "publish_id",
	ConfigID:           "config_id",
	ConfigPreReversion: "config_pre_reversion",
	Status:             "status",
	CreateTime:         "create_time",
	UpdateTime:         "update_time",
}

PublishConfigColumns get sql column name.获取数据库列名

View Source
var PublishStatusText = map[int]string{
	0:                    "",
	PublishStatusRelease: "待发布",
	PublishStatusLock:    "锁定中",
	PublishStatusEnd:     "发布结束",
}
View Source
var PublishStrategyColumns = struct {
	ID         string
	PublishID  string
	Type       string
	Data       string
	Status     string
	Result     string
	CreateTime string
	UpdateTime string
}{
	ID:         "id",
	PublishID:  "publish_id",
	Type:       "type",
	Data:       "data",
	Status:     "status",
	Result:     "result",
	CreateTime: "create_time",
	UpdateTime: "update_time",
}

PublishStrategyColumns get sql column name.获取数据库列名

View Source
var StaffColumns = struct {
	ID           string
	Name         string
	Password     string
	RefreshToken string
	CreateTime   string
	CreateBy     string
}{
	ID:           "id",
	Name:         "name",
	Password:     "password",
	RefreshToken: "refresh_token",
	CreateTime:   "create_time",
	CreateBy:     "create_by",
}

StaffColumns get sql column name.获取数据库列名

View Source
var StaffGroupRelColumns = struct {
	ID             string
	ProjectGroupID string
	StaffID        string
	RoleType       string
}{
	ID:             "id",
	ProjectGroupID: "project_group_id",
	StaffID:        "staff_id",
	RoleType:       "role_type",
}

StaffGroupRelColumns get sql column name.获取数据库列名

Functions

This section is empty.

Types

type AddConfig

type AddConfig struct {
	Name           string `json:"name" v:"required|regex:^[a-zA-Z][\\w_\\-.]{1,9}"`
	ProjectGroupID int    `json:"project_group_id" v:"required"`
	ProjectID      int    `json:"project_id" ` // 公共配置可以不传projectID
	NamespaceID    int    `json:"namespace_id" v:"required"`
	IsPublic       bool   `json:"is_public"`
	IsLinkPublic   bool   `json:"is_link_public"`

	IsEncrypt bool          `json:"is_encrypt"`
	Type      ConfigType    `json:"type" v:"required"`
	Content   ConfigContent `json:"content" `

	PublicConfigID int `json:"public_config_id"`
}

type AddNamespace

type AddNamespace struct {
	ProjectGroupID int    `json:"project_group_id" v:"required"`
	Name           string `json:"name" v:"required|regex:^[a-zA-Z][\\w_\\-.]{1,9}"`
	RealTime       bool   `json:"real_time"` // 是否灰度
	Secret         bool   `json:"secret"`    // 是否加密
}

type AddProject

type AddProject struct {
	Name           string `json:"name" v:"required|length:3,10"`
	ProjectGroupID int    `json:"project_group_id" v:"required"`
}

type AddProjectGroup

type AddProjectGroup struct {
	Name string `json:"name" v:"required|length:3,10"`
}

type AddPublish

type AddPublish struct {
	ProjectID   int `json:"project_id"`
	NamespaceID int `json:"namespace_id"`

	ConfigIDArr []int  `json:"config_id_arr"`
	PublishType int    `json:"publish_type"`
	PublishData string `json:"publish_data"`
}

type AddStaff

type AddStaff struct {
	Name string `json:"name" v:"required|regex:^[a-zA-Z][\\w]{2,9}"` // 员工标识
}

type Config

type Config struct {
	ID             int    `gorm:"primaryKey;column:id;type:int(11);not null"`
	Name           string `gorm:"uniqueIndex:project_id;column:name;type:varchar(50);not null"`
	ProjectID      int    `gorm:"uniqueIndex:project_id;column:project_id;type:int(11);not null"`
	ProjectGroupID int    `gorm:"uniqueIndex:project_id;column:project_group_id;type:int(11);not null"` // 公共配置只有project_group_id
	NamespaceID    int    `gorm:"uniqueIndex:project_id;column:namespace_id;type:int(11);not null"`
	IsPublic       bool   `gorm:"column:is_public;type:tinyint(1);not null"`
	IsLinkPublic   bool   `gorm:"column:is_link_public;type:tinyint(1);not null"`
	IsEncrypt      bool   `gorm:"column:is_encrypt;type:tinyint(1);not null"`
	ConfigType     string `gorm:"uniqueIndex:project_id;column:config_type;type:varchar(10);not null"`
}

Config [...]

type ConfigContent

type ConfigContent string

func (ConfigContent) Valid

func (c ConfigContent) Valid(t ConfigType) bool

type ConfigCopy

type ConfigCopy struct {
	ConfigID int `json:"config_id" v:"required"`
	Op       int `json:"op" v:"required"` // 1 转为副本 2关联公共配置
}

type ConfigHistory

type ConfigHistory struct {
	ID         int       `gorm:"primaryKey;column:id;type:int(11);not null"`
	ConfigID   int       `gorm:"uniqueIndex:config_id;column:config_id;type:int(11);not null"`
	Reversion  int       `gorm:"uniqueIndex:config_id;column:reversion;type:int(11);not null"`
	OpType     int8      `gorm:"column:op_type;type:tinyint(4);not null"`
	CreateTime time.Time `gorm:"column:create_time;type:timestamp;not null;default:CURRENT_TIMESTAMP"`
	CreateBy   int       `gorm:"column:create_by;type:int(11);not null"`
}

ConfigHistory [...]

type ConfigHistoryList

type ConfigHistoryList struct {
	ConfigID int `json:"config_id" `

	CreateBy     int    `json:"create_by"`
	CreateByName string `json:"create_by_name"`
	CreateTime   int64  `json:"create_time"`
	Reversion    int    `json:"reversion"`
	OpType       int    `json:"op_type"`
	OpTypeStr    string `json:"op_type_str"`
}

type ConfigHistoryOpType

type ConfigHistoryOpType int
const (
	OpTypeAdd ConfigHistoryOpType = iota + 1
	OpTypeEdit
	OpTypeRollback
	OpTypeLink
)

func (ConfigHistoryOpType) String

func (o ConfigHistoryOpType) String() string

type ConfigInfo

type ConfigInfo struct {
	ConfigID     int    `json:"config_id"`
	ConfigKey    string `json:"config_key"`
	Name         string `json:"name"`
	Type         string `json:"type"`
	Content      string `json:"content"`
	IsPublic     bool   `json:"is_public"`
	IsLinkPublic bool   `json:"is_link_public"`
	IsEncrypt    bool   `json:"is_encrypt"`

	PublishStatus string `json:"publish_status"` // 发布状态
}
type ConfigLink struct {
	ID             int `gorm:"primaryKey;column:id;type:int(11);not null"`
	ConfigID       int `gorm:"uniqueIndex:config_id;column:config_id;type:int(11);not null"`
	PublicConfigID int `gorm:"uniqueIndex:config_id;index:public_config_id;column:public_config_id;type:int(11);not null"`
}

ConfigLink [...]

type ConfigNode

type ConfigNode struct {
	ConfigID int    `json:"config_id"`
	Title    string `json:"title"`
	Name     string `json:"name"`
	Type     string `json:"type"`
}

type ConfigType

type ConfigType string
const (
	ConfigTypeCustom     ConfigType = "custom"
	ConfigTypeToml       ConfigType = "toml"
	ConfigTypeYaml       ConfigType = "yaml"
	ConfigTypeJson       ConfigType = "json"
	ConfigTypeIni        ConfigType = "ini"
	ConfigTypeProperties ConfigType = "properties"
)

func (ConfigType) AllConfigType

func (c ConfigType) AllConfigType() []ConfigType

func (ConfigType) Valid

func (c ConfigType) Valid() bool

type EditConfig

type EditConfig struct {
	ConfigID int           `json:"config_id" v:"required"`
	Content  ConfigContent `json:"content" v:"required"`
}

type EditNamespace

type EditNamespace struct {
	NamespaceId int     `json:"namespace_id" v:"required"`
	Name        *string `json:"name" v:"regex:^[a-zA-Z][\\w_\\-.]{1,9}"`
	RealTime    *bool   `json:"real_time"`
}

type EditProject

type EditProject struct {
	ProjectId int `json:"project_id" v:"required"`

	Name *string `json:"name" v:"length:3,10"`
}

type EditProjectGroup

type EditProjectGroup struct {
	ProjectGroupID int     `json:"project_group_id" v:"required"`
	Name           *string `json:"name" v:"length:3,10"`
}

type EditStaff

type EditStaff struct {
	StaffID int     `json:"staff_id" v:"required"`
	Name    *string `json:"name" v:"regex:^[a-zA-Z][\\w]{2,9}"`
}

type GrantStaff

type GrantStaff struct {
	StaffID        int  `json:"staff_id" v:"required"`
	Role           Role `json:"role" v:"required"`
	ProjectGroupID int  `json:"project_group_id"`
}

type LoginParams

type LoginParams struct {
	UserName string `json:"user_name" v:"required|length:3,20"`
	Password string `json:"password" v:"required|length:6,30"`
}

type LoginResponse

type LoginResponse struct {
	AccessToken  string `json:"access_token"`
	RefreshToken string `json:"refresh_token"`
	InitPassword bool   `json:"init_password"`
}

type Namespace

type Namespace struct {
	ID             int       `gorm:"primaryKey;column:id;type:int(11);not null"`
	ProjectGroupID int       `gorm:"uniqueIndex:project_group_id;column:project_group_id;type:int(11);not null"`
	Name           string    `gorm:"uniqueIndex:project_group_id;column:name;type:varchar(50);not null"`
	RealTime       bool      `gorm:"column:real_time;type:tinyint(1);not null"` // 是否是实时发布
	SecretKey      string    `gorm:"column:secret_key;type:varchar(100);not null"`
	CreateTime     time.Time `gorm:"column:create_time;type:timestamp;not null;default:CURRENT_TIMESTAMP"`
	CreateBy       int       `gorm:"column:create_by;type:int(11);not null"`
	DeleteTime     int       `gorm:"column:delete_time;type:int(11);not null;default:0"`
}

Namespace [...]

type NamespaceList

type NamespaceList struct {
	NamespaceID      int    `json:"namespace_id"`
	ProjectGroupID   int    `json:"project_group_id"`
	ProjectGroupName string `json:"project_group_name"`

	Name         string `json:"name"`
	RealTime     bool   `json:"real_time"` // 是否灰度
	SecretKey    string `json:"secret_key"`
	CreateBy     int    `json:"create_by"`
	CreateByName string `json:"create_by_name"`
	CreateTime   int64  `json:"create_time"`
}

type Project

type Project struct {
	ID             int       `gorm:"primaryKey;column:id;type:int(11);not null"`
	ProjectGroupID int       `gorm:"index:project_group_id;column:project_group_id;type:int(11);not null"`
	Key            string    `gorm:"unique;column:key;type:varchar(50);not null"`
	Name           string    `gorm:"column:name;type:varchar(50);not null"`
	CreateTime     time.Time `gorm:"column:create_time;type:timestamp;not null;default:CURRENT_TIMESTAMP"`
	CreateBy       int       `gorm:"column:create_by;type:int(11);not null"`
	DeleteTime     int       `gorm:"column:delete_time;type:int(11);not null;default:0"`
}

Project [...]

type ProjectGroup

type ProjectGroup struct {
	ID         int       `gorm:"primaryKey;column:id;type:int(11);not null"`
	Name       string    `gorm:"unique;column:name;type:varchar(50);not null"`
	CreateTime time.Time `gorm:"column:create_time;type:timestamp;not null;default:CURRENT_TIMESTAMP"`
	CreateBy   int       `gorm:"column:create_by;type:int(11);not null"`
	DeleteTime int       `gorm:"column:delete_time;type:int(11);not null;default:0"`
}

ProjectGroup [...]

type ProjectGroupList

type ProjectGroupList struct {
	ProjectGroupID int    `json:"project_group_id"`
	Name           string `json:"name"`
	CreateBy       int    `json:"create_by"`
	CreateByName   string `json:"create_by_name"`
	CreateTime     int64  `json:"create_time"`

	Managed bool `json:"managed"`
}

type ProjectList

type ProjectList struct {
	ProjectID        int    `json:"project_id"`
	ProjectGroupID   int    `json:"project_group_id"`
	ProjectGroupName string `json:"project_group_name"`
	Key              string `json:"key"`
	Name             string `json:"name"`
	CreateBy         int    `json:"create_by"`
	CreateByName     string `json:"create_by_name"`
	CreateTime       int64  `json:"create_time"`

	Managed bool `json:"managed"`
}

type ProjectTree

type ProjectTree struct {
	NamespaceID int    `json:"namespace_id"`
	Name        string `json:"name"`
	RealTime    bool   `json:"real_time"`  // 是否需发布
	CanSecret   bool   `json:"can_secret"` // 是否能加密

	Title  string `json:"title"`
	Spread bool   `json:"spread"`

	Nodes []ConfigNode `json:"children"`
}

type Publish added in v0.6.0

type Publish struct {
	ID           int       `gorm:"primaryKey;column:id;type:int(11);not null"`
	ProjectID    int       `gorm:"index:project_id;column:project_id;type:int(11);not null"`
	NamespaceID  int       `gorm:"index:project_id;column:namespace_id;type:int(11);not null"`
	PublishToken string    `gorm:"column:publish_token;type:varchar(50);not null"`
	Status       int8      `gorm:"index:project_id;column:status;type:tinyint(4);not null"`
	CreateTime   time.Time `gorm:"column:create_time;type:timestamp;not null;default:CURRENT_TIMESTAMP"`
	UpdateTime   time.Time `gorm:"column:update_time;type:timestamp;not null;default:CURRENT_TIMESTAMP"`
}

Publish [...]

type PublishConfig

type PublishConfig struct {
	ID                 int       `gorm:"primaryKey;column:id;type:int(11);not null"`
	PublishID          int       `gorm:"index:publish_id;column:publish_id;type:int(11);not null"`
	ConfigID           int       `gorm:"index:config_id;column:config_id;type:int(11);not null"`
	ConfigPreReversion int       `gorm:"column:config_pre_reversion;type:int(11);not null"`
	Status             int       `gorm:"column:status;type:int(11);not null"`
	CreateTime         time.Time `gorm:"column:create_time;type:timestamp;not null;default:CURRENT_TIMESTAMP"`
	UpdateTime         time.Time `gorm:"column:update_time;type:timestamp;not null;default:CURRENT_TIMESTAMP"`
}

PublishConfig [...]

type PublishConfigList

type PublishConfigList struct {
	PublishID     int    `json:"publish_id"`
	NamespaceID   int    `json:"namespace_id"`
	NamespaceName string `json:"namespace_name"`

	PublishType    int    `json:"publish_type"`
	PublishTypeStr string `json:"publish_type_str"`

	PublishConfigs []string `json:"publish_configs"`

	CreateBy     int    `json:"create_by"`
	CreateByName string `json:"create_by_name"`
	CreateTime   int64  `json:"create_time"`

	Status    int    `json:"status"`
	StatusStr string `json:"status_str"`
}

type PublishStrategy added in v0.6.0

type PublishStrategy struct {
	ID         int            `gorm:"primaryKey;column:id;type:int(11);not null"`
	PublishID  int            `gorm:"index:publish_id;column:publish_id;type:int(11);not null"`
	Type       int8           `gorm:"column:type;type:tinyint(4);not null"` // 发布类型
	Data       datatypes.JSON `gorm:"column:data;type:json;not null"`
	Status     int8           `gorm:"column:status;type:tinyint(4);not null"`
	Result     string         `gorm:"column:result;type:varchar(500);not null"`
	CreateTime time.Time      `gorm:"column:create_time;type:timestamp;not null;default:CURRENT_TIMESTAMP"`
	UpdateTime time.Time      `gorm:"column:update_time;type:timestamp;not null;default:CURRENT_TIMESTAMP"`
}

PublishStrategy [...]

type Role

type Role int
const (
	RoleAdmin Role = iota + 1
	RoleOwner
	RoleManager
)

func (Role) AllRole

func (r Role) AllRole() []Role

func (Role) String

func (r Role) String() string

type RollbackConfig

type RollbackConfig struct {
	ConfigID  int `json:"config_id" v:"required"`
	Reversion int `json:"reversion" v:"required"`
}

type RollbackPublish

type RollbackPublish struct {
	PublishID int `json:"publish_id"`
}

type Staff

type Staff struct {
	ID           int       `gorm:"primaryKey;column:id;type:int(11);not null"`
	Name         string    `gorm:"unique;column:name;type:varchar(30);not null"`
	Password     string    `gorm:"column:password;type:varchar(100);not null"`
	RefreshToken string    `gorm:"column:refresh_token;type:varchar(200);not null;default:''"`
	CreateTime   time.Time `gorm:"column:create_time;type:timestamp;not null;default:CURRENT_TIMESTAMP"`
	CreateBy     int       `gorm:"column:create_by;type:int(11);not null"`
}

Staff [...]

type StaffGroup

type StaffGroup struct {
	ProjectGroupID int  `json:"project_group_id"`
	Role           Role `json:"role"`
}

type StaffGroupRel

type StaffGroupRel struct {
	ID             int  `gorm:"primaryKey;column:id;type:int(11);not null"`
	ProjectGroupID int  `gorm:"index:project_group_id;column:project_group_id;type:int(11);not null"`
	StaffID        int  `gorm:"index:staff_id;column:staff_id;type:int(11);not null"`
	RoleType       int8 `gorm:"column:role_type;type:tinyint(4);not null"` // 权限角色
}

StaffGroupRel [...]

type StaffList

type StaffList struct {
	StaffID    int    `json:"staff_id"`
	Name       string `json:"name"`
	CreateTime int64  `json:"create_time"`

	Roles []StaffRole `json:"roles"`
}

type StaffRole

type StaffRole struct {
	StaffGroupRelID  int    `json:"staff_group_rel_id"`
	ProjectGroupID   int    `json:"project_group_id"`
	ProjectGroupName string `json:"project_group_name"`
	Role             Role   `json:"role"`
	RoleInfo         string `json:"role_info"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL