Skip to content

Commit b22b1cd

Browse files
avoid passing boolean flag around when it is not necessary since there is a feature flag cache
1 parent c612e55 commit b22b1cd

File tree

3 files changed

+17
-16
lines changed

3 files changed

+17
-16
lines changed

internal/commands/scan.go

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -913,7 +913,7 @@ func setupScanTypeProjectAndConfig(
913913
featureFlagsWrapper wrappers.FeatureFlagsWrapper,
914914
jwtWrapper wrappers.JWTWrapper,
915915
) error {
916-
userAllowedEngines, scsLicensingV2, _ := jwtWrapper.GetAllowedEngines(featureFlagsWrapper)
916+
userAllowedEngines, _ := jwtWrapper.GetAllowedEngines(featureFlagsWrapper)
917917
var info map[string]interface{}
918918
newProjectName, _ := cmd.Flags().GetString(commonParams.ProjectName)
919919

@@ -990,7 +990,8 @@ func setupScanTypeProjectAndConfig(
990990
configArr = append(configArr, containersConfig)
991991
}
992992

993-
var SCSConfig, scsErr = addSCSScan(cmd, resubmitConfig, scsLicensingV2, userAllowedEngines[commonParams.RepositoryHealthType],
993+
scsLicensingV2Flag, _ := wrappers.GetSpecificFeatureFlag(featureFlagsWrapper, wrappers.ScsLicensingV2Enabled)
994+
var SCSConfig, scsErr = addSCSScan(cmd, resubmitConfig, scsLicensingV2Flag.Status, userAllowedEngines[commonParams.RepositoryHealthType],
994995
userAllowedEngines[commonParams.SecretDetectionType], userAllowedEngines[commonParams.EnterpriseSecretsType])
995996
if scsErr != nil {
996997
return scsErr
@@ -1413,7 +1414,9 @@ func isScsSecretDetectionAllowed(scsLicensingV2, hasSecretDetectionLicense, hasE
14131414
func validateScanTypes(cmd *cobra.Command, jwtWrapper wrappers.JWTWrapper, featureFlagsWrapper wrappers.FeatureFlagsWrapper) error {
14141415
var scanTypes []string
14151416

1416-
allowedEngines, scsLicensingV2Enabled, err := jwtWrapper.GetAllowedEngines(featureFlagsWrapper)
1417+
scsLicensingV2Flag, _ := wrappers.GetSpecificFeatureFlag(featureFlagsWrapper, wrappers.ScsLicensingV2Enabled)
1418+
1419+
allowedEngines, err := jwtWrapper.GetAllowedEngines(featureFlagsWrapper)
14171420

14181421
isSbomScan, _ := cmd.PersistentFlags().GetBool(commonParams.SbomFlag)
14191422

@@ -1444,7 +1447,7 @@ func validateScanTypes(cmd *cobra.Command, jwtWrapper wrappers.JWTWrapper, featu
14441447
}
14451448

14461449
for _, scanType := range scanTypes {
1447-
if scanType == commonParams.ScsType && scsLicensingV2Enabled {
1450+
if scanType == commonParams.ScsType && scsLicensingV2Flag.Status {
14481451
// the SCS scan type is a special case because it contains two engines.
14491452
// Before the new licensing model, the main license was named "scs".
14501453
// Licenses are now separated for each engine, so this validation no longer makes sense.
@@ -1460,7 +1463,7 @@ func validateScanTypes(cmd *cobra.Command, jwtWrapper wrappers.JWTWrapper, featu
14601463

14611464
userSCSScanTypes, _ := cmd.Flags().GetString(commonParams.SCSEnginesFlag)
14621465
if slices.Contains(scanTypes, commonParams.ScsType) {
1463-
err = validateSCSEngines(allowedEngines, userSCSScanTypes, scsLicensingV2Enabled)
1466+
err = validateSCSEngines(allowedEngines, userSCSScanTypes, scsLicensingV2Flag.Status)
14641467
if err != nil {
14651468
return err
14661469
}

internal/wrappers/jwt-helper.go

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ type JWTStruct struct {
2222
}
2323

2424
type JWTWrapper interface {
25-
GetAllowedEngines(featureFlagsWrapper FeatureFlagsWrapper) (allowedEngines map[string]bool, scsLicensingV2 bool, err error)
25+
GetAllowedEngines(featureFlagsWrapper FeatureFlagsWrapper) (allowedEngines map[string]bool, err error)
2626
IsAllowedEngine(engine string) (bool, error)
2727
ExtractTenantFromToken() (tenant string, err error)
2828
CheckPermissionByAccessToken(requiredPermission string) (permission bool, err error)
@@ -61,20 +61,19 @@ func getDefaultEngines(scsLicensingV2 bool) (defaultEngines map[string]bool) {
6161
}
6262

6363
// GetAllowedEngines will return a map with user allowed engines
64-
func (*JWTStruct) GetAllowedEngines(featureFlagsWrapper FeatureFlagsWrapper) (allowedEngines map[string]bool, scsLicensingV2 bool, err error) {
64+
func (*JWTStruct) GetAllowedEngines(featureFlagsWrapper FeatureFlagsWrapper) (allowedEngines map[string]bool, err error) {
6565
scsLicensingV2Flag, _ := GetSpecificFeatureFlag(featureFlagsWrapper, ScsLicensingV2Enabled)
66-
scsLicensingV2 = scsLicensingV2Flag.Status
6766
flagResponse, _ := GetSpecificFeatureFlag(featureFlagsWrapper, PackageEnforcementEnabled)
6867
if flagResponse.Status {
6968
jwtStruct, err := getJwtStruct()
7069
if err != nil {
71-
return nil, scsLicensingV2, err
70+
return nil, err
7271
}
73-
allowedEngines = prepareEngines(jwtStruct.AstLicense.LicenseData.AllowedEngines, scsLicensingV2)
74-
return allowedEngines, scsLicensingV2, nil
72+
allowedEngines = prepareEngines(jwtStruct.AstLicense.LicenseData.AllowedEngines, scsLicensingV2Flag.Status)
73+
return allowedEngines, nil
7574
}
7675

77-
return getDefaultEngines(scsLicensingV2), scsLicensingV2, nil
76+
return getDefaultEngines(scsLicensingV2Flag.Status), nil
7877
}
7978

8079
func getJwtStruct() (*JWTStruct, error) {

internal/wrappers/mock/jwt-helper-mock.go

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ type JWTMockWrapper struct {
1111
AIEnabled int
1212
CheckmarxOneAssistEnabled int
1313
CustomGetAllowedEngines func(wrappers.FeatureFlagsWrapper) (map[string]bool, error)
14-
ScsLicensingV2 bool
1514
}
1615

1716
const AIProtectionDisabled = 1
@@ -20,17 +19,17 @@ const CheckmarxOneAssistDisabled = 1
2019
var engines = []string{"sast", "sca", "api-security", "iac-security", "scs", "containers", "enterprise-secrets"}
2120

2221
// GetAllowedEngines mock for tests
23-
func (j *JWTMockWrapper) GetAllowedEngines(featureFlagsWrapper wrappers.FeatureFlagsWrapper) (allowedEngines map[string]bool, scsLicensingV2 bool, err error) {
22+
func (j *JWTMockWrapper) GetAllowedEngines(featureFlagsWrapper wrappers.FeatureFlagsWrapper) (allowedEngines map[string]bool, err error) {
2423
if j.CustomGetAllowedEngines != nil {
2524
allowedEngines, err = j.CustomGetAllowedEngines(featureFlagsWrapper)
26-
return allowedEngines, j.ScsLicensingV2, err
25+
return allowedEngines, err
2726
}
2827
allowedEngines = make(map[string]bool)
2928

3029
for _, value := range engines {
3130
allowedEngines[strings.ToLower(value)] = true
3231
}
33-
return allowedEngines, j.ScsLicensingV2, nil
32+
return allowedEngines, nil
3433
}
3534

3635
func (*JWTMockWrapper) ExtractTenantFromToken() (tenant string, err error) {

0 commit comments

Comments
 (0)