> For the complete documentation index, see [llms.txt](https://boza.gitbook.io/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://boza.gitbook.io/docs/browser-extension/deploy-uninstall.md).

# Deploy & Uninstall via MDM

Boza integrates directly with your MDM to automate extension deployment and removal. This page explains how the deploy and uninstall flows work behind the scenes.

## Supported MDM Platforms

* **Microsoft Intune** — full deploy and uninstall support
* **Google Workspace** — deploy support (partial; uninstall is manual)
* **Jamf** — deploy support for macOS

## Deploy Flow

### Steps in the Boza Console

1. Navigate to **Settings > Browser Extension > Deploy**.
2. Select your MDM platform (e.g., Microsoft Intune).
3. Authenticate via OAuth or provide API credentials.
4. Select the user or device groups to target.
5. Review the configuration and confirm deployment.

### What Happens Behind the Scenes (Intune)

When you confirm a deployment through the Intune integration, Boza performs the following:

1. **Creates or merges a PowerShell deployment script** — if an existing Boza script is assigned to the tenant, the new group assignments are merged rather than duplicated.
2. **Assigns the script to selected groups** — the script targets the Azure AD groups you selected during setup.
3. **Handles conflicts intelligently** — if a group already has a Boza deployment, the existing assignment is preserved without creating duplicates.

### PowerShell Script Behavior

The deployment script runs on each target device and performs the following:

**User email detection** — the script uses 7 cascading methods to determine the logged-in user's corporate email address, ensuring reliable auto-login across different environment configurations.

**Chrome and Edge configuration:**

* Force-installs the extension using the browser's `ExtensionInstallForcelist` policy
* Writes managed storage values (`userEmail` and `secretKey`) for automatic authentication
* Pins the extension to the toolbar using `ExtensionSettings` with `force_pinned` (Chrome) or `force_shown` (Edge)

**Firefox configuration:**

* Force-installs the extension via the `ExtensionSettings` policy
* Places the extension in the navigation bar
* Writes managed storage values for automatic authentication

## Uninstall Flow

### Steps in the Boza Console

1. Navigate to **Settings > Browser Extension**.
2. Click **More options** on an active deployment.
3. Select **Uninstall**.
4. Choose your MDM platform.
5. Select the user or device groups for removal.
6. Confirm the uninstall operation.

### What Happens Behind the Scenes (Intune)

1. **Removes deploy script assignments** — the selected groups are unassigned from the deployment script.
2. **Creates a removal script** — a new PowerShell script is generated to clean up extension policies and managed storage.
3. **Assigns the removal script** — the cleanup script is assigned to the target groups.

## Removal Behavior by Browser

Uninstall behavior differs by browser due to how each handles policy-managed extensions.

| Browser | Deploy Method                       | Uninstall Behavior                   | Auto-login Mechanism | Toolbar Pinning  |
| ------- | ----------------------------------- | ------------------------------------ | -------------------- | ---------------- |
| Chrome  | Force install + auto-login + pin    | Auto-removed on next browser restart | Managed storage      | `force_pinned`   |
| Edge    | Force install + auto-login + pin    | Auto-removed on next browser restart | Managed storage      | `force_shown`    |
| Firefox | Force install + auto-login + navbar | Manual uninstall required            | Managed storage      | Navbar placement |

### Firefox Limitation

When the force-install policy is removed from a Firefox installation, the extension **remains installed**. Unlike Chrome and Edge, Firefox does not automatically remove extensions when the policy that installed them is deleted.

Users must manually remove the extension:

1. Open Firefox and navigate to `about:addons`.
2. Locate the Boza extension.
3. Click **Remove**.

If full removal is required across many users, consider deploying a follow-up script that modifies the Firefox profile to remove the extension entry.

## Propagation Timeline

Deployment changes do not take effect instantly. Expect the following timeline:

| Stage                      | Estimated Time                                     |
| -------------------------- | -------------------------------------------------- |
| Intune script distribution | Up to 24 hours                                     |
| Script execution on device | Next Intune check-in cycle (approximately 8 hours) |
| Browser effect             | Next browser restart after script execution        |

For faster rollout, you can trigger an Intune sync from the device or restart the Intune Management Extension service on Windows machines.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://boza.gitbook.io/docs/browser-extension/deploy-uninstall.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
