Skip to main content

NetBox plugin to display Jira issues and Confluence pages related to devices

Project description

NetBox Atlassian Plugin

NetBox Version Python Version License PyPI

Display Jira issues and Confluence pages related to devices in NetBox.

Features

  • Device Tab - Shows Jira issues and Confluence pages mentioning device attributes
  • VM Tab - Same functionality for Virtual Machines
  • Configurable Search Fields - Search by hostname, serial, asset tag, role, IP, etc.
  • OR Search Logic - Finds content matching any configured field
  • On-Premise Support - Works with Jira Server/Data Center and Confluence Server/Data Center (tested)
  • Cloud Ready - Prepared for Atlassian Cloud (not yet tested)
  • Legacy SSL Support - Works with older servers requiring legacy SSL renegotiation
  • PAT Authentication - Supports Personal Access Tokens for Confluence
  • Caching - Results cached to reduce API calls
  • Project/Space Filtering - Limit searches to specific Jira projects or Confluence spaces

Requirements

  • NetBox 4.0+
  • Python 3.10+
  • Access to Jira and/or Confluence REST APIs

Installation

pip install netbox-atlassian

Add to configuration.py:

PLUGINS = [
    "netbox_atlassian",
]

Configuration

PLUGINS_CONFIG = {
    "netbox_atlassian": {
        # Jira settings (on-prem)
        "jira_url": "https://jira.example.com",
        "jira_username": "api_user",
        "jira_password": "api_token_or_password",
        "jira_verify_ssl": True,
        "jira_projects": [],  # Empty = all projects

        # Confluence settings (on-prem)
        "confluence_url": "https://confluence.example.com",
        "confluence_token": "personal-access-token",  # PAT (preferred)
        # OR use username/password:
        # "confluence_username": "api_user",
        # "confluence_password": "api_password",
        "confluence_verify_ssl": True,
        "confluence_spaces": [],  # Empty = all spaces

        # Search configuration
        "search_fields": [
            {"name": "Hostname", "attribute": "name", "enabled": True},
            {"name": "Serial", "attribute": "serial", "enabled": True},
            {"name": "Asset Tag", "attribute": "asset_tag", "enabled": False},
            {"name": "Role", "attribute": "role.name", "enabled": False},
            {"name": "Primary IP", "attribute": "primary_ip4.address", "enabled": False},
        ],

        # Results limits
        "jira_max_results": 10,
        "confluence_max_results": 10,

        # General
        "timeout": 30,
        "cache_timeout": 300,
        "device_types": [],  # Filter by manufacturer (empty = all)
        "enable_legacy_ssl": False,  # Enable for older servers
    }
}

Search Fields

The search_fields configuration defines which device attributes are searched. Searches use OR logic - content matching any enabled field will be returned.

Field Attribute Path Description
Hostname name Device name
Serial serial Serial number
Asset Tag asset_tag Asset tag
Role role.name Device role name
Primary IP primary_ip4.address Primary IPv4 address
Site site.name Site name
Tenant tenant.name Tenant name

Custom Fields

You can search custom fields using dot notation:

{"name": "CMDB ID", "attribute": "custom_field_data.cmdb_id", "enabled": True}

Screenshots

Device Tab

Shows Jira issues and Confluence pages in a split view:

  • Left: Jira issues with key, summary, status, and type
  • Right: Confluence pages with title, space, and breadcrumb

Settings Page

View current configuration and test connections to Jira/Confluence.

API Endpoints

The plugin adds these endpoints:

Endpoint Method Description
/plugins/atlassian/settings/ GET View settings
/plugins/atlassian/test-jira/ POST Test Jira connection
/plugins/atlassian/test-confluence/ POST Test Confluence connection

Troubleshooting

Connection Errors

  1. Verify URLs are correct and accessible from NetBox server
  2. Check username/password or API token
  3. For on-prem, ensure verify_ssl matches your certificate setup
  4. Check firewall rules allow outbound HTTPS

SSL Renegotiation Errors

If you see "unsafe legacy renegotiation disabled" errors, enable legacy SSL:

"enable_legacy_ssl": True,

This is required for some older Confluence/Jira servers.

No Results

  1. Verify search fields are enabled in configuration
  2. Check that Jira/Confluence content contains the device attributes
  3. Review project/space filters if configured
  4. Check API user has read permissions

Slow Performance

  1. Increase cache_timeout to reduce API calls
  2. Reduce max_results values
  3. Use project/space filters to limit search scope

Development

git clone https://github.com/sieteunoseis/netbox-atlassian.git
cd netbox-atlassian
pip install -e ".[dev]"

# Run linting
black netbox_atlassian/
isort netbox_atlassian/
flake8 netbox_atlassian/

Changelog

See CHANGELOG.md for release history.

License

Apache 2.0

Author

sieteunoseis

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_atlassian-0.2.1.tar.gz (16.1 kB view details)

Uploaded Source

Built Distribution

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

netbox_atlassian-0.2.1-py3-none-any.whl (18.0 kB view details)

Uploaded Python 3

File details

Details for the file netbox_atlassian-0.2.1.tar.gz.

File metadata

  • Download URL: netbox_atlassian-0.2.1.tar.gz
  • Upload date:
  • Size: 16.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for netbox_atlassian-0.2.1.tar.gz
Algorithm Hash digest
SHA256 3585bcec264803b2ca79c477b202d776f7fc131e1f23c5ed0a798b03642bbdab
MD5 d0703ec3ddcec5140d8091f4e3523fde
BLAKE2b-256 175004feb785eb7cae5292ca02eae22190d54bb090c4ee06c28818c455b7a043

See more details on using hashes here.

Provenance

The following attestation bundles were made for netbox_atlassian-0.2.1.tar.gz:

Publisher: release.yml on sieteunoseis/netbox-atlassian

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file netbox_atlassian-0.2.1-py3-none-any.whl.

File metadata

File hashes

Hashes for netbox_atlassian-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 40a19ebbddc8d5165a036814aaf8ec2472239db8fbf42a8a430d0c03cbb45243
MD5 4fae1a297f90ab279abe3b2b80f416f0
BLAKE2b-256 3bce4bf0f2e97ca0c318a04a11cc2d368793ce2b129d92d8c0f8249cceac0b6b

See more details on using hashes here.

Provenance

The following attestation bundles were made for netbox_atlassian-0.2.1-py3-none-any.whl:

Publisher: release.yml on sieteunoseis/netbox-atlassian

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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