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
  • Cloud Ready - Prepared for Atlassian Cloud (future release)
  • 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.0.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.0-py3-none-any.whl (18.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: netbox_atlassian-0.2.0.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.0.tar.gz
Algorithm Hash digest
SHA256 2cf62c18b57f883e24d88d6cbd86c9cd9f1b8b8de70f06f552c11c582b6f144b
MD5 ea0700681ea55043ac8e3ab09201cea8
BLAKE2b-256 7333fd629483dd33af3200d07f23378445d7752c1f91ac7a05b424f4fe560961

See more details on using hashes here.

Provenance

The following attestation bundles were made for netbox_atlassian-0.2.0.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.0-py3-none-any.whl.

File metadata

File hashes

Hashes for netbox_atlassian-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 363a6a863f4be5993704889393372ca18b8e2f15496abfea010163136050d78e
MD5 d6a9566754536c75b59bb2ccb26aadc9
BLAKE2b-256 c0bfa3c6836679e8e6a4e532e316966398835c1d8a8ff00a0966507186aabc9d

See more details on using hashes here.

Provenance

The following attestation bundles were made for netbox_atlassian-0.2.0-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