Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
458 commits
Select commit Hold shift + click to select a range
423794b
Merge pull request #6261 from kris6673/clearable-edit-user
KelvinTegelaar Jul 1, 2026
a907694
Merge pull request #6207 from kris6673/room-improvements
KelvinTegelaar Jul 1, 2026
04d89c4
tenant correction #6268
KelvinTegelaar Jul 1, 2026
39a62ae
Merge branch 'dev' of https://github.com/KelvinTegelaar/CIPP into dev
KelvinTegelaar Jul 1, 2026
4fbe999
Show row count in bulk action confirm text
KelvinTegelaar Jul 1, 2026
35a019f
Update index.js
Zacgoose Jul 1, 2026
0fc6459
https://github.com/KelvinTegelaar/CIPP/issues/6265
KelvinTegelaar Jul 1, 2026
779a712
Merge branch 'dev' of https://github.com/KelvinTegelaar/CIPP into dev
KelvinTegelaar Jul 1, 2026
9b76a41
Fixes for cache schema response shape
Zacgoose Jul 1, 2026
668e5a7
Revert CippFormComponent core edits and shorten HaloPSA helper texts
renada-jacob Jul 1, 2026
9f34147
Harden template creation to check app type
Zacgoose Jul 1, 2026
cc36c87
Merge pull request #141 from KelvinTegelaar/dev
pull[bot] Jul 1, 2026
01c59bc
Add delivery insights and paste input mode
Zacgoose Jul 1, 2026
1a9b712
Merge pull request #6006 from renada-jacob/feat/halo-link-tickets-to-…
KelvinTegelaar Jul 1, 2026
7162342
MSP App improvements
KelvinTegelaar Jul 1, 2026
977e6b9
Merge pull request #6260 from TecharyJames/alerts-on-dashboard
KelvinTegelaar Jul 1, 2026
d5ef5ea
Merge pull request #142 from KelvinTegelaar/dev
pull[bot] Jul 1, 2026
9a80160
Merge pull request #6017 from isgq-github01/nested-group-support
JohnDuprey Jul 1, 2026
3d33ff7
chore(deps): bump @tanstack/react-query from 5.101.0 to 5.101.2
dependabot[bot] Jul 1, 2026
bf41ced
chore(deps-dev): bump eslint-config-next from 16.2.3 to 16.2.10
dependabot[bot] Jul 1, 2026
efe3d77
chore(deps): bump @tiptap/pm from 3.22.3 to 3.27.1
dependabot[bot] Jul 1, 2026
fcb156d
chore(deps): bump react-apexcharts from 2.1.0 to 2.1.1
dependabot[bot] Jul 1, 2026
ffb1b1d
chore(deps): bump react-redux from 9.2.0 to 9.3.0
dependabot[bot] Jul 1, 2026
37d6c5a
chore(deps): bump LanceMcCarthy/Action-AzureBlobUpload
dependabot[bot] Jul 1, 2026
1ba5ffb
Merge pull request #143 from KelvinTegelaar/dev
pull[bot] Jul 2, 2026
a3d25bf
feat: add bulk remove mailbox permissions functionality
kris6673 Jul 1, 2026
605990c
feat: add mailbox access card to exchange page
kris6673 Jul 1, 2026
ed02599
fix: encode UPN and surface report errors
kris6673 Jul 2, 2026
a3307a4
Merge pull request #6277 from kris6673/bulk-remove-mailbox-permissions
KelvinTegelaar Jul 2, 2026
9fa501b
Merge pull request #6270 from KelvinTegelaar/dependabot/npm_and_yarn/…
KelvinTegelaar Jul 2, 2026
4cb3b23
Merge pull request #6271 from KelvinTegelaar/dependabot/npm_and_yarn/…
KelvinTegelaar Jul 2, 2026
759613f
Merge pull request #6275 from KelvinTegelaar/dependabot/github_action…
KelvinTegelaar Jul 2, 2026
cdfed3c
Merge pull request #6274 from KelvinTegelaar/dependabot/npm_and_yarn/…
KelvinTegelaar Jul 2, 2026
b00b6c3
Merge pull request #6273 from KelvinTegelaar/dependabot/npm_and_yarn/…
KelvinTegelaar Jul 2, 2026
b14c674
Merge pull request #6272 from KelvinTegelaar/dependabot/npm_and_yarn/…
KelvinTegelaar Jul 2, 2026
4a47d55
Merge pull request #144 from KelvinTegelaar/dev
pull[bot] Jul 2, 2026
41cdfc4
Add Stale Entra Devices Remediation Action
Zacgoose Jul 2, 2026
c38010f
Update config.js
Zacgoose Jul 2, 2026
32bf765
Merge pull request #145 from KelvinTegelaar/dev
pull[bot] Jul 2, 2026
c49e2fd
remove exclusion
KelvinTegelaar Jul 2, 2026
c8fadc2
Merge branch 'dev' of https://github.com/KelvinTegelaar/CIPP into dev
KelvinTegelaar Jul 2, 2026
488541e
feat(bec): show recent inbox rule changes
kris6673 Jul 2, 2026
60a5749
feat: new workflows
JohnDuprey Jul 2, 2026
0f376d4
Add default checkboxes for webhook etc
KelvinTegelaar Jul 2, 2026
272ed66
Merge pull request #6282 from KelvinTegelaar/sca-dast-testing
JohnDuprey Jul 2, 2026
4a47843
Merge pull request #6245 from matstocks/feature/6228-exchange-alert-p…
KelvinTegelaar Jul 2, 2026
3a991a4
Merge pull request #146 from KelvinTegelaar/dev
pull[bot] Jul 2, 2026
506d75a
edit user schedule
KelvinTegelaar Jul 3, 2026
9fd979e
fixed defanged urls
KelvinTegelaar Jul 3, 2026
addfa51
Merge remote-tracking branch 'upstream/dev' into bec-rule-changes
kris6673 Jul 3, 2026
f18a736
Merge pull request #147 from KelvinTegelaar/dev
pull[bot] Jul 3, 2026
d48c025
feat: add email aliases and hide-from-GAL to group templates
Jul 4, 2026
eaca827
fix(jit-admin): use dedicated JitAdminRoles.json instead of GDAP role…
0xhansen Jul 6, 2026
7ab44bd
fix(gdap): remove non-delegatable Customer Delegated Admin Relationsh…
0xhansen Jul 6, 2026
4ef5774
feat: show MCP API URL (/api/ExecMcp) on CIPP-API integration page
CTaylor-1 Jul 6, 2026
55d34d0
feat(jit-admin): add Microsoft 365 / Entra Backup roles to JIT list
0xhansen Jul 6, 2026
48cc8cd
fix(jit-admin): use current Microsoft Entra role names in JIT list
0xhansen Jul 6, 2026
aca9fb6
fix(gdap): use current Microsoft Entra role names in GDAP roles catalog
0xhansen Jul 6, 2026
8ad0d1c
fix: modernize Azure AD -> Microsoft Entra terminology in role descri…
0xhansen Jul 6, 2026
06b7490
fix(ui): modernize Azure AD -> Microsoft Entra wording in UI labels
0xhansen Jul 6, 2026
816224a
Merge pull request #6295 from 0xhansen/fix/entra-ui-naming
KelvinTegelaar Jul 6, 2026
75ad6be
Merge pull request #6294 from CTaylor-1/feat/mcp-api-url-field
KelvinTegelaar Jul 6, 2026
3b027e9
Merge pull request #6281 from kris6673/bec-rule-changes
KelvinTegelaar Jul 6, 2026
4ec4fe9
Merge pull request #6291 from 0xhansen/fix/jit-gdap-role-decoupling
KelvinTegelaar Jul 6, 2026
ba79dbe
fix(ui): modernize Azure AD device column labels to Microsoft Entra
0xhansen Jul 6, 2026
4732197
fix(ui): render device trustType/joinType as Microsoft Entra device s…
0xhansen Jul 6, 2026
d12d437
vacation mode updates
KelvinTegelaar Jul 6, 2026
e32571c
Merge branch 'dev' of https://github.com/KelvinTegelaar/CIPP into dev
KelvinTegelaar Jul 6, 2026
b1eecba
Drop disableResilienceDefaults when not enabled
Zacgoose Jul 6, 2026
ed0b34e
Merge pull request #148 from KelvinTegelaar/dev
pull[bot] Jul 6, 2026
0d6eefd
feat: Add color picker support for sensitivity labels and enhance lab…
JohnDuprey Jul 6, 2026
a445e39
feat(bec): add trusted and blocked senders checks
kris6673 Jul 6, 2026
cb81f1a
feat(bec): collapsible compact check cards
kris6673 Jul 6, 2026
c1fb0f9
feat(bec): refactor sent emails and trusted/blocked senders into tables
kris6673 Jul 6, 2026
5d63a60
Merge pull request #149 from KelvinTegelaar/dev
pull[bot] Jul 6, 2026
6433cd3
feat: Enhance proxy address handling by merging Entra ID and Exchange…
JohnDuprey Jul 6, 2026
4d59a15
feat: Add handling for license missing deviations in drift management
JohnDuprey Jul 7, 2026
260d394
Merge pull request #150 from KelvinTegelaar/dev
pull[bot] Jul 7, 2026
6fb6cbc
App registration love
TecharyJames Jul 6, 2026
6cf3f4d
Update AppRegistrationActions.jsx
TecharyJames Jul 7, 2026
51d8ecf
improvements to drift management
KelvinTegelaar Jul 7, 2026
4840347
Merge branch 'dev' of https://github.com/KelvinTegelaar/CIPP into dev
KelvinTegelaar Jul 7, 2026
6c3746c
SSO manual cred input
Zacgoose Jul 7, 2026
4c43941
Last copilot AI improvements reporting.
KelvinTegelaar Jul 7, 2026
225d6cd
Merge pull request #151 from KelvinTegelaar/dev
pull[bot] Jul 7, 2026
92b4bdb
feat: Enhance ReusableSettingsTemplate reporting
JohnDuprey Jul 7, 2026
15f785c
feat: Prefill manual entry custom data fields in edit mode
JohnDuprey Jul 7, 2026
beaf655
shadow ai updates
KelvinTegelaar Jul 7, 2026
6a1d7de
reporting improvements
KelvinTegelaar Jul 7, 2026
0439cdf
json updates
KelvinTegelaar Jul 7, 2026
141dee6
Merge pull request #152 from KelvinTegelaar/dev
pull[bot] Jul 7, 2026
e89bf86
Merge pull request #6303 from TecharyJames/feat-app-cred-clean
KelvinTegelaar Jul 8, 2026
83ace5c
Merge pull request #6302 from kris6673/BEC
KelvinTegelaar Jul 8, 2026
ae25f4e
Merge upstream/dev into fix/entra-column-labels
0xhansen Jul 8, 2026
3e42a18
fix(ui): rename Compliance Portal labels to Purview Portal
0xhansen Jul 8, 2026
1c31139
Merge pull request #6306 from 0xhansen/fix/purview-portal-label
KelvinTegelaar Jul 8, 2026
7e67aca
Merge pull request #6296 from 0xhansen/fix/entra-column-labels
KelvinTegelaar Jul 8, 2026
e7fbaeb
Merge pull request #153 from KelvinTegelaar/dev
pull[bot] Jul 8, 2026
15f8f4d
fix(device): update device memberOf request for Entra ID to fix 404 a…
kris6673 Jul 8, 2026
b6d2de4
chore: linting
kris6673 Jul 8, 2026
eb19351
refactor(devices): dedupe Intune device actions
kris6673 Jul 8, 2026
9c008b8
fix(ui): add 'description' to extended info fields
kris6673 Jul 8, 2026
df774d1
chore(deps): bump actions/dependency-review-action from 4 to 5
dependabot[bot] Jul 8, 2026
b997150
chore(deps): bump zaproxy/action-baseline from 0.14.0 to 0.15.0
dependabot[bot] Jul 8, 2026
1af3681
chore(deps): bump zaproxy/action-full-scan from 0.12.0 to 0.13.0
dependabot[bot] Jul 8, 2026
862b7aa
chore(deps): bump @tiptap/pm from 3.27.1 to 3.27.3
dependabot[bot] Jul 8, 2026
1ec53a3
chore(deps): bump apexcharts from 5.14.0 to 5.16.0
dependabot[bot] Jul 8, 2026
15af298
chore(deps): bump next from 16.2.9 to 16.2.10
dependabot[bot] Jul 8, 2026
4aa4206
chore(deps): bump @tanstack/react-query-devtools
dependabot[bot] Jul 8, 2026
dab41e8
Fix for session control only CA policy editing
Zacgoose Jul 9, 2026
8d8b2c3
Custom Tests Results Overview Page
Zacgoose Jul 9, 2026
75089a8
Merge pull request #154 from KelvinTegelaar/dev
pull[bot] Jul 9, 2026
e6f7515
Fix bulk onboarding actions
Zacgoose Jul 9, 2026
c4608b2
fix(ui): update search input placeholder text
kris6673 Jul 9, 2026
b0eb2aa
Merge pull request #6320 from kris6673/search-placeholder
KelvinTegelaar Jul 9, 2026
78a84e0
Merge pull request #6310 from kris6673/description-offcanvas
KelvinTegelaar Jul 9, 2026
eab7b6a
Merge pull request #6309 from kris6673/device-memberOf
KelvinTegelaar Jul 9, 2026
4aeec93
sharepoint stuff
KelvinTegelaar Jul 9, 2026
aa78c5c
Merge branch 'dev' of https://github.com/KelvinTegelaar/CIPP into dev
KelvinTegelaar Jul 9, 2026
b6e6e6b
Merge pull request #155 from KelvinTegelaar/dev
pull[bot] Jul 9, 2026
690f772
fix for incorrect chart
KelvinTegelaar Jul 9, 2026
f543ba8
fix issue with replace props
KelvinTegelaar Jul 9, 2026
b365b4e
Merge pull request #156 from KelvinTegelaar/dev
pull[bot] Jul 9, 2026
fc446f8
feat: add option to include mail-enabled security groups and group them
kris6673 Jul 9, 2026
553e4cf
chore: linting
kris6673 Jul 9, 2026
4b52817
Merge pull request #6321 from kris6673/fr6290
JohnDuprey Jul 9, 2026
ca00eff
Merge pull request #6311 from KelvinTegelaar/dependabot/github_action…
JohnDuprey Jul 9, 2026
657032e
feat: replace extended info with task details for vacation mode table
JohnDuprey Jul 10, 2026
01cff98
feat: enhance user actions TAP generation
JohnDuprey Jul 10, 2026
af1fe13
feat: Improve set sign in state with validation
JohnDuprey Jul 10, 2026
22f153f
feat: improve source of authority state change
JohnDuprey Jul 10, 2026
f66e74a
feat: Refine source-of-authority action behavior
JohnDuprey Jul 10, 2026
0bf544e
fix: Use SharePoint webUrl field
JohnDuprey Jul 10, 2026
f756eba
Merge pull request #157 from KelvinTegelaar/dev
pull[bot] Jul 10, 2026
4582484
feat: Enhance SharePoint site member role handling
JohnDuprey Jul 10, 2026
353801c
Update index.js
JohnDuprey Jul 10, 2026
696f42a
feat: Add Edit Site Properties form and integrate with site management
JohnDuprey Jul 10, 2026
4995dea
feat: Enhance SharePoint site management
JohnDuprey Jul 10, 2026
4ee4224
fix: Mark SPDirectSharing standard as deprecated
kris6673 Jul 10, 2026
a073395
Merge pull request #158 from KelvinTegelaar/dev
pull[bot] Jul 10, 2026
7ee71e9
Merge pull request #6289 from luimen6/feat/more-group-template-params
KelvinTegelaar Jul 10, 2026
ea6b54c
Merge pull request #6322 from kris6673/deperecate-spdirectsharing
KelvinTegelaar Jul 10, 2026
2b04cef
Merge pull request #6318 from KelvinTegelaar/dependabot/npm_and_yarn/…
KelvinTegelaar Jul 10, 2026
68be315
Merge pull request #6312 from KelvinTegelaar/dependabot/github_action…
KelvinTegelaar Jul 10, 2026
c761b8d
Merge pull request #6316 from KelvinTegelaar/dependabot/npm_and_yarn/…
KelvinTegelaar Jul 10, 2026
528d452
Merge pull request #6315 from KelvinTegelaar/dependabot/npm_and_yarn/…
KelvinTegelaar Jul 10, 2026
0a5fa50
Merge pull request #6313 from KelvinTegelaar/dependabot/github_action…
KelvinTegelaar Jul 10, 2026
801172e
chore(deps): bump @tanstack/react-query-persist-client
dependabot[bot] Jul 10, 2026
cb3eb7c
feat: Add pages for Deleted Sites and External Users; update navigation
JohnDuprey Jul 10, 2026
03458b5
version up
KelvinTegelaar Jul 10, 2026
457de8c
PR title validation
Zacgoose Jul 10, 2026
20f97f7
Merge pull request #6317 from KelvinTegelaar/dependabot/npm_and_yarn/…
KelvinTegelaar Jul 10, 2026
0b2b569
Merge pull request #6314 from KelvinTegelaar/dependabot/npm_and_yarn/…
KelvinTegelaar Jul 10, 2026
1dce247
Merge pull request #160 from KelvinTegelaar/dev
pull[bot] Jul 10, 2026
e72df87
feat: Copilot instructions for commit messages
Zacgoose Jul 10, 2026
edf6861
fix(teams-share): read UTC refresh timestamp
Zacgoose Jul 10, 2026
da668a5
Merge pull request #161 from KelvinTegelaar/dev
pull[bot] Jul 10, 2026
059bd9b
fix(app-template): canonicalize app name casing
Zacgoose Jul 13, 2026
2d50bf8
fix(config): add missing permission for Device Management
kris6673 Jul 13, 2026
612ef72
fix(layout): broaden menu section permissions
Zacgoose Jul 13, 2026
c360a4e
fix(users): clear stale values when switching templates
Zacgoose Jul 13, 2026
daa5cbf
Merge pull request #6337 from kris6673/fix-minor-permission-missing
KelvinTegelaar Jul 13, 2026
e502965
chore: remove duplicate issue detection workflow as GH models is bein…
kris6673 Jul 13, 2026
54ae975
Merge pull request #162 from KelvinTegelaar/dev
pull[bot] Jul 13, 2026
c058808
fix(ci): allow uppercase conventional PR titles
Zacgoose Jul 13, 2026
48595d7
fix: change default assignment mode to 'append'
kris6673 Jul 13, 2026
9820048
Merge pull request #163 from KelvinTegelaar/dev
pull[bot] Jul 13, 2026
c6ea22e
10.6.1
KelvinTegelaar Jul 13, 2026
777c194
Merge branch 'dev' of https://github.com/KelvinTegelaar/CIPP into dev
KelvinTegelaar Jul 13, 2026
e81ae1d
Merge pull request #165 from KelvinTegelaar/dev
pull[bot] Jul 13, 2026
ffbca69
feat(auth-methods): enhance registration campaign configuration
TecharyJames Jul 14, 2026
5066c5f
chore: align api file with fe file
Zacgoose Jul 15, 2026
082fe06
fix(standards): use Enforce for smart lockout
Zacgoose Jul 15, 2026
82ba3f4
Merge pull request #6341 from kris6673/GH-models-deprecation
KelvinTegelaar Jul 15, 2026
08ad625
Merge pull request #6342 from kris6673/append-default
KelvinTegelaar Jul 15, 2026
0f4ddb0
chore(deps): bump actions/setup-node from 6.4.0 to 7.0.0
dependabot[bot] Jul 15, 2026
f1ce6b5
chore(deps-dev): bump prettier from 3.8.1 to 3.9.5
dependabot[bot] Jul 15, 2026
1b48ea1
chore(deps): bump axios from 1.16.1 to 1.18.1
dependabot[bot] Jul 15, 2026
7dad7bc
chore(deps): bump diff from 8.0.4 to 9.0.0
dependabot[bot] Jul 15, 2026
01d33ac
feat: add anonymization alert for report pages
kris6673 Jul 16, 2026
ceebe9f
fix(user): preserve raw group type in add/edit
Zacgoose Jul 16, 2026
cc3903c
version up
KelvinTegelaar Jul 16, 2026
ee49d2a
Merge pull request #6368 from kris6673/anon-report-banner
KelvinTegelaar Jul 16, 2026
bfc83af
(Sharepoint) Site (in)activity cache and report
rvdwegen Jul 16, 2026
f27ad34
fix(tenants): persist offboarding postExecution
Zacgoose Jul 16, 2026
f2f62df
fix(tools): improve custom test save/run UX
Zacgoose Jul 16, 2026
c7b079c
fix(ui): make offcanvas markdown tables scroll
Zacgoose Jul 16, 2026
21003f7
Add new admin roles to GDAPRoles.json
ITSourcePro Jul 16, 2026
3ac0596
feat(alerts): add mailbox types selection for Mailbox quota alert
kris6673 Jul 16, 2026
5415365
Fix ObjectId formatting in GDAPRoles.json
ITSourcePro Jul 16, 2026
0b879d1
new standard for resource accounts
KelvinTegelaar Jul 17, 2026
ff9b4a4
Merge branch 'dev' of https://github.com/KelvinTegelaar/CIPP into dev
KelvinTegelaar Jul 17, 2026
b9c881e
Merge pull request #6380 from kris6673/6361
KelvinTegelaar Jul 17, 2026
3bea4e3
fix(app-approval): refresh linked permission set
Zacgoose Jul 17, 2026
1f4dc91
AllowedToCreateGroups
KelvinTegelaar Jul 17, 2026
5ad3497
Merge branch 'dev' of https://github.com/KelvinTegelaar/CIPP into dev
KelvinTegelaar Jul 17, 2026
e239ddd
Merge pull request #6381 from ITSourcePro/patch-3
KelvinTegelaar Jul 17, 2026
2d6e610
Merge pull request #6378 from ITSourcePro/patch-2
KelvinTegelaar Jul 17, 2026
b6d9ffd
Merge pull request #6348 from TecharyJames/feat-authenticator-campaig…
KelvinTegelaar Jul 17, 2026
eff5274
docs(user-actions): clarify reset password note
Zacgoose Jul 17, 2026
155b6b0
fix(data): add missing commas in GDAP roles JSON
Zacgoose Jul 17, 2026
c259fe4
ci: add JSON validation workflow
Zacgoose Jul 17, 2026
b4373e5
implements #6390
KelvinTegelaar Jul 18, 2026
5935cf6
Merge branch 'dev' of https://github.com/KelvinTegelaar/CIPP into dev
KelvinTegelaar Jul 18, 2026
341b455
add gdap age group option.
KelvinTegelaar Jul 18, 2026
01180c0
Alert on new shadow AI tools
KelvinTegelaar Jul 19, 2026
9dcb310
Merge pull request #6362 from KelvinTegelaar/dependabot/github_action…
KelvinTegelaar Jul 19, 2026
a50881a
Merge pull request #6363 from KelvinTegelaar/dependabot/npm_and_yarn/…
KelvinTegelaar Jul 19, 2026
30556c7
Merge pull request #6364 from KelvinTegelaar/dependabot/npm_and_yarn/…
KelvinTegelaar Jul 19, 2026
ccf7819
Merge pull request #6365 from KelvinTegelaar/dependabot/npm_and_yarn/…
KelvinTegelaar Jul 19, 2026
18400b0
chore(deps): bump dompurify from 3.4.9 to 3.4.12
dependabot[bot] Jul 19, 2026
c4bf26c
fix(mem): handle single compare policy result
Zacgoose Jul 20, 2026
c5278d1
fixes custom branding.
KelvinTegelaar Jul 20, 2026
fd720e9
Merge branch 'dev' of https://github.com/KelvinTegelaar/CIPP into dev
KelvinTegelaar Jul 20, 2026
4daaf86
Merge pull request #6366 from KelvinTegelaar/dependabot/npm_and_yarn/…
KelvinTegelaar Jul 20, 2026
f777572
feat: add in applicationTemplateId to be able to locate cloud sync se…
kris6673 Jul 20, 2026
bdf0a66
feat(settings): show version and build date in container info
Zacgoose Jul 20, 2026
b599f7e
fix(settings): default container auto-update on
Zacgoose Jul 20, 2026
fcf936d
add sharepoint templated deployments v1
KelvinTegelaar Jul 20, 2026
4327aa5
Merge branch 'dev' of https://github.com/KelvinTegelaar/CIPP into dev
KelvinTegelaar Jul 20, 2026
bcc9208
fix(sso): surface failed migration recovery
Zacgoose Jul 20, 2026
da107eb
fix(autopilot): validate profile display names
Zacgoose Jul 20, 2026
35e83de
fix: stop 401 page flash on successful login
k-grube Jul 20, 2026
fc6a06d
fix: bump cache buster version
k-grube Jul 20, 2026
8458432
Steps
KelvinTegelaar Jul 20, 2026
3ba31f0
Merge pull request #6401 from k-grube/fix/login-401-flash
KelvinTegelaar Jul 20, 2026
8744d9b
Merge pull request #6397 from kris6673/appTemplateID
KelvinTegelaar Jul 20, 2026
16ad6b9
chore: restore typescript devDependency, eslint-config-next flat conf…
k-grube Jul 20, 2026
85eb426
Merge pull request #6402 from k-grube/chore/eslint-typescript
KelvinTegelaar Jul 20, 2026
88c0487
chore: bump version to 10.6.4
JohnDuprey Jul 21, 2026
1bab957
update package.json
github-actions[bot] Jul 21, 2026
ea93c9f
Merge pull request #42 from kris6673/oldRepo
github-actions[bot] Jul 22, 2026
6bc52a8
fix: suppress SSO migration until setup is complete
github-actions[bot] Jul 22, 2026
b0b0261
Merge pull request #17 from k-grube/chore/secure-pipeline-config
github-actions[bot] Jul 22, 2026
cf2c798
Merge branch 'dev' of https://github.com/CyberDrain/CIPP into dev
github-actions[bot] Jul 22, 2026
4589ef9
feat(super-admin): add custom domains page
github-actions[bot] Jul 22, 2026
7d30e3c
feat(SetupWizard): integrate organization API call for tenant type se…
github-actions[bot] Jul 23, 2026
4ef9749
refactor(Layout): simplify setup completion alert layout
github-actions[bot] Jul 23, 2026
232f27f
feat(SharePoint): enhance site template provisioning with site type m…
github-actions[bot] Jul 23, 2026
691fc75
feat(SharePoint): implement save validation for site templates
github-actions[bot] Jul 23, 2026
fefdc13
feat(SharePoint): improve error handling and logging in site template…
github-actions[bot] Jul 23, 2026
d7827af
Merge pull request #46 from kris6673/queryKeyPlacement
github-actions[bot] Jul 23, 2026
52e9f7b
feat(SharePoint): add site language support for SharePoint site creation
github-actions[bot] Jul 23, 2026
f1e0af2
feat(sharepoint): add permissions report and library management
github-actions[bot] Jul 24, 2026
56edabf
Merge pull request #50 from k-grube/fix/side-nav-scroll-desync
github-actions[bot] Jul 24, 2026
d73b6f6
excluded tenants groups to scheduler and alerts
github-actions[bot] Jul 24, 2026
44773d5
fixes Copilot Standard web search
github-actions[bot] Jul 24, 2026
186ce22
add as system for store apps
github-actions[bot] Jul 24, 2026
976e7fc
Add AI report to executive report button
github-actions[bot] Jul 24, 2026
6fa426c
refactor(sharepoint): enhance template handling in API and frontend
github-actions[bot] Jul 24, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 40 additions & 0 deletions .github/copilot-instructions.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
## Commit messages

