Repository navigation
Conversation
Synced from CyberDrain/CIPP@05fbe2b
Synced from CyberDrain/CIPP@8e403e2
… scanning the reporting cache - Add Get-CIPPLicenseSkuName: LicenseSkuNames table lookups, falling back to the tenant's LicenseOverview row and backfilling the table - ExecLicenseSearch uses it and accepts tenantFilter - License backfill sends the current tenant and requests each SKU once per tenant - Seed the licence SKU name table from the licence overview cache Synced from CyberDrain/CIPP@345c50b
Synced from CyberDrain/CIPP@4c977a7
…t-CopilotReportPeriod function - Introduced Get-CopilotReportPeriod to handle period validation and fallback for Copilot report requests. - Updated report fetching logic for UserDetail, Trend, and Adoption types to use the new function, improving error handling and code clarity. Synced from CyberDrain/CIPP@5e0f313
Synced from CyberDrain/CIPP@270a5c5
…verride caches - collect ActivityBasedTimeoutPolicy in the Graph group - write ExoCASMailboxSmtpAuth from the existing CAS mailbox stream - register both cache types Synced from CyberDrain/CIPP@60e5ea0
…r text Intune accepts 30 to 270 days for the device cleanup rule; the classic standard's helper text said 31 to 365. fixes #811 Synced from CyberDrain/CIPP@d31bdc4
The Check extension executor compares a config fingerprint and skips the redeploy when nothing changed, but the engine still logged "Successfully changed" and recorded the run as Remediated. The executor now returns an explicit unchanged marker and the engine records that run as Compliant with no remediation log line or alert. Synced from CyberDrain/CIPP@9a9bb2d
…ites read Synced from CyberDrain/CIPP@8b65f67
…ences A task asking for Push from a user with no registered devices would notify nobody. Add-CIPPScheduledTask now refuses it with a pointer to Preferences; every form funnels through there, so offboarding, JIT admin, vacation mode and add/edit user are covered. System-created tasks carry no principal and never select Push, so they are unaffected. Frontend - usePushDevices reads the same paginated query the Preferences table runs under ListPushSubscriptions and exposes a flattened device list and the VAPID public key. Sharing that key with a plain ApiGetCall made the two fight over one cache entry. - Scheduler and alert forms only offer "Push (notify me)" once a device is registered, with helper text that says where to enrol or how many devices will be notified. - Preferences card: stable dataMap for the device table (an inline function re-mapped the rows on every render and made the table flicker) and the public key from the shared hook. Backend - Log the push service's status when an expired subscription is pruned. Tests: enrolment guard (refused with no devices, accepted once enrolled, device table untouched otherwise); hook reads the paginated cache and words the hint by count. Verified in Chrome via Playwright: enrol, FCM accepts, service worker displays the notification, impersonation blocks enrolment, remove clears the row. Synced from CyberDrain/CIPP@075753d
- New-ExoBulkRequest: .Where() for the tenant lookup and 429 scan, skip the per-response PSObject.Copy() for object bodies, serialise batch payloads with CippJson.ToJson - Push-GetMailboxPermissionsBatch: .Where() for the mailbox lookups, drop the per-batch ConvertTo-Json sample logging Synced from CyberDrain/CIPP@ae3310d
Bumps next to 16.3.8 for the next/og advisory and brace-expansion and dompurify to their patched releases; suppresses the plain-text SecureString rule where the VAPID private key is handed to Key Vault; gives Service Health a docs link target; and updates two tests that lagged behind the BEC drawer hint text and the non-dismissible legacy notice. Synced from CyberDrain/CIPP@9d43b99
- Include Entra's error_description instead of a bare 400 - Log the app management policy action and tenant for Send Push Synced from CyberDrain/CIPP@d2bbc74
…Sites filter - select isPersonalSite in the OneDrive root permissions and long paths site lists so the filter returns sites - read the SharePoint admin site list in 5,000-row pages with only the fields used - request only the read fields from getAllSites, the channel site lookup and the library lookup - leave AutoMapUrl empty for sites without a document library Synced from CyberDrain/CIPP@2540233
Synced from CyberDrain/CIPP@8823b10
Synced from CyberDrain/CIPP@db03815
Update-AppManagementPolicy now actively blocks passwordAddition/symmetricKeyAddition on CIPP-SAM when CertificateOnly is set, instead of just leaving them unblocked, and lifts the block in secret mode. Also skips policy management for CIPP-SAM in customer tenants (service principal lock applies there instead), and wires Invoke-ExecCombinedSetup and Update-CIPPSAMSecret to call it explicitly with the correct mode when toggling certificate auth or minting a secret. Adds tests and documentation covering the new behavior. Synced from CyberDrain/CIPP@054b5e7
Synced from CyberDrain/CIPP@c8b0bb8
Synced from CyberDrain/CIPP@95b2bd8
Synced from CyberDrain/CIPP@b3e21f6
fix(alerts): skip TERRL alert when EXO reports no limit threshold Synced from CyberDrain/CIPP@b548ceb
feat(securescore): points to gain per control, sort, 2-decimal percentages, %/points chart toggle Synced from CyberDrain/CIPP@28185bb
Add-CIPPGroupMember on a brand-new user always fails until Exchange provisions the mailbox, so inline retries were never going to succeed. Resolve each group's real type via Get-CIPPGroupType, schedule Exchange-backed groups (distribution lists, mail-enabled security) 15 minutes out instead of attempting them inline, and add directory groups immediately. Extract the Exchange-vs-Graph decision into a shared Test-CIPPGroupIsExchangeBacked helper used by both New-CIPPUserTask and Set-CIPPUser. Add a -DeferExchange switch to Set-CIPPCopyGroupMembers so copying group membership onto a new user queues the Exchange half instead of failing inline, and escape single quotes in scheduled task name filters to avoid malformed OData queries. Synced from CyberDrain/CIPP@1dade11
Get-CIPPStandards now merges single-instance GroupTemplate standards across multiple contributing templates instead of letting later ones overwrite earlier ones. Invoke-CIPPStandardGroupTemplate reads the whole GroupTemplate partition and matches requested ids in memory instead of building an 'eq' filter per id, which exceeded table service query limits once settings merged across tiers. Also handles table read failures by logging and skipping the run rather than treating missing templates as drift. Adds/updates Pester coverage for merged-tier settings and table read failures. Synced from CyberDrain/CIPP@a18aff6
Set-CIPPAssignedPolicy previously ignored custom exclude group names that didn't match any group, silently falling through without excluding anything. Now unresolved names are collected and the function warns and throws instead of assigning the policy without the intended exclusion. Adds tests covering unresolved, partially resolved, and fully resolved exclude group scenarios. Synced from CyberDrain/CIPP@84cd16a
Fix incorrect Write-LogMessage parameter usage (-level -> -sev) across Get-Tenants and Invoke-HuduExtensionSync. When LAPS or BitLocker credential retrieval fails for a device, update the Hudu asset without the credential fields instead of skipping the entire asset update, and skip writing the cache row so the next sync retries credentials. Add tenant-level warnings and error tracking when LAPS/BitLocker metadata retrieval fails for all devices, and when device processing is skipped due to a missing device layout ID. Update tests to match. Synced from CyberDrain/CIPP@ea66d46
…261021 chore(openapi): regenerate API spec (2026-10-21) Synced from CyberDrain/CIPP@a1822d9
- Set-CIPPRetentionCompliancePolicy throws with the policy or rule step and the real error - match an existing rule by the policy GUID it reports, not by policy name - still deploy the rule of an existing policy when the policy update is refused - deploy the template comment, stored as 'comments' - AddRetentionCompliancePolicy returns per-tenant result states with 200/207/500 - baseline executor and classic standard keep deploying the remaining templates Synced from CyberDrain/CIPP@ce91c49
* fix(bec): use configured PDF branding presets * fix(bec): use configured PDF branding presets * fix(bec): use configured PDF branding presets * test(bec): cover branding in evidence ZIP * test(bec): verify branding preset reaches PDF renderer * test(bec): verify variant-specific branding request * test(bec): match PDF button accessible name * test(bec): use consistent accessible PDF button selector * fix(reports): apply configured branding preset in SharingReportButton * fix(reports): apply configured branding preset in PermissionsReportButton * fix(reports): apply configured branding preset in MailFlowReportButton * fix(reports): apply configured branding preset in ShadowAIReportButton * fix(reports): apply configured branding preset in SharingReportPdf * fix(reports): apply configured branding preset in PermissionsReportPdf * fix(reports): apply configured branding preset in MailFlowReportPdf * fix(reports): apply configured branding preset in ShadowAIReportPdf * test(reports): cover per-report PDF branding defaults in UI * test(reports): verify branding preset forwarding in PDF endpoints * test(bec): make log partition assertion respect rolling 60-day window Synced from CyberDrain/CIPP@3da756b
- pass report preset ids to the tenant-name and PDF helpers instead of resolving branding inline - name the tenant once when both BEC PDFs share a preset - merge the endpoint preset tests into one file and drop redundant fallback cases Synced from CyberDrain/CIPP@ae9ba6f
Synced from CyberDrain/CIPP@44a33fd
- Generate Report on the Domain Analyser page renders a client-ready PDF covering every domain in the tenant from the stored analyser results - the analyser stores per-check results and an MTA-STS status; DNSSEC and MTA-STS carry 10 points each, and onmicrosoft.com domains are scored out of 140 without them - an SPF lookup error no longer earns the SPF validation points - vendor DNSHealth 1.1.11: MTA-STS policy fetch timeout and missing vs not valid messages - docs for the report and the updated scoring Fixes #999 Synced from CyberDrain/CIPP@d53e3ac
Synced from CyberDrain/CIPP@c6fba48
…ted reports - Log a one-line task summary and capped parameters, without stored headers or TaskInfo - Delete generated Report Builder reports and PDFs past the report retention setting Synced from CyberDrain/CIPP@1730eed
Rebuild the HTML the Hudu sync writes into rich-text fields, based on a mockup contributed by Jim-Barry. Each asset type now has a view model (Get-Hudu*ViewModel) and a renderer (Get-Hudu*Body) built from small shared UI helpers (cards, rows, chips, links, bars, details, icons, tones). This replaces the inline string building and ConvertTo-Html tables. People - Contact, mailbox, OneDrive, access and settings cards, with groups, service plans, devices and policies shown as chips. - A "Needs attention" strip: disabled account, storage thresholds, non-compliant or stale devices, report-only CA policies, mail forwarding. - Internal forwarding resolves the directory object id to the recipient's address, and the smtp: prefix is stripped from external forwarding. Devices - Device details, hardware (storage bar), enrollment and security cards, plus policy and group cards. Replaces the Get-HuduFormattedField, Block and LinkBlock helpers. Magic Dash - Company dashboard with tiles, licenses, roles (including PIM-eligible members), verified domains and licensed users; people linked to Hudu are underlined. - Stale Magic Dashes are cleaned up when a tenant is renamed. Rendering - Everything is HTML-encoded and styled inline with translucent colours, so it reads on Hudu's light and dark themes; no custom CSS block is needed any more. - Hudu's mobile app ignores flex, so layouts use grid (which stacks on phones), inline flow and table rows. A Pester guard rejects flex, justify-content, float and gap. - Hudu wraps every table in a padded scroll div, so consecutive label/value rows share one table. Table layout and wrapping are reset inline, so values wrap instead of scrolling on any Hudu version. - Section counts render as chips, and progress bars always show the percentage as text. Settings - New date and number format (locale) setting for the Hudu integration, with timestamps shown in the instance time zone. - The content hash excludes the synced-at timestamp, so unchanged assets are not rewritten on every sync. Docs and tests updated; new Pester suites cover the renderers and the attention-item logic. Co-Authored-By: jbbehar <33136816+jbbehar@users.noreply.github.com> Synced from CyberDrain/CIPP@025744f
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 : )