Skip to content

Commit 1ed870c

Browse files
authored
Merge pull request Azure#13282 from Azure/tools/map-connectors-to-tables
Solutions Analyzer V3
2 parents 28416ac + 330d7b6 commit 1ed870c

File tree

941 files changed

+52226
-1384
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

941 files changed

+52226
-1384
lines changed

.github/workflows/update-solutions-analyzer.yml

Lines changed: 34 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -55,23 +55,47 @@ jobs:
5555
echo "changed=true" >> $GITHUB_OUTPUT
5656
fi
5757
58-
- name: Commit and push changes
58+
- name: Create Pull Request
5959
if: steps.check_changes.outputs.changed == 'true'
60+
id: create_pr
61+
uses: peter-evans/create-pull-request@v6
62+
with:
63+
token: ${{ secrets.GITHUB_TOKEN }}
64+
commit-message: 'chore: Update Solutions Analyzer CSV files and documentation'
65+
branch: solutions-analyzer-update
66+
delete-branch: true
67+
title: 'chore: Update Solutions Analyzer CSV files and documentation'
68+
body: |
69+
## Automated Solutions Analyzer Update
70+
71+
This PR contains automated updates to:
72+
- Solutions connector-to-tables mapping CSV
73+
- Solutions issues and exceptions report CSV
74+
- Connector documentation files
75+
76+
Generated by the Solutions Analyzer workflow.
77+
78+
**Triggered by:** ${{ github.event_name }}
79+
**Workflow run:** ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
80+
labels: automated, documentation
81+
add-paths: |
82+
Tools/Solutions Analyzer/solutions_connectors_tables_mapping.csv
83+
Tools/Solutions Analyzer/solutions_connectors_tables_issues_and_exceptions_report.csv
84+
Tools/Solutions Analyzer/connector-docs/
85+
86+
- name: Enable auto-merge
87+
if: steps.check_changes.outputs.changed == 'true' && steps.create_pr.outputs.pull-request-number != ''
6088
run: |
61-
git config --local user.email "github-actions[bot]@users.noreply.github.com"
62-
git config --local user.name "github-actions[bot]"
63-
git add "Tools/Solutions Analyzer/solutions_connectors_tables_mapping.csv"
64-
git add "Tools/Solutions Analyzer/solutions_connectors_tables_issues_and_exceptions_report.csv"
65-
git add "Tools/Solutions Analyzer/connector-docs/"
66-
git commit -m "chore: Update Solutions Analyzer CSV files and documentation [skip ci]"
67-
git push
89+
gh pr merge ${{ steps.create_pr.outputs.pull-request-number }} --auto --squash
90+
env:
91+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
6892

6993
- name: Create summary
7094
if: steps.check_changes.outputs.changed == 'true'
7195
run: |
72-
echo "### Solutions Analyzer Updated :white_check_mark:" >> $GITHUB_STEP_SUMMARY
96+
echo "### Solutions Analyzer Pull Request Created :white_check_mark:" >> $GITHUB_STEP_SUMMARY
7397
echo "" >> $GITHUB_STEP_SUMMARY
74-
echo "CSV files and documentation have been regenerated and committed." >> $GITHUB_STEP_SUMMARY
98+
echo "A pull request has been created with updated CSV files and documentation." >> $GITHUB_STEP_SUMMARY
7599
echo "" >> $GITHUB_STEP_SUMMARY
76100
echo "**Modified files:**" >> $GITHUB_STEP_SUMMARY
77101
echo "- Tools/Solutions Analyzer/solutions_connectors_tables_mapping.csv" >> $GITHUB_STEP_SUMMARY

Tools/Solutions Analyzer/README.md

Lines changed: 184 additions & 51 deletions
Large diffs are not rendered by default.

Tools/Solutions Analyzer/connector-docs/README.md

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,23 @@ Individual solution pages are organized in the [`solutions/`](solutions/) direct
1717
- Solution metadata (title, publisher, description)
1818
- List of data connectors included in the solution
1919
- Detailed connector information (ID, title, description)
20+
- Setup instructions (AI-generated from UI definitions - verify in portal)
21+
- Required permissions and prerequisites
2022
- Tables associated with each connector
2123
- Table uniqueness indicators (whether a table is used by only one connector)
2224

25+
### Connector Pages
26+
27+
Individual connector pages are organized in the [`connectors/`](connectors/) directory. Each connector page includes:
28+
29+
- Connector metadata (ID, publisher, tables ingested)
30+
- Full connector description
31+
- Required permissions and prerequisites
32+
- **Setup Instructions** - Step-by-step configuration guidance rendered from connector UI definitions using AI
33+
- ⚠️ **Note**: Instructions are automatically rendered from the user interface definition files using AI and may not be fully accurate. Always verify configuration steps in the Microsoft Sentinel portal.
34+
- Solutions that include this connector
35+
- Links to connector definition files on GitHub
36+
2337
## 📊 Quick Statistics
2438

2539
For current statistics, see the [Solutions Index](solutions-index.md) which displays up-to-date counts of solutions (with and without connectors), connectors, and tables.
@@ -64,6 +78,17 @@ This documentation is automatically generated from the Solutions Analyzer tool,
6478

