Documentation ¶
Index ¶
- Constants
- Variables
- func AddProjectMember(projectID int64, request models.MemberReq) (int, error)
- func HTTPStatusCodeHealthChecker(method string, url string, header http.Header, timeout time.Duration, ...) health.Checker
- func Init() error
- func PeriodicHealthChecker(checker health.Checker, period time.Duration) health.Checker
- func SyncRegistry(pm promgr.ProjectManager) error
- type AJAPI
- type BaseController
- func (b *BaseController) HasProjectPermission(projectIDOrName interface{}, action rbac.Action, subresource ...rbac.Resource) (bool, error)
- func (b *BaseController) Prepare()
- func (b *BaseController) RequireAuthenticated() bool
- func (b *BaseController) RequireProjectAccess(projectIDOrName interface{}, action rbac.Action, subresource ...rbac.Resource) bool
- func (b *BaseController) WriteJSONData(object interface{})
- func (b *BaseController) WriteYamlData(object interface{})
- type ChartLabelAPI
- type ChartRepositoryAPI
- func (cra *ChartRepositoryAPI) DeleteChart()
- func (cra *ChartRepositoryAPI) DeleteChartVersion()
- func (cra *ChartRepositoryAPI) DownloadChart()
- func (cra *ChartRepositoryAPI) GetChartVersion()
- func (cra *ChartRepositoryAPI) GetHealthStatus()
- func (cra *ChartRepositoryAPI) GetIndex()
- func (cra *ChartRepositoryAPI) GetIndexByRepo()
- func (cra *ChartRepositoryAPI) ListChartVersions()
- func (cra *ChartRepositoryAPI) ListCharts()
- func (cra *ChartRepositoryAPI) Prepare()
- func (cra *ChartRepositoryAPI) UploadChartProvFile()
- func (cra *ChartRepositoryAPI) UploadChartVersion()
- type ConfigAPI
- type EmailAPI
- type GCAPI
- type GeneralInfo
- type HealthAPI
- type InternalAPI
- type LabelAPI
- type LabelResourceAPI
- type LdapAPI
- type LogAPI
- type MetadataAPI
- type ProjectAPI
- type ProjectMemberAPI
- type RegistryAPI
- type ReplicationAdapterAPI
- type ReplicationOperationAPI
- func (r *ReplicationOperationAPI) CreateExecution()
- func (r *ReplicationOperationAPI) GetExecution()
- func (r *ReplicationOperationAPI) GetTaskLog()
- func (r *ReplicationOperationAPI) ListExecutions()
- func (r *ReplicationOperationAPI) ListTasks()
- func (r *ReplicationOperationAPI) Prepare()
- func (r *ReplicationOperationAPI) StopExecution()
- type ReplicationPolicyAPI
- type RepositoryAPI
- func (ra *RepositoryAPI) Delete()
- func (ra *RepositoryAPI) Get()
- func (ra *RepositoryAPI) GetManifests()
- func (ra *RepositoryAPI) GetSignatures()
- func (ra *RepositoryAPI) GetTag()
- func (ra *RepositoryAPI) GetTags()
- func (ra *RepositoryAPI) GetTopRepos()
- func (ra *RepositoryAPI) Put()
- func (ra *RepositoryAPI) Retag()
- func (ra *RepositoryAPI) ScanImage()
- func (ra *RepositoryAPI) VulnerabilityDetails()
- type RepositoryLabelAPI
- func (r *RepositoryLabelAPI) AddToImage()
- func (r *RepositoryLabelAPI) AddToRepository()
- func (r *RepositoryLabelAPI) GetOfImage()
- func (r *RepositoryLabelAPI) GetOfRepository()
- func (r *RepositoryLabelAPI) Prepare()
- func (r *RepositoryLabelAPI) RemoveFromImage()
- func (r *RepositoryLabelAPI) RemoveFromRepository()
- type RobotAPI
- type ScanAllAPI
- type ScanJobAPI
- type SearchAPI
- type StatisticAPI
- type Storage
- type SystemInfo
- type SystemInfoAPI
- type UserAPI
- func (ua *UserAPI) ChangePassword()
- func (ua *UserAPI) Delete()
- func (ua *UserAPI) GenCLISecret()
- func (ua *UserAPI) Get()
- func (ua *UserAPI) List()
- func (ua *UserAPI) ListUserPermissions()
- func (ua *UserAPI) Post()
- func (ua *UserAPI) Prepare()
- func (ua *UserAPI) Put()
- func (ua *UserAPI) Search()
- func (ua *UserAPI) ToggleUserAdminRole()
- type UserGroupAPI
Constants ¶
const ( // ReplicationJobType ... ReplicationJobType = "replication" // ScanJobType ... ScanJobType = "scan" )
const ( // PriPC : count of private projects PriPC = "private_project_count" // PriRC : count of private repositories PriRC = "private_repo_count" // PubPC : count of public projects PubPC = "public_project_count" // PubRC : count of public repositories PubRC = "public_repo_count" // TPC : total count of projects TPC = "total_project_count" // TRC : total count of repositories TRC = "total_repo_count" )
Variables ¶
var ErrDuplicateProjectMember = errors.New("The project member specified already exist")
ErrDuplicateProjectMember ...
var ErrInvalidRole = errors.New("Failed to update project member, role is not in 1,2,3")
ErrInvalidRole ...
Functions ¶
func AddProjectMember ¶
AddProjectMember ...
func HTTPStatusCodeHealthChecker ¶
func HTTPStatusCodeHealthChecker(method string, url string, header http.Header, timeout time.Duration, statusCode int) health.Checker
HTTPStatusCodeHealthChecker implements a Checker to check that the HTTP status code returned matches the expected one
func PeriodicHealthChecker ¶
PeriodicHealthChecker implements a Checker to check status periodically
func SyncRegistry ¶
func SyncRegistry(pm promgr.ProjectManager) error
SyncRegistry syncs the repositories of registry with database.
Types ¶
type AJAPI ¶
type AJAPI struct {
BaseController
}
AJAPI manages the CRUD of admin job and its schedule, any API wants to handle manual and cron job like ScanAll and GC cloud reuse it.
type BaseController ¶
type BaseController struct { api.BaseAPI // SecurityCtx is the security context used to authN &authZ SecurityCtx security.Context // ProjectMgr is the project manager which abstracts the operations // related to projects ProjectMgr promgr.ProjectManager }
BaseController ...
func (*BaseController) HasProjectPermission ¶
func (b *BaseController) HasProjectPermission(projectIDOrName interface{}, action rbac.Action, subresource ...rbac.Resource) (bool, error)
HasProjectPermission returns true when the request has action permission on project subresource
func (*BaseController) Prepare ¶
func (b *BaseController) Prepare()
Prepare inits security context and project manager from request context
func (*BaseController) RequireAuthenticated ¶
func (b *BaseController) RequireAuthenticated() bool
RequireAuthenticated returns true when the request is authenticated otherwise send Unauthorized response and returns false
func (*BaseController) RequireProjectAccess ¶
func (b *BaseController) RequireProjectAccess(projectIDOrName interface{}, action rbac.Action, subresource ...rbac.Resource) bool
RequireProjectAccess returns true when the request has action access on project subresource otherwise send UnAuthorized or Forbidden response and returns false
func (*BaseController) WriteJSONData ¶
func (b *BaseController) WriteJSONData(object interface{})
WriteJSONData writes the JSON data to the client.
func (*BaseController) WriteYamlData ¶
func (b *BaseController) WriteYamlData(object interface{})
WriteYamlData writes the yaml data to the client.
type ChartLabelAPI ¶
type ChartLabelAPI struct { LabelResourceAPI // contains filtered or unexported fields }
ChartLabelAPI handles the requests of marking/removing lables to/from charts.
func (*ChartLabelAPI) GetLabels ¶
func (cla *ChartLabelAPI) GetLabels()
GetLabels gets labels for the specified chart version.
func (*ChartLabelAPI) MarkLabel ¶
func (cla *ChartLabelAPI) MarkLabel()
MarkLabel handles the request of marking label to chart.
func (*ChartLabelAPI) Prepare ¶
func (cla *ChartLabelAPI) Prepare()
Prepare required material for follow-up actions.
func (*ChartLabelAPI) RemoveLabel ¶
func (cla *ChartLabelAPI) RemoveLabel()
RemoveLabel handles the request of removing label from chart.
type ChartRepositoryAPI ¶
type ChartRepositoryAPI struct { // The base controller to provide common utilities BaseController // contains filtered or unexported fields }
ChartRepositoryAPI provides related API handlers for the chart repository APIs
func (*ChartRepositoryAPI) DeleteChart ¶
func (cra *ChartRepositoryAPI) DeleteChart()
DeleteChart deletes all the chart versions of the specified chart.
func (*ChartRepositoryAPI) DeleteChartVersion ¶
func (cra *ChartRepositoryAPI) DeleteChartVersion()
DeleteChartVersion handles DELETE /api/:repo/charts/:name/:version
func (*ChartRepositoryAPI) DownloadChart ¶
func (cra *ChartRepositoryAPI) DownloadChart()
DownloadChart handles GET /:repo/charts/:filename
func (*ChartRepositoryAPI) GetChartVersion ¶
func (cra *ChartRepositoryAPI) GetChartVersion()
GetChartVersion handles GET /api/:repo/charts/:name/:version
func (*ChartRepositoryAPI) GetHealthStatus ¶
func (cra *ChartRepositoryAPI) GetHealthStatus()
GetHealthStatus handles GET /api/chartrepo/health
func (*ChartRepositoryAPI) GetIndex ¶
func (cra *ChartRepositoryAPI) GetIndex()
GetIndex handles GET /index.yaml
func (*ChartRepositoryAPI) GetIndexByRepo ¶
func (cra *ChartRepositoryAPI) GetIndexByRepo()
GetIndexByRepo handles GET /:repo/index.yaml
func (*ChartRepositoryAPI) ListChartVersions ¶
func (cra *ChartRepositoryAPI) ListChartVersions()
ListChartVersions GET /api/:repo/charts/:name
func (*ChartRepositoryAPI) ListCharts ¶
func (cra *ChartRepositoryAPI) ListCharts()
ListCharts handles GET /api/:repo/charts
func (*ChartRepositoryAPI) Prepare ¶
func (cra *ChartRepositoryAPI) Prepare()
Prepare something for the following actions
func (*ChartRepositoryAPI) UploadChartProvFile ¶
func (cra *ChartRepositoryAPI) UploadChartProvFile()
UploadChartProvFile handles POST /api/:repo/prov
func (*ChartRepositoryAPI) UploadChartVersion ¶
func (cra *ChartRepositoryAPI) UploadChartVersion()
UploadChartVersion handles POST /api/:repo/charts
type ConfigAPI ¶
type ConfigAPI struct { BaseController // contains filtered or unexported fields }
ConfigAPI ...
func (*ConfigAPI) GetInternalConfig ¶
func (c *ConfigAPI) GetInternalConfig()
GetInternalConfig returns internal configurations
type EmailAPI ¶
type EmailAPI struct {
BaseController
}
EmailAPI ...
type GCAPI ¶
type GCAPI struct {
AJAPI
}
GCAPI handles request of harbor GC...
func (*GCAPI) List ¶
func (gc *GCAPI) List()
List returns the top 10 executions of GC which includes manual and cron.
func (*GCAPI) Post ¶
func (gc *GCAPI) Post()
Post according to the request, it creates a cron schedule or a manual trigger for GC. create a daily schedule for GC
{ "schedule": { "type": "Daily", "cron": "0 0 0 * * *" } }
create a manual trigger for GC
{ "schedule": { "type": "Manual" } }
type GeneralInfo ¶
type GeneralInfo struct { WithNotary bool `json:"with_notary"` WithClair bool `json:"with_clair"` WithAdmiral bool `json:"with_admiral"` AdmiralEndpoint string `json:"admiral_endpoint"` AuthMode string `json:"auth_mode"` AuthProxySettings *models.HTTPAuthProxy `json:"authproxy_settings,omitempty"` RegistryURL string `json:"registry_url"` ExtURL string `json:"external_url"` ProjectCreationRestrict string `json:"project_creation_restriction"` SelfRegistration bool `json:"self_registration"` HasCARoot bool `json:"has_ca_root"` HarborVersion string `json:"harbor_version"` ClairVulnStatus *models.ClairVulnerabilityStatus `json:"clair_vulnerability_status,omitempty"` RegistryStorageProviderName string `json:"registry_storage_provider_name"` ReadOnly bool `json:"read_only"` WithChartMuseum bool `json:"with_chartmuseum"` }
GeneralInfo wraps common systeminfo for anonymous request
type HealthAPI ¶
type HealthAPI struct {
BaseController
}
HealthAPI handles the request for "/api/health"
func (*HealthAPI) CheckHealth ¶
func (h *HealthAPI) CheckHealth()
CheckHealth checks the health of system
type InternalAPI ¶
type InternalAPI struct {
BaseController
}
InternalAPI handles request of harbor admin...
func (*InternalAPI) RenameAdmin ¶
func (ia *InternalAPI) RenameAdmin()
RenameAdmin we don't provide flexibility in this API, as this is a workaround.
type LabelAPI ¶
type LabelAPI struct { BaseController // contains filtered or unexported fields }
LabelAPI handles requests for label management
func (*LabelAPI) ListResources ¶
func (l *LabelAPI) ListResources()
ListResources lists the resources that the label is referenced by
type LabelResourceAPI ¶
type LabelResourceAPI struct { BaseController // contains filtered or unexported fields }
LabelResourceAPI provides the related basic functions to handle marking labels to resources
func (*LabelResourceAPI) Prepare ¶
func (lra *LabelResourceAPI) Prepare()
Prepare resources for follow-up actions.
type LdapAPI ¶
type LdapAPI struct { BaseController // contains filtered or unexported fields }
LdapAPI handles requesst to /api/ldap/ping /api/ldap/user/search /api/ldap/user/import
func (*LdapAPI) SearchGroup ¶
func (l *LdapAPI) SearchGroup()
SearchGroup ... Search LDAP by groupname
type LogAPI ¶
type LogAPI struct { BaseController // contains filtered or unexported fields }
LogAPI handles request api/logs
type MetadataAPI ¶
type MetadataAPI struct { BaseController // contains filtered or unexported fields }
MetadataAPI ...
type ProjectAPI ¶
type ProjectAPI struct { BaseController // contains filtered or unexported fields }
ProjectAPI handles request to /api/projects/{} /api/projects/{}/logs
type ProjectMemberAPI ¶
type ProjectMemberAPI struct { BaseController // contains filtered or unexported fields }
ProjectMemberAPI handles request to /api/projects/{}/members/{}
func (*ProjectMemberAPI) Prepare ¶
func (pma *ProjectMemberAPI) Prepare()
Prepare validates the URL and parms
func (*ProjectMemberAPI) Put ¶
func (pma *ProjectMemberAPI) Put()
Put ... Update an exist project member
type RegistryAPI ¶
type RegistryAPI struct { BaseController // contains filtered or unexported fields }
RegistryAPI handles requests to /api/registries/{}. It manages registries integrated to Harbor.
func (*RegistryAPI) GetInfo ¶
func (t *RegistryAPI) GetInfo()
GetInfo returns the base info and capability declarations of the registry
func (*RegistryAPI) GetNamespace ¶
func (t *RegistryAPI) GetNamespace()
GetNamespace get the namespace of a registry TODO remove
func (*RegistryAPI) List ¶
func (t *RegistryAPI) List()
List lists all registries that match a given registry name.
type ReplicationAdapterAPI ¶
type ReplicationAdapterAPI struct {
BaseController
}
ReplicationAdapterAPI handles the replication adapter requests
func (*ReplicationAdapterAPI) List ¶
func (r *ReplicationAdapterAPI) List()
List the replication adapters
type ReplicationOperationAPI ¶
type ReplicationOperationAPI struct { BaseController // contains filtered or unexported fields }
ReplicationOperationAPI handles the replication operation requests
func (*ReplicationOperationAPI) CreateExecution ¶
func (r *ReplicationOperationAPI) CreateExecution()
CreateExecution starts a replication
func (*ReplicationOperationAPI) GetExecution ¶
func (r *ReplicationOperationAPI) GetExecution()
GetExecution gets one execution of the replication
func (*ReplicationOperationAPI) GetTaskLog ¶
func (r *ReplicationOperationAPI) GetTaskLog()
GetTaskLog ...
func (*ReplicationOperationAPI) ListExecutions ¶
func (r *ReplicationOperationAPI) ListExecutions()
ListExecutions ...
func (*ReplicationOperationAPI) ListTasks ¶
func (r *ReplicationOperationAPI) ListTasks()
ListTasks ...
func (*ReplicationOperationAPI) StopExecution ¶
func (r *ReplicationOperationAPI) StopExecution()
StopExecution stops one execution of the replication
type ReplicationPolicyAPI ¶
type ReplicationPolicyAPI struct {
BaseController
}
ReplicationPolicyAPI handles the replication policy requests
func (*ReplicationPolicyAPI) Create ¶
func (r *ReplicationPolicyAPI) Create()
Create the replication policy
func (*ReplicationPolicyAPI) Delete ¶
func (r *ReplicationPolicyAPI) Delete()
Delete the replication policy
func (*ReplicationPolicyAPI) Get ¶
func (r *ReplicationPolicyAPI) Get()
Get the specified replication policy
func (*ReplicationPolicyAPI) List ¶
func (r *ReplicationPolicyAPI) List()
List the replication policies
func (*ReplicationPolicyAPI) Update ¶
func (r *ReplicationPolicyAPI) Update()
Update the replication policy
type RepositoryAPI ¶
type RepositoryAPI struct {
BaseController
}
RepositoryAPI handles request to /api/repositories /api/repositories/tags /api/repositories/manifests, the parm has to be put in the query string as the web framework can not parse the URL if it contains veriadic sectors.
func (*RepositoryAPI) GetManifests ¶
func (ra *RepositoryAPI) GetManifests()
GetManifests returns the manifest of a tag
func (*RepositoryAPI) GetSignatures ¶
func (ra *RepositoryAPI) GetSignatures()
GetSignatures returns signatures of a repository
func (*RepositoryAPI) GetTag ¶
func (ra *RepositoryAPI) GetTag()
GetTag returns the tag of a repository
func (*RepositoryAPI) GetTags ¶
func (ra *RepositoryAPI) GetTags()
GetTags returns tags of a repository
func (*RepositoryAPI) GetTopRepos ¶
func (ra *RepositoryAPI) GetTopRepos()
GetTopRepos returns the most populor repositories
func (*RepositoryAPI) Put ¶
func (ra *RepositoryAPI) Put()
Put updates description info for the repository
func (*RepositoryAPI) Retag ¶
func (ra *RepositoryAPI) Retag()
Retag tags an existing image to another tag in this repo, the source image is specified by request body.
func (*RepositoryAPI) ScanImage ¶
func (ra *RepositoryAPI) ScanImage()
ScanImage handles request POST /api/repository/$repository/tags/$tag/scan to trigger image scan manually.
func (*RepositoryAPI) VulnerabilityDetails ¶
func (ra *RepositoryAPI) VulnerabilityDetails()
VulnerabilityDetails fetch vulnerability info from clair, transform to Harbor's format and return to client.
type RepositoryLabelAPI ¶
type RepositoryLabelAPI struct { LabelResourceAPI // contains filtered or unexported fields }
RepositoryLabelAPI handles requests for adding/removing label to/from repositories and images
func (*RepositoryLabelAPI) AddToImage ¶
func (r *RepositoryLabelAPI) AddToImage()
AddToImage adds the label to an image
func (*RepositoryLabelAPI) AddToRepository ¶
func (r *RepositoryLabelAPI) AddToRepository()
AddToRepository adds the label to a repository
func (*RepositoryLabelAPI) GetOfImage ¶
func (r *RepositoryLabelAPI) GetOfImage()
GetOfImage returns labels of an image
func (*RepositoryLabelAPI) GetOfRepository ¶
func (r *RepositoryLabelAPI) GetOfRepository()
GetOfRepository returns labels of a repository
func (*RepositoryLabelAPI) RemoveFromImage ¶
func (r *RepositoryLabelAPI) RemoveFromImage()
RemoveFromImage removes the label from an image
func (*RepositoryLabelAPI) RemoveFromRepository ¶
func (r *RepositoryLabelAPI) RemoveFromRepository()
RemoveFromRepository removes the label from a repository
type RobotAPI ¶
type RobotAPI struct { BaseController // contains filtered or unexported fields }
RobotAPI ...
type ScanAllAPI ¶
type ScanAllAPI struct {
AJAPI
}
ScanAllAPI handles request of scan all images...
func (*ScanAllAPI) List ¶
func (sc *ScanAllAPI) List()
List returns the top 10 executions of scan all which includes manual and cron.
func (*ScanAllAPI) Post ¶
func (sc *ScanAllAPI) Post()
Post according to the request, it creates a cron schedule or a manual trigger for scan all. create a daily schedule for scan all
{ "schedule": { "type": "Daily", "cron": "0 0 0 * * *" } }
create a manual trigger for scan all
{ "schedule": { "type": "Manual" } }
func (*ScanAllAPI) Prepare ¶
func (sc *ScanAllAPI) Prepare()
Prepare validates the URL and parms, it needs the system admin permission.
func (*ScanAllAPI) Put ¶
func (sc *ScanAllAPI) Put()
Put handles scan all cron schedule update/delete. Request: delete the schedule of scan all
{ "schedule": { "type": "None", "cron": "" } }
type ScanJobAPI ¶
type ScanJobAPI struct { BaseController // contains filtered or unexported fields }
ScanJobAPI handles request to /api/scanJobs/:id/log
func (*ScanJobAPI) Prepare ¶
func (sj *ScanJobAPI) Prepare()
Prepare validates that whether user has read permission to the project of the repo the scan job scanned.
type StatisticAPI ¶
type StatisticAPI struct { BaseController // contains filtered or unexported fields }
StatisticAPI handles request to /api/statistics/
func (*StatisticAPI) Prepare ¶
func (s *StatisticAPI) Prepare()
Prepare validates the URL and the user
type SystemInfo ¶
type SystemInfo struct {
HarborStorage Storage `json:"storage"`
}
SystemInfo models for system info.
type SystemInfoAPI ¶
type SystemInfoAPI struct {
BaseController
}
SystemInfoAPI handle requests for getting system info /api/systeminfo
func (*SystemInfoAPI) GetCert ¶
func (sia *SystemInfoAPI) GetCert()
GetCert gets default self-signed certificate.
func (*SystemInfoAPI) GetGeneralInfo ¶
func (sia *SystemInfoAPI) GetGeneralInfo()
GetGeneralInfo returns the general system info, which is to be called by anonymous user
func (*SystemInfoAPI) GetVolumeInfo ¶
func (sia *SystemInfoAPI) GetVolumeInfo()
GetVolumeInfo gets specific volume storage info.
type UserAPI ¶
type UserAPI struct { BaseController SelfRegistration bool IsAdmin bool AuthMode string // contains filtered or unexported fields }
UserAPI handles request to /api/users/{}
func (*UserAPI) ChangePassword ¶
func (ua *UserAPI) ChangePassword()
ChangePassword handles PUT to /api/users/{}/password
func (*UserAPI) GenCLISecret ¶
func (ua *UserAPI) GenCLISecret()
GenCLISecret generates a new CLI secret and replace the old one
func (*UserAPI) ListUserPermissions ¶
func (ua *UserAPI) ListUserPermissions()
ListUserPermissions handles GET to /api/users/{}/permissions
func (*UserAPI) ToggleUserAdminRole ¶
func (ua *UserAPI) ToggleUserAdminRole()
ToggleUserAdminRole handles PUT api/users/{}/sysadmin
type UserGroupAPI ¶
type UserGroupAPI struct { BaseController // contains filtered or unexported fields }
UserGroupAPI ...
func (*UserGroupAPI) Prepare ¶
func (uga *UserGroupAPI) Prepare()
Prepare validates the URL and parms
Source Files ¶
- admin_job.go
- base.go
- chart_label.go
- chart_repository.go
- config.go
- email.go
- health.go
- internal.go
- label.go
- label_resource.go
- ldap.go
- log.go
- metadata.go
- project.go
- projectmember.go
- reg_gc.go
- registry.go
- replication_adapter.go
- replication_execution.go
- replication_policy.go
- repository.go
- repository_label.go
- robot.go
- scan_all.go
- scan_job.go
- search.go
- statistic.go
- systeminfo.go
- user.go
- usergroup.go
- utils.go