NetBox plugin for application landscape mapping, KPIs, facility comparison, cascade impact simulation, and sector setup bundles
Project description
netbox-it-landscape
NetBox plugin for application landscape cartography, a native integration of the it-landscape project features: business, application and flow views — plus KPI dashboards, facility comparison and a setup wizard.
Why a plugin?
The original it-landscape project runs next to NetBox (API reads + app:XXX
tags). This plugin moves the cartography inside NetBox:
| it-landscape concept | In the plugin |
|---|---|
| Facility | NetBox Site (native) |
| Business domain | BusinessDomain model (attached to the site) |
| Process | BusinessProcess model |
| Application (criticality, interfaces…) | Application model — unique in the referential, attached to N processes |
multiEtablissement flag |
Derived: an application linked to processes of several sites is multi-site |
| Trigram (JSON join key) | Removed — replaced by real relations (FK / M2M) |
| Application flow (protocol, message, EAI…) | ApplicationFlow model (with facility FK) |
Servers linked by app:XXX tag |
Direct M2M relations to VM / Device |
Native integration benefits: NetBox changelog and journal on every object, per-object permissions, global search, REST API + filters, custom fields, tags, and contextual panels injected on Site / VM / Device pages.
Features
- Business view (
/plugins/it-landscape/metier/): facilities → colored domains → processes → application cards with criticality and active interfaces. Detailed mode and condensed, print-friendly landscape mode. - Application view (
/plugins/it-landscape/applicatif/): referential applications with their servers (VMs/devices), IPs and roles. - Flow view (
/plugins/it-landscape/cartographie-flux/): filterable table (facility, interface, protocol, EAI) + source → target SVG diagram colored by interface type. - KPI summary (
/plugins/it-landscape/synthese/): key counters, attention points (critical apps without server/monitoring…), EAI dependency, most connected applications, top vendors. - Facility comparison (
/plugins/it-landscape/comparaison/): similarity matrix (Jaccard), already-mutualized applications, convergence opportunities (same process, different applications), facility-specific applications. - Cascade impact simulator (
/plugins/it-landscape/cascade/simulateur/): build an incident scenario from one or more failed components (application, flow, VM, device, hosting provider) with a severity each; the impact is propagated through application flows and reported as impacted applications and processes grouped by site, blocked flows, causes and recommended actions. - Authentication mapping (indicator PROC-09A): each application records
the authentication modes it exposes (local, local IdP delegation,
Pro Santé Connect, HospiConnect banner, none), an optional primary mode, a
"mapping maintained" flag and a maintenance/IdP note — the cartography
required by the digital health security indicator PROC-09A
(HospiConnect / HOP'EN 2). Editable in the UI and the REST API, filterable
and CSV-exportable. The KPI summary derives a 0→4 maturity level per
facility (
maturity.proc09a_level) with an attention point on undocumented applications. - Setup wizard (
/plugins/it-landscape/initialisation/): ready-to-use modeling bundles — Hospital IS (SIH) (admissions, EHR, pharmacy, imaging… with HL7/DICOM flows through an EAI) and Manufacturing (ERP, MES, SCADA, WMS… with OPC-UA/EDI flows through an ESB) — domain/process structure + sample applications, VLANs, VMs and flows, in one click. - Multilingual: English interface with a full French translation (follows the NetBox user language preference).
- Full CRUD: domains, processes, applications, flows (forms, filters, bulk delete, changelog, journal).
- REST API:
/api/plugins/it-landscape/…(4 endpoints, filters included). - NetBox global search: applications, flows, domains, processes indexed.
- Contextual panels: applications shown on VM / Device pages, cartography summary on the Site page.
- it-landscape data import:
import_it_landscapemanagement command.
Screenshots
KPI summary
Condensed business landscape
Application view
Flow view
Facility comparison
Installation
pip install netbox-it-landscape # or pip install -e /path/to/the/repo
In configuration.py (or /etc/netbox/config/plugins.py with netbox-docker):
PLUGINS = ["netbox_it_landscape"]
Then:
python manage.py migrate
Development with the it-landscape Docker stack
The docker-compose.override.yml file provided in the it-landscape repository
mounts this plugin into the NetBox container, installs it in editable mode and
enables it. From the it-landscape repository:
docker compose --profile netbox up -d --force-recreate netbox
Importing existing data
The it-landscape project JSON files (<facility>.json, <facility>.flux.json,
<facility>.infra.json, trigrammes.json) can be imported in one command:
python manage.py import_it_landscape /opt/it-landscape-data --create-sites --with-infra
- Sites are resolved by name (
--create-sitescreates missing ones). - Applications are unified by name: an application present in several facilities becomes a single multi-site record. Trigrams from the JSON files are only used as a resolution key during import.
--with-infraalso creates the test infrastructure: VMs (vCPU, RAM, disk, eth0 interface, primary IP,app:XXXtag) from*.infra.json, VLANs, prefixes and gateways from*.network.json.- NetBox VMs are attached to applications via the
*.infra.jsonfiles. - Applications referenced only by flows (EAI, monitoring…) are created in an "Out of business referential" domain.
- The command is idempotent (safe to re-run, no duplicates).
Compatibility
- NetBox ≥ 4.0 (tested on 4.3)
- Python ≥ 3.10
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file netbox_it_landscape-0.4.0.tar.gz.
File metadata
- Download URL: netbox_it_landscape-0.4.0.tar.gz
- Upload date:
- Size: 76.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
01932ef1a47aebc6da8105af96bf3f16c85668e7bda67b8d0da3512b39d87945
|
|
| MD5 |
99638ed7fa4879875c0deb960fedfbfd
|
|
| BLAKE2b-256 |
aca6f50945d298dc879897f88763fb7924d99d97e6377bddbaf5f1214c012aa2
|
Provenance
The following attestation bundles were made for netbox_it_landscape-0.4.0.tar.gz:
Publisher:
publish.yml on lquastana/netbox-it-landscape
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
netbox_it_landscape-0.4.0.tar.gz -
Subject digest:
01932ef1a47aebc6da8105af96bf3f16c85668e7bda67b8d0da3512b39d87945 - Sigstore transparency entry: 1936271300
- Sigstore integration time:
-
Permalink:
lquastana/netbox-it-landscape@bc2ec4a395cc1e150effd535a88de2f62fc45550 -
Branch / Tag:
refs/tags/v0.4.0 - Owner: https://github.com/lquastana
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@bc2ec4a395cc1e150effd535a88de2f62fc45550 -
Trigger Event:
release
-
Statement type:
File details
Details for the file netbox_it_landscape-0.4.0-py3-none-any.whl.
File metadata
- Download URL: netbox_it_landscape-0.4.0-py3-none-any.whl
- Upload date:
- Size: 99.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
db1ac045ae4076da8ae1e8835f2c7e8cf5a1dbd22a462e997eb5527e3cea6eb5
|
|
| MD5 |
9302f2c6621c18d2a0e7af4d3dc52014
|
|
| BLAKE2b-256 |
1654bcbb7e1f0f1642d82df08a4c713b687abc21a553819deefdedbd8b6739f9
|
Provenance
The following attestation bundles were made for netbox_it_landscape-0.4.0-py3-none-any.whl:
Publisher:
publish.yml on lquastana/netbox-it-landscape
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
netbox_it_landscape-0.4.0-py3-none-any.whl -
Subject digest:
db1ac045ae4076da8ae1e8835f2c7e8cf5a1dbd22a462e997eb5527e3cea6eb5 - Sigstore transparency entry: 1936271443
- Sigstore integration time:
-
Permalink:
lquastana/netbox-it-landscape@bc2ec4a395cc1e150effd535a88de2f62fc45550 -
Branch / Tag:
refs/tags/v0.4.0 - Owner: https://github.com/lquastana
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@bc2ec4a395cc1e150effd535a88de2f62fc45550 -
Trigger Event:
release
-
Statement type: