Skip to content

Commit

Permalink
chore: add switch to cognitive search
Browse files Browse the repository at this point in the history
  • Loading branch information
vanwinkelseppe authored and cmendible committed Apr 26, 2024
1 parent 5e3eadf commit dbbf082
Show file tree
Hide file tree
Showing 2 changed files with 226 additions and 2 deletions.
32 changes: 30 additions & 2 deletions internal/scanners/cog/rules.go
Original file line number Diff line number Diff line change
Expand Up @@ -65,8 +65,36 @@ func (a *CognitiveScanner) GetRules() map[string]scanners.AzureRule {
Impact: scanners.ImpactLow,
Eval: func(target interface{}, scanContext *scanners.ScanContext) (bool, string) {
c := target.(*armcognitiveservices.Account)
caf := strings.HasPrefix(*c.Name, "cog")
return !caf, ""
switch strings.ToLower(*c.Kind) {
case "openai":
return !strings.HasPrefix(*c.Name, "oai"), ""
case "computervision":
return !strings.HasPrefix(*c.Name, "cv"), ""
case "contentmoderator":
return !strings.HasPrefix(*c.Name, "cm"), ""
case "contentsafety":
return !strings.HasPrefix(*c.Name, "cs"), ""
case "customvision.prediction":
return !strings.HasPrefix(*c.Name, "cstv"), ""
case "customvision.training":
return !strings.HasPrefix(*c.Name, "cstvt"), ""
case "formrecognizer":
return !strings.HasPrefix(*c.Name, "di"), ""
case "face":
return !strings.HasPrefix(*c.Name, "face"), ""
case "healthinsights":
return !strings.HasPrefix(*c.Name, "hi"), ""
case "immersivereader":
return !strings.HasPrefix(*c.Name, "ir"), ""
case "textanalytics":
return !strings.HasPrefix(*c.Name, "lang"), ""
case "speechservices":
return !strings.HasPrefix(*c.Name, "spch"), ""
case "texttranslation":
return !strings.HasPrefix(*c.Name, "trsl"), ""
default:
return !strings.HasPrefix(*c.Name, "cog"), ""
}
},
Url: "https://learn.microsoft.com/en-us/azure/cloud-adoption-framework/ready/azure-best-practices/resource-abbreviations",
},
Expand Down
196 changes: 196 additions & 0 deletions internal/scanners/cog/rules_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -93,12 +93,208 @@ func TestCognitiveScanner_Rules(t *testing.T) {
result: "test",
},
},
{
name: "CognitiveScanner OpenAi CAF",
fields: fields{
rule: "cog-006",
target: &armcognitiveservices.Account{
Name: to.Ptr("oai-test"),
Kind: to.Ptr("OpenAi"),
},
scanContext: &scanners.ScanContext{},
},
want: want{
broken: false,
result: "",
},
},
{
name: "CognitiveScanner ContentModerator CAF",
fields: fields{
rule: "cog-006",
target: &armcognitiveservices.Account{
Name: to.Ptr("cm-test"),
Kind: to.Ptr("ContentModerator"),
},
scanContext: &scanners.ScanContext{},
},
want: want{
broken: false,
result: "",
},
},
{
name: "CognitiveScanner ContentSafety CAF",
fields: fields{
rule: "cog-006",
target: &armcognitiveservices.Account{
Name: to.Ptr("cs-test"),
Kind: to.Ptr("ContentSafety"),
},
scanContext: &scanners.ScanContext{},
},
want: want{
broken: false,
result: "",
},
},
{
name: "CognitiveScanner CustomVision.Prediction CAF",
fields: fields{
rule: "cog-006",
target: &armcognitiveservices.Account{
Name: to.Ptr("cstv-test"),
Kind: to.Ptr("CustomVision.Prediction"),
},
scanContext: &scanners.ScanContext{},
},
want: want{
broken: false,
result: "",
},
},
{
name: "CognitiveScanner CustomVision.Training CAF",
fields: fields{
rule: "cog-006",
target: &armcognitiveservices.Account{
Name: to.Ptr("cstvt-test"),
Kind: to.Ptr("CustomVision.Training"),
},
scanContext: &scanners.ScanContext{},
},
want: want{
broken: false,
result: "",
},
},
{
name: "CognitiveScanner FormRecognizer CAF",
fields: fields{
rule: "cog-006",
target: &armcognitiveservices.Account{
Name: to.Ptr("di-test"),
Kind: to.Ptr("FormRecognizer"),
},
scanContext: &scanners.ScanContext{},
},
want: want{
broken: false,
result: "",
},
},
{
name: "CognitiveScanner Face CAF",
fields: fields{
rule: "cog-006",
target: &armcognitiveservices.Account{
Name: to.Ptr("face-test"),
Kind: to.Ptr("Face"),
},
scanContext: &scanners.ScanContext{},
},
want: want{
broken: false,
result: "",
},
},
{
name: "CognitiveScanner HealthInsights CAF",
fields: fields{
rule: "cog-006",
target: &armcognitiveservices.Account{
Name: to.Ptr("hi-test"),
Kind: to.Ptr("HealthInsights"),
},
scanContext: &scanners.ScanContext{},
},
want: want{
broken: false,
result: "",
},
},
{
name: "CognitiveScanner ImmersiveReader CAF",
fields: fields{
rule: "cog-006",
target: &armcognitiveservices.Account{
Name: to.Ptr("ir-test"),
Kind: to.Ptr("ImmersiveReader"),
},
scanContext: &scanners.ScanContext{},
},
want: want{
broken: false,
result: "",
},
},
{
name: "CognitiveScanner TextAnalytics CAF",
fields: fields{
rule: "cog-006",
target: &armcognitiveservices.Account{
Name: to.Ptr("lang-test"),
Kind: to.Ptr("TextAnalytics"),
},
scanContext: &scanners.ScanContext{},
},
want: want{
broken: false,
result: "",
},
},
{
name: "CognitiveScanner SpeechServices CAF",
fields: fields{
rule: "cog-006",
target: &armcognitiveservices.Account{
Name: to.Ptr("spch-test"),
Kind: to.Ptr("SpeechServices"),
},
scanContext: &scanners.ScanContext{},
},
want: want{
broken: false,
result: "",
},
},
{
name: "CognitiveScanner TextTranslation CAF",
fields: fields{
rule: "cog-006",
target: &armcognitiveservices.Account{
Name: to.Ptr("trsl-test"),
Kind: to.Ptr("TextTranslation"),
},
scanContext: &scanners.ScanContext{},
},
want: want{
broken: false,
result: "",
},
},
{
name: "CognitiveScanner ComputerVision CAF",
fields: fields{
rule: "cog-006",
target: &armcognitiveservices.Account{
Name: to.Ptr("cv-test"),
Kind: to.Ptr("ComputerVision"),
},
scanContext: &scanners.ScanContext{},
},
want: want{
broken: false,
result: "",
},
},
{
name: "CognitiveScanner CAF",
fields: fields{
rule: "cog-006",
target: &armcognitiveservices.Account{
Name: to.Ptr("cog-test"),
Kind: to.Ptr("cog"),
},
scanContext: &scanners.ScanContext{},
},
Expand Down

0 comments on commit dbbf082

Please sign in to comment.