Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
150 commits
Select commit Hold shift + click to select a range
09c5b3b
Merge pull request #8 from KelvinTegelaar/dev
TecharyJames Apr 1, 2026
08fcd89
Merge pull request #9 from KelvinTegelaar/dev
TecharyJames Apr 2, 2026
3c2fbae
Merge pull request #10 from KelvinTegelaar/dev
TecharyJames Apr 3, 2026
d09f10e
Merge branch 'KelvinTegelaar:dev' into dev
TecharyJames Apr 3, 2026
f45218b
Merge pull request #11 from KelvinTegelaar/dev
pull[bot] Apr 3, 2026
e3a2436
Merge pull request #12 from KelvinTegelaar/dev
pull[bot] Apr 3, 2026
ba42ff3
Merge pull request #13 from KelvinTegelaar/dev
pull[bot] Apr 4, 2026
101ec62
Merge pull request #14 from KelvinTegelaar/dev
pull[bot] Apr 5, 2026
77684ea
Merge pull request #15 from KelvinTegelaar/dev
pull[bot] Apr 5, 2026
d8b0a05
Merge pull request #16 from KelvinTegelaar/dev
pull[bot] Apr 5, 2026
f24236b
Merge pull request #17 from KelvinTegelaar/dev
pull[bot] Apr 6, 2026
3c5a0f8
Merge pull request #18 from KelvinTegelaar/dev
pull[bot] Apr 7, 2026
fc678be
Merge pull request #19 from KelvinTegelaar/dev
pull[bot] Apr 7, 2026
33cef71
Merge pull request #20 from KelvinTegelaar/dev
pull[bot] Apr 7, 2026
b412146
Merge pull request #21 from KelvinTegelaar/dev
pull[bot] Apr 8, 2026
ad2d977
Merge pull request #22 from KelvinTegelaar/dev
pull[bot] Apr 9, 2026
14e913e
Merge pull request #23 from KelvinTegelaar/dev
pull[bot] Apr 9, 2026
c2d53d1
Merge pull request #24 from KelvinTegelaar/dev
pull[bot] Apr 10, 2026
e0d0230
Dev to release (#1990)
KelvinTegelaar Apr 10, 2026
0de8fa3
Merge pull request #26 from KelvinTegelaar/dev
pull[bot] Apr 10, 2026
1d48b53
Merge pull request #27 from KelvinTegelaar/dev
pull[bot] Apr 12, 2026
193c772
Merge pull request #28 from KelvinTegelaar/dev
pull[bot] Apr 13, 2026
8fc758b
Merge pull request #29 from KelvinTegelaar/dev
pull[bot] Apr 13, 2026
33d1b99
Dev to hotfix (#1995)
JohnDuprey Apr 13, 2026
628ba95
Merge pull request #31 from KelvinTegelaar/dev
pull[bot] Apr 13, 2026
18f34b5
Merge pull request #32 from KelvinTegelaar/dev
pull[bot] Apr 15, 2026
3377746
Merge pull request #33 from KelvinTegelaar/dev
pull[bot] Apr 15, 2026
ba86d08
Merge pull request #34 from KelvinTegelaar/dev
pull[bot] Apr 15, 2026
21eb0d0
Merge pull request #35 from KelvinTegelaar/dev
pull[bot] Apr 15, 2026
e82ee11
Merge pull request #36 from KelvinTegelaar/dev
pull[bot] Apr 16, 2026
5a5310b
Merge pull request #37 from KelvinTegelaar/dev
pull[bot] Apr 16, 2026
a2eab38
Merge pull request #38 from KelvinTegelaar/dev
pull[bot] Apr 16, 2026
688d29a
Merge pull request #39 from KelvinTegelaar/dev
pull[bot] Apr 17, 2026
858e2d5
Merge pull request #40 from KelvinTegelaar/dev
pull[bot] Apr 17, 2026
bf1733e
Merge pull request #41 from KelvinTegelaar/dev
pull[bot] Apr 17, 2026
5a83257
Merge pull request #42 from KelvinTegelaar/dev
pull[bot] Apr 19, 2026
7483979
Merge pull request #43 from KelvinTegelaar/dev
pull[bot] Apr 20, 2026
1e06116
Collect admin UPNs from role groups and users
TecharyJames Apr 22, 2026
56d33cc
Dev to release (#2015)
KelvinTegelaar Apr 24, 2026
61b43b9
version latest (#2016)
KelvinTegelaar Apr 24, 2026
f77ffa6
Dev to hotfix (#2017)
JohnDuprey Apr 24, 2026
e07e70b
dev to hotfix (#2018)
JohnDuprey Apr 24, 2026
ef2fff0
Merge branch 'KelvinTegelaar:master' into feat/-Configure-Encrypted-M…
chris-dewey-1991 Apr 26, 2026
f2cd153
Creation of OME Encrypted Message Branding Standard
chris-dewey-1991 Apr 26, 2026
c9ca4f0
Merge branch 'KelvinTegelaar:master' into fix-add-support-for-group-a…
TecharyJames Apr 27, 2026
e30eaa5
fix: Update docs links that 404
bmsimp Apr 27, 2026
6f4c32c
feat(mde-onboarding): cache full connector properties
kris6673 Apr 27, 2026
307db51
fix: handle case when no tenants found for MDE report
kris6673 Apr 27, 2026
dd73a6f
fix standards logging issues
Zacgoose Apr 28, 2026
7b17a58
fix: Update docs links that 404 (#2025)
KelvinTegelaar Apr 28, 2026
e7a9d88
Add SP/Exchange standards
Zacgoose Apr 28, 2026
61b172b
Update CippEntrypoints.psm1
Zacgoose Apr 28, 2026
ea6cc64
Handle midterm license changes and enrich response to contain started…
Zacgoose Apr 28, 2026
f5ecbb0
Fix GDAP requests to use more than 300 results
Zacgoose Apr 28, 2026
4c70122
Don't use cache for app permissions, causes issues if stale or missing
Zacgoose Apr 28, 2026
33ee646
typo
Zacgoose Apr 28, 2026
f652a1a
fix: correct version_latest.txt path in remote API version check
bmsimp Apr 28, 2026
7687325
fix: correct version_latest.txt path in remote API version check (#2029)
KelvinTegelaar Apr 28, 2026
a1bed60
Clear drift remediation tasks if reoccurring ones were created
Zacgoose Apr 28, 2026
f896701
Ensure only HTML fragments are generated
Zacgoose Apr 28, 2026
7b61a9d
Fix standard to only apply to users and shared accounts if enabled, e…
Zacgoose Apr 28, 2026
217416d
add back to root :(
Zacgoose Apr 28, 2026
ae39bce
fix: version locations
JohnDuprey Apr 28, 2026
8c0ca04
fix: disable transitive failures error logging for now
JohnDuprey Apr 28, 2026
658acea
fix: add caching to sharepoint/onedrive site listings
JohnDuprey Apr 28, 2026
3ff08f0
feat: update intuneCollection with new properties
kris6673 Apr 28, 2026
0e3413c
feat: enrich Intune policy setting details
kris6673 Apr 28, 2026
e2f71c2
fix: group types in edit user
JohnDuprey Apr 28, 2026
2161569
chore: bump version to 10.4.2
JohnDuprey Apr 28, 2026
d15734d
Merge branch 'settings-tooltips' of https://github.com/kris6673/CIPP-…
kris6673 Apr 28, 2026
66e7da5
Bring in tenant deviations into calculation and expose confirmed devi…
Zacgoose Apr 29, 2026
d6e0c01
tweak ninja sync interval
Zacgoose Apr 29, 2026
d9f630e
offset some activities to help spread the load
Zacgoose Apr 29, 2026
70642a2
Surface errors correctly for secret reset
Zacgoose Apr 29, 2026
3fc9675
tweaks for webhook table lookups
Zacgoose Apr 29, 2026
8bbefe1
Update version_latest.txt
Zacgoose Apr 29, 2026
4727715
feat: show full MDE connector details (#2026)
KelvinTegelaar Apr 29, 2026
10ddece
Merge branch 'dev' into settings-tooltips
KelvinTegelaar Apr 29, 2026
1606bf1
feat: enrich Intune policy setting details (#2031)
KelvinTegelaar Apr 29, 2026
c39d061
Fix: Add support for group assigned admin roles to 'disable exo' stan…
KelvinTegelaar Apr 29, 2026
834b4c6
fix: calculated group type in listusergroups
JohnDuprey Apr 29, 2026
fe7b013
Feat/Configure Encrypted Message Branding OME (#2023)
KelvinTegelaar Apr 29, 2026
9700734
Use ConvertTo-SafeArray for all EXO domain checks
Zacgoose Apr 30, 2026
e0df450
account for trials
Zacgoose Apr 30, 2026
29e3006
Update Get-CIPPLicenseOverview.ps1
Zacgoose Apr 30, 2026
1416a14
Simple is best
Zacgoose Apr 30, 2026
264abca
Update Invoke-CIPPDBCacheCollection.ps1
Zacgoose Apr 30, 2026
3ed7bdd
Update New-CIPPAPIConfig.ps1
Zacgoose Apr 30, 2026
a78bd50
slight orc changes
Zacgoose Apr 30, 2026
b446c02
Update Add-CippQueueMessage.ps1
Zacgoose Apr 30, 2026
7b26b11
fix(compare): handle non-catalog null results
kris6673 Apr 30, 2026
f036c0b
fix: odata sanitization
JohnDuprey Apr 30, 2026
ece775b
feat(intune): extend ListIntunePolicy for admin templates
kris6673 Apr 30, 2026
89ade0e
How long has this been wrong?
Zacgoose May 1, 2026
e0db8da
Fix oauth consent not adding ms app id after the fact
Zacgoose May 1, 2026
b937399
Add specific DNS endpoints to TCP connection limits
Zacgoose May 1, 2026
924a078
Fix listing of excluded tenants in scripted alerts
Zacgoose May 1, 2026
1639700
Update add CA exclusion to account for targeted roles
Zacgoose May 1, 2026
0a08f63
Add ResultMode, CIPP wrapper handling, Github save/import and custom …
Zacgoose May 1, 2026
6c27c34
Custom variable support + block explicit calls with tenantfilter
Zacgoose May 1, 2026
4589d5d
So the docs are wrong about this one
Zacgoose May 1, 2026
1cf4ee6
Prevent race conditions for duplicate audit logs
Zacgoose May 1, 2026
78eb1ae
More escaping for HMTL alerts that contain objects
Zacgoose May 1, 2026
cf66039
Silly audit logs
Zacgoose May 1, 2026
8c4f9bd
fix: Add SHAREPOINTENTERPRISE_GOV to license checks
JohnDuprey May 1, 2026
a0b7655
chore: bump version to 10.4.3
JohnDuprey May 2, 2026
80f6df7
Redirect url helper scripts
Zacgoose May 2, 2026
50789ce
queue tweaks
Zacgoose May 2, 2026
8594b3d
Update Start-CIPPOrchestrator.ps1
Zacgoose May 2, 2026
7504083
rename
JohnDuprey May 2, 2026
4484ec2
Add queueing functions to blocked commands list
JohnDuprey May 3, 2026
bb3db33
Correct list alerts accounting for tenant allowed tenant groups
Zacgoose May 4, 2026
f9928ae
CIS Microsoft 365 Foundations Benchmark v6.0.1
KelvinTegelaar May 4, 2026
16c03a1
add to scheduler
KelvinTegelaar May 4, 2026
cb51886
fix: MOERA standard reporting
JohnDuprey May 4, 2026
f50d8a1
feat: add Get-CIPPGroupsReport function and integrate with Invoke-Lis…
JohnDuprey May 4, 2026
3702c85
feat: PR check on fork
JohnDuprey May 4, 2026
8856340
dead code
Zacgoose May 5, 2026
8e12d10
Correct CIPP SAM addition repeated alerts
Zacgoose May 5, 2026
b230c7f
Fix drift tag resolution using stale rawData instead of live lookup
Zacgoose May 5, 2026
7a7c70d
fix: remove +1hr buffer to end time
JohnDuprey May 5, 2026
61b891c
Fix image upload
Zacgoose May 5, 2026
364da37
Merge branch 'dev' of https://github.com/KelvinTegelaar/CIPP-API into…
Zacgoose May 5, 2026
7787f18
Improve drift alignment data
Zacgoose May 5, 2026
08d2bcb
Add self-service email stuff
KelvinTegelaar May 5, 2026
733da22
updated
KelvinTegelaar May 5, 2026
e2382b4
fix: exclude expired user consent requests
JohnDuprey May 5, 2026
5087f26
Merge branch 'dev' of https://github.com/KelvinTegelaar/CIPP-API into…
JohnDuprey May 5, 2026
45c8f59
Fix TeamsMeetingRecordingExpiration drift report showing Current=true
bmsimp May 3, 2026
512d87c
Fix SPFileRequests drift report showing pre-remediation values
bmsimp May 3, 2026
2be775b
Fix DisableSelfServiceLicenses autoclaim reading wrong property
bmsimp May 3, 2026
7aeeffc
Fix TeamsFederationConfiguration drift report ordering mismatch
bmsimp May 3, 2026
27c08ab
Fix SafeLinksPolicy and MalwareFilterPolicy drift report ordering
bmsimp May 3, 2026
212c6f1
improve drift page loading speed
Zacgoose May 6, 2026
0e537b1
fix: Guard against missing GeoIP.Data
JohnDuprey May 6, 2026
21528ea
parse timezone value for nice response message
Zacgoose May 6, 2026
23505c3
Correct backup object retuned
Zacgoose May 6, 2026
cc07ca5
public group standard
KelvinTegelaar May 6, 2026
9a84438
Empty AllowList Standard for CIS
KelvinTegelaar May 6, 2026
7962aab
add teasm ZAP standard
KelvinTegelaar May 6, 2026
94a291c
Ensure that collaboration invitations are sent to allowed domains only
KelvinTegelaar May 6, 2026
498d03f
fix: duplicate group ID retrieval in Invoke-ExecAddGDAPRole function
JohnDuprey May 6, 2026
9ae7562
Update Standard AutoAddProxy
Zacgoose May 7, 2026
adbbb53
Update CIPPTimers.json
Zacgoose May 7, 2026
3beb622
Better queue tracking
Zacgoose May 7, 2026
b02970f
Fix drift report inaccuracies for TeamsMeeting, SPFileRequests, and p…
KelvinTegelaar May 7, 2026
0bc436b
Fix handling of non-catalog null results in comparison function (#2034)
KelvinTegelaar May 7, 2026
02fdcbe
Feat: Extend ListIntunePolicy for admin templates (#2035)
KelvinTegelaar May 7, 2026
8e7392d
fix: scripted alert optimization
JohnDuprey May 7, 2026
731a41e
fix: ensure unique and non-null email addresses in report generation
JohnDuprey May 7, 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
  •  
  •  
  •  
40 changes: 32 additions & 8 deletions .github/workflows/PR_Branch_Check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,22 +16,46 @@ permissions:

jobs:
check-branch:
runs-on: ubuntu-latest
runs-on: ubuntu-slim
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.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
uses: actions/github-script@v9
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 ';
// Check if the fork has open PRs (indicates pull bot or similar is active)
const forkOwner = context.payload.pull_request.head.repo.owner.login;
const forkRepo = context.payload.pull_request.head.repo.name;
const forkPullsUrl = context.payload.pull_request.head.repo.html_url + '/pulls';

let openPRs = [];
try {
const { data: prs } = await github.rest.pulls.list({
owner: forkOwner,
repo: forkRepo,
state: 'open',
per_page: 5
});
openPRs = prs;
} catch (e) {
// Can't read fork PRs — skip
}

message += '🔄 If you are attempting to update your CIPP-API repo please follow the instructions at: https://docs.cipp.app/setup/self-hosting-guide/updating. Are you a sponsor? Contact the helpdesk for direct assistance with updating to the latest version.';

if (openPRs.length > 0) {
message += ` It looks like you may already have a pending update PR on your fork — check your [open pull requests](${forkPullsUrl}) to accept it.`;
} else {
message += ` You can enable [Pull Bot](https://github.com/apps/pull) or [Repo Sync](https://github.com/apps/repo-sync) to automatically keep your fork up to date.`;
}
message += '\n\n';

// Check if PR is targeting main/master
Expand All @@ -40,20 +64,20 @@ jobs:
}

// Check if PR is from a fork's main/master branch
if (context.payload.pull_request.head.repo.fork &&
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).';
message += '🔒 This PR will now be automatically closed due to the above rules.';

// 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,
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/upload_dev.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ jobs:
# Create version.json with version and commit hash
- name: Create version.json
run: |
VERSION=$(cat ./Config/version_latest.txt | tr -d '[:space:]')
VERSION=$(cat ./version_latest.txt | tr -d '[:space:]')
SHORT_SHA="${GITHUB_SHA::7}"
echo "{\"version\": \"${VERSION}\", \"commit\": \"${SHORT_SHA}\"}" > version.json

Expand Down
15 changes: 15 additions & 0 deletions Config/CIPPDBCacheTypes.json
Original file line number Diff line number Diff line change
Expand Up @@ -254,11 +254,26 @@
"friendlyName": "Mailbox Usage",
"description": "Exchange Online mailbox usage statistics"
},
{
"type": "OneDriveSiteListing",
"friendlyName": "OneDrive Site Listing",
"description": "OneDrive personal site listing details used for usage reporting"
},
{
"type": "OneDriveUsage",
"friendlyName": "OneDrive Usage",
"description": "OneDrive usage statistics"
},
{
"type": "SharePointSiteListing",
"friendlyName": "SharePoint Site Listing",
"description": "SharePoint site listing details used for usage reporting"
},
{
"type": "SharePointSiteUsage",
"friendlyName": "SharePoint Site Usage",
"description": "SharePoint site usage statistics"
},
{
"type": "OfficeActivations",
"friendlyName": "Office Activations",
Expand Down
25 changes: 20 additions & 5 deletions Config/CIPPTimers.json
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@
"Id": "5ff6c500-e420-4a3b-8532-ace2e4da4f7d",
"Command": "Start-ApplicationOrchestrator",
"Description": "Orchestrator to process application uploads",
"Cron": "0 0 */12 * * *",
"Cron": "0 30 */12 * * *",
"Priority": 2,
"RunOnProcessor": true
},
Expand All @@ -78,15 +78,17 @@
"Cron": "0 0 */12 * * *",
"Priority": 4,
"RunOnProcessor": true,
"TZOffset": true,
"PreferredProcessor": "standards"
},
{
"Id": "4d80205c-674d-4fc1-abeb-a1ec37e0d796",
"Command": "Start-DriftStandardsOrchestrator",
"Description": "Orchestrator to process drift standards",
"Cron": "0 0 */12 * * *",
"Cron": "0 15 */12 * * *",
"Priority": 5,
"RunOnProcessor": true,
"TZOffset": true,
"PreferredProcessor": "standards"
},
{
Expand All @@ -101,15 +103,15 @@
"Id": "ed7b5241-1cb9-499b-8f5b-1013ba5764b4",
"Command": "Set-CIPPGDAPInviteGroups",
"Description": "Orchestrator to map the groups for GDAP invites",
"Cron": "0 0 */3 * * *",
"Cron": "0 45 */3 * * *",
"Priority": 5,
"RunOnProcessor": true
},
{
"Id": "0967c860-3a57-4860-8f33-e5136eae7b4e",
"Command": "Start-TenantDynamicGroupOrchestrator",
"Description": "Orchestrator to update dynamic tenant groups",
"Cron": "0 0 */4 * * *",
"Cron": "0 30 */4 * * *",
"Priority": 6,
"RunOnProcessor": true
},
Expand All @@ -120,6 +122,7 @@
"Cron": "0 0 0 * * 0",
"Priority": 7,
"RunOnProcessor": true,
"TZOffset": true,
"IsSystem": true
},
{
Expand All @@ -137,6 +140,7 @@
"Description": "Orchestrator to process domains",
"Cron": "0 30 5 * * *",
"Priority": 22,
"TZOffset": true,
"RunOnProcessor": true
},
{
Expand All @@ -149,6 +153,7 @@
"Cron": "0 0 23 * * *",
"Priority": 10,
"RunOnProcessor": true,
"TZOffset": true,
"IsSystem": true
},
{
Expand All @@ -158,6 +163,7 @@
"Cron": "0 0 0 * * *",
"Priority": 10,
"RunOnProcessor": true,
"TZOffset": true,
"IsSystem": true
},
{
Expand All @@ -166,6 +172,7 @@
"Description": "Timer to process billing",
"Cron": "0 0 0 * * *",
"Priority": 12,
"TZOffset": true,
"RunOnProcessor": true
},
{
Expand All @@ -174,13 +181,14 @@
"Description": "Orchestrator to process BPA reports",
"Cron": "0 0 3 * * *",
"Priority": 10,
"TZOffset": true,
"RunOnProcessor": true
},
{
"Id": "54c39540-fe91-4795-8613-ac4295751a51",
"Command": "Start-ExtensionOrchestrator",
"Description": "Orchestrator to process extensions",
"Cron": "0 0 */2 * * *",
"Cron": "0 45 */2 * * *",
"Priority": 12,
"RunOnProcessor": true
},
Expand All @@ -191,6 +199,7 @@
"Cron": "0 0 0 * * *",
"Priority": 15,
"RunOnProcessor": true,
"TZOffset": true,
"IsSystem": true
},
{
Expand All @@ -200,6 +209,7 @@
"Cron": "0 0 23 * * *",
"Priority": 20,
"RunOnProcessor": true,
"TZOffset": true,
"IsSystem": true
},
{
Expand All @@ -212,6 +222,7 @@
"Cron": "0 0 0 * * *",
"Priority": 20,
"RunOnProcessor": true,
"TZOffset": true,
"IsSystem": true
},
{
Expand All @@ -221,6 +232,7 @@
"Cron": "0 0 2 * * *",
"Priority": 21,
"RunOnProcessor": true,
"TZOffset": true,
"IsSystem": true
},
{
Expand All @@ -230,6 +242,7 @@
"Cron": "0 30 2 * * *",
"Priority": 22,
"RunOnProcessor": true,
"TZOffset": true,
"IsSystem": true
},
{
Expand All @@ -239,6 +252,7 @@
"Cron": "0 0 3 * * *",
"Priority": 23,
"RunOnProcessor": true,
"TZOffset": true,
"IsSystem": true
},
{
Expand All @@ -248,6 +262,7 @@
"Cron": "0 0 4 * * *",
"Priority": 24,
"RunOnProcessor": true,
"TZOffset": true,
"IsSystem": true
}
]
Loading