Add output and docs for defender to securitysuite transition - #2283
Add output and docs for defender to securitysuite transition#2283DickTracyII wants to merge 6 commits into
Conversation
d0a6c9b to
d3958ab
Compare
skirkpatrickMSFT
left a comment
There was a problem hiding this comment.
Overall, I see good progress, but I think an update is needed.
Issue: defender-to-securitysuite-transition.md lines 126-138 are out of sync with the code
The doc says:
You will see a Defender migration warning for each of the following situations:
and lists 4 bullet points (deprecated product name, deprecated section, migrated policy ID, removed policy ID). The example output on line 138 shows:
"Defender migration warning: Policy ID 'MS.DEFENDER.2.1v1' has been migrated to..."
But the actual code in ScubaConfigValidator.psm1 uses "Policy migration warning:" for migrated/removed policy IDs (not "Defender migration warning:"). Only the first two warnings (deprecated product name and deprecated section) use the Defender migration warning: prefix.
You can verify from my output — the legacy defender config produced:
"--- Defender migration warnings ---
Defender migration warning: The product name 'defender' is deprecated...
Defender migration warning: The 'Defender' configuration section is deprecated...
--- Other warnings --- ← lands here, not above
Policy migration warning: Policy ID 'MS.DEFENDER.2.1v1' has been migrated to...
Policy migration warning: Policy ID 'MS.DEFENDER.1.1v1' has been migrated to..."
Consequence: The "Defender migration warnings" bucket pattern in ScubaConfigDefaults.json (^Defender\s+migration\s+warning:) doesn't match "Policy migration warning:", so those warnings fall into "Other warnings" and only get the generic recommended action — not the defenderMigration recommended action. A user who has only migrated policy IDs (without defender in ProductNames or a Defender: section) won't see the migration-specific recommended action block at all (the warning text itself does still reference the docs, so it's not a total loss).
Suggested fixes:
- Update the doc's "Validator warnings" section to distinguish Defender migration warning: (for the two Defender-specific items) from Policy migration warning: (for migrated/removed policy IDs)
- Update the example console output to show Policy migration warning: instead of Defender migration warning: for the policy ID line
3.Optionally add a "Policy migration warnings" pattern bucket in [ScubaConfigDefaults.json] so those warnings also get the defenderMigration recommended action, or broaden the existing pattern
d3958ab to
cba1689
Compare
this makes sense but just so I understand better |
…security suite in both invoke-scuba -Productnames and configFilePath
88a2c8d to
3adc8fb
Compare
You hit the nail on the head! |


Add output and docs for Defender-to-SecuritySuite transition
🗣 Description
Adds user-facing guidance and configuration validation to help users migrate from the deprecated
defenderproduct to the renamedsecuritysuitebaseline.docs/configuration/defender-to-securitysuite-transition.mdexplaining the rename, the migrated policy IDs, and the recommended actions.Orchestrator.psm1): accounts forsecuritysuitein bothInvoke-SCuBA -ProductNamesand-ConfigFilePathcode paths, and emits a RECOMMENDED ACTION block when a legacy Defender config is detected.ScubaConfigValidator.psm1): newValidateDefenderMigrationlogic that warns when a config:defendervalue inProductNames,Defendersection, ormappings\scuba-baseline-policy-migrations.csv).Policy migration warning:prefix instead ofDefender migration warning:, since the migration mapping also includesAAD/EXOversion bumps (e.g.MS.AAD.3.2v1→MS.AAD.3.2v2) that are not Defender policies. The two genuinely Defender-specific warnings (deprecateddefenderproduct name and deprecatedDefenderconfig section) keep their Defender-specific wording.ScubaConfigDefaults.jsonandconfiguration.md.💭 Motivation and context
The Defender product was renamed to
securitysuiteand many Defender, Exchange Online, and Teams policies were migrated into theMS.SECURITYSUITE.*baseline. Existing configuration files referencingdefenderor old policy IDs previously ran with no guidance, or surfaced confusing warnings (anAADpolicy migration was mislabeled as a "Defender migration warning"). This change gives users clear, accurate warnings and documentation on how to update their configs.Closes #2262
🧪 Testing
Ran
Invoke-SCuBA -ConfigFilePathagainst ternant config files containing legacy references and confirmed:defenderinProductNames+ anOmitPolicyforMS.DEFENDER.1.1v1produces the Defender rename warning, the policy-ID migration warning (MS.DEFENDER.1.1v1→MS.SECURITYSUITE.1.4v1), and the RECOMMENDED ACTION block.MS.AAD.3.2v1andMS.EXO.2.2v2now reportsPolicy migration warning:(notDefender migration warning:) pointing toMS.AAD.3.2v2andMS.EXO.2.2v3.Reviewers can reproduce by running
Invoke-SCuBA -ConfigFilePath <legacy.yaml>and inspecting theConfiguration validation found X warningsoutput, or by running the ScubaConfig unit tests underTesting/Unit/PowerShell/ScubaConfig/.📷 Screenshots (if appropriate)
Running config with defender:

Running config with securitysuite

Running

Invoke-Scubawith defender (no config)✅ Pre-approval checklist
✅ Pre-merge checklist
PR passed smoke test check.
PR/feature branch passes functional tests for relevant products, if applicable.
Feature branch has been rebased against changes from parent branch, as needed.
Use
Update branchbutton below or use this reference to rebase from the command line.Resolved all merge conflicts on branch.
Squash all commits into one PR level commit using the
Squash and mergebutton.✅ Post-merge checklist