Skip to content

7.1.0

Compare
Choose a tag to compare
@Kani999 Kani999 released this 28 Feb 10:31
· 18 commits to main since this release
5171248

What's Changed

  • [Feature] Limit attachments to specific models by @Kani999 in #78

Breaking Changes: NetBox Attachments v7.1.0

Configuration System Addition

Summary

Version 7.1.0 introduces new configuration options that provide more granular control over which models should have attachment functionality enabled.

Changed: Plugin Settings Structure

Before (7.0.0)

PLUGINS_CONFIG = {
    'netbox_attachments': {
        'apps': ['dcim', 'ipam', 'circuits', 'tenancy', 'virtualization', 'wireless'],
        'display_default': "additional_tab",
        'display_setting': {
            'ipam.vlan': "left_page"
        }
    }
}

After (v7.1.0)

PLUGINS_CONFIG = {
    'netbox_attachments': {
        'applied_scope': 'app',  # New setting: 'app' or 'model'
        'scope_filter': ['dcim', 'ipam', 'circuits', 'tenancy', 'virtualization', 'wireless'],
        'display_default': "additional_tab",
        'create_add_button': True,  # New setting
        'display_setting': {
            'ipam.vlan': "left_page"
        }
    }
}

New Features and Functionality

The configuration system has been enhanced with two primary new settings:

  1. applied_scope: Determines how attachments are filtered/enabled across NetBox models

    • app: Enables attachments for all models within specified apps (similar to previous behavior)
    • model: Enables attachments only for specific models or all models within selected apps
  2. scope_filter: Replaces the previous apps setting with expanded functionality

    • When applied_scope="app": Works like the previous apps setting
    • When applied_scope="model": Can include:
      • Specific model identifiers (e.g., 'dcim.device')
      • App labels (e.g., 'tenancy') to include all models from that app
  3. create_add_button: Controls whether an "Add Attachment" button appears in parent views

    • Specific to the additional_tab display setting

Migration Guide

To migrate from the previous configuration to the new format:

  1. If you want to maintain your current behavior (attachments available for all models in specified apps):

    # Old configuration
    'apps': ['dcim', 'ipam', 'circuits']
    
    # New configuration
    'applied_scope': 'app',
    'scope_filter': ['dcim', 'ipam', 'circuits']
  2. If you want more granular control over which specific models have attachments:

    # New configuration with specific models
    'applied_scope': 'model',
    'scope_filter': [
        'dcim.device', 'ipam.prefix',  # Specific models
        'tenancy',  # All models from this app
    ]
  3. The new create_add_button setting defaults to True but can be set to False if you don't want the add button to appear.

Technical Impact

  • The configuration validation now includes checks for the new settings
  • The model filtering logic has been enhanced to support both app-level and model-level filtering
  • Documentation has been updated to reflect these new options
  • The default settings include backward-compatible values

Backwards Compatibility

This change is designed to be backward compatible when using the default settings. If your configuration specifies only apps, the plugin will automatically adapt to use applied_scope="app" and scope_filter instead of apps.

However, for optimal performance and clarity, it's recommended to update your configuration to explicitly use the new format.


Full Changelog: 7.0.1...7.1.0