Versions in this module Expand all Collapse all v0 v0.7.4 Apr 9, 2022 Changes in this version + var AllTables = []interface + var ErrActionScoreInvalid = errors.New("invalid score, please check the action type and the sign of the score") + var ErrBadCredentials = errors.New("bad credentials") + var ErrBadLogLevel = errors.New("bad log level") + var ErrBadLogType = errors.New("bad log type") + var ErrBulletinNotExists = errors.New("bulletin does not exist") + var ErrChallengeAlreadyExists = errors.New("challenge already exits") + var ErrChallengeNotExists = errors.New("challenge does not exist") + var ErrDuplicateAction = errors.New("duplicate action") + var ErrFlagNotExists = errors.New("flag does not find") + var ErrGameBoxAlreadyExists = errors.New("game box already exits") + var ErrGameBoxNotExists = errors.New("game box does not exist") + var ErrManagerAlreadyExists = errors.New("manager already exits") + var ErrManagerNotExists = errors.New("manager dose not exist") + var ErrTeamAlreadyExists = errors.New("team already exits") + var ErrTeamNotExists = errors.New("team dose not exist") + func Init() error + func SetDatabaseStore(db *gorm.DB) + type Action struct + AttackerTeamID uint + ChallengeID uint + GameBoxID uint + Round uint + Score float64 + TeamID uint + Type ActionType + type ActionType uint + const ActionTypeAttack + const ActionTypeBeenAttack + const ActionTypeCheckDown + const ActionTypeServiceOnline + type ActionsStore interface + CountScore func(ctx context.Context, opts CountActionScoreOptions) (float64, error) + Create func(ctx context.Context, opts CreateActionOptions) (*Action, error) + Delete func(ctx context.Context, opts DeleteActionOptions) error + DeleteAll func(ctx context.Context) error + Get func(ctx context.Context, opts GetActionOptions) ([]*Action, error) + GetEmptyScore func(ctx context.Context, round uint, actionType ActionType) ([]*Action, error) + SetScore func(ctx context.Context, opts SetActionScoreOptions) error + var Actions ActionsStore + func NewActionsStore(db *gorm.DB) ActionsStore + type Bulletin struct + Body string + Title string + type BulletinsStore interface + Create func(ctx context.Context, opts CreateBulletinOptions) (uint, error) + DeleteAll func(ctx context.Context) error + DeleteByID func(ctx context.Context, id uint) error + Get func(ctx context.Context) ([]*Bulletin, error) + GetByID func(ctx context.Context, id uint) (*Bulletin, error) + Update func(ctx context.Context, id uint, opts UpdateBulletinOptions) error + var Bulletins BulletinsStore + func NewBulletinsStore(db *gorm.DB) BulletinsStore + type Challenge struct + AutoRenewFlag bool + BaseScore float64 + RenewFlagCommand string + Title string + type ChallengesStore interface + BatchCreate func(ctx context.Context, opts []CreateChallengeOptions) ([]*Challenge, error) + Create func(ctx context.Context, opts CreateChallengeOptions) (uint, error) + DeleteAll func(ctx context.Context) error + DeleteByID func(ctx context.Context, id uint) error + Get func(ctx context.Context) ([]*Challenge, error) + GetByID func(ctx context.Context, id uint) (*Challenge, error) + GetByIDs func(ctx context.Context, ids ...uint) ([]*Challenge, error) + Update func(ctx context.Context, id uint, opts UpdateChallengeOptions) error + var Challenges ChallengesStore + func NewChallengesStore(db *gorm.DB) ChallengesStore + type CountActionScoreOptions struct + AttackerTeamID uint + ChallengeID uint + GameBoxID uint + Round uint + TeamID uint + Type ActionType + type CountFlagOptions struct + ChallengeID uint + GameBoxID uint + Round uint + TeamID uint + type CreateActionOptions struct + AttackerTeamID uint + GameBoxID uint + Round uint + Type ActionType + type CreateBulletinOptions struct + Body string + Title string + type CreateChallengeOptions struct + AutoRenewFlag bool + BaseScore float64 + RenewFlagCommand string + Title string + type CreateFlagOptions struct + Flags []FlagMetadata + type CreateGameBoxOptions struct + ChallengeID uint + Description string + IPAddress string + InternalSSH SSHConfig + Port uint + TeamID uint + type CreateLogOptions struct + Body string + Level LogLevel + Type LogType + type CreateManagerOptions struct + IsCheckAccount bool + Name string + Password string + type CreateTeamOptions struct + Logo string + Name string + Password string + type DatabaseType string + const DatabaseTypeMySQL + const DatabaseTypePostgres + type DeleteActionOptions struct + ActionID uint + AttackerTeamID uint + ChallengeID uint + GameBoxID uint + Round uint + TeamID uint + Type ActionType + type Flag struct + ChallengeID uint + GameBoxID uint + Round uint + TeamID uint + Value string + type FlagMetadata struct + GameBoxID uint + Round uint + Value string + type FlagsStore interface + BatchCreate func(ctx context.Context, opts CreateFlagOptions) error + Check func(ctx context.Context, flag string) (*Flag, error) + Count func(ctx context.Context, opts CountFlagOptions) (int64, error) + DeleteAll func(ctx context.Context) error + Get func(ctx context.Context, opts GetFlagOptions) ([]*Flag, int64, error) + var Flags FlagsStore + func NewFlagsStore(db *gorm.DB) FlagsStore + type GameBox struct + Challenge *Challenge + ChallengeID uint + Description string + IPAddress string + InternalSSHPassword string + InternalSSHPort uint + InternalSSHUser string + IsCaptured bool + IsDown bool + Port uint + Score float64 + Team *Team + TeamID uint + Visible bool + type GameBoxCountScoreOptions struct + ChallengeID uint + IsCaptured bool + IsDown bool + TeamID uint + Visible bool + type GameBoxInfo struct + ChallengeID uint + IsCaptured bool + IsDown bool + Score float64 + type GameBoxInfoList []*GameBoxInfo + func (g GameBoxInfoList) Len() int + func (g GameBoxInfoList) Less(i, j int) bool + func (g GameBoxInfoList) Swap(i, j int) + type GameBoxesStore interface + BatchCreate func(ctx context.Context, opts []CreateGameBoxOptions) ([]*GameBox, error) + CleanAllStatus func(ctx context.Context) error + CleanStatus func(ctx context.Context, id uint) error + Count func(ctx context.Context) (int64, error) + CountScore func(ctx context.Context, opts GameBoxCountScoreOptions) (float64, error) + Create func(ctx context.Context, opts CreateGameBoxOptions) (uint, error) + DeleteAll func(ctx context.Context) error + DeleteByIDs func(ctx context.Context, ids ...uint) error + Get func(ctx context.Context, opts GetGameBoxesOption) ([]*GameBox, error) + GetByID func(ctx context.Context, id uint) (*GameBox, error) + SetCaptured func(ctx context.Context, id uint) error + SetDown func(ctx context.Context, id uint) error + SetScore func(ctx context.Context, id uint, score float64) error + SetVisible func(ctx context.Context, id uint, isVisible bool) error + Update func(ctx context.Context, id uint, opts UpdateGameBoxOptions) error + var GameBoxes GameBoxesStore + func NewGameBoxesStore(db *gorm.DB) GameBoxesStore + type GetActionOptions struct + ActionID uint + AttackerTeamID uint + ChallengeID uint + GameBoxID uint + Round uint + TeamID uint + Type ActionType + type GetFlagOptions struct + ChallengeID uint + GameBoxID uint + Page int + PageSize int + Round uint + TeamID uint + type GetGameBoxesOption struct + ChallengeID uint + IsCaptured bool + IsDown bool + TeamID uint + Visible bool + type GetTeamsOptions struct + Order string + OrderBy string + Page int + PageSize int + type Log struct + Body string + Level LogLevel + Type LogType + type LogLevel int + const LogLevelImportant + const LogLevelNormal + const LogLevelWarning + type LogType string + const LogTypeHealthCheck + const LogTypeManagerOperate + const LogTypeSSH + const LogTypeSystem + type LogsStore interface + Create func(ctx context.Context, opts CreateLogOptions) error + DeleteAll func(ctx context.Context) error + Get func(ctx context.Context) ([]*Log, error) + var Logs LogsStore + func NewLogsStore(db *gorm.DB) LogsStore + type Manager struct + IsCheckAccount bool + Name string + Password string + Salt string + func (m *Manager) EncodePassword() + func (m *Manager) ValidatePassword(password string) bool + type ManagersStore interface + Authenticate func(ctx context.Context, name, password string) (*Manager, error) + ChangePassword func(ctx context.Context, id uint, newPassword string) error + Create func(ctx context.Context, opts CreateManagerOptions) (*Manager, error) + DeleteAll func(ctx context.Context) error + DeleteByID func(ctx context.Context, id uint) error + Get func(ctx context.Context) ([]*Manager, error) + GetByID func(ctx context.Context, id uint) (*Manager, error) + Update func(ctx context.Context, id uint, opts UpdateManagerOptions) error + var Managers ManagersStore + func NewManagersStore(db *gorm.DB) ManagersStore + type RankItem struct + GameBoxes GameBoxInfoList + Rank uint + Score float64 + TeamID uint + TeamLogo string + TeamName string + type RankListOptions struct + ShowGameBoxScore bool + type RanksStore interface + List func(ctx context.Context) ([]*RankItem, error) + VisibleChallengeTitle func(ctx context.Context) ([]string, error) + var Ranks RanksStore + func NewRanksStore(db *gorm.DB) RanksStore + type SSHConfig struct + Password string + Port uint + User string + type ScoresStore interface + Calculate func(ctx context.Context, round uint) error + RefreshAttackScore func(ctx context.Context, round uint, replaces ...bool) error + RefreshCheckScore func(ctx context.Context, round uint, replaces ...bool) error + RefreshGameBoxScore func(ctx context.Context) error + RefreshTeamScore func(ctx context.Context) error + var Scores ScoresStore + func NewScoresStore(db *gorm.DB) ScoresStore + type SetActionScoreOptions struct + ActionID uint + GameBoxID uint + Replace bool + Round uint + Score float64 + type Team struct + Logo string + Name string + Password string + Rank uint + Salt string + Score float64 + Token string + func (t *Team) EncodePassword() + func (t *Team) ValidatePassword(password string) bool + type TeamsStore interface + Authenticate func(ctx context.Context, name, password string) (*Team, error) + BatchCreate func(ctx context.Context, opts []CreateTeamOptions) ([]*Team, error) + ChangePassword func(ctx context.Context, id uint, newPassword string) error + Create func(ctx context.Context, opts CreateTeamOptions) (*Team, error) + DeleteAll func(ctx context.Context) error + DeleteByID func(ctx context.Context, id uint) error + Get func(ctx context.Context, opts GetTeamsOptions) ([]*Team, error) + GetByID func(ctx context.Context, id uint) (*Team, error) + GetByName func(ctx context.Context, name string) (*Team, error) + GetByToken func(ctx context.Context, token string) (*Team, error) + SetScore func(ctx context.Context, id uint, score float64) error + Update func(ctx context.Context, id uint, opts UpdateTeamOptions) error + var Teams TeamsStore + func NewTeamsStore(db *gorm.DB) TeamsStore + type UpdateBulletinOptions struct + Body string + Title string + type UpdateChallengeOptions struct + AutoRenewFlag bool + BaseScore float64 + RenewFlagCommand string + Title string + type UpdateGameBoxOptions struct + Description string + IPAddress string + InternalSSH SSHConfig + Port uint + type UpdateManagerOptions struct + IsCheckAccount bool + type UpdateTeamOptions struct + Logo string + Name string + Token string