Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
8722 commits
Select commit Hold shift + click to select a range
abbd65b
Merge pull request #1915 from Zacgoose/standards-fix-spf-bypass
KelvinTegelaar Mar 17, 2026
583ac21
Merge pull request #1913 from kris6673/adminRoles-MFA
KelvinTegelaar Mar 17, 2026
7a4ef66
Merge pull request #1910 from Zacgoose/disable-guest-accounts
KelvinTegelaar Mar 17, 2026
6072ee8
Merge pull request #1912 from luimen6/feat/tenant-group-usage-report
KelvinTegelaar Mar 17, 2026
8af3285
remove requieing as its no longer needed in next release
KelvinTegelaar Mar 17, 2026
8919863
fix: offboarding not running for offloading
JohnDuprey Mar 17, 2026
0051057
feat: add script to regenerate intuneCollection.json
kris6673 Mar 17, 2026
3ef2df3
chore: update intuneCollection.json
kris6673 Mar 17, 2026
0d1f744
refactor: streamline user offboarding and improve task scheduling logic
JohnDuprey Mar 17, 2026
7c73b31
fix: missing param
JohnDuprey Mar 17, 2026
c30aa8b
fix: mandatory param
JohnDuprey Mar 17, 2026
a30d281
chore: update default version to 10.2.4 in host.json and version_late…
JohnDuprey Mar 17, 2026
c0a9460
Merge pull request #1918 from KelvinTegelaar/dev
JohnDuprey Mar 17, 2026
219e68b
Fixes johns booboo
KelvinTegelaar Mar 18, 2026
f5fdcf4
v up
KelvinTegelaar Mar 18, 2026
3a00e51
Merge pull request #1919 from KelvinTegelaar/dev
KelvinTegelaar Mar 18, 2026
094ff2b
Replace += usage
sw-bencarrier Mar 18, 2026
1db8de5
fix: improve error handling and logging for webhook alerts
JohnDuprey Mar 18, 2026
63d3b00
fix(add-user): separate username copyField from display label
kris6673 Mar 18, 2026
a01ce89
Test with split data queries.
KelvinTegelaar Mar 18, 2026
433ef94
Merge branch 'dev' of https://github.com/KelvinTegelaar/CIPP-API into…
KelvinTegelaar Mar 18, 2026
c3dbea0
fix: omit userType from Autopilot OOBE settings in self-deploying mode
ZenTopBrandon Mar 18, 2026
5dce35e
add some profiling
KelvinTegelaar Mar 18, 2026
d184e34
groups
KelvinTegelaar Mar 18, 2026
037ac58
feat: added remaining options for Teams Global Meeting Policy standard
RSI-KaleGraybill Mar 18, 2026
0555087
v up in case we hf
KelvinTegelaar Mar 18, 2026
e04ae5c
feat: add ability to edit existing User Default Templates
Mar 18, 2026
cf748f6
Merge pull request #1926 from RSI-KaleGraybill/dev
KelvinTegelaar Mar 18, 2026
379e664
Merge pull request #1921 from kris6673/username-clipboard-label
KelvinTegelaar Mar 18, 2026
c7fc92d
Merge pull request #1925 from luimen6/feat/edit-user-default-templates
KelvinTegelaar Mar 18, 2026
f337555
Merge pull request #1904 from luimen6/feat/jit-group-membership
KelvinTegelaar Mar 18, 2026
2d96010
Merge pull request #1917 from benzzc/standard-comparison-fix
KelvinTegelaar Mar 18, 2026
1f03dc4
Merge pull request #1920 from kris6673/intunecollection-update
KelvinTegelaar Mar 18, 2026
5ae9927
Merge pull request #1923 from ZenTopBrandon/bug/autopilot-profile-sta…
KelvinTegelaar Mar 18, 2026
83fd3e7
fix: enable MDE connector before applying settings
JohnDuprey Mar 18, 2026
79d9ca6
fix: include headers in raw response output
JohnDuprey Mar 18, 2026
e82aaf4
feat: add date range filtering for incidents
kris6673 Mar 18, 2026
9178206
Improvements to mailbox cache sizes
KelvinTegelaar Mar 18, 2026
36ab59b
Merge branch 'dev' of https://github.com/KelvinTegelaar/CIPP-API into…
KelvinTegelaar Mar 18, 2026
1db85d2
CalCachedFolderCount - faster processing by killing at least 1 request.
KelvinTegelaar Mar 18, 2026
d5e686f
Use Graph lookup and update mail contact
Zacgoose Mar 19, 2026
5918e13
fix: improve MDE Connector handling and update compliance settings
JohnDuprey Mar 19, 2026
07f4754
Merge branch 'dev' of https://github.com/KelvinTegelaar/CIPP-API into…
JohnDuprey Mar 19, 2026
8c542e8
Fix for repoting outlook button sendto email
Zacgoose Mar 19, 2026
b45cbfb
Updates standard to use graph where possible and deprecate remediatio…
Zacgoose Mar 19, 2026
742fc67
fix: Get-CIPPAlertExpiringLicenses.ps1
bastiaanvandenbussche Mar 19, 2026
973b5a1
Update Set-CIPPMailboxRule.ps1
TecharyJames Mar 19, 2026
5834025
Update Set-CIPPMailboxRule.ps1
TecharyJames Mar 19, 2026
f26d398
Updates standard to use graph where possible and deprecate remediatio…
KelvinTegelaar Mar 19, 2026
2da43f2
Fix: Reporting outlook button sendto email standard (#1930)
KelvinTegelaar Mar 19, 2026
0766fc1
Use Graph lookup and update mail contact (#1929)
KelvinTegelaar Mar 19, 2026
d81f98c
Fix/bec mailbox rules (#1934)
KelvinTegelaar Mar 19, 2026
deddfc2
fix: Get-CIPPAlertExpiringLicenses.ps1 (#1933)
KelvinTegelaar Mar 19, 2026
852a72d
feat: Add date range filtering for incidents (#1927)
KelvinTegelaar Mar 19, 2026
4a14318
feat: Enhance MX record change logging with structured output
kris6673 Mar 19, 2026
407f9c1
feat: Improve license utilization alert structure
kris6673 Mar 19, 2026
2985129
fix: Update troubleshooting links in GDAP relationship checks
bmsimp Mar 19, 2026
5250fc3
fix: Update environment variable retrieval for orchestrator and offlo…
JohnDuprey Mar 19, 2026
fc0c864
fix: Remove extraneous backticks
kris6673 Mar 19, 2026
3ce505b
refactor: massive changes handle with care (#1937)
KelvinTegelaar Mar 19, 2026
213cda2
Update troubleshooting links in GDAP relationship checks (#1936)
KelvinTegelaar Mar 19, 2026
aac2f4e
refactor: replace bulk Graph request with per-method foreach loop
kris6673 Mar 19, 2026
0e246b2
v up
KelvinTegelaar Mar 19, 2026
951d2db
Dev to hf (#1939)
KelvinTegelaar Mar 19, 2026
c30c96a
support group memberships in user templates and filter unavailable li…
Mar 19, 2026
5ecdc29
fix: text replacement for when tenant filter is unspecified
JohnDuprey Mar 20, 2026
94c0157
feat: Enhance security and functionality across multiple modules
JohnDuprey Mar 20, 2026
db380d0
Fix: Silly issue with removing legacy addins
Zacgoose Mar 20, 2026
1fc8a50
Fix: Silly issue with removing legacy addins (#1943)
KelvinTegelaar Mar 20, 2026
e5da743
Update Add-CIPPW32ScriptApplication.ps1
TecharyJames Mar 20, 2026
4f4eb48
fix: Optimize tenant processing by pre-expanding tenant groups in aud…
JohnDuprey Mar 21, 2026
2ef12d9
fix(groups): sanitize mailNickname for security group creation
Mar 21, 2026
963a98e
fix(group-templates): add validation for username and groupType
Mar 21, 2026
b25e385
feat(security): add MDE onboarding status report with caching
Mar 22, 2026
121a2cb
pr
Zacgoose Mar 22, 2026
0e4d015
Revert "pr"
Zacgoose Mar 22, 2026
92c41ae
feat: add group membership support to user templates
Mar 22, 2026
5132af4
feat: Add Invoke-ExecCompareIntunePolicy function
kris6673 Mar 21, 2026
88d4002
Refactor: MFA method removal to individual requests (#1938)
KelvinTegelaar Mar 22, 2026
ba8713b
feat: add MDE onboarding status report with caching (#1949)
KelvinTegelaar Mar 22, 2026
698e11c
Feat/variables in intune custom application (#1944)
KelvinTegelaar Mar 22, 2026
d6975d2
Fix: Make API client creation more resilient for entra replication time
Zacgoose Mar 23, 2026
f0fe415
Namespace scoped variable protection
Zacgoose Mar 23, 2026
8484e39
cleanup code
Mar 23, 2026
60e57dd
cleanup unnecessary checks
Mar 23, 2026
11c6bc0
fix: cleanup of standard template when removed
JohnDuprey Mar 23, 2026
c396867
fix: update inclusion/exclusion logic for tenant alignment
JohnDuprey Mar 23, 2026
cecaff6
fix: add initialDomainName support to logs and exo request
JohnDuprey Mar 23, 2026
c85052a
Add cmdlets to remove extension API keys
Zacgoose Mar 24, 2026
1eb4862
Add standardized webhook schema support
Zacgoose Mar 24, 2026
1d546e1
fix: Check extension standard
JohnDuprey Mar 24, 2026
152153e
feat: Check browser extension improvements
JohnDuprey Mar 24, 2026
a39e57f
fix: update extension name
JohnDuprey Mar 24, 2026
9916990
feat: Add OOO calendar options for Exchange (#1911)
JohnDuprey Mar 24, 2026
71468ca
fix: optimize role member retrieval in Invoke-ListRoles function
JohnDuprey Mar 24, 2026
8dc3091
Merge branch 'dev' of https://github.com/KelvinTegelaar/CIPP-API into…
JohnDuprey Mar 24, 2026
ab9cb1d
Add litigation/retention mailbox fields
Zacgoose Mar 25, 2026
452b987
Add webhook auth and tenant filter support
Zacgoose Mar 25, 2026
083040d
Add username space handling to user defaults
Zacgoose Mar 25, 2026
a48bc46
Add cmdlets to remove extension API keys (#1956)
KelvinTegelaar Mar 25, 2026
3b48260
Add username space handling to user defaults (#1959)
KelvinTegelaar Mar 25, 2026
f0a1227
Add litigation/retention mailbox fields (#1958)
KelvinTegelaar Mar 25, 2026
f47fb05
Fix: sanitize mailnickname (#1948)
KelvinTegelaar Mar 25, 2026
e73af4d
Feat: Add standardized webhook schema support and authentication meth…
KelvinTegelaar Mar 25, 2026
5b2797b
Fix: Make API client creation more resilient for entra replication ti…
KelvinTegelaar Mar 25, 2026
79a2c7b
Merge branch 'dev' into feat/create-template-from-user
KelvinTegelaar Mar 25, 2026
a1b9730
feat: support group memberships in user templates and filter unavaila…
KelvinTegelaar Mar 25, 2026
15fdda2
String lists and arrays can be dumb
rvdwegen Mar 25, 2026
4a08c8b
Get-CIPPAlertLongLivedAppCredentials backend
rvdwegen Mar 25, 2026
23fea8a
Add app and service principal expiry checks
Zacgoose Mar 25, 2026
056f915
Get-CIPPAlertRoleEscalableGroups
rvdwegen Mar 25, 2026
9c6a684
fix: promote nested component values to top level in standard templat…
JohnDuprey Mar 25, 2026
02bd795
fix: ensure ExecutedTime is cleared for one-time task reruns in Invok…
JohnDuprey Mar 25, 2026
e8c0d32
refactor: Defender deployment into separate helper scripts
JohnDuprey Mar 25, 2026
8e6b320
refactor: Move all orchestrator invocations to Start-CIPPOrchestrator
JohnDuprey Mar 25, 2026
20e2ce9
fix: limit record type filters to improve search performance
JohnDuprey Mar 25, 2026
de7a1ef
fix: ensure orchestrator tables are created before processing input
JohnDuprey Mar 25, 2026
f90fa92
refactor: use Add-CIPPGroupMember for group assignment in user creation
Mar 25, 2026
59e63b3
Add Invoke-CIPPStandardColleagueImpersonationAlert function
chris-dewey-1991 Mar 25, 2026
6ef0ca9
fix: Add InvokingCommand to webhook alert test
JohnDuprey Mar 25, 2026
f0a15bf
fix: add AnyTenant designation for access checks
JohnDuprey Mar 25, 2026
cd28fd8
chore: fix write-host logging for storage commands
JohnDuprey Mar 25, 2026
2d9f247
Filter SMTP sign-ins by date range
Zacgoose Mar 26, 2026
f8eeeb6
chore: update license files to newest MS version
kris6673 Mar 26, 2026
133fdd4
Add Invoke-CIPPStandardColleagueImpersonationAlert function (#1961)
KelvinTegelaar Mar 26, 2026
109d4e1
Fixes double compressed input object being passed to CIPPOrchestrator
Zacgoose Mar 26, 2026
8cd39e2
Fixes double compressed input object being passed to CIPPOrchestrator…
Zacgoose Mar 26, 2026
23d24d4
Add app and service principal expiry checks (#1960)
KelvinTegelaar Mar 26, 2026
544bc72
chore: Update license files to latest Microsoft version (#1963)
KelvinTegelaar Mar 26, 2026
d108dd0
feat: Intune Policy Comparison endpoint and comparison engine fixes (…
KelvinTegelaar Mar 26, 2026
053946d
Feat: Filter SMTP sign-ins by date range (#1962)
KelvinTegelaar Mar 26, 2026
eaa6894
Merge branch 'dev' into custom-scripts
KelvinTegelaar Mar 26, 2026
57359c7
Custom Scripts Test System (#1815)
KelvinTegelaar Mar 26, 2026
00e3185
feat: Add API endpoints for Intune Application Deployment Templates (…
KelvinTegelaar Mar 26, 2026
bafec9c
Merge branch 'dev' into feat/add-groups-to-user-template
KelvinTegelaar Mar 26, 2026
ab098b3
feat: add group membership support to user templates (#1952)
KelvinTegelaar Mar 26, 2026
0fdab99
fix because wrong commit picked
KelvinTegelaar Mar 26, 2026
a738b56
fix: improve tenant group management
JohnDuprey Mar 26, 2026
d8f1856
Merge branch 'dev' of https://github.com/KelvinTegelaar/CIPP-API into…
JohnDuprey Mar 26, 2026
35c7fb8
feat: add GroupType property to group objects in Get-TenantGroups fun…
JohnDuprey Mar 26, 2026
6e216e6
small fixes to make things prettier.
KelvinTegelaar Mar 26, 2026
5190635
group duplicate fix.
KelvinTegelaar Mar 26, 2026
52d538b
fix: handle duplicate group and location matches in New-CIPPCAPolicy …
JohnDuprey Mar 26, 2026
d42f25d
fixes group adding
KelvinTegelaar Mar 26, 2026
941e521
Merge branch 'dev' of https://github.com/KelvinTegelaar/CIPP-API into…
KelvinTegelaar Mar 26, 2026
e0fcf7c
Fix group based removal #5673
KelvinTegelaar Mar 26, 2026
d73587e
manage secrets and certs
rvdwegen Mar 26, 2026
fa674f8
Reporting DB manual run fix
Zacgoose Mar 27, 2026
7ddb4ff
Fix: Reporting DB manual run fix (#1965)
Zacgoose Mar 27, 2026
6305f38
chore: Update SAM permissions
JohnDuprey Mar 27, 2026
c4d7587
Run custom scripts as individual CIPP tests
Zacgoose Mar 27, 2026
9ac00ae
enable/disable actions
Zacgoose Mar 27, 2026
02415dc
Merge branch 'dev' into exo-mailbox-SOA
kris6673 Mar 27, 2026
fc86b9e
Make cache task creation more durable
Zacgoose Mar 27, 2026
f60fa12
Merge pull request #3 from KelvinTegelaar/dev
TecharyJames Mar 27, 2026
572633b
feat: Local dev - Add Proxyman CA support in Docker and profile
JohnDuprey Mar 27, 2026
a839a6c
Tweaks
Zacgoose Mar 27, 2026
022d169
Tweaks (#1969)
Zacgoose Mar 27, 2026
956900b
Fix: Make cache task creation more durable (#1966)
KelvinTegelaar Mar 27, 2026
f56b353
feat: Add Copilot readiness tests
JohnDuprey Mar 27, 2026
e595e8a
fix: Handle QuarantineTemplate in drift and alignment functions
JohnDuprey Mar 27, 2026
c30cbdc
fix: copilot readiness tests to use reports.office.com endpoint
JohnDuprey Mar 27, 2026
978659d
fix: reschedule onboarding to continue +15 minutes after relationship…
JohnDuprey Mar 27, 2026
bcd5d6a
feat: Add more Copilot & Purview cache tasks and readiness tests
JohnDuprey Mar 27, 2026
9b12354
feat: Implement Invoke-ListGraphReports function for report retrieval
JohnDuprey Mar 27, 2026
0f59cc4
stuff for report builder
KelvinTegelaar Mar 28, 2026
17e7d09
stuff for report builder
KelvinTegelaar Mar 28, 2026
4d6269c
new report builder
KelvinTegelaar Mar 28, 2026
4fe5620
fix: Improve app name formatting in Copilot readiness reports and set…
JohnDuprey Mar 28, 2026
5f2ca52
fix: permission with some reports requiring delegated
JohnDuprey Mar 28, 2026
eff725b
remove a bit of slop
KelvinTegelaar Mar 28, 2026
0c236c9
Merge branch 'dev' into custom-scripts-fixes
Zacgoose Mar 28, 2026
0fc469d
Fix: Custom scripts fixes (#1967)
Zacgoose Mar 28, 2026
9aed799
Report stuff
KelvinTegelaar Mar 29, 2026
f94b579
Merge branch 'dev' of https://github.com/KelvinTegelaar/CIPP-API into…
KelvinTegelaar Mar 29, 2026
9bb1a61
Merge pull request #7 from KelvinTegelaar/dev
TecharyJames Mar 29, 2026
4639bcc
Update New-CIPPAPIConfig.ps1
TecharyJames Mar 29, 2026
1954f46
feat: add support for AllTenants in various endpoints
kris6673 Mar 28, 2026
ec3d650
Fix Teams Phone DIDs removal failing due to missing Content-Type head…
Mar 29, 2026
ebb2bcd
refactor: Optimize tests to run per suite
JohnDuprey Mar 30, 2026
3792c1d
Support custom report updates, prebuilt report fixes
Zacgoose Mar 30, 2026
ce310f7
new generic reports
KelvinTegelaar Mar 30, 2026
46f0488
more generic reports
KelvinTegelaar Mar 30, 2026
72cc73a
more tests and standards.json update
KelvinTegelaar Mar 30, 2026
1e4459e
more tests and standards.json update
KelvinTegelaar Mar 30, 2026
7f0ba27
Support custom report updates, prebuilt report fixes (#1973)
JohnDuprey Mar 30, 2026
3a19557
Fix: Teams Phone DIDs removal failing due to missing Content-Type hea…
JohnDuprey Mar 30, 2026
696c206
Fix: Fixes comparison and application of appIDs
Zacgoose Mar 31, 2026
f37c9fd
Fix: SafeLinks Policy Template Standard Deployment
Zacgoose Mar 31, 2026
6f6ebca
Fix: Business phone not saving to user template
Zacgoose Mar 31, 2026
802afee
Feat: New Exchange Cloud Management for on-premises mailboxes standar…
KelvinTegelaar Mar 31, 2026
b184de2
add the option for db blocks
KelvinTegelaar Mar 31, 2026
7ff39fe
added option to email attachments
KelvinTegelaar Mar 31, 2026
394c16d
feat: Add support for dynamic date in API parameters
JohnDuprey Mar 31, 2026
dab46b9
test updates counts
KelvinTegelaar Mar 31, 2026
fb181ab
Merge branch 'dev' of https://github.com/KelvinTegelaar/CIPP-API into…
KelvinTegelaar Mar 31, 2026
841950c
fix: block time settings on linux dynamic sku
JohnDuprey Mar 31, 2026
2afa187
Merge branch 'dev' of https://github.com/KelvinTegelaar/CIPP-API into…
JohnDuprey Mar 31, 2026
2ab1f34
Fix: respect secret expiration restrictions for app registrations (#1…
KelvinTegelaar Mar 31, 2026
4a3f393
feat: More pages gets to have alltenant support
kris6673 Mar 31, 2026
5e67b3f
chore: add new notice for deprecated endpoint
JohnDuprey Apr 1, 2026
7f44c3d
Fix: always wrap payload in array for predictable structure
Zacgoose Apr 1, 2026
1f6d765
remove exec sam setup line, deprecated endpoint
KelvinTegelaar Apr 1, 2026
9aed291
feat: Add AllTenants support across multiple endpoints (#1971)
KelvinTegelaar Apr 1, 2026
9ae8be3
refactor: alerts return object and not just strings (#1935)
KelvinTegelaar Apr 1, 2026
9040695
Fix: only return ID and name for transport rule configuration in stan…
Zacgoose Apr 1, 2026
ddd605e
fix(intune): enhance deletion detection for policies
MWG-Logan Apr 1, 2026
a287cb2
fix(cache): clear Intune policy tracking data during cache removal
MWG-Logan Apr 1, 2026
c8c3121
feat: Enhance CIPP Stats Timer to include managed devices and policy …
JohnDuprey Apr 1, 2026
6a4a7da
Fix: drift intune deletion detection (#1975)
KelvinTegelaar Apr 1, 2026
68f6539
Fix: cache clear drift (#1976)
KelvinTegelaar Apr 1, 2026
212e3a1
fix: sanitize values for OData filters to prevent injection vulnerabi…
JohnDuprey Apr 2, 2026
b320146
fix: retry parameters for GDAP onboarding task
JohnDuprey Apr 2, 2026
bc2012e
fix: sanitize GUID and ID values in various templates to prevent inje…
JohnDuprey Apr 2, 2026
5a93dcd
fix: enhance tenant filtering in database queries to ensure valid ten…
JohnDuprey Apr 2, 2026
abf6a31
fix: update tenant onboarding function to use sanitized GUID for data…
JohnDuprey Apr 2, 2026
b124eb8
fix: change GUID type to string for safe ID conversion in onboarding …
JohnDuprey Apr 2, 2026
1bd328a
introduce alert snooze
KelvinTegelaar Apr 2, 2026
5b3076c
introduce alert snooze
KelvinTegelaar Apr 2, 2026
a317f8b
fix: update IntuneTemplate compliance report to reflect post-remediat…
MWG-Logan Apr 2, 2026
9561a1e
added access alert
KelvinTegelaar Apr 2, 2026
b5640e8
added access alert
KelvinTegelaar Apr 2, 2026
66af4f9
Fix: API client re-try creation and fix when adding existing new client
Zacgoose Apr 2, 2026
2e9a2b4
Update New-CIPPAPIConfig.ps1
Zacgoose Apr 2, 2026
0546303
added permanent deny
KelvinTegelaar Apr 2, 2026
dff0c8d
Merge branch 'dev' of https://github.com/KelvinTegelaar/CIPP-API into…
KelvinTegelaar Apr 2, 2026
d43abce
block list templates
KelvinTegelaar Apr 2, 2026
51033f0
block list templates
KelvinTegelaar Apr 2, 2026
2c6851f
refactor: Update GUID handling to use String type and add Repair-CIPP…
JohnDuprey Apr 2, 2026
439ed9f
Merge branch 'dev' of https://github.com/KelvinTegelaar/CIPP-API into…
JohnDuprey Apr 2, 2026
f433271
new standards for defender
KelvinTegelaar Apr 2, 2026
bf7487f
new standards for defender
KelvinTegelaar Apr 2, 2026
4f1cdc1
fixes multiple
KelvinTegelaar Apr 2, 2026
82d84d0
tenant template
KelvinTegelaar Apr 2, 2026
a48d098
Fix: intune drift remediate duds (#1977)
KelvinTegelaar Apr 2, 2026
b528847
fix: correct db request issue and add safe filter strings
JohnDuprey Apr 2, 2026
5d73985
Revert "feat: Add AllTenants support across multiple endpoints"
KelvinTegelaar Apr 2, 2026
bfd739f
Revert "feat: Add AllTenants support across multiple endpoints" (#1978)
KelvinTegelaar Apr 2, 2026
baf1e3f
feat: improve intune policy support for alltenants using the ReportDB
JohnDuprey Apr 3, 2026
b1bf38c
Creation of Standard for Quarantine Notification Settings
chris-dewey-1991 Apr 3, 2026
5966faf
Update added date for Global Quarantine Settings
chris-dewey-1991 Apr 3, 2026
5928395
Feat/add quarantine notification settings standard (#1980)
KelvinTegelaar Apr 3, 2026
9b236fb
fixes table button tenant allow list
KelvinTegelaar Apr 3, 2026
0e298ca
feat: optimize service principal retrieval and caching in permission …
JohnDuprey Apr 3, 2026
686c0c1
fix: DeniedRemediate silently fails for bundled Intune templates
MWG-Logan Apr 3, 2026
18d28ec
Fix: Intune bundle drift remediation (#1982)
JohnDuprey Apr 3, 2026
8e9fbd3
Rename CIPPStandardGlobalQuarantineSettings.ps1 to Invoke-CIPPStandar…
Zacgoose Apr 4, 2026
5b2420a
feat: refactor CIPPTimer to use cronos and support timezones
JohnDuprey Apr 5, 2026
e36569d
feat: load timezone in env and update logging partition key
JohnDuprey Apr 5, 2026
6c3d8b8
feat: update Invoke-ListLogs to support timezone-aware date filtering
JohnDuprey Apr 5, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
Binary file added .DS_Store
Binary file not shown.
1 change: 1 addition & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
local.settings.json
22 changes: 22 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# Editor configuration, see http://editorconfig.org
root = true

[*]
charset = utf-8
indent_style = space
insert_final_newline = true

[*.{ps1, psd1, psm1}]
indent_size = 4
end_of_line = lf
trim_trailing_whitespace = true

[*.json]
indent_size = 2
end_of_line = lf
trim_trailing_whitespace = true

[*.{md, txt}]
end_of_line = crlf
max_line_length = off
trim_trailing_whitespace = false
7 changes: 7 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
FUNCTIONS_WORKER_RUNTIME='powershell'
FUNCTIONS_WORKER_RUNTIME_VERSION='7.4'
AzureWebJobsStorage='DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNoBnZf6KgBVU4=;BlobEndpoint=http://azurite:10000/devstoreaccount1;QueueEndpoint=http://azurite:10001/devstoreaccount1;TableEndpoint=http://azurite:10002/devstoreaccount1;'
DEV_SKIP_BPA_TIMER='true'
DEV_SKIP_DOMAIN_TIMER='true'
FUNCTIONS_EXTENSION_VERSION='4'
NonLocalHostAzurite='true'
13 changes: 13 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
* text=lf

*.txt text eol=crlf
*.md text eol=crlf

*.ps1 text eol=lf
*.psd1 text eol=lf
*.psm1 text eol=lf

*.json text eol=lf

*.png binary
*.jpg binary
113 changes: 113 additions & 0 deletions .github/agents/CIPP-Alert-Agent.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,113 @@
---
# Fill in the fields below to create a basic custom agent for your repository.
# The Copilot CLI can be used for local testing: https://gh.io/customagents/cli
# To make this agent available, merge this file into the default repository branch.
# For format details, see: https://gh.io/customagents/config

name: CIPP Alert Engineer
description: >
Implements and maintains CIPP tenant alerts in PowerShell using existing CIPP
patterns, without touching API specs, avoiding CodeQL, and using
Test-CIPPStandardLicense for license/SKU checks.
---

# CIPP Alert Engineer

## Mission

You are an expert CIPP alert engineer for the CIPP repository.

Your job is to implement, update, and review **alert-related functionality** in CIPP, following existing repository patterns and conventions. You primarily work on:

- Creating new `Get-CIPPAlert*` PowerShell functions
- Adjusting existing alert logic when requested
- Ensuring alerts integrate cleanly with the existing scheduler and alerting framework
- Performing light validation and linting

You **must follow all constraints in this file** exactly.

---

## Scope of Work

Use this agent when a task involves:

- Adding a new alert (e.g. “implement alert for X condition”)
- Modifying logic of an existing alert
- Investigating how alerts are scheduled, run, or configured
- Performing small refactors or improvements to alert-related PowerShell code

You **do not** make broad architectural changes. Keep changes focused and minimal.

---

## Key Directories & Patterns

When working on alerts, you should:

1. **Discover existing alerts and patterns**
- Use shell commands to explore:
- `Modules/CIPPCore/Public/Alerts/`
- Inspect several existing alert files, e.g.:
- `Modules/CIPPCore/Public/Alerts/Get-CIPPAlertNoCAConfig.ps1`
- Other `Get-CIPPAlert*.ps1` files
- Understand how alerts are **named, parameterized, and how they call Graph / Exo and helper functions**.

2. **Follow the standard alert pattern**
- Alert functions live in:
`Modules/CIPPCore/Public/Alerts/`
- Alert functions are named:
`Get-CIPPAlert<Something>.ps1`
- Typical characteristics:
- Standard parameter set, including `TenantFilter` and similar common params.
- Uses CIPP helper functions like:
- `New-GraphGetRequest` / other Graph or Exo helpers
- `Write-AlertTrace` for emitting alert results
- Uses CIPP logging and error-handling patterns (try/catch, consistent message formatting).

3. **Rely on existing module loading**
- The CIPP module auto-loads `Public` functions recursively.
- **Do not** modify module manifest or loader behavior just to pick up your new alert.

---

## Critical Constraints

You **must** respect all of these:

### 1. Always follow existing CIPP alert patterns

When adding or modifying alerts:

- Use the **same structure** as existing `Get-CIPPAlert*.ps1` files:
- Similar function signatures
- Similar logging and error handling
- Same approach to returning alert data via `Write-AlertTrace`
- Reuse helper functions instead of inlining raw Graph calls or custom HTTP code, whenever possible.
- Keep alert behavior predictable and consistent with existing alerts.

### 2. No CodeQL runs

- **Do not** invoke CodeQL or similar heavy security tooling in your workflow.
- Rely on:
- PowerShell syntax checking
- `PSScriptAnalyzer`
- Manual/code-review style reasoning for security (no secrets, least privilege, etc.)

### 3. License / SKU checks must use `Test-CIPPStandardLicense`

When an alert depends on a tenant having certain SKUs or capabilities, you **must**:

- Use `Test-CIPPStandardLicense`
- Do **not** manually inspect SKUs, raw license IDs, or raw capability lists.

Example pattern (adapt to the specific feature):

```powershell
$TestResult = Test-CIPPStandardLicense -StandardName 'AutopilotProfile' -TenantFilter $Tenant -RequiredCapabilities @(
'INTUNE_A',
'MDM_Services',
'EMS',
'SCCM',
'MICROSOFTINTUNEPLAN1'
)
142 changes: 142 additions & 0 deletions .github/agents/CIPP-Standards-Agent.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,142 @@
---
name: CIPP Standards Engineer
description: >
This agent creates a new standard based on existing standards inside of the CIPP codebase.
The agent must never modify any other file or perform any other change than creating a new standard.
---

# CIPP Standards Engineer

name: CIPP Alert Engineer
description: >
Implements and maintains CIPP tenant alerts in PowerShell using existing CIPP
patterns, without touching API specs, avoiding CodeQL, and using
Test-CIPPStandardLicense for license/SKU checks.
---

# CIPP Alert Engineer

## Mission

You are an expert CIPP Standards engineer for the CIPP repository.

Your job is to implement, update, and review **Standards-related functionality** in CIPP, following existing repository patterns and conventions. You primarily work on:

- Creating new `Invoke-CIPPStandard*` PowerShell functions
- Adjusting existing standard logic when requested
- Ensuring standards integrate into the frontend by returning the correct information
- Performing light validation and linting

You **must follow all constraints in this file** exactly.

---

## Scope of Work

Use this agent when a task involves:

- Adding a new standard (e.g. “implement a standard to enable the audit log”)

You **do not** make broad architectural changes. Keep changes focused and minimal.

---

## Key Directories & Patterns

When working on alerts, you should:

1. **Discover existing alerts and patterns**
- Use shell commands to explore:
- `Modules/CIPPCore/Public/Standards/`
- Inspect several existing alert files, e.g.:
- `\Modules\CIPPCore\Public\Standards\Invoke-CIPPStandardAddDKIM.ps1`
- `\Modules\CIPPCore\Public\Standards\Invoke-CIPPStandardlaps.ps1`
- `\Modules\CIPPCore\Public\Standards\Invoke-CIPPStandardOutBoundSpamAlert.ps1`
- Other `Invoke-CIPPStandard*.ps1` files
- Understand how alerts are **named, parameterized, and how they call Graph / Exo and helper functions**.

2. **Follow the standard alert pattern**
- Alert functions live in:
`Modules/CIPPCore/Public/Standardss/`
- Alert functions are named:
`Invoke-CIPPStandardAddDKIM.ps1`
- Typical characteristics:
- Standard parameter set, including `Tenant` and `Settings` which can be a complex object with subsettings, and similar common params.
- Uses CIPP helper functions like:
- `New-GraphGetRequest` for any graph requests
- `New-ExoReques` for creating exo requests
- Uses CIPP logging and error-handling patterns (try/catch, consistent message formatting).
- Each standard requires a Remediate, alert, and report section.

3. **Rely on existing module loading**
- The CIPP module auto-loads `Public` functions recursively.
- **Do not** modify module manifest or loader behavior just to pick up your new standard.

---

## Critical Constraints

You **must** respect all of these:

### 1. Always follow existing CIPP alert patterns

When adding or modifying alerts:

- Use the **same structure** as existing `Invoke-CIPPStandard*.ps1` files:
- Similar function signatures
- Similar logging and error handling
- Reuse helper functions instead of inlining raw Graph calls or custom HTTP code.
- Keep behaviour predictable.

### 2. Return the code for the frontend.

The frontend requires a section to be changed in standards.json. This is an example JSON payload:

```json
{
"name": "standards.MailContacts",
"cat": "Global Standards",
"tag": [],
"helpText": "Defines the email address to receive general updates and information related to M365 subscriptions. Leave a contact field blank if you do not want to update the contact information.",
"docsDescription": "",
"executiveText": "Establishes designated contact email addresses for receiving important Microsoft 365 subscription updates and notifications. This ensures proper communication channels are maintained for general, security, marketing, and technical matters, improving organizational responsiveness to critical system updates.",
"addedComponent": [
{
"type": "textField",
"name": "standards.MailContacts.GeneralContact",
"label": "General Contact",
"required": false
},
{
"type": "textField",
"name": "standards.MailContacts.SecurityContact",
"label": "Security Contact",
"required": false
},
{
"type": "textField",
"name": "standards.MailContacts.MarketingContact",
"label": "Marketing Contact",
"required": false
},
{
"type": "textField",
"name": "standards.MailContacts.TechContact",
"label": "Technical Contact",
"required": false
}
],
"label": "Set contact e-mails",
"impact": "Low Impact",
"impactColour": "info",
"addedDate": "2022-03-13",
"powershellEquivalent": "Set-MsolCompanyContactInformation",
"recommendedBy": []
},
```

the name of the standard should be standards.<standardname>. e.g. Invoke-CIPPStandardMailcontacts becomes standards.Mailcontacts.

Added components might be required to populate the $settings variable. for example addedcomponent "standards.MailContacts.GeneralContact" becomes $Settings.GeneralContact

When creating the PR, return the json in the PR text so a frontend engineer can update the frontend repository.
8 changes: 8 additions & 0 deletions .github/pull.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
version: "1"
rules:
- base: master
upstream: KelvinTegelaar:master
mergeMethod: merge
- base: dev
upstream: KelvinTegelaar:dev
mergeMethod: none
62 changes: 62 additions & 0 deletions .github/workflows/PR_Branch_Check.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
name: PR Branch Check

on:
# Using pull_request_target instead of pull_request for secure handling of fork PRs
pull_request_target:
# Only run on these PR events
types: [opened, synchronize, reopened]
# Only check PRs targeting these branches
branches:
- main
- master

permissions:
pull-requests: write
issues: write

jobs:
check-branch:
runs-on: ubuntu-latest
steps:
- name: Check and Comment on PR
# Only process fork PRs with specific branch conditions
# Must be a fork AND (source is main/master OR target is main/master)
if: |
github.event.pull_request.head.repo.fork == true &&
((github.event.pull_request.head.ref == 'main' || github.event.pull_request.head.ref == 'master') ||
(github.event.pull_request.base.ref == 'main' || github.event.pull_request.base.ref == 'master'))
uses: actions/github-script@v7
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
let message = '';

message += '🔄 If you are attempting to update your CIPP repo please follow the instructions at: https://docs.cipp.app/setup/self-hosting-guide/updating ';
message += '\n\n';

// Check if PR is targeting main/master
if (context.payload.pull_request.base.ref === 'main' || context.payload.pull_request.base.ref === 'master') {
message += '⚠️ PRs cannot target the main branch directly. If you are attempting to contribute code please PR to the dev branch.\n\n';
}

// Check if PR is from a fork's main/master branch
if (context.payload.pull_request.head.repo.fork &&
(context.payload.pull_request.head.ref === 'main' || context.payload.pull_request.head.ref === 'master')) {
message += '⚠️ This PR cannot be merged because it originates from your fork\'s main/master branch. If you are attempting to contribute code please PR from your dev branch or another non-main/master branch.\n\n';
}

message += '🔒 This PR will now be automatically closed due to the above violation(s).';

// Post the comment
await github.rest.issues.createComment({
...context.repo,
issue_number: context.issue.number,
body: message
});

// Close the PR
await github.rest.pulls.update({
...context.repo,
pull_number: context.issue.number,
state: 'closed'
});
Loading