Generate all commit messages in **Conventional Commits** format:

```
<type>(<optional scope>): <description>

[optional body]

[optional footer(s)]
```

**Rules:**

- **Type** is required and must be one of:
- `feat` — a new feature
- `fix` — a bug fix
- `docs` — documentation only
- `style` — formatting, whitespace, no code-behavior change
- `refactor` — code change that neither fixes a bug nor adds a feature
- `perf` — a performance improvement
- `test` — adding or correcting tests
- `build` — build system or dependency changes
- `ci` — CI/CD configuration changes
- `chore` — routine maintenance, no production code change
- `revert` — reverts a previous commit
- **Scope** is optional and given in parentheses after the type (e.g. `feat(identity):`). Use a short, lowercase area name when it adds clarity.
- **Description** is a short, imperative-mood summary ("add", not "added"/"adds"), lowercase, no trailing period, ideally ≤ 72 characters.
- **Body** (optional) explains the *what* and *why*, not the *how*. Separate it from the description with one blank line.
- **Breaking changes** are indicated with a `!` before the colon (e.g. `feat!:`) and/or a `BREAKING CHANGE:` footer describing the change.
- Reference issues/PRs in the footer where relevant (e.g. `Closes #123`).

**Examples:**

```
feat(identity): add bulk user offboarding endpoint
fix(graph): handle expired token on retry
docs: update authentication model overview
refactor(standards)!: rename remediation parameter
```
71 changes: 71 additions & 0 deletions .github/scripts/validate-json.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
import { readFile, readdir, writeFile, appendFile } from "node:fs/promises";
import path from "node:path";

