[pull] dev from KelvinTegelaar:dev - #108
Open
pull[bot] wants to merge 840 commits into
Open
Conversation
…end/dev/multi-4147e2cc44 chore(deps): bump @tiptap/pm and @tiptap/core in /frontend Synced from CyberDrain/CIPP@e436d19
…end/dev/apexcharts-6.6.1 chore(deps): bump apexcharts from 5.16.0 to 6.6.1 in /frontend Synced from CyberDrain/CIPP@256f04b
Reduce excess whitespace on the PDF report cover by decreasing header bottom margin, hero top padding, and footer top margin. This improves visual balance and keeps cover content more compact. Synced from CyberDrain/CIPP@707d439
Add a shared `useReportVariables` hook that loads resolved tenant variables from `ListCustomVariables` and injects them into all PDF report documents, including branding preview and report builder flows. Update `ReportDocument` variable substitution so CIPP tokens (for example `%cippurl%` and custom variables) render as real values instead of remaining literal tokens. Synced from CyberDrain/CIPP@33c8d50
Add `ListBrandingSettings` and move report branding reads out of `ListUserSettings`, then update frontend report/export components to consume branding via a shared `useBrandingSettings` query cache. This removes heavy inline branding payloads from routine user settings loads, drops legacy `customBranding` from persisted client settings, and avoids migration-time overwrite races on normal page loads. The OpenAPI spec is updated for the new endpoint and improved `ListGraphRequest` query parameter descriptions. Synced from CyberDrain/CIPP@0242a81
Synced from CyberDrain/CIPP@0f11434
Synced from CyberDrain/CIPP@1a4be3a
Synced from CyberDrain/CIPP@2db0fd7
Replaces one-file-per-definition layout with 256 bucket bundles (00.json–ff.json) to stay within Azure Static Web Apps' 15,000-file deployment cap. Each bundle is a JSON object keyed by the first 16 hex chars of the definition's SHA-256 hash. Also removes the redundant frontend/public/intuneCollection.json output. Synced from CyberDrain/CIPP@2af70e2
Hotfix builds (e.g. v10.8.2) publish their own GitHub release, so collapsing patch versions back to vX.Y.0 caused two bugs: - The release dialog always showed v10.8.0 notes instead of the hotfix notes. - The dismissal cookie stored the newest GitHub tag (v10.9.0) instead of the running build's tag, so "Don't show until next release" never suppressed the dialog. The backend cache check had the same flaw: matching on major.minor meant the cache was always considered fresh once the .0 release was stored, so hotfix notes were never fetched. Fixes both by using the exact running version tag throughout, with a baseTag fallback for builds that have no release of their own (nightly/local). Adds unit tests covering all four scenarios. Synced from CyberDrain/CIPP@f579bec
Synced from CyberDrain/CIPP@507dc43
Update `Get-CIPPImage` to query by `RowKey` and `OriginalEntityId`, ensuring split image entities can be reassembled consistently when reading branding assets. This also syncs related endpoint/OpenAPI descriptions and refreshes supporting AzBobbyTables binaries while trimming explanatory comments for clarity. Synced from CyberDrain/CIPP@a9a30e2
…for improved stream handling Updated the data processing logic in Set-CIPPDBCacheCredentialUserRegistrationDetails.ps1, Set-CIPPDBCacheManagedDeviceEncryptionStates.ps1, and Set-CIPPDBCacheUserRegistrationDetails.ps1 to utilize foreach instead of ForEach-Object. This change ensures that the Begin/Process/End blocks share function scope with the steppable pipeline, enhancing performance and reliability when handling streamed data from Graph API requests. Synced from CyberDrain/CIPP@fb6bd55
Add startup reconciliation that updates the stored instance hostname and re-registers the Partner Center webhook URL when it is stale, using an authoritative custom-domain lookup from App Service. Extend hostname resolution with preferred/default/custom domain metadata and a no-fallback mode to avoid unsafe rewrites on transient ARM failures. Update partner webhook API/UI messaging and docs to reflect published-domain behavior, and add Pester coverage for reconciliation and safety guardrails. Synced from CyberDrain/CIPP@1ed16a1
Index tenant group membership by customerId and attach a tenantGroups property to each tenant in TenantList mode. Restricted users only see groups they have access to. Also exposes tenantGroups as a simple column in the frontend tenant list page. Implements #167 Synced from CyberDrain/CIPP@1294760
fix(setup): harden device code OAuth flow and secret propagation Synced from CyberDrain/CIPP@8a58882
Role member arrays were falling through to the generic object branch during CSV/PDF export, emitting raw JSON per member. Added a dedicated Members handler that joins display names (with UPN and id fallbacks) in text mode and preserves the items button in component mode. Includes tests covering all fallback paths. fixes #232 Synced from CyberDrain/CIPP@6c7e2d4
…titution Add functionality to apply watermark text in reports, allowing for variable substitution and enforcing a maximum length of 40 characters. Update related components to utilize the new watermark logic, ensuring consistent display across the application. Synced from CyberDrain/CIPP@f6ed5ed
Enhance the BEC pipeline to collect and return richer indicators: suspect-user sign-ins with country/city, usage-location foreign activity analysis, safelist and sharing-link audit changes, sent-mail burst/repeat-subject analysis, and malicious app catalog matching (including tenant-wide catalog hits). It also updates Huntress rogue app matching to use MaliciousApps.json and fixes a malformed Hudu BEC link. Update the BEC UI/PDF and sample preview data to surface the new checks (now through Check 11), add clearer risk messaging/scoring, show geo context and error states, and align wording/documentation with the 7-day analysis model. Also fix BEC page polling refresh behavior so overwrite is one-shot instead of being retriggered on later refetches. Synced from CyberDrain/CIPP@48f2e94
Improve BEC analysis signal quality by normalizing sign-in/device timestamps to ISO-8601, separating successful foreign sign-ins from failed spray noise, and flagging mailbox permission changes that target the investigated user. Update the BEC page, PDF report, sample preview data, and user docs to reflect the new weighting and messaging so tenant-wide churn is de-emphasized while direct compromise indicators are prioritized. Synced from CyberDrain/CIPP@1b32a13
Replace `Remove-EmptyArrays` with `Format-CIPPCAPolicy` so CA policy PATCH bodies are canonicalized to desired state (`[]`/`null`) instead of silently preserving tenant drift. Wire this into both template deployment and full-policy edit flows, and add focused Pester coverage for canonicalization and endpoint behavior. Also expand the CA policy builder to support include/exclude guest or external user assignments, application and workload identity filters, authentication context references, and custom grant controls, with guardrails for invalid Entra combinations. `openapi.json` was regenerated to reflect the updated request/response shapes. Synced from CyberDrain/CIPP@fe79a9d
Use resolved recipient IDs (UserId) for calendar/contact permission removal instead of display names, and still pass display names for clearer logging. Update list endpoints to resolve UserId values, pick folders by FolderType for locale-safe matching, and trim EXO payloads with -Select to reduce response size and ambiguity. Synced from CyberDrain/CIPP@9bc0fb5
Fixes incorrect sharepoint.com URLs for tenants on sovereign clouds (German .de, GCC High .us, DoD -mil.us, 21Vianet .cn). - Add Get-CIPPSharePointDomain to map onmicrosoft TLD to SharePoint domain - Update Get-SharePointAdminLink to read the real domain from the root site host instead of hardcoding sharepoint.com - Propagate SharePointDomain through Get/Set-CIPPSPOTenant, New-CIPPSharepointSite, and template deploy - Invalidate stale cached URLs whose TLD doesn't match the tenant's initial domain - Fix single-domain autodiscover path where [0] on a bare string returns a char - Add Pester tests covering all cloud variants and fallback paths Closes #269 Synced from CyberDrain/CIPP@4007eae
Reworks SharePoint/OneDrive sharing-links caching to stream writes per page with scan state, checkpoints, idempotent site completion, per-drive delta tokens, and finalization pruning/recount logic. Adds shared DBCache helpers, RunId support in Add-CIPPDbItem for cross-activity cleanup, and comprehensive Pester coverage for resume, incremental/full fallback, contention, and finalization behavior. Also fixes TanStack Query v5 queue polling callbacks to stop refetching when queue status is complete, and updates generated OpenAPI query parameters/descriptions. Synced from CyberDrain/CIPP@b1a76f0
Add the JIT Role Templates page (list, add, edit) owed by PR #101 - the author's own draft landed at user-documentation/ (missing the docs/ prefix) and never reached GitBook. Update jit-admin and jit-admin-templates for the new Apply JIT Role Template selector and role-picker restriction, and fix jit-admin/README.md's list filtering. Rename add/edit pages under jit-admin-templates and jit-role-templates from descriptive filenames to add.md/edit.md: the in-app speed-dial docs link is derived from the route pathname for any page outside the nav tree, so a mismatched filename 404s. Drop the now-satisfied jit-role-templates entry from help-links.test.js's NO_DOCS_YET list. Also fix jit-admin-templates/README.md's Action Buttons block, which used <details>/<summary> (reserved for drawers) instead of {% content-ref %}. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Synced from CyberDrain/CIPP@cc295b3
Fixes several dark-mode contrast problems across charts, chips, form controls, and the file dropzone by pulling colors from the MUI theme instead of hard-coded light values. Also fixes disabled-action contrast, adds light backing for dark vendor logos, corrects mobile FAB spacing on the dashboard, and stretches integration cards to a consistent height. Synced from CyberDrain/CIPP@42fa744
The 'All N actions completed' rollup now carries a close button that hides every result row at once, instead of closing them one by one. Synced from CyberDrain/CIPP@41be8c3
feat(gdap): rework role templates with group mapping UI Synced from CyberDrain/CIPP@5743a2b
…rvice plan link Synced from CyberDrain/CIPP@6f33916
Move 'Add Template' button before 'Group Mappings' and make it a contained, small variant for better visual emphasis. Synced from CyberDrain/CIPP@d3f60bb
Wrap unbreakable tokens (UPNs, URLs, domains) instead of overflowing card layouts on phone widths across button/info cards, scheduled task details, webhooks, and shadow AI pages. Add mobileCard primary overrides for tables whose default title column has no text form. Simplify SecureScoreCard axis logic to always use preserveStartEnd interval, removing the now-redundant SecureScoreChart component. Add readable names for unmapped Intune policy types (macOS/Windows configs) instead of surfacing raw Graph URLs, and chip-render long comma-separated location lists. Synced from CyberDrain/CIPP@5918b20
Synced from CyberDrain/CIPP@17dd1e3
Fix: Normalize MFAMethods handling in auth method charts Synced from CyberDrain/CIPP@8b1a8f8
Row selection now turns on whenever export is available (exportEnabled defaults to true), so a full-mode table with no actions or onChange still enables selection. Replace the stale assertion with two cases: the export-on default enabling selection, and the fully-disabled path (no actions, onChange, or export). Synced from CyberDrain/CIPP@cb23f5a
Boolean cells now render an icon with titleAccess (role=img, accessible
name Yes/No) instead of a bare glyph, so the value's accessible name
legitimately contains "Yes" and queryByText('Yes') matches the SVG
title nodes. Assert the icon renderer is used via getAllByRole('img',
{ name: 'Yes' }) rather than the absence of the word.
Synced from CyberDrain/CIPP@c738035
Relocate the User Defaults page to `/identity/administration/users/user-defaults` and rename it to User Templates in the UI. Add a users-specific tab layout with tabs for Users and User Templates, remove the old Tenant Manage tab entry, and add a redirect from the legacy route to preserve existing links. Synced from CyberDrain/CIPP@d44b676
Decouples the People Picker standard from the site cache. SPOSites is now a generic per-site SharePoint settings cache (sharing, lifecycle, version policy, People Picker, unmanaged-device access) keyed by site id, reusable by any site-level standard, instead of holding a People-Picker-specific tenant row. - SPGuestPeoplePicker reads the tenant default from the SPOTenant cache and the per-site values from SPOSites; both standards still evaluate entirely from cache. - Register SPOSites in the frontend cache-type registry and category map (it was only in the backend registry). - SPOTenant collector regains the opt-in -UseCertificate so the baseline collects the tenant default with certificate auth on miss. Synced from CyberDrain/CIPP@1ca2931
Eight registered cache types have no Set-CIPPDBCache<Type> collector of their own - they are written as a side-effect of another collector (e.g. SharePointSiteListing by Set-CIPPDBCacheSharePointSiteUsage, Fido2Configuration by the auth methods policy collector). Running one from the cache admin failed with "Cache function not found". Add a 'collectedBy' field to those types in the cache-type registry (both the backend and frontend copies) naming the producing collector, and have Invoke-ExecCIPPDBCache resolve it so a run of a derived type runs the collector that populates it. No types are dropped and no bulk-collection efficiency is lost. Synced from CyberDrain/CIPP@992904c
Message trace 'days' search used two separate now-timestamps for Start/End, occasionally exceeding the backend's 10-day window guard by call latency. Now captures UtcNow once and derives Start from it. Also surfaces backend error messages on the message trace page when a search fails, clearing stale results and info banners instead of leaving them in place. Adds Pester and Vitest regression tests for both fixes. Synced from CyberDrain/CIPP@a8bbe1d
…s via batched reads The tenant enumeration returns default/empty values for ~19 per-site fields (site owner, per-site sharing controls, People Picker, ...) - only the single-site GetSitePropertiesByUrl returns them, and no Graph or enumeration variant supplies them (confirmed exhaustively across CSOM and Graph beta). Rather than pay a per-site read just to fix one field, use it to populate the whole accurate set. - Get-CIPPSPOSiteBulk now batches multiple GetSitePropertiesByUrl reads per ProcessQuery (-BatchSize, default 5) and runs -MaxConcurrency (default 4) at once, mapping each returned SiteProperties back to its URL; a failed batch marks its sites for per-site fallback. - Set-CIPPDBCacheSPOSites overlays the enumeration-broken fields (owner name/email/login, sharing link scopes, People Picker, hub/Teams flags, ...) from that authoritative read, falling back to the enumeration value when a site's read did not return. The cache grows from ~23 to 51 fields. Measured on a 526-site tenant: 109s at batch 5 / concurrency 4 (fewer round-trips than the prior single-read path), OwnerName populated on all 526 rows, values matching authoritative single-site reads. Synced from CyberDrain/CIPP@50cf738
Graph's message trace applies a silent ~48h default window when no receivedDateTime filter is present, causing older messages to be missed when searching by messageId alone. Backend: when no explicit start/end is given but a messageId/messageTraceId is, sweep backwards through 10-day windows (Graph's per-request cap) up to the 90-day lookback limit until a match is found. Frontend: CippQuarantineTable and CippUserReportedMessagesTable now pin an explicit +/-1 day window around the message's received time when viewing its trace, instead of relying on Graph's default. Adds backend Pester and frontend vitest coverage for the sweep and window-pinning behavior. Synced from CyberDrain/CIPP@8b1cf39
Test-CIPPGDAPGroupMappings is now called with -CreateMissing so stale role and template mappings pointing at deleted groups are recreated instead of just reported. Groups created during the GDAPRoles pass are appended to the in-memory partner group list so the subsequent template pass re-links to them rather than creating duplicates. Added a 'Created' status to the success reporting branch and unit tests covering both passes. Synced from CyberDrain/CIPP@1e44a12
…ction and dimension fitting Added functions to detect image format from data URLs and fit logo dimensions to specified constraints. Updated PDF export logic to utilize these functions, ensuring logos are added correctly without upscaling, improving the overall appearance of exported PDFs. Synced from CyberDrain/CIPP@afd0cd0
SetupGatePage now navigates to '/' via router.replace when the completion button is clicked, since the gate can be reached from the wizard's own route. Adds tests covering both the redirect and the no-op case when already at root. Synced from CyberDrain/CIPP@ed5cbf3
Refactor the CIPPTableToptoolbar component to ensure that when the action is marked as multiPost, the full selection of rows is passed to the customFunction in a single call. This prevents overwriting state with only the last selected row. Additionally, add tests to verify the correct invocation of customFunction for both multiPost and non-multiPost scenarios. Synced from CyberDrain/CIPP@e98ce2b
…ayStep Added the ability to add users directly within the UsersDisplayStep of the patch wizard. This includes a user selector for adding multiple users, improved tenant handling for user addition, and updated UI elements to reflect the changes. The functionality ensures users can be added without navigating back to the main Users page, enhancing the overall user experience. Synced from CyberDrain/CIPP@aa959d8
Synced from CyberDrain/CIPP@4783028
…gurations - Introduced a new API endpoint `/api/ListStorageCleanupScan` to retrieve storage cleanup scan data. - Updated `openapi.json` to include the new endpoint and its response structure. - Added `StorageCleanupScan` type to CIPPDB cache configurations in both JSON files. - Removed references to the Storage Report from the SharePoint browser component to streamline the UI. - Updated documentation to reflect the changes in cache types and API responses. Synced from CyberDrain/CIPP@4db74c2
…ement - Implemented a new API endpoint for editing group visibility in both the group index and administration pages. - Enhanced the Invoke-EditGroup function to log success and error messages for visibility changes. - Added UI components for selecting group visibility options (Public/Private) with appropriate validation and confirmation prompts. Synced from CyberDrain/CIPP@a65ac37
Update all @tiptap/* packages from mixed 3.20-3.29 versions to unified 3.31.3, and remove the unused react-quill dependency along with its custom QuillEditor component. Synced from CyberDrain/CIPP@677b4bf
Bump browserslist to 4.28.9 with updated caniuse-lite, electron-to-chromium, node-releases, and update-browserslist-db. Synced from CyberDrain/CIPP@db15d05
…lumn feat(identity): add Has Owner column to groups list Synced from CyberDrain/CIPP@674932c
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
See Commits and Changes for more details.
Created by
pull[bot] (v2.0.0-alpha.4)
Can you help keep this open source service alive? 💖 Please sponsor : )