> Portal Navigation:
> 
> - Append `.md` to any URL under `https://dev.wix.com/docs/` to get its markdown version.
> - Pages are either content pages (article or reference text) or menu pages (a list of links to child pages).
> - To get a menu page, truncate any URL to a parent path and append `.md` (e.g. `https://dev.wix.com/docs/sdk.md`, `https://dev.wix.com/docs/sdk/core-modules.md`).
> - Top-level index of all portals: https://dev.wix.com/docs/llms.txt
> - Full concatenated docs: https://dev.wix.com/docs/llms-full.txt

## Resource: Dashboard Menu Plugin Extension Files and Code

## Article: Dashboard Menu Plugin Extension Files and Code

## Article Link: https://dev.wix.com/docs/build-apps/develop-your-app/develop-an-app-with-the-cli/supported-extensions/dashboard/dashboard-menu-plugin/dashboard-menu-plugin-extension-files-and-code.md

## Article Content:

# Dashboard Menu Plugin Extension Files and Code

When you generate a dashboard menu plugin extension, the CLI adds a `<your-plugin-name>.extension.ts` file to your project that contains the menu plugin builder configuration.

## Menu plugin builder

The `<your-plugin-name>.extension.ts` file contains the dashboard menu plugin builder configuration. You can edit its fields manually to modify its appearance or behavior. However, do not change the extension's `id` field, as this is auto-generated by Wix and must remain unique across all extensions.

| Field  | Type  | Description  |
|--------|-------|--------------|
| `id`     | String  | Extension's unique identifier. The ID is used to register the menu plugin in the [app dashboard](https://dev.wix.com) and must be unique across all extensions in the project. |
| `title`  | String  | Text of the menu item the extension adds. |
| `extends`  | String | Slot ID into which the extension plugs in. Find [the relevant dashboard slot](https://dev.wix.com/docs/build-apps/develop-your-app/extensions/dashboard-extensions/dashboard-plugins/supported-wix-app-dashboard-pages/about-dashboard-page-slots.md) for your app. |
| `iconKey`  | String | Icon that appears next to your extension's title. Select a normal-size [icon from the Wix Design System](https://www.wix-pages.com/wix-design-system-employees/?path=/story/foundations-icons--icons) and paste its name. |
| `action`  | Object  | Navigation configuration object that determines the action taken when the extension is clicked. |
| `action.navigateToPage`  | Object  | Page navigation configuration object. Contains the ID of the target dashboard page. |
| `action.navigateToPage.pageId`  | String | ID of the dashboard page to which site administrators are directed. |
| `action.openModal` | Object | Modal navigation configuration object. Contains the ID of the modal page to open. |
| `action.openModal.componentId` | String | ID of the modal to open. |

You can set the dashboard menu plugin `action` field to either navigate to a dashboard page or open a modal.

Here's an example `<your-plugin-name>.extension.ts` file:

```ts
export default extensions.dashboardMenuPlugin({
  id: '5c51a919-5364-4ae8-a9e0-2a5100833e04',
  title: 'my-dashboard-plugin',
  extends: 'f3ad314d-0704-48e5-86b5-81acaf43e036',
  iconKey: 'Sparkles',
  action: {
    navigateToPage: {
      pageId: '02d0a5c2-7568-4ce9-b9f1-a51c95fa16bc',
    }
  },
});
```