// Usage: node validate-json.mjs [--strip <prefix>] <dir> [dir...]
// --strip removes a leading path prefix from reported filenames, so a PR checked
// out into a subdirectory still reports repo-relative paths.
const argv = process.argv.slice(2);
let strip = "";
const roots = [];
for (let i = 0; i < argv.length; i++) {
if (argv[i] === "--strip") {
strip = argv[++i] ?? "";
} else {
roots.push(argv[i]);
}
}

async function collect(dir) {
let entries;
try {
entries = await readdir(dir, { withFileTypes: true });
} catch (error) {
if (error.code === "ENOENT") return [];
throw error;
}
const files = [];
for (const entry of entries) {
const full = path.join(dir, entry.name);
if (entry.isDirectory()) {
if (entry.name === "node_modules") continue;
files.push(...(await collect(full)));
} else if (entry.name.endsWith(".json")) {
files.push(full);
}
}
return files;
}

const report = (file) => {
const normalised = file.split(path.sep).join("/");
return strip && normalised.startsWith(strip) ? normalised.slice(strip.length) : normalised;
};

const failures = [];
let checked = 0;

for (const root of roots) {
for (const file of await collect(root)) {
checked++;
const contents = await readFile(file, "utf8");
try {
JSON.parse(contents);
} catch (error) {
failures.push({ file: report(file), message: error.message.replace(/\r?\n/g, " ") });
}
}
}