6579
The analyzer identifies table references in connector configurations and parser logic to create comprehensive mappings.
6680

81+
### AI-Generated Instructions
82+
83+
**Setup Instructions** in connector documentation are automatically extracted from connector UI definition files using AI:
84+
- Interprets UI-centric instruction types (DataConnectorsGrid, ContextPane, GCPGrid, AADDataTypes, etc.)
85+
- Converts JSON UI definitions to readable markdown format
86+
- Generates step-by-step configuration guidance
87+
- Describes form fields, dropdowns, and management interfaces
88+
- Marks portal-only features with visual indicators
89+
90+
⚠️ **Important**: AI-generated instructions may not be fully accurate. Always verify all configuration steps in the Microsoft Sentinel portal before implementation.
91+
6792
## 📝 Data Source
6893

6994
The documentation is based on analysis of the `solutions_connectors_tables_mapping.csv` file, which contains:

Tools/Solutions Analyzer/connector-docs/connectors/1password.md

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,4 +22,43 @@ This solution takes a dependency on the following technologies, and some of thes
2222

2323
- [Azure Functions](https://azure.microsoft.com/services/functions/#overview)
2424

25+
## Permissions
26+
27+
**Resource Provider Permissions:**
28+
- **Workspace** (Workspace): read and write permissions on the workspace are required.
29+
30+
**Custom Permissions:**
31+
- **Microsoft.Web/sites permissions**: Read and write permissions to Azure Functions to create a Function App is required. [See the documentation to learn more about Azure Functions](https://docs.microsoft.com/azure/azure-functions/).
32+
- **1Password API Token**: A 1Password API Token is required. [See the documentation to learn more about the 1Password API](https://developer.1password.com/docs/events-api/reference). **Note:** A 1Password account is required
33+
34+
## Setup Instructions
35+
36+
> ⚠️ **Note**: These instructions were automatically generated from the connector's user interface definition file using AI and may not be fully accurate. Please verify all configuration steps in the Microsoft Sentinel portal.
37+
38+
>**NOTE:** This connector uses Azure Functions to connect to 1Password to pull logs into Microsoft Sentinel. This might result in additional data ingestion costs. Check the [Azure Functions pricing page](https://azure.microsoft.com/pricing/details/functions/) for details.
39+
40+
>**(Optional Step)** Securely store workspace and API authorization key(s) or token(s) in Azure Key Vault. Azure Key Vault provides a secure mechanism to store and retrieve key values. [Follow these instructions](https://docs.microsoft.com/azure/app-service/app-service-key-vault-references) to use Azure Key Vault with an Azure Function App.
41+
42+
**STEP 1 - Configuration steps for the 1Password API**
43+
44+
[Follow these instructions](https://support.1password.com/events-reporting/#appendix-issue-or-revoke-bearer-tokens) provided by 1Password to obtain an API Token. **Note:** A 1Password account is required
45+
46+
**STEP 2 - Deploy the functionApp using DeployToAzure button to create the table, dcr and the associated Azure Function**
47+
48+
>**IMPORTANT:** Before deploying the 1Password connector, a custom table needs to be created.
49+
50+
**3. Option 1 - Azure Resource Manager (ARM) Template**
51+
52+
This method provides an automated deployment of the 1Password connector using an ARM Tempate.
53+
54+
1. Click the **Deploy to Azure** button below.
55+
56+
[![Deploy To Azure](https://aka.ms/deploytoazurebutton)](https://aka.ms/sentinel-OnePassword-azuredeploy)
57+
2. Select the preferred **Subscription**, **Resource Group** and **Location**.
58+
3. Enter the **Workspace Name**, **Workspace Name**, **API Key**, and **URI**.
59+
- The default **Time Interval** is set to pull the last five (5) minutes of data. If the time interval needs to be modified, it is recommended to change the Function App Timer Trigger accordingly (in the function.json file, post deployment) to prevent overlapping data ingestion.
60+
- Note: If using Azure Key Vault secrets for any of the values above, use the`@Microsoft.KeyVault(SecretUri={Security Identifier})`schema in place of the string values. Refer to [Key Vault references documentation](https://docs.microsoft.com/azure/app-service/app-service-key-vault-references) for further details.
61+
4. Mark the checkbox labeled **I agree to the terms and conditions stated above**.
62+
5. Click **Purchase** to deploy.
63+
2564
[← Back to Connectors Index](../connectors-index.md)

Tools/Solutions Analyzer/connector-docs/connectors/1passwordccpdefinition.md

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,31 @@
1010

1111
The 1Password CCP connector allows the user to ingest 1Password Audit, Signin & ItemUsage events into Microsoft Sentinel.
1212

13+
## Permissions
14+
15+
**Resource Provider Permissions:**
16+
- **Workspace** (Workspace): Read and Write permissions are required.
17+
18+
**Custom Permissions:**
19+
- **1Password API token**: A 1Password API Token is required. See the [1Password documentation](https://support.1password.com/events-reporting/#appendix-issue-or-revoke-bearer-tokens) on how to create an API token.
20+
21+
## Setup Instructions
22+
23+
> ⚠️ **Note**: These instructions were automatically generated from the connector's user interface definition file using AI and may not be fully accurate. Please verify all configuration steps in the Microsoft Sentinel portal.
24+
25+
**1. STEP 1 - Create a 1Password API token:**
26+
27+
Follow the [1Password documentation](https://support.1password.com/events-reporting/#appendix-issue-or-revoke-bearer-tokens) for guidance on this step.
28+
29+
**2. STEP 2 - Choose the correct base URL:**
30+
31+
There are multiple 1Password servers which might host your events. The correct server depends on your license and region. Follow the [1Password documentation](https://developer.1password.com/docs/events-api/reference/#servers) to choose the correct server. Input the base URL as displayed by the documentation (including 'https://' and without a trailing '/').
32+
33+
**3. STEP 3 - Enter your 1Password Details:**
34+
35+
Enter the 1Password base URL & API Token below:
36+
- **Base Url**: Enter your Base Url
37+
- **API Token**: (password field)
38+
- Click 'connect' to establish connection
39+
1340
[← Back to Connectors Index](../connectors-index.md)

Tools/Solutions Analyzer/connector-docs/connectors/42crunchapiprotection.md

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,52 @@
1010

1111
Connects the 42Crunch API protection to Azure Log Analytics via the REST API interface
1212

13+
## Permissions
14+
15+
**Resource Provider Permissions:**
16+
- **Workspace** (Workspace): read and write permissions are required.
17+
- **Keys** (Workspace): read permissions to shared keys for the workspace are required. [See the documentation to learn more about workspace keys](https://docs.microsoft.com/azure/azure-monitor/platform/agent-windows#obtain-workspace-id-and-key).
18+
19+
## Setup Instructions
20+
21+
> ⚠️ **Note**: These instructions were automatically generated from the connector's user interface definition file using AI and may not be fully accurate. Please verify all configuration steps in the Microsoft Sentinel portal.
22+
23+
**1. Step 1 : Read the detailed documentation**
24+
25+
The installation process is documented in great detail in the GitHub repository [Microsoft Sentinel integration](https://github.com/42Crunch/azure-sentinel-integration). The user should consult this repository further to understand installation and debug of the integration.
26+
27+
**2. Step 2: Retrieve the workspace access credentials**
28+
29+
The first installation step is to retrieve both your **Workspace ID** and **Primary Key** from the Microsoft Sentinel platform.
30+
Copy the values shown below and save them for configuration of the API log forwarder integration.
31+
- **Workspace ID**: `WorkspaceId`
32+
> *Note: The value above is dynamically provided when these instructions are presented within Microsoft Sentinel.*
33+
- **Primary Key**: `PrimaryKey`
34+
> *Note: The value above is dynamically provided when these instructions are presented within Microsoft Sentinel.*
35+
36+
**3. Step 3: Install the 42Crunch protection and log forwarder**
37+
38+
The next step is to install the 42Crunch protection and log forwarder to protect your API. Both components are availabe as containers from the [42Crunch repository](https://hub.docker.com/u/42crunch). The exact installation will depend on your environment, consult the [42Crunch protection documentation](https://docs.42crunch.com/latest/content/concepts/api_firewall_deployment_architecture.htm) for full details. Two common installation scenarios are described below:
39+
**Installation via Docker Compose**
40+
41+
The solution can be installed using a [Docker compose file](https://github.com/42Crunch/azure-sentinel-integration/blob/main/sample-deployment/docker-compose.yml).
42+
43+
**Installation via Helm charts**
44+
45+
The solution can be installed using a [Helm chart](https://github.com/42Crunch/azure-sentinel-integration/tree/main/helm/sentinel).
46+
**4. Step 4: Test the data ingestion**
47+
48+
In order to test the data ingestion the user should deploy the sample *httpbin* application alongside the 42Crunch protection and log forwarder [described in detail here](https://github.com/42Crunch/azure-sentinel-integration/tree/main/sample-deployment).
49+
**4.1 Install the sample**
50+
51+
The sample application can be installed locally using a [Docker compose file](https://github.com/42Crunch/azure-sentinel-integration/blob/main/sample-deployment/docker-compose.yml) which will install the httpbin API server, the 42Crunch API protection and the Microsoft Sentinel log forwarder. Set the environment variables as required using the values copied from step 2.
52+
53+
**4.2 Run the sample**
54+
55+
Verfify the API protection is connected to the 42Crunch platform, and then exercise the API locally on the *localhost* at port 8080 using Postman, curl, or similar. You should see a mixture of passing and failing API calls.
56+
57+
**4.3 Verify the data ingestion on Log Analytics**
58+
59+
After approximately 20 minutes access the Log Analytics workspace on your Microsoft Sentinel installation, and locate the *Custom Logs* section verify that a *apifirewall_log_1_CL* table exists. Use the sample queries to examine the data.
60+
1361
[← Back to Connectors Index](../connectors-index.md)

0 commit comments

Comments
 (0)