Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
6015 commits
Select commit Hold shift + click to select a range
d37f630
Support missing CIDR prefix and dedupe maxBits calc
JohnDuprey Feb 20, 2026
f674c92
Normalize default tenant groups JSON
JohnDuprey Feb 20, 2026
b6e89c2
Add log entry to Invoke-AddAlert
JohnDuprey Feb 20, 2026
5f240c1
fix quarantine return
JohnDuprey Feb 20, 2026
e9a01a9
Add cleanup rule and use OData timestamp filters
JohnDuprey Feb 21, 2026
80c4477
cleanup logging
JohnDuprey Feb 21, 2026
68e8562
Fix drift comparison issue for NotifyOutboundSpamRecipients
chris-dewey-1991 Feb 22, 2026
d06acf0
Fix self-service license handling and logging
chris-dewey-1991 Feb 22, 2026
518d970
Use Graph bulk API and improve group handling
JohnDuprey Feb 23, 2026
aa885f1
Standardize log severity and propagate headers
JohnDuprey Feb 23, 2026
fdc5462
Add Invoke-ListDBCache HTTP entrypoint
JohnDuprey Feb 23, 2026
641a37a
Update Invoke-CIPPStandardUserSubmissions.ps1
TecharyJames Feb 23, 2026
fa42620
Better tenant lookup
Feb 23, 2026
362cdac
removed for prettiness sake
KelvinTegelaar Feb 23, 2026
affc8b8
Merge branch 'dev' of https://github.com/KelvinTegelaar/CIPP-API into…
KelvinTegelaar Feb 23, 2026
6c38c16
Add device local admin standard function
Zacgoose Feb 24, 2026
d8318a8
Merge pull request #1843 from Zacgoose/local-admin
KelvinTegelaar Feb 24, 2026
6c57949
Merge pull request #1840 from chris-dewey-1991/StandardDisableSelfSer…
KelvinTegelaar Feb 24, 2026
4633840
Merge pull request #1842 from TecharyJames/User-Submissions--fix
KelvinTegelaar Feb 24, 2026
57cab3b
Merge pull request #1839 from chris-dewey-1991/StandardOutBoundSpamAlert
KelvinTegelaar Feb 24, 2026
7baeb92
fixes setup wizard to allow temproary headers.
KelvinTegelaar Feb 24, 2026
ee5b862
Merge branch 'dev' of https://github.com/KelvinTegelaar/CIPP-API into…
KelvinTegelaar Feb 24, 2026
c6d1a49
remove secret logging line for local dev
KelvinTegelaar Feb 24, 2026
68bbf04
fixed #5444
KelvinTegelaar Feb 24, 2026
7f1ed60
contact emails
KelvinTegelaar Feb 24, 2026
4ff8732
maximum kilobytes of internet(fixes remove empty array and returns it…
KelvinTegelaar Feb 24, 2026
733ca03
Add remediate/report to proper StandardTemplate object
JohnDuprey Feb 24, 2026
7ec3326
bump version
JohnDuprey Feb 24, 2026
8433bf1
Merge pull request #1844 from KelvinTegelaar/dev
JohnDuprey Feb 24, 2026
6b344a5
feat(vacation-mode): add mailbox scheduling, calendar permissions, an…
kris6673 Feb 23, 2026
0a43c2d
Replace New-CippDbRequest with New-ExoRequest
TecharyJames Feb 25, 2026
b877566
Fix: Update GDAP relationship check to use 15-role recommended group set
Copilot Feb 25, 2026
de9eab1
Merge pull request #1847 from Zacgoose/Update-GDAP-relationship-check
KelvinTegelaar Feb 25, 2026
b3a0bc3
Merge pull request #1846 from TecharyJames/disableSMTPAuth-fix
KelvinTegelaar Feb 25, 2026
b51a860
Normalize licenses and batch user lookups
Zacgoose Feb 25, 2026
3c7bb47
Merge pull request #1848 from Zacgoose/licence-assignment-fixes
KelvinTegelaar Feb 25, 2026
bbd8575
Handle defaultDomainName when managing defaults
Zacgoose Feb 26, 2026
43b7b3c
change standards to run every 12 hours
JohnDuprey Feb 26, 2026
76df64c
Merge pull request #1849 from Zacgoose/tenant-offboarding-defaults
KelvinTegelaar Feb 26, 2026
db0521c
add group type to membership change
JohnDuprey Feb 26, 2026
c5e561c
fix compares for #5477
KelvinTegelaar Feb 26, 2026
90aaa3d
add alertcomment to payload
KelvinTegelaar Feb 26, 2026
578bf70
auditlog rentention cleanup speed and rerun protection
KelvinTegelaar Feb 26, 2026
c7d872a
updated log retention
KelvinTegelaar Feb 26, 2026
eb0e683
feat: Add WindowsBackupRestore standard for Intune WBfO enrollment co…
kris6673 Feb 26, 2026
8f743a8
Merge pull request #1850 from kris6673/feature/standard-windows-backu…
KelvinTegelaar Feb 26, 2026
d0d2595
Enhance Teams federation config parsing and updates
JohnDuprey Feb 26, 2026
829afc9
Improve Teams federation domains parsing and validation
JohnDuprey Feb 26, 2026
b2a4599
Add mailboxes report API and use-report flag
JohnDuprey Feb 26, 2026
edb3535
fix permission on contact templates
JohnDuprey Feb 26, 2026
547599b
Use raw SkuPartNumber for license names
JohnDuprey Feb 27, 2026
01aa9b5
fix: offboarding job conditions
JohnDuprey Feb 27, 2026
34ec15b
Add RouteMessageOutboundConnector support
Zacgoose Feb 27, 2026
ee2d048
Merge pull request #1851 from Zacgoose/transport-rule-fixes
KelvinTegelaar Feb 27, 2026
db91dd0
fixes bug weith adding removing locations.
KelvinTegelaar Feb 27, 2026
d91ef1a
Fix comparison object
Zacgoose Feb 27, 2026
e87d5e8
fix: Update role in Invoke-ExecDnsConfig.ps1
Jr7468 Feb 27, 2026
237467e
fixes ordered sets in intune policies
KelvinTegelaar Feb 27, 2026
1186fd6
nuked source
KelvinTegelaar Feb 27, 2026
95eebd2
Merge pull request #1853 from Jr7468/dev
KelvinTegelaar Feb 27, 2026
cd45e78
Mark listStandardTemplates as AnyTenant
JohnDuprey Feb 27, 2026
81b46f2
fix: Handle SplitOverProps JSON errors and cleanup
JohnDuprey Feb 27, 2026
cd2d86a
fix: Record permission update status and adjust retry logic
JohnDuprey Feb 27, 2026
b5af99c
fix: filter down to UserPrincipalName to limit object size
JohnDuprey Feb 27, 2026
e6f3c6a
bump version
JohnDuprey Feb 27, 2026
b85461e
Merge pull request #1852 from Zacgoose/fix-retention-tag-standard
JohnDuprey Feb 27, 2026
fa00351
Merge pull request #1854 from KelvinTegelaar/dev
JohnDuprey Feb 27, 2026
a7db55f
Add TermInfo to license output and use it
JohnDuprey Feb 27, 2026
113919b
Include servicePlans in license output
JohnDuprey Feb 27, 2026
77ed50e
Use skuId for license ID in tenant sync
JohnDuprey Feb 27, 2026
5786f56
Handle empty Conditional Access Policies
JohnDuprey Feb 27, 2026
39b37d4
feat: Add Invoke-ExecLicenseSearch entrypoint
JohnDuprey Feb 27, 2026
342bca9
Add tenant filtering to universal search
JohnDuprey Feb 27, 2026
9b6ef7f
Add BitLocker key search & caching
JohnDuprey Feb 28, 2026
9c9b3a1
fix: Use UPN instead of UserPrincipalName
JohnDuprey Feb 28, 2026
98d87ba
Refactor technicalNotificationMails handling
ervinswervin Mar 1, 2026
3c6f419
Add JIT reason to alert messages (add/remove)
Zacgoose Mar 1, 2026
7c222e1
up host.json as test
KelvinTegelaar Mar 1, 2026
a2eef25
Merge pull request #1858 from Zacgoose/JIT-reason
KelvinTegelaar Mar 1, 2026
8239002
remove the host.json limits at recommendation of MS docs
KelvinTegelaar Mar 1, 2026
06af2a7
Merge branch 'dev' of https://github.com/KelvinTegelaar/CIPP-API into…
KelvinTegelaar Mar 1, 2026
c6e659a
more experimentation
KelvinTegelaar Mar 1, 2026
a05cd79
unlimited as a test
KelvinTegelaar Mar 1, 2026
c5e50c6
experiment
KelvinTegelaar Mar 1, 2026
904cefe
Moves CA policies.
KelvinTegelaar Mar 1, 2026
5822984
fix: specify type in rerun detection log message
kris6673 Mar 2, 2026
fb8a3be
Add 'None' option for Types in Set-CIPPDBCacheMailboxes
JohnDuprey Mar 2, 2026
30117df
fix(reusable-settings): correct casing and filtering
MWG-Logan Mar 2, 2026
132b977
Add CloudFlare ZTNA authentication support to PwPush integration
Brad-M-K Mar 2, 2026
fdb5d77
fix(reusable-settings): update RAWJson handling in templates
MWG-Logan Mar 2, 2026
9f8e4da
fix(reusable-settings): map setting IDs to template GUIDs
MWG-Logan Mar 2, 2026
a8312e5
Include SMTP clientAppUsed in sign-in filter
JohnDuprey Mar 3, 2026
71516af
Extra Info in MFA scripted alert
Zacgoose Mar 3, 2026
eefce18
Update Get-CIPPAlertNewMFADevice.ps1
Zacgoose Mar 3, 2026
c23d617
fix domain analyser tenant filtering
JohnDuprey Mar 3, 2026
2c11369
force fan out on premium sku
JohnDuprey Mar 3, 2026
ec075cf
clean up logging
JohnDuprey Mar 3, 2026
4ceb270
Merge pull request #5 from KelvinTegelaar/dev
Brad-M-K Mar 3, 2026
f399a26
Add default passphrase support to PwPush link creation
Brad-M-K Mar 3, 2026
20e4879
conditionally add parameters if supplied
JohnDuprey Mar 3, 2026
38a0afc
add position message
JohnDuprey Mar 3, 2026
5b94963
assign results if they exist
JohnDuprey Mar 3, 2026
ad7899a
Update CippEntrypoints.psm1
JohnDuprey Mar 3, 2026
d5082a2
Use generic List for Results instead of array
JohnDuprey Mar 3, 2026
21117da
Merge pull request #1863 from Zacgoose/mfa-alert
KelvinTegelaar Mar 4, 2026
b17e01c
Merge pull request #1861 from MWG-Logan/fix/reusable-settings-2
KelvinTegelaar Mar 4, 2026
1b9db88
fix: correct IpAddress variable in Invoke-ExecCaCheck
kris6673 Mar 4, 2026
6ce2e8e
feat: add support for authentication flow in Invoke-ExecCaCheck
kris6673 Mar 4, 2026
27df789
fix: ensure TermInfo is an array so the frontend looks all nice and p…
kris6673 Mar 4, 2026
ab0319f
Merge pull request #1867 from kris6673/pretty-TermInfo
KelvinTegelaar Mar 4, 2026
714585d
prioritize WEBSITE_RESOURCE_GROUP over OWNER
JohnDuprey Mar 4, 2026
de3732e
feat: add assignment filter support to application assignment
kris6673 Mar 4, 2026
0afb318
Merge pull request #6 from KelvinTegelaar/dev
Brad-M-K Mar 4, 2026
db299fa
fix: mx record alert
JohnDuprey Mar 5, 2026
7d4d6a1
Merge pull request #7 from KelvinTegelaar/dev
Brad-M-K Mar 5, 2026
2264099
Add error handling to PwPush config parsing and remove CloudFlare ZTN…
Brad-M-K Mar 5, 2026
e25adde
fix: Multi-tenant orchestration status
JohnDuprey Mar 5, 2026
d2f067c
Feat: New Standard: Restrict User Device Registration
Zacgoose Mar 5, 2026
ffd3d5a
Merge pull request #1866 from kris6673/ca-test
KelvinTegelaar Mar 5, 2026
2a35361
Introduce Start-CIPPOrchestrator wrapper and migrate callers
JohnDuprey Mar 5, 2026
0dbb6a8
Add cippqueue trigger and output binding
JohnDuprey Mar 5, 2026
8ac3a6a
fix: role permission
JohnDuprey Mar 5, 2026
a40407a
fix: add offload function trigger function to profile
JohnDuprey Mar 5, 2026
2a1ae22
casing
JohnDuprey Mar 6, 2026
1f1402c
casing
JohnDuprey Mar 6, 2026
f671b2b
remove queue output binding due to loading before runspace
JohnDuprey Mar 6, 2026
f4d12ca
Merge pull request #1868 from kris6673/apps-assignmentfilter
KelvinTegelaar Mar 6, 2026
9584a7b
Merge pull request #1869 from Zacgoose/RestrictUserDeviceRegistration
KelvinTegelaar Mar 6, 2026
858e17e
Merge pull request #1857 from ervinswervin/patch-3
KelvinTegelaar Mar 6, 2026
66daa0a
Merge pull request #1860 from kris6673/rerun-type
KelvinTegelaar Mar 6, 2026
2eeba9e
Standard setting stale data
Zacgoose Mar 6, 2026
76b7382
skip offload triggers in local dev
JohnDuprey Mar 6, 2026
cecbed3
refactor: simplify tenant validation and handling in Invoke-ListSched…
JohnDuprey Mar 6, 2026
f63f3d6
Merge pull request #1870 from Zacgoose/standard-setting-stale-data
KelvinTegelaar Mar 6, 2026
888b2c9
Fixes issue with encrypted templates
KelvinTegelaar Mar 6, 2026
9e50dd8
Merge pull request #1865 from Brad-M-K/dev
KelvinTegelaar Mar 6, 2026
a8f6bf1
fix: cast NewDomains and SetDomains to string arrays
kris6673 Mar 7, 2026
0f72af6
refactor: small standardizations
kris6673 Mar 7, 2026
5be8e40
refactor: update task filtering criteria to use 24-hour threshold
JohnDuprey Mar 7, 2026
4f8ae4c
Merge pull request #1871 from kris6673/fix-adddkim
KelvinTegelaar Mar 7, 2026
ee68d51
Merge pull request #1845 from kris6673/vacation
KelvinTegelaar Mar 7, 2026
6a33304
Merge pull request #1872 from kris6673/some-logging-and-stuff
KelvinTegelaar Mar 7, 2026
5156aa0
fix: ensure post-execution alerts are sent only when specified in tas…
JohnDuprey Mar 7, 2026
72fb7bd
feat: enhance Intune compliance handling in Push-CIPPStandardsList fu…
JohnDuprey Mar 7, 2026
0ed29f7
feat: enhance backup restoration process to filter by selected types …
JohnDuprey Mar 8, 2026
67ee365
feat: enhance scheduled task management by adding duplicate name prev…
JohnDuprey Mar 8, 2026
5064682
Feat: Incident Report and Attachment options
Zacgoose Mar 8, 2026
3ecd17c
Tweak :)
Zacgoose Mar 8, 2026
17f3d47
GrantSendOnBehalfTo Permissions Cache
Zacgoose Mar 8, 2026
10349fd
Merge pull request #1875 from Zacgoose/GrantSendOnBehalfTo
KelvinTegelaar Mar 8, 2026
b4009bc
Merge pull request #1874 from Zacgoose/backup-tweak
KelvinTegelaar Mar 8, 2026
2ebd9ff
Merge pull request #1873 from Zacgoose/transport-rule-update
KelvinTegelaar Mar 8, 2026
8f3ce5a
feat: add MFA enforcement check and IncludeDisabled option to MFAAdmi…
kris6673 Mar 8, 2026
99756cb
Merge pull request #1876 from kris6673/issue5448
KelvinTegelaar Mar 8, 2026
a4fa45e
fix: move casting to array to AddRange to fix null checks
kris6673 Mar 9, 2026
0808ea4
Merge pull request #1877 from kris6673/dammit-it-broke-the-null-check
KelvinTegelaar Mar 9, 2026
9ac40f3
clean thingy
KelvinTegelaar Mar 9, 2026
187b2e1
Merge branch 'dev' of https://github.com/KelvinTegelaar/CIPP-API into…
KelvinTegelaar Mar 9, 2026
bc966ea
fixed API name in Set-CIPPDefaultAPDeploymentProfile function
ZenTopBrandon Mar 9, 2026
e4ec5d9
refactor: optimize Intune object comparison
JohnDuprey Mar 9, 2026
750df28
fix: quotes
JohnDuprey Mar 9, 2026
25aaec0
Update Push-CIPPStandardsList.ps1
JohnDuprey Mar 9, 2026
4e23154
Add or update the Azure App Service build and deployment workflow config
KelvinTegelaar Mar 9, 2026
1d01062
Merge pull request #1878 from ZenTopBrandon/bug/autopilot-profile-log…
KelvinTegelaar Mar 9, 2026
ae0b459
Remove the Azure App Service build and deployment workflow config
KelvinTegelaar Mar 9, 2026
f222a09
fix alert comment
KelvinTegelaar Mar 9, 2026
c785d64
Merge branch 'dev' of https://github.com/KelvinTegelaar/CIPP-API into…
KelvinTegelaar Mar 9, 2026
225e06b
feat: Add Compare-CIPPIntuneAssignments and Get-CIPPIntunePolicyAssig…
JohnDuprey Mar 9, 2026
9b587ca
debug logging
JohnDuprey Mar 9, 2026
1d05a9b
chore: bump version to 10.2.0
JohnDuprey Mar 9, 2026
e4a431e
Merge pull request #1879 from KelvinTegelaar/dev
KelvinTegelaar Mar 9, 2026
ec98161
Alternate email address fix
Zacgoose Mar 10, 2026
d8c2c56
Add mailbox forwarding report endpoints
TecharyJames Mar 10, 2026
7a5ae8a
Merge branch 'KelvinTegelaar:master' into feature/mailbox-forwarding-…
TecharyJames Mar 10, 2026
9f51668
Support UseReportDB and live EXO forwarding report
TecharyJames Mar 10, 2026
bf7ff6a
Remove ForwardingOnly parameter - always filter to forwarding mailboxes
TecharyJames Mar 10, 2026
b4da8ed
Show both addresses in ForwardTo when both internal and external are …
TecharyJames Mar 10, 2026
90ab386
Merge pull request #1880 from Zacgoose/adedit-user-fix
KelvinTegelaar Mar 10, 2026
7978dd8
ForwardTo shows only external when both configured (external takes pr…
TecharyJames Mar 10, 2026
a80f59e
Remove Both forwarding type - external takes precedence
TecharyJames Mar 10, 2026
8ced808
fix: try parsing booleans instead of assuming it is one
JohnDuprey Mar 10, 2026
95161f5
Merge pull request #1882 from TecharyJames/feature/mailbox-forwarding…
KelvinTegelaar Mar 10, 2026
720017c
fix: track last setting update for triggers
JohnDuprey Mar 10, 2026
f418312
chore: bump version to 10.2.1
JohnDuprey Mar 10, 2026
d401063
fix: add backfill setting
JohnDuprey Mar 10, 2026
81a63ce
Merge pull request #1883 from KelvinTegelaar/dev
JohnDuprey Mar 10, 2026
4702b97
Merge pull request #11 from KelvinTegelaar/dev
Brad-M-K Mar 10, 2026
9355bc4
fix: prevent scheduled offboardings from getting stuck in Processing …
claude Mar 11, 2026
5ede1c0
Fix offboarding orchestration never starting due to missing QueueItem…
claude Mar 11, 2026
fa1309b
fixes mfa sync account from being in the list
KelvinTegelaar Mar 11, 2026
aa32438
fix: exclude 'On-Premises Directory Synchronization Service Account' …
kris6673 Mar 11, 2026
92bf960
Merge pull request #1886 from kris6673/fix-noise
KelvinTegelaar Mar 11, 2026
37eb747
feat: add queue message peek functions
JohnDuprey Mar 11, 2026
5f8ec21
feat: add cippqueue output binding to activity functions
JohnDuprey Mar 11, 2026
acdefcb
chore: bump AzureFunctions.PowerShell.Durable.SDK to 2.2.0
JohnDuprey Mar 11, 2026
2659212
fix: move dbcache to start-cipporchestrator
JohnDuprey Mar 11, 2026
eb3c8f2
fix: move to CippOrchestrator
JohnDuprey Mar 11, 2026
fd50db4
Merge pull request #13 from KelvinTegelaar/dev
Brad-M-K Mar 11, 2026
691fb6c
fix: cippversion
JohnDuprey Mar 11, 2026
8405755
refactor: tests to fan-out > fan-in > fan-out like standards
JohnDuprey Mar 12, 2026
af2d204
fix: Update litigation hold standard to use more service plans
Mar 12, 2026
e42a490
feat: generate version info in json
JohnDuprey Mar 12, 2026
1645dcc
feat: add comprehensive password configuration with validation and pa…
Brad-M-K Mar 12, 2026
0231a68
refactor: convert tests to fan out > fan in > fan out
JohnDuprey Mar 12, 2026
04d223b
fix: remove etag and add force for cleaning up orch input
JohnDuprey Mar 12, 2026
0d4bfce
Merge pull request #14 from KelvinTegelaar/dev
Brad-M-K Mar 12, 2026
fee2acc
Merge branch 'dev' into pass-config
Brad-M-K Mar 12, 2026
57ad2de
Merge pull request #1887 from luimen6/feature/update-lit-hold-standard
KelvinTegelaar Mar 12, 2026
a2d0b4d
Merge pull request #1884 from ZenTopBrandon/bug/scheduled-offboarding…
KelvinTegelaar Mar 12, 2026
54648ce
Fix serviceprovider exception action
rvdwegen Mar 12, 2026
a96f0e1
Fix createdByAppId throwing app creation
rvdwegen Mar 12, 2026
01cff67
feat: add Invoke-ExecCippLogsSas function to generate read-only SAS t…
JohnDuprey Mar 12, 2026
2f4384b
add force to expiry storage
JohnDuprey Mar 12, 2026
355c0ba
fix: update SAS response format
JohnDuprey Mar 12, 2026
49d1cd1
chore: update default version to 10.2.2 in host.json and version_late…
JohnDuprey Mar 12, 2026
31c2350
Merge pull request #1890 from KelvinTegelaar/dev
JohnDuprey Mar 12, 2026
7812186
fix: resolve SharePoint User Information List by template instead of …
Mar 13, 2026
fa91ec5
fix: missing partition key
JohnDuprey Mar 13, 2026
c2a8557
fix: expire group cache after 5 minutes
JohnDuprey Mar 13, 2026
3ef06a1
fix: reduce properties to what is needed for logging
JohnDuprey Mar 13, 2026
5033884
fixes token replacement
KelvinTegelaar Mar 13, 2026
a963bf1
push
KelvinTegelaar Mar 13, 2026
816323b
fix: enhance result processing in mailbox permissions and orchestrati…
JohnDuprey Mar 13, 2026
af110ce
Merge branch 'dev' of https://github.com/KelvinTegelaar/CIPP-API into…
JohnDuprey Mar 13, 2026
aedd4ca
Implement Invoke-CIPPStandardAppManagementPolicy function
TecharyJames Mar 13, 2026
2512721
feat: add SID conversion to group and role functions
kris6673 Mar 13, 2026
5ce5e7c
fix: casting error causing standard not to run
kris6673 Mar 13, 2026
aac2f7c
Rename Invoke-CIPPStandardAppManagementPolicy to Invoke-CIPPStandardA…
TecharyJames Mar 13, 2026
e89d305
Simplify value handling in AppManagement policy
TecharyJames Mar 13, 2026
029dcc4
feat: map "user-select" language to empty string in AP profile
kris6673 Mar 14, 2026
36767b9
fix: duplicate subscription bug in graph
JohnDuprey Mar 14, 2026
2bc6c54
fix: api for ninja log message
JohnDuprey Mar 14, 2026
97a24c1
Fix missing fields in Graph Explorer preset save
Mar 14, 2026
41de183
Fix order-dependent comparison in MailContacts standard evaluation
Mar 15, 2026
f17695b
Fixes for local dev
Zacgoose Mar 15, 2026
fae7c3f
Save Bookmarks
Zacgoose Mar 15, 2026
1d92069
Merge pull request #1898 from luimen6/fix/mail-contacts-standard-orde…
KelvinTegelaar Mar 15, 2026
375cff8
Merge pull request #1900 from Zacgoose/server-side-bookmarks
KelvinTegelaar Mar 15, 2026
ac1d5fb
Merge pull request #1897 from luimen6/fix/graph-explorer-preset-missi…
KelvinTegelaar Mar 15, 2026
d98d37e
Merge pull request #1896 from kris6673/ap-language
KelvinTegelaar Mar 15, 2026
ac5bf25
Merge pull request #1895 from kris6673/third-times-the-charm
KelvinTegelaar Mar 15, 2026
151d61e
Merge pull request #1894 from kris6673/SID
KelvinTegelaar Mar 15, 2026
37a0918
Merge pull request #1893 from TecharyJames/feat/app-management-policy
KelvinTegelaar Mar 15, 2026
b1bb585
Merge pull request #1891 from luimen6/Bug/sharepoint-user-list
KelvinTegelaar Mar 15, 2026
b66b178
Merge pull request #1889 from Brad-M-K/pass-config
KelvinTegelaar Mar 15, 2026
703e112
clean up some AI sloppiness
KelvinTegelaar Mar 15, 2026
0879550
Fix false non-compliant drift detection for templates by handling emp…
Mar 15, 2026
dc17d03
AI cleanup
KelvinTegelaar Mar 15, 2026
2e867ef
Merge pull request #1903 from luimen6/fix/ca-template-drift-false-non…
KelvinTegelaar Mar 15, 2026
ff2e443
fix: correct non-deterministic error in orchestrator
JohnDuprey Mar 15, 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.
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