@@ -1792,6 +1792,18 @@ function PrepareSolutionMetadata($solutionMetadataRawContent, $contentResourceDe
17921792 }
17931793 return
17941794 }
1795+
1796+ # Define a helper function to handle null or empty arrays
1797+ function Get-ValidArray ($inputArray ) {
1798+ if ($null -eq $inputArray -or -not $inputArray -or $inputArray.Count -eq 0 ) {
1799+ if (! $global :baseMainTemplate.variables.TemplateEmptyArray ) {
1800+ $global :baseMainTemplate.variables | Add-Member - NotePropertyName " TemplateEmptyArray" - NotePropertyValue " [json('[]')]"
1801+ }
1802+ return " [variables('TemplateEmptyArray')]"
1803+ }
1804+ return $inputArray
1805+ }
1806+
17951807 try {
17961808 # BELOW IS OLD WAY OF CCP CONNECTOR CODE I.E CLV1 WHICH ONLY HAS CONNECTORUICONFIG AND POLLER CONFIG SECTION IN SOURCE
17971809 $ccpPollingConfig = [PSCustomObject ] @ {}
@@ -1811,6 +1823,19 @@ function PrepareSolutionMetadata($solutionMetadataRawContent, $contentResourceDe
18111823 {
18121824 $ccpPollingConfig = $null
18131825 $ccpConnector = $false
1826+
1827+ if ($null -eq $connectorData.graphQueries -or $connectorData.graphQueries.Count -eq 0 ) {
1828+ $connectorData.graphQueries = Get-ValidArray $connectorData.graphQueries
1829+ }
1830+
1831+ if ($null -eq $connectorData.dataTypes -or $connectorData.dataTypes.Count -eq 0 ) {
1832+ $connectorData.dataTypes = Get-ValidArray $connectorData.dataTypes
1833+ }
1834+
1835+ if ($null -eq $connectorData.sampleQueries -or $connectorData.sampleQueries.Count -eq 0 ) {
1836+ $connectorData.sampleQueries = Get-ValidArray $connectorData.sampleQueries
1837+ }
1838+
18141839 $templateSpecConnectorData = $connectorData
18151840 }
18161841 }
@@ -2081,18 +2106,30 @@ function PrepareSolutionMetadata($solutionMetadataRawContent, $contentResourceDe
20812106 $connectorObj = [PSCustomObject ]@ {}
20822107 # If direct title is available, assume standard connector format
20832108 if ($connectorData.title ) {
2109+ $graphQueriesValue = Get-ValidArray $connectorData.graphQueries ;
2110+ $dataTypesValue = Get-ValidArray $connectorData.dataTypes ;
20842111 $standardConnectorUiConfig = [PSCustomObject ]@ {
20852112 title = $connectorData.title ;
20862113 publisher = $connectorData.publisher ;
20872114 descriptionMarkdown = $connectorData.descriptionMarkdown ;
2088- graphQueries = $connectorData.graphQueries ;
2089- dataTypes = $connectorData.dataTypes ;
2090- connectivityCriterias = $connectorData.connectivityCriterias ;
2115+ graphQueries = $graphQueriesValue ;
2116+ dataTypes = $dataTypesValue ;
2117+ # connectivityCriterias = $connectorData.connectivityCriterias;
2118+ }
2119+
2120+ # Add connectivityCriterias if not null
2121+ if ($null -ne $connectorData.connectivityCriterias ) {
2122+ $standardConnectorUiConfig | Add-Member - MemberType NoteProperty - Name connectivityCriterias - Value $connectorData.connectivityCriterias
2123+ }
2124+ # Else, check if connectivityCriteria exists and add it
2125+ elseif ($null -ne $connectorData.connectivityCriteria ) {
2126+ $standardConnectorUiConfig | Add-Member - MemberType NoteProperty - Name connectivityCriteria - Value $connectorData.connectivityCriteria
20912127 }
20922128
20932129 if (! $is1PConnector )
20942130 {
2095- $standardConnectorUiConfig | Add-Member - NotePropertyName " sampleQueries" - NotePropertyValue $connectorData.sampleQueries ;
2131+ $sampleQueriesValue = Get-ValidArray $connectorData.sampleQueries
2132+ $standardConnectorUiConfig | Add-Member - NotePropertyName " sampleQueries" - NotePropertyValue $sampleQueriesValue ;
20962133 $standardConnectorUiConfig | Add-Member - NotePropertyName " availability" - NotePropertyValue $connectorData.availability ;
20972134 $standardConnectorUiConfig | Add-Member - NotePropertyName " permissions" - NotePropertyValue $connectorData.permissions ;
20982135 $standardConnectorUiConfig | Add-Member - NotePropertyName " instructionSteps" - NotePropertyValue $connectorData.instructionSteps ;
@@ -2170,7 +2207,13 @@ function PrepareSolutionMetadata($solutionMetadataRawContent, $contentResourceDe
21702207 }
21712208 return $typeResult
21722209 }
2173- $connectorDataType = $ (getConnectorDataTypes $connectorData.dataTypes )
2210+
2211+ if ($connectorData.dataTypes -eq " [variables('TemplateEmptyArray')]" ) {
2212+ $connectorDataType = " custom log"
2213+ } else {
2214+ $connectorDataType = $ (getConnectorDataTypes $connectorData.dataTypes )
2215+ }
2216+
21742217 $isParserAvailable = $ ($contentToImport.Parsers -and ($contentToImport.Parsers.Count -gt 0 ))
21752218 $baseDescriptionText = " This Solution installs the data connector for $solutionName . You can get $solutionName $connectorDataType data in your Microsoft Sentinel workspace. Configure and enable this data connector in the Data Connector gallery after this Solution deploys."
21762219 $customLogsText = " $baseDescriptionText This data connector creates custom log table(s) $ ( getAllDataTypeNames $connectorData.dataTypes ) in your Microsoft Sentinel / Azure Log Analytics workspace."
0 commit comments