Skip to content

Commit dc67204

Browse files
prakash100198RajeevRanjan27prkhrkatashokdevtronbadal773
authored
chore: plugin creation oss (#5780)
* wip: new plugin creation api and min plugin api with only shared plugin list * wip: create new plugin version code * wip:plugin type SHARED by default * wip:find plugin either by identifier or by id while creating a new version of existing plugin * wip: create new plugin tag logic improved * wip: optimize GetAllFilteredPluginParentMetadata query * wip: create plugin tag new flow * wip: minor fix * wip: minor fix * wip: minor fix * wip: newTagsPresent -> areNewTagsPresent * wip: icon is not mandatory code incorporated * wip:minor refactoring * wip: prevent duplicate version from being created and save tags relation only when * wip: minor fix * wip: details api, get all plugin data or non * wip: code review incorp part -1 * wip: code review incorp part -2 * wip: code review incorp part -3 * wip: remove code duplication * wip: hardcode isExposed to true * wip: hardcode StepType= inline * wip: set default VariableStepIndex= 1 * migration number changes (#5692) * refrain from checkin autoscalingCheckBeforeTrigger for virt clus (#5696) * fix: Decode secret fix on add update oss (#5695) * ValidateEncodedDataByDecoding in case add or update secret * wire fix from main * minor refactor * comment * saving pco concurrency case handled (#5688) * fix: script for pipelineStageStepVariable, making input value and default_value text from varchar255 (#5701) * script for pipelineStageStepVariable, making input value and default_value text from varchar255 * erro log fix * fix: ea fixes for helm app (#5708) * added the ea apps entry app table * resolved the ea mode multiple rows error during configuration of app * modified the ea dockerfile in ca-certificates cmd * uncommented the code and left the ea helm app making way untouched * remodified the dockerfile as previous state * modified the docker file ea mode * dockerfile exit code 100 due to ap install alternative in ea mode dockerfile * execute make after main merge * modified changes in dockerfile ea mode * resolved comments after first level review * Revert "fix: ea fixes for helm app (#5708)" (#5713) This reverts commit 3e31f49. * fix: SkipCiBuildCachePushPull code incorporated with minor refac in handle runtime params validation (#5712) * SkipCiBuildCachePushPull code incorporated with minor refac in handle runtime params validation * minor refactor * minor refactor * migration syn with ent (#5718) * doc: Edit Deployment Chart Schema (#5735) * Edit Deployment Chart Schema * Fixes * PM + CO Feedback Incorporated * doc: Redirection of old entry in gitbook.yaml (#5738) * Edit Deployment Chart Schema * Fixes * PM + CO Feedback Incorporated * Redirected Old Entry * docs: added Documentation for Air-Gapped Installation (#5360) * added docs for air-gapped-installation * added all the images in 7.0.0 * modified yq command in the docs * added an entry in summary.md * added installation commands * modified statements * modified variable name * added steps to navigation * added the latest oss chart images * added a note for docker * Added Intro + Proofreading + Structuring * Other fixes * Lang fix * added docs for ea-mode only * modified lang * Update install-devtron-in-airgapped-environment.md Changed h3 header to fit the ToC on the RHS * added changes * modified changes --------- Co-authored-by: Badal Kumar Prusty <badalkumar@Badals-MacBook-Pro.local> Co-authored-by: ashokdevtron <141001279+ashokdevtron@users.noreply.github.com> * feat: Env description handling (#5744) * env description handling added * license handling * misc: Main sync rc - branch update (#5753) * added config sql script (#5681) * feat: CVE severity categorisation and scan result listing API enhancements (#5617) * feat: add support for app and env sorting in scan list api and add medium, high and unknown severity support * fix: query fix for appName sort or envName sort * fix: sql script number change * fix: minor changes * fix: review fix * fix: remove dml on cve_store and handle it in code handling this versioning * fix: review comments * fix: update script numbers * fix: minor fix * feat: casbin deny policy sql scripts (#5677) * system controller scripts * script additions * sql cript update * sql script number chnage * feat: Config diff phase 2 oss (#5488) * story(configDiffView) : open api spec * story(configDiffView) : open api spec updated * story(configDiffView) : open api spec updated for error state * story(configDiffView) : WIP * story(configDiffView) : WIP "some code changed" * story(configDiffView) : support for names added * story(configDiffView) : iota removed * story(configDiffView) : pg no rows handled * story(configDiffView) : spelling check * story(configDiffView) : code review comment resolved * story(configDiffView) : env id added * story(configDiffView) : intersection added * story(configDiffView) : comments removed * story(configDiffView) : code review comment resolved * story(configDiffView) : comment removed * story(configDiffView) : CMCSNames DTO moved * story(configDiffView) : null case handled * story(configDiffView) : logger added * story(configDiffView) : code refactored * story(configDiffView) : code refactored v2 * story(configDiffView) : spec updated * story(configDiffView) : code refactored * story(configDiffView) : config names * main sync * overridden and global flag introduced in config diff autocomplete api * ent sync * get config data in resthandler * new api for showing all config data in config/data :- Service func -> GetAllConfigData * using a single key instead of global and overridden key in config/autocomplete api * ConfigState made string instead of int * not sending inheriting in case base config * code review comment incorporation * ent sync * code review comment incorp -1 * code review comment incorp -2 * code review comment incorp -3 * small fix in plugin * migration number changes (#5692) * main sync * minor fix * refrain from checkin autoscalingCheckBeforeTrigger for virt clus (#5696) * fix: Decode secret fix on add update oss (#5695) * ValidateEncodedDataByDecoding in case add or update secret * wire fix from main * minor refactor * comment * saving pco concurrency case handled (#5688) * fix: script for pipelineStageStepVariable, making input value and default_value text from varchar255 (#5701) * script for pipelineStageStepVariable, making input value and default_value text from varchar255 * erro log fix * scipt number change --------- Co-authored-by: adi6859 <aditya.ar1909@gmail.com> Co-authored-by: Vikram Singh <vikram@devtron.ai> * fix: Helm apps entries in Ea mode (#5652) * added the ea apps entry app table * resolved the ea mode multiple rows error during configuration of app * modified the ea dockerfile in ca-certificates cmd * uncommented the code and left the ea helm app making way untouched * remodified the dockerfile as previous state * modified the docker file ea mode * dockerfile exit code 100 due to ap install alternative in ea mode dockerfile * execute make after main merge * modified changes in dockerfile ea mode * resolved comments after first level review * executed make after merging with develop branch * feat: refactoring deployment app name usage (#5702) * removing hard coded deployment app name * removing %s-%s usage * wip: query change for enterprise * wip * wip * wip * adding release mode in deployment config * wip: release changes * left join on pco and artifact * handling empty release mode - backward compatibility * fixing panic * migration number changes (#5692) * refrain from checkin autoscalingCheckBeforeTrigger for virt clus (#5696) * fix: Decode secret fix on add update oss (#5695) * ValidateEncodedDataByDecoding in case add or update secret * wire fix from main * minor refactor * comment * saving pco concurrency case handled (#5688) * migration updated * main merge and migration script updated * wip * review changes * fix sql no --------- Co-authored-by: Prakash <prakash.kumar@devtron.ai> * migration syn with ent (#5719) * fix: group image vulnerabilities by base/os image (#5680) * feat: add support for app and env sorting in scan list api and add medium, high and unknown severity support * fix: query fix for appName sort or envName sort * fix: sql script number change * fix: minor changes * fix: review fix * fix: remove dml on cve_store and handle it in code handling this versioning * fix: review comments * feat: storing target,class and type values in imageScanExecutionResults * feat: add sql script * feat: add sql script * fix: add new columns * fix: update script numbers * fix: correct down script * fix: minor fix * chore: script number update * fix: remove sql script (#5727) * Revert "fix: Helm apps entries in Ea mode (#5652)" (#5733) This reverts commit f1aa1fc. * chore: custom argo-workflow dependency (#5731) * bumped github.com/argoproj/argo-workflows/v3 v3.5.10 => github.com/devtron-labs/argo-workflows/v3 v3.5.10 * migration number changes (#5692) * refrain from checkin autoscalingCheckBeforeTrigger for virt clus (#5696) * fix: Decode secret fix on add update oss (#5695) * ValidateEncodedDataByDecoding in case add or update secret * wire fix from main * minor refactor * comment * saving pco concurrency case handled (#5688) * fix: script for pipelineStageStepVariable, making input value and default_value text from varchar255 (#5701) * script for pipelineStageStepVariable, making input value and default_value text from varchar255 * erro log fix * fix: ea fixes for helm app (#5708) * added the ea apps entry app table * resolved the ea mode multiple rows error during configuration of app * modified the ea dockerfile in ca-certificates cmd * uncommented the code and left the ea helm app making way untouched * remodified the dockerfile as previous state * modified the docker file ea mode * dockerfile exit code 100 due to ap install alternative in ea mode dockerfile * execute make after main merge * modified changes in dockerfile ea mode * resolved comments after first level review * Revert "fix: ea fixes for helm app (#5708)" (#5713) This reverts commit 3e31f49. * fix: SkipCiBuildCachePushPull code incorporated with minor refac in handle runtime params validation (#5712) * SkipCiBuildCachePushPull code incorporated with minor refac in handle runtime params validation * minor refactor * minor refactor * migration syn with ent (#5718) * reverted main branch changes * reverted main branch changes --------- Co-authored-by: Prakash <prakash.kumar@devtron.ai> Co-authored-by: Rajeev Ranjan <90333766+RajeevRanjan27@users.noreply.github.com> Co-authored-by: prakhar katiyar <39842461+prkhrkat@users.noreply.github.com> * chore: fix go.sum file (#5734) * misc: Main sync develop (#5737) * migration number changes (#5692) * refrain from checkin autoscalingCheckBeforeTrigger for virt clus (#5696) * fix: Decode secret fix on add update oss (#5695) * ValidateEncodedDataByDecoding in case add or update secret * wire fix from main * minor refactor * comment * saving pco concurrency case handled (#5688) * fix: script for pipelineStageStepVariable, making input value and default_value text from varchar255 (#5701) * script for pipelineStageStepVariable, making input value and default_value text from varchar255 * erro log fix * fix: ea fixes for helm app (#5708) * added the ea apps entry app table * resolved the ea mode multiple rows error during configuration of app * modified the ea dockerfile in ca-certificates cmd * uncommented the code and left the ea helm app making way untouched * remodified the dockerfile as previous state * modified the docker file ea mode * dockerfile exit code 100 due to ap install alternative in ea mode dockerfile * execute make after main merge * modified changes in dockerfile ea mode * resolved comments after first level review * Revert "fix: ea fixes for helm app (#5708)" (#5713) This reverts commit 3e31f49. * fix: SkipCiBuildCachePushPull code incorporated with minor refac in handle runtime params validation (#5712) * SkipCiBuildCachePushPull code incorporated with minor refac in handle runtime params validation * minor refactor * minor refactor * migration syn with ent (#5718) --------- Co-authored-by: Prakash <prakash.kumar@devtron.ai> Co-authored-by: Rajeev Ranjan <90333766+RajeevRanjan27@users.noreply.github.com> Co-authored-by: prakhar katiyar <39842461+prkhrkat@users.noreply.github.com> * fix: Validate config cm cs (#5750) * validateConfigRequest before CMGlobalAddUpdate and CSGlobalAddUpdate * checkIfConfigDataAlreadyExist --------- Co-authored-by: ayu-devtron <167413063+ayu-devtron@users.noreply.github.com> Co-authored-by: Vikram Singh <vikram@devtron.ai> Co-authored-by: Gireesh Naidu <111440205+gireesh-naidu@users.noreply.github.com> Co-authored-by: Shivam Nagar <124123645+Shivam-nagar23@users.noreply.github.com> Co-authored-by: Prakash <prakash.kumar@devtron.ai> Co-authored-by: adi6859 <aditya.ar1909@gmail.com> Co-authored-by: Rajeev Ranjan <90333766+RajeevRanjan27@users.noreply.github.com> Co-authored-by: iamayushm <32041961+iamayushm@users.noreply.github.com> Co-authored-by: prakhar katiyar <39842461+prkhrkat@users.noreply.github.com> Co-authored-by: Asutosh Das <asutosh2000ad@gmail.com> Co-authored-by: Vikram <73224103+vikramdevtron@users.noreply.github.com> Co-authored-by: Prakarsh <71125043+prakarsh-dt@users.noreply.github.com> * doc: Update prerequisites of code-scan (#5625) * Update prerequisites of code-scan * Hyperlinked the Vulnerability scanning doc --------- Co-authored-by: ashokdevtron <141001279+ashokdevtron@users.noreply.github.com> * fix: ci patch rbac for branch update (#5759) * feat: Added basic auth support for servicemonitor (#5761) * Added support for basic auth in servicemonitor * Added support for namespace selector and custom matchLabels * Fixed indentations * fix: Bitnami chart repo tls issue (#5740) * bitnami_chart_fix * Rename 278_bitnami_chart_fix.down.sql to 282_bitnami_chart_fix.down.sql * Rename 278_bitnami_chart_fix.up.sql to 282_bitnami_chart_fix.up.sql --------- Co-authored-by: Pawan Mehta <117346502+pawan-mehta-dt@users.noreply.github.com> * doc: Cosign plugin doc (#5665) * doc for cosign plugin * edits in task name * updates in intro and other fixes. * Attached link to Cosign GitHub repo * Hyperlink fixes --------- Co-authored-by: ashokdevtron <141001279+ashokdevtron@users.noreply.github.com> * fix: check rbac on env if envName is present (#5765) * admin check fix in config draft * minor fix * doc: CraneCopy plugin doc (#5658) * doc for * edits in task name * spelling correction * Updated password --------- Co-authored-by: ashokdevtron <141001279+ashokdevtron@users.noreply.github.com> * doc: Devtron CD Trigger Plugin doc (#5747) * devtron-cd-trigger plugin doc * minor update * Proofreading done * Update devtron-cd-trigger.md * Removed unwanted phrase * Changed wording * Changed plurality * Updated devtron token --------- Co-authored-by: ashokdevtron <141001279+ashokdevtron@users.noreply.github.com> * doc: DockerSlim plugin doc (#5660) * doc for DockerSlim plugin * Updated Docker-Slim to DockerSlim * Minor fixes * url update * Fixes in url --------- Co-authored-by: ashokdevtron <141001279+ashokdevtron@users.noreply.github.com> * doc: Devtron Job Trigger Plugin doc (#5742) * devtron-job-trigger plugin doc * summary updated * Updated input variable description * token value updated --------- Co-authored-by: ashokdevtron <141001279+ashokdevtron@users.noreply.github.com> * fix: scan tool active check removed (#5771) * scan tool active check removed * query fix * feat: Docker pull env driven (#5767) * useDockerApiToGetDigest menv driven flag to control pulling image either using docker pull or docker API * UseAppDockerConfigForPrivateRegistries in workflow request * revert * revert * fix: panic handlings and argocd app delete stuck in partial stage (#5770) * fix: panic handlings * fix: false positive matrics on gitOps failures * fix: for GetConfigForHelmApps err: pg no row * feat: plugin creation support (#5630) * wip: new plugin creation api and min plugin api with only shared plugin list * wip: create new plugin version code * wip:plugin type SHARED by default * wip:find plugin either by identifier or by id while creating a new version of existing plugin * wip: create new plugin tag logic improved * wip: optimize GetAllFilteredPluginParentMetadata query * wip: create plugin tag new flow * wip: minor fix * wip: minor fix * wip: minor fix * wip: newTagsPresent -> areNewTagsPresent * wip: icon is not mandatory code incorporated * wip:minor refactoring * wip: prevent duplicate version from being created and save tags relation only when * wip: minor fix * wip: details api, get all plugin data or non * wip: code review incorp part -1 * wip: code review incorp part -2 * wip: code review incorp part -3 * wip: remove code duplication * wip: hardcode isExposed to true * wip: hardcode StepType= inline * wip: set default VariableStepIndex= 1 * Revert "feat: plugin creation support (#5630)" (#5778) This reverts commit 4296366. --------- Co-authored-by: Rajeev Ranjan <90333766+RajeevRanjan27@users.noreply.github.com> Co-authored-by: prakhar katiyar <39842461+prkhrkat@users.noreply.github.com> Co-authored-by: ashokdevtron <141001279+ashokdevtron@users.noreply.github.com> Co-authored-by: Badal Kumar <130441461+badal773@users.noreply.github.com> Co-authored-by: Badal Kumar Prusty <badalkumar@Badals-MacBook-Pro.local> Co-authored-by: kripanshdevtron <107392309+kripanshdevtron@users.noreply.github.com> Co-authored-by: kartik-579 <84493919+kartik-579@users.noreply.github.com> Co-authored-by: ayu-devtron <167413063+ayu-devtron@users.noreply.github.com> Co-authored-by: Vikram Singh <vikram@devtron.ai> Co-authored-by: Gireesh Naidu <111440205+gireesh-naidu@users.noreply.github.com> Co-authored-by: Shivam Nagar <124123645+Shivam-nagar23@users.noreply.github.com> Co-authored-by: adi6859 <aditya.ar1909@gmail.com> Co-authored-by: iamayushm <32041961+iamayushm@users.noreply.github.com> Co-authored-by: Asutosh Das <asutosh2000ad@gmail.com> Co-authored-by: Vikram <73224103+vikramdevtron@users.noreply.github.com> Co-authored-by: Prakarsh <71125043+prakarsh-dt@users.noreply.github.com> Co-authored-by: Bhushan Nemade <bhushan.nemade@devtron.ai> Co-authored-by: Pawan Mehta <117346502+pawan-mehta-dt@users.noreply.github.com> Co-authored-by: akshatsinha007 <156403098+akshatsinha007@users.noreply.github.com>
1 parent af5f36d commit dc67204

File tree

8 files changed

+757
-103
lines changed

8 files changed

+757
-103
lines changed

api/restHandler/GlobalPluginRestHandler.go

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ import (
3535

3636
type GlobalPluginRestHandler interface {
3737
PatchPlugin(w http.ResponseWriter, r *http.Request)
38+
CreatePlugin(w http.ResponseWriter, r *http.Request)
3839

3940
GetAllGlobalVariables(w http.ResponseWriter, r *http.Request)
4041
ListAllPlugins(w http.ResponseWriter, r *http.Request)
@@ -46,6 +47,7 @@ type GlobalPluginRestHandler interface {
4647
GetPluginDetailByIds(w http.ResponseWriter, r *http.Request)
4748
GetAllUniqueTags(w http.ResponseWriter, r *http.Request)
4849
MigratePluginData(w http.ResponseWriter, r *http.Request)
50+
GetAllPluginMinData(w http.ResponseWriter, r *http.Request)
4951
}
5052

5153
func NewGlobalPluginRestHandler(logger *zap.SugaredLogger, globalPluginService plugin.GlobalPluginService,
@@ -420,3 +422,68 @@ func (handler *GlobalPluginRestHandlerImpl) MigratePluginData(w http.ResponseWri
420422
}
421423
common.WriteJsonResp(w, nil, nil, http.StatusOK)
422424
}
425+
426+
func (handler *GlobalPluginRestHandlerImpl) CreatePlugin(w http.ResponseWriter, r *http.Request) {
427+
userId, err := handler.userService.GetLoggedInUser(r)
428+
if userId == 0 || err != nil {
429+
common.WriteJsonResp(w, err, "Unauthorized User", http.StatusUnauthorized)
430+
return
431+
}
432+
token := r.Header.Get("token")
433+
appId, err := common.ExtractIntQueryParam(w, r, "appId", 0)
434+
if err != nil {
435+
return
436+
}
437+
ok, err := handler.IsUserAuthorized(token, appId)
438+
if err != nil {
439+
common.WriteJsonResp(w, err, nil, http.StatusBadRequest)
440+
return
441+
}
442+
if !ok {
443+
common.WriteJsonResp(w, fmt.Errorf("unauthorized user"), "Unauthorized User", http.StatusForbidden)
444+
return
445+
}
446+
decoder := json.NewDecoder(r.Body)
447+
var pluginDataDto bean.PluginParentMetadataDto
448+
err = decoder.Decode(&pluginDataDto)
449+
if err != nil {
450+
handler.logger.Errorw("request err, CreatePlugin", "error", err, "payload", pluginDataDto)
451+
common.WriteJsonResp(w, err, nil, http.StatusBadRequest)
452+
return
453+
}
454+
handler.logger.Infow("request payload received for creating plugins", pluginDataDto, "userId", userId)
455+
456+
pluginVersionId, err := handler.globalPluginService.CreatePluginOrVersions(&pluginDataDto, userId)
457+
if err != nil {
458+
handler.logger.Errorw("service error, error in creating plugin", "pluginCreateRequestDto", pluginDataDto, "err", err)
459+
common.WriteJsonResp(w, err, nil, http.StatusInternalServerError)
460+
return
461+
}
462+
463+
common.WriteJsonResp(w, nil, bean.NewPluginMinDto().WithPluginVersionId(pluginVersionId), http.StatusOK)
464+
}
465+
466+
func (handler *GlobalPluginRestHandlerImpl) GetAllPluginMinData(w http.ResponseWriter, r *http.Request) {
467+
token := r.Header.Get("token")
468+
appId, err := common.ExtractIntQueryParam(w, r, "appId", 0)
469+
if err != nil {
470+
return
471+
}
472+
ok, err := handler.IsUserAuthorized(token, appId)
473+
if err != nil {
474+
common.WriteJsonResp(w, err, nil, http.StatusBadRequest)
475+
return
476+
}
477+
if !ok {
478+
common.WriteJsonResp(w, fmt.Errorf("unauthorized user"), "Unauthorized User", http.StatusForbidden)
479+
return
480+
}
481+
482+
pluginDetail, err := handler.globalPluginService.GetAllPluginMinData()
483+
if err != nil {
484+
handler.logger.Errorw("error in getting all unique tags", "err", err)
485+
common.WriteJsonResp(w, err, nil, http.StatusInternalServerError)
486+
return
487+
}
488+
common.WriteJsonResp(w, nil, pluginDetail, http.StatusOK)
489+
}

api/router/GlobalPluginRouter.go

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,8 @@ type GlobalPluginRouterImpl struct {
4141
func (impl *GlobalPluginRouterImpl) initGlobalPluginRouter(globalPluginRouter *mux.Router) {
4242
globalPluginRouter.Path("/migrate").
4343
HandlerFunc(impl.globalPluginRestHandler.MigratePluginData).Methods("PUT")
44-
44+
globalPluginRouter.Path("/create").
45+
HandlerFunc(impl.globalPluginRestHandler.CreatePlugin).Methods("POST")
4546
// versioning impact handling to be done for below apis,
4647
globalPluginRouter.Path("").
4748
HandlerFunc(impl.globalPluginRestHandler.PatchPlugin).Methods("POST")
@@ -68,5 +69,7 @@ func (impl *GlobalPluginRouterImpl) initGlobalPluginRouter(globalPluginRouter *m
6869

6970
globalPluginRouter.Path("/list/tags").
7071
HandlerFunc(impl.globalPluginRestHandler.GetAllUniqueTags).Methods("GET")
72+
globalPluginRouter.Path("/list/v2/min").
73+
HandlerFunc(impl.globalPluginRestHandler.GetAllPluginMinData).Methods("GET")
7174

7275
}

internal/util/ErrorUtil.go

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ import (
2626
"google.golang.org/grpc/codes"
2727
"google.golang.org/grpc/status"
2828
"net/http"
29+
"strconv"
2930
)
3031

3132
type ApiError struct {
@@ -36,6 +37,14 @@ type ApiError struct {
3637
UserDetailMessage string `json:"userDetailMessage,omitempty"`
3738
}
3839

40+
func GetApiError(code int, userMessage, internalMessage string) *ApiError {
41+
return &ApiError{
42+
HttpStatusCode: code,
43+
Code: strconv.Itoa(code),
44+
InternalMessage: internalMessage,
45+
UserMessage: userMessage,
46+
}
47+
}
3948
func NewApiError() *ApiError {
4049
return &ApiError{}
4150
}

0 commit comments

Comments
 (0)