for (const { file, message } of failures) {
// Annotate the PR diff via a GitHub Actions error command.
console.log(`::error file=${file}::${message}`);
}
console.log(`Checked ${checked} JSON file(s), ${failures.length} invalid.`);

// Hand the results to the workflow so it can comment on the PR.
if (process.env.GITHUB_OUTPUT) {
await appendFile(process.env.GITHUB_OUTPUT, `invalid_count=${failures.length}\n`);
}
await writeFile("json-validation-results.json", JSON.stringify(failures, null, 2));

process.exit(failures.length > 0 ? 1 : 0);
9 changes: 7 additions & 2 deletions .github/workflows/CodeQL_Analyser.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
---
# OPTIONAL UPGRADE to the existing CodeQL_Analyser.yml (already deployed in CIPP).
# Changes vs. current: adds push trigger on main/dev, security-extended query suite,
# and javascript-typescript language alias.
name: "CodeQL"
on:
push:
branches: [main, dev]
pull_request:
branches: [master, main, dev, react]
schedule:
Expand All @@ -17,14 +21,15 @@ jobs:
strategy:
fail-fast: false
matrix:
language: ["javascript"]
language: ["javascript-typescript"]
steps:
- name: Checkout Repository
uses: actions/checkout@v6
- name: Initialize CodeQL
uses: github/codeql-action/init@v4
with:
languages: ${{ matrix.language }}
queries: security-extended
- name: Autobuild
uses: github/codeql-action/autobuild@v4
- name: Perform CodeQL Analysis
Expand Down
65 changes: 65 additions & 0 deletions .github/workflows/Conventional_Commits.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
name: Conventional Commits Check

