sentinel-xdr-solution-deployer
Skill6.2k starsChanged 16 days agoMITView on GitHub
Deploy and verify Sentinel Analytic Rules and Defender XDR Custom Detections disabled in an approved non-production environment.
We split this skill into the rules it gives an agent
12 rules. About 0 are common, 10 are distinctive, and 2 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈10
Distinctive · estimate
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 8
Use this skill only after full validation and packaging have passed, or after the canonical workflow has accepted a fresh, applied partial …
- Distinctive: line 21
After the Qualification target is locked and before Discovery, review the current local scope plan and ask once for consent to the bounded …
- Distinctive: line 93
Use ARM validation or preview only when supported for the selected resource types and deployment features.
- Very specific: line 105
Before the write step, review the latest local Qualification deploymentPlanning scope and explicitly persisted component-specific planning …
- Distinctive: line 118
Do not require a separate pre-deployment check for whether every Sentinel Analytic Rule or Custom Detection already exists.
- Distinctive: line 174
Stop on unresolved conversion review, invalid KQL, missing entity mappings, duplicate IDs, or count mismatches within the exact selected …
- Distinctive: line 177
Never infer permission from Entra Global Administrator.
- Distinctive: line 179
Ask before launching interactive authentication.
- Distinctive: line 185
every requested ARM or Graph operation succeeds.
- Distinctive: line 187
every deployed rule is disabled.
- Distinctive: line 192
If Graph read permission is unavailable, report verification as blocked even when the write deployment reports success.
- Very specific: line 196
Do not enable a rule in this skill.
≈ “Common” is an estimate: at least 1 in 5 of the 308,232 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Deploy Sentinel and XDR detections safely
Use this skill only after full validation and packaging have passed, or after the canonical workflow has accepted a fresh, applied partial package meeting the strict over-50% threshold. For a partial package, deploy only the exact selected AR/CD content bound by its current package-selection plan; excluded items remain visible but are not deployment failures for that selected scope. Deployment is a write operation and always requires explicit user approval for the exact subscription, resource group, workspace, solution, and deployment mode.
Modes
One early scope-consent request
After the Qualification target is locked and before Discovery, review the current local scope plan and ask once for consent to the bounded potential action groups. Show the exact target, solution/version, inventory counts, eligible IDs and caps, current package identity, resource types, and which conditional prerequisites are proven, absent, or unknown. Include:
- disabled Sentinel alert-rule and Graph Custom Detection creation or reviewed updates;
- conditional fallback DCR/DCE creation;
- conditional creation of a proven-absent custom-log table;
- reviewed mock telemetry ingestion, including payload, records/batches, stream, estimated bytes/cost, and retention impact;
- controlled alert parity, with exact pairs, proposed time window, bounded enable/restore operations, and abort restoration;
- full-package installation and selected XDR Content Hub registration; and
- explicitly owned cleanup/deletion, listing exact resources and ownership evidence while excluding pre-existing or unowned resources.
Show a structured consent form with Approve the broadest currently bounded and available scope preselected as the suggested default, plus Select components, Revise the plan, and Decline advance consent. This default is only a proposal. Display each proposed component, cap, exact target, resource family, and package flag/value before asking the user to submit. Require affirmative submission/confirmation of the displayed scope before recording consent; a preselected choice alone, cancellation/closure, decline, or missing response records no approval. Permit narrowing, revision, or decline.
The suggested broad scope includes only components supported by the current
consent CLI and fully bound to current evidence. If available, it can include
the disabled Sentinel-AR/Graph-CD pair and separate later
fullPackageAcceptance. For package acceptance, show every exact current
package-selection flag and its boolean value. If the plan exposes five valid
flags and the broad proposal selects all five, list each flag by name with
true; never hide selections behind an “all” label or invent flags. Do not
silently include unknown/provisional ingestion, DCR/DCE, custom-table,
parity, or cleanup scopes. If the broadest scope cannot be fully bound, suggest
only the largest valid bounded subset and explicitly list unavailable or
excluded groups with reasons.
Persist only the exact, affirmatively submitted component and flag selection after verifying it against the current plan. Ask again only if the target, plan identity, action/resource families, payload, caps, package flags, or cleanup ownership changes. Missing or unknown scope is provisional, not unlimited; denial does not block independent read-only validation.
The current CLI can persist consent for the direct disabled AR/CD pair,
fullPackageAcceptance, mockTelemetryIngestion, fallbackDcr,
fallbackDce, and customTableCreate. controlledAlertParity is planning
metadata only until a finite test window and complete batch fixture plan are
bound; ownedResourceCleanup is unsupported because there is no exact
run-owned deletion inventory or deletion executor. Do not invent CLI
component names or represent either as consented. Previous narrow DCR/DCE
consent does not imply ingestion, parity enablement, package acceptance, or
cleanup consent.
Authentication, Entra admin consent, role assignments, and permission readiness are separate from both advance planning consent and final resource write approval. None implies another.
Package acceptance
Validate and optionally deploy Package\mainTemplate.json as a complete
solution package. For a partial package, V3.1 has already restricted that
template to the validated selected content; never repopulate it by scanning
excluded YAML.
DeployAnalyticsRule=trueselects Sentinel Analytic Rule content.DeployCustomDetection=trueselects both Defender XDR Custom Detection installation and Content Hub registration, independently of Sentinel content. Both selections may be true. Use only parameters declared by the package.
Use ARM validation or preview only when supported for the selected resource
types and deployment features. Bicep extensibility imports do not support
what-if (Microsoft Learn: unsupported deployment
features);
do not pass or wait for a what-if result for that route. An ordinary ARM
preview cannot prove extension acceptance, and ARM validation does not validate
extension behavior. Registration support remains unverified; emitted templates
are not proof of live acceptance. The obsolete RegisterE5Content and
E5Flavor controls are not declared. Exact-scope approval must explicitly
include registration when selecting CDs. Existing instances are not disabled or
removed by these switches.
Before the write step, review the latest local Qualification
deploymentPlanning scope and explicitly persisted component-specific
planning consent. If the bound plan is unchanged, do not repeat the broad
planning question. Planning consent is not write authority. Immediately before
each bounded write operation or batch, show its exact scope and obtain fresh
explicit approval. A single approval may cover the enumerated resource/API
operations in that batch; it need not be repeated for every HTTP request.
Require a new approval if any operation expands beyond the batch. Missing or
stale planning consent, permissions, or successful preflight does not
substitute for the immediate gate.
Repeatable rule deployment in a lab
Do not require a separate pre-deployment check for whether every Sentinel
Analytic Rule or Custom Detection already exists. For the same reviewed
identities and locked, approved non-production target, the Sentinel command
uses PUT on the deterministic alert-rule resource ID to create or update the
rule idempotently for the same ID and payload; rules remain disabled.
The alert-rule-template API is a catalog read surface, not a resource created
by this deployment command.
The current Graph deployer derives xdr-<source-rule-GUID> and internally
GETs that exact ID, POSTs only when it is absent, or PATCHes when present,
then performs required read-back verification. This is repeatable at the
supported CLI workflow level for the reviewed ID; it is not a guarantee that
arbitrary Graph POST calls are idempotent. The separate
preflight-deployment exact-rule read is an optional diagnostic, not proof of
ownership or deployment readiness. The Graph deployment command still
requires its own GET; the current preflight also performs exact-ID reads and
can block on a denied read. These backend checks cannot be skipped by changing
instructions. Do not bypass them with direct API calls or blindly retry an
ambiguous write. If an existing ID has uncertain ownership or content, stop
for maintainer review rather than overwriting it.
This repeatability applies only to the exact reviewed solution content in the locked approved lab, under the existing exact-scope approval, permission, disabled-state, and verification gates. It does not authorize production writes, changes to unrelated resources, or overwriting enabled or unowned content.
Alert-parity preparation
Deploy each selected reviewed pair disabled. For an applied partial package, the deterministic deployment commands consume the selection-bound source and Custom Detection lists, not every file in their folders:
sentinel-xdr-migration deploy-analytic-rules `
--solution "<solution-path>" `
--workspace-resource-id "<workspace-arm-id>"
sentinel-xdr-migration deploy --solution "<solution-path>"The first command writes
Solutions\<solution>\Logs\sentinel-xdr-migration\<run-id>\deployment.sentinel.json. The
second writes
Solutions\<solution>\Logs\sentinel-xdr-migration\<run-id>\deployment.graph.json.
Safety gates
Before any write:
- Confirm the target is a non-production lab.
- Show the subscription, resource group, workspace, tenant, solution, package version, mode, exact resource IDs, operation types, and count.
- Immediately before the bounded operation/batch, require explicit approval for those exact values and the listed writes.
- Confirm every Custom Detection YAML has
properties.status: disabled. - Stop on unresolved conversion review, invalid KQL, missing entity mappings, duplicate IDs, or count mismatches within the exact selected scope. Excluded item failures remain separately reported and do not expand the deploy set.
- Never infer permission from Entra Global Administrator. Verify Azure RBAC and Microsoft Graph Custom Detection scopes separately.
- Ask before launching interactive authentication.
Verification
Deployment passes only when:
- every requested ARM or Graph operation succeeds;
- deployed AR and CD IDs match the reviewed source manifest;
- every deployed rule is disabled;
- display names, queries, schedules, severities, tactics, and entity mappings match the generated artifacts; and
- the deployment reports contain no failed or silently skipped item.
If Graph read permission is unavailable, report verification as blocked even when the write deployment reports success. Do not claim live status solely from the source template.
Do not enable a rule in this skill. Rule enablement belongs exclusively to
sentinel-xdr-alert-parity-validator, which must disable every test rule on
completion or abort.
Trending
More talk lately.about the whole repository
Who's talking about Azure/Azure-Sentinel
- @github-trending.bsky.social“📦 Azure / Azure-Sentinel ⭐ 4,774 (+3) 🗒 Python Cloud-native SIEM for intelligent security analytics for …”Bluesky · Feb 12, 2025 · 2 likes
- pulumi/pulumi-cloud-requests“Logs automated export into Azure Storage Account and/or Log Analytics Workspace”GitHub · Aug 9, 2024 · 2 reactions
- octocat/Spoon-Knife“**Describe the bug**”GitHub · Jun 11, 2022 · 2 reactions
- redaliscbe/Azure-Sentinel“Feature 1”GitHub · Jul 8, 2026 · 1 reactions
- Stack Overflow“How do I search through the in Sentinel Workbooks stored queries?”Stack Overflow · Aug 12, 2024 · 1 votes
The biggest 5 of 57 mentions linking to the repository that our crawl found. Each line is their own headline.
See all 57
Talked about on GitHub, Stack Overflow and Bluesky (57 times).
On GitHub · 43
- Aug 9, 2024Logs automated export into Azure Storage Account and/or Log Analytics Workspace — pulumi/pulumi-cloud-requests2 reactions · 1 comment
- Jun 11, 2022**Describe the bug** — octocat/Spoon-Knife2 reactions
- Jul 8, 2026Feature 1 — redaliscbe/Azure-Sentinel1 reaction
- Dec 3, 2020Updat the Entity eum to include all the new types — wortell/AZSentinel1 reaction
- Oct 29, 2026Daily catalog: Iwatobi, SCuBA, AI scanning, and GCP detections — amcamillo/Cybersecurity_Tools0 reactions
38 more on GitHub
- Oct 15, 2026Support reviewed workbook updates with clean public artifacts and local audit evidence — oferInbar/Azure-Sentinel0 reactions
- Sep 28, 2026Mxdr 5375 v1 sentinel ccf multitenant — V1ManagedServices/Azure-Sentinel0 reactions
- Sep 22, 2026Main to master — idoshabi07/Azure-Sentinel0 reactions
- Sep 22, 2026Main — idoshabi07/Azure-Sentinel0 reactions
- Sep 15, 2026Release/3.75.0 — ccx-mss/Azure-Sentinel0 reactions
- Sep 14, 2026Release/3.75.0 — ccx-mss/Azure-Sentinel0 reactions · 1 comment
- Sep 9, 2026Create connector-builder-agent configuration — fuqing04/Azure-Sentinel0 reactions
- Aug 16, 2026Add dual-signal containment gate community plugin — Azure/Security-Copilot0 reactions
- Aug 16, 2026Add dual_signal_containment_gate custom function — phantomcyber/playbooks0 reactions
- Aug 10, 2026Semperis Lightning 4.1.0: merge CCF into existing offer (Function App + CCF) — MitchellGulledge3/Azure-Sentinel0 reactions · 5 comments
- Aug 10, 2026RFPD-77178: log ingestion api (v3.0) — recordedfuture/Azure-Sentinel0 reactions
- Jun 4, 2026Change api — adutt-commvault/Azure-Sentinel0 reactions
- May 21, 2026Update README with contribution guidelines and resources — vikorium/Azure-Sentinel0 reactions
- May 18, 2026Add weekly Azure Sentinel connector report workflow — fuqing04/sentinel-agent-runner0 reactions
- Mar 17, 2026Feat sar 46819 — sonraisecurity/Azure-Sentinel0 reactions
- Feb 27, 2026Update requirements.txt — daneshelias01/Azure-Sentinel0 reactions
- Jan 20, 2026test — BC-47/Azure-Sentinel0 reactions
- Jan 16, 2026Add new entry to ExclusionListForASimTests.csv — v-sabiraj/Azure-Sentinel0 reactions
- Mar 13, 2025Create Cholitas — GravityFallsInc/GravityFalls_Sentinel0 reactions
- Sep 10, 2024Patch-1 — mpmisha/Azure-Sentinel0 reactions
- Jul 11, 2024 - added metadata tags to incident description — synack/Azure-Sentinel0 reactions
- Jan 12, 2024Added local changes for test — SmitR01/Azure-Sentinel0 reactions
- Nov 9, 2023Create dsdsadasda — aviatam/Azure-Sentinel0 reactions · 1 comment
- Aug 24, 2023Praveenthepro patch 1 1 — praveenthepro/Azure-Sentinel0 reactions
- Jul 31, 2023seraphic security connector — LihiAtzmoni1/Azure-Sentinel0 reactions · 1 comment
- Jun 1, 2023Automation test — cohesity/Azure-Sentinel0 reactions
- May 4, 2023Just a demo branch to show right structure of the installation and co… — cohesity/Azure-Sentinel0 reactions
- Dec 6, 2022Cmmc2.0 — cwling75/AzureSentinel0 reactions
- Dec 2, 2022Just initialize this new branch for Cohesity internal collaboration/r… — cohesity/Azure-Sentinel0 reactions · 4 comments
- Aug 5, 2022Create intrigus-lgtm.txt — intrigus-lgtm/Azure-Sentinel0 reactions
- Jun 7, 2022Yaronfr/log4j 1 — qusaiismail/Sentinel0 reactions
- May 30, 2022test new script — sivanguetta/Azure-Sentinel0 reactions · 1 comment
- May 30, 2022test — sivanguetta/Azure-Sentinel0 reactions · 1 comment
- May 26, 2022Run ASIM testers on 'eco-connector-test' workspace — sivanguetta/Azure-Sentinel0 reactions · 1 comment
- May 19, 2022Run ASIM testers on 'eco-connector-test' workspace — sivanguetta/Azure-Sentinel0 reactions · 1 comment
- May 2, 2022[Asim] test kqlFuncYaml2Arm on ASimProcessEvent folder — sivanguetta/Azure-Sentinel0 reactions · 1 comment
- Apr 26, 2022Test GitHub action that generates ARM templates from KQL — sivanguetta/Azure-Sentinel0 reactions
- Feb 14, 2022Google Workspace connector: Don't use pickle — r4vi/Azure-Sentinel0 reactions
On Stack Overflow · 13
- Aug 12, 2024How do I search through the in Sentinel Workbooks stored queries?1 vote
- Apr 3, 2019Azure log analytics: monitoring successful sign-ins following repeated sign-in failures1 vote
- Sep 29, 2024KQL for exfiltration of files/data ...almost there but slightly wrong0 votes · 1 answer
- Aug 8, 2024How do I search through the in Sentinel Workbooks stored queries?0 votes
- May 1, 2024Trying to set Azure Activity Log from Tenant Root(all subscriptions) getting Resource Provider Error0 votes · 1 answer
8 more on Stack Overflow
- Apr 11, 2024Azure Sentinel Incident Trigger in Logic Apps Automation Delay0 votes
- Nov 17, 2023Need Assistance with collecting O365 Audit Logs with function app and directing them to Event Hub0 votes · 1 answer
- Oct 21, 2022Azure Sentinel Sample data CSV0 votes · 1 answer
- Oct 12, 2022AZURE sentinel query to log off Azure remote session for user0 votes
- Feb 4, 2022Integration issues with Microsoft Sentinel and ServiceNow and Get Etag0 votes
- Dec 13, 2021How to detect when a security incident occurs0 votes
- Jul 1, 2021Download multiple file from GitHub public repos without git0 votes
- Feb 13, 2020Creating a Pull Request in Azure sentinel Repository0 votes · 1 answer
On Bluesky · 1
- Feb 12, 2025📦 Azure / Azure-Sentinel ⭐ 4,774 (+3) 🗒 Python Cloud-native SIEM for intelligent security analytics for your entire enterprise. — @github-trending.bsky.social2 likes and reposts
In this repository30 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- .github/copilot-instructions.mdCopilot instructions
- Tools/Microsoft-Sentinel-Classic-CLv1-Tables-Impact-Assessment/.github/copilot-instructions.mdCopilot instructions
- .cursor/rules/sentinel-xdr-migration.mdcCursor rule
- sentinel-xdr-migrationSkill
- asim-parser-create-parameter-parserSkill
- asim-parser-create-parserSkill
- asim-parser-creator-orchestratorSkill
- asim-parser-filter-validatorSkill
- asim-parser-github-pr-packagerSkill
- asim-parser-la-deployerSkill
- asim-parser-pr-reviewerSkill
- asim-parser-user-prompterSkill
- asim-parser-validatorSkill
- az-cli-command-runnerSkill
- azure-monitor-logs-ingestionSkill
- log-analytics-workspace-queryerSkill
- run-solution-analyzerSkill
- sentinel-solution-mock-data-generationSkill
- sentinel-solution-optional-testingSkill
- sentinel-xdr-alert-parity-validatorSkill
- sentinel-xdr-dependency-helperSkill
- sentinel-xdr-detection-validatorSkill
- sentinel-xdr-end-to-end-orchestratorSkill
- sentinel-xdr-migration-orchestratorSkill
- sentinel-xdr-rule-converterSkill
- sentinel-xdr-solution-packagerSkill
- solution-release-notes-updaterSkill
- update-solution-analyzerSkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

