Summary
This release delivers new analytics capability (RRCF outlier detection), expanded cloud detection coverage (Prisma Cloud AWS), and a modernization of authentication by moving Defender data providers to OAuth2 with corrected scopes. It also fixes several reliability issues (MSI auth logic, KQL timezone handling, query value escaping), updates visualization and widget code for Bokeh 3.7 and Python 3.12, tightens typing (mypy/key vault), and refreshes CI/publish infrastructure and supported Python versions. Users of Defender integrations should review and update scopes/config before upgrading.
๐ New Features
- RRCF Outlier Detection (random cut forest) adds a new anomaly detection method for telemetry analysis. (PR #846)
- Prisma Cloud AWS detection enhancement broadens cloud security coverage. (PR #847)
๐ Authentication & Authorization Changes (Action Recommended)
- Defender APIs migrated to OAuth2 with corrected/normalized scopes. Update any legacy scope/resource configurations in
msticpyconfig.yaml
(e.g., adopt.default
scopes) before upgrading. (PR #856)
๐ Enhancements & Refactors
- Bokeh 3.7 compatibility adjustments. (PR #843)
- Query time widget: remove Python 3.12 deprecation warnings + richer typing. (PR #849)
- Key Vault client mypy/type fixes improving static analysis fidelity. (PR #852)
๐ Bug Fixes
- MSI authentication logic corrected for Managed Identity scenarios. (PR #844)
- Proper escaping of single quotes inside list query elements to avoid malformed queries. (PR #851)
- KQL timezone handling fixed for accurate temporal queries. (PR #850)
- OAuth scope validation/normalization as part of Defender OAuth2 shift. (PR #856)
๐งช Analytics & Data Quality
- RRCF anomaly scoring (PR #846) enables ensemble-based outlier detection.
- Enhanced Prisma Cloud AWS detections (PR #847) improve coverage.
๐งฐ Developer Experience / Code Quality
๐ CI / Build / Release Infrastructure
- Azure Pipelines PyPI publish workflow updated. (PR #845)
- Supported Python build versions refreshed. (PR #853)
- PyPI publish action bumped (1.5.1 โ 1.13.0). (PR #854)
โ ๏ธ Potential Breaking / Behavior Changes
- Defender provider auth: legacy non-OAuth2 or incorrect scope names will fail until configs updated. (PR #856)
- Timezone fix may adjust timestamp normalization. (PR #850)
๐ Upgrade Checklist
- Update Defender provider scopes to OAuth2
.default
values. - Test a minimal Defender query after reconnect.
- Validate time range widgets for expected timezone behavior.
- Integrate RRCF if desired.
- Align local Python with updated CI matrix.
- Run static checks to adjust for stricter typing.
๐ Contributors
@ianhelle, @FlorianBracq, @Tatsuya-hasegawa, @raj-axe, @dependabot
PR Reference Index
- Bokeh 3.7 fixes โ #843
- Fix logic issue with MSI auth โ #844
- Update azure-pipelines-publish-pypi.yml โ #845
- Add rrcf outlier โ #846
- Prismacloud_aws_detection_enhancement โ #847
- [nbwidgets] Querytime Python 3.12 deprecation + typing โ #849
- Fix kql timezone support โ #850
- Escape single quotes for list elements from queries โ #851
- Addressing mypy errors in keyvault_client โ #852
- Updating Python build versions โ #853
- Bump pypa/gh-action-pypi-publish 1.5.1 โ 1.13.0 โ #854
- Move Defender APIs to OAuth2, fix invalid scopes โ #856
Full Changelog: v2.16.2...v2.17.0