diff --git a/microsoft-edge/extensions-chromium/developer-guide/alternate-distribution-options.md b/microsoft-edge/extensions-chromium/developer-guide/alternate-distribution-options.md index e175c71a7b..96b14ef029 100644 --- a/microsoft-edge/extensions-chromium/developer-guide/alternate-distribution-options.md +++ b/microsoft-edge/extensions-chromium/developer-guide/alternate-distribution-options.md @@ -9,6 +9,10 @@ ms.subservice: extensions ms.date: 05/05/2023 --- # Alternative ways to distribute an extension + Generally, extensions are distributed through the Microsoft Edge Add-ons website. There are some scenarios where developers may need to distribute extensions using alternate methods. For example: @@ -16,26 +20,29 @@ Generally, extensions are distributed through the Microsoft Edge Add-ons website 1. Network administrators want to distribute an extension throughout their organization. -Extensions that aren't loaded from the Edge Add-ons store are referred to as externally installed extensions. The following are alternate methods of distributing externally installed extensions: +Extensions that aren't loaded from the Edge Add-ons store are referred to as _externally installed extensions_. The following are alternate methods of distributing externally installed extensions: -* Use the Windows registry (Windows only). -* Use a preferences JSON file (macOS and Linux). +* Use the Windows registry (Windows only). +* Use a preferences JSON file (macOS and Linux). These approaches are described below. +See also: +* [Set an externally installed extension to automatically update](../publish/auto-update.md) + -## Before you begin +## Gather initial information -Make sure that you publish your extension in the Microsoft Edge Add-ons website, or package a `.crx` file and ensure that it installs successfully on your computer. If you install the `.crx` file using the `update_url`, make sure you can go to your extension at that URL. +Make sure that you publish your extension in the Microsoft Edge Add-ons website, or package a `.crx` file and ensure that it installs successfully on your computer. If you install the `.crx` file using the `update_url`, make sure you can go to your extension at that URL. Also, make sure that you have the following information: -* The file path of the `.crx` file, or the `update_url` of your extension. +* The file path of the `.crx` file, or the `update_url` of your extension. -* The version of your extension. The version information is available in your manifest file, or in Microsoft Edge at `edge://extensions` after you load the packed extension. +* The version of your extension. The version information is available in your manifest file, or in Microsoft Edge at `edge://extensions` after you load the packed extension. -* The ID of your extension. The ID information is available in Microsoft Edge at `edge://extensions` after you load the packed extension. +* The ID of your extension. The ID information is available in Microsoft Edge at `edge://extensions` after you load the packed extension. The following examples use `1.0` as the version, and `aaaaaaaabbbbbbbbccccccccdddddddd` for the ID. @@ -45,24 +52,23 @@ The following examples use `1.0` as the version, and `aaaaaaaabbbbbbbbccccccccdd To distribute your extension using the Windows registry: -1. Find or create the following key in the registry: - * 32-bit Windows: `HKEY_LOCAL_MACHINE\Software\Microsoft\Edge\Extensions` - * 64-bit Windows: `HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\Edge\Extensions` +1. Find or create the following key in the registry: + * 32-bit Windows: `HKEY_LOCAL_MACHINE\Software\Microsoft\Edge\Extensions` + * 64-bit Windows: `HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\Edge\Extensions` -1. Create a new key, or folder, under **Extensions** with the same name as the ID of your extension. For example, create the key with the name `aaaaaaaabbbbbbbbccccccccdddddddd`. +1. Create a new key, or folder, under **Extensions** with the same name as the ID of your extension. For example, create the key with the name `aaaaaaaabbbbbbbbccccccccdddddddd`. -1. In the **Extensions** key, create the `update_url` property, and set the value to `https://edge.microsoft.com/extensionwebstorebase/v1/crx`. The `update_url` property points to the `.crx` file of your extension in the Microsoft Edge Add-ons website. +1. In the **Extensions** key, create the `update_url` property, and set the value to `https://edge.microsoft.com/extensionwebstorebase/v1/crx`. The `update_url` property points to the `.crx` file of your extension in the Microsoft Edge Add-ons website. - ```json - { - "update_url": "https://edge.microsoft.com/extensionwebstorebase/v1/crx" - } - ``` + ```json + { + "update_url": "https://edge.microsoft.com/extensionwebstorebase/v1/crx" + } + ``` - > [!NOTE] - > If you want to install an extension from the Chrome Web Store, set the value of `update_url` to `https://clients2.google.com/service/update2/crx`. + If you want to install an extension from the Chrome Web Store, set the value of `update_url` to `https://clients2.google.com/service/update2/crx`. -1. In Microsoft Edge, go to `edge://extensions`, and then verify that your extension is listed. +1. In Microsoft Edge, go to `edge://extensions`, and then verify that your extension is listed. @@ -78,62 +84,62 @@ To distribute your extension by using a preferences JSON file: 1. Depending on your operating system, save the JSON file to one of the following folders: - * **macOS** - * User-specific: `~USERNAME/Library/Application Support/Microsoft Edge/External Extensions/` - * For all users: `/Library/Application Support/Microsoft/Edge/External Extensions/` + * **macOS** + * User-specific: `~USERNAME/Library/Application Support/Microsoft Edge/External Extensions/` + * For all users: `/Library/Application Support/Microsoft/Edge/External Extensions/` - To prevent unauthorized users from installing extensions for all users, make sure your extension preferences file is read-only. + To prevent unauthorized users from installing extensions for all users, make sure your extension preferences file is read-only. - Also make sure that the following conditions are met: + Also make sure that the following conditions are met: - * Every directory in the path is owned by the user root. - * Every directory in the path is assigned to the `admin` or `wheel` group. - * Every directory in the path isn't `world` writable. - * The path must be free of symbolic links. + * Every directory in the path is owned by the user root. + * Every directory in the path is assigned to the `admin` or `wheel` group. + * Every directory in the path isn't `world` writable. + * The path must be free of symbolic links. - * **Linux** - * User-specific: `~/.config/microsoft-edge/External Extensions/` - * For all users: `/usr/share/microsoft-edge/extensions/` + * **Linux** + * User-specific: `~/.config/microsoft-edge/External Extensions/` + * For all users: `/usr/share/microsoft-edge/extensions/` 1. Depending on your scenario, copy the appropriate code that follows, into your preferences JSON file. - * Applies to Linux only. If you install from a file, specify the location and version in `external_crx` and `external_version`: + * Applies to Linux only. If you install from a file, specify the location and version in `external_crx` and `external_version`: - ```json - { - "external_crx": "/home/share/extension.crx", - "external_version": "1.0" - } - ``` + ```json + { + "external_crx": "/home/share/extension.crx", + "external_version": "1.0" + } + ``` - * Applies to macOS and Linux. If you install from an `update_url`, specify the update URL in `external_update_url`. + * Applies to macOS and Linux. If you install from an `update_url`, specify the update URL in `external_update_url`. - Copy the following code into your preferences JSON file when installing from local `.crx` files on Linux only: + Copy the following code into your preferences JSON file when installing from local `.crx` files on Linux only: - ```json - { - "external_update_url": "http://myhost.com/mytestextension/updates.xml" - } - ``` + ```json + { + "external_update_url": "http://myhost.com/mytestextension/updates.xml" + } + ``` - * Copy the following code to your preferences JSON file when installing from the Microsoft Edge Add-ons website on macOS and Linux: + * Copy the following code to your preferences JSON file when installing from the Microsoft Edge Add-ons website on macOS and Linux: - ```json - { - "external_update_url": "https://edge.microsoft.com/extensionwebstorebase/v1/crx" - } - ``` + ```json + { + "external_update_url": "https://edge.microsoft.com/extensionwebstorebase/v1/crx" + } + ``` 1. To install extensions for specific locales, list the supported locales, in `supported_locales`. You can specify parent locales, to install your extension for all language locales that use that parent. For example, when using the parent locale `en`, your extension installs for all English locales, such as `en-US`, `en-GB`, and so on. When users change their locale in their browser, externally installed extensions are uninstalled. To install your extension for _any_ locale, don't use `supported_locales`. - ```json - { - "external_update_url": "https://edge.microsoft.com/extensionwebstorebase/v1/crx", - "supported_locales": [ "en", "fr", "de" ] - } - ``` + ```json + { + "external_update_url": "https://edge.microsoft.com/extensionwebstorebase/v1/crx", + "supported_locales": [ "en", "fr", "de" ] + } + ``` 1. Verify that your extension is installed in Microsoft Edge, by going to `edge://extensions`. @@ -147,8 +153,8 @@ To update your extension to a new version, update the `version` string in the ex You may need to uninstall externally installed extensions, which were installed as part of a bundle of software that was previously installed on the machine. To uninstall your extension, remove your preferences JSON file or remove the key from the registry. - See also: +* [Set an externally installed extension to automatically update](../publish/auto-update.md) * [Manifest file format for extensions](../getting-started/manifest-format.md) @@ -160,6 +166,24 @@ The policies for `ExtensionInstallForcelist`, block list, and `ExtensionSettings If the `BlockExternalExtensions` policy is set to `Not Configured` or `Disabled`, that doesn't have any effect. If the `BlockExternalExtensions` policy is set to `Enabled`, external extension installation (by third party software) is prevented. + +## See also + + +* [Set an externally installed extension to automatically update](../publish/auto-update.md) +* [Manifest file format for extensions](../getting-started/manifest-format.md) + +Microsoft Edge Enterprise docs: +* [Microsoft Edge - Policies](/deployedge/microsoft-edge-policies) + * [ExtensionInstallForcelist](/deployedge/microsoft-edge-policies#extensioninstallforcelist) + * [ExtensionInstallSources](/deployedge/microsoft-edge-policies#extensioninstallsources) + * [ExtensionSettings](/deployedge/microsoft-edge-policies#extensionsettings) + * [BlockExternalExtensions](/deployedge/microsoft-edge-policies#blockexternalextensions) + +Chrome Extensions docs: +* [Use alternative installation methods](https://developer.chrome.com/docs/extensions/how-to/distribute/install-extensions) + + > [!NOTE] > Portions of this page are modifications based on work created and [shared by Google](https://developers.google.com/terms/site-policies) and used according to terms described in the [Creative Commons Attribution 4.0 International License](https://creativecommons.org/licenses/by/4.0). The original page is found [here](https://developer.chrome.com/docs/extensions/how-to/distribute/install-extensions). diff --git a/microsoft-edge/extensions-chromium/developer-guide/api-support.md b/microsoft-edge/extensions-chromium/developer-guide/api-support.md index 8a570ab871..4c7fbeaf85 100644 --- a/microsoft-edge/extensions-chromium/developer-guide/api-support.md +++ b/microsoft-edge/extensions-chromium/developer-guide/api-support.md @@ -133,4 +133,4 @@ This work is licensed under a [Creative Commons Attribution 4.0 International Li * [Chrome Extensions API reference for Manifest V2](https://developer.chrome.com/docs/extensions/mv2/reference/) * [Chrome Extensions API reference for Manifest V3](https://developer.chrome.com/docs/extensions/reference/api/) -* [Using the Microsoft Edge Add-ons REST API](../publish/api/using-addons-api.md) - to update an extension at the Microsoft Edge Add-ons website. +* [Using the REST API for updating Microsoft Edge Add-ons](../publish/api/using-addons-api.md) - to update an extension at the Microsoft Edge Add-ons website. diff --git a/microsoft-edge/extensions-chromium/getting-started/part1-simple-extension.md b/microsoft-edge/extensions-chromium/getting-started/part1-simple-extension.md index d312772e86..1ab52068a5 100644 --- a/microsoft-edge/extensions-chromium/getting-started/part1-simple-extension.md +++ b/microsoft-edge/extensions-chromium/getting-started/part1-simple-extension.md @@ -16,11 +16,7 @@ The goal for this tutorial is to build a Microsoft Edge extension, starting with * Adding icons. * Opening a default pop-up dialog. - - -## Before you begin - -To test out the completed extension that you are building in this tutorial, download the source code from [MicrosoftEdge-Extensions repo > extension-getting-started-part1](https://github.com/microsoft/MicrosoftEdge-Extensions/tree/main/Extension%20samples/extension-getting-started-part1/part1). The source code has been updated from Manifest V2 to Manifest V3. +If you want to test out the completed extension that you are building in this tutorial, download the source code from [MicrosoftEdge-Extensions repo > extension-getting-started-part1](https://github.com/microsoft/MicrosoftEdge-Extensions/tree/main/Extension%20samples/extension-getting-started-part1/part1). The source code has been updated from Manifest V2 to Manifest V3. diff --git a/microsoft-edge/extensions-chromium/landing/index.yml b/microsoft-edge/extensions-chromium/landing/index.yml index ce7b635f10..e04074ff42 100644 --- a/microsoft-edge/extensions-chromium/landing/index.yml +++ b/microsoft-edge/extensions-chromium/landing/index.yml @@ -177,15 +177,15 @@ landingContent: - text: Update a Microsoft Edge extension url: ../publish/update-extension.md - - text: Set an extension to automatically update + - text: Set an externally installed extension to automatically update url: ../publish/auto-update.md - - text: Using the Microsoft Edge Add-ons REST API + - text: Using the REST API for updating Microsoft Edge Add-ons url: ../publish/api/using-addons-api.md - linkListType: reference links: - - text: REST API Reference for Microsoft Edge Add-ons + - text: REST API Reference for updating Microsoft Edge Add-ons url: ../publish/api/addons-api-reference.md # ============================================================================= diff --git a/microsoft-edge/extensions-chromium/publish/api/addons-api-reference.md b/microsoft-edge/extensions-chromium/publish/api/addons-api-reference.md index 5f3b214348..ac1172264f 100644 --- a/microsoft-edge/extensions-chromium/publish/api/addons-api-reference.md +++ b/microsoft-edge/extensions-chromium/publish/api/addons-api-reference.md @@ -1,5 +1,5 @@ --- -title: REST API Reference for Microsoft Edge Add-ons +title: REST API Reference for updating Microsoft Edge Add-ons description: The Add-ons API Reference, for REST endpoints to automate publishing updates to add-ons that are submitted to the Microsoft Edge Add-ons store. author: MSEdgeTeam ms.author: msedgedevrel @@ -8,31 +8,34 @@ ms.service: microsoft-edge ms.subservice: extensions ms.date: 09/05/2024 --- -# REST API Reference for Microsoft Edge Add-ons +# REST API Reference for updating Microsoft Edge Add-ons This article is the REST endpoint reference for the Microsoft Edge Add-ons API. This API automates publishing updates to add-ons that have been submitted to the Microsoft Edge Add-ons store. -For an overview, see [Using the Microsoft Edge Add-ons REST API](./using-addons-api.md). +For an overview, see [Using the REST API for updating Microsoft Edge Add-ons](./using-addons-api.md). -#### Versions of the REST API +#### Versions of the Update REST API -As of September 6, 2024, both v2 and v1 of this REST API are supported. Later, v1 will no longer be supported. The date for ending v1 support is not yet finalized. +As of September 6, 2024, both v1.1 and v1 of this Update REST API are supported. Later, v1 will no longer be supported. The date for ending v1 support is not yet finalized. ## Upload a package to update an existing submission + Uploads a package to update an existing draft submission of an add-on product. +See also [Uploading a package to update an existing submission](./using-addons-api.md#uploading-a-package-to-update-an-existing-submission) in _Using the REST API for updating Microsoft Edge Add-ons_. + #### Request | Method | Request URI | |---|---| -| `POST` | `/products/{productID}/submissions/draft/package` | +| `POST` | `/products/$productID/submissions/draft/package` | @@ -40,7 +43,7 @@ Uploads a package to update an existing draft submission of an add-on product. | URI parameter | Description | |---|---| -| `productID` | Required. The product ID of the product to which the package must be uploaded. | +| `$productID` | Required. The product ID of the product to which the package must be uploaded. | @@ -48,15 +51,15 @@ Uploads a package to update an existing draft submission of an add-on product. The following request headers are required: -##### [v2](#tab/v2) +##### [v1.1](#tab/v1-1) -* `Authorization: ApiKey ` -* `X-ClientID: ` +* `Authorization: ApiKey $ApiKey` +* `X-ClientID: $ClientID` * `Content-Type: application/zip` ##### [v1](#tab/v1) -* `Authorization: Bearer ` +* `Authorization: Bearer $TOKEN` * `Content-Type: application/zip` --- @@ -77,6 +80,8 @@ The following request headers are required: * Location: `{operationID}` +The response includes an operation ID, to send to other endpoints. + ###### Status codes @@ -91,21 +96,24 @@ This API has the following expected status codes. See also: -* [Uploading a package to update an existing submission](./using-addons-api.md#uploading-a-package-to-update-an-existing-submission) in _Using the Microsoft Edge Add-ons REST API_. +* [Uploading a package to update an existing submission](./using-addons-api.md#uploading-a-package-to-update-an-existing-submission) in _Using the REST API for updating Microsoft Edge Add-ons_. ## Check the status of a package upload + Gets the status of the package upload. +See also [Checking the status of a package upload](./using-addons-api.md#checking-the-status-of-a-package-upload) in _Using the REST API for updating Microsoft Edge Add-ons_. + #### Request | Method | Request URI | |---|---| -| `GET` | `/products/{productID}/submissions/draft/package/operations/{operationID}` | +| `GET` | `/products/$productID/submissions/draft/package/operations/$operationID` | @@ -113,7 +121,7 @@ Gets the status of the package upload. | URI parameter | Description | |---|---| -| `operationID` | Required. The operation ID of the upload request submitted in the previous step. This information is available in the response header. | +| `$operationID` | Required. The operation ID of the upload request submitted in the previous step. This information is available in the response header. | @@ -121,14 +129,14 @@ Gets the status of the package upload. The following request headers are required: -##### [v2](#tab/v2) +##### [v1.1](#tab/v1-1) -* `Authorization: ApiKey ` -* `X-ClientID: ` +* `Authorization: ApiKey $ApiKey` +* `X-ClientID: $ClientID` ##### [v1](#tab/v1) -* `Authorization: Bearer ` +* `Authorization: Bearer $TOKEN` --- @@ -212,21 +220,24 @@ This API has the following expected status codes. See also: -* [Checking the status of a package upload](./using-addons-api.md#checking-the-status-of-a-package-upload) in _Using the Microsoft Edge Add-ons REST API_. +* [Checking the status of a package upload](./using-addons-api.md#checking-the-status-of-a-package-upload) in _Using the REST API for updating Microsoft Edge Add-ons_. ## Publish the product draft submission + Publishes the current draft of the product to Microsoft Edge Add-ons. +See also [Publishing the submission](./using-addons-api.md#publishing-the-submission) in _Using the REST API for updating Microsoft Edge Add-ons_. + #### Request | Method | Request URI | |---|---| -| `POST` | `/products/{productID}/submissions` | +| `POST` | `/products/$productID/submissions` | @@ -234,7 +245,7 @@ Publishes the current draft of the product to Microsoft Edge Add-ons. | URI parameter | Description | |---|---| -| `productID` | Required. The product ID of the product whose draft must be published. | +| `$productID` | Required. The product ID of the product whose draft must be published. | @@ -242,14 +253,14 @@ Publishes the current draft of the product to Microsoft Edge Add-ons. The following request headers are required: -##### [v2](#tab/v2) +##### [v1.1](#tab/v1-1) -* `Authorization: ApiKey ` -* `X-ClientID: ` +* `Authorization: ApiKey $ApiKey` +* `X-ClientID: $ClientID` ##### [v1](#tab/v1) -* `Authorization: Bearer ` +* `Authorization: Bearer $TOKEN` --- @@ -269,6 +280,8 @@ The following request headers are required: * Location: `{operationID}` +The response includes an operation ID, to send to other endpoints. + ###### Status codes @@ -283,22 +296,24 @@ This API has the following expected status codes. See also: -* [Publishing the submission](./using-addons-api.md#publishing-the-submission) in _Using the Microsoft Edge Add-ons REST API_. +* [Publishing the submission](./using-addons-api.md#publishing-the-submission) in _Using the REST API for updating Microsoft Edge Add-ons_. ## Check the publishing status + Checks the status of the publish operation. +See also [Checking the publishing status](using-addons-api.md#checking-the-publishing-status) in _Using the REST API for updating Microsoft Edge Add-ons_. + #### Request | Method | Request URI | |---|---| -| `GET` | `/products/{productID}/submissions/operations/{operationID}` | - +| `GET` | `/products/$productID/submissions/operations/$operationID` | @@ -312,14 +327,14 @@ None. The following request headers are required: -##### [v2](#tab/v2) +##### [v1.1](#tab/v1-1) -* `Authorization: ApiKey ` -* `X-ClientID: ` +* `Authorization: ApiKey $ApiKey` +* `X-ClientID: $ClientID` ##### [v1](#tab/v1) -* `Authorization: Bearer ` +* `Authorization: Bearer $TOKEN` --- @@ -335,6 +350,8 @@ None. A `GET` operation status API can be called in the following scenarios. In all valid scenarios, `200 OK` is returned, with different status messages. +The response includes an operation ID, to send to other endpoints. + ###### Response when a new product is published @@ -498,7 +515,7 @@ This API has the following expected status codes. See also: -* [Checking the publishing status](using-addons-api.md#checking-the-publishing-status) in _Using the Microsoft Edge Add-ons REST API_. +* [Checking the publishing status](using-addons-api.md#checking-the-publishing-status) in _Using the REST API for updating Microsoft Edge Add-ons_. @@ -514,7 +531,7 @@ Here's a list of common error codes and possible reasons. For a full list, see |---|---|---| | 400 Bad Request | The server didn't understand the request. | There's no package (zip file) in the body. Or, `Content-Type` header is missing or its value is incorrect. | | 401 Unauthorized | The request page needs an authorization. | The auth token is missing, expired, or not valid. | -| 404 Not Found | The server can't find the requested page. | The specified `productID` or `operationID` doesn't have a valid GUID, isn't valid, or doesn't belong to the developer who is making the request. | +| 404 Not Found | The server can't find the requested page. | The specified product ID or operation ID doesn't have a valid GUID, isn't valid, or doesn't belong to the developer who is making the request. | | 408 Request Timeout | The request took longer than the server was prepared to wait. | There was a timeout while uploading a package. | | 429 Too many requests | Too many requests were sent by the user. | Too many requests were sent and they got throttled. | @@ -531,6 +548,6 @@ Here's a list of common error codes and possible reasons. For a full list, see ## See also -* [Using the Microsoft Edge Add-ons REST API](./using-addons-api.md) +* [Using the REST API for updating Microsoft Edge Add-ons](./using-addons-api.md) * [Partner Center REST error codes](/partner-center/develop/error-codes) in Partner Center docs. -* [List of HTTP status codes](https://wikipedia.org/wiki/List_of_HTTP_status_codes) at Wikipedia. \ No newline at end of file +* [List of HTTP status codes](https://wikipedia.org/wiki/List_of_HTTP_status_codes) at Wikipedia. diff --git a/microsoft-edge/extensions-chromium/publish/api/using-addons-api-images/partner-center-1-1-enable.png b/microsoft-edge/extensions-chromium/publish/api/using-addons-api-images/partner-center-1-1-enable.png new file mode 100644 index 0000000000..f798dab897 Binary files /dev/null and b/microsoft-edge/extensions-chromium/publish/api/using-addons-api-images/partner-center-1-1-enable.png differ diff --git a/microsoft-edge/extensions-chromium/publish/api/using-addons-api-images/partner-center-1-1-ui.png b/microsoft-edge/extensions-chromium/publish/api/using-addons-api-images/partner-center-1-1-ui.png new file mode 100644 index 0000000000..e3930f778f Binary files /dev/null and b/microsoft-edge/extensions-chromium/publish/api/using-addons-api-images/partner-center-1-1-ui.png differ diff --git a/microsoft-edge/extensions-chromium/publish/api/using-addons-api.md b/microsoft-edge/extensions-chromium/publish/api/using-addons-api.md index ef0df7827a..00412b957c 100644 --- a/microsoft-edge/extensions-chromium/publish/api/using-addons-api.md +++ b/microsoft-edge/extensions-chromium/publish/api/using-addons-api.md @@ -1,30 +1,100 @@ --- -title: Using the Microsoft Edge Add-ons REST API +title: Using the REST API for updating Microsoft Edge Add-ons description: REST endpoints to automate publishing updates to add-ons that are submitted to the Microsoft Edge Add-ons store. author: MSEdgeTeam ms.author: msedgedevrel ms.topic: conceptual ms.service: microsoft-edge ms.subservice: extensions -ms.date: 03/12/2024 +ms.date: 09/19/2024 --- -# Using the Microsoft Edge Add-ons REST API +# Using the REST API for updating Microsoft Edge Add-ons -To publish an extension, you first use Partner Center, and then optionally you can use this REST API to update the extension. +Use this REST API to programmatically update an extension that's been published at the Microsoft Edge Add-ons website, to automate the process of uploading and publishing new versions of your extension. You can integrate these REST API endpoints directly into your continuous integration/continuous delivery (CI/CD) pipeline, to publish extension package updates to the Microsoft Edge Add-ons website without using Partner Center. -The Microsoft Edge Add-ons API provides a set of REST endpoints for programmatically publishing updates to add-ons submitted to the Microsoft Edge Add-ons store. You can use these REST endpoints to automate the process of uploading and publishing new versions of your add-ons to the Microsoft Edge Add-ons store. You use the **Publish API** page at Partner Center to enable the API and begin working with these API endpoints. +This REST API exposes endpoints for: +* [Uploading a package to update an existing submission](#uploading-a-package-to-update-an-existing-submission) +* [Checking the status of a package upload](#checking-the-status-of-a-package-upload) +* [Publishing the submission](#publishing-the-submission) +* [Checking the publishing status](#checking-the-publishing-status) - +These endpoints are described below. + +To use this REST API, you first use the **Publish API** page at Partner Center to enable the API. + +To initially publish a new extension, you use Partner Center. To update the extension, either manually use Partner Center, or programmatically use this REST API. To submit suggestions and feedback, enter an [Issue about the Add-ons API](https://github.com/MicrosoftDocs/edge-developer/issues/new?title=[Add-ons%20API]). + +#### Versions of the Update REST API + +As of September 6, 2024, both v1.1 and v1 of this Update REST API are supported. Later, v1 will no longer be supported. The date for ending v1 support is not yet finalized. + + + +###### Components used + +##### [v1.1](#tab/v1-1) + +v1.1 uses an API key. The UI in Partner Center provides API keys. + +The REST endpoints use specific request headers for v1.1. + +##### [v1](#tab/v1) + +v1 requires sending an access token to the API endpoint. You obtain the access token by sending a POST message to an access token URL. The Partner Center UI shows the access token URL. + +v1 uses Secrets. The UI in Partner Center provides Secrets. + +The REST endpoints use specific request headers for v1. + +--- + + + +#### Overview of using the Update REST API + +To use the Update REST API: + +##### [v1.1](#tab/v1-1) + +1. At your [Partner Center developer dashboard](https://partner.microsoft.com/dashboard/microsoftedge/public/login?ref=dd), opt-in to the UI that uses API keys, by clicking the **Enable** button next to **enable the new experience**. Details are in [Enable the Update REST API at Partner Center](#enable-the-update-rest-api-at-partner-center), below. + +1. Write down the Client ID and the new API key. + +1. Update your authentication workflows, if needed. + +1. Re-configure any continuous integration/continuous delivery (CI/CD) pipelines that might be impacted by any changes to the API key, such as if you're changing from using v1 of this REST API, which uses access tokens instead of API keys. + +1. When you use a REST endpoint, specify the ClientID and API key in the request header. Details are in [Using the API endpoints](#using-the-api-endpoints), below. + +##### [v1](#tab/v1) + +1. At your [Partner Center developer dashboard](https://partner.microsoft.com/dashboard/microsoftedge/public/login?ref=dd), get an access token from the access token URL. Details are in [Enable the Update REST API at Partner Center](#enable-the-update-rest-api-at-partner-center), below. + +1. Generate your ClientID and secrets. You can generate multiple client secrets for your Client ID. For example, you can create multiple secrets for multiple projects. + +1. Update your authentication workflows, if needed. + +1. Re-configure any existing continuous integration/continuous delivery (CI/CD) pipelines that might be impacted by the changes to the access token URL. + +1. Retrieve the access token. Details are in [Retrieve the access token](#retrieve-the-access-token), below. + +1. When you use a REST endpoint, specify the access token in the request header. Details are in [Using the API endpoints](#using-the-api-endpoints), below. + +--- + +Details are below. + + ## Terminology | Term | Definition | |---|---| -| _operation_ | A REST operation such as GET or PUT. | +| _operation_ | A REST operation such as GET or POST. | | _operation ID_ | The ID of a REST operation. | | _package_ | The `.zip` package that contains the files for your Microsoft Edge Add-on. | | _product_ | A Microsoft Edge extension or theme. Also referred to as a Microsoft Edge _Add-on_. | @@ -33,32 +103,83 @@ To submit suggestions and feedback, enter an [Issue about the Add-ons API](https -## Before you begin +## Enable the Update REST API at Partner Center + +To use the Microsoft Edge Add-ons API, you first need to enable the API for your project in the Microsoft Partner Center by creating API credentials, as follows: + +##### [v1.1](#tab/v1-1) + +1. At your [Partner Center developer dashboard](https://partner.microsoft.com/dashboard/microsoftedge/public/login?ref=dd), sign in to the account that you used to publish an add-on. + +1. Under the **Microsoft Edge** program, select **Publish API**. + +1. Next to the message "enable the new experience", click the **Enable** button: + + ![Enable API at Partner Center, for v1.1](./using-addons-api-images/partner-center-1-1-enable.png) + + The above screenshot shows the v1 UI, including **Access token URL** and **Secrets**, prior to clicking the **Enable** button to switch to the v1.1 UI. -To use the Microsoft Edge Add-ons API, you need to enable the API for your project in the Microsoft Partner Center, by creating API credentials. Use the following steps to create API credentials. +1. On the **Publish API** page, click the **Create API credentials** button. This step may take a few minutes to finish. + + The Client ID and a new API key are automatically generated: + + ![The 'Publish API' page at Partner Center after clicking 'Create API credentials', now showing Client ID and API key](./using-addons-api-images/partner-center-1-1-ui.png) + + The API credentials have now been created; you've enabled or renewed the API. The following items are now displayed on the **Publish API** page: + * Your **Client ID**. + * **API Keys**. + * The **Expiry** date for each API key. + +1. Write down the following: + * The **Client ID**. + * The new **API key**. + + You'll use the Client ID and API key in the request header when using a REST endpoint. -1. Visit Microsoft Partner Center and sign in to the account that you used to publish an add-on. +##### [v1](#tab/v1) + +1. At your [Partner Center developer dashboard](https://partner.microsoft.com/dashboard/microsoftedge/public/login?ref=dd), sign in to the account that you used to publish an add-on. 1. Under the **Microsoft Edge** program, select **Publish API**. 1. On the **Publish API** page, click the **Create API credentials** button. This step may take a few minutes to finish. - The API credentials have now been created; you've enabled or renewed the API. The **Client ID**, **Client secret**, **Expiry date**, and **Access token URL** are now displayed on the Publish APIs page: + The API credentials have now been created; you've enabled or renewed the API. The following items are now displayed on the **Publish API** page: + * Your **Client ID**. + * Your **Access token URL**. + * **Client secrets**. + * The **Expiry date** of each Secret. ![The 'Publish API' page at Partner Center after clicking 'Create API credentials', now showing Client ID, Client Secret, and Auth Token URL](./using-addons-api-images/create-api-credentials-button.png) -1. Write down the **Client ID**, **Client secret** and the **Access token URL**. You'll use these values in the next step, to get an access token. +1. Write down the following: + * The **Client ID**. + * The **Access token URL**. + * The new **Client secret**. + + You'll use the Client ID, access token URL, and client secret to get an access token, per [Retrieve the access token](#retrieve-the-access-token), below . You'll then use the access token in the request header when using a REST endpoint. > [!IMPORTANT] -> Be sure to write down the client secret now, because it's only visible immediately after enabling or renewing the API (that is, after creating API credentials). This particular secret isn't shown again. +> Be sure to write down the client secret now, because it's only visible immediately after enabling or renewing the API (that is, after creating API credentials). This particular secret isn't shown again. -You can generate multiple client secrets for your client ID. For example, you can create multiple secrets for multiple projects. +You can generate multiple client secrets for your Client ID. For example, you can create multiple secrets for multiple projects. - -## Retrieving the access token + +#### Retrieve the access token + +You obtain an access token by sending a POST message to an access token URL. The Partner Center UI shows the access token URL, which is the same as in this article. You then include the access token in the header when using an API endpoint, such as the endpoint for [Uploading a package to update an existing submission](#uploading-a-package-to-update-an-existing-submission), below. -After you've acquired the necessary authorization for your application, get access tokens for APIs. To get a token using the client credentials grant, send a POST request to the Access token URL (the OAuth token). The tenant information is available in the URL that you received in the **Before you begin** steps above. + + +Description of the endpoint to use to get an access token: ```REST Endpoint: https://login.microsoftonline.com/5c9eedce-81bc-42f3-8823-48ba6258b391/oauth2/v2.0/token @@ -67,8 +188,11 @@ Header Parameters: Content-Type: application/x-www-form-urlencoded ``` - -#### Sample request + +###### Sample request + + +For example, to get an access token, send a POST request to the access token URL, by entering a `curl` command at the command prompt, as follows: ```console > curl \ @@ -83,8 +207,10 @@ https://login.microsoftonline.com/5c9eedce-81bc-42f3-8823-48ba6258b391/oauth2/v2 ``` - -#### Sample response + +###### Sample response + +An access token is returned to you, such as: ```json { @@ -94,24 +220,65 @@ https://login.microsoftonline.com/5c9eedce-81bc-42f3-8823-48ba6258b391/oauth2/v2 } ``` -For more information, see [Get a token](/azure/active-directory/develop/v2-oauth2-client-creds-grant-flow#get-a-token) in _Microsoft identity platform and the OAuth 2.0 client credentials flow_. +For more information, see [Get a token](/entra/identity-platform/v2-oauth2-client-creds-grant-flow#get-a-token) in _Microsoft identity platform and the OAuth 2.0 client credentials flow_. + +--- ## Using the API endpoints -After you have an access token, you can use the Microsoft Edge Add-ons API. This API exposes endpoints for getting a list of products, updating products, and publishing products. +The Update REST API exposes endpoints for: +* [Uploading a package to update an existing submission](#uploading-a-package-to-update-an-existing-submission) +* [Checking the status of a package upload](#checking-the-status-of-a-package-upload) +* [Publishing the submission](#publishing-the-submission) +* [Checking the publishing status](#checking-the-publishing-status) + +These endpoints are introduced below. + +To use this Microsoft Edge Add-ons Update REST API, you must have the following, per above: + +##### [v1.1](#tab/v1-1) -> [!NOTE] -> There's no API for creating a new product or updating a product's metadata. For example, the description. You must complete these tasks manually in Microsoft Partner Center. +An API key and a Client ID. -The API is available at the endpoint `https://api.addons.microsoftedge.microsoft.com` +##### [v1](#tab/v1) + +An access token. + +--- + +The API is available at the endpoint root `https://api.addons.microsoftedge.microsoft.com`. + +There aren't REST API endpoints for: +* Creating a new product. +* Updating a product's metadata, such as the description. + +To create a new product or update a product's metadata, you must use Microsoft Partner Center. ## Uploading a package to update an existing submission + + +Use this REST API endpoint to update the package for an add-on. This API uploads a package to update an existing draft submission of an add-on product. + +See also [Upload a package to update an existing submission](./addons-api-reference.md#upload-a-package-to-update-an-existing-submission) in _REST API Reference for updating Microsoft Edge Add-ons_. + + + +#### Endpoint description + +##### [v1.1](#tab/v1-1) -Use this API to update the package for an add-on. This API uploads a package to update an existing draft submission of an add-on product. +```REST +Endpoint: /v1/products/$productID/submissions/draft/package +Type: POST +Header Parameters: Authorization: ApiKey $ApiKey; X-ClientID: $ClientID; Content-Type: application/zip +Body content: the package file to upload +``` + +##### [v1](#tab/v1) ```REST Endpoint: /v1/products/$productID/submissions/draft/package @@ -120,11 +287,13 @@ Header Parameters: Authorization: Bearer $TOKEN; Content-Type: application/zip Body content: the package file to upload ``` +--- + `$productID` is the product ID of the Microsoft Edge Add-on that you want to update. -Follow these steps to get the product ID: +To get the product ID: -1. Sign in to Microsoft Partner Center. +1. Sign in to your [Partner Center developer dashboard](https://partner.microsoft.com/dashboard/microsoftedge/public/login?ref=dd). 1. Go to **Microsoft Edge** > **Overview**. @@ -137,6 +306,24 @@ Follow these steps to get the product ID: #### Sample request + + +To upload a package to update an existing submission, use the `curl` command at a command prompt as follows: + +##### [v1.1](#tab/v1-1) + +```console +> curl \ +-H "Authorization: ApiKey $ApiKey" \ +-H "X-ClientID: $ClientID" \ +-H "Content-Type: application/zip" \ +-X POST \ +-T $FILE_NAME \ +-v \ +https://api.addons.microsoftedge.microsoft.com/v1/products/$productID/submissions/draft/package +``` + +##### [v1](#tab/v1) ```console > curl \ @@ -148,27 +335,66 @@ Follow these steps to get the product ID: https://api.addons.microsoftedge.microsoft.com/v1/products/$productID/submissions/draft/package ``` +--- + If the request succeeds and the update process begins, you receive a `202 Accepted` response status code with a `Location` header. This location header contains the `operationID` that's required for checking the status of the update operation. See also: -* [Upload a package to update an existing submission](./addons-api-reference.md#upload-a-package-to-update-an-existing-submission) in _REST API Reference for Microsoft Edge Add-ons_. +* [Upload a package to update an existing submission](./addons-api-reference.md#upload-a-package-to-update-an-existing-submission) in _REST API Reference for updating Microsoft Edge Add-ons_. ## Checking the status of a package upload + Use this API to check the status of package upload. +`$operationID` is the operation ID that's returned in the response header from [Uploading a package to update an existing submission](#uploading-a-package-to-update-an-existing-submission) or [Publishing the submission](#publishing-the-submission). + +See also [Check the publishing status](./addons-api-reference.md#check-the-publishing-status) in _REST API Reference for updating Microsoft Edge Add-ons_. + + + +#### Endpoint description + +##### [v1.1](#tab/v1-1) + +```REST +Endpoint: /v1/products/$productID/submissions/draft/package/operations/$operationID +Type: GET +Header Parameters: Authorization: ApiKey $ApiKey; X-ClientID: $ClientID +``` + +##### [v1](#tab/v1) + ```REST Endpoint: /v1/products/$productID/submissions/draft/package/operations/$operationID Type: GET Header Parameters: Authorization: Bearer $TOKEN ``` +--- + #### Sample request + + +To check the status of a package upload, use the `curl` command at the command prompt as follows: + +##### [v1.1](#tab/v1-1) + +```console +> curl \ +-H "Authorization: ApiKey $ApiKey" \ +-H "X-ClientID: $ClientID" \ +-X GET \ +-v \ +https://api.addons.microsoftedge.microsoft.com/v1/products/$productID/submissions/draft/package/operations/$operationID +``` + +##### [v1](#tab/v1) ```console > curl \ @@ -178,16 +404,35 @@ Header Parameters: Authorization: Bearer $TOKEN https://api.addons.microsoftedge.microsoft.com/v1/products/$productID/submissions/draft/package/operations/$operationID ``` +--- See also: -* [Check the status of a package upload](./addons-api-reference.md#check-the-status-of-a-package-upload) in _REST API Reference for Microsoft Edge Add-ons_. +* [Check the status of a package upload](./addons-api-reference.md#check-the-status-of-a-package-upload) in _REST API Reference for updating Microsoft Edge Add-ons_. ## Publishing the submission + Use this API to publish the current draft of the product to the Microsoft Edge Add-ons website. +See also [Publish the product draft submission](./addons-api-reference.md#publish-the-product-draft-submission) in _REST API Reference for updating Microsoft Edge Add-ons_. + + + +#### Endpoint description + +##### [v1.1](#tab/v1-1) + +```REST +Endpoint: /v1/products/$productID/submissions +Type: POST +Header Parameters: Authorization: ApiKey $ApiKey; X-ClientID: $ClientID +Body content: Notes for certification, in JSON format +``` + +##### [v1](#tab/v1) + ```REST Endpoint: /v1/products/$productID/submissions Type: POST @@ -195,9 +440,28 @@ Header Parameters: Authorization: Bearer $TOKEN Body content: Notes for certification, in JSON format ``` +--- + #### Sample request + + +To publish the submission, use the `curl` command at the command prompt as follows: + +##### [v1.1](#tab/v1-1) + +```console +> curl \ +-H "Authorization: ApiKey $ApiKey" \ +-H "X-ClientID: $ClientID" \ +-X POST \ +-d '{ "notes"="text value" }' \ +-v \ +https://api.addons.microsoftedge.microsoft.com/v1/products/$productID/submissions +``` + +##### [v1](#tab/v1) ```console > curl \ @@ -208,44 +472,89 @@ Body content: Notes for certification, in JSON format https://api.addons.microsoftedge.microsoft.com/v1/products/$productID/submissions ``` +--- + If the request succeeds and the publishing process begins, you'll receive a `202 Accepted` response status code with a `Location` header. This location header contains the `operationID` that's required for checking the status of the publish operation. See also: -* [Publish the product draft submission](./addons-api-reference.md#publish-the-product-draft-submission) in _REST API Reference for Microsoft Edge Add-ons_. +* [Publish the product draft submission](./addons-api-reference.md#publish-the-product-draft-submission) in _REST API Reference for updating Microsoft Edge Add-ons_. ## Checking the publishing status + Use this API to check the status of the publish operation. +`$operationID` is the operation ID that's returned in the response header from [Uploading a package to update an existing submission](#uploading-a-package-to-update-an-existing-submission) or [Publishing the submission](#publishing-the-submission). + +See also [Check the publishing status](./addons-api-reference.md#check-the-publishing-status) in _REST API Reference for updating Microsoft Edge Add-ons_. + + + +#### Endpoint description + +##### [v1.1](#tab/v1-1) + +```REST +Endpoint: /v1/products/$productID/submissions/operations/$operationID +Type: GET +Header Parameters: Authorization: ApiKey $ApiKey; X-ClientID: $ClientID +``` + +##### [v1](#tab/v1) + ```REST Endpoint: /v1/products/$productID/submissions/operations/$operationID Type: GET Header Parameters: Authorization: Bearer $TOKEN ``` +--- + #### Sample request + + +To check the publishing status, use the `curl` command at the command prompt as follows: + +##### [v1.1](#tab/v1-1) + +```console +> curl \ +-H "Authorization: ApiKey $ApiKey" \ +-H "X-ClientID: $ClientID" \ +-X GET \ +-v \ +https://api.addons.microsoftedge.microsoft.com/v1/products/$productID/submissions/operations/$operationID +``` + +##### [v1](#tab/v1) ```console > curl \ -H "Authorization: Bearer $TOKEN" \ -X GET \ -v \ -https://api.addons.microsoftedge.microsoft.com/v1/products/$productID/submissions/operations/{operationID} +https://api.addons.microsoftedge.microsoft.com/v1/products/$productID/submissions/operations/$operationID ``` +--- + See also: -* [Check the publishing status](./addons-api-reference.md#check-the-publishing-status) in _REST API Reference for Microsoft Edge Add-ons_. +* [Check the publishing status](./addons-api-reference.md#check-the-publishing-status) in _REST API Reference for updating Microsoft Edge Add-ons_. ## See also + - -* [REST API Reference for Microsoft Edge Add-ons](./addons-api-reference.md) -* [Issues](https://github.com/MicrosoftDocs/edge-developer/issues/) in `edge-developer` Docs repo. -* [Microsoft identity platform and the OAuth 2.0 client credentials flow](/azure/active-directory/develop/v2-oauth2-client-creds-grant-flow) +* [REST API Reference for updating Microsoft Edge Add-ons](./addons-api-reference.md) - REST API for updating an extension. * [Supported APIs for Microsoft Edge extensions](../../developer-guide/api-support.md) - JavaScript APIs for developing an extension. + +GitHub: +* [Issues](https://github.com/MicrosoftDocs/edge-developer/issues/) in `edge-developer` repo for Microsoft Edge Developer docs. + +Microsoft identity platform: +* [Microsoft identity platform and the OAuth 2.0 client credentials flow](/entra/identity-platform/v2-oauth2-client-creds-grant-flow) diff --git a/microsoft-edge/extensions-chromium/publish/auto-update.md b/microsoft-edge/extensions-chromium/publish/auto-update.md index 1965579775..4f7552601b 100644 --- a/microsoft-edge/extensions-chromium/publish/auto-update.md +++ b/microsoft-edge/extensions-chromium/publish/auto-update.md @@ -1,6 +1,6 @@ --- -title: Set an extension to automatically update -description: Set up a Microsoft Edge extension (add-on) to automatically update in users' instances of Microsoft Edge. +title: Set an externally installed extension to automatically update +description: Set up an externally installed extension (an extension that doesn't use Partner Center or Microsoft Edge Add-ons website) to automatically update in users' instances of Microsoft Edge. author: MSEdgeTeam ms.author: msedgedevrel ms.topic: conceptual @@ -21,9 +21,14 @@ ms.date: 11/04/2022 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> -# Set an extension to automatically update +# Set an externally installed extension to automatically update - + + +This article applies to externally installed extensions; that is, extensions that are distributed via an approach other than Partner Center; see [Alternative ways to distribute an extension](..\developer-guide\alternate-distribution-options.md). This article doesn't apply to extensions that you publish using the [Partner Center developer dashboard](https://partner.microsoft.com/dashboard/microsoftedge/public/login?ref=dd); for that distribution approach, see [Update a Microsoft Edge extension](../publish/update-extension.md). Every few hours, Microsoft Edge checks whether each installed extension or app has an update URL. To specify an update URL for your extension, use the `update_url` field in the manifest. The `update_url` field in the manifest points to a location that can complete an update check. For each `update_url`, this URL sends requests for updated manifest XML files. If the update manifest XML file lists a newer extension or app version, Microsoft Edge downloads and installs the newer version. The same process works for manual updates, where the new `.crx` file must be signed with the same private key as the currently installed version. @@ -42,8 +47,6 @@ The Microsoft Edge Add-ons website hosts your extensions, and you can update you > [!IMPORTANT] > Be careful when you update extensions that have a dependency on native binaries. -This article doesn't apply to extensions that you publish using the [Partner Center](https://partner.microsoft.com/dashboard/microsoftedge/public/login?ref=dd) dashboard. You can use the dashboard to release updated versions to your users and to the Microsoft Edge Add-ons website. For more information, see [Update a Microsoft Edge extension](../publish/update-extension.md). - ## Update URL @@ -165,6 +168,18 @@ For example, in the following code, the `prodversionmin` attribute value of `3.0 ``` + +## See also + + +* [Alternative ways to distribute an extension](..\developer-guide\alternate-distribution-options.md) +* [Update a Microsoft Edge extension](../publish/update-extension.md) +* [Partner Center developer dashboard](https://partner.microsoft.com/dashboard/microsoftedge/public/login?ref=dd) + +Chrome Dev docs: +* [Autoupdating](https://developer.chrome.com/docs/apps/autoupdate) + + > [!NOTE] > Portions of this page are modifications based on work created and [shared by Google](https://developers.google.com/terms/site-policies) and used according to terms described in the [Creative Commons Attribution 4.0 International License](https://creativecommons.org/licenses/by/4.0). diff --git a/microsoft-edge/extensions-chromium/publish/create-dev-account.md b/microsoft-edge/extensions-chromium/publish/create-dev-account.md index 17fbf483e6..2e18e5d3cd 100644 --- a/microsoft-edge/extensions-chromium/publish/create-dev-account.md +++ b/microsoft-edge/extensions-chromium/publish/create-dev-account.md @@ -31,12 +31,11 @@ To add and manage users in the Microsoft Edge program to manage extensions, you -## Before you begin +## Create a Microsoft account To submit an extension to the Microsoft Edge Add-ons website, you must be registered as a developer with the Microsoft Edge program. You register for the Microsoft Edge program at [Partner Center](https://partner.microsoft.com/dashboard/microsoftedge/public/login?ref=dd). To register for the Microsoft Edge program, you need a Microsoft account (MSA). If you don't have a Microsoft account (MSA), create one. One way to create a Microsoft account (MSA) is to use your existing GitHub account to sign in to Partner Center. Follow the prompts displayed in the dialogs to automatically create a Microsoft account (MSA). -> [!NOTE] -> There is no registration fee for submitting extensions to the Microsoft Edge program. +There is no registration fee for submitting extensions to the Microsoft Edge program. If you don't have a Partner Center account, or you have a Partner Center account but its Primary Owner isn't a Microsoft account (MSA), you must either: * Use an existing Microsoft account (MSA) to register with the Microsoft Edge program. diff --git a/microsoft-edge/extensions-chromium/publish/publish-extension.md b/microsoft-edge/extensions-chromium/publish/publish-extension.md index 661f606158..5e18159d64 100644 --- a/microsoft-edge/extensions-chromium/publish/publish-extension.md +++ b/microsoft-edge/extensions-chromium/publish/publish-extension.md @@ -16,19 +16,39 @@ Publish your extension to the [Microsoft Edge Add-ons website](https://microsoft -## Before you begin +## Prepare an extension to be submitted via Partner Center -You should have a working prototype of your extension ready. For information on how to create an extension, see [Extension concepts and architecture](../getting-started/index.md). +To prepare an extension to be submitted via Partner Center, to be published at the Microsoft Edge Add-ons site, do the following steps. + + + +#### Have a working prototype of your extension + +Before publishing your extension, you should have a working prototype of your extension ready. For information on how to create an extension, see [Extension concepts and architecture](../getting-started/index.md). + + + +#### Create a developer account To publish your extension to the Microsoft Edge Add-ons website, use your active developer account on [Partner Center](https://partner.microsoft.com/dashboard/microsoftedge/public/login?ref=dd). If you don't have a developer account, create a new developer account. To open a new developer account and register to the Microsoft Edge Add-ons program, see [Developer registration](create-dev-account.md). + + +#### Create a zip file for your extension package + Create a zip file for your extension package. Your extension package must include the following files: * The extension manifest that specifies details such as the name of the extension, short description, permissions, and default language. * Images and other files required by your extension. -The following fields in the manifest are automatically included in your store listing details. The fields are read-only on the **Store listings** webpage. The store listings webpage is described later in this article. Before uploading your package to Partner Center, make sure that the field values match your preferred display on the store details webpage, as follows. + + +#### Review manifest field values + +The following fields in the manifest are automatically included in your store listing details. The fields are read-only on the **Store listings** webpage. The store listings webpage is described later in this article. + +Before uploading your package to Partner Center, make sure that the field values match your preferred display on the store details webpage, as follows. In the manifest file, review these fields: @@ -46,21 +66,18 @@ In the manifest file, review these fields: ## Submit your extension to the Microsoft Edge Add-ons website +After doing the above steps, the extension is ready to be submitted via Partner Center, to be published at the Microsoft Edge Add-ons site. + To submit your extension to Partner Center: 1. Start a new submission. - 1. Upload the extension package. - 1. Provide Availability details. - 1. Select Properties for your extension. - 1. Add Store listing details for your extension. - 1. Complete your submission. -The rest of the article provides details about these steps. +Details are below. diff --git a/microsoft-edge/extensions-chromium/publish/update-extension.md b/microsoft-edge/extensions-chromium/publish/update-extension.md index 1426065d84..8c3a74f04e 100644 --- a/microsoft-edge/extensions-chromium/publish/update-extension.md +++ b/microsoft-edge/extensions-chromium/publish/update-extension.md @@ -12,13 +12,16 @@ ms.date: 11/04/2022 You can update a submitted extension or remove a published extension listing from the Microsoft Edge Add-ons website at any time. +See also: +* [Set an externally installed extension to automatically update](./auto-update.md) - for extensions that don't use Partner Center and the Microsoft Edge Add-ons website. + ## Update an existing extension in the Microsoft Edge Add-ons website -To update your extension on the store, follow these steps: +To update your extension that's at the store (the Microsoft Edge Add-ons website): -1. Go to your [developer dashboard](https://partner.microsoft.com/dashboard/microsoftedge/public/login?ref=dd) and select the extension that you want to update. +1. Go to your [Partner Center developer dashboard](https://partner.microsoft.com/dashboard/microsoftedge/public/login?ref=dd) and select the extension that you want to update. 1. Update either the extension package or the metadata of the extension. If you update the extension package, make sure that you increase the version number in the manifest file. @@ -26,19 +29,23 @@ To update your extension on the store, follow these steps: 1. After the `Status` column displays `In the store`, your extension update is available on the Microsoft Edge Add-ons website. -After your extension has been created initially, you can update your extension by [Using the Microsoft Edge Add-ons REST API](./api/using-addons-api.md). +After your extension has been created initially, you can update your extension by [Using the REST API for updating Microsoft Edge Add-ons](./api/using-addons-api.md). ## Update your extension during the certification step -While your extension is in the certification stage, and before it gets published to the Microsoft Edge Add-ons website, you can update it. If your extension fails the certification process, you might also need to update your extension. +While your extension is in the certification stage, and before it gets published to the Microsoft Edge Add-ons website, you can update your submitted extension. You might also need to update your extension if your extension fails the certification process. + + +To check the status of your extension: + +* Go to your [Partner Center developer dashboard](https://partner.microsoft.com/dashboard/microsoftedge/public/login?ref=dd) and select an extension. -To check the status of your extension, go to the dashboard associated with your listing on [Partner Center](https://partner.microsoft.com/dashboard/microsoftedge/public/login?ref=dd). -To edit your submission, follow these steps: +To edit (update) your submitted extension: -1. Go to your [developer dashboard](https://partner.microsoft.com/dashboard/microsoftedge/public/login?ref=dd) and select the extension that you want to update. The information you filled out during the previous submission is displayed. +1. Go to your [Partner Center developer dashboard](https://partner.microsoft.com/dashboard/microsoftedge/public/login?ref=dd) and select an extension. The information that you filled out during the previous submission is displayed. 1. To open the **Extension overview** section, use the left navigation bar. To cancel the current submission, select **Cancel submission**. @@ -54,9 +61,9 @@ To edit your submission, follow these steps: After your extension failed the certification process, you need to update your extension and resubmit your extension, incorporating the feedback you got. -To edit your extension, follow these steps: +To edit your extension: -1. Navigate to your [developer dashboard](https://partner.microsoft.com/dashboard/microsoftedge/public/login?ref=dd) and select the extension that failed the certification process. +1. Go to your [Partner Center developer dashboard](https://partner.microsoft.com/dashboard/microsoftedge/public/login?ref=dd) and select the extension that failed the certification process. 1. Update either the extension package or the metadata, incorporating the feedback received from the certification process. If you update the extension package, make sure that you increase the version in the manifest file. @@ -66,12 +73,21 @@ To edit your extension, follow these steps: ## Remove an extension from the Microsoft Edge Add-ons website -To remove an extension, follow these steps: +To remove an extension: -1. Go to your [developer dashboard](https://partner.microsoft.com/dashboard/microsoftedge/public/login?ref=dd). From the Dashboard page, select the listing to remove. +1. Go to your [Partner Center developer dashboard](https://partner.microsoft.com/dashboard/microsoftedge/public/login?ref=dd). From the Dashboard page, select the listing to remove. 1. Select **Extension Overview** on your listing. 1. Select **Unpublish** to remove the listing from the Microsoft Edge Add-ons website. The extension is now removed from the Microsoft Edge Add-ons website. Users who already installed your extension can continue to use it, but the extension isn't available to new users. + + + +## See also + + +* [Set an externally installed extension to automatically update](./auto-update.md) - for extensions that don't use Partner Center and the Microsoft Edge Add-ons website. +* [Using the REST API for updating Microsoft Edge Add-ons](./api/using-addons-api.md) +* [Partner Center developer dashboard](https://partner.microsoft.com/dashboard/microsoftedge/public/login?ref=dd) diff --git a/microsoft-edge/extensions-chromium/whats-new/released-features.md b/microsoft-edge/extensions-chromium/whats-new/released-features.md index 1fbed32df3..83503d3156 100644 --- a/microsoft-edge/extensions-chromium/whats-new/released-features.md +++ b/microsoft-edge/extensions-chromium/whats-new/released-features.md @@ -40,12 +40,14 @@ To share your feedback and comments about this feature, see [GitHub discussion t -## Publish and update extensions using the Microsoft Edge Add-ons API +## Publish updates of extensions using the Microsoft Edge Add-ons API -You can integrate APIs directly into your Continuous Integration / Continuous Delivery (CI/CD) pipeline. You can also publish extension package updates to the Microsoft Edge Add-ons website without using Partner Center. For more information, see [Using the Microsoft Edge Add-ons REST API](../publish/api/using-addons-api.md). +You can integrate REST API endpoints directly into your continuous integration/continuous delivery (CI/CD) pipeline, to publish extension package updates to the Microsoft Edge Add-ons website without using Partner Center. For more information, see [Using the REST API for updating Microsoft Edge Add-ons](../publish/api/using-addons-api.md). *Released March 2022* +Update September 2024: v1.1 of this REST API provides increased security. + ## Addition of breadcrumbs to Microsoft Partner Center diff --git a/microsoft-edge/toc.yml b/microsoft-edge/toc.yml index 81a7b6f256..4eb00be9d1 100644 --- a/microsoft-edge/toc.yml +++ b/microsoft-edge/toc.yml @@ -1112,13 +1112,13 @@ - name: REST API for updating an extension items: - - name: Using the Microsoft Edge Add-ons REST API + - name: Using the REST API for updating Microsoft Edge Add-ons href: extensions-chromium/publish/api/using-addons-api.md - - name: REST API Reference for Microsoft Edge Add-ons + - name: REST API Reference for updating Microsoft Edge Add-ons href: extensions-chromium/publish/api/addons-api-reference.md - - name: Set an extension to automatically update + - name: Set an externally installed extension to automatically update href: extensions-chromium/publish/auto-update.md # -------------------------------------