Skip to content

[pull] dev from KelvinTegelaar:dev - #108

Open
pull[bot] wants to merge 1077 commits into
isgq-github01:devfrom
KelvinTegelaar:dev
Open

pull[bot] wants to merge 1077 commits into
isgq-github01:devfrom
KelvinTegelaar:dev

Conversation

@pull

@pull pull Bot commented Aug 13, 2026 •

Copy link
Copy Markdown

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 : )

@pull pull Bot locked and limited conversation to collaborators Aug 13, 2026
@pull pull Bot added the ⤵️ pull label Aug 13, 2026
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
…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
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
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
…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
- 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
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
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 '&amp;'/'&lt;' 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
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants