Skip to content

[pull] dev from KelvinTegelaar:dev - #105

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

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

Conversation

@pull

@pull pull Bot commented Jun 16, 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 Jun 16, 2026
@pull pull Bot added the ⤵️ pull label Jun 16, 2026
- 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
…licy

Adds ExternalBotAccessMode to the Teams global meeting policy standard:
require approval for detected external bots and AI note takers, or allow
them like any participant. It defaults to keeping the tenant's current
value, so existing baselines do not start enforcing it.
Closes #774

Synced from CyberDrain/CIPP@30d4791
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
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
…hurn in the tests run

- resolve collectors, prepare hooks and executors with a direct command lookup instead of Get-Command
- skip the collector lookup for definitions without a cache type
- take a remembered capabilities failure without rethrowing it; pin Test-CIPPStandardLicense behaviour in tests
- remember a failed SharePoint root site lookup for two minutes
- avoid exception-driven paths in Get-NormalizedError, Get-CippUserAgent, prepare hooks and ZTNA21992

Synced from CyberDrain/CIPP@8a1ece0
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
…engine

- small batches cut the referenced entries out of the cached directory; a search's large slices share one full parse
- validate the cached users blob with Test-Json instead of parsing it
- share the expanded rule set across tenants
- map GUIDs without Add-Member or a log line per mapping, and before the placeholders are added
- parse and serialise records with CippJson
- drop the per-worker directory memo and the per-batch rule configuration log

Synced from CyberDrain/CIPP@e45ac9f
…te editor

- Match settings without a template reference by definition id at deploy and compare time
- Export policy template setting references and refresh the Intune setting catalog
- Stamp template references in the editor and limit the picker to the template's settings

Synced from CyberDrain/CIPP@0df54a6
…ain-fallback

fix(tenants): keep the cached initial domain when the domains read falls back

Synced from CyberDrain/CIPP@e5c0578
- use boolean comparisons for UseReportDB and includeDetails
- drop an -ErrorAction the Hudu module function does not accept
- stub Test-CippAccess in the Autopilot config test
- match the current PIM licence error message
- clear TenantID so the app management policy test does not depend on test order

Synced from CyberDrain/CIPP@a8b8cdc
… kit

Tenant Links, Tenant Summary and User Summary now use the shared
CippExtension building blocks and the NinjaOne adaptation the device
summary already uses, replacing the legacy card and ConvertTo-Html code.
The device summary gets padded cells, coloured chips and border-drawn
accents so it survives NinjaOne's style stripping.

Fixes the empty Secure Score impact, the US-format tenant creation date
and the wrapping OS legend. Adds a date and number format setting for
NinjaOne, matching Hudu.

Synced from CyberDrain/CIPP@9876fd5
… groups

- Exchange groups that miss join a single retry task instead of one per group
- The retry adds only the pending groups, not every group from the source user
- Name the group in the failure log

Synced from CyberDrain/CIPP@a386078
Saving with a LAPS or BitLocker switch on now creates or adopts the
NinjaOne credential fields and maps them, instead of waiting for the
next tenant sync. Mapped write-only fields are offered with the type of
the CIPP field they belong to, so the mapping page lists them.

Synced from CyberDrain/CIPP@10571d4
Standards and Secure Score sat at a third of the width and wrapped their
first column word by word. Cards now take their own column widths and
standard actions may wrap.

Synced from CyberDrain/CIPP@896fa0b
- HttpBurstMax per SKU profile: the HTTP pool size on Premium and packed hosted instances, half on multi-core Basic, 0 on single-core hosts
- hosted matrix lists B2 explicitly with the same 3 GB heap cap as the default matrix

Synced from CyberDrain/CIPP@e496cf6
Alerts and ticket-producing actions can now raise tickets in NinjaOne
Ticketing beside HaloPSA and Syncro, using the existing NinjaOne
integration's instance and tenant-to-organisation mapping.

NinjaOne refuses ticket writes for the client-credentials token
(user_context_required), so ticketing runs as a signed-in technician:
a Connect button on the integration page starts the Authorization Code
flow through the existing /authredirect popup relay, ExecExtensionOAuth
owns state and the token exchange, and the refresh token is stored as
an extension secret. Documentation sync keeps the app-only token.

- New-NinjaOneTicket: form, status, priority and both description
  bodies from the integration settings; optional consolidation that
  comments on the open ticket for a repeat title; requester from the
  organisation's end users by email (Link Tickets to affected Users);
  device via the tenant sync's NinjaOneDeviceMap or by serial
- Get-NinjaOneTicketFields feeds the form and status pickers
- New-CippExtAlert dispatches to NinjaOne when ticketing is enabled;
  unmapped tenants are skipped with a warning
- Alerts carry an AffectedDevice: webhook alerts from the mapped Entra
  device or sign-in device, scheduled tasks from their device
  parameters; the scheduler's PSA user/device resolution no longer
  requires HaloPSA
- Saving the extension config warns when more than one ticketing
  integration is enabled

Synced from CyberDrain/CIPP@d783a2d
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.

1 participant