Skip to content

[pull] dev from KelvinTegelaar:dev - #108

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

[pull] dev from KelvinTegelaar:dev#108
pull[bot] wants to merge 745 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 : )

github-actions Bot added 30 commits July 31, 2026 11:37
…nd/dev/mui/x-date-pickers-9.10.1

chore(deps): bump @mui/x-date-pickers from 9.0.2 to 9.10.1 in /frontend

Synced from CyberDrain/CIPP@82859e1
…nd/dev/next-16.2.11

chore(deps): bump next from 16.2.10 to 16.2.11 in /frontend

Synced from CyberDrain/CIPP@e478a24
…nd/dev/react-19.2.8

chore(deps): bump react from 19.2.6 to 19.2.8 in /frontend

Synced from CyberDrain/CIPP@5cc12fc
Simplifies custom domain onboarding to use only alias DNS records (CNAME/A) across the App Service endpoint, frontend wizard, migration script, and docs. Removes verification ID handling and ownership TXT checks, and instead detects legacy `asuid.<domain>` TXT records to warn operators to delete them because stale records can block Azure validation.

Synced from CyberDrain/CIPP@add31ef
feat: Auto-derive default timezone from Azure region and improve settings handling

Synced from CyberDrain/CIPP@46b831c
There was no way to run an unmerged change on a real instance. dev-container
and nightly-container both hardcode `ref: dev` in checkout, so a
workflow_dispatch from a feature branch still builds dev's tree and still
overwrites the shared :dev tag, and no workflow takes any input. Testing
meant merging to dev first.

preview-container.yml builds any ref - automatically on push to preview/**,
or via workflow_dispatch for one-off branches - and tags it <branch-type>-<name>
plus an immutable -<shortsha> for pinning. The type prefix comes from the
conventional-commit set, narrowed to the types that change what runs in the
container, so a tag can never collide with latest/dev/nightly or a semver.

Preview builds share one gha cache scope at mode=min and read scope=dev
read-only. The Actions cache is 10 GB per repository and evicted LRU, so a
per-branch scope would evict the caches the dev and release builds rely on.

preview-cleanup.yml removes the images when the branch is deleted, plus a
weekly sweep for one-off builds. It only ever deletes a version whose tags
ALL match the build-tag pattern, so a version also carrying latest/dev/
nightly cannot be caught by it.

Container Management gains a ListChannels action listing the build tags that
actually exist on the registry, so a branch build is picked from a list with
a refresh button rather than typed from memory, and the tag is verified to
resolve before linuxFxVersion is rewritten - a typo would otherwise leave the
instance unable to start. Only the tag is ever swapped; the image base still
comes from the site's own config.

Also guards release-container.yml against prereleases. It fires on
`release: [published]`, which includes prereleases, and unconditionally
pushes :latest - so ticking "set as a pre-release" would have shipped that
build to every instance on the stable channel.

Synced from CyberDrain/CIPP@116fef2
feat(sso): support multiple custom domains per instance

Synced from CyberDrain/CIPP@088eb81
fix(frontend): add filter type column to worker-health and EnrollmentProfileTabs

Synced from CyberDrain/CIPP@0bfb5a0
fix(frontend): guard formatter null check cell branches, fix client crash

Synced from CyberDrain/CIPP@bb2f73f
fix(frontend): numeric chart height to silence recharts first-render warning

Synced from CyberDrain/CIPP@1001968
fix(frontend): wrap disableable tooltip children in span

Synced from CyberDrain/CIPP@4681097
fix(frontend): readable hover state on remove photo button

Synced from CyberDrain/CIPP@005de72
feat(standards): add bulk Set Schedule action for standards templates

Synced from CyberDrain/CIPP@10b8d80
Feat: Add bulk action assignment feature

Synced from CyberDrain/CIPP@54a86be
Remove the per-build immutable tag that was pushed alongside the moving branch tag. The moving tag alone is sufficient; pinning to a specific build can be done via digest instead. Updates the cleanup workflow, backend channel grouping, frontend label comment, and docs accordingly.

Synced from CyberDrain/CIPP@de84ae1
…ilter

Feat: Filter job queue by status server-side

Synced from CyberDrain/CIPP@80bff8e
fix(frontend): saved graph preset changes don't propagate until reload

Synced from CyberDrain/CIPP@aeb9be7
feat(frontend): stackable table filter slots with visible active state

Synced from CyberDrain/CIPP@48d58f5
feat(frontend): react ui testing suite, jsdom + playwright test harness

Synced from CyberDrain/CIPP@032ed6a
Ensure EditContact updates both displayed and delivery addresses by setting WindowsEmailAddress via Set-Contact and ExternalEmailAddress via Set-MailContact, with routing applied last to avoid stale delivery targets. Also clarify this behavior in OpenAPI docs and add endpoint regression tests covering cmdlet order, identity targeting, empty-email handling, and success/error response contracts.

Synced from CyberDrain/CIPP@f8cf63b
Move `tenantFilter` for `ExecAddTrustedIP` from the request body to a required query parameter, resolve it to the tenant's default domain before writing whitelist entries, and return clear bad-request errors for missing or invalid tenants. Update the GeoIP lookup page, OpenAPI spec, and whitelist list endpoints so the frontend and API stay aligned for tenant-agnostic access.

Synced from CyberDrain/CIPP@1ba3551
feat(auth): introduce CippAuthShell for all auth screens

Synced from CyberDrain/CIPP@5422e9d
Make each assessment category row in `AssessmentCard` interactive and route to its matching dashboard tab (`identity`, `devices`, `custom`). Navigation now preserves the current `reportId` query so users land on the same test suite context, and includes keyboard support (`Enter`/`Space`) plus button semantics and hover affordances for accessibility.

Synced from CyberDrain/CIPP@b38b1c9
Add retryDelayWithRetryAfter to ApiGetCall and ApiGetCallWithPagination so that when the server returns a Retry-After header the client waits the indicated duration (capped at 60 s) instead of applying react-query's default exponential backoff. Falls back to exponential backoff when no header is present.

Also adds Vitest tests covering 503 recovery, persistent 503 exhaustion, no-retry on 500, and Retry-After delay honouring.

Synced from CyberDrain/CIPP@74c20c8
feat(standards): add external compliance trust standard

Synced from CyberDrain/CIPP@2580cf8
…-countdown

feat(scheduler): add a countdown to the next scheduler run

Synced from CyberDrain/CIPP@95622a9
…e-target

feat(halo): add psaTicketId field to wizards/api

Synced from CyberDrain/CIPP@cc1a16e
Add resolutions for postcss, sharp, and monaco-editor/dompurify in package.json. Update multiple packages to latest versions including sharp (0.34.5→0.35.4), postcss (8.5.25→8.5.26), dompurify (3.4.12→3.4.14), lodash (4.17.23→4.18.1), nanoid, picomatch, js-yaml, and other minor dependency updates.

Synced from CyberDrain/CIPP@949bbc4
…, text-aware cursors

Add rowOpen navigation with selection guards and CippCellText so the I-beam appears only on plain text and the hand appears elsewhere on clickable rows; remove single-click offCanvas props.

Synced from CyberDrain/CIPP@a7b4082
Double-click opens detail pages; middle-click and Ctrl/Cmd+click open in a new tab. offCanvas preview moves to More Info and mobile tap; remove row-click offCanvas props and add CippCellText for precise copy affordances.

Synced from CyberDrain/CIPP@ca0ff9a
Right-click opens a context menu with declaration-ordered pinned actions (View/Edit, Entra/Intune), More Info, and the rest scrollable; also add View in Entra for users.

Synced from CyberDrain/CIPP@99b9c19
Adds a condition to hide the 'Add Member' action for groups that use dynamic membership rules or are synced from on-premises AD, as manual member additions are rejected for these group types.

Synced from CyberDrain/CIPP@460b7a9
When the backend signals a missing SecurityAnalyzedMessage.Read.All permission via Metadata.PermissionError, display a targeted caption linking to the Permission Check page instead of the generic Defender-licence messages. Adds corresponding tests to verify caption precedence.

Synced from CyberDrain/CIPP@aa9d414
Add a `docsPath` field to nav items whose docs location doesn't mirror the app's nav hierarchy. `getHelpLinks` now resolves the correct docs URL using these overrides, falling back to the pathname-derived URL. Adds tests covering both the fallback and override behaviour.

Synced from CyberDrain/CIPP@af93771
…ist and header layout

- Changed Typography component in PropertyListItem to use 'div' as the component type for better semantic structure.
- Updated HeaderedTabbedLayout to use 'div' for Typography and modified prop types for subtitle text to accept nodes instead of just strings, allowing for more flexible content rendering.

Synced from CyberDrain/CIPP@bf87720
Serve CippDataTable cards on ListSiteBrowser below md so phones stay usable, while keeping the desktop explorer intact. Use a separate query key so pagination cache does not collide with the desktop ApiGetCall.

Synced from CyberDrain/CIPP@13ee805
A centred md dialog wastes the viewport on phones; always use fullScreen there and keep Expand for desktop.

Synced from CyberDrain/CIPP@1c0ab1c
Replace multiple OS-filtered wipe and fresh start actions with consolidated single actions using radio field forms. Switch from `condition` to `hideCondition` for OS-based filtering. Add unit tests covering the new action structure.

Synced from CyberDrain/CIPP@3f6ecf1
…t safe areas

Use 100dvh on LayoutRoot, add viewport-fit=cover, and offset fixed chrome for notches and PWA status bar without double-counting banner height.

Synced from CyberDrain/CIPP@f936213
Number inputs were storing string values in react-hook-form state. Add setValueAs coercion so empty/null yields null and valid input yields a real Number. Update dependent code (CA policy builder, standards accordion, retention tag, registration campaign, date range filter) to handle null correctly. Add tests for the number field behavior.

Synced from CyberDrain/CIPP@5aaa651
Add a "Reactivate Archived OneDrive" row action on the OneDrive page and a
new Invoke-ExecReactivateSite endpoint that unarchives a site via the Graph
beta site:unarchive endpoint (POST /beta/sites/{id}/unarchive, app-only with
Sites.FullControl.All). The composite site id is built from the row's host,
siteId and webId so no lookup is made against the locked, archived site.

The confirmation warns that reactivation is asynchronous (up to 24 hours) and
may incur Microsoft 365 Archive charges and require Unlicensed OneDrive
billing to be enabled on the tenant. Errors that look like a Locked/blocked
or billing failure surface a hint to reactivate from the SharePoint admin
center.

Refs #419

Synced from CyberDrain/CIPP@b43805b
Update MDO alerts listing to include both Microsoft Defender for Office 365 and Microsoft Defender for Endpoint by broadening the Graph `serviceSource` filter in live and all-tenant cache paths. Rename the UI/docs navigation from “MDO Alerts” to “Defender Alerts”, add `serviceSource` to visible table columns, and refresh the endpoint/openapi description to match the new scope.

Synced from CyberDrain/CIPP@e434ffe
When Delete user is selected, tasks incompatible with user deletion (e.g. convert to shared mailbox, revoke sessions) are now skipped on both the backend and cleared in the frontend form. Adds Pester and Vitest tests covering the new guard logic.

Synced from CyberDrain/CIPP@5d600f1
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