Skip to content

Conversation

@pull
Copy link

@pull pull bot commented Feb 11, 2026

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

MWG-Logan and others added 15 commits January 12, 2026 15:18
feat(api): add reusable settings template endpoints and tests

feat(api): add reusable settings template standard and tests

feat(intune): enhance reusable settings handling in templates

adds reusable setting template reference from within intune templates. Attempts to acquire a template match by reusable setting disaplayname and references the discovered template if found. if not, creates a new template and references that. This also enhances the standards experience to allow for simply deploying your intune policy. Everything else is automatic.

fix: Apply suggestions from code review

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

fix(standards): change impact from High to Low

refactor(api): extract reusable setting sync to helper

Update Tests/Standards/Invoke-CIPPStandardReusableSettingsTemplate.Tests.ps1

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

test(tests): update assertions for New-GraphPOSTRequest

feat(api): add support for reusable settings in Intune policy

refactor(api): extract metadata removal function into helper

refactor(api): implement reusable settings discovery helper

chore(api): update added date for reusable settings template

refactor(api): remove package field from reusable setting templates

fix(api): undo over-zealous changes on existing file

refactor(api): enhance reusable settings discovery logic

refactor(api): remove unused reusable settings assignment

refactor(api): rename normalization function to approved verb

fix(api): change impact level from high to low

test(api): add metadata cleanup function to tests

refactor(api): ensure string serialization for RawJSON

refactor(api): optimize ReusableSettings initialization

fix(api): move helper functions into public

moving helper functions into public as that seems to be where the bulk of existing ones actually live

fix(api): clean up spacing and foreach childResults

refactor(api): optimize array handling in metadata removal

refactor(api): replace Write-Information with Write-Verbose for ReusableSettings logging

fix(tests): remove unused package field from test data

Update Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardIntuneTemplate.ps1

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
This fix resolves issue #5257 where Hudu sync was creating thousands
of duplicate user and device entries.

Root Cause:
- The $People and $HuduDevices collections were fetched once at the
  start of the sync process
- When new users/devices were created in Hudu during the sync, they
  were not added to these in-memory collections
- Subsequent iterations or sync runs would not find the newly created
  assets in the stale collections and create them again, leading to
  duplicates

Changes:
- Converted $People and $HuduDevices from static arrays to
  System.Collections.Generic.List[object] for efficient mutation
- Added newly created users to $People collection after creation
- Added newly created devices to $HuduDevices collection after creation
- This ensures the collections stay up-to-date during the sync process
  and prevents duplicate creation

Fixes: KelvinTegelaar/CIPP#5257

💘 Generated with Crush

Assisted-by: Claude Sonnet 4.5 via Crush <crush@charm.land>
Keep feature flag metadata in the static JSON and only store the enabled state in table storage. Get-CIPPFeatureFlag now returns Enabled from the table but sources Id/Name/Description/AllowUserToggle/Timers/Endpoints/Pages from FeatureFlags.json, and it inserts table entities with just RowKey and Enabled if missing. Set-CIPPFeatureFlag updates/creates table entries with only PartitionKey, RowKey, Enabled and LastModified (removed serialization of timers/endpoints/pages/name/description). Also update FeatureFlags.json for BestPracticeAnalyser: removed Type and clarified the deprecation description.
@pull pull bot locked and limited conversation to collaborators Feb 11, 2026
@pull pull bot added the ⤵️ pull label Feb 11, 2026
JohnDuprey and others added 11 commits February 11, 2026 17:21
Expand DKIM selection to include configs where either Selector1KeySize or Selector2KeySize equals 1024 and the config is enabled. Previously only Selector1KeySize was checked, which could miss keys needing rotation on Selector2.
Change HTTP method from GET to POST for domain analyzer
…eaks

Use reporting DB for signin report insead of lighthouse
Exclude JIT from "admin without MFA" alert
fix: Hudu sync creating duplicate users and devices
Add support for an Overwrite flag and logic to find & reuse existing templates/permission sets when creating app approval templates. Improve delegated permission handling by grouping multi-scope grants, preferring publishedPermissionScopes (with fallback to treat IDs as names), and adding diagnostics. Also adjust servicePrincipal fetch to request publishedPermissionScopes, reuse or generate PermissionSetId when updating, add stronger logging, and use -Force on table writes.
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants