Skip to content

Add support for custom menus for Custom Object Types (COTs) #610

Description

@christianbur

Plugin Version

0.6.0

Proposed functionality

Custom Object Types (COTs) should optionally support a menu property.

If no menu is configured, the COT behaves exactly as it does today and is displayed under Custom Objects.

If a menu is configured, all COTs with the same menu name should appear under their own top-level navigation entry in NetBox. The existing Groups functionality should continue to organize COTs within each menu.

The configured menu should also be used for displaying Object Links on object detail pages.

Currently, PR #482 groups all COT links into a single Custom Objects tab:
#482

Instead, Object Links should be grouped by their configured menu:

  • COTs without a menu continue to appear in the Custom Objects tab.
  • Each configured menu gets its own Object Links tab using the menu name.
  • If an object has links from COTs belonging to multiple menus, multiple tabs should be displayed—one for each menu.

This makes the configured menu the primary organizational element in both the navigation and the object detail view while remaining fully backward compatible.

Use case

As the number of Custom Object Types grows, the Custom Objects menu becomes increasingly difficult to navigate, especially when multiple independent projects or domains are implemented using COTs.

Examples include:

  • CMDB extensions
  • Asset Management
  • Firewall Management
  • Business Applications
  • Compliance
  • Documentation

Although Groups help organize COTs, they still appear under a single Custom Objects menu.

By introducing an optional menu property, independent domains can have their own dedicated navigation entry while preserving the existing grouping within each menu.

The same menu structure should also be reflected on object detail pages by grouping Object Links into tabs based on the configured menu instead of placing all links in a single Custom Objects tab.

External dependencies

None

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions