netbox-plugin-reloader


Namenetbox-plugin-reloader JSON
Version 4.4.0.1 PyPI version JSON
download
home_pagehttps://github.com/Kani999/netbox-plugin-reloader
SummaryDynamically reload NetBox plugins without server restart
upload_time2025-09-09 07:27:16
maintainerNone
docs_urlNone
authorJan Krupa
requires_python>=3.10
licenseApache 2
keywords netbox netbox-plugin
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # NetBox Plugin Reloader

A NetBox plugin that dynamically reloads plugins without requiring a server restart. This plugin ensures that NetBox properly registers all plugin models and form fields that might have been missed during the initial application startup.

## Features

- Dynamically registers plugin models that were missed during server startup
- Refreshes custom field form definitions to include newly registered models
- Refreshes tag form definitions to include newly registered models
- Helps solve integration issues between NetBox and other plugins
- No configuration required - works out of the box

## Compatibility Matrix

| NetBox Version | Plugin Version |
|----------------|---------------|
| 4.2.x          | 0.0.2         |
| 4.3.x          | 4.3.x         |
| 4.4.x          | 4.4.x         |


**Version Format**: X.X.Y where X.X = NetBox version (e.g., 4.3) and Y = plugin version increment

## Installation

The plugin is available as a Python package on PyPI and can be installed with pip:

```bash
pip install netbox-plugin-reloader
```

To enable the plugin, add it to the `PLUGINS` list in your `configuration.py`:

```python
PLUGINS = [
    'other_plugin',
    'another_plugin',
    'netbox_plugin_reloader',  # Always add netbox_plugin_reloader last!
]
```

After installing the plugin:

1. Restart NetBox:
   ```bash
   sudo systemctl restart netbox
   ```

2. Ensure that `netbox-plugin-reloader` is included in your `local_requirements.txt` if you're using the official NetBox installation method.

For more details, see the [NetBox Documentation](https://docs.netbox.dev/en/stable/plugins/).

## Important Note

**netbox_plugin_reloader must be the last item in your PLUGINS list!** This ensures that it can properly detect and register all models from other plugins that may have been missed during the initial startup process.

## How It Works

When NetBox starts, Plugin Reloader:

1. Scans all enabled plugins for models that aren't properly registered in NetBox's feature registry
2. Registers any missed models with NetBox's registration system
3. Refreshes custom field form definitions to ensure they include all registered models
4. Refreshes tag form definitions to ensure they include all registered models

This helps resolve issues where plugins might not fully integrate with NetBox due to load order problems without requiring a server restart. The reloader specifically updates custom field choices and tag choices to include newly registered plugin models.

## Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

## License

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

## Author

Jan Krupa <jan.krupa@cesnet.cz>

## Links
- Based on https://github.com/netbox-community/netbox/discussions/17836

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/Kani999/netbox-plugin-reloader",
    "name": "netbox-plugin-reloader",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": null,
    "keywords": "netbox, netbox-plugin",
    "author": "Jan Krupa",
    "author_email": null,
    "download_url": "https://files.pythonhosted.org/packages/9c/45/22119afba7058f2415c66fdcd206ed0ff1eb0a0469209487a999a4414409/netbox_plugin_reloader-4.4.0.1.tar.gz",
    "platform": null,
    "description": "# NetBox Plugin Reloader\n\nA NetBox plugin that dynamically reloads plugins without requiring a server restart. This plugin ensures that NetBox properly registers all plugin models and form fields that might have been missed during the initial application startup.\n\n## Features\n\n- Dynamically registers plugin models that were missed during server startup\n- Refreshes custom field form definitions to include newly registered models\n- Refreshes tag form definitions to include newly registered models\n- Helps solve integration issues between NetBox and other plugins\n- No configuration required - works out of the box\n\n## Compatibility Matrix\n\n| NetBox Version | Plugin Version |\n|----------------|---------------|\n| 4.2.x          | 0.0.2         |\n| 4.3.x          | 4.3.x         |\n| 4.4.x          | 4.4.x         |\n\n\n**Version Format**: X.X.Y where X.X = NetBox version (e.g., 4.3) and Y = plugin version increment\n\n## Installation\n\nThe plugin is available as a Python package on PyPI and can be installed with pip:\n\n```bash\npip install netbox-plugin-reloader\n```\n\nTo enable the plugin, add it to the `PLUGINS` list in your `configuration.py`:\n\n```python\nPLUGINS = [\n    'other_plugin',\n    'another_plugin',\n    'netbox_plugin_reloader',  # Always add netbox_plugin_reloader last!\n]\n```\n\nAfter installing the plugin:\n\n1. Restart NetBox:\n   ```bash\n   sudo systemctl restart netbox\n   ```\n\n2. Ensure that `netbox-plugin-reloader` is included in your `local_requirements.txt` if you're using the official NetBox installation method.\n\nFor more details, see the [NetBox Documentation](https://docs.netbox.dev/en/stable/plugins/).\n\n## Important Note\n\n**netbox_plugin_reloader must be the last item in your PLUGINS list!** This ensures that it can properly detect and register all models from other plugins that may have been missed during the initial startup process.\n\n## How It Works\n\nWhen NetBox starts, Plugin Reloader:\n\n1. Scans all enabled plugins for models that aren't properly registered in NetBox's feature registry\n2. Registers any missed models with NetBox's registration system\n3. Refreshes custom field form definitions to ensure they include all registered models\n4. Refreshes tag form definitions to ensure they include all registered models\n\nThis helps resolve issues where plugins might not fully integrate with NetBox due to load order problems without requiring a server restart. The reloader specifically updates custom field choices and tag choices to include newly registered plugin models.\n\n## Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request.\n\n## License\n\nThis project is licensed under the MIT License - see the LICENSE file for details.\n\n## Author\n\nJan Krupa <jan.krupa@cesnet.cz>\n\n## Links\n- Based on https://github.com/netbox-community/netbox/discussions/17836\n",
    "bugtrack_url": null,
    "license": "Apache 2",
    "summary": "Dynamically reload NetBox plugins without server restart",
    "version": "4.4.0.1",
    "project_urls": {
        "Homepage": "https://github.com/Kani999/netbox-plugin-reloader"
    },
    "split_keywords": [
        "netbox",
        " netbox-plugin"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "9c4522119afba7058f2415c66fdcd206ed0ff1eb0a0469209487a999a4414409",
                "md5": "428b8bbd11a2fa573b73ca8265ea7a3f",
                "sha256": "5d090a9a27e252554d351e3f449ee344a2dfc1c8ccd7ed7dee8c7645ded100cf"
            },
            "downloads": -1,
            "filename": "netbox_plugin_reloader-4.4.0.1.tar.gz",
            "has_sig": false,
            "md5_digest": "428b8bbd11a2fa573b73ca8265ea7a3f",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 4379,
            "upload_time": "2025-09-09T07:27:16",
            "upload_time_iso_8601": "2025-09-09T07:27:16.451139Z",
            "url": "https://files.pythonhosted.org/packages/9c/45/22119afba7058f2415c66fdcd206ed0ff1eb0a0469209487a999a4414409/netbox_plugin_reloader-4.4.0.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-09-09 07:27:16",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "Kani999",
    "github_project": "netbox-plugin-reloader",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "netbox-plugin-reloader"
}
        
Elapsed time: 2.77977s