harbor/src/ui/router.go

129 lines
7.1 KiB
Go
Raw Normal View History

2017-04-13 12:54:58 +02:00
// Copyright (c) 2017 VMware, Inc. All Rights Reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
2016-02-26 11:54:14 +01:00
2016-04-07 12:34:12 +02:00
package main
2016-02-01 12:59:10 +01:00
import (
2016-10-19 08:32:00 +02:00
"github.com/vmware/harbor/src/ui/api"
2017-07-11 12:13:48 +02:00
"github.com/vmware/harbor/src/ui/config"
2016-10-19 08:32:00 +02:00
"github.com/vmware/harbor/src/ui/controllers"
"github.com/vmware/harbor/src/ui/service/notifications/clair"
2018-03-27 15:27:52 +02:00
"github.com/vmware/harbor/src/ui/service/notifications/jobs"
"github.com/vmware/harbor/src/ui/service/notifications/registry"
2016-10-19 08:32:00 +02:00
"github.com/vmware/harbor/src/ui/service/token"
2016-02-01 12:59:10 +01:00
"github.com/astaxie/beego"
)
2016-04-07 12:34:12 +02:00
func initRouters() {
2016-02-01 12:59:10 +01:00
beego.SetStaticPath("/static", "./static")
beego.SetStaticPath("/i18n", "./static/i18n")
2017-08-01 09:49:50 +02:00
//Page Controllers:
beego.Router("/", &controllers.IndexController{})
beego.Router("/harbor/*", &controllers.IndexController{})
2017-08-01 09:49:50 +02:00
beego.Router("/reset_password", &controllers.IndexController{})
2017-08-01 09:49:50 +02:00
// standalone
if !config.WithAdmiral() {
//Controller API:
2017-07-11 12:13:48 +02:00
beego.Router("/login", &controllers.CommonController{}, "post:Login")
beego.Router("/log_out", &controllers.CommonController{}, "get:LogOut")
beego.Router("/reset", &controllers.CommonController{}, "post:ResetPassword")
beego.Router("/userExists", &controllers.CommonController{}, "post:UserExists")
beego.Router("/sendEmail", &controllers.CommonController{}, "get:SendResetEmail")
2017-07-11 12:13:48 +02:00
//API:
2018-02-06 03:59:49 +01:00
beego.Router("/api/projects/:pid([0-9]+)/members/?:mid", &api.ProjectUserMemberAPI{})
2018-03-26 07:18:52 +02:00
beego.Router("/api/projects/:pid([0-9]+)/projectmembers/?:pmid([0-9]+)", &api.ProjectMemberAPI{})
2017-07-11 12:13:48 +02:00
beego.Router("/api/projects/", &api.ProjectAPI{}, "head:Head")
beego.Router("/api/projects/:id([0-9]+)", &api.ProjectAPI{})
beego.Router("/api/users/:id", &api.UserAPI{}, "get:Get;delete:Delete;put:Put")
beego.Router("/api/users", &api.UserAPI{}, "get:List;post:Post")
beego.Router("/api/users/:id([0-9]+)/password", &api.UserAPI{}, "put:ChangePassword")
beego.Router("/api/users/:id/sysadmin", &api.UserAPI{}, "put:ToggleUserAdminRole")
2018-03-26 07:18:52 +02:00
beego.Router("/api/usergroups/?:ugid([0-9]+)", &api.UserGroupAPI{})
2017-07-11 12:13:48 +02:00
beego.Router("/api/ldap/ping", &api.LdapAPI{}, "post:Ping")
2018-03-26 07:18:52 +02:00
beego.Router("/api/ldap/users/search", &api.LdapAPI{}, "get:Search")
beego.Router("/api/ldap/groups/search", &api.LdapAPI{}, "get:SearchGroup")
2017-07-11 12:13:48 +02:00
beego.Router("/api/ldap/users/import", &api.LdapAPI{}, "post:ImportUser")
beego.Router("/api/email/ping", &api.EmailAPI{}, "post:Ping")
}
// API
beego.Router("/api/ping", &api.SystemInfoAPI{}, "get:Ping")
2017-07-11 12:49:25 +02:00
beego.Router("/api/search", &api.SearchAPI{})
2017-07-11 12:13:48 +02:00
beego.Router("/api/projects/", &api.ProjectAPI{}, "get:List;post:Post")
beego.Router("/api/projects/:id([0-9]+)/logs", &api.ProjectAPI{}, "get:Logs")
beego.Router("/api/projects/:id([0-9]+)/_deletable", &api.ProjectAPI{}, "get:Deletable")
beego.Router("/api/projects/:id([0-9]+)/metadatas/?:name", &api.MetadataAPI{}, "get:Get")
beego.Router("/api/projects/:id([0-9]+)/metadatas/", &api.MetadataAPI{}, "post:Post")
beego.Router("/api/projects/:id([0-9]+)/metadatas/:name", &api.MetadataAPI{}, "put:Put;delete:Delete")
2017-05-10 11:09:24 +02:00
beego.Router("/api/repositories", &api.RepositoryAPI{}, "get:Get")
beego.Router("/api/repositories/scanAll", &api.RepositoryAPI{}, "post:ScanAll")
beego.Router("/api/repositories/*", &api.RepositoryAPI{}, "delete:Delete;put:Put")
beego.Router("/api/repositories/*/labels", &api.RepositoryLabelAPI{}, "get:GetOfRepository;post:AddToRepository")
2018-03-14 06:42:19 +01:00
beego.Router("/api/repositories/*/labels/:id([0-9]+)", &api.RepositoryLabelAPI{}, "delete:RemoveFromRepository")
2017-06-16 11:21:53 +02:00
beego.Router("/api/repositories/*/tags/:tag", &api.RepositoryAPI{}, "delete:Delete;get:GetTag")
beego.Router("/api/repositories/*/tags/:tag/labels", &api.RepositoryLabelAPI{}, "get:GetOfImage;post:AddToImage")
2018-03-14 06:42:19 +01:00
beego.Router("/api/repositories/*/tags/:tag/labels/:id([0-9]+)", &api.RepositoryLabelAPI{}, "delete:RemoveFromImage")
2017-03-21 10:54:02 +01:00
beego.Router("/api/repositories/*/tags", &api.RepositoryAPI{}, "get:GetTags")
beego.Router("/api/repositories/*/tags/:tag/scan", &api.RepositoryAPI{}, "post:ScanImage")
beego.Router("/api/repositories/*/tags/:tag/vulnerability/details", &api.RepositoryAPI{}, "Get:VulnerabilityDetails")
2017-03-21 10:54:02 +01:00
beego.Router("/api/repositories/*/tags/:tag/manifest", &api.RepositoryAPI{}, "get:GetManifests")
beego.Router("/api/repositories/*/signatures", &api.RepositoryAPI{}, "get:GetSignatures")
2017-07-11 12:49:25 +02:00
beego.Router("/api/repositories/top", &api.RepositoryAPI{}, "get:GetTopRepos")
beego.Router("/api/jobs/replication/", &api.RepJobAPI{}, "get:List;put:StopJobs")
beego.Router("/api/jobs/replication/:id([0-9]+)", &api.RepJobAPI{})
2016-05-27 12:46:07 +02:00
beego.Router("/api/jobs/replication/:id([0-9]+)/log", &api.RepJobAPI{}, "get:GetLog")
2017-07-20 13:18:29 +02:00
beego.Router("/api/jobs/scan/:id([0-9]+)/log", &api.ScanJobAPI{}, "get:GetLog")
2016-06-13 10:49:46 +02:00
beego.Router("/api/policies/replication/:id([0-9]+)", &api.RepPolicyAPI{})
beego.Router("/api/policies/replication", &api.RepPolicyAPI{}, "get:List")
2016-06-14 12:49:23 +02:00
beego.Router("/api/policies/replication", &api.RepPolicyAPI{}, "post:Post")
2016-06-13 02:31:32 +02:00
beego.Router("/api/targets/", &api.TargetAPI{}, "get:List")
2016-06-14 12:49:23 +02:00
beego.Router("/api/targets/", &api.TargetAPI{}, "post:Post")
2016-06-13 02:31:32 +02:00
beego.Router("/api/targets/:id([0-9]+)", &api.TargetAPI{})
beego.Router("/api/targets/:id([0-9]+)/policies/", &api.TargetAPI{}, "get:ListPolicies")
2016-05-27 12:46:07 +02:00
beego.Router("/api/targets/ping", &api.TargetAPI{}, "post:Ping")
2016-06-21 12:43:31 +02:00
beego.Router("/api/logs", &api.LogAPI{})
2016-12-30 11:04:01 +01:00
beego.Router("/api/configurations", &api.ConfigAPI{})
2017-03-14 05:52:44 +01:00
beego.Router("/api/configurations/reset", &api.ConfigAPI{}, "post:Reset")
2017-07-11 12:49:25 +02:00
beego.Router("/api/statistics", &api.StatisticAPI{})
beego.Router("/api/replications", &api.ReplicationAPI{})
2018-03-07 06:20:28 +01:00
beego.Router("/api/labels", &api.LabelAPI{}, "post:Post;get:List")
2018-03-14 06:42:19 +01:00
beego.Router("/api/labels/:id([0-9]+)", &api.LabelAPI{}, "get:Get;put:Put;delete:Delete")
2016-10-25 06:44:27 +02:00
2017-03-09 13:12:33 +01:00
beego.Router("/api/systeminfo", &api.SystemInfoAPI{}, "get:GetGeneralInfo")
2016-11-02 05:50:53 +01:00
beego.Router("/api/systeminfo/volumes", &api.SystemInfoAPI{}, "get:GetVolumeInfo")
2016-11-18 09:07:18 +01:00
beego.Router("/api/systeminfo/getcert", &api.SystemInfoAPI{}, "get:GetCert")
2017-01-09 11:24:31 +01:00
beego.Router("/api/internal/syncregistry", &api.InternalAPI{}, "post:SyncRegistry")
beego.Router("/api/internal/renameadmin", &api.InternalAPI{}, "post:RenameAdmin")
2016-02-01 12:59:10 +01:00
//external service that hosted on harbor process:
beego.Router("/service/notifications", &registry.NotificationHandler{})
beego.Router("/service/notifications/clair", &clair.Handler{}, "post:Handle")
2018-03-27 15:27:52 +02:00
beego.Router("/service/notifications/jobs/scan/:id([0-9]+)", &jobs.Handler{}, "post:HandleScan")
beego.Router("/service/notifications/jobs/replication/:id([0-9]+)", &jobs.Handler{}, "post:HandleReplication")
2016-04-15 07:17:32 +02:00
beego.Router("/service/token", &token.Handler{})
2017-04-11 09:05:28 +02:00
2017-05-02 13:14:47 +02:00
beego.Router("/registryproxy/*", &controllers.RegistryProxy{}, "*:Handle")
2018-03-27 15:27:52 +02:00
2017-04-11 09:05:28 +02:00
//Error pages
beego.ErrorController(&controllers.ErrorController{})
2017-05-02 13:14:47 +02:00
2016-02-01 12:59:10 +01:00
}