models

package
v0.0.0-...-8ef6624 Latest Latest
Warning

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

Go to latest
Published: Aug 10, 2023 License: MIT Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type CWE

type CWE []string

func (*CWE) Scan

func (x *CWE) Scan(src any) error

func (CWE) Value

func (x CWE) Value() (driver.Value, error)

type CodeType

type CodeType int
const (

	// CodeTypeCVE CVE编号
	CodeTypeCVE CodeType = iota

	// CodeTypeGHSA GHSA编号
	CodeTypeGHSA

	// CodeTypeCNVD CNV编号
	CodeTypeCNVD

	// CodeTypeCNNVD CNNVD编号
	CodeTypeCNNVD
)

func (CodeType) String

func (x CodeType) String() string

type ComponentVul

type ComponentVul struct {

	// 组件的名字
	Name string `mapstructure:"name" json:"name,omitempty" yaml:"name" db:"name" gorm:"column:name;index:component_vuls,unique"`

	// 组件的版本
	Version string `mapstructure:"version" json:"version,omitempty" yaml:"version" db:"version" gorm:"column:version;index:component_vuls,unique"`

	// 漏洞的ID
	VulId string `mapstructure:"vul_id" json:"vul_id,omitempty" yaml:"vul_id" db:"vul_id" gorm:"column:vul_id;index:component_vuls,unique"`

	// 创建时间
	CreateTime *time.Time `mapstructure:"create_time" json:"create_time,omitempty" yaml:"create_time" db:"create_time" gorm:"create_time"`
	UpdateTime *time.Time `mapstructure:"update_time" json:"update_time,omitempty" yaml:"update_time" db:"update_time" gorm:"update_time"`
	ChangeTime *time.Time `mapstructure:"change_time" json:"change_time,omitempty" yaml:"change_time" db:"change_time" gorm:"change_time"`
}

ComponentVul 组件漏洞表

func (*ComponentVul) BuildComponentId

func (x *ComponentVul) BuildComponentId() string

BuildComponentId 组件的唯一标识符

func (*ComponentVul) TableName

func (x *ComponentVul) TableName() string

type I18nText

type I18nText map[language.Tag]string

I18nText 支持国际化的文本

func NewI18nText

func NewI18nText() I18nText

func (I18nText) Append

func (x I18nText) Append(language language.Tag, text string) I18nText

func (I18nText) Merge

func (x I18nText) Merge(language language.Tag, text string) I18nText

Merge 仅当给定的language不存在的时候才设置,如果已经存在的话则忽略

func (I18nText) MergeAll

func (x I18nText) MergeAll(i18nText I18nText) I18nText

func (*I18nText) Scan

func (x *I18nText) Scan(src any) error

func (I18nText) Set

func (x I18nText) Set(language language.Tag, text string) I18nText

Set 不管给定的language存不存在都会更新为value,已经存在的话会被覆盖掉

func (I18nText) SetAll

func (x I18nText) SetAll(i18nText I18nText) I18nText

func (I18nText) Value

func (x I18nText) Value() (driver.Value, error)

type License

type License struct {
	Identifier string `mapstructure:"identifier" json:"identifier,omitempty" yaml:"identifier" db:"identifier" gorm:"column:identifier;primaryKey"`
	LevelId    int    `mapstructure:"level_id" json:"level_id,omitempty" yaml:"level_id" db:"level_id" gorm:"column:level_id"`

	// 默认值: 允许商业集成
	LevelDesc string    `mapstructure:"level_desc" json:"level_desc,omitempty" yaml:"level_desc" db:"level_desc" gorm:"column:level_desc"`
	CreateAt  time.Time `mapstructure:"create_at" json:"create_at,omitempty" yaml:"create_at" db:"create_at" gorm:"column:create_at"`
	UpdateAt  time.Time `mapstructure:"update_at" json:"update_at,omitempty" yaml:"update_at" db:"update_at" gorm:"column:update_at"`
}

func NewLicensesLevel

func NewLicensesLevel() *License

func (*License) TableName

func (x *License) TableName() string

type MavenComponentVul

type MavenComponentVul struct {

	// Maven组件的唯一标识
	GroupId    string `` /* 136-byte string literal not displayed */
	ArtifactId string `` /* 151-byte string literal not displayed */
	Version    string `` /* 131-byte string literal not displayed */

	// 关联到的漏洞的ID
	VulId string `` /* 126-byte string literal not displayed */

	// 创建时间
	CreateTime *time.Time `mapstructure:"create_time" json:"create_time,omitempty" yaml:"create_time" db:"create_time" gorm:"create_time"`
	UpdateTime *time.Time `mapstructure:"update_time" json:"update_time,omitempty" yaml:"update_time" db:"update_time" gorm:"update_time"`
}

MavenComponentVul TODO 准备废弃

func (*MavenComponentVul) TableName

func (x *MavenComponentVul) TableName() string

type Reference

type Reference struct {
	*osv_schema.Reference `mapstructure:",squash" json:",squash" yaml:",squash" db:",squash" bson:",squash" gorm:"column:type"`
	Language              *language.Tag `mapstructure:"language" json:"language" yaml:"language" db:"language" bson:"language" gorm:"column:language"`
}

Reference 漏洞的引用文章,在OSV的Reference的基础上扩展了语言字段,以便能够在国际化的时候根据不同的语言返回不同的引用文章

func NewReference

func NewReference(language language.Tag, referenceType osv_schema.ReferenceType, referenceUrl string) *Reference

NewReference 创建引用类型

func NewReferenceFromOsv

func NewReferenceFromOsv(language language.Tag, reference *osv_schema.Reference) *Reference

NewReferenceFromOsv 从OSV的引用中创建sca的支持i18n的引用

func (*Reference) Scan

func (x *Reference) Scan(src any) error

func (*Reference) Value

func (x *Reference) Value() (driver.Value, error)

type References

type References []*Reference

func NewReferencesFromOsv

func NewReferencesFromOsv(language language.Tag, osvReferences osv_schema.References) References

NewReferencesFromOsv 从OSV的引用中创建sca的支持i18n的引用

func (References) ContainsUrl

func (x References) ContainsUrl(url string) bool

ContainsUrl 判断引用中是否包含给定的URL

func (References) FilterByLanguage

func (x References) FilterByLanguage(language language.Tag) References

FilterByLanguage 根据引用的语言来过滤,一般用于国际化

func (References) FilterByType

func (x References) FilterByType(referenceTypes ...osv_schema.ReferenceType) References

FilterByType 根据引用文章的类型来过滤

func (*References) Scan

func (x *References) Scan(src any) error

func (References) Value

func (x References) Value() (driver.Value, error)

type Vul

type Vul struct {

	// 漏洞ID
	VulId string `mapstructure:"vul_id" json:"vul_id,omitempty" yaml:"vul_id" db:"vul_id" gorm:"column:vul_id;primaryKey"`

	// 漏洞的CVSS3评分
	CVSS3 string `mapstructure:"cvss_v3" json:"cvss_v3,omitempty" yaml:"cvss_v3" db:"cvss_v3" gorm:"column:cvss_v3"`

	// 漏洞的cwe,json的string array
	CWE osv_schema.Aliases `mapstructure:"cwe" json:"cwe,omitempty" yaml:"cwe" db:"cwe" gorm:"column:cwe;serializer:json"`

	// 漏洞的标题
	Title I18nText `mapstructure:"title" json:"title,omitempty" yaml:"title" db:"title" gorm:"column:title;serializer:json"`

	// 漏洞的描述
	Description I18nText `` /* 133-byte string literal not displayed */

	// 漏洞相关的引用文章
	References References `` /* 128-byte string literal not displayed */

	Severity string `mapstructure:"severity" json:"severity,omitempty" yaml:"severity" db:"severity" gorm:"column:severity"`

	// 漏洞的发布时间
	PublishedTime *time.Time `` /* 132-byte string literal not displayed */

	// 几个时间
	CreateTime *time.Time `mapstructure:"create_time" json:"create_time,omitempty" yaml:"create_time" db:"create_time" gorm:"column:create_time"`
	UpdateTime *time.Time `mapstructure:"update_time" json:"update_time,omitempty" yaml:"update_time" db:"update_time" gorm:"column:update_time"`
	ChangeTime *time.Time `mapstructure:"change_time" json:"change_time,omitempty" yaml:"change_time" db:"change_time" gorm:"column:change_time"`
}

