From 3078c2f268e744bd605dfe4b7fae44ebc97e8a2f Mon Sep 17 00:00:00 2001 From: Tyler Mairose Date: Tue, 3 Sep 2024 12:13:40 -0400 Subject: [PATCH 1/3] Check for nulls on nullable fields when downloading rules --- cmd/rule/download.go | 69 ++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 63 insertions(+), 6 deletions(-) diff --git a/cmd/rule/download.go b/cmd/rule/download.go index cb0054de..4d6f8f81 100644 --- a/cmd/rule/download.go +++ b/cmd/rule/download.go @@ -27,7 +27,7 @@ type Rule struct { XMLName xml.Name `xml:"Rule"` Name string `xml:"name,attr"` Type string `xml:"type,attr"` - Description string `xml:"Description"` + Description string `xml:"Description,omitempty"` Signature *Signature Source string `xml:"Source"` } @@ -53,7 +53,7 @@ type Argument struct { XMLName xml.Name `xml:"Argument"` Name string `xml:"name,attr"` Type string `xml:"type,attr,omitempty"` - Description string `xml:"Description"` + Description string `xml:"Description,omitempty"` } var cloudRuleTypes = []string{"AttributeGenerator", "AttributeGeneratorFromTemplate", "BeforeProvisioning", "BuildMap", "Correlation", "IdentityAttribute", "ManagerCorrelation"} @@ -145,7 +145,17 @@ func saveCloudXMLRules(apiClient *sailpoint.APIClient, description string, inclu } //Make Rule XML Object - rule := &Rule{Name: v.Object["name"].(string), Type: RuleType, Description: v.Object["description"].(string), Source: ""} + rule := &Rule{} + rule.Name = v.Object["name"].(string) + rule.Type = RuleType + + if v.Object["description"] != nil { + rule.Description = v.Object["description"].(string) + } else { + rule.Description = "" + } + + rule.Source = "" var ruleSignature = &Signature{} @@ -154,7 +164,22 @@ func saveCloudXMLRules(apiClient *sailpoint.APIClient, description string, inclu ruleSignature.Inputs = &Inputs{Argument: []Argument{}} for _, v := range v.Object["signature"].(map[string]interface{})["input"].([]interface{}) { - argument := Argument{Name: v.(map[string]interface{})["name"].(string), Type: v.(map[string]interface{})["type"].(string), Description: v.(map[string]interface{})["description"].(string)} + argument := Argument{} + + argument.Name = v.(map[string]interface{})["name"].(string) + + if v.(map[string]interface{})["type"] != nil { + argument.Type = v.(map[string]interface{})["type"].(string) + } else { + argument.Type = "" + } + + if v.(map[string]interface{})["description"] != nil { + argument.Description = v.(map[string]interface{})["description"].(string) + } else { + argument.Description = "" + } + ruleSignature.Inputs.Argument = append(ruleSignature.Inputs.Argument, argument) } @@ -166,13 +191,45 @@ func saveCloudXMLRules(apiClient *sailpoint.APIClient, description string, inclu if _, ok := v.Object["signature"].(map[string]interface{})["output"].([]interface{}); ok { for _, v := range v.Object["signature"].(map[string]interface{})["output"].([]interface{}) { - argument := Argument{Name: v.(map[string]interface{})["name"].(string), Type: v.(map[string]interface{})["type"].(string), Description: v.(map[string]interface{})["description"].(string)} + + argument := Argument{} + + argument.Name = v.(map[string]interface{})["name"].(string) + + if v.(map[string]interface{})["type"] != nil { + argument.Type = v.(map[string]interface{})["type"].(string) + } else { + argument.Type = "" + } + + if v.(map[string]interface{})["description"] != nil { + argument.Description = v.(map[string]interface{})["description"].(string) + } else { + argument.Description = "" + } + ruleSignature.Returns.Argument = append(ruleSignature.Returns.Argument, argument) } } else { output := v.Object["signature"].(map[string]interface{})["output"].(map[string]interface{}) - argument := Argument{Name: output["name"].(string), Type: output["type"].(string), Description: output["description"].(string)} + + argument := Argument{} + + argument.Name = output["name"].(string) + + if output["type"] != nil { + argument.Type = output["type"].(string) + } else { + argument.Type = "" + } + + if output["description"] != nil { + argument.Description = output["description"].(string) + } else { + argument.Description = "" + } + ruleSignature.Returns.Argument = append(ruleSignature.Returns.Argument, argument) } } From 7227515984c70ec2d8003fe462baf7b4996a77df Mon Sep 17 00:00:00 2001 From: Tyler Mairose Date: Tue, 3 Sep 2024 16:20:33 -0400 Subject: [PATCH 2/3] Fix workflow creds --- .github/workflows/prb_linux.yml | 6 +++--- .github/workflows/prb_macos.yml | 6 +++--- .github/workflows/prb_windows.yml | 6 +++--- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/.github/workflows/prb_linux.yml b/.github/workflows/prb_linux.yml index 446dd03c..25d53cdd 100644 --- a/.github/workflows/prb_linux.yml +++ b/.github/workflows/prb_linux.yml @@ -1,8 +1,8 @@ name: PRB_Linux env: - SAIL_CLIENT_ID: ${{secrets.CLI_TEST_TENANT_CLIENT_ID}} - SAIL_CLIENT_SECRET: ${{secrets.CLI_TEST_TENANT_CLIENT_SECRET}} - SAIL_BASE_URL: https://css-255.api.identitynow.com + SAIL_CLIENT_ID: ${{ secrets.SDK_TEST_TENANT_CLIENT_ID }} + SAIL_CLIENT_SECRET: ${{ secrets.SDK_TEST_TENANT_CLIENT_SECRET }} + SAIL_BASE_URL: ${{ secrets.SDK_TEST_TENANT_BASE_URL }} on: push: diff --git a/.github/workflows/prb_macos.yml b/.github/workflows/prb_macos.yml index c1a44c3a..dc6a1811 100644 --- a/.github/workflows/prb_macos.yml +++ b/.github/workflows/prb_macos.yml @@ -1,8 +1,8 @@ name: PRB_Macos env: - SAIL_CLIENT_ID: ${{secrets.CLI_TEST_TENANT_CLIENT_ID}} - SAIL_CLIENT_SECRET: ${{secrets.CLI_TEST_TENANT_CLIENT_SECRET}} - SAIL_BASE_URL: https://css-255.api.identitynow.com + SAIL_CLIENT_ID: ${{ secrets.SDK_TEST_TENANT_CLIENT_ID }} + SAIL_CLIENT_SECRET: ${{ secrets.SDK_TEST_TENANT_CLIENT_SECRET }} + SAIL_BASE_URL: ${{ secrets.SDK_TEST_TENANT_BASE_URL }} on: push: diff --git a/.github/workflows/prb_windows.yml b/.github/workflows/prb_windows.yml index 44d46f04..adf6e86b 100644 --- a/.github/workflows/prb_windows.yml +++ b/.github/workflows/prb_windows.yml @@ -1,8 +1,8 @@ name: PRB_Windows env: - SAIL_CLIENT_ID: ${{secrets.CLI_TEST_TENANT_CLIENT_ID}} - SAIL_CLIENT_SECRET: ${{secrets.CLI_TEST_TENANT_CLIENT_SECRET}} - SAIL_BASE_URL: https://css-255.api.identitynow.com + SAIL_CLIENT_ID: ${{ secrets.SDK_TEST_TENANT_CLIENT_ID }} + SAIL_CLIENT_SECRET: ${{ secrets.SDK_TEST_TENANT_CLIENT_SECRET }} + SAIL_BASE_URL: ${{ secrets.SDK_TEST_TENANT_BASE_URL }} on: push: From 1a75f31e07a48b8cee7769817488847c9e9059da Mon Sep 17 00:00:00 2001 From: darrell-thobe-sp Date: Tue, 3 Sep 2024 21:18:49 -0400 Subject: [PATCH 3/3] fix for customizer and connector project from init command failure --- cmd/connector/static/connector/package.json | 4 ++-- cmd/connector/static/customizer/package.json | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/cmd/connector/static/connector/package.json b/cmd/connector/static/connector/package.json index 8e6ca55d..e8716050 100644 --- a/cmd/connector/static/connector/package.json +++ b/cmd/connector/static/connector/package.json @@ -19,12 +19,12 @@ }, "devDependencies": { "@types/jest": "^27.0.1", - "@vercel/ncc": "^0.34.0", + "@vercel/ncc": "^0.38.1", "jest": "^27.0.6", "prettier": "^2.3.2", "shx": "^0.3.3", "ts-jest": "^27.0.5", - "typescript": "4.3.5", + "typescript": "4.9.3", "cross-env": "7.0.3" }, "jest": { diff --git a/cmd/connector/static/customizer/package.json b/cmd/connector/static/customizer/package.json index 8e6ca55d..e8716050 100644 --- a/cmd/connector/static/customizer/package.json +++ b/cmd/connector/static/customizer/package.json @@ -19,12 +19,12 @@ }, "devDependencies": { "@types/jest": "^27.0.1", - "@vercel/ncc": "^0.34.0", + "@vercel/ncc": "^0.38.1", "jest": "^27.0.6", "prettier": "^2.3.2", "shx": "^0.3.3", "ts-jest": "^27.0.5", - "typescript": "4.3.5", + "typescript": "4.9.3", "cross-env": "7.0.3" }, "jest": {