on:
# Using pull_request_target instead of pull_request for secure handling of fork PRs
pull_request_target:
# Re-run on title edits so a corrected title clears the check
types: [opened, synchronize, reopened, edited]
# Only check PRs targeting the dev branch
branches:
- dev

permissions:
pull-requests: write
issues: write

jobs:
conventional-commits:
name: Validate Conventional Commits
runs-on: ubuntu-slim
steps:
- name: Validate PR title
uses: actions/github-script@v9
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
const title = context.payload.pull_request.title || '';
const pattern = /^(feat|fix|docs|style|refactor|perf|test|chore|ci|build|revert)(\(.+\))?!?: .+/i;

if (pattern.test(title)) {
console.log(`✓ PR title follows Conventional Commits format: "${title}"`);
return;
}

console.log(`❌ PR title does not follow Conventional Commits format: "${title}"`);

const message = [
'❌ **This PR title does not follow the [Conventional Commits](https://www.conventionalcommits.org/) format.**',
'',
'Expected format: `type(scope)?: description`',
'',
'Allowed types: `feat`, `fix`, `docs`, `style`, `refactor`, `perf`, `test`, `chore`, `ci`, `build`, `revert`',
'',
'Examples:',
'- `feat: add tenant filter to the user table`',
'- `fix(auth): handle expired refresh tokens`',
'- `docs: update self-hosting guide`',
'',
`Received: \`${title}\``,
'',
'🔒 This PR has been automatically closed. Please update the title to match the format above and reopen the PR.'
].join('\n');

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

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

