Skip to content

Cursor/fix sharepoint recycle bin bugs a9de - #905

Closed
ClintThomson wants to merge 44 commits into
CyberDrain:mainfrom
Celeratec:cursor/fix-sharepoint-recycle-bin-bugs-a9de
Closed

ClintThomson wants to merge 44 commits into
CyberDrain:mainfrom
Celeratec:cursor/fix-sharepoint-recycle-bin-bugs-a9de

Conversation

@ClintThomson

Copy link
Copy Markdown

No description provided.

ClintThomson and others added 30 commits August 15, 2026 13:54
…l versioning

Ports the Manage365 brand from the Celeratec/CIPP fork onto the monorepo:
cerulean palette + Material Design light/dark themes, Manage365 logo and
favicon set, app titles/manifest, dual version tracking
(manage365-version.json v6.0.0 / upstream baseline 10.8.5) with the fork's
version properties card, GetVersion CleanupStale support, branding default
colour #007BA7, and product docs (README/PRODUCT/DESIGN).
Sweep of 691 fork-modified files (reconciled at upstream 10.8.5), 128
fork-only endpoints/helpers/standards placed into CIPPHTTP/CIPPCore/
CIPPStandards/CIPPActivityTriggers, Sherweb extension removal, config
merges (standards.json, SAMManifest, IntegrationTemplates), Craft
adaptations (orchestrator bridge, UserPhotos byte fetch), Pester tests
and feature docs. All PowerShell parses clean.
Sweep of 418 fork-modified files (card views, mobile responsiveness,
detail pages, quarantine UI, action categories), 93 fork-only
pages/components from the porting pass (SharePoint/OneDrive tools,
cross-tenant access, Dynamics, eDiscovery, Teams voice, guest
lifecycle), organized navigation merged with monorepo-only entries
(container management, authentication, HVE, enrollment profiles),
standards.json synced with backend (207 entries incl. 9 cross-tenant
standards), Sherweb pages and dead template sections removed. Kept
monorepo versions of the auth flow, onboarding wizard, super-admin
pages, and the refactored PDF/report suite. Build green, 406 pages.
Keep the v1 feature catalog as the guide, mark this repo as the v2
monorepo/container successor, and drop leftover SWA/Function App language.
Remove sponsor/community bots, legacy KelvinTegelaar sync, nightly/dev
image builds, and the PR check that auto-closes PRs to main. Ungate
tests and scans so they run on Celeratec, and point JSON validation at
frontend/ paths.
Bring Manage365 through the 10.9 mobile, role, and report-sync updates while keeping branding, the EXO quarantine portal, and standards behavior.
Take the self-host container migration, Graph message trace, and JIT/PIM updates while keeping Manage365 cards, quarantine, and standards.
Take Security Simulations and the 11.0 baseline work while leaving the Baselines flag off so existing standards keep running.
Delegated assignLicense still fails when the operator is not a License Administrator, and inbox-rule work on the older remediate buttons still runs inside the web request.
Pages still imported layouts/index.js and the old drift helper after those files moved to jsx, and Finder duplicates committed in the 10.9 merge were compiled as extra routes.
Align the stale fork implementations with the CIPP 11.0.2 tests, drop the Finder duplicate copies, and fix the frontend checks that were still red.
The table toolbar crashed on undefined handlers, and the committed OpenAPI spec still typed CleanupStale as a string.
…on PR 1

Preset filters, device-code restart, and the phone layouts were lost in the
11.0.2 merge, so the vitest shards stayed red after the last push.
…s sheet

The mounted query editor writes a preset's id and name onto its params, and
the page-actions story was matching a hidden sheet from the story before it.
Align Manage365 to CIPP 11.0.2
A v6.1.0 GitHub release would stamp APP_VERSION as 6.1.0. This dispatch builds the linux/amd64 image with baseline 11.0.2 and tag v6.1.0.
Publish the Manage365 v6.1.0 image from main
The auth methods card referenced UsersIcon without the icon registry, so the dashboard threw on load. The empty service worker fetch listener is removed. The image tag moves to v6.1.1 while the upstream baseline stays 11.0.2.
The settings section was listed twice and the sponsor panel was back in the navigation. Client-facing CIPP labels now say Manage365, and the user row menu no longer crashes on a missing role permission. This ships as 6.1.2 with the upstream baseline still at 11.0.2.
Manage365's was inserted into a single-quoted string, so the production image build failed to compile.
Restore the dashboard and ship Manage365 6.1.1
Bring in the post-11.0.2 standards, JIT approval, NinjaOne, and MCP default-on, and replace the oval logo with light and dark wordmarks.
The logo still links home. The CIPP baseline stays 11.0.2.
ClintThomson and others added 14 commits October 11, 2026 12:59
Sync jobs no longer call filter on a non-list payload, and the API client page imports Tooltip. The CIPP baseline stays 11.0.2.
Enabling MCP no longer fails when Entra has not published the app yet, and a permission that points at a deleted app is dropped. The CIPP baseline stays 11.0.2.
The nav already shows Manage365 Users when CIPPNG is set, but the request gate still honored a stored off flag and returned 503. The API integration card now uses the light and dark wordmarks.
The section headings referenced icon components that were never imported, so the page threw before it could render.
The Exchange card sends ActiveSync plus enable, while the API only read the direct setting names, so re-enable returned 400 before Exchange was called.
Duplicate menu entries, the SharePoint sites crash, and the extra help-menu links are fixed. Standards alignment is limited to the caller's tenants. CIPP baseline stays 11.0.2.
Bug 1 - ExecEmptySiteRecycleBin:
- Now verifies deletion after bulk delete calls by re-reading the bin
- Falls back to batched DeleteByIds (25 at a time) when items remain
- Handles throttling (429/503) with Retry-After header
- Returns accurate counts: itemsBefore, itemsDeleted, itemsRemaining, bytesFreed
- Provides per-stage detailed stats (firstStage, secondStage)
- Surfaces clear errors when items remain (e.g., retention policy, legal hold)
- Logs actual outcome (Info/Warn/Error based on results)

Bug 2 - ListSiteRecycleBinSummary & ListSiteRecycleBin:
- Fixed pagination to use $skip instead of @odata.nextLink
- SharePoint RecycleBin REST API doesn't return @odata.nextLink
- Now correctly reads all items beyond first 500
- Sets capped:true only when MaxItems limit is reached

Also updated:
- Tests to verify new behavior and response fields
- API documentation with detailed changes and testing guide

Co-authored-by: Clint Thomson <Clint@workhubapp.com>
@github-actions

Copy link
Copy Markdown
Contributor

🔄 If you are attempting to update your CIPP repo please follow the instructions at: https://docs.cipp.app/setup/self-hosting-guide/updating. Are you a subscriber? Contact the helpdesk for direct assistance with updating to the latest version. It looks like you may already have a pending update PR on your fork — check your open pull requests to accept it.

⚠️ PRs cannot target the main branch directly. If you are attempting to contribute code please PR to the dev branch.

🔒 This PR will now be automatically closed due to the above rules.

@github-actions github-actions Bot closed this Oct 13, 2026
@ClintThomson
ClintThomson deleted the cursor/fix-sharepoint-recycle-bin-bugs-a9de branch October 13, 2026 22:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants