Commit graph

2756 commits

Author SHA1 Message Date
Connor Hughes
2863b8cf6d
Update SSO configuration steps in documentation (#39970)
Added steps for enabling SSO for a test user in Entra.

<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #

# Checklist for submitter

If some of the following don't apply, delete the relevant line.

- [ ] Changes file added for user-visible changes in `changes/`,
`orbit/changes/` or `ee/fleetd-chrome/changes`.
See [Changes
files](https://github.com/fleetdm/fleet/blob/main/docs/Contributing/guides/committing-changes.md#changes-files)
for more information.

- [ ] Input data is properly validated, `SELECT *` is avoided, SQL
injection is prevented (using placeholders for values in statements)
- [ ] If paths of existing endpoints are modified without backwards
compatibility, checked the frontend/CLI for any necessary changes

## Testing

- [ ] Added/updated automated tests
- [ ] Where appropriate, [automated tests simulate multiple hosts and
test for host
isolation](https://github.com/fleetdm/fleet/blob/main/docs/Contributing/reference/patterns-backend.md#unit-testing)
(updates to one hosts's records do not affect another)

- [ ] QA'd all new/changed functionality manually

For unreleased bug fixes in a release candidate, one of:

- [ ] Confirmed that the fix is not expected to adversely impact load
test results
- [ ] Alerted the release DRI if additional load testing is needed

## Database migrations

- [ ] Checked schema for all modified table for columns that will
auto-update timestamps during migration.
- [ ] Confirmed that updating the timestamps is acceptable, and will not
cause unwanted side effects.
- [ ] Ensured the correct collation is explicitly set for character
columns (`COLLATE utf8mb4_unicode_ci`).

## New Fleet configuration settings

- [ ] Setting(s) is/are explicitly excluded from GitOps

If you didn't check the box above, follow this checklist for
GitOps-enabled settings:

- [ ] Verified that the setting is exported via `fleetctl
generate-gitops`
- [ ] Verified the setting is documented in a separate PR to [the GitOps
documentation](https://github.com/fleetdm/fleet/blob/main/docs/Configuration/yaml-files.md#L485)
- [ ] Verified that the setting is cleared on the server if it is not
supplied in a YAML file (or that it is documented as being optional)
- [ ] Verified that any relevant UI is disabled when GitOps mode is
enabled

## fleetd/orbit/Fleet Desktop

- [ ] Verified compatibility with the latest released version of Fleet
(see [Must
rule](https://github.com/fleetdm/fleet/blob/main/docs/Contributing/workflows/fleetd-development-and-release-strategy.md))
- [ ] If the change applies to only one platform, confirmed that
`runtime.GOOS` is used as needed to isolate changes
- [ ] Verified that fleetd runs on macOS, Linux and Windows
- [ ] Verified auto-update works from the released version of component
to the new version (see [tools/tuf/test](../tools/tuf/test/README.md))

---------

Co-authored-by: Rachael Shaw <r@rachael.wtf>
2026-02-18 17:01:01 -06:00
Jordan Montgomery
f5b706ea8d
Add callout for module build failures (#39965)
Reading docs as part of oncall responsibilities and was reminded of
[this
discussion](https://fleetdm.slack.com/archives/C019WG4GH0A/p1771252998086309)
in Slack by Martin which referenced a recent JS module change that broke
`make generate` until developers ran `rm -rf node_modules`, so I added a
callout in the FAQ for it since I think this has happened a few times in
the past year
2026-02-18 16:56:01 -06:00
kiloconnect[bot]
6b3809fb7b
Add 'Disable Wi-Fi auto-join' macOS script to scripts library (#39813)
## Summary

Adds a new pre-baked script to the
[fleetdm.com/scripts](https://fleetdm.com/scripts) library: **Disable
Wi-Fi auto-join** for macOS.

## Changes

- Added a new entry to `docs/scripts.yml` in the macOS section
- The script disables auto-join for a specified Wi-Fi SSID using
`networksetup` and `PlistBuddy`/`defaults write`
- Based on [Alan Siu's
approach](https://www.alansiu.net/2026/01/22/scripting-disabling-auto-join-for-wi-fi-networks/)

## How to test

1. Build the website static content and verify the new script appears on
the /scripts page
2. Verify the script slug doesn't collide with existing scripts

---

Built for
[mikermcneil](https://fleetdm.slack.com/archives/D0AFASLRHNU/p1770980976219219?thread_ts=1770980373.078179&cid=D0AFASLRHNU)
by [Kilo for Slack](https://kilo.ai/features/slack-integration)

---------

Co-authored-by: kiloconnect[bot] <240665456+kiloconnect[bot]@users.noreply.github.com>
Co-authored-by: Brock Walters <153771548+nonpunctual@users.noreply.github.com>
2026-02-18 15:32:28 -06:00
Noah Talerman
efc67f8d09
Remove automation for audit-logs.md (#39937)
- Instead, changes to activity will be specified as a PR to
`audit-logs.md` in the reference doc release branch just like API and
YAML (GitOps) changes
2026-02-18 09:16:57 -05:00
melpike
f437c13f19
Update Chrome security warning instructions (#39978) 2026-02-17 16:18:37 -06:00
Tim Lee
a3bafe8818
Jetbrains override query (#39800) 2026-02-17 08:00:36 -07:00
Noah Talerman
495daf1006
API reference: How to filter hosts by platform (#39418)
Co-authored-by: Rachael Shaw <r@rachael.wtf>
2026-02-13 17:54:08 -06:00
Noah Talerman
5430f8760f
API reference: Document what we know about "NotNow" (#39412)
- Document what we know about "NotNow"
- Context:
https://fleetdm.slack.com/archives/C050XE4CQNA/p1770244126667719?thread_ts=1769555555.606569&cid=C050XE4CQNA

---------

Co-authored-by: Rachael Shaw <r@rachael.wtf>
2026-02-13 17:45:41 -06:00
Rachael Shaw
8c33922230
Revert "[Audit logs] Start and end activities: macOS setup experience and MDM migration" (#39875)
Accidentally merged PR to auto-generated docs instead of closed
2026-02-13 16:40:07 -06:00
Noah Talerman
ff502671d7
[Audit logs] Start and end activities: macOS setup experience and MDM migration (#39728)
Audit log changes for the following story:
- #29729

---------

Co-authored-by: Rachael Shaw <r@rachael.wtf>
2026-02-13 16:39:26 -06:00
Noah Talerman
3b800a5cfd
fleetctl apply: Remove custom_settings if you don't want to touch profiles (#39790)
For the following bug:
- https://github.com/fleetdm/fleet/issues/37950
2026-02-13 09:33:37 -05:00
Marko Lisica
690802eef8
Update self-service web clip template (#39750)
Updated web clip template to match what we do in dogfood, except it's
using Fleet logo as an icon.

I also created a base64 icon as a single line to improve readability.

I removed the "full screen" option, so self-service now opens in the
default browser. This way, if a customer uses Jira or a similar tool as
the organization support URL, they don't need to re-authenticate.
2026-02-13 10:37:24 +01:00
Victor Lyuboslavsky
518cd746b9
Added Okta conditional access testing docs (#39804)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #39227

---------

Co-authored-by: Luke Heath <luke@fleetdm.com>
2026-02-12 17:51:53 -06:00
Lucas Manuel Rodriguez
50ad7edf6a
Uncomment MySQL supported versions in the FAQ (#39760)
**Related issue:** https://github.com/fleetdm/fleet/issues/39694
2026-02-12 16:48:24 -06:00
Steven Palmesano
573bf877fe
Create troubleshooting guide for users (#37774)
@ddribeiro After talking with Noah about troubleshooting and logs, I
thought it would be good if we created a user-facing guide for
troubleshooting. Our CSEs frequently send the same troubleshooting
information to customers when they report issues. We can empower
customers with one resource that they can work through, reducing the
significant amount of time in back-and-forth steps sent over Slack.

Also, we've talked about pulling the "Finding fleetd logs" section out
of the [Enroll hosts](https://fleetdm.com/guides/enroll-hosts) guide.
Perhaps when this is complete, we can link to this document from that
guide.

This certainly doesn't contain everything! Please bring the CSEs in to
flesh this out since they're in the day-to-day and have much more
knowledge regarding this than I do.

---------

Co-authored-by: Brock Walters <153771548+nonpunctual@users.noreply.github.com>
2026-02-12 14:34:54 -06:00
Steven Palmesano
ca599be859
Use cameraAccess instead of cameraDisabled, which is deprecated (#39751)
Tested and confirmed that this works.
2026-02-12 15:19:24 -05:00
Noah Talerman
10299bd85b
Contributor docs: Link to community PR process (#39555) 2026-02-12 12:43:09 -06:00
Adam Baali
f2f1f66d11
Add Windows MDM migration troubleshooting scripts and guide (#39548)
Closes #38916
Related: #34993, #33985, fleetdm/confidential#13228

## Changes

**Article update** (`articles/windows-mdm-setup.md`)
- Adds "Migrating from another MDM solution" subsection under **Manual
enrollment** with overview of common migration issues and links to
remediation scripts

**New scripts** (`docs/solutions/windows/scripts/`)
- `reset-mdm-enrollment-flag.ps1` — Resets MmpcEnrollmentFlag blocking
MDM status after migration
- `remove-stale-mdm-enrollment-records.ps1` — Clears orphaned enrollment
GUIDs, AAD discovery cache, and MS DM Server cache
- `fix-workplace-join-configuration.ps1` — Re-enables
Automatic-Device-Join task and configures Workplace Join policies
- `remove-unreachable-wsus-configuration.ps1` — Removes unreachable WSUS
server config that breaks Windows Update

## Context

Customers migrating Windows hosts from Intune to Fleet have been hitting
recurring enrollment issues, MDM status stuck on "Off," enrollment
errors (`0x80190190`, `0x8018000a`), and Windows Update breakage from
leftover RMM agents. These scripts consolidate the workarounds from
multiple customer engagements into self-serve remediation that can be
deployed via **Controls > Scripts**.

---------

Co-authored-by: Marko Lisica <83164494+marko-lisica@users.noreply.github.com>
2026-02-11 15:20:26 +01:00
Rachael Shaw
d124acc493
Document how to change label name without clearing membership (#39443)
See https://github.com/fleetdm/fleet/issues/38947
2026-02-10 17:08:03 -06:00
Noah Talerman
59cff14a91
API reference: List hosts includes last_opened_at (#39573)
- When `populate_software=true`
- This came up in GitHub here:
https://github.com/fleetdm/fleet/issues/38645#issuecomment-3863021910
2026-02-10 17:07:30 -06:00
Marko Lisica
50d6dd2652
Remove 'fleet_maintained' field from policy and software endpoints (#39605)
This field doesn't exist. Probably accidentally merged.
2026-02-10 17:07:12 -06:00
Steven Palmesano
32e06e9488
Default type is dynamic (#39580)
Also change platform -> type.

Discussed in #38868.
2026-02-10 17:06:49 -06:00
Victor Lyuboslavsky
fe24ff1d67
Fixed a bug where certain macOS app names could be ingested as empty strings due to incorrect ".app" suffix removal. (#39563)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #34620

# Checklist for submitter

- [x] Changes file added for user-visible changes in `changes/`,
`orbit/changes/` or `ee/fleetd-chrome/changes`.

## Testing

- [x] QA'd all new/changed functionality manually


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

## Bug Fixes
* Fixed an issue where macOS app names could become empty after removing
the ".app" extension. The app name extraction logic now correctly
handles edge cases, ensuring app names are properly ingested without
empty values.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-02-10 13:03:23 -06:00
Victor Lyuboslavsky
ac508b9a40
Added contributor docs for SigNoz. (#39402)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #38607
2026-02-09 15:28:28 -06:00
Magnus Jensen
a187842260
always send webhook while device is unmanaged for MDM migration (#39416)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #38322 

This PR utilizes the ping/status ticker that sees if the device is
Unmanaged (aka. not enrolled from a Fleet server perspective), if the
Migrate to Fleet flow before had set the `mdm_migration.txt` file, but
somehow not successfully unenrolled the device, we now keep sending it
if you trigger the modal again.

We wait 90seconds after start, so at most the user can go through the
flow every 90s, but the server has a hard limit on at most one webhook
every 3m, but still it means the user can wait a bit and retry and still
see the webhook gets sent now.

_PS: Updated the old migration test to go from 1,5m to ~2s execution
time with parallel and configurable waitForUnenrollment time (to allow
test to set lower values)

# Checklist for submitter

If some of the following don't apply, delete the relevant line.

- [x] Changes file added for user-visible changes in `changes/`,
`orbit/changes/` or `ee/fleetd-chrome/changes`.
See [Changes
files](https://github.com/fleetdm/fleet/blob/main/docs/Contributing/guides/committing-changes.md#changes-files)
for more information.


## Testing

- [x] Added/updated automated tests
- [x] QA'd all new/changed functionality manually

## fleetd/orbit/Fleet Desktop

- [x] Verified compatibility with the latest released version of Fleet
(see [Must
rule](https://github.com/fleetdm/fleet/blob/main/docs/Contributing/workflows/fleetd-development-and-release-strategy.md))
- [x] If the change applies to only one platform, confirmed that
`runtime.GOOS` is used as needed to isolate changes
- [x] Verified that fleetd runs on macOS, Linux and Windows
- [x] Verified auto-update works from the released version of component
to the new version (see [tools/tuf/test](../tools/tuf/test/README.md))

---------

Co-authored-by: Jordan Montgomery <elijah.jordan.montgomery@gmail.com>
2026-02-09 14:08:54 -05:00
Adam Baali
e62f451e9d
Fix command_line_flags placement in agent configuration docs (#39546)
## Changes

Fixes incorrect YAML example in
`docs/Configuration/agent-configuration.md` where `command_line_flags`
was shown nested under `config:` instead of at the top level.

**File changed:** `docs/Configuration/agent-configuration.md`

## What was wrong

The example in the `## config` section showed `command_line_flags`
indented under `config:`:

```yaml
config:
  options:
    distributed_interval: 3
    ...
  command_line_flags: #  WRONG - nested under config
    verbose: true
    ...
  decorators:
    ...
```

This is incorrect and causes the following error when applied via
`fleetctl apply` for team YAML files:

```
Error: applying teams: POST /api/latest/fleet/spec/teams received status 400 Bad Request: 
"command_line_flags" should be part of the top level object
```

## Correct placement

Per the original implementation in
[#7377](https://github.com/fleetdm/fleet/issues/7377),
`command_line_flags` must be a **top-level key** under `agent_options`,
at the same level as `config:`:

```yaml
config:
  options:
    distributed_interval: 3
    ...
  decorators:
    ...
  yara:
    ...
command_line_flags: #  CORRECT - top level, sibling of config
  verbose: true
  ...
```

This is consistent with:
- The [Configuration files
docs](https://fleetdm.com/docs/configuration/configuration-files) which
correctly show `command_line_flags: {}` at the top level
- Issue #7377 which states: *"The overrides setting does not accommodate
command_line_flags, which is why it is only allowed at the top-level
(and not inside config or every override)"*
- The overrides section of the same page which notes: *"the
command_line_flags key is not supported in the overrides"*

## Related issues
- Closes: https://github.com/fleetdm/confidential/issues/14206
- Closes: https://github.com/fleetdm/confidential/issues/14207

---------

Co-authored-by: Noah Talerman <47070608+noahtalerman@users.noreply.github.com>
2026-02-09 12:16:31 -06:00
Noah Talerman
14158b2b68
GitOps reference: No label_membership_type (#39556)
- Currently defaults to empty manual label:
https://github.com/fleetdm/fleet/issues/38868
2026-02-09 11:25:44 -06:00
Jahziel Villasana-Espinoza
4a5de5c386
oncall doc updates (#39517) 2026-02-09 10:43:27 -05:00
Juan Fernandez
4657a6979e
Add activity for modified enroll secrets (#39292)
Resolves #36755 

When an user edits (add, updates or deletes) an enroll secret, then a
global activity should be generated.
2026-02-07 09:21:10 -04:00
Noah Talerman
67a78314d7
YAML reference: For packages, add via UI and copy hash_sha256 (#39434)
- This is we added ability to add a package via the UI in GitOps mode
2026-02-06 16:00:37 -05:00
Steven Palmesano
6a3578ce46
Update Jamf API endpoints (#39146)
Discussed at
https://macadmins.slack.com/archives/C0214NELAE7/p1769719765777279
- The endpoints for marking a device as unmanaged and sending an
unmanage command were deprecated and no longer work. The endpoint for
looking up a device by serial number was also deprecated, so I've
proactively updated it.
- The whole story is now refactored and simplified.
- Also fixed a link in the `tines` README.
2026-02-06 13:58:40 -06:00
Steven Palmesano
3b562c2ffb
Fix Apple's spelling errors (#39464)
stving -> string
PayloamVersion -> PayloadVersion
PaylpadRemovalDisallowed -> PayloadRemovalDisallowed

Originally reported at
https://macadmins.slack.com/archives/C0214NELAE7/p1770365345839839

Looks like we just copied from [Apple's
example](https://developer.apple.com/documentation/devicemanagement/install-profile-command),
which has the errors.
2026-02-06 13:37:40 -06:00
Magnus Jensen
bce4c4afae
remove old Windows MDM PoC tool (#39473)
This PR cleans up an old tool/windows-mdm-poc, that we no longer use or
rely on.

It is also an effort to minimze inline dependencies when unused.
2026-02-06 13:55:16 -05:00
Victor Lyuboslavsky
b0f4318fb9
Added OTEL contributor docs (#39285)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #38607
2026-02-05 07:21:27 -06:00
Juan Fernandez
2935236802
False negative vulnerability for Adobe Acrobat Reader DC (#39131)
Resolves #35366 

The false negative was caused by a mismatch in product name translation
for `acrobat_reader_dc`. The resolution required platform-specific logic
to accurately identify the "Document Cloud" (DC) variants.
2026-02-05 07:20:16 -04:00
Noah Talerman
cc038aefbb
Update configuration-for-contributors.md (#39355) 2026-02-04 15:14:39 -06:00
Noah Talerman
996f5d450f
JIT guide: Simplify language (#39306)
Users sometimes missing the step "Create user and sync permissions on
login": https://github.com/fleetdm/fleet/issues/38438
2026-02-04 11:32:12 -06:00
Rachael Shaw
d401334d4c
Clearer callout clarifying hostname is not the same as display name (#39274) 2026-02-03 17:03:29 -06:00
Martin Angers
9dd41214f4
Update contributor API docs to add optional custom display name and icon for setup experience software (#39262)
Docs changes for https://github.com/fleetdm/fleet/pull/39223
2026-02-03 16:43:09 -06:00
Adam Baali
e51561914b
Add Windows SCEP profile with Exec support and $FLEET_VAR_HOST_HARDWARE_SERIAL for Okta certificate enrollment (#39204)
This pull request updates the Okta Verify on Windows SCEP configuration
documentation and profile to simplify deployment with Fleet and reduce
manual steps. The changes make the process more reliable by
standardizing variable usage, improving instructions, and automating
certificate enrollment.

**Key improvements and changes:**

**Documentation and workflow simplification:**
- The guide in
`articles/enable-okta-verify-on-windows-using-a-scep-configuration-profile.md`
was rewritten for clarity and to reflect the new automated approach.
Manual editing of XML and scripts is no longer needed; Fleet-managed
variables and secrets now handle all required values. Steps for
gathering prerequisites, deploying, verifying, and renewing certificates
are streamlined, and troubleshooting guidance is expanded.

- The subject name in the certificate is now set to use the hardware
serial (`$FLEET_VAR_HOST_HARDWARE_SERIAL`) instead of the host UUID,
improving uniqueness and traceability.
([docs/solutions/windows/configuration-profiles/install Okta attestation
certificate -
[Bundle].xmlL77-R89](diffhunk://#diff-d8fc2c8add5725599bdc41a7b417dc3978cfc34eb6fcb8950db513f2b5799aa5L77-R89))

**Secret management and security:**
- The configuration profile now references Fleet secrets
(`$FLEET_SECRET_OKTA_SCEP_URL`, `$FLEET_SECRET_OKTA_SCEP_CHALLENGE`,
`$FLEET_SECRET_OKTA_CA_THUMBPRINT`) directly, removing the need for
manual substitution and reducing risk of misconfiguration.
([docs/solutions/windows/configuration-profiles/install Okta attestation
certificate -
[Bundle].xmlL98-R141](diffhunk://#diff-d8fc2c8add5725599bdc41a7b417dc3978cfc34eb6fcb8950db513f2b5799aa5L98-R141))

**Automated certificate enrollment:**
- An `<Exec>` command is added to the XML profile to automatically
trigger SCEP enrollment upon deployment, further reducing manual
intervention. ([docs/solutions/windows/configuration-profiles/install
Okta attestation certificate -
[Bundle].xmlL98-R141](diffhunk://#diff-d8fc2c8add5725599bdc41a7b417dc3978cfc34eb6fcb8950db513f2b5799aa5L98-R141))

These changes make the Okta Verify SCEP configuration for Windows much
easier to deploy and maintain, with improved automation and clearer
instructions.

---------

Co-authored-by: Brock Walters <153771548+nonpunctual@users.noreply.github.com>
2026-02-03 16:47:53 +01:00
Noah Talerman
d6a98764aa
New Fleet instances: New best practice teams (#39181)
- All new Fleet Premium instances get new best practice teams
- Remove policies, queries, and scripts to simplify
2026-02-03 09:36:57 -05:00
Rachael Shaw
dafc8f6752
Preview of v4.80.0 doc changes (#37193)
This PR will remain in draft as a preview of upcoming documentation
changes for 4.80.0

---------

Co-authored-by: Marko Lisica <83164494+marko-lisica@users.noreply.github.com>
Co-authored-by: Lucas Manuel Rodriguez <lucas@fleetdm.com>
Co-authored-by: Noah Talerman <47070608+noahtalerman@users.noreply.github.com>
Co-authored-by: Magnus Jensen <magnus@fleetdm.com>
Co-authored-by: Jordan Montgomery <elijah.jordan.montgomery@gmail.com>
Co-authored-by: Scott Gress <scottmgress@gmail.com>
Co-authored-by: Mike Thomas <78363703+mike-j-thomas@users.noreply.github.com>
Co-authored-by: Nico <32375741+nulmete@users.noreply.github.com>
Co-authored-by: Luke Heath <luke@fleetdm.com>
2026-02-02 17:41:37 -06:00
Noah Talerman
09b52289b1
YAML reference: FLEET_VAR_HOST_HARDWARE_SERIAL is supported on Windows (#39193)
@rachaelshaw: I want to see how this change got lost.

Shipped in #34364
2026-02-02 15:43:33 -06:00
Jordan Montgomery
951552ea74
Add MDM Bug checklist (#39058)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #38223

Retrospective action item from a prior sprint. Do we want to link this
somewhere like the bug template or is it enough to share it with our
customer-facing employees?

---------

Co-authored-by: Magnus Jensen <magnus@fleetdm.com>
2026-02-02 13:56:38 -05:00
Steven Palmesano
5df6a89b0a
Add Suppress iWork Upgrade Prompt (#39052) 2026-01-30 09:18:31 -05:00
Dale Ribeiro
9b532c9936
Solutions folder script name cleanup (#38951) 2026-01-29 20:39:20 -05:00
Noah Talerman
4a2b6f7007
Supported host operating systems (#39026)
Fleet doesn't test Red Hat Enterprise Linux 10

---------

Co-authored-by: Ian Littman <iansltx@gmail.com>
2026-01-29 17:27:58 -06:00
Steven Palmesano
b1ce6b9d41
Move Entity ID note above screenshot (#38952)
A customer just commented that it would be more relevant if this note
block for the Entity ID was above the screenshot, since it goes with the
preceding paragraph.

---------

Co-authored-by: Rachael Shaw <r@rachael.wtf>
2026-01-29 11:49:48 -06:00
Josh Roskos
a38ca21d2d
Add downloadCloudflareWARP.ps1 (#38933)
Created for `customer-calabria`. Installs Cloudflare WARP and adds
variables for common organization configuration options.
```
# Define variables
$downloadUrl = "https://downloads.cloudflareclient.com/v1/download/windows/ga"
$tempDir = $env:TEMP
$installerPath = Join-Path $tempDir "Cloudflare_WARP.msi"
$organization = "your-team-name"   # Replace with your Cloudflare Zero Trust organization name
$serviceMode = "1dot1"             # Gateway with DoH mode (options: warp, 1dot1, proxy, postureonly, tunnelonly)
$autoConnect = 2                   # Auto-reconnect after N minutes (0 = indefinite off, 1-1440 = minutes)
$displayName = "display-name"      # Organization display name in WARP GUI
$onboarding = $false               # Show privacy policy screens on first launch
$switchLocked = $true              # Prevent users from manually disabling WARP
```
2026-01-28 15:25:40 -05:00
Marko Lisica
009f019307
Update Android MDM documentation with localhost note (#38840) 2026-01-28 13:50:53 -06:00