Skip to content

Commit aba906e

Browse files
authored
Merge pull request #2955 from port-labs/PORT-16654
Add documentation for Azure Service Bus, Application Insights, and Key Vault resources
2 parents 09b0f1c + b9d20aa commit aba906e

File tree

10 files changed

+826
-6
lines changed

10 files changed

+826
-6
lines changed

docs/build-your-software-catalog/sync-data-to-catalog/cloud-providers/azure/resource_templates/advanced.md

Lines changed: 78 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,25 @@ import WebAppBlueprint from './compute_resources/\_web_app_blueprint.mdx'
1818
import DatabaseAppConfig from './database_resources/\_port_app_config.mdx'
1919
import PostgresFlexibleServerBlueprint from './database_resources/\_postgres_flexible_server_blueprint.mdx'
2020

21+
import ServiceBusNamespaceBlueprint from './service_bus/\_service_bus_namespace_blueprint.mdx'
22+
import ServiceBusQueueBlueprint from './service_bus/\_service_bus_queue_blueprint.mdx'
23+
import ServiceBusTopicBlueprint from './service_bus/\_service_bus_topic_blueprint.mdx'
24+
import ServiceBusSubscriptionBlueprint from './service_bus/\_service_bus_subscription_blueprint.mdx'
25+
import ServiceBusAppConfig from './service_bus/\_port_app_config.mdx'
2126

22-
## Mapping Storage Resources
27+
import ApplicationInsightsBlueprint from './application_insights/\_blueprint.mdx'
28+
import ApplicationInsightsAppConfig from './application_insights/\_port_app_config.mdx'
29+
30+
import KeyVaultBlueprint from './key_vault/\_blueprint.mdx'
31+
import KeyVaultAppConfig from './key_vault/\_port_app_config.mdx'
32+
33+
34+
## Mapping storage resources
2335

2436
The following example demonstrates how to ingest your Azure Storage Accounts and Containers to Port.
2537
You can use the following Port blueprint definitions and integration configuration:
2638

27-
:::note
39+
:::note Resource group requirement
2840
The Storage Account has a relation to the Resource Group, so creation of the [Resource Group blueprint](#mapping-resource-groups) is required.
2941
:::
3042

@@ -39,12 +51,12 @@ Here are the API references we used to create those blueprints and app config:
3951
- [Storage Account](https://docs.microsoft.com/en-us/rest/api/storagerp/storageaccounts/list)
4052
- [Storage Container](https://learn.microsoft.com/en-us/rest/api/storagerp/blob-containers/list?tabs=HTTP)
4153

42-
## Mapping Compute Resources
54+
## Mapping compute resources
4355

4456
The following example demonstrates how to ingest your Azure Resources to Port.
4557
You can use the following Port blueprint definitions and integration configuration:
4658

47-
:::note
59+
:::note Resource group requirement
4860
The Resources below have a relation to the Resource Group, so creation of the [Resource Group blueprint](#mapping-resource-groups) is required.
4961
:::
5062

@@ -68,12 +80,12 @@ Here are the API references we used to create those blueprints and app config:
6880
- [Virtual Machine](https://learn.microsoft.com/en-us/rest/api/compute/virtual-machines/list-all?tabs=HTTP)
6981
- [Web App](https://learn.microsoft.com/en-us/rest/api/appservice/web-apps/list)
7082

71-
## Mapping Database Resources
83+
## Mapping database resources
7284

7385
The following example demonstrates how to ingest your Azure Database Resources to Port.
7486
You can use the following Port blueprint definitions and integration configuration:
7587

76-
:::note
88+
:::note Resource group requirement
7789
The Database Resources below have a relation to the Resource Group, so creation of the [Resource Group blueprint](#mapping-resource-groups) is required.
7890
:::
7991

@@ -85,6 +97,66 @@ Here are the API references we used to create those blueprints and app config:
8597

8698
- [Postgres Flexible Server](https://docs.microsoft.com/en-us/rest/api/azure-postgresql/flexibleservers)
8799

100+
## Mapping service bus resources
101+
102+
The following example demonstrates how to ingest your Azure Service Bus resources (Namespaces, Queues, Topics, and Subscriptions) to Port.
103+
You can use the following Port blueprint definitions and integration configuration:
104+
105+
:::note Hierarchical relationships
106+
The Service Bus resources have a hierarchical relationship. The Namespace relates to the Resource Group, Queues and Topics relate to the Namespace, and Subscriptions relate to Topics. Creation of the [Resource Group blueprint](#mapping-resource-groups) is required.
107+
:::
108+
109+
<ServiceBusNamespaceBlueprint/>
110+
111+
<ServiceBusQueueBlueprint/>
112+
113+
<ServiceBusTopicBlueprint/>
114+
115+
<ServiceBusSubscriptionBlueprint/>
116+
117+
<ServiceBusAppConfig/>
118+
119+
Here are the API references we used to create those blueprints and app config:
120+
121+
- [Service Bus Namespace](https://learn.microsoft.com/en-us/rest/api/servicebus/stable/namespaces/list-by-subscription)
122+
- [Service Bus Queue](https://learn.microsoft.com/en-us/rest/api/servicebus/stable/queues/list-by-namespace)
123+
- [Service Bus Topic](https://learn.microsoft.com/en-us/rest/api/servicebus/stable/topics/list-by-namespace)
124+
- [Service Bus Subscription](https://learn.microsoft.com/en-us/rest/api/servicebus/stable/subscriptions/list-by-topic)
125+
126+
## Mapping application insights
127+
128+
The following example demonstrates how to ingest your Azure Application Insights components to Port.
129+
You can use the following Port blueprint definitions and integration configuration:
130+
131+
:::note Resource group requirement
132+
Application Insights has a relation to the Resource Group, so creation of the [Resource Group blueprint](#mapping-resource-groups) is required.
133+
:::
134+
135+
<ApplicationInsightsBlueprint/>
136+
137+
<ApplicationInsightsAppConfig/>
138+
139+
Here are the API references we used to create those blueprints and app config:
140+
141+
- [Application Insights](https://learn.microsoft.com/en-us/rest/api/application-insights/components/list)
142+
143+
## Mapping key vault
144+
145+
The following example demonstrates how to ingest your Azure Key Vaults to Port.
146+
You can use the following Port blueprint definitions and integration configuration:
147+
148+
:::note Resource group requirement
149+
Key Vault has a relation to the Resource Group, so creation of the [Resource Group blueprint](#mapping-resource-groups) is required.
150+
:::
151+
152+
<KeyVaultBlueprint/>
153+
154+
<KeyVaultAppConfig/>
155+
156+
Here are the API references we used to create those blueprints and app config:
157+
158+
- [Key Vault](https://learn.microsoft.com/en-us/rest/api/keyvault/vaults/list-by-subscription)
159+
88160
:::info Mapping extra resources
89161
The resources in this page are only few of the resources that the Azure Exporter supports.
90162
If you don't find the Azure resource you want to map to Port head to the [Mapping Extra Resources](/build-your-software-catalog/sync-data-to-catalog/cloud-providers/azure/resource_templates/mapping_extra_resources.md) page to learn about what kind of azure resources are supported by the Azure integration and how to map them into Port.
Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
<details>
2+
3+
<summary> Application Insights blueprint </summary>
4+
5+
```json showLineNumbers
6+
{
7+
"identifier": "azureApplicationInsights",
8+
"title": "Application Insights",
9+
"icon": "Azure",
10+
"schema": {
11+
"properties": {
12+
"location": {
13+
"title": "Location",
14+
"type": "string",
15+
"icon": "Home"
16+
},
17+
"type": {
18+
"title": "Type",
19+
"type": "string",
20+
"icon": "Microservice"
21+
},
22+
"kind": {
23+
"title": "Kind",
24+
"type": "string"
25+
},
26+
"applicationType": {
27+
"title": "Application Type",
28+
"type": "string"
29+
},
30+
"applicationId": {
31+
"title": "Application ID",
32+
"type": "string"
33+
},
34+
"instrumentationKey": {
35+
"title": "Instrumentation Key",
36+
"type": "string",
37+
"icon": "Lock"
38+
},
39+
"connectionString": {
40+
"title": "Connection String",
41+
"type": "string"
42+
},
43+
"provisioningState": {
44+
"title": "Provisioning State",
45+
"type": "string"
46+
},
47+
"retentionInDays": {
48+
"title": "Retention In Days",
49+
"type": "number"
50+
},
51+
"samplingPercentage": {
52+
"title": "Sampling Percentage",
53+
"type": "number"
54+
},
55+
"publicNetworkAccessForIngestion": {
56+
"title": "Public Network Access For Ingestion",
57+
"type": "string"
58+
},
59+
"publicNetworkAccessForQuery": {
60+
"title": "Public Network Access For Query",
61+
"type": "string"
62+
},
63+
"tags": {
64+
"title": "Tags",
65+
"type": "object"
66+
}
67+
},
68+
"required": []
69+
},
70+
"mirrorProperties": {},
71+
"calculationProperties": {},
72+
"aggregationProperties": {},
73+
"relations": {
74+
"resource_group": {
75+
"title": "Resource Group",
76+
"target": "azureResourceGroup",
77+
"required": false,
78+
"many": false
79+
}
80+
}
81+
}
82+
```
83+
84+
</details>
85+
86+
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
<details>
2+
<summary>Mapping Configuration for Application Insights</summary>
3+
4+
```yaml showLineNumbers
5+
resources:
6+
- kind: Microsoft.Insights/components
7+
selector:
8+
query: 'true'
9+
apiVersion: '2020-02-02'
10+
port:
11+
entity:
12+
mappings:
13+
identifier: >-
14+
.id | split("/") | .[3] |= ascii_downcase |.[4] |= ascii_downcase |
15+
join("/")
16+
title: .name
17+
blueprint: '"azureApplicationInsights"'
18+
properties:
19+
location: .location
20+
type: .type
21+
kind: .kind
22+
applicationType: .properties.Application_Type
23+
applicationId: .properties.AppId
24+
instrumentationKey: .properties.InstrumentationKey
25+
connectionString: .properties.ConnectionString
26+
provisioningState: .properties.provisioningState
27+
flowType: .properties.Flow_Type
28+
requestSource: .properties.Request_Source
29+
retentionInDays: .properties.RetentionInDays
30+
samplingPercentage: .properties.SamplingPercentage
31+
publicNetworkAccessForIngestion: .properties.publicNetworkAccessForIngestion
32+
publicNetworkAccessForQuery: .properties.publicNetworkAccessForQuery
33+
tags: .tags
34+
relations:
35+
resource_group: >-
36+
.id | split("/") | .[3] |= ascii_downcase |.[4] |= ascii_downcase
37+
| .[:5] |join("/")
38+
```
39+
40+
</details>
41+
42+
Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
1+
<details>
2+
3+
<summary> Key Vault blueprint </summary>
4+
5+
```json showLineNumbers
6+
{
7+
"identifier": "azureKeyVault",
8+
"title": "Key Vault",
9+
"icon": "Azure",
10+
"schema": {
11+
"properties": {
12+
"location": {
13+
"title": "Location",
14+
"type": "string",
15+
"icon": "Home"
16+
},
17+
"type": {
18+
"title": "Type",
19+
"type": "string",
20+
"icon": "Microservice"
21+
},
22+
"tenantId": {
23+
"title": "Tenant ID",
24+
"type": "string"
25+
},
26+
"sku": {
27+
"title": "SKU",
28+
"type": "object",
29+
"icon": "Settings"
30+
},
31+
"vaultUri": {
32+
"title": "Vault URI",
33+
"type": "string",
34+
"format": "url",
35+
"icon": "Link"
36+
},
37+
"provisioningState": {
38+
"title": "Provisioning State",
39+
"type": "string"
40+
},
41+
"enabledForDeployment": {
42+
"title": "Enabled For Deployment",
43+
"type": "boolean"
44+
},
45+
"enabledForDiskEncryption": {
46+
"title": "Enabled For Disk Encryption",
47+
"type": "boolean"
48+
},
49+
"enabledForTemplateDeployment": {
50+
"title": "Enabled For Template Deployment",
51+
"type": "boolean"
52+
},
53+
"enableSoftDelete": {
54+
"title": "Enable Soft Delete",
55+
"type": "boolean"
56+
},
57+
"softDeleteRetentionInDays": {
58+
"title": "Soft Delete Retention In Days",
59+
"type": "number"
60+
},
61+
"enableRbacAuthorization": {
62+
"title": "Enable RBAC Authorization",
63+
"type": "boolean"
64+
},
65+
"enablePurgeProtection": {
66+
"title": "Enable Purge Protection",
67+
"type": "boolean"
68+
},
69+
"publicNetworkAccess": {
70+
"title": "Public Network Access",
71+
"type": "string"
72+
},
73+
"networkAcls": {
74+
"title": "Network ACLs",
75+
"type": "object"
76+
},
77+
"tags": {
78+
"title": "Tags",
79+
"type": "object"
80+
}
81+
},
82+
"required": []
83+
},
84+
"mirrorProperties": {},
85+
"calculationProperties": {},
86+
"aggregationProperties": {},
87+
"relations": {
88+
"resource_group": {
89+
"title": "Resource Group",
90+
"target": "azureResourceGroup",
91+
"required": false,
92+
"many": false
93+
}
94+
}
95+
}
96+
```
97+
98+
</details>
99+
100+
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
<details>
2+
<summary>Mapping Configuration for Key Vault</summary>
3+
4+
```yaml showLineNumbers
5+
resources:
6+
- kind: Microsoft.KeyVault/vaults
7+
selector:
8+
query: 'true'
9+
apiVersion: '2023-07-01'
10+
port:
11+
entity:
12+
mappings:
13+
identifier: >-
14+
.id | split("/") | .[3] |= ascii_downcase |.[4] |= ascii_downcase |
15+
join("/")
16+
title: .name
17+
blueprint: '"azureKeyVault"'
18+
properties:
19+
location: .location
20+
type: .type
21+
tenantId: .properties.tenantId
22+
sku: .properties.sku
23+
vaultUri: .properties.vaultUri
24+
provisioningState: .properties.provisioningState
25+
enabledForDeployment: .properties.enabledForDeployment
26+
enabledForDiskEncryption: .properties.enabledForDiskEncryption
27+
enabledForTemplateDeployment: .properties.enabledForTemplateDeployment
28+
enableSoftDelete: .properties.enableSoftDelete
29+
softDeleteRetentionInDays: .properties.softDeleteRetentionInDays
30+
enableRbacAuthorization: .properties.enableRbacAuthorization
31+
enablePurgeProtection: .properties.enablePurgeProtection
32+
publicNetworkAccess: .properties.publicNetworkAccess
33+
networkAcls: .properties.networkAcls
34+
tags: .tags
35+
relations:
36+
resource_group: >-
37+
.id | split("/") | .[3] |= ascii_downcase |.[4] |= ascii_downcase
38+
| .[:5] |join("/")
39+
```
40+
41+
</details>
42+
43+

0 commit comments

Comments
 (0)