Repository navigation
Conversation
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
Synced from CyberDrain/CIPP@5771e75
MCP runs under the signed-in user's role, so a role IP allow-list that omits the AI provider's egress range silently 403s every MCP call. Warn on the API client page (page alert + live dialog warning when MCP is toggled on). ListCustomRole now attaches IPRange to custom roles too, so the read-only list carries the data the warning needs. Synced from CyberDrain/CIPP@095ddbc
- Added Tooltip functionality to CippCellText for displaying full text on hover when content overflows. - Refactored mouse event handlers to manage tooltip visibility based on text width. - Updated styles to ensure proper ellipsis handling and text display within the CippDataTable. - Removed unused CippCellText references from get-cipp-formatting utility for cleaner code. Synced from CyberDrain/CIPP@092ef20
Synced from CyberDrain/CIPP@5d12ed2
Two workflows both named CodeQL ran on every PR, one with the frontend as source root, so every alert appeared twice. Keep CodeQL_Analyser.yml (security-extended), drop codeql.yml, and add a config that scans only the frontend and skips the generated msw worker and test fixtures. Synced from CyberDrain/CIPP@4933849
- Prototype-key guard as literal comparisons instead of a Set lookup - Encode dialog link substitutions in a dedicated internal-link branch so the router.push path never sees an unencoded row value Synced from CyberDrain/CIPP@6439dd6
…catalog PIM role settings templates could be saved and uploaded to GitHub but had no in-page catalog import path like every other template type. Add a PIMRoleSettings mode to CippPolicyImportDrawer, a Browse Catalog button on the PIM templates page, and PIM as a taggable repository type so non-native sources can be flagged as containing PIM templates. Synced from CyberDrain/CIPP@c5a3842
When an App Service EasyAuth session expires, both /.auth/me and /api/me respond with a 302 to the cross-origin login.microsoftonline.com authorize endpoint. The browser follows that redirect transparently and the CORS-blocked result surfaces to axios as a network error (status 0), so neither auth probe ever reaches isSuccess. The unauthenticated page gated its sign-in shell on isSuccess alone, so both probes erroring left the page rendering nothing but an empty impersonation banner -- a blank screen with no way back to sign-in. Render the shell once the auth state has settled either way (success or error). The session-ended prompt needs no data, and its Microsoft button performs a top-level navigation to /.auth/login/aad, which follows the 302 correctly. Synced from CyberDrain/CIPP@fdca52f
… page Add a Threads card to the Worker Health page showing the process OS thread count, a per-state breakdown (Wait / Running / etc.) and the HTTP/BG worker pool sizes. The data comes from the existing ListWorkerHealth MemoryDetail action, which already returns ThreadCount, ThreadStates, ProcessorCount and the pool sizes from the metrics bridge, so no backend change was needed. The new query polls on the same 30s cadence as the other diagnostic panels and is wired into the page's export/import flow. Synced from CyberDrain/CIPP@599e9ab
Enhance the New-CIPPOneDriveShortCut function to include a destination parameter, allowing users to specify whether to create shortcuts in the OneDrive root or a dedicated shortcuts folder. Update related API and frontend components to support this new functionality, ensuring a seamless user experience when selecting shortcut locations. Synced from CyberDrain/CIPP@a230744
…end/dev/apexcharts-7.1.0 chore(deps): bump apexcharts from 6.6.1 to 7.1.0 in /frontend Synced from CyberDrain/CIPP@d687ae1
…end/dev/eslint-config-next-16.3.4 chore(deps-dev): bump eslint-config-next from 16.2.10 to 16.3.4 in /frontend Synced from CyberDrain/CIPP@9dc5eb9
…er methods Synced from CyberDrain/CIPP@d0801e2
…IS and ZTNA checks Synced from CyberDrain/CIPP@7f1d28a
…7.2.4 and 7.2.6 - map SharingCapability and SharingDomainRestrictionMode numbers to their names - read OneDrive sharing from ODBSharingCapability, the name CSOM returns Fixes #865 Synced from CyberDrain/CIPP@0a2bdde
…it started Synced from CyberDrain/CIPP@e610b44
- add a static test that rejects HttpStatusCode OK in entrypoint catch blocks - show the Agent 365 package detail error instead of an empty panel Synced from CyberDrain/CIPP@445e7ca
- Package NinjaOne's generic MSI installer; the per-tenant token is passed as TOKENID at install time and accepts CIPP custom variables - Install skips devices already running the NinjaRMMAgent service; detection checks the same service - Replace the unused ninjarmm stub files, whose package info was a copy of Syncro's Fixes #728 Synced from CyberDrain/CIPP@b75ddaf
- Auto-map falls back to an exact HaloPSA client name match when Halo has no Azure tenant ID for a tenant - Runs from the extension timer when HaloPSA is enabled, so new tenants map without visiting the page - Mapping table keeps unsaved local automap rows when the server automap refetch lands Fixes #804 Synced from CyberDrain/CIPP@3664b63
- Matches a tenant's mapped HaloPSA client to the Hudu company synced from it, falling back to an exact company name - Runs from the mapping page and the extension timer, after HaloPSA so new Halo mappings chain through - Registers Hudu sync tasks for newly mapped tenants Fixes #804 Synced from CyberDrain/CIPP@4087420
- List variable type, entered one value per line, expands into the list it is used in - CA deploy resolves user, group and named location names under every replace option and names undefined variables - named location countries and IP ranges can come from list variables - baseline CA template compare resolves custom variables - tests pin the existing variable behaviour Fixes #722 Synced from CyberDrain/CIPP@5bd8596
Feat: Add Teams files policy standard Synced from CyberDrain/CIPP@681b376
OneDrive names a new shortcut after the library and prefixes the site name, so Teams channel shortcuts end up as long strings like "Team - Channel - Documents". The Add OneDrive Shortcut action now takes an optional name, and the shortcut is renamed to it right after creation, because OneDrive ignores the name on create. Names breaking OneDrive's rules (reserved characters, leading or trailing space, trailing period, over 255 characters) are rejected. If the rename fails the shortcut is kept and the result says so. A blank name keeps the default. Closes #853 Synced from CyberDrain/CIPP@bba5201
Rows loaded from the paged files were pushed straight into each collection, so Loki's id and PartitionKey/RowKey indexes stayed empty. Point updates and deletes on those rows returned 404 and upserts inserted a second copy. Rebuild the indexes once the rows are loaded. Synced from CyberDrain/CIPP@f941655
Graph's message trace API is not offered for GCC tenants, and its "not currently supported" error was returned to the user instead of taking the existing Get-MessageTraceV2 fallback. Treat it like a missing service principal or consent and fall back, without provisioning. Synced from CyberDrain/CIPP@5d27fd1
Synced from CyberDrain/CIPP@9683d00
The fleet overview mixed every baseline together. It can now be scoped to one baseline, and optionally one of its stages: a tenant's standard counts when that baseline has rolled it out to the tenant (stages up to its current stage, or just the chosen stage). Standards shared by two baselines count toward both, which the page notes. Stored trends are fleet-wide, so the trend chart is hidden while filtered, and a filter with nothing scorable shows a dash instead of 0%. The Alignment tab's by-standard view gets the same filters and reads them from the URL, so the Open Deviations and License Missing tiles carry the filter there. Those tiles passed onClick, which CippInfoBar ignores, so they never navigated; they now use link. ListBaselineAlignment takes optional baselineId and stage parameters with byStandard; the unfiltered response is unchanged. The tenant view's per-baseline score now matches exact standard instances through the same stage helper, so package members count and other baselines' instances no longer skew it. Closes #868 Synced from CyberDrain/CIPP@2ddfefb
Feat: Scope JIT admin approval to specific tenants and tenant groups Synced from CyberDrain/CIPP@1280c64
The push-subscription flow now surfaces browser notification permission denials instead of swallowing them. The preferences page shows a clear status message while waiting for permission and explains how to enable notifications if the browser prompt does not appear. Synced from CyberDrain/CIPP@6d5e904
Update yarn.lock for sharp 0.35.5, prosemirror-view 1.42.6, and source-map-js 1.2.2. Synced from CyberDrain/CIPP@a2cb181
React already escapes text node values, so manually escaping with escapeHtml caused values like '&' and '<' to render as '&'/'<' to the user. Remove the redundant escapeHtml helper and use raw nested values directly, and add a test covering HTML-special characters rendering verbatim. Closes #883 Synced from CyberDrain/CIPP@15fffcd
…known Without Defender for Office 365 Plan 2 the message details come from the exported message, which lists the URLs and attachments but carries no verdict. The chip rendered that gap as "Unknown", which reads as a verdict Microsoft never gave. It now says "Not analysed" on the header fallback and keeps "Unknown" for a Defender answer without a verdict. Closes #873 Synced from CyberDrain/CIPP@74e7304
…ore syncs Synced from CyberDrain/CIPP@2f151d7
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 : )