Skip to content

Commit c721d54

Browse files
chore: refactoring image scanning and resource scanning (#6177)
* refactoring * bulk update rest handler repo import removed * removed unused import * policy governance * renaming * renaming * fix --------- Co-authored-by: Shivam-nagar23 <[email protected]>
1 parent c5e8ffd commit c721d54

33 files changed

+486
-286
lines changed

Wire.go

Lines changed: 3 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,6 @@ import (
104104
repository8 "github.com/devtron-labs/devtron/internal/sql/repository/imageTagging"
105105
"github.com/devtron-labs/devtron/internal/sql/repository/pipelineConfig"
106106
resourceGroup "github.com/devtron-labs/devtron/internal/sql/repository/resourceGroup"
107-
security2 "github.com/devtron-labs/devtron/internal/sql/repository/security"
108107
"github.com/devtron-labs/devtron/internal/util"
109108
"github.com/devtron-labs/devtron/pkg/app"
110109
"github.com/devtron-labs/devtron/pkg/app/dbMigration"
@@ -156,9 +155,9 @@ import (
156155
"github.com/devtron-labs/devtron/pkg/pipeline/types"
157156
"github.com/devtron-labs/devtron/pkg/plugin"
158157
repository6 "github.com/devtron-labs/devtron/pkg/plugin/repository"
158+
"github.com/devtron-labs/devtron/pkg/policyGovernance"
159159
resourceGroup2 "github.com/devtron-labs/devtron/pkg/resourceGroup"
160160
"github.com/devtron-labs/devtron/pkg/resourceQualifiers"
161-
"github.com/devtron-labs/devtron/pkg/security"
162161
"github.com/devtron-labs/devtron/pkg/sql"
163162
util3 "github.com/devtron-labs/devtron/pkg/util"
164163
"github.com/devtron-labs/devtron/pkg/variables"
@@ -211,6 +210,8 @@ func InitializeApp() (*App, error) {
211210
workflow3.WorkflowWireSet,
212211
imageTagging.WireSet,
213212
devtronResource.DevtronResourceWireSet,
213+
policyGovernance.PolicyGovernanceWireSet,
214+
214215
// -------wireset end ----------
215216
// -------
216217
gitSensor.GetConfig,
@@ -630,30 +631,10 @@ func InitializeApp() (*App, error) {
630631
wire.Bind(new(router.ImageScanRouter), new(*router.ImageScanRouterImpl)),
631632
restHandler.NewImageScanRestHandlerImpl,
632633
wire.Bind(new(restHandler.ImageScanRestHandler), new(*restHandler.ImageScanRestHandlerImpl)),
633-
security.NewImageScanServiceImpl,
634-
wire.Bind(new(security.ImageScanService), new(*security.ImageScanServiceImpl)),
635-
security2.NewImageScanHistoryRepositoryImpl,
636-
wire.Bind(new(security2.ImageScanHistoryRepository), new(*security2.ImageScanHistoryRepositoryImpl)),
637-
security2.NewImageScanResultRepositoryImpl,
638-
wire.Bind(new(security2.ImageScanResultRepository), new(*security2.ImageScanResultRepositoryImpl)),
639-
security2.NewImageScanObjectMetaRepositoryImpl,
640-
wire.Bind(new(security2.ImageScanObjectMetaRepository), new(*security2.ImageScanObjectMetaRepositoryImpl)),
641-
security2.NewCveStoreRepositoryImpl,
642-
wire.Bind(new(security2.CveStoreRepository), new(*security2.CveStoreRepositoryImpl)),
643-
security2.NewImageScanDeployInfoRepositoryImpl,
644-
wire.Bind(new(security2.ImageScanDeployInfoRepository), new(*security2.ImageScanDeployInfoRepositoryImpl)),
645-
security2.NewScanToolMetadataRepositoryImpl,
646-
wire.Bind(new(security2.ScanToolMetadataRepository), new(*security2.ScanToolMetadataRepositoryImpl)),
647634
router.NewPolicyRouterImpl,
648635
wire.Bind(new(router.PolicyRouter), new(*router.PolicyRouterImpl)),
649636
restHandler.NewPolicyRestHandlerImpl,
650637
wire.Bind(new(restHandler.PolicyRestHandler), new(*restHandler.PolicyRestHandlerImpl)),
651-
security.NewPolicyServiceImpl,
652-
wire.Bind(new(security.PolicyService), new(*security.PolicyServiceImpl)),
653-
security2.NewPolicyRepositoryImpl,
654-
wire.Bind(new(security2.CvePolicyRepository), new(*security2.CvePolicyRepositoryImpl)),
655-
security2.NewScanToolExecutionHistoryMappingRepositoryImpl,
656-
wire.Bind(new(security2.ScanToolExecutionHistoryMappingRepository), new(*security2.ScanToolExecutionHistoryMappingRepositoryImpl)),
657638

658639
argocdServer.NewArgoK8sClientImpl,
659640
wire.Bind(new(argocdServer.ArgoK8sClient), new(*argocdServer.ArgoK8sClientImpl)),

api/restHandler/BulkUpdateRestHandler.go

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -32,15 +32,13 @@ import (
3232
"github.com/devtron-labs/devtron/client/gitSensor"
3333
"github.com/devtron-labs/devtron/internal/sql/repository/helper"
3434
"github.com/devtron-labs/devtron/internal/sql/repository/pipelineConfig"
35-
"github.com/devtron-labs/devtron/internal/sql/repository/security"
3635
"github.com/devtron-labs/devtron/pkg/appClone"
3736
"github.com/devtron-labs/devtron/pkg/appWorkflow"
3837
"github.com/devtron-labs/devtron/pkg/auth/authorisation/casbin"
3938
"github.com/devtron-labs/devtron/pkg/auth/user"
4039
"github.com/devtron-labs/devtron/pkg/bulkAction"
4140
"github.com/devtron-labs/devtron/pkg/chart"
4241
"github.com/devtron-labs/devtron/pkg/pipeline"
43-
security2 "github.com/devtron-labs/devtron/pkg/security"
4442
"github.com/devtron-labs/devtron/pkg/team"
4543
"github.com/devtron-labs/devtron/util/argo"
4644
"github.com/devtron-labs/devtron/util/rbac"
@@ -84,8 +82,6 @@ type BulkUpdateRestHandlerImpl struct {
8482
cdHandelr pipeline.CdHandler
8583
appCloneService appClone.AppCloneService
8684
materialRepository repository.MaterialRepository
87-
policyService security2.PolicyService
88-
scanResultRepository security.ImageScanResultRepository
8985
argoUserService argo.ArgoUserService
9086
}
9187

@@ -106,8 +102,7 @@ func NewBulkUpdateRestHandlerImpl(pipelineBuilder pipeline.PipelineBuilder, logg
106102
cdHandelr pipeline.CdHandler,
107103
appCloneService appClone.AppCloneService,
108104
appWorkflowService appWorkflow.AppWorkflowService,
109-
materialRepository repository.MaterialRepository, policyService security2.PolicyService,
110-
scanResultRepository security.ImageScanResultRepository,
105+
materialRepository repository.MaterialRepository,
111106
argoUserService argo.ArgoUserService) *BulkUpdateRestHandlerImpl {
112107
return &BulkUpdateRestHandlerImpl{
113108
pipelineBuilder: pipelineBuilder,
@@ -132,8 +127,6 @@ func NewBulkUpdateRestHandlerImpl(pipelineBuilder pipeline.PipelineBuilder, logg
132127
appCloneService: appCloneService,
133128
appWorkflowService: appWorkflowService,
134129
materialRepository: materialRepository,
135-
policyService: policyService,
136-
scanResultRepository: scanResultRepository,
137130
argoUserService: argoUserService,
138131
}
139132
}

api/restHandler/ImageScanRestHandler.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,16 +20,16 @@ import (
2020
"encoding/json"
2121
"fmt"
2222
"github.com/devtron-labs/devtron/pkg/cluster/environment"
23-
securityBean "github.com/devtron-labs/devtron/pkg/security/bean"
23+
"github.com/devtron-labs/devtron/pkg/policyGovernance/security/imageScanning"
24+
securityBean "github.com/devtron-labs/devtron/pkg/policyGovernance/security/imageScanning/bean"
25+
security2 "github.com/devtron-labs/devtron/pkg/policyGovernance/security/imageScanning/repository"
2426
"net/http"
2527
"strconv"
2628

2729
"github.com/devtron-labs/devtron/api/restHandler/common"
28-
security2 "github.com/devtron-labs/devtron/internal/sql/repository/security"
2930
"github.com/devtron-labs/devtron/internal/util"
3031
"github.com/devtron-labs/devtron/pkg/auth/authorisation/casbin"
3132
"github.com/devtron-labs/devtron/pkg/auth/user"
32-
"github.com/devtron-labs/devtron/pkg/security"
3333
"github.com/devtron-labs/devtron/util/rbac"
3434
"go.uber.org/zap"
3535
)
@@ -49,15 +49,15 @@ type ImageScanRestHandler interface {
4949

5050
type ImageScanRestHandlerImpl struct {
5151
logger *zap.SugaredLogger
52-
imageScanService security.ImageScanService
52+
imageScanService imageScanning.ImageScanService
5353
userService user.UserService
5454
enforcer casbin.Enforcer
5555
enforcerUtil rbac.EnforcerUtil
5656
environmentService environment.EnvironmentService
5757
}
5858

5959
func NewImageScanRestHandlerImpl(logger *zap.SugaredLogger,
60-
imageScanService security.ImageScanService, userService user.UserService, enforcer casbin.Enforcer,
60+
imageScanService imageScanning.ImageScanService, userService user.UserService, enforcer casbin.Enforcer,
6161
enforcerUtil rbac.EnforcerUtil, environmentService environment.EnvironmentService) *ImageScanRestHandlerImpl {
6262
return &ImageScanRestHandlerImpl{
6363
logger: logger,

api/restHandler/PolicyRestHandler.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,16 +20,16 @@ import (
2020
"encoding/json"
2121
"errors"
2222
"fmt"
23-
securityBean "github.com/devtron-labs/devtron/internal/sql/repository/security/bean"
2423
"github.com/devtron-labs/devtron/pkg/cluster/environment"
24+
"github.com/devtron-labs/devtron/pkg/policyGovernance/security/imageScanning"
25+
securityBean "github.com/devtron-labs/devtron/pkg/policyGovernance/security/imageScanning/repository/bean"
2526
"net/http"
2627
"strconv"
2728

2829
"github.com/devtron-labs/devtron/api/bean"
2930
"github.com/devtron-labs/devtron/api/restHandler/common"
3031
"github.com/devtron-labs/devtron/pkg/auth/authorisation/casbin"
3132
user2 "github.com/devtron-labs/devtron/pkg/auth/user"
32-
"github.com/devtron-labs/devtron/pkg/security"
3333
"github.com/devtron-labs/devtron/util/rbac"
3434
"go.uber.org/zap"
3535
)
@@ -42,7 +42,7 @@ type PolicyRestHandler interface {
4242
}
4343
type PolicyRestHandlerImpl struct {
4444
logger *zap.SugaredLogger
45-
policyService security.PolicyService
45+
policyService imageScanning.PolicyService
4646
userService user2.UserService
4747
userAuthService user2.UserAuthService
4848
enforcer casbin.Enforcer
@@ -51,7 +51,7 @@ type PolicyRestHandlerImpl struct {
5151
}
5252

5353
func NewPolicyRestHandlerImpl(logger *zap.SugaredLogger,
54-
policyService security.PolicyService,
54+
policyService imageScanning.PolicyService,
5555
userService user2.UserService, userAuthService user2.UserAuthService,
5656
enforcer casbin.Enforcer,
5757
enforcerUtil rbac.EnforcerUtil, environmentService environment.EnvironmentService) *PolicyRestHandlerImpl {
@@ -302,7 +302,7 @@ func (impl PolicyRestHandlerImpl) GetPolicy(w http.ResponseWriter, r *http.Reque
302302
func (impl PolicyRestHandlerImpl) VerifyImage(w http.ResponseWriter, r *http.Request) {
303303
decoder := json.NewDecoder(r.Body)
304304

305-
var req security.VerifyImageRequest
305+
var req imageScanning.VerifyImageRequest
306306

307307
err := decoder.Decode(&req)
308308
if err != nil {

api/restHandler/app/pipeline/configure/DeploymentPipelineRestHandler.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import (
2323
"fmt"
2424
devtronAppGitOpConfigBean "github.com/devtron-labs/devtron/pkg/chart/gitOpsConfig/bean"
2525
chartRefBean "github.com/devtron-labs/devtron/pkg/deployment/manifest/deploymentTemplate/chartRef/bean"
26+
"github.com/devtron-labs/devtron/pkg/policyGovernance/security/imageScanning/repository"
2627
"io"
2728
"net/http"
2829
"strconv"
@@ -33,7 +34,6 @@ import (
3334
"github.com/devtron-labs/devtron/api/restHandler/common"
3435
"github.com/devtron-labs/devtron/internal/sql/repository/helper"
3536
"github.com/devtron-labs/devtron/internal/sql/repository/pipelineConfig"
36-
"github.com/devtron-labs/devtron/internal/sql/repository/security"
3737
"github.com/devtron-labs/devtron/internal/util"
3838
"github.com/devtron-labs/devtron/pkg/auth/authorisation/casbin"
3939
"github.com/devtron-labs/devtron/pkg/bean"
@@ -1390,14 +1390,14 @@ func (handler *PipelineConfigRestHandlerImpl) GetArtifactsByCDPipeline(w http.Re
13901390
}
13911391

13921392
// get image scan results from DB for given digests
1393-
imageScanResults, err := handler.scanResultRepository.FindByImageDigests(digests)
1393+
imageScanResults, err := handler.imageScanResultReadService.FindByImageDigests(digests)
13941394
// ignore error
13951395
if err != nil && err != pg.ErrNoRows {
13961396
handler.Logger.Errorw("service err, FindByImageDigests", "err", err, "cdPipelineId", cdPipelineId, "stage", stage, "digests", digests)
13971397
}
13981398

13991399
// build digest vs cve-stores
1400-
digestVsCveStores := make(map[string][]*security.CveStore)
1400+
digestVsCveStores := make(map[string][]*repository.CveStore)
14011401
for _, result := range imageScanResults {
14021402
imageHash := result.ImageScanExecutionHistory.ImageHash
14031403

@@ -1406,7 +1406,7 @@ func (handler *PipelineConfigRestHandlerImpl) GetArtifactsByCDPipeline(w http.Re
14061406

14071407
// configuring size as len of ImageScanExecutionResult assuming all the
14081408
//scan results could belong to a single hash
1409-
cveStores := make([]*security.CveStore, 0, len(imageScanResults))
1409+
cveStores := make([]*repository.CveStore, 0, len(imageScanResults))
14101410
cveStores = append(cveStores, &result.CveStore)
14111411
digestVsCveStores[imageHash] = cveStores
14121412

api/restHandler/app/pipeline/configure/PipelineConfigRestHandler.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@ import (
3030
"github.com/devtron-labs/devtron/pkg/deployment/manifest/deployedAppMetrics"
3131
"github.com/devtron-labs/devtron/pkg/deployment/manifest/deploymentTemplate"
3232
"github.com/devtron-labs/devtron/pkg/deployment/manifest/deploymentTemplate/chartRef"
33+
security2 "github.com/devtron-labs/devtron/pkg/policyGovernance/security/imageScanning"
34+
"github.com/devtron-labs/devtron/pkg/policyGovernance/security/imageScanning/read"
3335
"io"
3436
"net/http"
3537
"strconv"
@@ -50,13 +52,11 @@ import (
5052

5153
"github.com/devtron-labs/devtron/internal/sql/repository"
5254
"github.com/devtron-labs/devtron/internal/sql/repository/pipelineConfig"
53-
"github.com/devtron-labs/devtron/internal/sql/repository/security"
5455
"github.com/devtron-labs/devtron/internal/util"
5556
"github.com/devtron-labs/devtron/pkg/appClone"
5657
"github.com/devtron-labs/devtron/pkg/appWorkflow"
5758
"github.com/devtron-labs/devtron/pkg/bean"
5859
"github.com/devtron-labs/devtron/pkg/pipeline"
59-
security2 "github.com/devtron-labs/devtron/pkg/security"
6060
"github.com/devtron-labs/devtron/pkg/team"
6161
util2 "github.com/devtron-labs/devtron/util"
6262
"github.com/devtron-labs/devtron/util/rbac"
@@ -123,7 +123,7 @@ type PipelineConfigRestHandlerImpl struct {
123123
appCloneService appClone.AppCloneService
124124
gitMaterialReadService read2.GitMaterialReadService
125125
policyService security2.PolicyService
126-
scanResultRepository security.ImageScanResultRepository
126+
imageScanResultReadService read.ImageScanResultReadService
127127
gitProviderReadService gitProviderRead.GitProviderReadService
128128
argoUserService argo.ArgoUserService
129129
imageTaggingReadService imageTaggingRead.ImageTaggingReadService
@@ -156,7 +156,7 @@ func NewPipelineRestHandlerImpl(pipelineBuilder pipeline.PipelineBuilder, Logger
156156
deploymentTemplateService generateManifest.DeploymentTemplateService,
157157
appWorkflowService appWorkflow.AppWorkflowService,
158158
gitMaterialReadService read2.GitMaterialReadService, policyService security2.PolicyService,
159-
scanResultRepository security.ImageScanResultRepository,
159+
imageScanResultReadService read.ImageScanResultReadService,
160160
argoUserService argo.ArgoUserService, ciPipelineMaterialRepository pipelineConfig.CiPipelineMaterialRepository,
161161
imageTaggingReadService imageTaggingRead.ImageTaggingReadService,
162162
imageTaggingService imageTagging.ImageTaggingService,
@@ -192,7 +192,7 @@ func NewPipelineRestHandlerImpl(pipelineBuilder pipeline.PipelineBuilder, Logger
192192
appWorkflowService: appWorkflowService,
193193
gitMaterialReadService: gitMaterialReadService,
194194
policyService: policyService,
195-
scanResultRepository: scanResultRepository,
195+
imageScanResultReadService: imageScanResultReadService,
196196
argoUserService: argoUserService,
197197
ciPipelineMaterialRepository: ciPipelineMaterialRepository,
198198
imageTaggingReadService: imageTaggingReadService,

cmd/external-app/wire.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,6 @@ import (
6161
"github.com/devtron-labs/devtron/internal/sql/repository/deploymentConfig"
6262
dockerRegistryRepository "github.com/devtron-labs/devtron/internal/sql/repository/dockerRegistry"
6363
"github.com/devtron-labs/devtron/internal/sql/repository/pipelineConfig"
64-
security2 "github.com/devtron-labs/devtron/internal/sql/repository/security"
6564
"github.com/devtron-labs/devtron/internal/util"
6665
"github.com/devtron-labs/devtron/pkg/app"
6766
"github.com/devtron-labs/devtron/pkg/app/dbMigration"
@@ -78,6 +77,8 @@ import (
7877
"github.com/devtron-labs/devtron/pkg/kubernetesResourceAuditLogs"
7978
repository2 "github.com/devtron-labs/devtron/pkg/kubernetesResourceAuditLogs/repository"
8079
"github.com/devtron-labs/devtron/pkg/pipeline"
80+
"github.com/devtron-labs/devtron/pkg/policyGovernance/security/imageScanning"
81+
security2 "github.com/devtron-labs/devtron/pkg/policyGovernance/security/imageScanning/repository"
8182
"github.com/devtron-labs/devtron/pkg/sql"
8283
util2 "github.com/devtron-labs/devtron/pkg/util"
8384
util3 "github.com/devtron-labs/devtron/util"
@@ -218,6 +219,9 @@ func InitializeApp() (*App, error) {
218219
kubernetesResourceAuditLogs.Newk8sResourceHistoryServiceImpl,
219220
wire.Bind(new(kubernetesResourceAuditLogs.K8sResourceHistoryService), new(*kubernetesResourceAuditLogs.K8sResourceHistoryServiceImpl)),
220221

222+
imageScanning.NewScanToolMetadataServiceImpl,
223+
wire.Bind(new(imageScanning.ScanToolMetadataService), new(*imageScanning.ScanToolMetadataServiceImpl)),
224+
221225
security2.NewScanToolMetadataRepositoryImpl,
222226
wire.Bind(new(security2.ScanToolMetadataRepository), new(*security2.ScanToolMetadataRepositoryImpl)),
223227

cmd/external-app/wire_gen.go

Lines changed: 7 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)