--- title: Edit source extensions slug: '2001' canonical_url: https://docs.coveo.com/en/2001/ collection: index-content source_format: adoc --- # Edit source extensions An [indexing pipeline extension (IPE)](https://docs.coveo.com/en/206/) is an optional [indexing pipeline](https://docs.coveo.com/en/184/) pre-conversion or post-conversion stage consisting of a Python script that you can apply to one or more [sources](https://docs.coveo.com/en/246/) to customize the way source [items](https://docs.coveo.com/en/210/) are indexed in your [Coveo organization](https://docs.coveo.com/en/185/). See [Indexing pipeline extension overview](https://docs.coveo.com/en/1556/) for details. Members with the [required privileges](https://docs.coveo.com/en/3151/) can [add or modify existing indexing pipeline extensions](https://docs.coveo.com/en/1645/) to an organization. As a member of one of these groups, you can then [apply an extension to a source](https://docs.coveo.com/en/1936/) using this **Add extensions** panel. > **Note** > > You must have the privilege to edit extensions (that is, the **Edit** access level on the **Extensions** domain) to copy an extension script. > See [Extensions domain](https://docs.coveo.com/en/1707#extensions-domain) for details. An extension can be **Common**, applying to all item types of a source, or **Specific**, applying only to specified item types, in which case you must first define the see [item types](https://docs.coveo.com/en/1965/) available in your source. **Example** You have a YouTube source that includes videos and playlists. If your indexing pipeline extension applies to both video and playlist items, it's a common extension. However, if it applies to playlists only, it's a specific extension. ## "Common" tab The **Common** tab displays extensions that apply to all source item types. ### Access the "Common" tab On the [**Sources**](https://platform.cloud.coveo.com/admin/#/orgid/content/sources/) ([platform-ca](https://platform-ca.cloud.coveo.com/admin/#/orgid/content/sources/) | [platform-eu](https://platform-eu.cloud.coveo.com/admin/#/orgid/content/sources/) | [platform-au](https://platform-au.cloud.coveo.com/admin/#/orgid/content/sources/)) page, click the source for which you want to manage mappings, and then click **More** > **Add extensions** in the Action bar. ### "Common" tab reference The information you can review in this tab is: * **Name** column: extension name * **Stage** column: stage at which the extension applies, that is, pre-conversion or post-conversion * **Version** column: If you specified an extension **versionId** to apply on the **JSON** tab, this version ID is displayed. See [Edit or restore an old version of an extension](https://docs.coveo.com/en/1645#edit-or-restore-an-old-version-of-an-extension) for details. ## "Specific" tab The **Specific** tab displays extensions that apply only to certain source item types. ### Access the "Specific" tab . On the [**Sources**](https://platform.cloud.coveo.com/admin/#/orgid/content/sources/) ([platform-ca](https://platform-ca.cloud.coveo.com/admin/#/orgid/content/sources/) | [platform-eu](https://platform-eu.cloud.coveo.com/admin/#/orgid/content/sources/) | [platform-au](https://platform-au.cloud.coveo.com/admin/#/orgid/content/sources/)) page, click the source for which you want to manage mappings, and then click **More** > **Add extensions** in the Action bar. . In the **Add extensions** panel, select the **Specific** tab. ### "Specific" tab reference The information you can review in this tab is: * Left pane ** **Item type** column: [item type](https://docs.coveo.com/en/1965/) names. Click an item to display the associated item-type-specific extensions in the right pane. * Right pane ** **Name** column: extension name ** **Stage** column : stage at which the extension applies, that is, pre-conversion or post-conversion ** **Version** column: If you specified an extension **versionId** to apply on the **JSON** tab, this version ID is displayed. See [Edit or restore an old version of an extension](https://docs.coveo.com/en/1645#edit-or-restore-an-old-version-of-an-extension) for details. ## [[JSON]]"JSON" tab The **JSON** tab shows the source indexing pipeline extension properties in JSON format. Any modification made in the **Common** and **Specific** tabs automatically updates the **JSON** accordingly, and vice versa. You can review this raw source configuration for troubleshooting purposes, but you can also [modify the configuration](https://docs.coveo.com/en/1943/) to take advantage of more advanced features not available through the user interface. The content displayed on the **JSON** tab is similar to that in the **Pre-conversion extensions** and **Post-conversion extensions** tabs of the [**Edit configuration with JSON**](https://docs.coveo.com/en/1685/) panel. Since the **JSON** tab is so similar to the **Edit configuration with JSON** panel, the following instructions apply to both: * [Edit the JSON configuration](https://docs.coveo.com/en/1685#edit-the-json-configuration) * [Search for a keyword](https://docs.coveo.com/en/1685#search-for-a-keyword) * [Add notes about your changes](https://docs.coveo.com/en/1685#add-notes-about-your-changes) ### Access the "JSON" tab . On the [**Sources**](https://platform.cloud.coveo.com/admin/#/orgid/content/sources/) ([platform-ca](https://platform-ca.cloud.coveo.com/admin/#/orgid/content/sources/) | [platform-eu](https://platform-eu.cloud.coveo.com/admin/#/orgid/content/sources/) | [platform-au](https://platform-au.cloud.coveo.com/admin/#/orgid/content/sources/)) page, click the source for which you want to manage mappings, and then click **More** > **Add extensions** in the Action bar. . In the **Add extensions** panel, select the **JSON** tab. ## [[Manage]]Manage source extensions The following sections describe individual source extension management actions, but they are often used in a specific sequence. See [Apply an extension to a source](https://docs.coveo.com/en/1936/) for details. ### Add an item type Adding an item type in the panel allows you to apply an extension only to items of this specific type, rather than to all [source item types](https://docs.coveo.com/en/1965/). . In the **Add extensions** panel, click the **Add** dropdown menu, and then select **Item type**. . In the **Add an Item Type** dialog, enter the **Item type name**, and then click **Add Type**. . Back in the **Add extensions** panel, do any one of the following: ** If you're done adding and editing items or extensions, click **Save and Rebuild**. See [Apply an extension](#Apply), [Edit an extension](#Edit), and [Move an extension](#Move) for more details. ** To add or edit other items or extensions, click **Save**. > **Notes** > > * Clicking **Save** defers the source [rebuild](https://docs.coveo.com/en/2712/) operation, which is necessary to apply changes. > Since a source with several millions of items may take weeks to rebuild, choosing the **Save** option when possible prevents stressing the Coveo and system server resources. > It's therefore recommended to click **Save** when you plan on making additional changes in the short term, and then to click **Save and Rebuild** once you're ready to update your source. > > * Item types with no associated extensions are deleted when you save your changes. . If you clicked **Save**, back on the [**Sources**](https://platform.cloud.coveo.com/admin/#/orgid/content/sources/) ([platform-ca](https://platform-ca.cloud.coveo.com/admin/#/orgid/content/sources/) | [platform-eu](https://platform-eu.cloud.coveo.com/admin/#/orgid/content/sources/) | [platform-au](https://platform-au.cloud.coveo.com/admin/#/orgid/content/sources/)) page, under the source **Status** column, click **Launch rebuild** when you're ready or wait for the next scheduled source rebuild to make the changes effective. ### [[Apply]]Apply an extension The following procedure allows you to [apply an existing indexing pipeline extension](https://docs.coveo.com/en/1645/) to your source that was created in your organization before. . In the **Add extensions** panel, click the **Add** dropdown menu, and then select **Extension**. . In the **Apply an Existing Extension on Source Items** dialog: .. Under **Stage**, select **Pre-conversion** or **Post-conversion** to determine at which stage of the [indexing pipeline](https://docs.coveo.com/en/1893/) the extension should apply. .. Under **Action on Error**, select **Reject Document** to prevent the items from being indexed if there's an [error in the extension](https://docs.coveo.com/en/129/), or select **Skip Extension** if you want the items to be indexed regardless of an error. .. Under **Apply to**, click **All items (common)** or **Specific item types** to determine to which items the extension should apply. .. (If you selected **Specific item types**) Select the items types to which the extension should apply. You can also [add missing item types](#add-an-item-type). .. Under **Extension**, click the dropdown menu to select an existing extension to apply to your source. .. In the **Condition(s) to apply** box, optionally enter conditions to determine to which items the extension should apply and therefore optimize indexing pipeline performances. See [Indexing pipeline extension condition syntax reference](https://docs.coveo.com/en/64/) for extension condition syntax and examples. **Example** Enter `%[syssite] == "mycompanyblog.com" AND NOT %[author] == "John Smith"` to limit the extension application to `mycompanyblog.com`, and to exclude articles whose author is John Smith. .. Click **Apply extension**. . In the **Add extensions** panel, do any one of the following: ** If you're done applying and editing extensions, click **Save and Rebuild**. ** To apply or edit other extensions, click **Save**. > **Note** > > Clicking **Save** defers the source [rebuild](https://docs.coveo.com/en/2712/) operation, which is necessary to apply changes. > Since a source with several millions of items may take weeks to rebuild, choosing the **Save** option when possible prevents stressing the Coveo and system server resources. > It's therefore recommended to click **Save** when you plan on making additional changes in the short term, and then to click **Save and Rebuild** once you're ready to update your source. . If you clicked **Save**, back on the [**Sources**](https://platform.cloud.coveo.com/admin/#/orgid/content/sources/) ([platform-ca](https://platform-ca.cloud.coveo.com/admin/#/orgid/content/sources/) | [platform-eu](https://platform-eu.cloud.coveo.com/admin/#/orgid/content/sources/) | [platform-au](https://platform-au.cloud.coveo.com/admin/#/orgid/content/sources/)) page, under the source **Status** column, click **Launch rebuild** when you're ready or wait for the next scheduled source rebuild to make the changes effective. ### Edit an item type name . In the **Add extensions** panel, on the **Specific** tab, click the item type you want to modify, and then click **Edit** in the Action bar. See [Access the "Specific" tab](https://docs.coveo.com/en/2001#access-the-specific-tab) for details. . In the **Edit an Extension** dialog, edit the item type name, and then click **Save**. . Back in the **Add extensions** panel, do any one of the following: ** If you're done adding and editing items and extensions, click **Save and Rebuild**. ** To add or edit other items and extensions, click **Save**. > **Note** > > Clicking **Save** defers the source [rebuild](https://docs.coveo.com/en/2712/) operation, which is necessary to apply changes. > Since a source with several millions of items may take weeks to rebuild, choosing the **Save** option when possible prevents stressing the Coveo and system server resources. > It's therefore recommended to click **Save** when you plan on making additional changes in the short term, and then to click **Save and Rebuild** once you're ready to update your source. . If you clicked **Save**, back on the [**Sources**](https://platform.cloud.coveo.com/admin/#/orgid/content/sources/) ([platform-ca](https://platform-ca.cloud.coveo.com/admin/#/orgid/content/sources/) | [platform-eu](https://platform-eu.cloud.coveo.com/admin/#/orgid/content/sources/) | [platform-au](https://platform-au.cloud.coveo.com/admin/#/orgid/content/sources/)) page, under the source **Status** column, click **Launch rebuild** when you're ready or wait for the next scheduled source rebuild to make the changes effective. ### [[Edit]]Edit an extension . In the **Edit an Extension** panel, [access the "Common" tab](#access-the-common-tab) or the ["Specific" tab](#access-the-specific-tab). . In the **Common** or **Specific** tab, click the extension you want to modify, and then click **Edit** in the Action bar. . In the **Edit an Extension** dialog, edit the extension, and then click **Save**. . Back in the **Add extensions** panel, do any one of the following: ** If you're done applying and editing extensions, click **Save and Rebuild**. ** To apply or edit other extensions, click **Save**. > **Note** > > Clicking **Save** defers the source [rebuild](https://docs.coveo.com/en/2712/) operation, which is necessary to apply changes. > Since a source with several millions of items may take weeks to rebuild, choosing the **Save** option when possible prevents stressing the Coveo and system server resources. > It's therefore recommended to click **Save** when you plan on making additional changes in the short term, and then to click **Save and Rebuild** once you're ready to update your source. . If you clicked **Save**, back on the [**Sources**](https://platform.cloud.coveo.com/admin/#/orgid/content/sources/) ([platform-ca](https://platform-ca.cloud.coveo.com/admin/#/orgid/content/sources/) | [platform-eu](https://platform-eu.cloud.coveo.com/admin/#/orgid/content/sources/) | [platform-au](https://platform-au.cloud.coveo.com/admin/#/orgid/content/sources/)) page, under the source **Status** column, click **Launch rebuild** when you're ready or wait for the next scheduled source rebuild to make the changes effective. ### [[Move]]Move an extension . In the **Edit an Extension** panel, [access the "Common" tab](#access-the-common-tab) or the ["Specific" tab](#access-the-specific-tab). . In the **Common** or the **Specific** tab, drag extensions using the [move] icon to rearrange them in the desired execution order. This allows you to set up extensions based on the result of a previously executed extension. ### Rebuild source to take account of extension changes In the **Add extensions** panel, click **Save and Rebuild** to apply your changes.