core.setFailed(`PR title does not follow Conventional Commits format: "${title}"`);
24 changes: 0 additions & 24 deletions .github/workflows/Detect_Duplicate_Issues.yml

This file was deleted.

2 changes: 1 addition & 1 deletion .github/workflows/Node_Project_Check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ jobs:
steps:
- uses: actions/checkout@v6
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v6.4.0
uses: actions/setup-node@v7.0.0
with:
node-version: ${{ matrix.node-version }}
- name: Install and Build Test
Expand Down
117 changes: 117 additions & 0 deletions .github/workflows/Validate_JSON.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,117 @@
---
name: Validate JSON
on:
# pull_request_target (not pull_request) so the token can comment on fork PRs.
# The PR's own code is never executed: it is checked out into ./pr as data only,
# and parsed by the validator script from the trusted base checkout.
pull_request_target:
types: [opened, synchronize, reopened]
branches:
- main
- dev
paths:
- "public/**/*.json"
- "src/data/**/*.json"
- ".github/workflows/Validate_JSON.yml"
- ".github/scripts/validate-json.mjs"
push:
branches:
- dev
paths:
- "public/**/*.json"
- "src/data/**/*.json"
- ".github/workflows/Validate_JSON.yml"
- ".github/scripts/validate-json.mjs"
concurrency:
group: ${{ github.workflow }}-${{ github.event_name == 'pull_request_target' && github.event.pull_request.number || github.ref }}
cancel-in-progress: true
permissions:
contents: read
pull-requests: write
jobs:
validate:
name: Parse JSON in public and src/data
runs-on: ubuntu-latest
steps:
- name: Checkout base (trusted validator script)
uses: actions/checkout@v6

