Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
698 commits
Select commit Hold shift + click to select a range
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
17ff7df
refactor(sharepoint): streamline tenant selection and deployment process
github-actions[bot] Jul 24, 2026
425aa50
feat(sharepoint): implement SharePoint template selection in site cre…
github-actions[bot] Jul 24, 2026
49eb2f2
Merge branch 'dev' of https://github.com/CyberDrain/CIPP into dev
github-actions[bot] Jul 24, 2026
d072499
feat(sharepoint): introduce template engine versioning in SharePoint …
github-actions[bot] Jul 24, 2026
4725585
math issue
github-actions[bot] Jul 24, 2026
94a4527
clean up ux
github-actions[bot] Jul 24, 2026
c5d78c9
version up
github-actions[bot] Jul 24, 2026
301eec8
refactor(teams): replace Teams module with Graph
github-actions[bot] Jul 25, 2026
e485f7a
fix(tenants): support direct tenant auth checks
github-actions[bot] Jul 25, 2026
09680ce
fix(conditional): handle long CA exclusion names
github-actions[bot] Jul 27, 2026
3012a36
feat(mem): add baseline compare for intune policies
github-actions[bot] Jul 27, 2026
1341f70
fix(sharepoint): cache resolved admin portal url
github-actions[bot] Jul 27, 2026
dbc57d5
Merge branch 'dev' of https://github.com/CyberDrain/CIPP into dev
github-actions[bot] Jul 27, 2026
80bd307
version up
github-actions[bot] Jul 27, 2026
ede8e4e
fix(settings): correct tenant results field name
github-actions[bot] Jul 27, 2026
412d7a8
fix(sharepoint): hide bulk option for action
github-actions[bot] Jul 27, 2026
ee9d5af
chore: bump version to 10.7.2
github-actions[bot] Jul 27, 2026
69b41c4
chore: bump version to 10.7.3
github-actions[bot] Jul 28, 2026
2f81344
Merge branch 'dev' of https://github.com/CyberDrain/CIPP into dev
github-actions[bot] Jul 28, 2026
cbd49dd
add reason to alerts
github-actions[bot] Jul 28, 2026
f1b59b1
Add devices to groups
github-actions[bot] Jul 28, 2026
3d24761
Merge pull request #104 from kris6673/readd-tools
github-actions[bot] Jul 29, 2026
c06a629
Merge pull request #82 from k-grube/fix/manifest-typo
github-actions[bot] Jul 29, 2026
a48408c
fix(webhooks): refresh partner webhook hostname
github-actions[bot] Jul 29, 2026
1eec4dc
chore: bump version to 10.7.4
github-actions[bot] Jul 29, 2026
738b752
feat(auth): add sso pre-consent warmup flow
github-actions[bot] Jul 30, 2026
ad2cb85
feat(groups): add disable nesting option for group creation
github-actions[bot] Jul 30, 2026
f17f483
Merge pull request #131 from CyberDrain/refactor-remove-asuid
github-actions[bot] Jul 30, 2026
0625696
chore: bump version to 10.7.5
github-actions[bot] Jul 30, 2026
a9f2fc5
fix(backend): harden standards policy handling
github-actions[bot] Jul 31, 2026
819940e
Merge pull request #134 from k-grube/fix/graph-explorer-drawer-state
github-actions[bot] Jul 31, 2026
fb79a68
Merge pull request #133 from k-grube/fix/autocomplete-orphan-drawer
github-actions[bot] Jul 31, 2026
d4437f1
Merge pull request #113 from kris6673/feat/mfa-default-method
github-actions[bot] Jul 31, 2026
5551f49
Merge pull request #106 from Renada-Solutions/feat/halo-integration-i…
github-actions[bot] Jul 31, 2026
ffef88e
Merge pull request #98 from Renada-Solutions/feat/halo-azure-tenant-a…
github-actions[bot] Jul 31, 2026
92a0682
Merge pull request #63 from CyberDrain/dependabot/npm_and_yarn/fronte…
github-actions[bot] Jul 31, 2026
a071f6f
Merge pull request #62 from CyberDrain/dependabot/npm_and_yarn/fronte…
github-actions[bot] Jul 31, 2026
1252d50
Merge pull request #61 from CyberDrain/dependabot/npm_and_yarn/fronte…
github-actions[bot] Jul 31, 2026
15284d5
Merge pull request #60 from CyberDrain/dependabot/npm_and_yarn/fronte…
github-actions[bot] Jul 31, 2026
286d021
Merge pull request #59 from CyberDrain/dependabot/npm_and_yarn/fronte…
github-actions[bot] Jul 31, 2026
76d8013
react dom lift
github-actions[bot] Jul 31, 2026
d32ed89
Merge branch 'dev' of https://github.com/CyberDrain/CIPP into dev
github-actions[bot] Jul 31, 2026
3651e11
fix(custom-domains): drop asuid TXT requirement
github-actions[bot] Jul 31, 2026
44a5c17
Merge pull request #145 from jspern/chore/sync-yarn-lock
github-actions[bot] Jul 31, 2026
d5a8511
Merge pull request #152 from CyberDrain/region-based-timezone-detection
github-actions[bot] Aug 1, 2026
913837c
feat(ci): build preview containers from unmerged branches
github-actions[bot] Aug 1, 2026
2625158
Merge pull request #156 from CyberDrain/feat/sso-multi-domain
github-actions[bot] Aug 1, 2026
f72044f
Merge pull request #154 from k-grube/fix/worker-health-job-filters
github-actions[bot] Aug 1, 2026
df9cead
Merge pull request #153 from k-grube/fix/formatter-null-guards
github-actions[bot] Aug 1, 2026
c2c95f4
Merge pull request #149 from k-grube/fix/recharts-first-render-warning
github-actions[bot] Aug 1, 2026
f3ae52e
Merge pull request #148 from k-grube/fix/tooltip-disabled-child-warnings
github-actions[bot] Aug 1, 2026
369ac90
Merge pull request #147 from k-grube/fix/user-photo-remove-hover
github-actions[bot] Aug 1, 2026
2ae7bac
Merge pull request #143 from jspern/feat/bulk-update-standard-autorun
github-actions[bot] Aug 1, 2026
1a2f095
Merge pull request #139 from kris6673/change-mode
github-actions[bot] Aug 1, 2026
097f6d5
refactor(preview): drop immutable -<sha> tags from preview builds
github-actions[bot] Aug 1, 2026
2274fc2
Merge pull request #144 from kris6673/feat/worker-health-job-status-f…
github-actions[bot] Aug 1, 2026
fdf048f
Merge pull request #158 from k-grube/fix/toolbar-preset-dropdown-refresh
github-actions[bot] Aug 2, 2026
e73029a
completely revisit import library
github-actions[bot] Aug 2, 2026
53f1d7a
fixes
github-actions[bot] Aug 2, 2026
bd099fd
Merge pull request #160 from k-grube/feat/toolbar-filter-slots
github-actions[bot] Aug 2, 2026
9f904d9
Merge pull request #161 from k-grube/feat/frontend-tests
github-actions[bot] Aug 3, 2026
196ca5f
fix(exchange): sync contact email routing updates
github-actions[bot] Aug 3, 2026
775d81f
fix(geoip): require tenantFilter in IP API
github-actions[bot] Aug 3, 2026
4118725
Merge branch 'dev' of https://github.com/CyberDrain/CIPP into dev
github-actions[bot] Aug 3, 2026
a83da90
Merge branch 'dev' of https://github.com/CyberDrain/CIPP into dev
github-actions[bot] Aug 3, 2026
1433442
Merge branch 'dev' of https://github.com/CyberDrain/CIPP into dev
github-actions[bot] Aug 3, 2026
cf3c37f
Merge pull request #169 from CyberDrain/preview/new-logon-shell
github-actions[bot] Aug 3, 2026
15e98b1
feat(auth): add Cippy mascot and improve auth shell layout
github-actions[bot] Aug 3, 2026
2272230
refactor(auth): remove version prop, fix Cippy layout
github-actions[bot] Aug 3, 2026
3c3c8fa
Merge branch 'dev' of https://github.com/CyberDrain/CIPP into dev
github-actions[bot] Aug 3, 2026
f690957
feat: add hosted maintenance notice banner
github-actions[bot] Aug 4, 2026
b09e665
feat(intune): typed custom variables and settings catalog editor
github-actions[bot] Aug 4, 2026
12dbfd7
fix(report-builder): preserve table cells in pdf
github-actions[bot] Aug 4, 2026
73b3262
feat(sso): explain setup permissions
github-actions[bot] Aug 4, 2026
6969294
docs(sso): add Reset SSO guidance and escape hatch
github-actions[bot] Aug 4, 2026
d6ff352
Merge branch 'dev' of https://github.com/CyberDrain/CIPP into dev
github-actions[bot] Aug 4, 2026
74b803d
fix(endpoint): resolve AssignTo key casing collision in app templates
github-actions[bot] Aug 4, 2026
a971ad3
Merge pull request #178 from CyberDrain/dependabot/npm_and_yarn/front…
github-actions[bot] Aug 4, 2026
0a1b370
Merge pull request #177 from CyberDrain/dependabot/npm_and_yarn/front…
github-actions[bot] Aug 4, 2026
8a1b24c
Merge pull request #176 from CyberDrain/dependabot/npm_and_yarn/front…
github-actions[bot] Aug 4, 2026
2f8e039
Merge pull request #172 from CyberDrain/preview/alltenants-dashboard
github-actions[bot] Aug 4, 2026
14d1547
Merge pull request #170 from kris6673/feat/onboarding-shared-calendar…
github-actions[bot] Aug 4, 2026
b4dbddb
perf(intune): fetch setting definitions per policy instead of whole c…
github-actions[bot] Aug 4, 2026
fe00f41
baselines
github-actions[bot] Aug 4, 2026
3c2216d
fix(mem): support remediation script editing
github-actions[bot] Aug 4, 2026
0d320fb
feat(bookmarks): add page bookmark star
github-actions[bot] Aug 4, 2026
921ae39
Merge branch 'dev' of https://github.com/CyberDrain/CIPP into dev
github-actions[bot] Aug 4, 2026
4fb92fa
Merge branch 'dev' of https://github.com/CyberDrain/CIPP into dev
github-actions[bot] Aug 4, 2026
e267905
feat(groups): enhance group report with owners and update UI for owne…
github-actions[bot] Aug 4, 2026
84e714c
fix(settings): persist default test suite setting
github-actions[bot] Aug 4, 2026
9247ddb
Merge branch 'dev' of https://github.com/CyberDrain/CIPP into dev
github-actions[bot] Aug 4, 2026
9837220
updates for baselines
github-actions[bot] Aug 4, 2026
8c035b9
fix: redirect /onboarding to /onboardingv2
github-actions[bot] Aug 4, 2026
9917cdf
Merge pull request #187 from k-grube/test/fix-authshell-breadcrumb-suite
github-actions[bot] Aug 4, 2026
b91e9af
Merge pull request #171 from CyberDrain/preview/superadmin-nav-reorg
github-actions[bot] Aug 4, 2026
9f32149
fix(groups): correct Exchange bulk result correlation and group type …
github-actions[bot] Aug 5, 2026
e275c43
Merge pull request #189 from k-grube/fix/storybook-dev-require-context
github-actions[bot] Aug 5, 2026
dfb10a5
Merge pull request #184 from kris6673/feat/intune-bios-password-retri…
github-actions[bot] Aug 5, 2026
016b929
compares now allow anyof
github-actions[bot] Aug 5, 2026
838215f
Merge pull request #194 from CyberDrain/preview/new-error-state
github-actions[bot] Aug 5, 2026
b8bc58d
Merge branch 'dev' of https://github.com/CyberDrain/CIPP into dev
github-actions[bot] Aug 5, 2026
b27d26f
fix: respect exclusions and cache TTL in drift/groups
github-actions[bot] Aug 5, 2026
2bd3e65
feat(dashboard): add navigation links to portfolio tiles
github-actions[bot] Aug 5, 2026
b3cde76
Merge branch 'dev' of https://github.com/CyberDrain/CIPP into dev
github-actions[bot] Aug 5, 2026
d934156
feat(dashboard): add AllTenants views for secure score and test results
github-actions[bot] Aug 5, 2026
c36c4e3
add standard conflict detection.
github-actions[bot] Aug 5, 2026
deffb5d
perf(tests): fan-out per-tenant queries and add count API
github-actions[bot] Aug 5, 2026
39ca5dc
Merge branch 'dev' of https://github.com/CyberDrain/CIPP into dev
github-actions[bot] Aug 5, 2026
f73f665
Merge pull request #196 from samirp91/fix/copilot-imagegeneration-val…
github-actions[bot] Aug 5, 2026
5c81043
Merge branch 'dev' of https://github.com/CyberDrain/CIPP into dev
github-actions[bot] Aug 5, 2026
bf5cdb4
feat(identity): use unified RBAC API for roles listing
github-actions[bot] Aug 5, 2026
a4f7a95
Merge pull request #195 from CyberDrain/fix/recommended-roles-doc-links
github-actions[bot] Aug 5, 2026
5a35b2a
Merge branch 'dev' of https://github.com/CyberDrain/CIPP into dev
github-actions[bot] Aug 5, 2026
01314be
Merge branch 'dev' of https://github.com/CyberDrain/CIPP into dev
github-actions[bot] Aug 6, 2026
13464e0
compare fixes for intune and baseline caching for CA policies with ha…
github-actions[bot] Aug 6, 2026
c9c695a
Merge pull request #168 from jspern/feat/top-menu-picker-qol
github-actions[bot] Aug 6, 2026
820c343
Merge branch 'dev' of https://github.com/CyberDrain/CIPP into dev
github-actions[bot] Aug 6, 2026
3dac353
Merge pull request #200 from Jr7468/dev
github-actions[bot] Aug 6, 2026
ab15fd1
add isFetching for loading skeleton
github-actions[bot] Aug 6, 2026
93a5562
feat(reports): centralise PDF branding into one shared kit
github-actions[bot] Aug 6, 2026
07f3b1e
Merge branch 'dev' of https://github.com/CyberDrain/CIPP into dev
github-actions[bot] Aug 6, 2026
ff6316b
Merge branch 'dev' of https://github.com/CyberDrain/CIPP into dev
github-actions[bot] Aug 6, 2026
8e8d606
fix: eliminate dark-mode flash on initial load
github-actions[bot] Aug 7, 2026
02f029e
refactor(email): migrate TenantAllowBlockList to report DB
github-actions[bot] Aug 7, 2026
f329bd2
fix(openapi): serve spec as static asset
github-actions[bot] Aug 7, 2026
83d95a8
updated api docs
github-actions[bot] Aug 7, 2026
8b5fb12
Merge branch 'dev' of https://github.com/CyberDrain/CIPP into dev
github-actions[bot] Aug 7, 2026
455b5c6
Merge branches 'dev' and 'dev' of https://github.com/CyberDrain/CIPP …
github-actions[bot] Aug 7, 2026
760e6ff
Merge branch 'dev' of https://github.com/CyberDrain/CIPP into dev
github-actions[bot] Aug 7, 2026
5ed8ae1
Merge pull request #210 from CyberDrain/preview/new-setup-gate
github-actions[bot] Aug 7, 2026
c7806c5
feat(scheduler): add PSA ticket strategy selector
github-actions[bot] Aug 7, 2026
16dfd9c
Merge pull request #191 from TecharyJames/feat-set-custom-font
github-actions[bot] Aug 7, 2026
5baddd8
Merge pull request #174 from CyberDrain/dependabot/npm_and_yarn/front…
github-actions[bot] Aug 7, 2026
10440a2
Merge pull request #175 from CyberDrain/dependabot/npm_and_yarn/front…
github-actions[bot] Aug 7, 2026
b1b61b2
style(pdf): tighten report cover spacing
github-actions[bot] Aug 7, 2026
9ff43fc
fix(pdf): resolve cipp variables in report footers
github-actions[bot] Aug 7, 2026
f46bbd5
feat(branding): split branding into own endpoint
github-actions[bot] Aug 7, 2026
cbcadae
version up
github-actions[bot] Aug 7, 2026
cd52b2d
up package for frontend
github-actions[bot] Aug 7, 2026
d46b553
v up
github-actions[bot] Aug 7, 2026
7673fff
fix(catalog): trigger community repo template fetch on page load
github-actions[bot] Aug 7, 2026
fdfff67
refactor(intune): bundle definitions into 256 bucket files
github-actions[bot] Aug 8, 2026
1987ac4
chore: bump version to 10.8.2
github-actions[bot] Aug 8, 2026
e4bcbe5
fix(release-notes): match exact version tag for hotfix releases
github-actions[bot] Aug 8, 2026
eeec87e
exporting and template packages
github-actions[bot] Aug 9, 2026
9f78fda
improve historics
github-actions[bot] Aug 9, 2026
532a849
fix(branding): fetch multipart images reliably
github-actions[bot] Aug 10, 2026
74f1417
fix(cache): refactor data processing in cache scripts to use foreach …
github-actions[bot] Aug 10, 2026
a5da7be
Merge branch 'dev' of https://github.com/CyberDrain/CIPP into dev
github-actions[bot] Aug 10, 2026
4aae6f9
feat(core): auto-reconcile instance and webhook urls
github-actions[bot] Aug 10, 2026
848fb0a
feat(tenants): add tenant group membership to tenant list
github-actions[bot] Aug 10, 2026
42ab414
Merge pull request #231 from CyberDrain/fix/setup-wizard-auth
github-actions[bot] Aug 10, 2026
f37adea
fix(formatting): handle Members array in text/export mode
github-actions[bot] Aug 10, 2026
9301e55
chore: bump version to 10.8.3
github-actions[bot] Aug 10, 2026
1af6a75
feat(watermark): implement watermark text handling with variable subs…
github-actions[bot] Aug 11, 2026
8c1a8c7
feat(bec): expand BEC checks and reporting
github-actions[bot] Aug 12, 2026
f649638
fix(bec): tighten scoring and foreign sign-in logic
github-actions[bot] Aug 12, 2026
fc4c9cd
feat(ca): improve policy patching and builder
github-actions[bot] Aug 12, 2026
6539103
fix(exchange): resolve folder perm users by id
github-actions[bot] Aug 12, 2026
77c8c45
Merge branch 'dev' of https://github.com/CyberDrain/CIPP into dev
github-actions[bot] Aug 12, 2026
ee6ae16
fix(sharepoint): support sovereign cloud SharePoint domains
github-actions[bot] Aug 12, 2026
0cf25d7
feat(dbcache): add resumable sharing links scan
github-actions[bot] Aug 12, 2026
9af9ee9
Merge pull request #271 from CyberDrain/chore/license-sku-update-2026…
github-actions[bot] Aug 12, 2026
b73a538
fix(copilot): correct copilot setting mappings
github-actions[bot] Aug 12, 2026
21c131e
chore: bump version to 10.8.4
github-actions[bot] Aug 12, 2026
105b732
refactor: trim verbose inline comments to essentials
github-actions[bot] Aug 12, 2026
c45c6fe
fix(tenant): skip query cancel on initial URL backfill
github-actions[bot] Aug 13, 2026
e7448c7
fix(alltenants): ignore ad-hoc cache staleness
github-actions[bot] Aug 13, 2026
ffc933c
feat(dashboard): expand stale cache list with per-collection detail
github-actions[bot] Aug 13, 2026
e1005ce
feat(core): add partner tenant info endpoint
github-actions[bot] Aug 13, 2026
69d8c10
fix(mem): harden template deploy and prep assign
github-actions[bot] Aug 13, 2026
c846b9c
fix(pwpush): handle null account results safely
github-actions[bot] Aug 13, 2026
44a5902
Merge pull request #246 from k-grube/fix/require-context-jsdom
github-actions[bot] Aug 14, 2026
798a8d0
fix(sharepoint): apply bulk Remove Guest Access and Edit Site to ever…
github-actions[bot] Aug 14, 2026
8e297d2
feat(sharepoint): add quota card and fix empty usage report handling
github-actions[bot] Aug 14, 2026
e303c49
fix(sharepoint): preserve null storage for sites with no usage data
github-actions[bot] Aug 14, 2026
5f650e2
feat(github): fall back to function app on PAT errors
github-actions[bot] Aug 14, 2026
d4d26e3
chore: bump version to 10.8.5
github-actions[bot] Aug 14, 2026
c3b325a
baseline saving
github-actions[bot] Aug 15, 2026
8ac4417
Fix deny remediation
github-actions[bot] Aug 15, 2026
ab3e439
more granular permissions
github-actions[bot] Aug 15, 2026
938ae1c
baseline items
github-actions[bot] Aug 15, 2026
de9f0b2
fixes for baselines
github-actions[bot] Aug 15, 2026
18f3c10
Merge pull request #297 from kris6673/feat/AllowTeamsConsumerInbound
github-actions[bot] Aug 15, 2026
36c508d
Merge pull request #296 from kris6673/feat/autopilot-group-assignment
github-actions[bot] Aug 15, 2026
9241b12
Merge pull request #294 from CyberDrain/feat/custom-role-simple-mode
github-actions[bot] Aug 15, 2026
c53c2ee
Merge pull request #292 from kris6673/fix/assigned-license-filter-opt…
github-actions[bot] Aug 15, 2026
9546b45
Merge pull request #255 from k-grube/fix/autocomplete-dom-prop-leak
github-actions[bot] Aug 15, 2026
95cf0a0
Merge pull request #228 from CyberDrain/preview/mobile-ux-improvements
github-actions[bot] Aug 15, 2026
bfd322a
fix(mobile): improve layout on small screens
github-actions[bot] Aug 15, 2026
cd90d4c
Merge branch 'dev' of https://github.com/CyberDrain/CIPP into dev
github-actions[bot] Aug 15, 2026
9faffd1
fix(ui): prevent mobile horizontal overflow
github-actions[bot] Aug 15, 2026
6b3820f
refactor(ui): replace Alert with CippExpandableAlert
github-actions[bot] Aug 16, 2026
4d207c0
fix: suppress duplicate title on mobile tab pages
github-actions[bot] Aug 16, 2026
ee8bbdd
feat(gdap): add Partner Center API token check
github-actions[bot] Aug 16, 2026
42499b1
feat(identity): add user switcher to view user pages
github-actions[bot] Aug 16, 2026
0aa2ee1
fix(table): retire drawer action buttons
github-actions[bot] Aug 16, 2026
ae56c2f
Merge branch 'dev' of https://github.com/CyberDrain/CIPP into dev
github-actions[bot] Aug 16, 2026
3866064
baselines
github-actions[bot] Aug 16, 2026
c931070
frontend fixes
github-actions[bot] Aug 16, 2026
6996537
fixes baseline
github-actions[bot] Aug 16, 2026
d076c18
fix(identity): correct inactive users report fields
github-actions[bot] Aug 17, 2026
4a24ea6
feat(cipp): Introduce UnlicensedOneDriveData alert
github-actions[bot] Aug 17, 2026
9307016
fix(pwpush): stop stale settings from silently breaking every push
github-actions[bot] Aug 17, 2026
9f24f2c
chore: Remove non supported group creation types (dynamic dist groups)
github-actions[bot] Aug 17, 2026
f21de80
feat(cipp): record version transitions and surface hosting info on Ve…
github-actions[bot] Aug 17, 2026
98d680b
feat: add entity switcher to detail pages
github-actions[bot] Aug 17, 2026
99b2770
feat(support): add support bundle generator
github-actions[bot] Aug 17, 2026
f0213fd
fix(support): strip auth tokens from bundles
github-actions[bot] Aug 18, 2026
2bcf8fe
Merge branch 'dev' of https://github.com/CyberDrain/CIPP into dev
github-actions[bot] Aug 18, 2026
3fb772e
Merge branch 'dev' of https://github.com/CyberDrain/CIPP into dev
github-actions[bot] Aug 18, 2026
60f7fb3
Merge branch 'dev' of https://github.com/CyberDrain/CIPP into dev
github-actions[bot] Aug 18, 2026
ec98f38
add form key for resets
github-actions[bot] Aug 18, 2026
627ceb8
allow removal via selector
github-actions[bot] Aug 18, 2026
34291f6
add offboarding of Quartatine alerts to offboarding
github-actions[bot] Aug 18, 2026
1577d71
feat(identity): add guest lifecycle dashboard
github-actions[bot] Aug 18, 2026
286c1d8
fix(autocomplete): disambiguate default match
github-actions[bot] Aug 18, 2026
5998197
Merge branch 'dev' of https://github.com/CyberDrain/CIPP into dev
github-actions[bot] Aug 18, 2026
5b0cd2f
Merge branch 'dev' of https://github.com/CyberDrain/CIPP into dev
github-actions[bot] Aug 18, 2026
3c86050
Merge pull request #188 from kris6673/feat/purview-message-encryption
github-actions[bot] Aug 18, 2026
2dc2061
feat(identity): serve guest lifecycle dashboard from the report cache
github-actions[bot] Aug 18, 2026
9d1caff
Merge branch 'dev' of https://github.com/CyberDrain/CIPP into dev
github-actions[bot] Aug 18, 2026
9d590a6
Merge branch 'dev' of https://github.com/CyberDrain/CIPP into dev
github-actions[bot] Aug 18, 2026
2dd2f00
feat(support): add manual recording mode to support bundle
github-actions[bot] Aug 18, 2026
499eacc
Merge branch 'dev' of https://github.com/CyberDrain/CIPP into dev
github-actions[bot] Aug 18, 2026
8773dd0
translate license shapes and report update.
github-actions[bot] Aug 18, 2026
5628c68
feat(tests): expose Domain Analyser results to custom tests via the r…
github-actions[bot] Aug 18, 2026
f4f1be5
chore(api): update api spec
github-actions[bot] Aug 18, 2026
266c644
fix(sharepoint): treat locked sites as inactive instead of failed in …
github-actions[bot] Aug 18, 2026
ff2aac8
Merge pull request #323 from Renada-Solutions/feat/halo-request-source
github-actions[bot] Aug 18, 2026
d50a605
Merge pull request #316 from k-grube/fix/mobile-ui
github-actions[bot] Aug 18, 2026
db04af8
Merge pull request #330 from CyberDrain/chore/license-sku-update-2026…
github-actions[bot] Aug 19, 2026
969a0bb
Merge branch 'dev' of https://github.com/CyberDrain/CIPP into dev
github-actions[bot] Aug 19, 2026
8636fbd
Merge branch 'dev' of https://github.com/CyberDrain/CIPP into dev
github-actions[bot] Aug 19, 2026
01d4f93
Merge pull request #341 from CyberDrain/chore/license-sku-update-2026…
github-actions[bot] Aug 20, 2026
41cd95f
feat(cipp): enhance group management and UI components
github-actions[bot] Aug 20, 2026
c621ba2
Merge pull request #318 from kris6673/quarantine-overhaul
github-actions[bot] Aug 20, 2026
2089a49
Merge branch 'dev' of https://github.com/CyberDrain/CIPP into dev
github-actions[bot] Aug 21, 2026
e12e3e8
OneDrive sizes
github-actions[bot] Aug 21, 2026
5437c3c
added add all button
github-actions[bot] Aug 21, 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: 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