Skip to content

Commit 6f08291

Browse files
feat(graph): add KustoCluster node (#25)
1 parent 73839f1 commit 6f08291

4 files changed

Lines changed: 76 additions & 0 deletions

File tree

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
# KustoCluster
2+
3+
Represents Azure Data Explorer (Kusto) cluster resources.
4+
5+
**Labels:** `:ArmResource:KustoCluster`
6+
7+
**Properties:**
8+
9+
- `id` - Cluster resource ID (primary key)
10+
- `acceptedAudiences` - Audiences accepted by the cluster
11+
- `allowedFqdnList` - List of allowed fully qualified domain names
12+
- `allowedIpRangeList` - List of allowed IP ranges
13+
- `dataIngestionUri` - URI for data ingestion
14+
- `enableAutoStop` - Whether auto-stop is enabled
15+
- `enableDiskEncryption` - Whether disk encryption is enabled
16+
- `enableDoubleEncryption` - Whether double encryption is enabled
17+
- `enablePurge` - Whether purge is enabled
18+
- `enableStreamingIngest` - Whether streaming ingestion is enabled
19+
- `engineType` - Type of engine (e.g., V3)
20+
- `publicIpType` - Type of public IP configuration
21+
- `publicNetworkAccess` - Public network access setting
22+
- `restrictOutboundNetworkAccess` - Whether outbound network access is restricted
23+
- `state` - Cluster state (e.g., Running, Unavailable)
24+
- `stateReason` - Reason for the cluster state
25+
- `trustedExternalTenants` - List of trusted external tenant IDs
26+
- `uri` - Cluster URI/endpoint
27+
28+
## Examples
29+
30+
```cypher
31+
// Find all Kusto clusters and their states
32+
MATCH (kc:KustoCluster)
33+
RETURN kc.id, kc.state, kc.uri, kc.enableAutoStop
34+
```
35+
36+
```cypher
37+
// Find Kusto clusters with specific security settings
38+
MATCH (kc:KustoCluster)
39+
WHERE kc.enableDoubleEncryption = true AND kc.publicNetworkAccess = 'Disabled'
40+
RETURN kc.id, kc.uri
41+
```
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
name: "Kusto Clusters"
2+
label: "{{ LABELS.KustoCluster }}"
3+
table_name: "resources"
4+
resource_type: "microsoft.kusto/clusters"
5+
properties:
6+
- "/id"
7+
- "/properties"
8+
cypher: |
9+
UNWIND $batch AS row
10+
MERGE (obj:{{ LABELS.ArmResource }} {id: toLower(row.id)})
11+
SET obj:{{ LABELS.KustoCluster }}
12+
13+
SET obj += {
14+
acceptedAudiences: row.properties.acceptedAudiences,
15+
allowedFqdnList: row.properties.allowedFqdnList,
16+
allowedIpRangeList: row.properties.allowedIpRangeList,
17+
dataIngestionUri: row.properties.dataIngestionUri,
18+
enableAutoStop: row.properties.enableAutoStop,
19+
enableDiskEncryption: row.properties.enableDiskEncryption,
20+
enableDoubleEncryption: row.properties.enableDoubleEncryption,
21+
enablePurge: row.properties.enablePurge,
22+
enableStreamingIngest: row.properties.enableStreamingIngest,
23+
engineType: row.properties.engineType,
24+
publicIpType: row.properties.publicIPType,
25+
publicNetworkAccess: row.properties.publicNetworkAccess,
26+
restrictOutboundNetworkAccess: row.properties.restrictOutboundNetworkAccess,
27+
state: row.properties.state,
28+
stateReason: row.properties.stateReason,
29+
trustedExternalTenants: [x IN row.properties.trustedExternalTenants | x.value],
30+
uri: row.properties.uri
31+
}

src/graph/config/constants.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,7 @@ LABELS:
143143
KeyVaultSecretValue: "KeyVaultSecretValue"
144144
KeyVaultCertificate: "KeyVaultCertificate"
145145
KeyVaultCertificateValue: "KeyVaultCertificateValue"
146+
KustoCluster: "KustoCluster"
146147
ManagementGroup: "ManagementGroup"
147148
ManagedHSM: "ManagedHSM"
148149
MLWorkspace: "MLWorkspace"

zensical.toml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -227,6 +227,9 @@ nav = [
227227
{ "CosmosDB" = [
228228
"analysis/arm-nodes/documentdb/cosmosdb-account.md",
229229
] },
230+
{ "Kusto" = [
231+
"analysis/arm-nodes/kusto/kusto-cluster.md",
232+
] },
230233
{ "Machine Learning" = [
231234
"analysis/arm-nodes/machinelearning/ml-workspace.md",
232235
] },

0 commit comments

Comments
 (0)