Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

misc: sync with common-lib changes with release candidate 18 #5830

Merged
merged 32 commits into from
Sep 11, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
ffbee8d
added config sql script (#5681)
ayu-devtron Aug 13, 2024
cbace84
Merge branch 'main' into develop
vikramdevtron Aug 13, 2024
92aeea3
Merge branch 'main' into develop
vikramdevtron Aug 14, 2024
3967bbc
feat: CVE severity categorisation and scan result listing API enhance…
gireesh-naidu Aug 21, 2024
5661d5c
feat: casbin deny policy sql scripts (#5677)
Shivam-nagar23 Aug 21, 2024
af3133d
feat: Config diff phase 2 oss (#5488)
prakash100198 Aug 21, 2024
f1aa1fc
fix: Helm apps entries in Ea mode (#5652)
RajeevRanjan27 Aug 21, 2024
6820ffe
feat: refactoring deployment app name usage (#5702)
iamayushm Aug 23, 2024
095d81c
migration syn with ent (#5719)
prkhrkat Aug 23, 2024
ea4974b
fix: group image vulnerabilities by base/os image (#5680)
gireesh-naidu Aug 23, 2024
7f5db23
fix: remove sql script (#5727)
gireesh-naidu Aug 23, 2024
17747c2
Revert "fix: Helm apps entries in Ea mode (#5652)" (#5733)
RajeevRanjan27 Aug 23, 2024
6738628
chore: custom argo-workflow dependency (#5731)
Ash-exp Aug 23, 2024
7048c68
chore: fix go.sum file (#5734)
Ash-exp Aug 23, 2024
0c56885
misc: Main sync develop (#5737)
vikramdevtron Aug 23, 2024
ed70d3e
chore: sql scripts sync (#5763)
gireesh-naidu Aug 29, 2024
29d96a8
fix: Scan tool migration fix develop (#5773)
kripanshdevtron Aug 30, 2024
af5f36d
chore: Oss sync 2 sept 2024 oss (#5779)
prakash100198 Sep 2, 2024
dc67204
chore: plugin creation oss (#5780)
prakash100198 Sep 2, 2024
1f66fdd
fix: Sql injection fix develop (#5785)
kripanshdevtron Sep 2, 2024
63197e9
feat: add support for tag name for external CI (#5689)
ayu-devtron Sep 3, 2024
214bd62
argo-assets moved out (#5788)
prkhrkat Sep 3, 2024
813c3d7
query param split (#5801) (#5803)
Shivam-nagar23 Sep 4, 2024
d4e599e
feat: acr polling plugin support (#5724)
Ash-exp Sep 5, 2024
c022e5f
fix: build failed due to argo assets (#5805)
Ash-exp Sep 5, 2024
c0dc007
handled the release not found case for app detail of external app (#5…
RajeevRanjan27 Sep 9, 2024
61bf950
chore: Main develop sync bd5118 (#5817)
kartik-579 Sep 9, 2024
d38a408
feat: Argo listing change (#5768)
kartik-579 Sep 9, 2024
5727221
feat: Feature release v7 sql scripts (#5757)
Shivam-nagar23 Sep 9, 2024
3ad88d5
fix: sync with common-lib changes (#5820)
systemsdt Sep 9, 2024
eac015b
fix: sync with common-lib changes
prkhrkat Sep 11, 2024
cf9e0c2
Merge branch 'main' into multi-gitter-branch
prkhrkat Sep 11, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,8 @@ RUN apt clean autoclean
RUN apt autoremove -y && rm -rf /var/lib/apt/lists/*
COPY --from=build-env /go/src/github.com/devtron-labs/devtron/devtron .
COPY --from=build-env /go/src/github.com/devtron-labs/devtron/auth_model.conf .
COPY --from=build-env /go/src/github.com/devtron-labs/devtron/vendor/github.com/argoproj/argo-cd/assets/ /go/src/github.com/devtron-labs/devtron/vendor/github.com/argoproj/argo-cd/assets
#COPY --from=build-env /go/src/github.com/devtron-labs/devtron/vendor/github.com/argoproj/argo-cd/assets/ /go/src/github.com/devtron-labs/devtron/vendor/github.com/argoproj/argo-cd/assets
COPY --from=build-env /go/src/github.com/devtron-labs/devtron/argocd-assets/ /go/src/github.com/devtron-labs/devtron/vendor/github.com/argoproj/argo-cd/assets
COPY --from=build-env /go/src/github.com/devtron-labs/devtron/scripts/devtron-reference-helm-charts scripts/devtron-reference-helm-charts
COPY --from=build-env /go/src/github.com/devtron-labs/devtron/scripts/sql scripts/sql
COPY --from=build-env /go/src/github.com/devtron-labs/devtron/scripts/casbin scripts/casbin
Expand Down
3 changes: 2 additions & 1 deletion DockerfileEA
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,8 @@ RUN apt autoremove -y && rm -rf /var/lib/apt/lists/*
COPY --from=build-env /go/src/github.com/devtron-labs/devtron/auth_model.conf .
COPY --from=build-env /go/src/github.com/devtron-labs/devtron/cmd/external-app/devtron-ea .

COPY --from=build-env /go/src/github.com/devtron-labs/devtron/vendor/github.com/argoproj/argo-cd/assets/ /go/src/github.com/devtron-labs/devtron/vendor/github.com/argoproj/argo-cd/assets
#COPY --from=build-env /go/src/github.com/devtron-labs/devtron/vendor/github.com/argoproj/argo-cd/assets/ /go/src/github.com/devtron-labs/devtron/vendor/github.com/argoproj/argo-cd/assets
COPY --from=build-env /go/src/github.com/devtron-labs/devtron/argocd-assets/ /go/src/github.com/devtron-labs/devtron/vendor/github.com/argoproj/argo-cd/assets
COPY --from=build-env /go/src/github.com/devtron-labs/devtron/scripts/devtron-reference-helm-charts scripts/devtron-reference-helm-charts
COPY --from=build-env /go/src/github.com/devtron-labs/devtron/scripts/sql scripts/sql
COPY --from=build-env /go/src/github.com/devtron-labs/devtron/scripts/casbin scripts/casbin
Expand Down
9 changes: 6 additions & 3 deletions api/argoApplication/ArgoApplicationRestHandler.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ import (
"errors"
"github.com/devtron-labs/devtron/api/restHandler/common"
"github.com/devtron-labs/devtron/pkg/argoApplication"
"github.com/devtron-labs/devtron/pkg/argoApplication/read"
"github.com/devtron-labs/devtron/pkg/auth/authorisation/casbin"
"go.uber.org/zap"
"net/http"
Expand All @@ -34,14 +35,16 @@ type ArgoApplicationRestHandler interface {

type ArgoApplicationRestHandlerImpl struct {
argoApplicationService argoApplication.ArgoApplicationService
readService read.ArgoApplicationReadService
logger *zap.SugaredLogger
enforcer casbin.Enforcer
}

func NewArgoApplicationRestHandlerImpl(argoApplicationService argoApplication.ArgoApplicationService,
logger *zap.SugaredLogger, enforcer casbin.Enforcer) *ArgoApplicationRestHandlerImpl {
readService read.ArgoApplicationReadService, logger *zap.SugaredLogger, enforcer casbin.Enforcer) *ArgoApplicationRestHandlerImpl {
return &ArgoApplicationRestHandlerImpl{
argoApplicationService: argoApplicationService,
readService: readService,
logger: logger,
enforcer: enforcer,
}
Expand Down Expand Up @@ -101,9 +104,9 @@ func (handler *ArgoApplicationRestHandlerImpl) GetApplicationDetail(w http.Respo
return
}
}
resp, err := handler.argoApplicationService.GetAppDetail(resourceName, namespace, clusterId)
resp, err := handler.readService.GetAppDetail(resourceName, namespace, clusterId)
if err != nil {
handler.logger.Errorw("error in listing all argo applications", "err", err, "resourceName", resourceName, "clusterId", clusterId)
handler.logger.Errorw("error in getting argo application app detail", "err", err, "resourceName", resourceName, "clusterId", clusterId)
common.WriteJsonResp(w, err, nil, http.StatusInternalServerError)
return
}
Expand Down
4 changes: 4 additions & 0 deletions api/argoApplication/wire_argoApplication.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,14 @@ package argoApplication

import (
"github.com/devtron-labs/devtron/pkg/argoApplication"
"github.com/devtron-labs/devtron/pkg/argoApplication/read"
"github.com/google/wire"
)

var ArgoApplicationWireSet = wire.NewSet(
read.NewArgoApplicationReadServiceImpl,
wire.Bind(new(read.ArgoApplicationReadService), new(*read.ArgoApplicationReadServiceImpl)),

argoApplication.NewArgoApplicationServiceImpl,
wire.Bind(new(argoApplication.ArgoApplicationService), new(*argoApplication.ArgoApplicationServiceImpl)),

Expand Down
11 changes: 9 additions & 2 deletions api/helm-app/HelmAppRestHandler.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,11 @@ import (
"github.com/devtron-labs/devtron/pkg/appStore/installedApp/service"
"github.com/devtron-labs/devtron/pkg/appStore/installedApp/service/EAMode"
"github.com/devtron-labs/devtron/pkg/argoApplication"
"github.com/devtron-labs/devtron/pkg/argoApplication/helper"
clientErrors "github.com/devtron-labs/devtron/pkg/errors"
"github.com/devtron-labs/devtron/pkg/fluxApplication"
bean2 "github.com/devtron-labs/devtron/pkg/k8s/application/bean"
"github.com/devtron-labs/devtron/pkg/pipeline"
"net/http"
"strconv"
"strings"
Expand Down Expand Up @@ -144,6 +146,11 @@ func (handler *HelmAppRestHandlerImpl) GetApplicationDetail(w http.ResponseWrite
//RBAC enforcer Ends
appdetail, err := handler.helmAppService.GetApplicationDetail(context.Background(), appIdentifier)
if err != nil {

if pipeline.CheckAppReleaseNotExist(err) {
common.WriteJsonResp(w, err, nil, http.StatusNotFound)
return
}
apiError := clientErrors.ConvertToApiError(err)
if apiError != nil {
err = apiError
Expand Down Expand Up @@ -226,7 +233,7 @@ func (handler *HelmAppRestHandlerImpl) handleFluxApplicationHibernate(r *http.Re
return handler.fluxApplication.HibernateFluxApplication(r.Context(), appIdentifier, hibernateRequest)
}
func (handler *HelmAppRestHandlerImpl) handleArgoApplicationHibernate(r *http.Request, token string, hibernateRequest *openapi.HibernateRequest) ([]*openapi.HibernateStatus, error) {
appIdentifier, err := argoApplication.DecodeExternalArgoAppId(*hibernateRequest.AppId)
appIdentifier, err := helper.DecodeExternalArgoAppId(*hibernateRequest.AppId)
if err != nil {
return nil, err
}
Expand Down Expand Up @@ -310,7 +317,7 @@ func (handler *HelmAppRestHandlerImpl) handleFluxApplicationUnHibernate(r *http.
return handler.fluxApplication.UnHibernateFluxApplication(r.Context(), appIdentifier, hibernateRequest)
}
func (handler *HelmAppRestHandlerImpl) handleArgoApplicationUnHibernate(r *http.Request, token string, hibernateRequest *openapi.HibernateRequest) ([]*openapi.HibernateStatus, error) {
appIdentifier, err := argoApplication.DecodeExternalArgoAppId(*hibernateRequest.AppId)
appIdentifier, err := helper.DecodeExternalArgoAppId(*hibernateRequest.AppId)
if err != nil {
return nil, err
}
Expand Down
73 changes: 37 additions & 36 deletions api/k8s/application/k8sApplicationRestHandler.go
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,8 @@ import (
client "github.com/devtron-labs/devtron/api/helm-app/service"
"github.com/devtron-labs/devtron/api/restHandler/common"
util2 "github.com/devtron-labs/devtron/internal/util"
"github.com/devtron-labs/devtron/pkg/argoApplication"
"github.com/devtron-labs/devtron/pkg/argoApplication/helper"
"github.com/devtron-labs/devtron/pkg/argoApplication/read"
"github.com/devtron-labs/devtron/pkg/auth/authorisation/casbin"
"github.com/devtron-labs/devtron/pkg/auth/user"
"github.com/devtron-labs/devtron/pkg/cluster"
Expand Down Expand Up @@ -81,39 +82,39 @@ type K8sApplicationRestHandler interface {
}

type K8sApplicationRestHandlerImpl struct {
logger *zap.SugaredLogger
k8sApplicationService application2.K8sApplicationService
pump connector.Pump
terminalSessionHandler terminal.TerminalSessionHandler
enforcer casbin.Enforcer
validator *validator.Validate
enforcerUtil rbac.EnforcerUtil
enforcerUtilHelm rbac.EnforcerUtilHelm
helmAppService client.HelmAppService
userService user.UserService
k8sCommonService k8s.K8sCommonService
terminalEnvVariables *util.TerminalEnvVariables
fluxAppService fluxApplication.FluxApplicationService
argoApplication argoApplication.ArgoApplicationService
logger *zap.SugaredLogger
k8sApplicationService application2.K8sApplicationService
pump connector.Pump
terminalSessionHandler terminal.TerminalSessionHandler
enforcer casbin.Enforcer
validator *validator.Validate
enforcerUtil rbac.EnforcerUtil
enforcerUtilHelm rbac.EnforcerUtilHelm
helmAppService client.HelmAppService
userService user.UserService
k8sCommonService k8s.K8sCommonService
terminalEnvVariables *util.TerminalEnvVariables
fluxAppService fluxApplication.FluxApplicationService
argoApplicationReadService read.ArgoApplicationReadService
}

func NewK8sApplicationRestHandlerImpl(logger *zap.SugaredLogger, k8sApplicationService application2.K8sApplicationService, pump connector.Pump, terminalSessionHandler terminal.TerminalSessionHandler, enforcer casbin.Enforcer, enforcerUtilHelm rbac.EnforcerUtilHelm, enforcerUtil rbac.EnforcerUtil, helmAppService client.HelmAppService, userService user.UserService, k8sCommonService k8s.K8sCommonService, validator *validator.Validate, envVariables *util.EnvironmentVariables, fluxAppService fluxApplication.FluxApplicationService, argoApplication argoApplication.ArgoApplicationService,
func NewK8sApplicationRestHandlerImpl(logger *zap.SugaredLogger, k8sApplicationService application2.K8sApplicationService, pump connector.Pump, terminalSessionHandler terminal.TerminalSessionHandler, enforcer casbin.Enforcer, enforcerUtilHelm rbac.EnforcerUtilHelm, enforcerUtil rbac.EnforcerUtil, helmAppService client.HelmAppService, userService user.UserService, k8sCommonService k8s.K8sCommonService, validator *validator.Validate, envVariables *util.EnvironmentVariables, fluxAppService fluxApplication.FluxApplicationService, argoApplicationReadService read.ArgoApplicationReadService,
) *K8sApplicationRestHandlerImpl {
return &K8sApplicationRestHandlerImpl{
logger: logger,
k8sApplicationService: k8sApplicationService,
pump: pump,
terminalSessionHandler: terminalSessionHandler,
enforcer: enforcer,
validator: validator,
enforcerUtilHelm: enforcerUtilHelm,
enforcerUtil: enforcerUtil,
helmAppService: helmAppService,
userService: userService,
k8sCommonService: k8sCommonService,
terminalEnvVariables: envVariables.TerminalEnvVariables,
fluxAppService: fluxAppService,
argoApplication: argoApplication,
logger: logger,
k8sApplicationService: k8sApplicationService,
pump: pump,
terminalSessionHandler: terminalSessionHandler,
enforcer: enforcer,
validator: validator,
enforcerUtilHelm: enforcerUtilHelm,
enforcerUtil: enforcerUtil,
helmAppService: helmAppService,
userService: userService,
k8sCommonService: k8sCommonService,
terminalEnvVariables: envVariables.TerminalEnvVariables,
fluxAppService: fluxAppService,
argoApplicationReadService: argoApplicationReadService,
}
}

Expand Down Expand Up @@ -289,7 +290,7 @@ func (handler *K8sApplicationRestHandlerImpl) GetHostUrlsByBatch(w http.Response
resourceTreeResponse = appDetail.ResourceTreeResponse

} else if appType == bean2.ArgoAppType {
appIdentifier, err := argoApplication.DecodeExternalArgoAppId(appIdString)
appIdentifier, err := helper.DecodeExternalArgoAppId(appIdString)
if err != nil {
common.WriteJsonResp(w, err, nil, http.StatusBadRequest)
return
Expand All @@ -301,7 +302,7 @@ func (handler *K8sApplicationRestHandlerImpl) GetHostUrlsByBatch(w http.Response
}
//RBAC enforcer Ends

appDetail, err := handler.argoApplication.GetAppDetail(appIdentifier.AppName, appIdentifier.Namespace, appIdentifier.ClusterId)
appDetail, err := handler.argoApplicationReadService.GetAppDetail(appIdentifier.AppName, appIdentifier.Namespace, appIdentifier.ClusterId)
if err != nil {
apiError := clientErrors.ConvertToApiError(err)
if apiError != nil {
Expand Down Expand Up @@ -721,12 +722,12 @@ func (handler *K8sApplicationRestHandlerImpl) requestValidationAndRBAC(w http.Re
}
//RBAC enforcer ends here
} else if request.AppType == bean2.ArgoAppType && request.ExternalArgoApplicationName != "" {
appIdentifier, err := argoApplication.DecodeExternalArgoAppId(request.AppId)
appIdentifier, err := helper.DecodeExternalArgoAppId(request.AppId)
if err != nil {
handler.logger.Errorw(bean2.AppIdDecodingError, "err", err, "appIdentifier", request.AppIdentifier)
common.WriteJsonResp(w, err, nil, http.StatusBadRequest)
}
valid, err := handler.k8sApplicationService.ValidateArgoResourceRequest(r.Context(), appIdentifier, request.K8sRequest)
valid, err := handler.argoApplicationReadService.ValidateArgoResourceRequest(r.Context(), appIdentifier, request.K8sRequest)
if err != nil || !valid {
handler.logger.Errorw("error in validating resource request", "err", err)
common.WriteJsonResp(w, err, nil, http.StatusBadRequest)
Expand Down Expand Up @@ -1145,14 +1146,14 @@ func (handler *K8sApplicationRestHandlerImpl) verifyRbacForAppRequests(token str
envObject := ""
switch request.AppType {
case bean2.ArgoAppType:
argoAppIdentifier, err := argoApplication.DecodeExternalArgoAppId(request.AppId)
argoAppIdentifier, err := helper.DecodeExternalArgoAppId(request.AppId)
if err != nil {
handler.logger.Errorw("error in decoding appId", "err", err, "appId", request.AppId)
return false, err
}
request.ClusterId = argoAppIdentifier.ClusterId
request.ExternalArgoApplicationName = argoAppIdentifier.AppName
valid, err := handler.k8sApplicationService.ValidateArgoResourceRequest(r.Context(), argoAppIdentifier, request.K8sRequest)
valid, err := handler.argoApplicationReadService.ValidateArgoResourceRequest(r.Context(), argoAppIdentifier, request.K8sRequest)
if err != nil || !valid {
handler.logger.Errorw("error in validating resource request", "err", err)
return false, err
Expand Down
67 changes: 67 additions & 0 deletions api/restHandler/GlobalPluginRestHandler.go
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ import (

type GlobalPluginRestHandler interface {
PatchPlugin(w http.ResponseWriter, r *http.Request)
CreatePlugin(w http.ResponseWriter, r *http.Request)

GetAllGlobalVariables(w http.ResponseWriter, r *http.Request)
ListAllPlugins(w http.ResponseWriter, r *http.Request)
Expand All @@ -46,6 +47,7 @@ type GlobalPluginRestHandler interface {
GetPluginDetailByIds(w http.ResponseWriter, r *http.Request)
GetAllUniqueTags(w http.ResponseWriter, r *http.Request)
MigratePluginData(w http.ResponseWriter, r *http.Request)
GetAllPluginMinData(w http.ResponseWriter, r *http.Request)
}

func NewGlobalPluginRestHandler(logger *zap.SugaredLogger, globalPluginService plugin.GlobalPluginService,
Expand Down Expand Up @@ -420,3 +422,68 @@ func (handler *GlobalPluginRestHandlerImpl) MigratePluginData(w http.ResponseWri
}
common.WriteJsonResp(w, nil, nil, http.StatusOK)
}

func (handler *GlobalPluginRestHandlerImpl) CreatePlugin(w http.ResponseWriter, r *http.Request) {
userId, err := handler.userService.GetLoggedInUser(r)
if userId == 0 || err != nil {
common.WriteJsonResp(w, err, "Unauthorized User", http.StatusUnauthorized)
return
}
token := r.Header.Get("token")
appId, err := common.ExtractIntQueryParam(w, r, "appId", 0)
if err != nil {
return
}
ok, err := handler.IsUserAuthorized(token, appId)
if err != nil {
common.WriteJsonResp(w, err, nil, http.StatusBadRequest)
return
}
if !ok {
common.WriteJsonResp(w, fmt.Errorf("unauthorized user"), "Unauthorized User", http.StatusForbidden)
return
}
decoder := json.NewDecoder(r.Body)
var pluginDataDto bean.PluginParentMetadataDto
err = decoder.Decode(&pluginDataDto)
if err != nil {
handler.logger.Errorw("request err, CreatePlugin", "error", err, "payload", pluginDataDto)
common.WriteJsonResp(w, err, nil, http.StatusBadRequest)
return
}
handler.logger.Infow("request payload received for creating plugins", pluginDataDto, "userId", userId)

pluginVersionId, err := handler.globalPluginService.CreatePluginOrVersions(&pluginDataDto, userId)
if err != nil {
handler.logger.Errorw("service error, error in creating plugin", "pluginCreateRequestDto", pluginDataDto, "err", err)
common.WriteJsonResp(w, err, nil, http.StatusInternalServerError)
return
}

common.WriteJsonResp(w, nil, bean.NewPluginMinDto().WithPluginVersionId(pluginVersionId), http.StatusOK)
}

func (handler *GlobalPluginRestHandlerImpl) GetAllPluginMinData(w http.ResponseWriter, r *http.Request) {
token := r.Header.Get("token")
appId, err := common.ExtractIntQueryParam(w, r, "appId", 0)
if err != nil {
return
}
ok, err := handler.IsUserAuthorized(token, appId)
if err != nil {
common.WriteJsonResp(w, err, nil, http.StatusBadRequest)
return
}
if !ok {
common.WriteJsonResp(w, fmt.Errorf("unauthorized user"), "Unauthorized User", http.StatusForbidden)
return
}

pluginDetail, err := handler.globalPluginService.GetAllPluginMinData()
if err != nil {
handler.logger.Errorw("error in getting all unique tags", "err", err)
common.WriteJsonResp(w, err, nil, http.StatusInternalServerError)
return
}
common.WriteJsonResp(w, nil, pluginDetail, http.StatusOK)
}
5 changes: 4 additions & 1 deletion api/router/GlobalPluginRouter.go
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,8 @@ type GlobalPluginRouterImpl struct {
func (impl *GlobalPluginRouterImpl) initGlobalPluginRouter(globalPluginRouter *mux.Router) {
globalPluginRouter.Path("/migrate").
HandlerFunc(impl.globalPluginRestHandler.MigratePluginData).Methods("PUT")

globalPluginRouter.Path("/create").
HandlerFunc(impl.globalPluginRestHandler.CreatePlugin).Methods("POST")
// versioning impact handling to be done for below apis,
globalPluginRouter.Path("").
HandlerFunc(impl.globalPluginRestHandler.PatchPlugin).Methods("POST")
Expand All @@ -68,5 +69,7 @@ func (impl *GlobalPluginRouterImpl) initGlobalPluginRouter(globalPluginRouter *m

globalPluginRouter.Path("/list/tags").
HandlerFunc(impl.globalPluginRestHandler.GetAllUniqueTags).Methods("GET")
globalPluginRouter.Path("/list/v2/min").
HandlerFunc(impl.globalPluginRestHandler.GetAllPluginMinData).Methods("GET")

}
Loading
Loading