Skip to content

FOUR-32196: Support custom dashboard and menus imports through DevLink#8903

Open
eiresendez wants to merge 7 commits into
developfrom
epic/FOUR-32196
Open

FOUR-32196: Support custom dashboard and menus imports through DevLink#8903
eiresendez wants to merge 7 commits into
developfrom
epic/FOUR-32196

Conversation

@eiresendez

@eiresendez eiresendez commented Jul 10, 2026

Copy link
Copy Markdown
Contributor

Issue & Reproduction Steps

DevLink bundle settings did not support granular Dashboard or Menu selection, linked bundles did not expose the installed selection for inspection, and settings payload processing handled only the first exported item in each group. In addition, package importers did not receive the destination user who initiated an installation or reinstall.

To reproduce:

  1. In instance A, create multiple Custom Dashboards and Menus.
  2. Create a local DevLink bundle and enable Dashboards or Menus.
  3. Observe that individual resources cannot be selected.
  4. Publish the bundle and install it from instance B.
  5. When multiple resources are selected, only the first settings payload may be installed or retained for reinstall.
  6. Open the linked bundle in instance B and observe that administrators cannot inspect which Dashboards or Menus are included in the installed version.
  7. Import a destination-owned package resource and observe that the importer cannot identify the administrator who initiated the operation.

Solution

  • Add an optional, backward-compatible importingUserId context to Import/Export Options and propagate it through installation and reinstall operations.
  • Add configuration buttons for Dashboards and Menus in editable local bundles.
  • Extend the existing settings modal to support selecting all resources, individual resources, or none, with All, Shared, and Not shared states.
  • Normalize available Dashboard and Menu options as ID/name pairs while preserving the existing settings contracts.
  • Store config: null for dynamic all-selection, explicit IDs for partial selection, and remove the setting when nothing is selected.
  • Flatten and import every exportable settings payload instead of processing only the first item in a group.
  • Save every selected payload in payloads.json.gz so reinstall restores all included resources.
  • Add a read-only Dashboard/Menu preview for linked bundles using UUID and name metadata from the installed snapshot rather than destination numeric IDs.
  • Add coverage for ordered option responses, partial/all/empty persistence, installed snapshot previews, unavailable previews, multiple selected Menu installation, payload persistence, and reinstall.

How to Test

Run the focused Core tests from the ProcessMaker Core checkout:

vendor/bin/phpunit --configuration phpunit.xml tests/Feature/ImportExport/OptionsTest.php tests/Model/BundleTest.php tests/Model/DevLinkTest.php tests/Feature/Api/DevLinkTest.php --no-coverage

Result: 21 tests and 80 assertions passed.

Run the focused frontend checks:

node_modules/.bin/eslint --no-fix resources/js/admin/devlink/components/BundleConfigurations.vue resources/js/admin/devlink/components/BundleSettingsModal.vue
npm run development

Manual DevLink validation:

  1. In instance A, create multiple Custom Dashboards and Menus.
  2. Open a local bundle and verify that only Dashboard and Menu cards expose the new configuration button.
  3. Save all, partial, and empty selections and confirm the card transitions between All, Shared, and Not shared.
  4. Publish and install the bundle from instance B.
  5. Confirm that every selected Dashboard and Menu is imported and excluded resources are not included.
  6. Open the linked bundle in instance B and verify the read-only preview reflects the installed snapshot.
  7. Reinstall with update and confirm all selected resources are restored without duplicates.

Related Tickets & Packages

ci:deploy
ci:package-dynamic-ui:epic/FOUR-32196
.

@cursor

cursor Bot commented Jul 10, 2026

Copy link
Copy Markdown

Bugbot is not enabled for this team, so this pull request was not reviewed.

Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs.

@vladyrichter

Copy link
Copy Markdown

QA server K8S was successfully deployed https://tenant-1.ci-992dbc27d4.engk8s.processmaker.net

@vladyrichter

Copy link
Copy Markdown

QA server K8S was successfully deployed https://ci-992dbc27d4.engk8s.processmaker.net

@vladyrichter

Copy link
Copy Markdown

QA server K8S was successfully deployed https://ci-992dbc27d4.engk8s.processmaker.net

@processmaker-sonarqube

Copy link
Copy Markdown

@eiresendez eiresendez changed the title FOUR-32196: Add importing user context to DevLink bundle imports FOUR-32196: Support custom dashboard and menus imports through DevLink Jul 13, 2026
@vladyrichter

Copy link
Copy Markdown

QA server K8S was successfully deployed https://ci-992dbc27d4.engk8s.processmaker.net

@vladyrichter

Copy link
Copy Markdown

QA server K8S was successfully deployed https://ci-992dbc27d4.engk8s.processmaker.net

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants