Documentation ¶
Index ¶
- Constants
- Variables
- type AccessLog
- type Actor
- type AdminJob
- type AdminJobQuery
- type AuthModel
- type BaseProjectCollection
- type ClairError
- type ClairFeature
- type ClairLayer
- type ClairLayerEnvelope
- type ClairNamespace
- type ClairNamespaceEnvelope
- type ClairNamespaceTimestamp
- type ClairNotification
- type ClairNotificationEnvelope
- type ClairOrderedLayerName
- type ClairVulnTimestamp
- type ClairVulnerability
- type ClairVulnerabilityStatus
- type ClairVulnerabilityWithLayers
- type ComponentsOverview
- type ComponentsOverviewEntry
- type ConfigEntry
- type Database
- type Email
- type Event
- type Image
- type ImageScanReq
- type ImgScanOverview
- type JobLog
- type Label
- type LabelQuery
- type LdapConf
- type LdapFailedImportUser
- type LdapGroup
- type LdapGroupConf
- type LdapImportUser
- type LdapUser
- type LogQueryParam
- type Member
- type MemberQuery
- type MemberReq
- type MySQL
- type Notification
- type Pagination
- type PostGreSQL
- type Project
- func (p *Project) AutoScan() bool
- func (p *Project) ContentTrustEnabled() bool
- func (p *Project) GetMetadata(key string) (string, bool)
- func (p *Project) IsPublic() bool
- func (p *Project) SetMetadata(key, value string)
- func (p *Project) Severity() string
- func (p *Project) TableName() string
- func (p *Project) VulPrevented() bool
- type ProjectMetadata
- type ProjectQueryParam
- type ProjectQueryResult
- type ProjectRequest
- type RepJob
- type RepJobQuery
- type RepPolicy
- type RepTarget
- type RepoRecord
- type RepositoryQuery
- type Request
- type ResourceLabel
- type ResourceLabelQuery
- type RetagRequest
- type Role
- type SQLite
- type ScanAllPolicy
- type ScanJob
- type SchemaVersion
- type Severity
- type Sorting
- type Target
- type Token
- type UAASettings
- type User
- type UserGroup
- type UserMember
- type UserQuery
- type VulnerabilityItem
- type WatchItem
Constants ¶
const ( // JobPending ... JobPending string = "pending" // JobRunning ... JobRunning string = "running" // JobError ... JobError string = "error" // JobStopped ... JobStopped string = "stopped" // JobFinished ... JobFinished string = "finished" // JobCanceled ... JobCanceled string = "canceled" // JobRetrying indicate the job needs to be retried, it will be scheduled to the end of job queue by statemachine after an interval. JobRetrying string = "retrying" // JobContinue is the status returned by statehandler to tell statemachine to move to next possible state based on trasition table. JobContinue string = "_continue" // JobScheduled ... JobScheduled string = "scheduled" )
const ( ProMetaPublic = "public" ProMetaEnableContentTrust = "enable_content_trust" ProMetaPreventVul = "prevent_vul" // prevent vulnerable images from being pulled ProMetaSeverity = "severity" ProMetaAutoScan = "auto_scan" SeverityNone = "negligible" SeverityLow = "low" SeverityMedium = "medium" SeverityHigh = "high" SeverityCritical = "critical" )
keys of project metadata and severity values
const ( // RepOpTransfer represents the operation of a job to transfer repository to a remote registry/harbor instance. RepOpTransfer string = "transfer" // RepOpDelete represents the operation of a job to remove repository from a remote registry/harbor instance. RepOpDelete string = "delete" // RepOpSchedule represents the operation of a job to schedule the real replication process RepOpSchedule string = "schedule" // RepTargetTable is the table name for replication targets RepTargetTable = "replication_target" // RepJobTable is the table name for replication jobs RepJobTable = "replication_job" // RepPolicyTable is table name for replication policies RepPolicyTable = "replication_policy" )
const ( // PROJECTADMIN project administrator PROJECTADMIN = 1 // DEVELOPER developer DEVELOPER = 2 // GUEST guest GUEST = 3 )
const ( // ScanAllNone "none" for not doing any scan all ScanAllNone = "none" // ScanAllDaily for doing scan all daily ScanAllDaily = "daily" // ScanAllOnRefresh for doing scan all when the Clair DB is refreshed. ScanAllOnRefresh = "on_refresh" // ScanAllDailyTime the key for parm of daily scan all policy. ScanAllDailyTime = "daily_time" )
const ( // AdminJobTable is table name for admin job // 表名admin_job AdminJobTable = "admin_job" )
const ClairVulnTimestampTable = "clair_vuln_timestamp"
ClairVulnTimestampTable is the name of the table that tracks the timestamp of vulnerability in Clair.
const JobLogTable = "job_log"
JobLogTable is the name of the table that record the job execution result.
const ProjectTable = "project"
ProjectTable is the table name for project
const RepoTable = "repository"
RepoTable is the table name for repository
const ScanJobTable = "img_scan_job"
ScanJobTable is the name of the table whose data is mapped by ScanJob struct.
const ScanOverviewTable = "img_scan_overview"
ScanOverviewTable is the name of the table whose data is mapped by ImgScanOverview struct.
const UserGroupTable = "user_group"
UserGroupTable is the name of table in DB that holds the user object
const UserTable = "harbor_user"
UserTable is the name of table in DB that holds the user object
Variables ¶
var DefaultScanAllPolicy = ScanAllPolicy{ Type: ScanAllNone, }
DefaultScanAllPolicy ...
Functions ¶
This section is empty.
Types ¶
type AccessLog ¶
type AccessLog struct { LogID int `orm:"pk;auto;column(log_id)" json:"log_id"` Username string `orm:"column(username)" json:"username"` ProjectID int64 `orm:"column(project_id)" json:"project_id"` RepoName string `orm:"column(repo_name)" json:"repo_name"` RepoTag string `orm:"column(repo_tag)" json:"repo_tag"` GUID string `orm:"column(guid)" json:"guid"` Operation string `orm:"column(operation)" json:"operation"` OpTime time.Time `orm:"column(op_time)" json:"op_time"` }
AccessLog holds information about logs which are used to record the actions that user take to the resourses.
type AdminJob ¶
type AdminJob struct { ID int64 `orm:"pk;auto;column(id)" json:"id"` Name string `orm:"column(job_name)" json:"job_name"` Kind string `orm:"column(job_kind)" json:"job_kind"` Cron string `orm:"column(cron_str)" json:"cron_str"` Status string `orm:"column(status)" json:"job_status"` UUID string `orm:"column(job_uuid)" json:"-"` Deleted bool `orm:"column(deleted)" json:"deleted"` CreationTime time.Time `orm:"column(creation_time);auto_now_add" json:"creation_time"` UpdateTime time.Time `orm:"column(update_time);auto_now" json:"update_time"` }
AdminJob ...
type AdminJobQuery ¶
type AdminJobQuery struct { ID int64 Name string Kind string Status string UUID string Deleted bool Pagination }
AdminJobQuery : query parameters for adminjob
type BaseProjectCollection ¶
BaseProjectCollection contains the query conditions which can be used to get a project collection. The collection can be used as the base to do other filter
type ClairError ¶
type ClairError struct {
Message string `json:"Message,omitempty"`
}
ClairError ...
type ClairFeature ¶
type ClairFeature struct { Name string `json:"Name,omitempty"` NamespaceName string `json:"NamespaceName,omitempty"` VersionFormat string `json:"VersionFormat,omitempty"` Version string `json:"Version,omitempty"` Vulnerabilities []ClairVulnerability `json:"Vulnerabilities,omitempty"` AddedBy string `json:"AddedBy,omitempty"` }
ClairFeature ...
type ClairLayer ¶
type ClairLayer struct { Name string `json:"Name,omitempty"` NamespaceNames []string `json:"NamespaceNames,omitempty"` Path string `json:"Path,omitempty"` Headers map[string]string `json:"Headers,omitempty"` ParentName string `json:"ParentName,omitempty"` Format string `json:"Format,omitempty"` Features []ClairFeature `json:"Features,omitempty"` }
ClairLayer ...
type ClairLayerEnvelope ¶
type ClairLayerEnvelope struct { Layer *ClairLayer `json:"Layer,omitempty"` Error *ClairError `json:"Error,omitempty"` }
ClairLayerEnvelope ...
type ClairNamespace ¶
type ClairNamespace struct { Name string `json:"Name,omitempty"` VersionFormat string `json:"VersionFormat,omitempty"` }
ClairNamespace ...
type ClairNamespaceEnvelope ¶
type ClairNamespaceEnvelope struct { Namespaces *[]ClairNamespace `json:"Namespaces,omitempty"` Error *ClairError `json:"Error,omitempty"` }
ClairNamespaceEnvelope ...
type ClairNamespaceTimestamp ¶
type ClairNamespaceTimestamp struct { Namespace string `json:"namespace"` Timestamp int64 `json:"last_update"` }
ClairNamespaceTimestamp is a record to store the clairname space and the timestamp, in practice different namespace in Clair maybe merged into one, e.g. ubuntu:14.04 and ubuntu:16.4 maybe merged into ubuntu and put into response.
type ClairNotification ¶
type ClairNotification struct { Name string `json:"Name,omitempty"` Created string `json:"Created,omitempty"` Notified string `json:"Notified,omitempty"` Deleted string `json:"Deleted,omitempty"` Limit int `json:"Limit,omitempty"` Page string `json:"Page,omitempty"` NextPage string `json:"NextPage,omitempty"` Old *ClairVulnerabilityWithLayers `json:"Old,omitempty"` New *ClairVulnerabilityWithLayers `json:"New,omitempty"` }
ClairNotification ...
type ClairNotificationEnvelope ¶
type ClairNotificationEnvelope struct { Notification *ClairNotification `json:"Notification,omitempty"` Error *ClairError `json:"Error,omitempty"` }
ClairNotificationEnvelope ...
type ClairOrderedLayerName ¶
ClairOrderedLayerName ...
type ClairVulnTimestamp ¶
type ClairVulnTimestamp struct { ID int64 `orm:"pk;auto;column(id)" json:"-"` Namespace string `orm:"column(namespace)" json:"namespace"` LastUpdate time.Time `orm:"column(last_update)" json:"-"` LastUpdateUTC int64 `orm:"-" json:"last_update"` }
ClairVulnTimestamp represents a record in DB that tracks the timestamp of vulnerability in Clair.
func (*ClairVulnTimestamp) TableName ¶
func (ct *ClairVulnTimestamp) TableName() string
TableName is required by beego to map struct to table.
type ClairVulnerability ¶
type ClairVulnerability struct { Name string `json:"Name,omitempty"` NamespaceName string `json:"NamespaceName,omitempty"` Description string `json:"Description,omitempty"` Link string `json:"Link,omitempty"` Severity string `json:"Severity,omitempty"` Metadata map[string]interface{} `json:"Metadata,omitempty"` FixedBy string `json:"FixedBy,omitempty"` FixedIn []ClairFeature `json:"FixedIn,omitempty"` }
ClairVulnerability ...
type ClairVulnerabilityStatus ¶
type ClairVulnerabilityStatus struct { OverallUTC int64 `json:"overall_last_update,omitempty"` Details []ClairNamespaceTimestamp `json:"details,omitempty"` }
ClairVulnerabilityStatus reflects the readiness and freshness of vulnerability data in Clair, which will be returned in response of systeminfo API.
type ClairVulnerabilityWithLayers ¶
type ClairVulnerabilityWithLayers struct { Vulnerability *ClairVulnerability `json:"Vulnerability,omitempty"` OrderedLayersIntroducingVulnerability []ClairOrderedLayerName `json:"OrderedLayersIntroducingVulnerability,omitempty"` }
ClairVulnerabilityWithLayers ...
type ComponentsOverview ¶
type ComponentsOverview struct { // total 表示有多少漏洞 Total int `json:"total"` Summary []*ComponentsOverviewEntry `json:"summary"` }
ComponentsOverview has the total number and a list of components number of different serverity level.
type ComponentsOverviewEntry ¶
ComponentsOverviewEntry ...
type ConfigEntry ¶
type ConfigEntry struct { ID int64 `orm:"pk;auto;column(id)" json:"-"` Key string `orm:"column(k)" json:"k"` Value string `orm:"column(v)" json:"v"` }
ConfigEntry ...
type Database ¶
type Database struct { Type string `json:"type"` PostGreSQL *PostGreSQL `json:"postgresql,omitempty"` }
Database ...
type Email ¶
type Email struct { Host string `json:"host"` Port int `json:"port"` Username string `json:"username"` Password string `json:"password"` SSL bool `json:"ssl"` Identity string `json:"identity"` From string `json:"from"` Insecure bool `json:"insecure"` }
Email ...
type Event ¶
type Event struct { ID string `json:"Id"` TimeStamp time.Time Action string Target *Target Request *Request Actor *Actor }
Event holds the details of a event.
type Image ¶
Image holds each part (project, repo, tag) of an image name
func ParseImage ¶
ParseImage parses an image name such as 'library/app:v1.0' to a structure with project, repo, and tag fields
type ImageScanReq ¶
ImageScanReq represents the request body to send to job service for image scan
type ImgScanOverview ¶
type ImgScanOverview struct { ID int64 `orm:"pk;auto;column(id)" json:"-"` Digest string `orm:"column(image_digest)" json:"image_digest"` Status string `orm:"-" json:"scan_status"` JobID int64 `orm:"column(scan_job_id)" json:"job_id"` Sev int `orm:"column(severity)" json:"severity"` CompOverviewStr string `orm:"column(components_overview)" json:"-"` CompOverview *ComponentsOverview `orm:"-" json:"components,omitempty"` DetailsKey string `orm:"column(details_key)" json:"details_key"` CreationTime time.Time `orm:"column(creation_time);auto_now_add" json:"creation_time,omitempty"` UpdateTime time.Time `orm:"column(update_time);auto_now" json:"update_time,omitempty"` }
ImgScanOverview mapped to a record of image scan overview.
type JobLog ¶
type JobLog struct { LogID int `orm:"pk;auto;column(log_id)" json:"log_id"` UUID string `orm:"column(job_uuid)" json:"uuid"` CreationTime time.Time `orm:"column(creation_time);auto_now_add" json:"creation_time"` Content string `orm:"column(content)" json:"content"` }
JobLog holds information about logs which are used to record the result of execution of a job.
type Label ¶
type Label struct { ID int64 `orm:"pk;auto;column(id)" json:"id"` Name string `orm:"column(name)" json:"name"` Description string `orm:"column(description)" json:"description"` Color string `orm:"column(color)" json:"color"` Level string `orm:"column(level)" json:"-"` Scope string `orm:"column(scope)" json:"scope"` ProjectID int64 `orm:"column(project_id)" json:"project_id"` CreationTime time.Time `orm:"column(creation_time);auto_now_add" json:"creation_time"` UpdateTime time.Time `orm:"column(update_time);auto_now" json:"update_time"` Deleted bool `orm:"column(deleted)" json:"deleted"` }
Label holds information used for a label
type LabelQuery ¶
type LabelQuery struct { Name string FuzzyMatchName bool // the property is used to determine the query for lable name is fuzzy matching or exaxt matching Level string Scope string ProjectID int64 Pagination }
LabelQuery : query parameters for labels
type LdapConf ¶
type LdapConf struct { LdapURL string `json:"ldap_url"` LdapSearchDn string `json:"ldap_search_dn"` LdapSearchPassword string `json:"ldap_search_password"` LdapBaseDn string `json:"ldap_base_dn"` LdapFilter string `json:"ldap_filter"` LdapUID string `json:"ldap_uid"` LdapScope int `json:"ldap_scope"` LdapConnectionTimeout int `json:"ldap_connection_timeout"` LdapVerifyCert bool `json:"ldap_verify_cert"` }
LdapConf holds information about ldap configuration
type LdapFailedImportUser ¶
LdapFailedImportUser ...
type LdapGroup ¶
type LdapGroup struct { GroupName string `json:"group_name,omitempty"` GroupDN string `json:"ldap_group_dn,omitempty"` }
LdapGroup ...
type LdapGroupConf ¶
type LdapGroupConf struct { LdapGroupBaseDN string `json:"ldap_group_base_dn,omitempty"` LdapGroupFilter string `json:"ldap_group_filter,omitempty"` LdapGroupNameAttribute string `json:"ldap_group_name_attribute,omitempty"` LdapGroupSearchScope int `json:"ldap_group_search_scope"` LdapGroupAdminDN string `json:"ldap_group_admin_dn,omitempty"` }
LdapGroupConf holds information about ldap group
type LdapImportUser ¶
type LdapImportUser struct {
LdapUIDList []string `json:"ldap_uid_list"`
}
LdapImportUser ...
type LdapUser ¶
type LdapUser struct { Username string `json:"ldap_username"` Email string `json:"ldap_email"` Realname string `json:"ldap_realname"` DN string `json:"-"` GroupDNList []string `json:"ldap_groupdn"` }
LdapUser ...
type LogQueryParam ¶
type LogQueryParam struct { ProjectIDs []int64 // the IDs of projects to which the operation is done Username string // the operator's username of the log Repository string // repository name Tag string // tag name Operations []string // operations BeginTime *time.Time // the time after which the operation is done EndTime *time.Time // the time before which the operation is doen Pagination *Pagination // pagination information }
LogQueryParam is used to set query conditions when listing access logs.
type Member ¶
type Member struct { ID int `orm:"pk;column(id)" json:"id"` ProjectID int64 `orm:"column(project_id)" json:"project_id"` Entityname string `orm:"column(entity_name)" json:"entity_name"` Rolename string `json:"role_name"` Role int `json:"role_id"` EntityID int `orm:"column(entity_id)" json:"entity_id"` EntityType string `orm:"column(entity_type)" json:"entity_type"` }
Member holds the details of a member.
type MemberQuery ¶
type MemberQuery struct { Name string // the username of member Role int // the role of the member has to the project GroupList []*UserGroup // the group list of current user }
MemberQuery filter by member's username and role
type MemberReq ¶
type MemberReq struct { ProjectID int64 `json:"project_id"` Role int `json:"role_id,omitempty"` MemberUser User `json:"member_user,omitempty"` MemberGroup UserGroup `json:"member_group,omitempty"` }
MemberReq - Create Project Member Request
type MySQL ¶
type MySQL struct { Host string `json:"host"` Port int `json:"port"` Username string `json:"username"` Password string `json:"password,omitempty"` Database string `json:"database"` }
MySQL ...
type PostGreSQL ¶
type PostGreSQL struct { Host string `json:"host"` Port int `json:"port"` Username string `json:"username"` Password string `json:"password,omitempty"` Database string `json:"database"` SSLMode string `json:"sslmode"` }
PostGreSQL ...
type Project ¶
type Project struct { ProjectID int64 `orm:"pk;auto;column(project_id)" json:"project_id"` OwnerID int `orm:"column(owner_id)" json:"owner_id"` Name string `orm:"column(name)" json:"name"` CreationTime time.Time `orm:"column(creation_time);auto_now_add" json:"creation_time"` UpdateTime time.Time `orm:"column(update_time);auto_now" json:"update_time"` Deleted bool `orm:"column(deleted)" json:"deleted"` OwnerName string `orm:"-" json:"owner_name"` Togglable bool `orm:"-" json:"togglable"` Role int `orm:"-" json:"current_user_role_id"` RepoCount int64 `orm:"-" json:"repo_count"` ChartCount uint64 `orm:"-" json:"chart_count"` Metadata map[string]string `orm:"-" json:"metadata"` }
Project holds the details of a project.
func (*Project) ContentTrustEnabled ¶
ContentTrustEnabled ...
func (*Project) GetMetadata ¶
GetMetadata ...
type ProjectMetadata ¶
type ProjectMetadata struct { ID int64 `orm:"pk;auto;column(id)" json:"id"` ProjectID int64 `orm:"column(project_id)" json:"project_id"` Name string `orm:"column(name)" json:"name"` Value string `orm:"column(value)" json:"value"` CreationTime time.Time `orm:"column(creation_time);auto_now_add" json:"creation_time"` UpdateTime time.Time `orm:"column(update_time);auto_now" json:"update_time"` Deleted bool `orm:"column(deleted)" json:"deleted"` }
ProjectMetadata holds the metadata of a project.
type ProjectQueryParam ¶
type ProjectQueryParam struct { Name string // the name of project Owner string // the username of project owner Public *bool // the project is public or not, can be ture, false and nil Member *MemberQuery // the member of project Pagination *Pagination // pagination information ProjectIDs []int64 // project ID list }
ProjectQueryParam can be used to set query parameters when listing projects. The query condition will be set in the query if its corresponding field is not nil. Leave it empty if you don't want to apply this condition.
e.g. List all projects: query := nil List all public projects: query := &QueryParam{Public: true} List projects the owner of which is user1: query := &QueryParam{Owner:"user1"} List all public projects the owner of which is user1: query := &QueryParam{Owner:"user1",Public:true} List projects which user1 is member of: query := &QueryParam{Member:&Member{Name:"user1"}} List projects which user1 is the project admin : query := &QueryParam{Member:&Member{Name:"user1",Role:1}}
type ProjectQueryResult ¶
ProjectQueryResult ...
type ProjectRequest ¶
type ProjectRequest struct { Name string `json:"project_name"` Public *int `json:"public"` // deprecated, reserved for project creation in replication Metadata map[string]string `json:"metadata"` }
ProjectRequest holds informations that need for creating project API
type RepJob ¶
type RepJob struct { ID int64 `orm:"pk;auto;column(id)" json:"id"` Status string `orm:"column(status)" json:"status"` Repository string `orm:"column(repository)" json:"repository"` PolicyID int64 `orm:"column(policy_id)" json:"policy_id"` OpUUID string `orm:"column(op_uuid)" json:"op_uuid"` Operation string `orm:"column(operation)" json:"operation"` Tags string `orm:"column(tags)" json:"-"` TagList []string `orm:"-" json:"tags"` UUID string `orm:"column(job_uuid)" json:"-"` CreationTime time.Time `orm:"column(creation_time);auto_now_add" json:"creation_time"` UpdateTime time.Time `orm:"column(update_time);auto_now" json:"update_time"` }
RepJob is the model for a replication job, which is the execution unit on job service, currently it is used to transfer/remove a repository to/from a remote registry instance.
type RepJobQuery ¶
type RepJobQuery struct { PolicyID int64 OpUUID string Repository string Statuses []string Operations []string StartTime *time.Time EndTime *time.Time Pagination }
RepJobQuery holds query conditions for replication job
type RepPolicy ¶
type RepPolicy struct { ID int64 `orm:"pk;auto;column(id)"` ProjectID int64 `orm:"column(project_id)" ` TargetID int64 `orm:"column(target_id)"` Name string `orm:"column(name)"` Description string `orm:"column(description)"` Trigger string `orm:"column(cron_str)"` Filters string `orm:"column(filters)"` ReplicateDeletion bool `orm:"column(replicate_deletion)"` CreationTime time.Time `orm:"column(creation_time);auto_now_add"` UpdateTime time.Time `orm:"column(update_time);auto_now"` Deleted bool `orm:"column(deleted)"` }
RepPolicy is the model for a replication policy, which associate to a project and a target (destination)
type RepTarget ¶
type RepTarget struct { ID int64 `orm:"pk;auto;column(id)" json:"id"` URL string `orm:"column(url)" json:"endpoint"` Name string `orm:"column(name)" json:"name"` Username string `orm:"column(username)" json:"username"` Password string `orm:"column(password)" json:"password"` Type int `orm:"column(target_type)" json:"type"` Insecure bool `orm:"column(insecure)" json:"insecure"` CreationTime time.Time `orm:"column(creation_time);auto_now_add" json:"creation_time"` UpdateTime time.Time `orm:"column(update_time);auto_now" json:"update_time"` }
RepTarget is the model for a replication targe, i.e. destination, which wraps the endpoint URL and username/password of a remote registry.
type RepoRecord ¶
type RepoRecord struct { RepositoryID int64 `orm:"pk;auto;column(repository_id)" json:"repository_id"` Name string `orm:"column(name)" json:"name"` ProjectID int64 `orm:"column(project_id)" json:"project_id"` Description string `orm:"column(description)" json:"description"` PullCount int64 `orm:"column(pull_count)" json:"pull_count"` StarCount int64 `orm:"column(star_count)" json:"star_count"` CreationTime time.Time `orm:"column(creation_time);auto_now_add" json:"creation_time"` UpdateTime time.Time `orm:"column(update_time);auto_now" json:"update_time"` }
RepoRecord holds the record of an repository in DB, all the infors are from the registry notification event.
func (*RepoRecord) TableName ¶
func (rp *RepoRecord) TableName() string
TableName is required by by beego orm to map RepoRecord to table repository
type RepositoryQuery ¶
type RepositoryQuery struct { Name string ProjectIDs []int64 ProjectName string LabelID int64 Pagination Sorting }
RepositoryQuery : query parameters for repository
type ResourceLabel ¶
type ResourceLabel struct { ID int64 `orm:"pk;auto;column(id)"` LabelID int64 `orm:"column(label_id)"` ResourceID int64 `orm:"column(resource_id)"` ResourceName string `orm:"column(resource_name)"` ResourceType string `orm:"column(resource_type)"` CreationTime time.Time `orm:"column(creation_time);auto_now_add"` UpdateTime time.Time `orm:"column(update_time);auto_now"` }
ResourceLabel records the relationship between resource and label
type ResourceLabelQuery ¶
type ResourceLabelQuery struct { LabelID int64 ResourceID int64 ResourceName string ResourceType string }
ResourceLabelQuery : query parameters for the mapping relationships of resource and label
type RetagRequest ¶
type RetagRequest struct { Tag string `json:"tag"` // The new tag SrcImage string `json:"src_image"` // Source images in format <project>/<repo>:<reference> Override bool `json:"override"` // If target tag exists, whether override it }
RetagRequest gives the source image and target image of retag
type Role ¶
type Role struct { RoleID int `orm:"pk;auto;column(role_id)" json:"role_id"` RoleCode string `orm:"column(role_code)" json:"role_code"` Name string `orm:"column(name)" json:"role_name"` RoleMask int `orm:"column(role_mask)" json:"role_mask"` }
Role holds the details of a role.
type ScanAllPolicy ¶
type ScanAllPolicy struct { Type string `json:"type"` Parm map[string]interface{} `json:"parameter, omitempty"` }
ScanAllPolicy is represent the json request and object for scan all policy, the parm is het
type ScanJob ¶
type ScanJob struct { ID int64 `orm:"pk;auto;column(id)" json:"id"` Status string `orm:"column(status)" json:"status"` Repository string `orm:"column(repository)" json:"repository"` Tag string `orm:"column(tag)" json:"tag"` Digest string `orm:"column(digest)" json:"digest"` UUID string `orm:"column(job_uuid)" json:"-"` CreationTime time.Time `orm:"column(creation_time);auto_now_add" json:"creation_time"` UpdateTime time.Time `orm:"column(update_time);auto_now" json:"update_time"` }
ScanJob is the model to represent a job for image scan in DB. 数据库中 img_scan_job 表
type SchemaVersion ¶
type SchemaVersion struct {
Version string `json:"version" orm:"column(version_num)"`
}
SchemaVersion is the version of database schema
type Severity ¶
type Severity int64
Severity represents the severity of a image/component in terms of vulnerability.
const ( SevNone Severity SevUnknown SevLow SevMedium SevHigh )
Sevxxx is the list of severity of image after scanning.
type Sorting ¶
type Sorting struct {
Sort string // in format [+-]?<FIELD_NAME>, e.g. '+creation_time', '-creation_time'
}
Sorting sort by given field, ascending or descending
type Target ¶
type Target struct { MediaType string Digest string Repository string URL string `json:"Url"` Tag string }
Target holds information about the target of a event.
type Token ¶
type Token struct { Token string `json:"token"` ExpiresIn int `json:"expires_in"` IssuedAt string `json:"issued_at"` }
Token represents the json returned by registry token service registry 有一个 token service,用来返回 token
type UAASettings ¶
UAASettings wraps the configuraations to access UAA service
type User ¶
type User struct { UserID int `orm:"pk;auto;column(user_id)" json:"user_id"` Username string `orm:"column(username)" json:"username"` Email string `orm:"column(email)" json:"email"` Password string `orm:"column(password)" json:"password"` Realname string `orm:"column(realname)" json:"realname"` Comment string `orm:"column(comment)" json:"comment"` Deleted bool `orm:"column(deleted)" json:"deleted"` Rolename string `orm:"-" json:"role_name"` // if this field is named as "RoleID", beego orm can not map role_id // to it. Role int `orm:"-" json:"role_id"` // RoleList []Role `json:"role_list"` HasAdminRole bool `orm:"column(sysadmin_flag)" json:"has_admin_role"` ResetUUID string `orm:"column(reset_uuid)" json:"reset_uuid"` Salt string `orm:"column(salt)" json:"-"` CreationTime time.Time `orm:"column(creation_time);auto_now_add" json:"creation_time"` UpdateTime time.Time `orm:"column(update_time);auto_now" json:"update_time"` GroupList []*UserGroup `orm:"-" json:"-"` }
User holds the details of a user.
type UserGroup ¶
type UserGroup struct { ID int `orm:"pk;auto;column(id)" json:"id,omitempty"` GroupName string `orm:"column(group_name)" json:"group_name,omitempty"` GroupType int `orm:"column(group_type)" json:"group_type,omitempty"` LdapGroupDN string `orm:"column(ldap_group_dn)" json:"ldap_group_dn,omitempty"` }
UserGroup ...
type UserMember ¶
type UserMember struct { ID int `orm:"pk;column(user_id)" json:"user_id"` Username string `json:"username"` Rolename string `json:"role_name"` Role int `json:"role_id"` }
UserMember ...
type UserQuery ¶
type UserQuery struct { Username string Email string Pagination *Pagination }
UserQuery ...
type VulnerabilityItem ¶
type VulnerabilityItem struct { ID string `json:"id"` Severity Severity `json:"severity"` Pkg string `json:"package"` Version string `json:"version"` Description string `json:"description"` Link string `json:"link"` Fixed string `json:"fixedVersion,omitempty"` }
VulnerabilityItem is an item in the vulnerability result returned by vulnerability details API.
type WatchItem ¶
type WatchItem struct { ID int64 `orm:"pk;auto;column(id)" json:"id"` PolicyID int64 `orm:"column(policy_id)" json:"policy_id"` Namespace string `orm:"column(namespace)" json:"namespace"` OnDeletion bool `orm:"column(on_deletion)" json:"on_deletion"` OnPush bool `orm:"column(on_push)" json:"on_push"` CreationTime time.Time `orm:"column(creation_time);auto_now_add" json:"creation_time"` UpdateTime time.Time `orm:"column(update_time);auto_now" json:"update_time"` }
WatchItem ...