Technical Information
HPE Juniper Networking Mist to NetBox Object Mapping
Object Type Mapping Table
| Mist Object | NetBox Object | Key Attributes |
|---|---|---|
Site | Site | name, slug, time_zone, custom_fields.mist_id, custom_fields.mist_org_id |
| (unassigned devices) | Site | name "Unassigned Mist Inventory" |
Inventory device (standalone) | Device | name (or serial), serial, status, role, device_type, platform, site, custom_fields.mist_mac, custom_fields.mist_device_status, custom_fields.mist_device_id |
Inventory device (VC member) | Device | vc_name+fpc_idx → name, member serial, device_type, platform, virtual_chassis, vc_position, custom_fields.mist_mac, custom_fields.mist_vc_mac, custom_fields.mist_vc_role, custom_fields.mist_device_status, custom_fields.mist_device_id |
vc_mac (switch stack) | VirtualChassis | name |
Device model | DeviceType | model, slug, custom_fields.mist_type |
Device type | DeviceRole | name, slug (e.g. "ap", "switch", "gateway") |
Device version | Platform | name "Junos {version}", manufacturer "Juniper" |
| (static) | Manufacturer | name "Juniper" |
| Org network template | VLANGroup | name "{site} VLANs", slug, scope_site |
| Template network VLAN | VLAN | name, vid, status "active", group |
WLAN | WirelessLAN | ssid, status, auth_type, auth_cipher, scope_site, custom_fields.mist_wlan_id, custom_fields.mist_ap_ids, custom_fields.mist_ap_scope, custom_fields.mist_wxtag_ids, custom_fields.mist_ap_mac_addresses_serving_this |
| Device stats interface | Interface | name, enabled, type, custom_fields.mist_interface_port_id |
| Interface IP from device stats | IPAddress | address (CIDR), status "active", assigned_object |
| Interface port MAC from stats | MACAddress | mac_address (uppercase) |
| (per-site, when IP conflict) | VRF | name "mist-site-{site.name}" |
Field Mapping Details
Device Status Mapping
| Mist Connection Status | NetBox Status |
|---|---|
Missing or invalid site_id (unassigned) | inventory |
true (connected) | active |
false (disconnected) | offline |
Wireless LAN Status Mapping
| Mist WLAN Status | NetBox Status |
|---|---|
true (enabled) | active |
false (disabled) | disabled |
Authentication Type Mapping
| Mist Auth Type | NetBox Auth Type |
|---|---|
open | open |
psk | wpa-personal |
psk-tkip | wpa-personal |
psk-wpa2-tkip | wpa-personal |
eap | wpa-enterprise |
eap192 | wpa-enterprise |
wep | wep |
| Any other value | Unknown |
Authentication Cipher Mapping
| Mist Auth Type | Mist Pairwise Ciphers | NetBox Auth Cipher |
|---|---|---|
eap192 | Any | aes |
psk-tkip | psk-wpa2-tkip | Any | tkip |
wep | Any | auto |
open | Any | None |
psk | eap | Contains "tkip" | tkip |
psk | eap | Contains "ccmp" or "wpa3" | aes |
psk | eap | No recognized cipher | None |
| Unknown auth_type | — | Integration raises |
Cipher uses Mist auth.pairwise list (e.g. wpa2-ccmp, wpa2-tkip, wpa3).
Interface Type Heuristics
| Interface Name Pattern | NetBox Type |
|---|---|
ge-* | 1000base-t |
vme* or VLAN* | virtual |
| Other | other |
Site Assignment Logic
- Allowed sites: From policy scope
sites(list of site names).["*"]or empty means all sites. - Valid site: Device
site_idpresent in allowed site IDs → assign to that NetBox site. - Unassigned fallback: Missing or invalid
site_id(e.g.00000000-0000-0000-0000-000000000000) or site not in allowed list → assign to "Unassigned Mist Inventory" site. - Inventory filtering: Only devices in allowed sites (or unassigned) are ingested; same for
devices/searchwhen building device–WLAN mapping.
WLAN Scope and Custom Fields
WLANs are always scoped to a site (scope_site). Mist scope is stored in custom fields:
| Mist apply_to | Custom Field Usage |
|---|---|
site | Standard site scope |
wxtags | mist_wxtag_ids (JSON array) |
aps | mist_ap_ids (JSON array) |
None | Site scope |
Virtual Chassis Detection
- Condition:
type == "switch"andvc_macstarts with0200(Juniper VC MAC prefix). - VirtualChassis: One per unique
vc_mac; name from devicename. - Member devices: Built from
getSiteDeviceStatsmodule_stat; member name\{vc_name\}-member-\{fpc_idx\}; master byvc_role='master'or lowestfpc_idx.
Device–WLAN Matching
- Source:
devices/search(type=ap, duration=1h) gives per-devicewlans[](id, ssid). - Uniqueness: WLANs keyed by
(wlan_id, site_id, ssid); only WLANs present inlistSiteWlansDerivedfor that site are used. - Device custom field:
mist_wlans_served(object, multiple) references the WirelessLAN entities the device serves. - WLAN custom field:
mist_ap_mac_addresses_serving_this(JSON array of AP MAC addresses) populated after matching.
Custom Fields
| Custom Field | Object Type | Purpose |
|---|---|---|
mist_id | Site | Mist site ID |
mist_org_id | Site | Mist organization ID |
mist_type | Device Type | Mist device type (ap, switch, etc.) |
mist_mac | Device | Mist device MAC |
mist_vc_mac | Device | Virtual Chassis MAC (VC members only) |
mist_vc_role | Device | VC role: master, backup, or empty (VC members only) |
mist_device_id | Device | Mist device ID |
mist_device_status | Device | Original Mist status: connected, disconnected, or unassigned |
mist_wlans_served | Device | JSON array of WLANs served by this device, each with ssid and wlan_id |
mist_wlan_id | Wireless LAN | Mist WLAN ID |
mist_ap_ids | Wireless LAN | JSON array of AP IDs |
mist_ap_scope | Wireless LAN | apply_to (site, wxtags, aps) |
mist_wxtag_ids | Wireless LAN | JSON array of WxTag IDs when apply_to=wxtags |
mist_ap_mac_addresses_serving_this | Wireless LAN | JSON array of AP MAC addresses serving this WLAN |
mist_interface_port_id | Interface | Mist port ID for the interface |
Policy Configuration
-
BOOTSTRAP (optional): When true, only static entities (custom fields, manufacturer) are created; no Mist API calls.
-
MIST_APITOKEN (required when not BOOTSTRAP): Mist API token.
-
MIST_ORG_ID (required when not BOOTSTRAP): Mist organization ID.
-
MIST_ENVIRONMENT (optional): Mist cloud environment. Defaults to
"Global 01"(api.mist.com). Each Mist organization is hosted in a specific cloud environment — if not specified,Global 01is used. See Mist API Environments to identify which environment your organization uses.Environment API Host Global 01 api.mist.com Global 02 api.gc1.mist.com Global 03 api.ac2.mist.com Global 04 api.gc2.mist.com Global 05 api.gc4.mist.com EMEA 01 api.eu.mist.com EMEA 02 api.gc3.mist.com EMEA 03 api.ac6.mist.com EMEA 04 api.gc6.mist.com APAC 01 api.ac5.mist.com APAC 03 api.gc7.mist.com -
Scope – sites (optional): List of site names to include; default
["*"]for all sites. Invalid or missing names cause validation to fail after fetching sites.
Tags and Metadata
All created entities are tagged with:
junipermistdiscovered
Optional unique tag: mist-\{org_id\} when not in bootstrap mode.
API and Behavior Notes
- APIs used:
listOrgSites,getOrgInventory,listOrgNetworkTemplates,getSiteDeviceStats(withfields="ports"),searchOrgDevices(type=ap),listSiteWlansDerived. - Rate limiting: Custom retry (e.g.
MistCustomRetry) for 429, 5xx withRetry-Aftersupport. - Device naming: Standalone:
nameorserialor "Unnamed". VC members:\{vc_name\}-member-\{fpc_idx\}. - WLAN uniqueness: Deduplicated by (wlan_id, site_id, ssid). WLANs with no serving devices are still created from site-derived WLANs.
- Interfaces: Only devices with a valid
site_id(and in allowed sites) have stats fetched; unassigned devices do not get interfaces or IPs from this integration.