Skip to main content

Dynamic configuration files and images from NetBox.

Project description

Netbox Ninja Plugin

Development Status

A NetBox plugin for generating dynamic text files and images using Jinja2 templates.

Overview

Netbox Ninja Plugin enables dynamic content generation in NetBox through Jinja2 templates. It supports both text file generation and SVG image creation from draw.io XML templates, seamlessly integrating with NetBox's data model.

Note: This plugin is currently in beta. While it's functional, some features are still under development and the API may change in future releases.

Key Features

  • Dynamic text file generation using Jinja2 templates
  • Template-based SVG image generation from draw.io XML format
  • Direct integration with NetBox's data model
  • REST API endpoints for template management
  • Support for object-specific template rendering

Requirements

  • NetBox v4.2.7 or later
  • drawio-export-api Docker container (optional, required for image generation)

Quick Start

  1. Install the plugin:
pip install netbox-ninja-plugin
  1. Add to NetBox configuration:
PLUGINS = [
    'netbox_ninja_plugin',
]
  1. Configure the plugin (see CONFIGURATION.md for detailed options):
PLUGINS_CONFIG = {
    "netbox_ninja_plugin": {
        "target_models": {
            "dcim": ["device", "interface", "site", "region"],
            "ipam": ["prefix"],
        },
        "jinja_model_querysets": {
            "dcim": ["device", "interface", "site", "region"],
            "ipam": ["prefix"],
        },
        "drawio_export_api": {
            "url": "https://drawio-export-api:443/svg",
            "token": "your-token",
            "pem_file_path": "/path/to/drawio_export_api.pem",
            "verify_tls": True,
            "timeout": 60,
        },
    }
}

Usage

Template Creation

  1. Navigate to NetBox's Ninja Templates section
  2. Create a new template with:
    • Name: Template identifier
    • Output type: Text or Draw.io format
    • Object types: NetBox objects to associate with the template
    • Template code: Your Jinja2 template

Template Variables

  • Access NetBox objects using object queries, e.g. {{ sites.first() }} or {{ regions.get(slug='region1') }}
  • For object-specific templates, use {{ target_object }} to reference the current object

For detailed examples and use cases, see EXAMPLES.md.

Security Note

The plugin currently doesn't enforce object-level permissions in templates. Exercise caution when exposing data through templates, as users may access data beyond their normal permissions.

Documentation

  • Examples - Detailed usage examples and tutorials
  • Configuration - Detailed configuration options and examples

License

This project is licensed under the MIT License - see the LICENSE file for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

netbox_ninja_plugin-0.1.0.tar.gz (13.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

netbox_ninja_plugin-0.1.0-py3-none-any.whl (20.9 kB view details)

Uploaded Python 3

File details

Details for the file netbox_ninja_plugin-0.1.0.tar.gz.

File metadata

  • Download URL: netbox_ninja_plugin-0.1.0.tar.gz
  • Upload date:
  • Size: 13.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.11.12

File hashes

Hashes for netbox_ninja_plugin-0.1.0.tar.gz
Algorithm Hash digest
SHA256 29a74912aade8d3da2a96f2c3072197a9ab01c96b267606d575c879854440d0e
MD5 ff9d28e9fd98199f0c8c8b38b319cc5c
BLAKE2b-256 b6d40e41dbe47bb2901132758ff2705c66d15a4d5d1a55618291b202640116d8

See more details on using hashes here.

File details

Details for the file netbox_ninja_plugin-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for netbox_ninja_plugin-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 40e3df0404b6966d04757aee5d574030890f1e8d101b2e1481c680cd98055ba2
MD5 79fdd44f38a99ae7564045fae8c7ebaf
BLAKE2b-256 0ec81472640f8f9ecc0d566b3d19ef3c0d727b57ac38be1542c7d70616a5a7a4

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page