Vul 表示一条漏洞信息

func (*Vul) MergeDescription

func (x *Vul) MergeDescription(language language.Tag, description string) *Vul

MergeDescription 把给定的语言合并到描述中,如果已经存在的话则忽略

func (*Vul) MergeDescriptionAll

func (x *Vul) MergeDescriptionAll(description I18nText) *Vul

func (*Vul) MergeReferences

func (x *Vul) MergeReferences(language language.Tag, reference *Reference) *Vul

MergeReferences 把给定的语言合并到引用中,如果已经存在的话则忽略

func (*Vul) MergeReferencesAll

func (x *Vul) MergeReferencesAll(references References) *Vul

MergeReferencesAll 把给定的语言合并到引用中,如果已经存在的话则忽略

func (*Vul) MergeTitle

func (x *Vul) MergeTitle(language language.Tag, title string) *Vul

MergeTitle 把给定的语言合并到title中,如果已经存在的话则忽略

func (*Vul) MergeTitleAll

func (x *Vul) MergeTitleAll(title I18nText) *Vul

func (*Vul) TableName

func (x *Vul) TableName() string

func (*Vul) UpdateDescription

func (x *Vul) UpdateDescription(language language.Tag, description string) *Vul

UpdateDescription 把给定的语言合并到描述中,如果已经存在的话则覆盖

func (*Vul) UpdateDescriptionAll

func (x *Vul) UpdateDescriptionAll(description I18nText) *Vul

func (*Vul) UpdateReferences

func (x *Vul) UpdateReferences(language language.Tag, reference *Reference) *Vul

UpdateReferences 把给定的语言合并到引用中,如果已经存在的话则覆盖

func (*Vul) UpdateReferencesAll

func (x *Vul) UpdateReferencesAll(references References) *Vul

UpdateReferencesAll 更新引用,如果引用已经存在了则覆盖更新,否则新增,在修改引用列表的时候会尽可能的保持其原有顺序

func (*Vul) UpdateTitle

func (x *Vul) UpdateTitle(language language.Tag, title string) *Vul

UpdateTitle 把给定的语言合并到title中,如果已经存在的话则覆盖

func (*Vul) UpdateTitleAll

func (x *Vul) UpdateTitleAll(title I18nText) *Vul

type VulCode

type VulCode struct {

	// 关联到的漏洞的ID,这个vul_id和code两个字段做一个联合的唯一索引
	VulId string `mapstructure:"vul_id" json:"vul_id,omitempty" gorm:"column:vul_id;index:vul_codes,unique"`

	// 漏洞的编号
	// 漏洞 + code 有一个唯一索引
	// code 自己单独一个唯一索引
	Code string `mapstructure:"code" json:"code,omitempty" gorm:"column:code;index:vul_codes,unique;index:codes"`

	// 漏洞的编号类型
	CodeType CodeType `mapstructure:"code_type" json:"code_type,omitempty" gorm:"column:code_type"`

	// 几个创建时间更新时间啥的
	CreateTime *time.Time `mapstructure:"create_time" json:"create_time,omitempty" gorm:"column:create_time"`
	UpdateTime *time.Time `mapstructure:"update_time" json:"update_time,omitempty" gorm:"column:update_time"`
	ChangeTime *time.Time `mapstructure:"change_time" json:"change_time,omitempty" gorm:"column:change_time"`
}

VulCode 用于表示漏洞关联到的编号

func (*VulCode) TableName

func (x *VulCode) TableName() string

Jump to

Keyboard shortcuts

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