Broadleaf Microservices
  • v1.0.0-latest-prod

Broadleaf Admin Navigation Services

Overview

The Admin Navigation Service enables creation, management, and retrieval of well-defined hierarchical menu structures specifically for use in the Broadleaf Admin.

Usage

This service should be used to populate and retrieve the navigation menu for the Admin Panel:

Admin Menu

For this menu, the domain would logically look something like this:

Tenant Management (menu item)
Catalog (menu item)
|_Catalogs (menu item)
|_Categories (menu item)
|_Products (menu item)
|_Option Templates (menu item)
Pricing (menu item)
Content (menu item)
Commerce (menu item)

Once defined, the menu can be retrieved with its hierarchy for the current tenant context.

Configuration

The Admin Navigation Service does not have any configured Admin Metadata, and traditionally cannot be managed through the Admin portal itself. Menu Items are typically introduced and managed through the database, using SQL insert statements for initial configuration and Liquibase to perform adjustments and additions.

API endpoints are also available to manage Menu Item configuration. See the OpenAPI Reference for available operations.

Security

Although the Admin Navigation Service itself does not gate visibility of Menu Items based on their content, the Broadleaf Admin will handle the visibility of Menu Items based on existing routes and permissions.

Many Menu Items contain a URL to link a user to a particular location when the Menu Item is clicked. The URL must meet these requirements for that user to be able to see that Menu Item:

  1. The URL must match an existing route

  2. The user must have access to the scope associated with that route

See the Unified Admin Metadata documentation for more information on how routes are configured.

Admin Navigation Menu Client Integration Diagram

Sandboxing Configuration

At the time of this writing, there’s no sandboxable entities in this service. If a sandboxable entity is introduced in this service, the following configurations should be added:

spring:
  cloud:
    stream:
      bindings:
        persistenceOutput:
            triggeredJobEventInputPurgeSandbox:
              group: navigation-purge-sandbox
              destination: triggeredJobEvent
broadleaf:
   transitionrequest:
     enabled: true
   changesummary:
     notification:
       active: true
   tracking:
     sandbox:
       purge:
         enabled: true

See Sandboxing In Detail for more details.

Note
These configurations typically only affect the Granular Deployment model. For Min and Balanced deployements, these configurations are likely already added at the flexpackage-level configuration.