- name: Checkout PR head (untrusted, data only)
if: github.event_name == 'pull_request_target'
uses: actions/checkout@v6
with:
repository: ${{ github.event.pull_request.head.repo.full_name }}
ref: ${{ github.event.pull_request.head.sha }}
path: pr
persist-credentials: false

- name: Validate JSON files
id: validate
continue-on-error: true
env:
ROOT: ${{ github.event_name == 'pull_request_target' && 'pr/' || '' }}
run: node .github/scripts/validate-json.mjs --strip "$ROOT" "${ROOT}public" "${ROOT}src/data"

- name: Comment on PR
if: github.event_name == 'pull_request_target'
uses: actions/github-script@v9
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
const fs = require('fs');
const marker = '<!-- validate-json -->';
const resultsFile = 'json-validation-results.json';
if (!fs.existsSync(resultsFile)) {
// The validator crashed before reporting; let its own error stand.
core.warning('No validation results found — skipping PR comment.');
return;
}
const failures = JSON.parse(fs.readFileSync(resultsFile, 'utf8'));

// Find a previous comment from this workflow so we update instead of piling up.
const { data: comments } = await github.rest.issues.listComments({
...context.repo,
issue_number: context.issue.number,
per_page: 100,
});
const existing = comments.find(
(c) => c.user.type === 'Bot' && c.body.includes(marker)
);

