Skip to content

Commit 0a24960

Browse files
committed
Merge branch 'master' into dependabot/pip/Solutions/Google-Cloud-Platform-Cloud-Monitoring/Data-Connectors/aiohttp-3.13.4
2 parents 199e5d5 + 79d2a96 commit 0a24960

File tree

340 files changed

+25602
-2501
lines changed

Some content is hidden

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

340 files changed

+25602
-2501
lines changed

.github/instructions/detections.instructions.md

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -317,6 +317,26 @@ Analytic Rules are YAML files that define scheduled queries to detect threats, s
317317
- Must include all connectors required for query execution
318318
- Specify exact data types needed
319319
- Use official connector IDs
320+
321+
#### **connectorId Validation**
322+
- **Source of Truth**: All `connectorId` values must be validated against the official list:
323+
```
324+
https://github.com/Azure/Azure-Sentinel/blob/master/.script/tests/detectionTemplateSchemaValidation/ValidConnectorIds.json
325+
```
326+
- **Validation Process**:
327+
- Check if the `connectorId` value exists in ValidConnectorIds.json
328+
- If NOT found: Flag as invalid and request update to ValidConnectorIds.json
329+
- Case-sensitive matching required
330+
- **Valid Examples**:
331+
- `CiscoDuoSecurity` ✅ (exists in valid list)
332+
- `AzureActiveDirectory` ✅ (exists in valid list)
333+
- `CiscoASA` ✅ (exists in valid list)
334+
- **Invalid Examples**:
335+
- `CiscoDuo` ❌ (correct ID is `CiscoDuoSecurity`)
336+
- `AzureAD` ❌ (correct ID is `AzureActiveDirectory`)
337+
- `CustomConnectorXYZ` ❌ (not in official list - needs to be added to ValidConnectorIds.json)
338+
- **Action if Invalid**:
339+
- Comment: "connectorId `[value]` is not found in the ValidConnectorIds.json file. Please update ValidConnectorIds.json to include this connector or use a valid connector ID from the official list."
320340
321341
#### **entityMappings** (Entity Extraction)
322342
- **Required**: Yes for Detections

.github/instructions/huntingqueries.instructions.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,24 @@ Hunting Queries are YAML files that define proactive search queries in Microsoft
7575
- **Instead do this** (specific and clear):
7676
- ✅ "Calculate the count of BytesIn per Source-Destination pair over 12/24 hours. Higher values may indicate beaconing. C2 servers reply with the same data, making BytesIn value the same."
7777

78+
#### **description-detailed** (Extended Description - Optional)
79+
- **Required**: No (optional field)
80+
- **When to Use**: When the description exceeds 255 characters and additional context is needed
81+
- **Format**: Extended narrative text (no hard character limit)
82+
- **Rules**:
83+
- Only use if `description` field cannot adequately convey the hunting methodology within 255 characters
84+
- Provides supplementary information about the query purpose, methodology, or hunt rationale
85+
- Can include more detailed explanation of patterns, thresholds, and threat indicators
86+
- Can provide context about why certain data sources or time windows were chosen
87+
- Useful for complex hunts that require deeper explanation
88+
- **When NOT to Use**:
89+
- If the 255-character description is sufficient
90+
- If the additional content is just repetition of the description
91+
- For implementation details or technical KQL explanations
92+
- **Example Usage**:
93+
- **description**: "Identify service accounts with unusually high failed login attempts within a short timeframe, which may indicate credential compromise or brute force attacks."
94+
- **description-detailed**: "This hunt searches for service accounts that experience more than 10 failed login attempts within a 1-hour window across multiple workstations. Service accounts should typically have successful logins; repeated failures may indicate credential compromise, brute force attempts, or misconfigured applications. Focus on investigating the affected workstations and reviewing access logs for those time periods. Check if any recent password changes or security alerts occurred before the failed attempts."
95+
7896
#### **requiredDataConnectors** (Data Sources)
7997
- **Required**: Yes
8098
- **Type**: Array of objects with `connectorId` and `dataTypes`

.github/instructions/releasenotes.instructions.md

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,25 @@ Exactly three columns in this order:
3030
| **No Duplicates** | Each version must appear only once | 3.0.1 appears twice | Each version appears once |
3131
| **All 3 Columns Present** | Table must have exactly 3 columns, no more, no less | 2 columns or 4 columns | Exactly 3 columns |
3232

33+
## When to Update Release Notes
34+
35+
Release notes **MUST be updated** for any of the following changes:
36+
37+
- **Content changes**: Modifications to Analytical Rules, Hunting Queries, Workbooks, Data Connectors, or any other solution content
38+
- **Package folder changes**: ANY changes to files in `Solutions/{SolutionName}/Package/` folder (metadata, configurations, solution settings)
39+
- **Parser/Function updates**: Changes to KQL parsers or custom functions
40+
- **Documentation updates**: Updates to README or other documentation files
41+
- **Bug fixes**: Any bug fixes to existing content
42+
- **Performance improvements**: Optimizations to queries or logic
43+
- **New content**: Addition of new Analytical Rules, Workbooks, Hunting Queries, etc.
44+
- **Deprecated content**: Marking components as deprecated or removing content
45+
46+
Release notes are **NOT required** for:
47+
- Changes only to non-solution files (e.g., standalone scripts outside Solutions folder)
48+
- Documentation-only PRs that don't affect solution content
49+
50+
**Important:** If your PR includes changes to `Solutions/{SolutionName}/Package/` folder, updating ReleaseNotes.md is mandatory. Failure to update release notes when package folder changes will result in PR review failure.
51+
3352
## Best Practices
3453

3554
- **Clear descriptions:** Specify which component changed (e.g., "Updated query in **Analytical Rule**", "Fixed bug in **Data Connector**")

.github/instructions/solution-data.instructions.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,9 @@ All Solution_*.json files must contain these mandatory fields:
3535
**Naming Requirements:**
3636
- Use official product/vendor names when possible
3737
- Match the solution folder name (converted appropriately)
38-
- **Only alphanumeric characters (a-z, A-Z, 0-9) and spaces allowed**
39-
- No special characters including hyphens, underscores, dots, or symbols
38+
- **Alphanumeric characters (a-z, A-Z, 0-9), spaces, and parentheses allowed**
39+
- Parentheses can be used for acronyms and short forms (e.g., "Visa Threat Intelligence (VTI)")
40+
- No other special characters including hyphens, underscores, dots, or symbols
4041
- Maximum length: 100 characters
4142
- Must be unique across all solutions
4243

0 commit comments

Comments
 (0)