Exporting menus
From the dashboard menu list (/admin/menus), two export actions are available:
| Action | Output |
|---|---|
| Export all menus | Downloads a single JSON file containing every menu and all its items. |
| Export one menu | Downloads a JSON file for a single menu (filename: menu-{code}-export.json). |
JSON format
Item trees and all per-locale translations are preserved in the exported file.Importing menus
Import is available in two places:- Modal — click Import on the menu list page; the form opens in a modal overlay.
- Standalone page — navigate to
/admin/menus/importdirectly.
Import strategies
When importing, choose how to handle menus that already exist (matched by code + context):| Strategy | Behaviour |
|---|---|
| Skip existing | Menus with the same code and context are left untouched. Only new menus are created. |
| Replace | Items of existing menus are replaced entirely with the imported items. The menu entity itself is updated. |
Open the import form
On the menu list page, click Import to open the modal, or go to
/admin/menus/import.Error handling
If the JSON is malformed, missing required fields (e.g.code), or exceeds the upload size limit, the import is rejected and the error details are shown as flash messages. No partial imports are committed on validation failure.
Rate limiting
The import and export actions can be rate-limited to reduce abuse risk. Configure the limit innowo_dashboard_menu.yaml:
false or omit it entirely to disable rate limiting.