let body;
if (failures.length > 0) {
const list = failures
.map(({ file, message }) => `- \`${file}\`\n > ${message}`)
.join('\n');
body =
`${marker}\n### ⚠️ Invalid JSON detected\n\n` +
`${failures.length} JSON file(s) in this PR could not be parsed. ` +
`These files are loaded directly by CIPP, so a syntax error here breaks the app at runtime.\n\n` +
`${list}\n\n` +
`Please fix the syntax and push again — this comment will update automatically.`;
} else if (existing) {
body = `${marker}\n### ✅ JSON is valid\n\nAll JSON files in \`public\` and \`src/data\` parse correctly. Thanks for fixing it!`;
} else {
// Nothing was ever broken — stay quiet.
return;
}

if (existing) {
await github.rest.issues.updateComment({
...context.repo,
comment_id: existing.id,
body,
});
} else {
await github.rest.issues.createComment({
...context.repo,
issue_number: context.issue.number,
body,
});
}

- name: Fail if any JSON is invalid
if: steps.validate.outputs.invalid_count != '0'
run: |
echo "::error::${{ steps.validate.outputs.invalid_count }} invalid JSON file(s). See annotations above."
exit 1
4 changes: 2 additions & 2 deletions .github/workflows/cipp_dev_build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ jobs:
echo "node_version=$node_sanitized_version" >> $GITHUB_OUTPUT

- name: Set up Node.js
uses: actions/setup-node@v6.4.0
uses: actions/setup-node@v7.0.0
with:
node-version: ${{ steps.get_node_version.outputs.node_version }}

Expand Down Expand Up @@ -54,7 +54,7 @@ jobs:

# Upload to Azure Blob Storage
- name: Azure Blob Upload
uses: LanceMcCarthy/Action-AzureBlobUpload@v3.12.0
uses: LanceMcCarthy/Action-AzureBlobUpload@v3.15.0
with:
connection_string: ${{ secrets.AZURE_CONNECTION_STRING }}
container_name: cipp
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/cipp_frontend_build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ jobs:
echo "node_version=$node_sanitized_version" >> $GITHUB_OUTPUT

- name: Set up Node.js
uses: actions/setup-node@v6.4.0
uses: actions/setup-node@v7.0.0
with:
node-version: ${{ steps.get_node_version.outputs.node_version }}

Expand Down Expand Up @@ -54,7 +54,7 @@ jobs:

# Upload to Azure Blob Storage
- name: Azure Blob Upload
uses: LanceMcCarthy/Action-AzureBlobUpload@v3.12.0
uses: LanceMcCarthy/Action-AzureBlobUpload@v3.15.0
with:
connection_string: ${{ secrets.AZURE_CONNECTION_STRING }}
container_name: cipp
Expand Down
Loading
Loading