From ef25496f57de4cb8b3814cfcecc0f598be5c8f12 Mon Sep 17 00:00:00 2001 From: Kripansh Date: Thu, 13 Jul 2023 10:14:29 +0530 Subject: [PATCH 01/15] config approval scripts --- .../casbin/6_config_resource_insert.up.sql | 1 + scripts/sql/157_config_approval.up.sql | 115 ++++++++++++++++++ 2 files changed, 116 insertions(+) create mode 100644 scripts/casbin/6_config_resource_insert.up.sql create mode 100644 scripts/sql/157_config_approval.up.sql diff --git a/scripts/casbin/6_config_resource_insert.up.sql b/scripts/casbin/6_config_resource_insert.up.sql new file mode 100644 index 00000000000..1b40dca04ac --- /dev/null +++ b/scripts/casbin/6_config_resource_insert.up.sql @@ -0,0 +1 @@ +INSERT INTO "public"."casbin_rule" ("p_type", "v0", "v1", "v2", "v3", "v4", "v5") VALUES ('p', 'role:super-admin___', 'config', '*', '*', 'allow', ''); \ No newline at end of file diff --git a/scripts/sql/157_config_approval.up.sql b/scripts/sql/157_config_approval.up.sql new file mode 100644 index 00000000000..d429cae2861 --- /dev/null +++ b/scripts/sql/157_config_approval.up.sql @@ -0,0 +1,115 @@ +INSERT INTO rbac_policy_resource_detail ("resource", "policy_resource_value", "allowed_actions", + "resource_object", "eligible_entity_access_types", "deleted", "created_on", + "created_by", "updated_on", "updated_by") +VALUES ('config', '{ "value": "config", "indexKeyMap": {}}', ARRAY['approve'],'{"value": "%/%/%","indexKeyMap": {"0": "TeamObj","2": "EnvObj","4": "AppObj"}}', ARRAY['apps/devtron-app'],'f','now()', '1', 'now()', '1'); + +CREATE SEQUENCE IF NOT EXISTS id_seq_default_rbac_role_data; + +CREATE TABLE IF NOT EXISTS "public"."default_rbac_role_data" +( + "id" int NOT NULL DEFAULT nextval('id_seq_default_rbac_role_data'::regclass), + "role" varchar(250) NOT NULL, + "default_role_data" jsonb NOT NULL, + "created_on" timestamptz, + "created_by" integer, + "updated_on" timestamptz, + "updated_by" integer, + "enabled" boolean NOT NULL, + PRIMARY KEY ("id") +); + + +INSERT INTO "public"."default_rbac_role_data" ( "role","default_role_data", "created_on", "created_by", "updated_on", "updated_by","enabled") +VALUES ('configApprover', '{ + "roleName" : "configApprover", + "roleDisplayName" : "Config Approver", + "roleDescription": "Can Approve Draft Config", + "updatePoliciesForExistingProvidedRoles" : false, + "entity" : "apps", + "accessType": "devtron-app", + "policyResourceList" : [ + { + "resource": "config", + "actions" : ["approve"] + } + ] + }', 'now()', '1', 'now()', '1', true); + +CREATE SEQUENCE IF NOT EXISTS id_seq_resource_protection; + +CREATE TABLE IF NOT EXISTS "public"."resource_protection" +( + "id" int NOT NULL DEFAULT nextval('id_seq_resource_protection'::regclass), + "app_id" int NOT NULL, + "env_id" int NOT NULL, + resource int NOT NULL, + protection_state int NOT NULL, + "created_on" timestamptz, + "created_by" integer, + "updated_on" timestamptz, + "updated_by" integer, + PRIMARY KEY ("id") +); + +CREATE SEQUENCE IF NOT EXISTS id_seq_resource_protection_history; + +CREATE TABLE IF NOT EXISTS "public"."resource_protection_history" +( + "id" int NOT NULL DEFAULT nextval('id_seq_resource_protection_history'::regclass), + app_id int NOT NULL, + env_id int NOT NULL, + resource int NOT NULL, + protection_state int NOT NULL, + updated_on timestamptz, + updated_by integer, + PRIMARY KEY ("id") +); + +CREATE SEQUENCE IF NOT EXISTS id_seq_draft; + +CREATE TABLE IF NOT EXISTS "public"."draft" +( + id int NOT NULL DEFAULT nextval('id_seq_draft'::regclass), + app_id int NOT NULL, + env_id int NOT NULL, + resource int NOT NULL, + resource_name varchar(300) NOT NULL, + draft_state int, + created_on timestamptz, + created_by integer, + updated_on timestamptz, + updated_by integer, + PRIMARY KEY ("id") +); + +CREATE SEQUENCE IF NOT EXISTS id_seq_draft_version; + +CREATE TABLE IF NOT EXISTS "public"."draft_version" +( + id int NOT NULL DEFAULT nextval('id_seq_draft_version'::regclass), + draft_id int NOT NULL, + data text NOT NULL, + action int NOT NULL, + user_id int NOT NULL, + created_on timestamptz, + CONSTRAINT "drafts_relation_draft_id_fkey" FOREIGN KEY ("draft_id") REFERENCES "public"."draft" ("id"), + PRIMARY KEY ("id") +); + +CREATE SEQUENCE IF NOT EXISTS id_seq_draft_version_comment; + +CREATE TABLE IF NOT EXISTS "public"."draft_version_comment" +( + id int NOT NULL DEFAULT nextval('id_seq_draft_version_comment'::regclass), + draft_id int NOT NULL, + draft_version_id int NOT NULL, + comment text, + active bool NOT NULL, + created_on timestamptz, + created_by integer, + updated_on timestamptz, + updated_by integer, + CONSTRAINT "drafts_relation_draft_id_fkey" FOREIGN KEY ("draft_id") REFERENCES "public"."draft" ("id"), + CONSTRAINT "draft_versions_relation_draft_version_id_fkey" FOREIGN KEY ("draft_version_id") REFERENCES "public"."draft_version" ("id"), + PRIMARY KEY ("id") +); From e0420e168e3ea37d97bc636ba5f0a0edbe66cf81 Mon Sep 17 00:00:00 2001 From: Kripansh Date: Tue, 25 Jul 2023 09:29:35 +0530 Subject: [PATCH 02/15] approver role resource added --- scripts/sql/157_config_approval.up.sql | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/scripts/sql/157_config_approval.up.sql b/scripts/sql/157_config_approval.up.sql index d429cae2861..d22ed6e2491 100644 --- a/scripts/sql/157_config_approval.up.sql +++ b/scripts/sql/157_config_approval.up.sql @@ -3,6 +3,13 @@ INSERT INTO rbac_policy_resource_detail ("resource", "policy_resource_value", "a "created_by", "updated_on", "updated_by") VALUES ('config', '{ "value": "config", "indexKeyMap": {}}', ARRAY['approve'],'{"value": "%/%/%","indexKeyMap": {"0": "TeamObj","2": "EnvObj","4": "AppObj"}}', ARRAY['apps/devtron-app'],'f','now()', '1', 'now()', '1'); + +INSERT INTO rbac_role_resource_detail ("resource", "role_resource_key", "role_resource_update_key", + "eligible_entity_access_types", "deleted", "created_on", "created_by", + "updated_on", "updated_by") +VALUES ('approver', 'Approver', 'Approver', ARRAY ['apps/devtron-app'], false, now(), 1, now(), 1); + + CREATE SEQUENCE IF NOT EXISTS id_seq_default_rbac_role_data; CREATE TABLE IF NOT EXISTS "public"."default_rbac_role_data" @@ -18,7 +25,6 @@ CREATE TABLE IF NOT EXISTS "public"."default_rbac_role_data" PRIMARY KEY ("id") ); - INSERT INTO "public"."default_rbac_role_data" ( "role","default_role_data", "created_on", "created_by", "updated_on", "updated_by","enabled") VALUES ('configApprover', '{ "roleName" : "configApprover", @@ -40,7 +46,7 @@ CREATE SEQUENCE IF NOT EXISTS id_seq_resource_protection; CREATE TABLE IF NOT EXISTS "public"."resource_protection" ( "id" int NOT NULL DEFAULT nextval('id_seq_resource_protection'::regclass), - "app_id" int NOT NULL, + "app_id" int NOT NULL, /* add foreign key constraint */ "env_id" int NOT NULL, resource int NOT NULL, protection_state int NOT NULL, @@ -70,7 +76,7 @@ CREATE SEQUENCE IF NOT EXISTS id_seq_draft; CREATE TABLE IF NOT EXISTS "public"."draft" ( id int NOT NULL DEFAULT nextval('id_seq_draft'::regclass), - app_id int NOT NULL, + app_id int NOT NULL, /* add foreign key constraint */ env_id int NOT NULL, resource int NOT NULL, resource_name varchar(300) NOT NULL, From 45258ccf7eb73338a41c6a4a9d80ecef76a00359 Mon Sep 17 00:00:00 2001 From: Kripansh Date: Fri, 28 Jul 2023 11:46:03 +0530 Subject: [PATCH 03/15] migration version updated --- scripts/sql/162_config_approval.down.sql | 0 .../{157_config_approval.up.sql => 162_config_approval.up.sql} | 0 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 scripts/sql/162_config_approval.down.sql rename scripts/sql/{157_config_approval.up.sql => 162_config_approval.up.sql} (100%) diff --git a/scripts/sql/162_config_approval.down.sql b/scripts/sql/162_config_approval.down.sql new file mode 100644 index 00000000000..e69de29bb2d diff --git a/scripts/sql/157_config_approval.up.sql b/scripts/sql/162_config_approval.up.sql similarity index 100% rename from scripts/sql/157_config_approval.up.sql rename to scripts/sql/162_config_approval.up.sql From b4897330f5aba82a7dd902a0ed9a2be01fcf586d Mon Sep 17 00:00:00 2001 From: Kripansh Date: Tue, 1 Aug 2023 08:13:30 +0530 Subject: [PATCH 04/15] overriden flag introduced --- pkg/pipeline/ConfigMapService.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pkg/pipeline/ConfigMapService.go b/pkg/pipeline/ConfigMapService.go index bc12e35262a..25dc1bbbd77 100644 --- a/pkg/pipeline/ConfigMapService.go +++ b/pkg/pipeline/ConfigMapService.go @@ -128,6 +128,7 @@ type ConfigData struct { RoleARN string `json:"roleARN"` SubPath bool `json:"subPath"` FilePermission string `json:"filePermission"` + Overridden bool `json:"overridden"` } const ( @@ -524,6 +525,7 @@ func (impl ConfigMapServiceImpl) CMEnvironmentFetch(appId int, envId int) (*Conf item.DefaultData = val item.DefaultMountPath = kv11[item.Name] item.Global = true + item.Overridden = true configDataRequest.ConfigData = append(configDataRequest.ConfigData, item) } else { configDataRequest.ConfigData = append(configDataRequest.ConfigData, item) @@ -931,6 +933,7 @@ func (impl ConfigMapServiceImpl) CSEnvironmentFetch(appId int, envId int) (*Conf item.DefaultExternalSecret = kv1External[item.Name] item.DefaultMountPath = kv11[item.Name] item.Global = true + item.Overridden = true item.DefaultESOSecretData = kv1ESOSecret[item.Name] configDataRequest.ConfigData = append(configDataRequest.ConfigData, item) } else { From 695515a48dcf1f09f277d61b38ddeecb25bed043 Mon Sep 17 00:00:00 2001 From: Kripansh Date: Thu, 3 Aug 2023 15:17:24 +0530 Subject: [PATCH 05/15] down script commited --- scripts/casbin/6_config_resource_insert.down.sql | 1 + 1 file changed, 1 insertion(+) create mode 100644 scripts/casbin/6_config_resource_insert.down.sql diff --git a/scripts/casbin/6_config_resource_insert.down.sql b/scripts/casbin/6_config_resource_insert.down.sql new file mode 100644 index 00000000000..b66266560d0 --- /dev/null +++ b/scripts/casbin/6_config_resource_insert.down.sql @@ -0,0 +1 @@ +DELETE FROM "public"."casbin_rule" WHERE ("p_type" = 'p' AND "v0" = 'role:super-admin___' AND "v1" = 'config' AND "v2" = '*' AND "v3" = '*' AND "v4" = 'allow' AND "v5" = ''); \ No newline at end of file From 634b37bbe9cdbf809b421f24b9afe0c8226b64f7 Mon Sep 17 00:00:00 2001 From: Kripansh Date: Mon, 7 Aug 2023 20:07:55 +0530 Subject: [PATCH 06/15] cm fetch for edit --- api/restHandler/ConfigMapRestHandler.go | 80 +++++++++++++++++++++++++ api/router/ConfigMapRouter.go | 6 ++ pkg/pipeline/ConfigMapService.go | 51 ++++++++++++++++ 3 files changed, 137 insertions(+) diff --git a/api/restHandler/ConfigMapRestHandler.go b/api/restHandler/ConfigMapRestHandler.go index 30fafdef3c9..92043e9b0a4 100644 --- a/api/restHandler/ConfigMapRestHandler.go +++ b/api/restHandler/ConfigMapRestHandler.go @@ -39,6 +39,8 @@ type ConfigMapRestHandler interface { CMEnvironmentAddUpdate(w http.ResponseWriter, r *http.Request) CMGlobalFetch(w http.ResponseWriter, r *http.Request) CMEnvironmentFetch(w http.ResponseWriter, r *http.Request) + CMGlobalFetchForEdit(w http.ResponseWriter, r *http.Request) + CMEnvironmentFetchForEdit(w http.ResponseWriter, r *http.Request) CSGlobalAddUpdate(w http.ResponseWriter, r *http.Request) CSEnvironmentAddUpdate(w http.ResponseWriter, r *http.Request) @@ -196,6 +198,84 @@ func (handler ConfigMapRestHandlerImpl) CMGlobalFetch(w http.ResponseWriter, r * common.WriteJsonResp(w, err, res, http.StatusOK) } +func (handler ConfigMapRestHandlerImpl) CMGlobalFetchForEdit(w http.ResponseWriter, r *http.Request) { + userId, err := handler.userAuthService.GetLoggedInUser(r) + if userId == 0 || err != nil { + common.WriteJsonResp(w, err, "Unauthorized User", http.StatusUnauthorized) + return + } + vars := mux.Vars(r) + appId, err := strconv.Atoi(vars["appId"]) + if err != nil { + handler.Logger.Errorw("request err, CMGlobalFetch", "err", err, "appId", appId) + common.WriteJsonResp(w, err, nil, http.StatusBadRequest) + return + } + cmId, err := strconv.Atoi(vars["id"]) + if err != nil { + handler.Logger.Errorw("request err, CMGlobalFetch", "err", err, "cmId", cmId) + common.WriteJsonResp(w, err, nil, http.StatusBadRequest) + return + } + token := r.Header.Get("token") + object := handler.enforcerUtil.GetAppRBACNameByAppId(appId) + if ok := handler.enforcer.Enforce(token, casbin.ResourceApplications, casbin.ActionGet, object); !ok { + common.WriteJsonResp(w, fmt.Errorf("unauthorized user"), "Unauthorized User", http.StatusForbidden) + return + } + + name := vars["name"] + response, err := handler.configMapService.CMGlobalFetchForEdit(name, cmId) + if err != nil { + handler.Logger.Errorw("service err, CMGlobalFetchForEdit", "err", err, "appId", appId) + common.WriteJsonResp(w, err, nil, http.StatusInternalServerError) + return + } + common.WriteJsonResp(w, err, response, http.StatusOK) +} + +func (handler ConfigMapRestHandlerImpl) CMEnvironmentFetchForEdit(w http.ResponseWriter, r *http.Request) { + userId, err := handler.userAuthService.GetLoggedInUser(r) + if userId == 0 || err != nil { + common.WriteJsonResp(w, err, "Unauthorized User", http.StatusUnauthorized) + return + } + vars := mux.Vars(r) + appId, err := strconv.Atoi(vars["appId"]) + if err != nil { + handler.Logger.Errorw("request err, CMGlobalFetch", "err", err, "appId", appId) + common.WriteJsonResp(w, err, nil, http.StatusBadRequest) + return + } + envId, err := strconv.Atoi(vars["envId"]) + if err != nil { + handler.Logger.Errorw("request err, CMGlobalFetch", "err", err, "envId", envId) + common.WriteJsonResp(w, err, nil, http.StatusBadRequest) + return + } + cmId, err := strconv.Atoi(vars["id"]) + if err != nil { + handler.Logger.Errorw("request err, CMGlobalFetch", "err", err, "cmId", cmId) + common.WriteJsonResp(w, err, nil, http.StatusBadRequest) + return + } + token := r.Header.Get("token") + object := handler.enforcerUtil.GetAppRBACNameByAppId(appId) + if ok := handler.enforcer.Enforce(token, casbin.ResourceApplications, casbin.ActionGet, object); !ok { + common.WriteJsonResp(w, fmt.Errorf("unauthorized user"), "Unauthorized User", http.StatusForbidden) + return + } + + name := vars["name"] + response, err := handler.configMapService.CMEnvironmentFetchForEdit(name, cmId, appId, envId) + if err != nil { + handler.Logger.Errorw("service err, CMEnvironmentFetchForEdit", "err", err, "appId", appId, "envId", envId) + common.WriteJsonResp(w, err, nil, http.StatusInternalServerError) + return + } + common.WriteJsonResp(w, err, response, http.StatusOK) +} + func (handler ConfigMapRestHandlerImpl) CMEnvironmentFetch(w http.ResponseWriter, r *http.Request) { userId, err := handler.userAuthService.GetLoggedInUser(r) if userId == 0 || err != nil { diff --git a/api/router/ConfigMapRouter.go b/api/router/ConfigMapRouter.go index 39d4ecfb849..6fd69a2f4b9 100644 --- a/api/router/ConfigMapRouter.go +++ b/api/router/ConfigMapRouter.go @@ -45,6 +45,12 @@ func (router ConfigMapRouterImpl) initConfigMapRouter(configRouter *mux.Router) HandlerFunc(router.restHandler.CMGlobalFetch).Methods("GET") configRouter.Path("/environment/cm/{appId}/{envId}"). HandlerFunc(router.restHandler.CMEnvironmentFetch).Methods("GET") + configRouter.Path("/global/cm/edit/{appId}/{id}"). + Queries("name", "{name}"). + HandlerFunc(router.restHandler.CMGlobalFetchForEdit).Methods("GET") + configRouter.Path("/environment/cm/edit/{appId}/{envId}/{id}"). + Queries("name", "{name}"). + HandlerFunc(router.restHandler.CMEnvironmentFetchForEdit).Methods("GET") configRouter.Path("/global/cs"). HandlerFunc(router.restHandler.CSGlobalAddUpdate).Methods("POST") diff --git a/pkg/pipeline/ConfigMapService.go b/pkg/pipeline/ConfigMapService.go index 25dc1bbbd77..137b8e1896c 100644 --- a/pkg/pipeline/ConfigMapService.go +++ b/pkg/pipeline/ConfigMapService.go @@ -150,6 +150,8 @@ type ConfigMapService interface { CMGlobalFetch(appId int) (*ConfigDataRequest, error) CMEnvironmentAddUpdate(configMapRequest *ConfigDataRequest) (*ConfigDataRequest, error) CMEnvironmentFetch(appId int, envId int) (*ConfigDataRequest, error) + CMGlobalFetchForEdit(name string, id int) (*ConfigDataRequest, error) + CMEnvironmentFetchForEdit(name string, id int, appId int, envId int) (*ConfigDataRequest, error) CSGlobalAddUpdate(configMapRequest *ConfigDataRequest) (*ConfigDataRequest, error) CSGlobalFetch(appId int) (*ConfigDataRequest, error) @@ -457,6 +459,55 @@ func (impl ConfigMapServiceImpl) CMEnvironmentAddUpdate(configMapRequest *Config return configMapRequest, nil } +func (impl ConfigMapServiceImpl) CMGlobalFetchForEdit(name string, id int) (*ConfigDataRequest, error) { + configMapGlobal, err := impl.configMapRepository.GetByIdEnvLevel(id) + if err != nil && pg.ErrNoRows != err { + impl.logger.Errorw("error while fetching from db", "error", err) + return nil, err + } + if pg.ErrNoRows == err { + impl.logger.Debugw("no config map data found for this request", "id", id) + } + + configMapGlobalList := &ConfigsList{} + if len(configMapGlobal.ConfigMapData) > 0 { + err = json.Unmarshal([]byte(configMapGlobal.ConfigMapData), configMapGlobalList) + if err != nil { + impl.logger.Debugw("error while Unmarshal", "error", err) + } + } + configDataRequest := &ConfigDataRequest{} + configDataRequest.Id = configMapGlobal.Id + for _, item := range configMapGlobalList.ConfigData { + if item.Name == name { + item.Global = true + configDataRequest.ConfigData = append(configDataRequest.ConfigData, item) + break + } + } + if configDataRequest.ConfigData == nil { + list := []*ConfigData{} + configDataRequest.ConfigData = list + } + + return configDataRequest, nil +} + +func (impl ConfigMapServiceImpl) CMEnvironmentFetchForEdit(name string, id int, appId int, envId int) (*ConfigDataRequest, error) { + configDataRequest, err := impl.CMEnvironmentFetch(appId, envId) + if err != nil { + return nil, err + } + var configs []*ConfigData + for _, configData := range configDataRequest.ConfigData { + if configData.Name == name { + configs = append(configs, configData) + } + } + configDataRequest.ConfigData = configs + return configDataRequest, nil +} + func (impl ConfigMapServiceImpl) CMEnvironmentFetch(appId int, envId int) (*ConfigDataRequest, error) { configMapGlobal, err := impl.configMapRepository.GetByAppIdAppLevel(appId) if err != nil && pg.ErrNoRows != err { From e999f64796a903230165830c01b0e69727da93b4 Mon Sep 17 00:00:00 2001 From: Kripansh Date: Tue, 8 Aug 2023 08:10:39 +0530 Subject: [PATCH 07/15] app level fetch instead of env level --- pkg/pipeline/ConfigMapService.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/pipeline/ConfigMapService.go b/pkg/pipeline/ConfigMapService.go index 137b8e1896c..1d97034c000 100644 --- a/pkg/pipeline/ConfigMapService.go +++ b/pkg/pipeline/ConfigMapService.go @@ -460,7 +460,7 @@ func (impl ConfigMapServiceImpl) CMEnvironmentAddUpdate(configMapRequest *Config } func (impl ConfigMapServiceImpl) CMGlobalFetchForEdit(name string, id int) (*ConfigDataRequest, error) { - configMapGlobal, err := impl.configMapRepository.GetByIdEnvLevel(id) + configMapGlobal, err := impl.configMapRepository.GetByIdAppLevel(id) if err != nil && pg.ErrNoRows != err { impl.logger.Errorw("error while fetching from db", "error", err) return nil, err From 5158e0ab14fe8c226d549fd97ba10ef734846340 Mon Sep 17 00:00:00 2001 From: Kripansh Date: Tue, 8 Aug 2023 08:53:25 +0530 Subject: [PATCH 08/15] cm bean refactoring --- api/restHandler/ConfigMapRestHandler.go | 15 +- api/restHandler/CoreAppRestHandler.go | 38 +-- pkg/appClone/AppCloneService.go | 31 +- pkg/appClone/batch/DataHolder.go | 25 +- pkg/pipeline/CiCdPipelineOrchestrator.go | 4 +- pkg/pipeline/ConfigMapService.go | 401 +++++++++++------------ pkg/pipeline/bean/ConfigMapBean.go | 88 +++++ 7 files changed, 337 insertions(+), 265 deletions(-) create mode 100644 pkg/pipeline/bean/ConfigMapBean.go diff --git a/api/restHandler/ConfigMapRestHandler.go b/api/restHandler/ConfigMapRestHandler.go index 92043e9b0a4..adf881c1f0e 100644 --- a/api/restHandler/ConfigMapRestHandler.go +++ b/api/restHandler/ConfigMapRestHandler.go @@ -24,6 +24,7 @@ import ( "github.com/devtron-labs/devtron/internal/sql/repository/pipelineConfig" "github.com/devtron-labs/devtron/pkg/chart" "github.com/devtron-labs/devtron/pkg/pipeline" + "github.com/devtron-labs/devtron/pkg/pipeline/bean" "github.com/devtron-labs/devtron/pkg/team" "github.com/devtron-labs/devtron/pkg/user" "github.com/devtron-labs/devtron/pkg/user/casbin" @@ -97,7 +98,7 @@ func (handler ConfigMapRestHandlerImpl) CMGlobalAddUpdate(w http.ResponseWriter, common.WriteJsonResp(w, err, "Unauthorized User", http.StatusUnauthorized) return } - var configMapRequest pipeline.ConfigDataRequest + var configMapRequest bean.ConfigDataRequest err = decoder.Decode(&configMapRequest) if err != nil { @@ -133,7 +134,7 @@ func (handler ConfigMapRestHandlerImpl) CMEnvironmentAddUpdate(w http.ResponseWr common.WriteJsonResp(w, err, "Unauthorized User", http.StatusUnauthorized) return } - var configMapRequest pipeline.ConfigDataRequest + var configMapRequest bean.ConfigDataRequest err = decoder.Decode(&configMapRequest) if err != nil { handler.Logger.Errorw("request err, CMEnvironmentAddUpdate", "err", err, "payload", configMapRequest) @@ -321,7 +322,7 @@ func (handler ConfigMapRestHandlerImpl) CSGlobalAddUpdate(w http.ResponseWriter, common.WriteJsonResp(w, err, "Unauthorized User", http.StatusUnauthorized) return } - var configMapRequest pipeline.ConfigDataRequest + var configMapRequest bean.ConfigDataRequest err = decoder.Decode(&configMapRequest) if err != nil { @@ -357,7 +358,7 @@ func (handler ConfigMapRestHandlerImpl) CSEnvironmentAddUpdate(w http.ResponseWr common.WriteJsonResp(w, err, "Unauthorized User", http.StatusUnauthorized) return } - var configMapRequest pipeline.ConfigDataRequest + var configMapRequest bean.ConfigDataRequest err = decoder.Decode(&configMapRequest) if err != nil { @@ -753,7 +754,7 @@ func (handler ConfigMapRestHandlerImpl) ConfigSecretBulkPatch(w http.ResponseWri } //AUTH - var bulkPatchRequest pipeline.BulkPatchRequest + var bulkPatchRequest bean.BulkPatchRequest err = decoder.Decode(&bulkPatchRequest) if err != nil { handler.Logger.Errorw("request err, ConfigSecretBulkPatch", "err", err, "payload", bulkPatchRequest) @@ -799,7 +800,7 @@ func (handler ConfigMapRestHandlerImpl) AddEnvironmentToJob(w http.ResponseWrite } //AUTH - var envOverrideRequest pipeline.CreateJobEnvOverridePayload + var envOverrideRequest bean.CreateJobEnvOverridePayload err = decoder.Decode(&envOverrideRequest) if err != nil { handler.Logger.Errorw("request err, AddEvironmentToJob", "err", err, "payload", envOverrideRequest) @@ -837,7 +838,7 @@ func (handler ConfigMapRestHandlerImpl) RemoveEnvironmentFromJob(w http.Response } //AUTH - var envOverrideRequest pipeline.CreateJobEnvOverridePayload + var envOverrideRequest bean.CreateJobEnvOverridePayload err = decoder.Decode(&envOverrideRequest) if err != nil { handler.Logger.Errorw("request err, RemoveEnvironmentFromJob", "err", err, "payload", envOverrideRequest) diff --git a/api/restHandler/CoreAppRestHandler.go b/api/restHandler/CoreAppRestHandler.go index 3ee01c06106..fe8a2127ad7 100644 --- a/api/restHandler/CoreAppRestHandler.go +++ b/api/restHandler/CoreAppRestHandler.go @@ -854,7 +854,7 @@ func (handler CoreAppRestHandlerImpl) buildAppEnvironmentConfigMaps(appId int, e } // get/build config maps -func (handler CoreAppRestHandlerImpl) buildAppConfigMaps(appId int, envId int, configMapData *pipeline.ConfigDataRequest) ([]*appBean.ConfigMap, error, int) { +func (handler CoreAppRestHandlerImpl) buildAppConfigMaps(appId int, envId int, configMapData *bean2.ConfigDataRequest) ([]*appBean.ConfigMap, error, int) { handler.logger.Debugw("Getting app detail - config maps", "appId", appId, "envId", envId) var configMapsResp []*appBean.ConfigMap @@ -977,7 +977,7 @@ func (handler CoreAppRestHandlerImpl) buildAppEnvironmentSecrets(appId int, envI } // get/build secrets -func (handler CoreAppRestHandlerImpl) buildAppSecrets(appId int, envId int, secretData *pipeline.ConfigDataRequest) ([]*appBean.Secret, error, int) { +func (handler CoreAppRestHandlerImpl) buildAppSecrets(appId int, envId int, secretData *bean2.ConfigDataRequest) ([]*appBean.Secret, error, int) { handler.logger.Debugw("Getting app detail - secrets", "appId", appId, "envId", envId) var secretsResp []*appBean.Secret @@ -1411,7 +1411,7 @@ func (handler CoreAppRestHandlerImpl) createGlobalConfigMaps(appId int, userId i } // build - configMapData := &pipeline.ConfigData{ + configMapData := &bean2.ConfigData{ Name: configMap.Name, External: configMap.IsExternal, Data: json.RawMessage(configMapKeyValueData), @@ -1425,9 +1425,9 @@ func (handler CoreAppRestHandlerImpl) createGlobalConfigMaps(appId int, userId i } // service call - var configMapDataRequest []*pipeline.ConfigData + var configMapDataRequest []*bean2.ConfigData configMapDataRequest = append(configMapDataRequest, configMapData) - configMapRequest := &pipeline.ConfigDataRequest{ + configMapRequest := &bean2.ConfigDataRequest{ AppId: appId, UserId: userId, Id: appLevelId, @@ -1465,7 +1465,7 @@ func (handler CoreAppRestHandlerImpl) createGlobalSecrets(appId int, userId int3 } // build - secretData := &pipeline.ConfigData{ + secretData := &bean2.ConfigData{ Name: secret.Name, External: secret.IsExternal, Type: secret.UsageType, @@ -1481,9 +1481,9 @@ func (handler CoreAppRestHandlerImpl) createGlobalSecrets(appId int, userId int3 } if secret.IsExternal { - var externalDataRequests []pipeline.ExternalSecret + var externalDataRequests []bean2.ExternalSecret for _, externalData := range secret.ExternalSecretData { - externalDataRequest := pipeline.ExternalSecret{ + externalDataRequest := bean2.ExternalSecret{ Name: externalData.Name, IsBinary: externalData.IsBinary, Key: externalData.Key, @@ -1502,9 +1502,9 @@ func (handler CoreAppRestHandlerImpl) createGlobalSecrets(appId int, userId int3 } // service call - var secretDataRequest []*pipeline.ConfigData + var secretDataRequest []*bean2.ConfigData secretDataRequest = append(secretDataRequest, secretData) - secretRequest := &pipeline.ConfigDataRequest{ + secretRequest := &bean2.ConfigDataRequest{ AppId: appId, UserId: userId, Id: appLevelId, @@ -1895,7 +1895,7 @@ func (handler CoreAppRestHandlerImpl) createEnvCM(appId int, userId int32, envId } // build - configData := &pipeline.ConfigData{ + configData := &bean2.ConfigData{ Name: cmOverride.Name, External: cmOverride.IsExternal, Type: cmOverride.UsageType, @@ -1908,11 +1908,11 @@ func (handler CoreAppRestHandlerImpl) createEnvCM(appId int, userId int32, envId configData.FilePermission = cmOverrideDataVolumeUsageConfig.FilePermission } - var configDataRequest []*pipeline.ConfigData + var configDataRequest []*bean2.ConfigData configDataRequest = append(configDataRequest, configData) // service call - cmEnvRequest := &pipeline.ConfigDataRequest{ + cmEnvRequest := &bean2.ConfigDataRequest{ AppId: appId, UserId: userId, EnvironmentId: envId, @@ -1955,7 +1955,7 @@ func (handler CoreAppRestHandlerImpl) createEnvSecret(appId int, userId int32, e return err } - secretData := &pipeline.ConfigData{ + secretData := &bean2.ConfigData{ Name: secretOverride.Name, External: secretOverride.IsExternal, ExternalSecretType: secretOverride.ExternalType, @@ -1970,11 +1970,11 @@ func (handler CoreAppRestHandlerImpl) createEnvSecret(appId int, userId int32, e secretData.SubPath = secretOverrideDataVolumeUsageConfig.SubPath secretData.FilePermission = secretOverrideDataVolumeUsageConfig.FilePermission } - var secretDataRequest []*pipeline.ConfigData + var secretDataRequest []*bean2.ConfigData secretDataRequest = append(secretDataRequest, secretData) // service call - secretEnvRequest := &pipeline.ConfigDataRequest{ + secretEnvRequest := &bean2.ConfigDataRequest{ AppId: appId, UserId: userId, EnvironmentId: envId, @@ -1995,10 +1995,10 @@ func (handler CoreAppRestHandlerImpl) createEnvSecret(appId int, userId int32, e //private methods for data conversion below -func convertCSExternalSecretData(externalSecretsData []*appBean.ExternalSecret) []pipeline.ExternalSecret { - var convertedExternalSecretsData []pipeline.ExternalSecret +func convertCSExternalSecretData(externalSecretsData []*appBean.ExternalSecret) []bean2.ExternalSecret { + var convertedExternalSecretsData []bean2.ExternalSecret for _, externalSecretData := range externalSecretsData { - convertedExternalSecret := pipeline.ExternalSecret{ + convertedExternalSecret := bean2.ExternalSecret{ Key: externalSecretData.Key, Name: externalSecretData.Name, Property: externalSecretData.Property, diff --git a/pkg/appClone/AppCloneService.go b/pkg/appClone/AppCloneService.go index 67714044976..d5a3401ebf9 100644 --- a/pkg/appClone/AppCloneService.go +++ b/pkg/appClone/AppCloneService.go @@ -32,6 +32,7 @@ import ( "github.com/devtron-labs/devtron/pkg/bean" "github.com/devtron-labs/devtron/pkg/chart" "github.com/devtron-labs/devtron/pkg/pipeline" + bean3 "github.com/devtron-labs/devtron/pkg/pipeline/bean" "github.com/go-pg/pg" "go.uber.org/zap" "strings" @@ -344,7 +345,7 @@ func (impl *AppCloneServiceImpl) CreateAppMetrics(oldAppId, newAppId int, userId } -func (impl *AppCloneServiceImpl) CreateGlobalCM(oldAppId, newAppId int, userId int32) (*pipeline.ConfigDataRequest, error) { +func (impl *AppCloneServiceImpl) CreateGlobalCM(oldAppId, newAppId int, userId int32) (*bean3.ConfigDataRequest, error) { refCM, err := impl.configMapService.CMGlobalFetch(oldAppId) if err != nil { return nil, err @@ -356,10 +357,10 @@ func (impl *AppCloneServiceImpl) CreateGlobalCM(oldAppId, newAppId int, userId i cfgDatas := impl.configDataClone(refCM.ConfigData) for _, cfgData := range cfgDatas { - newCm := &pipeline.ConfigDataRequest{ + newCm := &bean3.ConfigDataRequest{ AppId: newAppId, EnvironmentId: refCM.EnvironmentId, - ConfigData: []*pipeline.ConfigData{cfgData}, + ConfigData: []*bean3.ConfigData{cfgData}, UserId: userId, Id: thisCm.Id, } @@ -388,7 +389,7 @@ func (impl *AppCloneServiceImpl) CreateEnvCm(ctx context.Context, oldAppId, newA return nil, err } - var refEnvCm []*pipeline.ConfigData + var refEnvCm []*bean3.ConfigData for _, refCmData := range refCm.ConfigData { if !refCmData.Global || refCmData.Data != nil { refEnvCm = append(refEnvCm, refCmData) @@ -400,10 +401,10 @@ func (impl *AppCloneServiceImpl) CreateEnvCm(ctx context.Context, oldAppId, newA } cfgDatas := impl.configDataClone(refEnvCm) for _, cfgData := range cfgDatas { - newCm := &pipeline.ConfigDataRequest{ + newCm := &bean3.ConfigDataRequest{ AppId: newAppId, EnvironmentId: refEnv.EnvironmentId, - ConfigData: []*pipeline.ConfigData{cfgData}, + ConfigData: []*bean3.ConfigData{cfgData}, UserId: userId, Id: thisCm.Id, } @@ -432,7 +433,7 @@ func (impl *AppCloneServiceImpl) CreateEnvSecret(ctx context.Context, oldAppId, return nil, err } - var refEnvCm []*pipeline.ConfigData + var refEnvCm []*bean3.ConfigData for _, refCmData := range refCm.ConfigData { if !refCmData.Global || refCmData.Data != nil { refEnvCm = append(refEnvCm, refCmData) @@ -444,9 +445,9 @@ func (impl *AppCloneServiceImpl) CreateEnvSecret(ctx context.Context, oldAppId, } cfgDatas := impl.configDataClone(refEnvCm) for _, cfgData := range cfgDatas { - var configData []*pipeline.ConfigData + var configData []*bean3.ConfigData configData = append(configData, cfgData) - newCm := &pipeline.ConfigDataRequest{ + newCm := &bean3.ConfigDataRequest{ AppId: newAppId, EnvironmentId: refEnv.EnvironmentId, ConfigData: configData, @@ -530,10 +531,10 @@ func (impl *AppCloneServiceImpl) createEnvOverride(oldAppId, newAppId int, userI return nil, nil } -func (impl *AppCloneServiceImpl) configDataClone(cfData []*pipeline.ConfigData) []*pipeline.ConfigData { - var copiedData []*pipeline.ConfigData +func (impl *AppCloneServiceImpl) configDataClone(cfData []*bean3.ConfigData) []*bean3.ConfigData { + var copiedData []*bean3.ConfigData for _, refdata := range cfData { - data := &pipeline.ConfigData{ + data := &bean3.ConfigData{ Name: refdata.Name, Type: refdata.Type, External: refdata.External, @@ -549,7 +550,7 @@ func (impl *AppCloneServiceImpl) configDataClone(cfData []*pipeline.ConfigData) return copiedData } -func (impl *AppCloneServiceImpl) CreateGlobalSecret(oldAppId, newAppId int, userId int32) (*pipeline.ConfigDataRequest, error) { +func (impl *AppCloneServiceImpl) CreateGlobalSecret(oldAppId, newAppId int, userId int32) (*bean3.ConfigDataRequest, error) { refCs, err := impl.configMapService.CSGlobalFetch(oldAppId) if err != nil { @@ -562,9 +563,9 @@ func (impl *AppCloneServiceImpl) CreateGlobalSecret(oldAppId, newAppId int, user cfgDatas := impl.configDataClone(refCs.ConfigData) for _, cfgData := range cfgDatas { - var configData []*pipeline.ConfigData + var configData []*bean3.ConfigData configData = append(configData, cfgData) - newCm := &pipeline.ConfigDataRequest{ + newCm := &bean3.ConfigDataRequest{ AppId: newAppId, EnvironmentId: refCs.EnvironmentId, ConfigData: configData, diff --git a/pkg/appClone/batch/DataHolder.go b/pkg/appClone/batch/DataHolder.go index 0f08ef1a39c..4b216aebbe9 100644 --- a/pkg/appClone/batch/DataHolder.go +++ b/pkg/appClone/batch/DataHolder.go @@ -24,6 +24,7 @@ import ( "github.com/devtron-labs/devtron/pkg/apis/devtron/v1" "github.com/devtron-labs/devtron/pkg/cluster" "github.com/devtron-labs/devtron/pkg/pipeline" + "github.com/devtron-labs/devtron/pkg/pipeline/bean" "github.com/devtron-labs/devtron/util" "go.uber.org/zap" "strings" @@ -93,7 +94,7 @@ func executeDataHolderClone(impl DataHolderActionImpl, holder *v1.DataHolder, da } var envSrc *cluster.EnvironmentBean var envDest *cluster.EnvironmentBean - var configData *pipeline.ConfigDataRequest + var configData *bean.ConfigDataRequest if holder.Source.Environment != nil { if envSrc, err = impl.envService.FindOne(*holder.Source.Environment); err != nil { return err @@ -167,7 +168,7 @@ func executeDataHolderClone(impl DataHolderActionImpl, holder *v1.DataHolder, da return nil } -func updateKeys(dataType string, holder *v1.DataHolder, configData *pipeline.ConfigDataRequest) error { +func updateKeys(dataType string, holder *v1.DataHolder, configData *bean.ConfigDataRequest) error { var name string if dataType == v1.ConfigMap && holder.Destination.ConfigMap != nil { name = *holder.Destination.ConfigMap @@ -225,7 +226,7 @@ func executeDataHolderDelete(impl DataHolderActionImpl, holder *v1.DataHolder, d if strings.ToLower(dataType) == v1.ConfigMap { //TODO: pass userId if len(holder.Data) > 0 { - err = deleteKeys(func() (request *pipeline.ConfigDataRequest, err error) { + err = deleteKeys(func() (request *bean.ConfigDataRequest, err error) { return impl.configMapService.CMEnvironmentFetch(app.Id, env.Id) }, impl.configMapService.CMEnvironmentAddUpdate, holder, dataType) if err != nil { @@ -242,7 +243,7 @@ func executeDataHolderDelete(impl DataHolderActionImpl, holder *v1.DataHolder, d } } else { if len(holder.Data) > 0 { - err = deleteKeys(func() (request *pipeline.ConfigDataRequest, err error) { + err = deleteKeys(func() (request *bean.ConfigDataRequest, err error) { return impl.configMapService.CSEnvironmentFetch(app.Id, env.Id) }, impl.configMapService.CSEnvironmentAddUpdate, holder, dataType) if err != nil { @@ -262,7 +263,7 @@ func executeDataHolderDelete(impl DataHolderActionImpl, holder *v1.DataHolder, d if strings.ToLower(dataType) == v1.ConfigMap { //TODO: pass userId if len(holder.Data) > 0 { - err = deleteKeys(func() (request *pipeline.ConfigDataRequest, err error) { + err = deleteKeys(func() (request *bean.ConfigDataRequest, err error) { return impl.configMapService.CMGlobalFetch(app.Id) }, impl.configMapService.CMGlobalAddUpdate, holder, dataType) if err != nil { @@ -279,7 +280,7 @@ func executeDataHolderDelete(impl DataHolderActionImpl, holder *v1.DataHolder, d } } else { if len(holder.Data) > 0 { - err = deleteKeys(func() (request *pipeline.ConfigDataRequest, err error) { + err = deleteKeys(func() (request *bean.ConfigDataRequest, err error) { return impl.configMapService.CSGlobalFetch(app.Id) }, impl.configMapService.CSGlobalAddUpdate, holder, dataType) if err != nil { @@ -299,7 +300,7 @@ func executeDataHolderDelete(impl DataHolderActionImpl, holder *v1.DataHolder, d return nil } -func deleteKeys(fetch func() (*pipeline.ConfigDataRequest, error), save func(request *pipeline.ConfigDataRequest) (*pipeline.ConfigDataRequest, error), holder *v1.DataHolder, dataType string) error { +func deleteKeys(fetch func() (*bean.ConfigDataRequest, error), save func(request *bean.ConfigDataRequest) (*bean.ConfigDataRequest, error), holder *v1.DataHolder, dataType string) error { configData, err := fetch() if err != nil { return err @@ -319,7 +320,7 @@ func deleteKeys(fetch func() (*pipeline.ConfigDataRequest, error), save func(req return nil } -func deleteDataKeys(dataType string, holder *v1.DataHolder, configData *pipeline.ConfigDataRequest) error { +func deleteDataKeys(dataType string, holder *v1.DataHolder, configData *bean.ConfigDataRequest) error { var name string if dataType == v1.ConfigMap { name = *holder.Destination.ConfigMap @@ -330,7 +331,7 @@ func deleteDataKeys(dataType string, holder *v1.DataHolder, configData *pipeline if len(name) == 0 { return nil } - cda := make([]*pipeline.ConfigData, 0) + cda := make([]*bean.ConfigData, 0) for _, item := range configData.ConfigData { if item.Name == name { d := make(map[string]interface{}, 0) @@ -389,8 +390,8 @@ func executeDataHolderCreate(impl DataHolderActionImpl, holder *v1.DataHolder, d if len(holder.ExternalType) != 0 && !holder.External { external = true } - var configDataArr []*pipeline.ConfigData - configDataArr = append(configDataArr, &pipeline.ConfigData{ + var configDataArr []*bean.ConfigData + configDataArr = append(configDataArr, &bean.ConfigData{ Name: name, Type: holder.Type, External: external, @@ -402,7 +403,7 @@ func executeDataHolderCreate(impl DataHolderActionImpl, holder *v1.DataHolder, d ExternalSecretType: holder.ExternalType, }) //TODO: add User Id - configData := &pipeline.ConfigDataRequest{ + configData := &bean.ConfigDataRequest{ AppId: app.Id, EnvironmentId: envId, ConfigData: configDataArr, diff --git a/pkg/pipeline/CiCdPipelineOrchestrator.go b/pkg/pipeline/CiCdPipelineOrchestrator.go index 856a13d3691..0d83d2a1203 100644 --- a/pkg/pipeline/CiCdPipelineOrchestrator.go +++ b/pkg/pipeline/CiCdPipelineOrchestrator.go @@ -283,7 +283,7 @@ func (impl CiCdPipelineOrchestratorImpl) PatchMaterialValue(createRequest *bean. return nil, err } if createRequest.EnvironmentId != 0 { - createJobEnvOverrideRequest := &CreateJobEnvOverridePayload{ + createJobEnvOverrideRequest := &bean2.CreateJobEnvOverridePayload{ AppId: createRequest.AppId, EnvId: createRequest.EnvironmentId, UserId: userId, @@ -678,7 +678,7 @@ func (impl CiCdPipelineOrchestratorImpl) CreateCiConf(createRequest *bean.CiConf } if ciPipeline.EnvironmentId != 0 && !createRequest.IsCloneJob { - createJobEnvOverrideRequest := &CreateJobEnvOverridePayload{ + createJobEnvOverrideRequest := &bean2.CreateJobEnvOverridePayload{ AppId: createRequest.AppId, EnvId: ciPipeline.EnvironmentId, UserId: createRequest.UserId, diff --git a/pkg/pipeline/ConfigMapService.go b/pkg/pipeline/ConfigMapService.go index 1d97034c000..1caa77bdf18 100644 --- a/pkg/pipeline/ConfigMapService.go +++ b/pkg/pipeline/ConfigMapService.go @@ -27,6 +27,7 @@ import ( chartRepoRepository "github.com/devtron-labs/devtron/pkg/chartRepo/repository" repository2 "github.com/devtron-labs/devtron/pkg/cluster/repository" "github.com/devtron-labs/devtron/pkg/commonService" + "github.com/devtron-labs/devtron/pkg/pipeline/bean" history2 "github.com/devtron-labs/devtron/pkg/pipeline/history" "github.com/devtron-labs/devtron/pkg/pipeline/history/repository" "github.com/devtron-labs/devtron/pkg/sql" @@ -37,99 +38,99 @@ import ( "time" ) -type ConfigMapRequest struct { - Id int `json:"id"` - AppId int `json:"app_id"` - EnvironmentId int `json:"environment_id"` - PipelineId int `json:"pipeline_id"` - ConfigMapData json.RawMessage `json:"config_map_data"` - SecretData json.RawMessage `json:"secret_data"` - UserId int32 `json:"-"` -} - -type ConfigDataRequest struct { - Id int `json:"id"` - AppId int `json:"appId"` - EnvironmentId int `json:"environmentId,omitempty"` - ConfigData []*ConfigData `json:"configData"` - UserId int32 `json:"-"` -} - -type JobEnvOverrideResponse struct { - Id int `json:"id"` - AppId int `json:"appId"` - EnvironmentId int `json:"environmentId,omitempty"` - EnvironmentName string `json:"environmentName,omitempty"` -} - -type BulkPatchRequest struct { - Payload []*BulkPatchPayload `json:"payload"` - Filter *BulkPatchFilter `json:"filter,omitempty"` - ProjectId int `json:"projectId"` - Global bool `json:"global"` - Type string `json:"type"` - Name string `json:"name"` - Key string `json:"key"` - Value string `json:"value"` - PatchAction int `json:"patchAction"` // 1=add, 2=update, 0=delete - UserId int32 `json:"-"` -} - -type BulkPatchPayload struct { - AppId int `json:"appId"` - EnvId int `json:"envId"` -} - -type CreateJobEnvOverridePayload struct { - AppId int `json:"appId"` - EnvId int `json:"envId"` - UserId int32 `json:"-"` -} - -type BulkPatchFilter struct { - AppNameIncludes string `json:"appNameIncludes,omitempty"` - AppNameExcludes string `json:"appNameExcludes,omitempty"` - EnvId int `json:"envId,omitempty"` -} - -type ExternalSecret struct { - Key string `json:"key"` - Name string `json:"name"` - Property string `json:"property,omitempty"` - IsBinary bool `json:"isBinary"` -} - -type ESOSecretData struct { - SecretStore json.RawMessage `json:"secretStore,omitempty"` - SecretStoreRef json.RawMessage `json:"secretStoreRef,omitempty"` - EsoData []ESOData `json:"esoData,omitempty"` - RefreshInterval string `json:"refreshInterval,omitempty"` -} - -type ESOData struct { - SecretKey string `json:"secretKey"` - Key string `json:"key"` - Property string `json:"property,omitempty"` -} -type ConfigData struct { - Name string `json:"name"` - Type string `json:"type"` - External bool `json:"external"` - MountPath string `json:"mountPath,omitempty"` - Data json.RawMessage `json:"data"` - DefaultData json.RawMessage `json:"defaultData,omitempty"` - DefaultMountPath string `json:"defaultMountPath,omitempty"` - Global bool `json:"global"` - ExternalSecretType string `json:"externalType"` - ESOSecretData ESOSecretData `json:"esoSecretData"` - DefaultESOSecretData ESOSecretData `json:"defaultESOSecretData,omitempty"` - ExternalSecret []ExternalSecret `json:"secretData"` - DefaultExternalSecret []ExternalSecret `json:"defaultSecretData,omitempty"` - RoleARN string `json:"roleARN"` - SubPath bool `json:"subPath"` - FilePermission string `json:"filePermission"` - Overridden bool `json:"overridden"` -} +//type ConfigMapRequest struct { +// Id int `json:"id"` +// AppId int `json:"app_id"` +// EnvironmentId int `json:"environment_id"` +// PipelineId int `json:"pipeline_id"` +// ConfigMapData json.RawMessage `json:"config_map_data"` +// SecretData json.RawMessage `json:"secret_data"` +// UserId int32 `json:"-"` +//} +// +//type ConfigDataRequest struct { +// Id int `json:"id"` +// AppId int `json:"appId"` +// EnvironmentId int `json:"environmentId,omitempty"` +// ConfigData []*ConfigData `json:"configData"` +// UserId int32 `json:"-"` +//} +// +//type JobEnvOverrideResponse struct { +// Id int `json:"id"` +// AppId int `json:"appId"` +// EnvironmentId int `json:"environmentId,omitempty"` +// EnvironmentName string `json:"environmentName,omitempty"` +//} +// +//type BulkPatchRequest struct { +// Payload []*BulkPatchPayload `json:"payload"` +// Filter *BulkPatchFilter `json:"filter,omitempty"` +// ProjectId int `json:"projectId"` +// Global bool `json:"global"` +// Type string `json:"type"` +// Name string `json:"name"` +// Key string `json:"key"` +// Value string `json:"value"` +// PatchAction int `json:"patchAction"` // 1=add, 2=update, 0=delete +// UserId int32 `json:"-"` +//} +// +//type BulkPatchPayload struct { +// AppId int `json:"appId"` +// EnvId int `json:"envId"` +//} +// +//type CreateJobEnvOverridePayload struct { +// AppId int `json:"appId"` +// EnvId int `json:"envId"` +// UserId int32 `json:"-"` +//} +// +//type BulkPatchFilter struct { +// AppNameIncludes string `json:"appNameIncludes,omitempty"` +// AppNameExcludes string `json:"appNameExcludes,omitempty"` +// EnvId int `json:"envId,omitempty"` +//} +// +//type ExternalSecret struct { +// Key string `json:"key"` +// Name string `json:"name"` +// Property string `json:"property,omitempty"` +// IsBinary bool `json:"isBinary"` +//} +// +//type ESOSecretData struct { +// SecretStore json.RawMessage `json:"secretStore,omitempty"` +// SecretStoreRef json.RawMessage `json:"secretStoreRef,omitempty"` +// EsoData []ESOData `json:"esoData,omitempty"` +// RefreshInterval string `json:"refreshInterval,omitempty"` +//} +// +//type ESOData struct { +// SecretKey string `json:"secretKey"` +// Key string `json:"key"` +// Property string `json:"property,omitempty"` +//} +//type ConfigData struct { +// Name string `json:"name"` +// Type string `json:"type"` +// External bool `json:"external"` +// MountPath string `json:"mountPath,omitempty"` +// Data json.RawMessage `json:"data"` +// DefaultData json.RawMessage `json:"defaultData,omitempty"` +// DefaultMountPath string `json:"defaultMountPath,omitempty"` +// Global bool `json:"global"` +// ExternalSecretType string `json:"externalType"` +// ESOSecretData ESOSecretData `json:"esoSecretData"` +// DefaultESOSecretData ESOSecretData `json:"defaultESOSecretData,omitempty"` +// ExternalSecret []ExternalSecret `json:"secretData"` +// DefaultExternalSecret []ExternalSecret `json:"defaultSecretData,omitempty"` +// RoleARN string `json:"roleARN"` +// SubPath bool `json:"subPath"` +// FilePermission string `json:"filePermission"` +// Overridden bool `json:"overridden"` +//} const ( KubernetesSecret string = "KubernetesSecret" @@ -139,24 +140,24 @@ const ( ) type ConfigsList struct { - ConfigData []*ConfigData `json:"maps"` + ConfigData []*bean.ConfigData `json:"maps"` } type SecretsList struct { - ConfigData []*ConfigData `json:"secrets"` + ConfigData []*bean.ConfigData `json:"secrets"` } type ConfigMapService interface { - CMGlobalAddUpdate(configMapRequest *ConfigDataRequest) (*ConfigDataRequest, error) - CMGlobalFetch(appId int) (*ConfigDataRequest, error) - CMEnvironmentAddUpdate(configMapRequest *ConfigDataRequest) (*ConfigDataRequest, error) - CMEnvironmentFetch(appId int, envId int) (*ConfigDataRequest, error) - CMGlobalFetchForEdit(name string, id int) (*ConfigDataRequest, error) - CMEnvironmentFetchForEdit(name string, id int, appId int, envId int) (*ConfigDataRequest, error) - - CSGlobalAddUpdate(configMapRequest *ConfigDataRequest) (*ConfigDataRequest, error) - CSGlobalFetch(appId int) (*ConfigDataRequest, error) - CSEnvironmentAddUpdate(configMapRequest *ConfigDataRequest) (*ConfigDataRequest, error) - CSEnvironmentFetch(appId int, envId int) (*ConfigDataRequest, error) + CMGlobalAddUpdate(configMapRequest *bean.ConfigDataRequest) (*bean.ConfigDataRequest, error) + CMGlobalFetch(appId int) (*bean.ConfigDataRequest, error) + CMEnvironmentAddUpdate(configMapRequest *bean.ConfigDataRequest) (*bean.ConfigDataRequest, error) + CMEnvironmentFetch(appId int, envId int) (*bean.ConfigDataRequest, error) + CMGlobalFetchForEdit(name string, id int) (*bean.ConfigDataRequest, error) + CMEnvironmentFetchForEdit(name string, id int, appId int, envId int) (*bean.ConfigDataRequest, error) + + CSGlobalAddUpdate(configMapRequest *bean.ConfigDataRequest) (*bean.ConfigDataRequest, error) + CSGlobalFetch(appId int) (*bean.ConfigDataRequest, error) + CSEnvironmentAddUpdate(configMapRequest *bean.ConfigDataRequest) (*bean.ConfigDataRequest, error) + CSEnvironmentFetch(appId int, envId int) (*bean.ConfigDataRequest, error) CMGlobalDelete(name string, id int, userId int32) (bool, error) CMEnvironmentDelete(name string, id int, userId int32) (bool, error) @@ -168,14 +169,14 @@ type ConfigMapService interface { CSGlobalDeleteByAppId(name string, appId int, userId int32) (bool, error) CSEnvironmentDeleteByAppIdAndEnvId(name string, appId int, envId int, userId int32) (bool, error) - CSGlobalFetchForEdit(name string, id int) (*ConfigDataRequest, error) - CSEnvironmentFetchForEdit(name string, id int, appId int, envId int) (*ConfigDataRequest, error) - ConfigSecretGlobalBulkPatch(bulkPatchRequest *BulkPatchRequest) (*BulkPatchRequest, error) - ConfigSecretEnvironmentBulkPatch(bulkPatchRequest *BulkPatchRequest) (*BulkPatchRequest, error) + CSGlobalFetchForEdit(name string, id int) (*bean.ConfigDataRequest, error) + CSEnvironmentFetchForEdit(name string, id int, appId int, envId int) (*bean.ConfigDataRequest, error) + ConfigSecretGlobalBulkPatch(bulkPatchRequest *bean.BulkPatchRequest) (*bean.BulkPatchRequest, error) + ConfigSecretEnvironmentBulkPatch(bulkPatchRequest *bean.BulkPatchRequest) (*bean.BulkPatchRequest, error) - ConfigSecretEnvironmentCreate(createJobEnvOverrideRequest *CreateJobEnvOverridePayload) (*CreateJobEnvOverridePayload, error) - ConfigSecretEnvironmentDelete(createJobEnvOverrideRequest *CreateJobEnvOverridePayload) (*CreateJobEnvOverridePayload, error) - ConfigSecretEnvironmentGet(appId int) ([]JobEnvOverrideResponse, error) + ConfigSecretEnvironmentCreate(createJobEnvOverrideRequest *bean.CreateJobEnvOverridePayload) (*bean.CreateJobEnvOverridePayload, error) + ConfigSecretEnvironmentDelete(createJobEnvOverrideRequest *bean.CreateJobEnvOverridePayload) (*bean.CreateJobEnvOverridePayload, error) + ConfigSecretEnvironmentGet(appId int) ([]bean.JobEnvOverrideResponse, error) ConfigSecretEnvironmentClone(appId int, cloneAppId int, userId int32) ([]chartConfig.ConfigMapEnvModel, error) } @@ -216,27 +217,7 @@ func NewConfigMapServiceImpl(chartRepository chartRepoRepository.ChartRepository } } -func (impl ConfigMapServiceImpl) adapter(model *chartConfig.ConfigMapAppModel) (*ConfigMapRequest, error) { - configMapRequest := &ConfigMapRequest{ - Id: model.Id, - AppId: model.AppId, - ConfigMapData: []byte(model.ConfigMapData), - SecretData: []byte(model.SecretData), - } - return configMapRequest, nil -} -func (impl ConfigMapServiceImpl) adapterEnv(model *chartConfig.ConfigMapEnvModel) (*ConfigMapRequest, error) { - configMapRequest := &ConfigMapRequest{ - Id: model.Id, - AppId: model.AppId, - EnvironmentId: model.EnvironmentId, - ConfigMapData: []byte(model.ConfigMapData), - SecretData: []byte(model.SecretData), - } - return configMapRequest, nil -} - -func (impl ConfigMapServiceImpl) CMGlobalAddUpdate(configMapRequest *ConfigDataRequest) (*ConfigDataRequest, error) { +func (impl ConfigMapServiceImpl) CMGlobalAddUpdate(configMapRequest *bean.ConfigDataRequest) (*bean.ConfigDataRequest, error) { if len(configMapRequest.ConfigData) != 1 { return nil, fmt.Errorf("invalid request multiple config found for add or update") } @@ -255,7 +236,7 @@ func (impl ConfigMapServiceImpl) CMGlobalAddUpdate(configMapRequest *ConfigDataR } configsList := &ConfigsList{} found := false - var configs []*ConfigData + var configs []*bean.ConfigData if len(model.ConfigMapData) > 0 { err = json.Unmarshal([]byte(model.ConfigMapData), configsList) if err != nil { @@ -328,7 +309,7 @@ func (impl ConfigMapServiceImpl) CMGlobalAddUpdate(configMapRequest *ConfigDataR return configMapRequest, nil } -func (impl ConfigMapServiceImpl) CMGlobalFetch(appId int) (*ConfigDataRequest, error) { +func (impl ConfigMapServiceImpl) CMGlobalFetch(appId int) (*bean.ConfigDataRequest, error) { configMapGlobal, err := impl.configMapRepository.GetByAppIdAppLevel(appId) if err != nil && pg.ErrNoRows != err { impl.logger.Errorw("error while fetching from db", "error", err) @@ -345,7 +326,7 @@ func (impl ConfigMapServiceImpl) CMGlobalFetch(appId int) (*ConfigDataRequest, e impl.logger.Debugw("error while Unmarshal", "error", err) } } - configDataRequest := &ConfigDataRequest{} + configDataRequest := &bean.ConfigDataRequest{} configDataRequest.Id = configMapGlobal.Id configDataRequest.AppId = appId //configDataRequest.ConfigData = configMapGlobalList.ConfigData @@ -354,7 +335,7 @@ func (impl ConfigMapServiceImpl) CMGlobalFetch(appId int) (*ConfigDataRequest, e configDataRequest.ConfigData = append(configDataRequest.ConfigData, item) } if configDataRequest.ConfigData == nil { - list := []*ConfigData{} + list := []*bean.ConfigData{} configDataRequest.ConfigData = list } else { //configDataRequest.ConfigData = configMapGlobalList.ConfigData @@ -363,7 +344,7 @@ func (impl ConfigMapServiceImpl) CMGlobalFetch(appId int) (*ConfigDataRequest, e return configDataRequest, nil } -func (impl ConfigMapServiceImpl) CMEnvironmentAddUpdate(configMapRequest *ConfigDataRequest) (*ConfigDataRequest, error) { +func (impl ConfigMapServiceImpl) CMEnvironmentAddUpdate(configMapRequest *bean.ConfigDataRequest) (*bean.ConfigDataRequest, error) { if len(configMapRequest.ConfigData) != 1 { return nil, fmt.Errorf("invalid request multiple config found for add or update") @@ -387,7 +368,7 @@ func (impl ConfigMapServiceImpl) CMEnvironmentAddUpdate(configMapRequest *Config if err == nil && model.Id > 0 { configsList := &ConfigsList{} found := false - var configs []*ConfigData + var configs []*bean.ConfigData if len(model.ConfigMapData) > 0 { err = json.Unmarshal([]byte(model.ConfigMapData), configsList) if err != nil { @@ -459,7 +440,7 @@ func (impl ConfigMapServiceImpl) CMEnvironmentAddUpdate(configMapRequest *Config return configMapRequest, nil } -func (impl ConfigMapServiceImpl) CMGlobalFetchForEdit(name string, id int) (*ConfigDataRequest, error) { +func (impl ConfigMapServiceImpl) CMGlobalFetchForEdit(name string, id int) (*bean.ConfigDataRequest, error) { configMapGlobal, err := impl.configMapRepository.GetByIdAppLevel(id) if err != nil && pg.ErrNoRows != err { impl.logger.Errorw("error while fetching from db", "error", err) @@ -476,7 +457,7 @@ func (impl ConfigMapServiceImpl) CMGlobalFetchForEdit(name string, id int) (*Con impl.logger.Debugw("error while Unmarshal", "error", err) } } - configDataRequest := &ConfigDataRequest{} + configDataRequest := &bean.ConfigDataRequest{} configDataRequest.Id = configMapGlobal.Id for _, item := range configMapGlobalList.ConfigData { if item.Name == name { @@ -486,19 +467,19 @@ func (impl ConfigMapServiceImpl) CMGlobalFetchForEdit(name string, id int) (*Con } } if configDataRequest.ConfigData == nil { - list := []*ConfigData{} + list := []*bean.ConfigData{} configDataRequest.ConfigData = list } return configDataRequest, nil } -func (impl ConfigMapServiceImpl) CMEnvironmentFetchForEdit(name string, id int, appId int, envId int) (*ConfigDataRequest, error) { +func (impl ConfigMapServiceImpl) CMEnvironmentFetchForEdit(name string, id int, appId int, envId int) (*bean.ConfigDataRequest, error) { configDataRequest, err := impl.CMEnvironmentFetch(appId, envId) if err != nil { return nil, err } - var configs []*ConfigData + var configs []*bean.ConfigData for _, configData := range configDataRequest.ConfigData { if configData.Name == name { configs = append(configs, configData) @@ -508,7 +489,7 @@ func (impl ConfigMapServiceImpl) CMEnvironmentFetchForEdit(name string, id int, return configDataRequest, nil } -func (impl ConfigMapServiceImpl) CMEnvironmentFetch(appId int, envId int) (*ConfigDataRequest, error) { +func (impl ConfigMapServiceImpl) CMEnvironmentFetch(appId int, envId int) (*bean.ConfigDataRequest, error) { configMapGlobal, err := impl.configMapRepository.GetByAppIdAppLevel(appId) if err != nil && pg.ErrNoRows != err { impl.logger.Errorw("error while fetching from db", "error", err) @@ -539,7 +520,7 @@ func (impl ConfigMapServiceImpl) CMEnvironmentFetch(appId int, envId int) (*Conf impl.logger.Debugw("error while Unmarshal", "error", err) } } - configDataRequest := &ConfigDataRequest{} + configDataRequest := &bean.ConfigDataRequest{} configDataRequest.Id = configMapEnvLevel.Id configDataRequest.AppId = appId configDataRequest.EnvironmentId = envId @@ -584,7 +565,7 @@ func (impl ConfigMapServiceImpl) CMEnvironmentFetch(appId int, envId int) (*Conf } if configDataRequest.ConfigData == nil { - list := []*ConfigData{} + list := []*bean.ConfigData{} configDataRequest.ConfigData = list } else { //configDataRequest.ConfigData = configMapGlobalList.ConfigData @@ -595,7 +576,7 @@ func (impl ConfigMapServiceImpl) CMEnvironmentFetch(appId int, envId int) (*Conf // --------------------------------------------------------------------------------------------- -func (impl ConfigMapServiceImpl) CSGlobalAddUpdate(configMapRequest *ConfigDataRequest) (*ConfigDataRequest, error) { +func (impl ConfigMapServiceImpl) CSGlobalAddUpdate(configMapRequest *bean.ConfigDataRequest) (*bean.ConfigDataRequest, error) { if len(configMapRequest.ConfigData) != 1 { return nil, fmt.Errorf("invalid request multiple config found for add or update") } @@ -620,7 +601,7 @@ func (impl ConfigMapServiceImpl) CSGlobalAddUpdate(configMapRequest *ConfigDataR } secretsList := &SecretsList{} found := false - var configs []*ConfigData + var configs []*bean.ConfigData if len(model.SecretData) > 0 { err = json.Unmarshal([]byte(model.SecretData), secretsList) if err != nil { @@ -696,7 +677,7 @@ func (impl ConfigMapServiceImpl) CSGlobalAddUpdate(configMapRequest *ConfigDataR return configMapRequest, nil } -func (impl ConfigMapServiceImpl) CSGlobalFetch(appId int) (*ConfigDataRequest, error) { +func (impl ConfigMapServiceImpl) CSGlobalFetch(appId int) (*bean.ConfigDataRequest, error) { configMapGlobal, err := impl.configMapRepository.GetByAppIdAppLevel(appId) if err != nil && pg.ErrNoRows != err { impl.logger.Errorw("error while fetching from db", "error", err) @@ -713,7 +694,7 @@ func (impl ConfigMapServiceImpl) CSGlobalFetch(appId int) (*ConfigDataRequest, e impl.logger.Warnw("error while Unmarshal", "error", err) } } - configDataRequest := &ConfigDataRequest{} + configDataRequest := &bean.ConfigDataRequest{} configDataRequest.Id = configMapGlobal.Id configDataRequest.AppId = appId //configDataRequest.ConfigData = configMapGlobalList.ConfigData @@ -724,7 +705,7 @@ func (impl ConfigMapServiceImpl) CSGlobalFetch(appId int) (*ConfigDataRequest, e } //removing actual values - var configs []*ConfigData + var configs []*bean.ConfigData for _, item := range configDataRequest.ConfigData { resultMap := make(map[string]string) resultMapFinal := make(map[string]string) @@ -747,22 +728,22 @@ func (impl ConfigMapServiceImpl) CSGlobalFetch(appId int) (*ConfigDataRequest, e item.Data = resultByte } - var externalSecret []ExternalSecret + var externalSecret []bean.ExternalSecret if item.ExternalSecret != nil && len(item.ExternalSecret) > 0 { for _, es := range item.ExternalSecret { - externalSecret = append(externalSecret, ExternalSecret{Key: es.Key, Name: es.Name, Property: es.Property, IsBinary: es.IsBinary}) + externalSecret = append(externalSecret, bean.ExternalSecret{Key: es.Key, Name: es.Name, Property: es.Property, IsBinary: es.IsBinary}) } } item.ExternalSecret = externalSecret - var esoData []ESOData + var esoData []bean.ESOData if len(item.ESOSecretData.EsoData) > 0 { for _, data := range item.ESOSecretData.EsoData { - esoData = append(esoData, ESOData{Key: data.Key, SecretKey: data.SecretKey, Property: data.Property}) + esoData = append(esoData, bean.ESOData{Key: data.Key, SecretKey: data.SecretKey, Property: data.Property}) } } - esoSecretData := ESOSecretData{ + esoSecretData := bean.ESOSecretData{ SecretStore: item.ESOSecretData.SecretStore, SecretStoreRef: item.ESOSecretData.SecretStoreRef, EsoData: esoData, @@ -774,7 +755,7 @@ func (impl ConfigMapServiceImpl) CSGlobalFetch(appId int) (*ConfigDataRequest, e configDataRequest.ConfigData = configs if configDataRequest.ConfigData == nil { - list := []*ConfigData{} + list := []*bean.ConfigData{} configDataRequest.ConfigData = list } else { //configDataRequest.ConfigData = configMapGlobalList.ConfigData @@ -783,7 +764,7 @@ func (impl ConfigMapServiceImpl) CSGlobalFetch(appId int) (*ConfigDataRequest, e return configDataRequest, nil } -func (impl ConfigMapServiceImpl) CSEnvironmentAddUpdate(configMapRequest *ConfigDataRequest) (*ConfigDataRequest, error) { +func (impl ConfigMapServiceImpl) CSEnvironmentAddUpdate(configMapRequest *bean.ConfigDataRequest) (*bean.ConfigDataRequest, error) { if len(configMapRequest.ConfigData) != 1 { return nil, fmt.Errorf("invalid request multiple config found for add or update") } @@ -813,7 +794,7 @@ func (impl ConfigMapServiceImpl) CSEnvironmentAddUpdate(configMapRequest *Config if err == nil && model.Id > 0 { configsList := &SecretsList{} found := false - var configs []*ConfigData + var configs []*bean.ConfigData if len(model.SecretData) > 0 { err = json.Unmarshal([]byte(model.SecretData), configsList) if err != nil { @@ -888,7 +869,7 @@ func (impl ConfigMapServiceImpl) CSEnvironmentAddUpdate(configMapRequest *Config return configMapRequest, nil } -func (impl ConfigMapServiceImpl) CSEnvironmentFetch(appId int, envId int) (*ConfigDataRequest, error) { +func (impl ConfigMapServiceImpl) CSEnvironmentFetch(appId int, envId int) (*bean.ConfigDataRequest, error) { configMapGlobal, err := impl.configMapRepository.GetByAppIdAppLevel(appId) if err != nil && pg.ErrNoRows != err { impl.logger.Errorw("error while fetching from db", "error", err) @@ -920,7 +901,7 @@ func (impl ConfigMapServiceImpl) CSEnvironmentFetch(appId int, envId int) (*Conf impl.logger.Warnw("error while Unmarshal", "error", err) } } - configDataRequest := &ConfigDataRequest{} + configDataRequest := &bean.ConfigDataRequest{} configDataRequest.Id = configMapEnvLevel.Id configDataRequest.AppId = appId configDataRequest.EnvironmentId = envId @@ -931,11 +912,11 @@ func (impl ConfigMapServiceImpl) CSEnvironmentFetch(appId int, envId int) (*Conf kv11 := make(map[string]string) kv2 := make(map[string]json.RawMessage) - kv1External := make(map[string][]ExternalSecret) - kv2External := make(map[string][]ExternalSecret) + kv1External := make(map[string][]bean.ExternalSecret) + kv2External := make(map[string][]bean.ExternalSecret) - kv1ESOSecret := make(map[string]ESOSecretData) - kv2ESOSecret := make(map[string]ESOSecretData) + kv1ESOSecret := make(map[string]bean.ESOSecretData) + kv2ESOSecret := make(map[string]bean.ESOSecretData) for _, item := range configMapGlobalList.ConfigData { kv1[item.Name] = item.Data kv11[item.Name] = item.MountPath @@ -993,7 +974,7 @@ func (impl ConfigMapServiceImpl) CSEnvironmentFetch(appId int, envId int) (*Conf } //removing actual values - var configs []*ConfigData + var configs []*bean.ConfigData for _, item := range configDataRequest.ConfigData { if item.Data != nil { @@ -1021,22 +1002,22 @@ func (impl ConfigMapServiceImpl) CSEnvironmentFetch(appId int, envId int) (*Conf item.Data = resultByte } - var externalSecret []ExternalSecret + var externalSecret []bean.ExternalSecret if item.ExternalSecret != nil && len(item.ExternalSecret) > 0 { for _, es := range item.ExternalSecret { - externalSecret = append(externalSecret, ExternalSecret{Key: es.Key, Name: es.Name, Property: es.Property, IsBinary: es.IsBinary}) + externalSecret = append(externalSecret, bean.ExternalSecret{Key: es.Key, Name: es.Name, Property: es.Property, IsBinary: es.IsBinary}) } } item.ExternalSecret = externalSecret - var esoData []ESOData + var esoData []bean.ESOData if len(item.ESOSecretData.EsoData) > 0 { for _, data := range item.ESOSecretData.EsoData { - esoData = append(esoData, ESOData{Key: data.Key, SecretKey: data.SecretKey, Property: data.Property}) + esoData = append(esoData, bean.ESOData{Key: data.Key, SecretKey: data.SecretKey, Property: data.Property}) } } - esoSecretData := ESOSecretData{ + esoSecretData := bean.ESOSecretData{ SecretStore: item.ESOSecretData.SecretStore, SecretStoreRef: item.ESOSecretData.SecretStoreRef, EsoData: esoData, @@ -1067,10 +1048,10 @@ func (impl ConfigMapServiceImpl) CSEnvironmentFetch(appId int, envId int) (*Conf } if item.DefaultExternalSecret != nil { - var externalSecret []ExternalSecret + var externalSecret []bean.ExternalSecret if item.DefaultExternalSecret != nil && len(item.DefaultExternalSecret) > 0 { for _, es := range item.DefaultExternalSecret { - externalSecret = append(externalSecret, ExternalSecret{Key: es.Key, Name: es.Name, Property: es.Property, IsBinary: es.IsBinary}) + externalSecret = append(externalSecret, bean.ExternalSecret{Key: es.Key, Name: es.Name, Property: es.Property, IsBinary: es.IsBinary}) } } item.DefaultExternalSecret = externalSecret @@ -1080,7 +1061,7 @@ func (impl ConfigMapServiceImpl) CSEnvironmentFetch(appId int, envId int) (*Conf configDataRequest.ConfigData = configs if configDataRequest.ConfigData == nil { - list := []*ConfigData{} + list := []*bean.ConfigData{} configDataRequest.ConfigData = list } else { //configDataRequest.ConfigData = configMapGlobalList.ConfigData @@ -1097,7 +1078,7 @@ func (impl ConfigMapServiceImpl) CMGlobalDelete(name string, id int, userId int3 } configsList := &ConfigsList{} found := false - var configs []*ConfigData + var configs []*bean.ConfigData if len(model.ConfigMapData) > 0 { err = json.Unmarshal([]byte(model.ConfigMapData), configsList) if err != nil { @@ -1149,7 +1130,7 @@ func (impl ConfigMapServiceImpl) CMEnvironmentDelete(name string, id int, userId } configsList := &ConfigsList{} found := false - var configs []*ConfigData + var configs []*bean.ConfigData if len(model.ConfigMapData) > 0 { err = json.Unmarshal([]byte(model.ConfigMapData), configsList) if err != nil { @@ -1200,7 +1181,7 @@ func (impl ConfigMapServiceImpl) CSGlobalDelete(name string, id int, userId int3 } configsList := &SecretsList{} found := false - var configs []*ConfigData + var configs []*bean.ConfigData if len(model.SecretData) > 0 { err = json.Unmarshal([]byte(model.SecretData), configsList) if err != nil { @@ -1252,7 +1233,7 @@ func (impl ConfigMapServiceImpl) CSEnvironmentDelete(name string, id int, userId } configsList := &SecretsList{} found := false - var configs []*ConfigData + var configs []*bean.ConfigData if len(model.SecretData) > 0 { err = json.Unmarshal([]byte(model.SecretData), configsList) if err != nil { @@ -1305,7 +1286,7 @@ func (impl ConfigMapServiceImpl) CMGlobalDeleteByAppId(name string, appId int, u } configsList := &ConfigsList{} found := false - var configs []*ConfigData + var configs []*bean.ConfigData if len(model.ConfigMapData) > 0 { err = json.Unmarshal([]byte(model.ConfigMapData), configsList) if err != nil { @@ -1352,7 +1333,7 @@ func (impl ConfigMapServiceImpl) CMEnvironmentDeleteByAppIdAndEnvId(name string, } configsList := &ConfigsList{} found := false - var configs []*ConfigData + var configs []*bean.ConfigData if len(model.ConfigMapData) > 0 { err = json.Unmarshal([]byte(model.ConfigMapData), configsList) if err != nil { @@ -1398,7 +1379,7 @@ func (impl ConfigMapServiceImpl) CSGlobalDeleteByAppId(name string, appId int, u } configsList := &SecretsList{} found := false - var configs []*ConfigData + var configs []*bean.ConfigData if len(model.SecretData) > 0 { err = json.Unmarshal([]byte(model.SecretData), configsList) if err != nil { @@ -1445,7 +1426,7 @@ func (impl ConfigMapServiceImpl) CSEnvironmentDeleteByAppIdAndEnvId(name string, } configsList := &SecretsList{} found := false - var configs []*ConfigData + var configs []*bean.ConfigData if len(model.SecretData) > 0 { err = json.Unmarshal([]byte(model.SecretData), configsList) if err != nil { @@ -1484,7 +1465,7 @@ func (impl ConfigMapServiceImpl) CSEnvironmentDeleteByAppIdAndEnvId(name string, //// -func (impl ConfigMapServiceImpl) CSGlobalFetchForEdit(name string, id int) (*ConfigDataRequest, error) { +func (impl ConfigMapServiceImpl) CSGlobalFetchForEdit(name string, id int) (*bean.ConfigDataRequest, error) { configMapEnvLevel, err := impl.configMapRepository.GetByIdAppLevel(id) if err != nil { impl.logger.Errorw("error while fetching from db", "error", err) @@ -1492,7 +1473,7 @@ func (impl ConfigMapServiceImpl) CSGlobalFetchForEdit(name string, id int) (*Con } configsList := &SecretsList{} - var configs []*ConfigData + var configs []*bean.ConfigData if len(configMapEnvLevel.SecretData) > 0 { err = json.Unmarshal([]byte(configMapEnvLevel.SecretData), configsList) if err != nil { @@ -1506,17 +1487,17 @@ func (impl ConfigMapServiceImpl) CSGlobalFetchForEdit(name string, id int) (*Con } } - configDataRequest := &ConfigDataRequest{} + configDataRequest := &bean.ConfigDataRequest{} configDataRequest.Id = configMapEnvLevel.Id configDataRequest.AppId = configMapEnvLevel.AppId configDataRequest.ConfigData = configs return configDataRequest, nil } -func (impl ConfigMapServiceImpl) CSEnvironmentFetchForEdit(name string, id int, appId int, envId int) (*ConfigDataRequest, error) { - configDataRequest := &ConfigDataRequest{} +func (impl ConfigMapServiceImpl) CSEnvironmentFetchForEdit(name string, id int, appId int, envId int) (*bean.ConfigDataRequest, error) { + configDataRequest := &bean.ConfigDataRequest{} configsList := &SecretsList{} - var configs []*ConfigData + var configs []*bean.ConfigData if id > 0 { configMapEnvLevel, err := impl.configMapRepository.GetByIdEnvLevel(id) if err != nil { @@ -1566,7 +1547,7 @@ func (impl ConfigMapServiceImpl) CSEnvironmentFetchForEdit(name string, id int, return configDataRequest, nil } -func (impl ConfigMapServiceImpl) validateConfigData(configData *ConfigData) (bool, error) { +func (impl ConfigMapServiceImpl) validateConfigData(configData *bean.ConfigData) (bool, error) { dataMap := make(map[string]string) if configData.Data != nil { err := json.Unmarshal(configData.Data, &dataMap) @@ -1584,7 +1565,7 @@ func (impl ConfigMapServiceImpl) validateConfigData(configData *ConfigData) (boo return true, nil } -func (impl ConfigMapServiceImpl) updateConfigData(configData *ConfigData, syncRequest *BulkPatchRequest) (*ConfigData, error) { +func (impl ConfigMapServiceImpl) updateConfigData(configData *bean.ConfigData, syncRequest *bean.BulkPatchRequest) (*bean.ConfigData, error) { dataMap := make(map[string]string) var updatedData json.RawMessage if configData.Data != nil { @@ -1627,7 +1608,7 @@ func (impl ConfigMapServiceImpl) updateConfigData(configData *ConfigData, syncRe return configData, nil } -func (impl ConfigMapServiceImpl) ConfigSecretGlobalBulkPatch(bulkPatchRequest *BulkPatchRequest) (*BulkPatchRequest, error) { +func (impl ConfigMapServiceImpl) ConfigSecretGlobalBulkPatch(bulkPatchRequest *bean.BulkPatchRequest) (*bean.BulkPatchRequest, error) { _, err := impl.buildBulkPayload(bulkPatchRequest) if err != nil { impl.logger.Errorw("service err, ConfigSecretGlobalBulkPatch", "err", err, "payload", bulkPatchRequest) @@ -1647,7 +1628,7 @@ func (impl ConfigMapServiceImpl) ConfigSecretGlobalBulkPatch(bulkPatchRequest *B } if bulkPatchRequest.Type == "CM" { configsList := &ConfigsList{} - var configs []*ConfigData + var configs []*bean.ConfigData if len(model.ConfigMapData) > 0 { err = json.Unmarshal([]byte(model.ConfigMapData), configsList) if err != nil { @@ -1672,7 +1653,7 @@ func (impl ConfigMapServiceImpl) ConfigSecretGlobalBulkPatch(bulkPatchRequest *B model.ConfigMapData = string(configDataByte) } else if bulkPatchRequest.Type == "CS" { secretsList := &SecretsList{} - var configs []*ConfigData + var configs []*bean.ConfigData if len(model.SecretData) > 0 { err = json.Unmarshal([]byte(model.SecretData), secretsList) if err != nil { @@ -1712,7 +1693,7 @@ func (impl ConfigMapServiceImpl) ConfigSecretGlobalBulkPatch(bulkPatchRequest *B return bulkPatchRequest, nil } -func (impl ConfigMapServiceImpl) ConfigSecretEnvironmentBulkPatch(bulkPatchRequest *BulkPatchRequest) (*BulkPatchRequest, error) { +func (impl ConfigMapServiceImpl) ConfigSecretEnvironmentBulkPatch(bulkPatchRequest *bean.BulkPatchRequest) (*bean.BulkPatchRequest, error) { _, err := impl.buildBulkPayload(bulkPatchRequest) if err != nil { impl.logger.Errorw("service err, ConfigSecretEnvironmentBulkPatch", "err", err, "payload", bulkPatchRequest) @@ -1737,7 +1718,7 @@ func (impl ConfigMapServiceImpl) ConfigSecretEnvironmentBulkPatch(bulkPatchReque } if bulkPatchRequest.Type == "CM" { configsList := &ConfigsList{} - var configs []*ConfigData + var configs []*bean.ConfigData if len(model.ConfigMapData) > 0 { err = json.Unmarshal([]byte(model.ConfigMapData), configsList) if err != nil { @@ -1762,7 +1743,7 @@ func (impl ConfigMapServiceImpl) ConfigSecretEnvironmentBulkPatch(bulkPatchReque model.ConfigMapData = string(configDataByte) } else if bulkPatchRequest.Type == "CS" { secretsList := &SecretsList{} - var configs []*ConfigData + var configs []*bean.ConfigData if len(model.SecretData) > 0 { err = json.Unmarshal([]byte(model.SecretData), secretsList) if err != nil { @@ -1802,7 +1783,7 @@ func (impl ConfigMapServiceImpl) ConfigSecretEnvironmentBulkPatch(bulkPatchReque return bulkPatchRequest, nil } -func (impl ConfigMapServiceImpl) validateExternalSecretChartCompatibility(appId int, envId int, configData *ConfigData) (bool, error) { +func (impl ConfigMapServiceImpl) validateExternalSecretChartCompatibility(appId int, envId int, configData *bean.ConfigData) (bool, error) { if configData.ExternalSecret != nil && len(configData.ExternalSecret) > 0 { for _, es := range configData.ExternalSecret { @@ -1826,8 +1807,8 @@ func (impl ConfigMapServiceImpl) validateExternalSecretChartCompatibility(appId return true, nil } -func (impl ConfigMapServiceImpl) buildBulkPayload(bulkPatchRequest *BulkPatchRequest) (*BulkPatchRequest, error) { - var payload []*BulkPatchPayload +func (impl ConfigMapServiceImpl) buildBulkPayload(bulkPatchRequest *bean.BulkPatchRequest) (*bean.BulkPatchRequest, error) { + var payload []*bean.BulkPatchPayload if bulkPatchRequest.Filter != nil { apps, err := impl.appRepository.FetchAppsByFilterV2(bulkPatchRequest.Filter.AppNameIncludes, bulkPatchRequest.Filter.AppNameExcludes, bulkPatchRequest.Filter.EnvId) if err != nil { @@ -1836,9 +1817,9 @@ func (impl ConfigMapServiceImpl) buildBulkPayload(bulkPatchRequest *BulkPatchReq } for _, item := range apps { if bulkPatchRequest.Global { - payload = append(payload, &BulkPatchPayload{AppId: item.Id}) + payload = append(payload, &bean.BulkPatchPayload{AppId: item.Id}) } else { - payload = append(payload, &BulkPatchPayload{AppId: item.Id, EnvId: bulkPatchRequest.Filter.EnvId}) + payload = append(payload, &bean.BulkPatchPayload{AppId: item.Id, EnvId: bulkPatchRequest.Filter.EnvId}) } } bulkPatchRequest.Payload = payload @@ -1849,16 +1830,16 @@ func (impl ConfigMapServiceImpl) buildBulkPayload(bulkPatchRequest *BulkPatchReq impl.logger.Errorw("service err, buildBulkPayload", "err", err, "payload", bulkPatchRequest) return bulkPatchRequest, err } - var payload []*BulkPatchPayload + var payload []*bean.BulkPatchPayload for _, app := range apps { - payload = append(payload, &BulkPatchPayload{AppId: app.Id}) + payload = append(payload, &bean.BulkPatchPayload{AppId: app.Id}) } bulkPatchRequest.Payload = payload } return bulkPatchRequest, nil } -func (impl ConfigMapServiceImpl) ConfigSecretEnvironmentCreate(createJobEnvOverrideRequest *CreateJobEnvOverridePayload) (*CreateJobEnvOverridePayload, error) { +func (impl ConfigMapServiceImpl) ConfigSecretEnvironmentCreate(createJobEnvOverrideRequest *bean.CreateJobEnvOverridePayload) (*bean.CreateJobEnvOverridePayload, error) { configMap, err := impl.configMapRepository.GetByAppIdAndEnvIdEnvLevel(createJobEnvOverrideRequest.AppId, createJobEnvOverrideRequest.EnvId) if err != nil && err != pg.ErrNoRows { impl.logger.Errorw("error while fetching from db", "error", err) @@ -1899,7 +1880,7 @@ func (impl ConfigMapServiceImpl) ConfigSecretEnvironmentCreate(createJobEnvOverr } -func (impl ConfigMapServiceImpl) ConfigSecretEnvironmentDelete(createJobEnvOverrideRequest *CreateJobEnvOverridePayload) (*CreateJobEnvOverridePayload, error) { +func (impl ConfigMapServiceImpl) ConfigSecretEnvironmentDelete(createJobEnvOverrideRequest *bean.CreateJobEnvOverridePayload) (*bean.CreateJobEnvOverridePayload, error) { configMap, err := impl.configMapRepository.GetByAppIdAndEnvIdEnvLevel(createJobEnvOverrideRequest.AppId, createJobEnvOverrideRequest.EnvId) if pg.ErrNoRows == err { impl.logger.Warnw("Environment override in this environment doesn't exits", "appId", createJobEnvOverrideRequest.AppId, "envId", createJobEnvOverrideRequest.EnvId) @@ -1921,7 +1902,7 @@ func (impl ConfigMapServiceImpl) ConfigSecretEnvironmentDelete(createJobEnvOverr return createJobEnvOverrideRequest, nil } -func (impl ConfigMapServiceImpl) ConfigSecretEnvironmentGet(appId int) ([]JobEnvOverrideResponse, error) { +func (impl ConfigMapServiceImpl) ConfigSecretEnvironmentGet(appId int) ([]bean.JobEnvOverrideResponse, error) { configMap, err := impl.configMapRepository.GetEnvLevelByAppId(appId) if err != nil { impl.logger.Errorw("error while fetching envConfig from db", "error", err) @@ -1931,7 +1912,7 @@ func (impl ConfigMapServiceImpl) ConfigSecretEnvironmentGet(appId int) ([]JobEnv for _, cm := range configMap { envIds = append(envIds, &cm.EnvironmentId) } - var jobEnvOverrideResponse []JobEnvOverrideResponse + var jobEnvOverrideResponse []bean.JobEnvOverrideResponse if len(envIds) == 0 { return jobEnvOverrideResponse, nil @@ -1951,7 +1932,7 @@ func (impl ConfigMapServiceImpl) ConfigSecretEnvironmentGet(appId int) ([]JobEnv } for _, cm := range configMap { - jobEnvOverride := JobEnvOverrideResponse{ + jobEnvOverride := bean.JobEnvOverrideResponse{ EnvironmentId: cm.EnvironmentId, AppId: cm.AppId, Id: cm.Id, diff --git a/pkg/pipeline/bean/ConfigMapBean.go b/pkg/pipeline/bean/ConfigMapBean.go new file mode 100644 index 00000000000..dd56a82e752 --- /dev/null +++ b/pkg/pipeline/bean/ConfigMapBean.go @@ -0,0 +1,88 @@ +package bean + +import "encoding/json" + +type ConfigDataRequest struct { + Id int `json:"id"` + AppId int `json:"appId"` + EnvironmentId int `json:"environmentId,omitempty"` + ConfigData []*ConfigData `json:"configData"` + UserId int32 `json:"-"` +} + +type ESOSecretData struct { + SecretStore json.RawMessage `json:"secretStore,omitempty"` + SecretStoreRef json.RawMessage `json:"secretStoreRef,omitempty"` + EsoData []ESOData `json:"esoData,omitempty"` + RefreshInterval string `json:"refreshInterval,omitempty"` +} + +type ESOData struct { + SecretKey string `json:"secretKey"` + Key string `json:"key"` + Property string `json:"property,omitempty"` +} + +type ConfigData struct { + Name string `json:"name"` + Type string `json:"type"` + External bool `json:"external"` + MountPath string `json:"mountPath,omitempty"` + Data json.RawMessage `json:"data"` + DefaultData json.RawMessage `json:"defaultData,omitempty"` + DefaultMountPath string `json:"defaultMountPath,omitempty"` + Global bool `json:"global"` + ExternalSecretType string `json:"externalType"` + ESOSecretData ESOSecretData `json:"esoSecretData"` + DefaultESOSecretData ESOSecretData `json:"defaultESOSecretData,omitempty"` + ExternalSecret []ExternalSecret `json:"secretData"` + DefaultExternalSecret []ExternalSecret `json:"defaultSecretData,omitempty"` + RoleARN string `json:"roleARN"` + SubPath bool `json:"subPath"` + FilePermission string `json:"filePermission"` + Overridden bool `json:"overridden"` +} + +type ExternalSecret struct { + Key string `json:"key"` + Name string `json:"name"` + Property string `json:"property,omitempty"` + IsBinary bool `json:"isBinary"` +} + +type BulkPatchRequest struct { + Payload []*BulkPatchPayload `json:"payload"` + Filter *BulkPatchFilter `json:"filter,omitempty"` + ProjectId int `json:"projectId"` + Global bool `json:"global"` + Type string `json:"type"` + Name string `json:"name"` + Key string `json:"key"` + Value string `json:"value"` + PatchAction int `json:"patchAction"` // 1=add, 2=update, 0=delete + UserId int32 `json:"-"` +} + +type BulkPatchPayload struct { + AppId int `json:"appId"` + EnvId int `json:"envId"` +} + +type BulkPatchFilter struct { + AppNameIncludes string `json:"appNameIncludes,omitempty"` + AppNameExcludes string `json:"appNameExcludes,omitempty"` + EnvId int `json:"envId,omitempty"` +} + +type JobEnvOverrideResponse struct { + Id int `json:"id"` + AppId int `json:"appId"` + EnvironmentId int `json:"environmentId,omitempty"` + EnvironmentName string `json:"environmentName,omitempty"` +} + +type CreateJobEnvOverridePayload struct { + AppId int `json:"appId"` + EnvId int `json:"envId"` + UserId int32 `json:"-"` +} From 7299e51d8af12e688fb17277ab0a5c6fdb196e58 Mon Sep 17 00:00:00 2001 From: Kripansh Date: Tue, 8 Aug 2023 09:04:37 +0530 Subject: [PATCH 09/15] clean dead code --- pkg/pipeline/ConfigMapService.go | 94 -------------------------------- 1 file changed, 94 deletions(-) diff --git a/pkg/pipeline/ConfigMapService.go b/pkg/pipeline/ConfigMapService.go index 1caa77bdf18..042a81674b6 100644 --- a/pkg/pipeline/ConfigMapService.go +++ b/pkg/pipeline/ConfigMapService.go @@ -38,100 +38,6 @@ import ( "time" ) -//type ConfigMapRequest struct { -// Id int `json:"id"` -// AppId int `json:"app_id"` -// EnvironmentId int `json:"environment_id"` -// PipelineId int `json:"pipeline_id"` -// ConfigMapData json.RawMessage `json:"config_map_data"` -// SecretData json.RawMessage `json:"secret_data"` -// UserId int32 `json:"-"` -//} -// -//type ConfigDataRequest struct { -// Id int `json:"id"` -// AppId int `json:"appId"` -// EnvironmentId int `json:"environmentId,omitempty"` -// ConfigData []*ConfigData `json:"configData"` -// UserId int32 `json:"-"` -//} -// -//type JobEnvOverrideResponse struct { -// Id int `json:"id"` -// AppId int `json:"appId"` -// EnvironmentId int `json:"environmentId,omitempty"` -// EnvironmentName string `json:"environmentName,omitempty"` -//} -// -//type BulkPatchRequest struct { -// Payload []*BulkPatchPayload `json:"payload"` -// Filter *BulkPatchFilter `json:"filter,omitempty"` -// ProjectId int `json:"projectId"` -// Global bool `json:"global"` -// Type string `json:"type"` -// Name string `json:"name"` -// Key string `json:"key"` -// Value string `json:"value"` -// PatchAction int `json:"patchAction"` // 1=add, 2=update, 0=delete -// UserId int32 `json:"-"` -//} -// -//type BulkPatchPayload struct { -// AppId int `json:"appId"` -// EnvId int `json:"envId"` -//} -// -//type CreateJobEnvOverridePayload struct { -// AppId int `json:"appId"` -// EnvId int `json:"envId"` -// UserId int32 `json:"-"` -//} -// -//type BulkPatchFilter struct { -// AppNameIncludes string `json:"appNameIncludes,omitempty"` -// AppNameExcludes string `json:"appNameExcludes,omitempty"` -// EnvId int `json:"envId,omitempty"` -//} -// -//type ExternalSecret struct { -// Key string `json:"key"` -// Name string `json:"name"` -// Property string `json:"property,omitempty"` -// IsBinary bool `json:"isBinary"` -//} -// -//type ESOSecretData struct { -// SecretStore json.RawMessage `json:"secretStore,omitempty"` -// SecretStoreRef json.RawMessage `json:"secretStoreRef,omitempty"` -// EsoData []ESOData `json:"esoData,omitempty"` -// RefreshInterval string `json:"refreshInterval,omitempty"` -//} -// -//type ESOData struct { -// SecretKey string `json:"secretKey"` -// Key string `json:"key"` -// Property string `json:"property,omitempty"` -//} -//type ConfigData struct { -// Name string `json:"name"` -// Type string `json:"type"` -// External bool `json:"external"` -// MountPath string `json:"mountPath,omitempty"` -// Data json.RawMessage `json:"data"` -// DefaultData json.RawMessage `json:"defaultData,omitempty"` -// DefaultMountPath string `json:"defaultMountPath,omitempty"` -// Global bool `json:"global"` -// ExternalSecretType string `json:"externalType"` -// ESOSecretData ESOSecretData `json:"esoSecretData"` -// DefaultESOSecretData ESOSecretData `json:"defaultESOSecretData,omitempty"` -// ExternalSecret []ExternalSecret `json:"secretData"` -// DefaultExternalSecret []ExternalSecret `json:"defaultSecretData,omitempty"` -// RoleARN string `json:"roleARN"` -// SubPath bool `json:"subPath"` -// FilePermission string `json:"filePermission"` -// Overridden bool `json:"overridden"` -//} - const ( KubernetesSecret string = "KubernetesSecret" AWSSecretsManager string = "AWSSecretsManager" From cefdcd8d2f649c75b5568c78f41932864003946b Mon Sep 17 00:00:00 2001 From: Kripansh Date: Tue, 8 Aug 2023 09:17:10 +0530 Subject: [PATCH 10/15] env props bean refactoring --- api/restHandler/CoreAppRestHandler.go | 2 +- .../app/DeploymentPipelineRestHandler.go | 7 +- pkg/appClone/AppCloneService.go | 2 +- pkg/pipeline/PropertiesConfig.go | 72 ++++++------------- pkg/pipeline/bean/EnvironmentProperties.go | 37 ++++++++++ 5 files changed, 64 insertions(+), 56 deletions(-) create mode 100644 pkg/pipeline/bean/EnvironmentProperties.go diff --git a/api/restHandler/CoreAppRestHandler.go b/api/restHandler/CoreAppRestHandler.go index fe8a2127ad7..d2f90dd0661 100644 --- a/api/restHandler/CoreAppRestHandler.go +++ b/api/restHandler/CoreAppRestHandler.go @@ -1787,7 +1787,7 @@ func (handler CoreAppRestHandlerImpl) createEnvDeploymentTemplate(appId int, use return err } chartRefId := deploymentTemplateOverride.ChartRefId - envConfigProperties := &pipeline.EnvironmentProperties{ + envConfigProperties := &bean2.EnvironmentProperties{ IsOverride: true, Active: true, ManualReviewed: true, diff --git a/api/restHandler/app/DeploymentPipelineRestHandler.go b/api/restHandler/app/DeploymentPipelineRestHandler.go index 558a82b2533..4718874861b 100644 --- a/api/restHandler/app/DeploymentPipelineRestHandler.go +++ b/api/restHandler/app/DeploymentPipelineRestHandler.go @@ -15,6 +15,7 @@ import ( "github.com/devtron-labs/devtron/pkg/bean" "github.com/devtron-labs/devtron/pkg/chart" "github.com/devtron-labs/devtron/pkg/pipeline" + bean3 "github.com/devtron-labs/devtron/pkg/pipeline/bean" "github.com/devtron-labs/devtron/pkg/user/casbin" "github.com/go-pg/pg" "github.com/gorilla/mux" @@ -504,7 +505,7 @@ func (handler PipelineConfigRestHandlerImpl) EnvConfigOverrideCreate(w http.Resp return } decoder := json.NewDecoder(r.Body) - var envConfigProperties pipeline.EnvironmentProperties + var envConfigProperties bean3.EnvironmentProperties err = decoder.Decode(&envConfigProperties) if err != nil { handler.Logger.Errorw("request err, EnvConfigOverrideCreate", "err", err, "payload", envConfigProperties) @@ -606,7 +607,7 @@ func (handler PipelineConfigRestHandlerImpl) EnvConfigOverrideUpdate(w http.Resp common.WriteJsonResp(w, err, "Unauthorized User", http.StatusUnauthorized) return } - var envConfigProperties pipeline.EnvironmentProperties + var envConfigProperties bean3.EnvironmentProperties err = decoder.Decode(&envConfigProperties) envConfigProperties.UserId = userId if err != nil { @@ -1978,7 +1979,7 @@ func (handler PipelineConfigRestHandlerImpl) EnvConfigOverrideCreateNamespace(w return } decoder := json.NewDecoder(r.Body) - var envConfigProperties pipeline.EnvironmentProperties + var envConfigProperties bean3.EnvironmentProperties err = decoder.Decode(&envConfigProperties) envConfigProperties.UserId = userId envConfigProperties.EnvironmentId = environmentId diff --git a/pkg/appClone/AppCloneService.go b/pkg/appClone/AppCloneService.go index d5a3401ebf9..aa7aee9aa7f 100644 --- a/pkg/appClone/AppCloneService.go +++ b/pkg/appClone/AppCloneService.go @@ -486,7 +486,7 @@ func (impl *AppCloneServiceImpl) createEnvOverride(oldAppId, newAppId int, userI if err != nil { return nil, err } - envPropertiesReq := &pipeline.EnvironmentProperties{ + envPropertiesReq := &bean3.EnvironmentProperties{ Id: thisEnvProperties.EnvironmentConfig.Id, EnvOverrideValues: refEnvProperties.EnvironmentConfig.EnvOverrideValues, Status: refEnvProperties.EnvironmentConfig.Status, diff --git a/pkg/pipeline/PropertiesConfig.go b/pkg/pipeline/PropertiesConfig.go index e1b522a134c..d7d8ed055ed 100644 --- a/pkg/pipeline/PropertiesConfig.go +++ b/pkg/pipeline/PropertiesConfig.go @@ -20,6 +20,7 @@ package pipeline import ( "encoding/json" "fmt" + "github.com/devtron-labs/devtron/pkg/pipeline/bean" "time" chartService "github.com/devtron-labs/devtron/pkg/chart" @@ -38,49 +39,18 @@ import ( "go.uber.org/zap" ) -type EnvironmentProperties struct { - Id int `json:"id"` - EnvOverrideValues json.RawMessage `json:"envOverrideValues"` - Status models.ChartStatus `json:"status" validate:"number,required"` //default new, when its ready for deployment CHARTSTATUS_SUCCESS - ManualReviewed bool `json:"manualReviewed" validate:"required"` - Active bool `json:"active" validate:"required"` - Namespace string `json:"namespace" validate:"name-space-component,required"` - EnvironmentId int `json:"environmentId"` - EnvironmentName string `json:"environmentName"` - Latest bool `json:"latest"` - UserId int32 `json:"-"` - AppMetrics *bool `json:"isAppMetricsEnabled"` - ChartRefId int `json:"chartRefId,omitempty" validate:"number"` - IsOverride bool `sql:"isOverride"` - IsBasicViewLocked bool `json:"isBasicViewLocked"` - CurrentViewEditor models.ChartsViewEditorType `json:"currentViewEditor"` //default "UNDEFINED" in db - Description string `json:"description" validate:"max=40"` -} - -type EnvironmentPropertiesResponse struct { - EnvironmentConfig EnvironmentProperties `json:"environmentConfig"` - GlobalConfig json.RawMessage `json:"globalConfig"` - AppMetrics *bool `json:"appMetrics"` - IsOverride bool `sql:"is_override"` - GlobalChartRefId int `json:"globalChartRefId,omitempty" validate:"number"` - ChartRefId int `json:"chartRefId,omitempty" validate:"number"` - Namespace string `json:"namespace" validate:"name-space-component"` - Schema json.RawMessage `json:"schema"` - Readme string `json:"readme"` -} - type PropertiesConfigService interface { - CreateEnvironmentProperties(appId int, propertiesRequest *EnvironmentProperties) (*EnvironmentProperties, error) - UpdateEnvironmentProperties(appId int, propertiesRequest *EnvironmentProperties, userId int32) (*EnvironmentProperties, error) + CreateEnvironmentProperties(appId int, propertiesRequest *bean.EnvironmentProperties) (*bean.EnvironmentProperties, error) + UpdateEnvironmentProperties(appId int, propertiesRequest *bean.EnvironmentProperties, userId int32) (*bean.EnvironmentProperties, error) //create environment entry for each new environment CreateIfRequired(chart *chartRepoRepository.Chart, environmentId int, userId int32, manualReviewed bool, chartStatus models.ChartStatus, isOverride, isAppMetricsEnabled bool, namespace string, IsBasicViewLocked bool, CurrentViewEditor models.ChartsViewEditorType, tx *pg.Tx) (*chartConfig.EnvConfigOverride, error) - GetEnvironmentProperties(appId, environmentId int, chartRefId int) (environmentPropertiesResponse *EnvironmentPropertiesResponse, err error) - GetEnvironmentPropertiesById(environmentId int) ([]EnvironmentProperties, error) + GetEnvironmentProperties(appId, environmentId int, chartRefId int) (environmentPropertiesResponse *bean.EnvironmentPropertiesResponse, err error) + GetEnvironmentPropertiesById(environmentId int) ([]bean.EnvironmentProperties, error) GetAppIdByChartEnvId(chartEnvId int) (*chartConfig.EnvConfigOverride, error) - GetLatestEnvironmentProperties(appId, environmentId int) (*EnvironmentProperties, error) + GetLatestEnvironmentProperties(appId, environmentId int) (*bean.EnvironmentProperties, error) ResetEnvironmentProperties(id int) (bool, error) - CreateEnvironmentPropertiesWithNamespace(appId int, propertiesRequest *EnvironmentProperties) (*EnvironmentProperties, error) + CreateEnvironmentPropertiesWithNamespace(appId int, propertiesRequest *bean.EnvironmentProperties) (*bean.EnvironmentProperties, error) EnvMetricsEnableDisable(appMetricRequest *chartService.AppMetricEnableDisableRequest) (*chartService.AppMetricEnableDisableRequest, error) } @@ -125,8 +95,8 @@ func NewPropertiesConfigServiceImpl(logger *zap.SugaredLogger, } -func (impl PropertiesConfigServiceImpl) GetEnvironmentProperties(appId, environmentId int, chartRefId int) (environmentPropertiesResponse *EnvironmentPropertiesResponse, err error) { - environmentPropertiesResponse = &EnvironmentPropertiesResponse{} +func (impl PropertiesConfigServiceImpl) GetEnvironmentProperties(appId, environmentId int, chartRefId int) (environmentPropertiesResponse *bean.EnvironmentPropertiesResponse, err error) { + environmentPropertiesResponse = &bean.EnvironmentPropertiesResponse{} env, err := impl.environmentRepository.FindById(environmentId) if err != nil { return nil, err @@ -140,7 +110,7 @@ func (impl PropertiesConfigServiceImpl) GetEnvironmentProperties(appId, environm if err != nil { return nil, err } - environmentProperties := &EnvironmentProperties{} + environmentProperties := &bean.EnvironmentProperties{} if envOverride.Id > 0 { r := json.RawMessage{} if envOverride.IsOverride { @@ -155,7 +125,7 @@ func (impl PropertiesConfigServiceImpl) GetEnvironmentProperties(appId, environm return nil, err } } - environmentProperties = &EnvironmentProperties{ + environmentProperties = &bean.EnvironmentProperties{ //Id: envOverride.Id, Status: envOverride.Status, EnvOverrideValues: r, @@ -237,7 +207,7 @@ func (impl PropertiesConfigServiceImpl) GetEnvironmentProperties(appId, environm return environmentPropertiesResponse, nil } -func (impl PropertiesConfigServiceImpl) CreateEnvironmentProperties(appId int, environmentProperties *EnvironmentProperties) (*EnvironmentProperties, error) { +func (impl PropertiesConfigServiceImpl) CreateEnvironmentProperties(appId int, environmentProperties *bean.EnvironmentProperties) (*bean.EnvironmentProperties, error) { chart, err := impl.chartRepo.FindChartByAppIdAndRefId(appId, environmentProperties.ChartRefId) if err != nil && pg.ErrNoRows != err { return nil, err @@ -265,7 +235,7 @@ func (impl PropertiesConfigServiceImpl) CreateEnvironmentProperties(appId int, e if err != nil { return nil, err } - environmentProperties = &EnvironmentProperties{ + environmentProperties = &bean.EnvironmentProperties{ Id: envOverride.Id, Status: envOverride.Status, EnvOverrideValues: r, @@ -307,7 +277,7 @@ func (impl PropertiesConfigServiceImpl) CreateEnvironmentProperties(appId int, e return environmentProperties, nil } -func (impl PropertiesConfigServiceImpl) UpdateEnvironmentProperties(appId int, propertiesRequest *EnvironmentProperties, userId int32) (*EnvironmentProperties, error) { +func (impl PropertiesConfigServiceImpl) UpdateEnvironmentProperties(appId int, propertiesRequest *bean.EnvironmentProperties, userId int32) (*bean.EnvironmentProperties, error) { //check if exists oldEnvOverride, err := impl.envConfigRepo.Get(propertiesRequest.Id) if err != nil { @@ -497,9 +467,9 @@ func (impl PropertiesConfigServiceImpl) CreateIfRequired(chart *chartRepoReposit return envOverride, nil } -func (impl PropertiesConfigServiceImpl) GetEnvironmentPropertiesById(envId int) ([]EnvironmentProperties, error) { +func (impl PropertiesConfigServiceImpl) GetEnvironmentPropertiesById(envId int) ([]bean.EnvironmentProperties, error) { - var envProperties []EnvironmentProperties + var envProperties []bean.EnvironmentProperties envOverrides, err := impl.envConfigRepo.GetByEnvironment(envId) if err != nil { impl.logger.Error("error fetching override config", "err", err) @@ -507,7 +477,7 @@ func (impl PropertiesConfigServiceImpl) GetEnvironmentPropertiesById(envId int) } for _, envOverride := range envOverrides { - envProperties = append(envProperties, EnvironmentProperties{ + envProperties = append(envProperties, bean.EnvironmentProperties{ Id: envOverride.Id, Status: envOverride.Status, ManualReviewed: envOverride.ManualReviewed, @@ -530,7 +500,7 @@ func (impl PropertiesConfigServiceImpl) GetAppIdByChartEnvId(chartEnvId int) (*c return envOverride, nil } -func (impl PropertiesConfigServiceImpl) GetLatestEnvironmentProperties(appId, environmentId int) (environmentProperties *EnvironmentProperties, err error) { +func (impl PropertiesConfigServiceImpl) GetLatestEnvironmentProperties(appId, environmentId int) (environmentProperties *bean.EnvironmentProperties, err error) { env, err := impl.environmentRepository.FindById(environmentId) if err != nil { return nil, err @@ -551,7 +521,7 @@ func (impl PropertiesConfigServiceImpl) GetLatestEnvironmentProperties(appId, en return nil, err } - environmentProperties = &EnvironmentProperties{ + environmentProperties = &bean.EnvironmentProperties{ Id: envOverride.Id, Status: envOverride.Status, EnvOverrideValues: r, @@ -596,7 +566,7 @@ func (impl PropertiesConfigServiceImpl) ResetEnvironmentProperties(id int) (bool return true, nil } -func (impl PropertiesConfigServiceImpl) CreateEnvironmentPropertiesWithNamespace(appId int, environmentProperties *EnvironmentProperties) (*EnvironmentProperties, error) { +func (impl PropertiesConfigServiceImpl) CreateEnvironmentPropertiesWithNamespace(appId int, environmentProperties *bean.EnvironmentProperties) (*bean.EnvironmentProperties, error) { chart, err := impl.chartRepo.FindChartByAppIdAndRefId(appId, environmentProperties.ChartRefId) if err != nil && pg.ErrNoRows != err { return nil, err @@ -643,7 +613,7 @@ func (impl PropertiesConfigServiceImpl) CreateEnvironmentPropertiesWithNamespace if err != nil { return nil, err } - environmentProperties = &EnvironmentProperties{ + environmentProperties = &bean.EnvironmentProperties{ Id: envOverride.Id, Status: envOverride.Status, EnvOverrideValues: r, diff --git a/pkg/pipeline/bean/EnvironmentProperties.go b/pkg/pipeline/bean/EnvironmentProperties.go new file mode 100644 index 00000000000..a29077afc9f --- /dev/null +++ b/pkg/pipeline/bean/EnvironmentProperties.go @@ -0,0 +1,37 @@ +package bean + +import ( + "encoding/json" + "github.com/devtron-labs/devtron/internal/sql/models" +) + +type EnvironmentProperties struct { + Id int `json:"id"` + EnvOverrideValues json.RawMessage `json:"envOverrideValues"` + Status models.ChartStatus `json:"status" validate:"number,required"` //default new, when its ready for deployment CHARTSTATUS_SUCCESS + ManualReviewed bool `json:"manualReviewed" validate:"required"` + Active bool `json:"active" validate:"required"` + Namespace string `json:"namespace"` + EnvironmentId int `json:"environmentId"` + EnvironmentName string `json:"environmentName"` + Latest bool `json:"latest"` + UserId int32 `json:"-"` + AppMetrics *bool `json:"isAppMetricsEnabled"` + ChartRefId int `json:"chartRefId,omitempty" validate:"number"` + IsOverride bool `sql:"isOverride"` + IsBasicViewLocked bool `json:"isBasicViewLocked"` + CurrentViewEditor models.ChartsViewEditorType `json:"currentViewEditor"` //default "UNDEFINED" in db + Description string `json:"description" validate:"max=40"` +} + +type EnvironmentPropertiesResponse struct { + EnvironmentConfig EnvironmentProperties `json:"environmentConfig"` + GlobalConfig json.RawMessage `json:"globalConfig"` + AppMetrics *bool `json:"appMetrics"` + IsOverride bool `sql:"is_override"` + GlobalChartRefId int `json:"globalChartRefId,omitempty" validate:"number"` + ChartRefId int `json:"chartRefId,omitempty" validate:"number"` + Namespace string `json:"namespace" validate:"name-space-component"` + Schema json.RawMessage `json:"schema"` + Readme string `json:"readme"` +} From efd10e286758b8542edafc67c1b7de0b53b3f320 Mon Sep 17 00:00:00 2001 From: Kripansh Date: Tue, 8 Aug 2023 09:21:26 +0530 Subject: [PATCH 11/15] refactoring --- pkg/chart/ChartService.go | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/pkg/chart/ChartService.go b/pkg/chart/ChartService.go index d85e1d8304e..3e854189bcf 100644 --- a/pkg/chart/ChartService.go +++ b/pkg/chart/ChartService.go @@ -130,8 +130,8 @@ type ChartService interface { GetAppOverrideForDefaultTemplate(chartRefId int) (map[string]interface{}, error) UpdateAppOverride(ctx context.Context, templateRequest *TemplateRequest) (*TemplateRequest, error) IsReadyToTrigger(appId int, envId int, pipelineId int) (IsReady, error) - ChartRefAutocomplete() ([]chartRef, error) - ChartRefAutocompleteForAppOrEnv(appId int, envId int) (*chartRefResponse, error) + ChartRefAutocomplete() ([]ChartRef, error) + ChartRefAutocompleteForAppOrEnv(appId int, envId int) (*ChartRefResponse, error) FindPreviousChartByAppId(appId int) (chartTemplate *TemplateRequest, err error) UpgradeForApp(appId int, chartRefId int, newAppOverride map[string]interface{}, userId int32, ctx context.Context) (bool, error) AppMetricsEnableDisable(appMetricRequest AppMetricEnableDisableRequest) (*AppMetricEnableDisableRequest, error) @@ -959,7 +959,7 @@ func (impl ChartServiceImpl) IsReadyToTrigger(appId int, envId int, pipelineId i return isReady, nil } -type chartRef struct { +type ChartRef struct { Id int `json:"id"` Version string `json:"version"` Name string `json:"name"` @@ -972,8 +972,8 @@ type ChartRefMetaData struct { ChartDescription string `json:"chartDescription"` } -type chartRefResponse struct { - ChartRefs []chartRef `json:"chartRefs"` +type ChartRefResponse struct { + ChartRefs []ChartRef `json:"chartRefs"` LatestChartRef int `json:"latestChartRef"` LatestAppChartRef int `json:"latestAppChartRef"` LatestEnvChartRef int `json:"latestEnvChartRef,omitempty"` @@ -1001,8 +1001,8 @@ type ChartDto struct { Version string `json:"version"` } -func (impl ChartServiceImpl) ChartRefAutocomplete() ([]chartRef, error) { - var chartRefs []chartRef +func (impl ChartServiceImpl) ChartRefAutocomplete() ([]ChartRef, error) { + var chartRefs []ChartRef results, err := impl.chartRefRepository.GetAll() if err != nil { impl.logger.Errorw("error in fetching chart config", "err", err) @@ -1010,7 +1010,7 @@ func (impl ChartServiceImpl) ChartRefAutocomplete() ([]chartRef, error) { } for _, result := range results { - chartRefs = append(chartRefs, chartRef{ + chartRefs = append(chartRefs, ChartRef{ Id: result.Id, Version: result.Version, Description: result.ChartDescription, @@ -1022,11 +1022,11 @@ func (impl ChartServiceImpl) ChartRefAutocomplete() ([]chartRef, error) { return chartRefs, nil } -func (impl ChartServiceImpl) ChartRefAutocompleteForAppOrEnv(appId int, envId int) (*chartRefResponse, error) { - chartRefResponse := &chartRefResponse{ +func (impl ChartServiceImpl) ChartRefAutocompleteForAppOrEnv(appId int, envId int) (*ChartRefResponse, error) { + chartRefResponse := &ChartRefResponse{ ChartsMetadata: make(map[string]ChartRefMetaData), } - var chartRefs []chartRef + var chartRefs []ChartRef results, err := impl.chartRefRepository.GetAll() if err != nil { @@ -1050,7 +1050,7 @@ func (impl ChartServiceImpl) ChartRefAutocompleteForAppOrEnv(appId int, envId in if len(result.Name) == 0 { result.Name = "Rollout Deployment" } - chartRefs = append(chartRefs, chartRef{ + chartRefs = append(chartRefs, ChartRef{ Id: result.Id, Version: result.Version, Name: result.Name, From 03c4ebd06fbf25660fd421cfaaab84a33e42d219 Mon Sep 17 00:00:00 2001 From: Kripansh Date: Wed, 9 Aug 2023 19:11:14 +0530 Subject: [PATCH 12/15] script version updated --- ...{162_config_approval.down.sql => 164_config_approval.down.sql} | 0 .../{162_config_approval.up.sql => 164_config_approval.up.sql} | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename scripts/sql/{162_config_approval.down.sql => 164_config_approval.down.sql} (100%) rename scripts/sql/{162_config_approval.up.sql => 164_config_approval.up.sql} (100%) diff --git a/scripts/sql/162_config_approval.down.sql b/scripts/sql/164_config_approval.down.sql similarity index 100% rename from scripts/sql/162_config_approval.down.sql rename to scripts/sql/164_config_approval.down.sql diff --git a/scripts/sql/162_config_approval.up.sql b/scripts/sql/164_config_approval.up.sql similarity index 100% rename from scripts/sql/162_config_approval.up.sql rename to scripts/sql/164_config_approval.up.sql From d9b6977a173a376c1055bf899670867f5e0eeec8 Mon Sep 17 00:00:00 2001 From: Kripansh Date: Mon, 14 Aug 2023 21:20:00 +0530 Subject: [PATCH 13/15] config approval down sql --- scripts/sql/164_config_approval.down.sql | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/scripts/sql/164_config_approval.down.sql b/scripts/sql/164_config_approval.down.sql index e69de29bb2d..9981398d6a8 100644 --- a/scripts/sql/164_config_approval.down.sql +++ b/scripts/sql/164_config_approval.down.sql @@ -0,0 +1,18 @@ +DROP TABLE IF EXISTS public.default_rbac_role_data; +DROP TABLE IF EXISTS public.resource_protection; +DROP TABLE IF EXISTS public.resource_protection_history; +DROP TABLE IF EXISTS public.draft; +DROP TABLE IF EXISTS public.draft_version; +DROP TABLE IF EXISTS public.draft_version_comment; + +---- DROP sequence +DROP SEQUENCE IF EXISTS public.id_seq_default_rbac_role_data; +DROP SEQUENCE IF EXISTS public.id_seq_resource_protection; +DROP SEQUENCE IF EXISTS public.id_seq_resource_protection_history; +DROP SEQUENCE IF EXISTS public.id_seq_draft; +DROP SEQUENCE IF EXISTS public.id_seq_draft_version; +DROP SEQUENCE IF EXISTS public.id_seq_draft_version_comment; + +DELETE from rbac_policy_resource_detail where resource = 'config'; +DELETE from rbac_role_resource_detail where resource = 'approver'; +DELETE from default_rbac_role_data where role = 'configApprover'; \ No newline at end of file From 0f1df371227751fd166c64b5b736fa43c4c696bd Mon Sep 17 00:00:00 2001 From: Kripansh Date: Tue, 15 Aug 2023 22:17:12 +0530 Subject: [PATCH 14/15] table deletion order fix --- scripts/sql/164_config_approval.down.sql | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/sql/164_config_approval.down.sql b/scripts/sql/164_config_approval.down.sql index 9981398d6a8..8836d5551aa 100644 --- a/scripts/sql/164_config_approval.down.sql +++ b/scripts/sql/164_config_approval.down.sql @@ -1,9 +1,9 @@ DROP TABLE IF EXISTS public.default_rbac_role_data; DROP TABLE IF EXISTS public.resource_protection; DROP TABLE IF EXISTS public.resource_protection_history; -DROP TABLE IF EXISTS public.draft; -DROP TABLE IF EXISTS public.draft_version; DROP TABLE IF EXISTS public.draft_version_comment; +DROP TABLE IF EXISTS public.draft_version; +DROP TABLE IF EXISTS public.draft; ---- DROP sequence DROP SEQUENCE IF EXISTS public.id_seq_default_rbac_role_data; From cc03702b681d855418c509413b59fcd3553b14f4 Mon Sep 17 00:00:00 2001 From: Kripansh Date: Sun, 20 Aug 2023 09:36:05 +0530 Subject: [PATCH 15/15] script number update --- ...4_config_approval.down.sql => 165_config_approval.down.sql} | 3 +-- .../{164_config_approval.up.sql => 165_config_approval.up.sql} | 0 2 files changed, 1 insertion(+), 2 deletions(-) rename scripts/sql/{164_config_approval.down.sql => 165_config_approval.down.sql} (92%) rename scripts/sql/{164_config_approval.up.sql => 165_config_approval.up.sql} (100%) diff --git a/scripts/sql/164_config_approval.down.sql b/scripts/sql/165_config_approval.down.sql similarity index 92% rename from scripts/sql/164_config_approval.down.sql rename to scripts/sql/165_config_approval.down.sql index 8836d5551aa..02538839756 100644 --- a/scripts/sql/164_config_approval.down.sql +++ b/scripts/sql/165_config_approval.down.sql @@ -14,5 +14,4 @@ DROP SEQUENCE IF EXISTS public.id_seq_draft_version; DROP SEQUENCE IF EXISTS public.id_seq_draft_version_comment; DELETE from rbac_policy_resource_detail where resource = 'config'; -DELETE from rbac_role_resource_detail where resource = 'approver'; -DELETE from default_rbac_role_data where role = 'configApprover'; \ No newline at end of file +DELETE from rbac_role_resource_detail where resource = 'approver'; \ No newline at end of file diff --git a/scripts/sql/164_config_approval.up.sql b/scripts/sql/165_config_approval.up.sql similarity index 100% rename from scripts/sql/164_config_approval.up.sql rename to scripts/sql/165_config_approval.up.sql