nac-analytics
In development — install from source today; PyPI release planned. Formerly nac-nd. Today it covers Cisco ACI via Nexus Dashboard 4.2.1+; the intent is to grow beyond Nexus Dashboard and add support for additional Cisco products, so one tool can drive change analytics across platforms.
CLI for change analysis on Cisco ACI fabrics via Nexus Dashboard 4.2.1+.
Commands are grouped per Cisco product: nac-analytics <product> <command>.
Today the product is nexus-dashboard (alias nd); more products are planned.
Documentation
| Topic | Link |
|---|---|
| Documentation hub | docs/README.md |
| Nexus Dashboard | docs/nexus-dashboard.md |
| Command reference | docs/commands/README.md |
| Exit codes | docs/exit-codes.md |
| Configuration | docs/configuration.md |
| Examples & CI | examples/README.md |
| Development | docs/development.md |
Nexus Dashboard Examples - delta & compliance
delta — compare snapshots after a change:
$ nac-analytics nd delta -output text
command: delta
fabric: FABRIC-A
pre_snapshot: snap-pre
post_snapshot: snap-post
=== Summary (/deltaAnalysis/summary) ===
New anomalies by severity:
major 2
FAIL: New anomalies at or above the failure threshold: 2 major.
=== Resources (/deltaAnalysis/resources) ===
resourceType new removed earlier later
tenant 1 0 12 13
=== Anomalies (/anomalies/details) ===
severity mnemonic resource reason
major ENDPOINT_DUPLICATE_IP web-epg duplicate ip detected
compliance — rule status for the latest snapshot (by default, latest snapshot is used):
$ nac-analytics nd compliance -output text
command: compliance
fabric: FABRIC-A
snapshot: latest
Compliance:
scope: latest snapshot
enforced_rules: 42
violated_rules: 1
violating_rules:
ruleName=no-open-tenant ruleType=configuration violationsCount=1
See prechange, delta, and compliance for usage.
Installation
Requirements: Nexus Dashboard 4.2.1+, Python 3.10+, an ACI fabric registered in Nexus Dashboard.
Install from PyPI:
pip install nac-analytics
nac-analytics --help
Or with uv:
uv tool install nac-analytics
nac-analytics --help
For development from source:
git clone https://github.com/netascode/nac-analytics.git
cd nac-analytics
uv sync --extra dev
uv run nac-analytics --help
Quick start
cp config.example.yaml nac-analytics.yaml # edit host, fabric, domain
cp .env.example .env # set ND_USER and ND_PASSWORD
nac-analytics nd doctor
When working from a source checkout, prefix commands with uv run (for example uv run nac-analytics nd doctor).
Configuration
Precedence: CLI flags → environment variables → YAML → .env in cwd.
Settings are scoped per product. See config.example.yaml and Configuration.
Development
Contributors: see Development.
Metadata
Release files for nac-analytics 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| nac_analytics-0.1.0.tar.gz | 139.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| nac_analytics-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 197.3 kB
Release files / nac_analytics-0.1.0.tar.gz
| Download URL | nac_analytics-0.1.0.tar.gz |
|---|---|
| Size | 139.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ad2be28301cf4b570eda9177dc8abf241cf01ac40a3175dcee5d8043cd5f46c2
|
|
BLAKE2b-256 checksum How to use checksums |
6db08ad44cce132e05393eb55f8755e6f4a88988453ab85b42d67b2874b11125
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.13 {"installer":{"name":"uv","version":"0.12.13","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / nac_analytics-0.1.0-py3-none-any.whl
| Download URL | nac_analytics-0.1.0-py3-none-any.whl |
|---|---|
| Size | 58.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
9394cbcd6993407e19338080dfa1124e51581095b03cfb41ab64a7c6576608d3
|
|
BLAKE2b-256 checksum How to use checksums |
7cb530ac11e1c57fd38f46c06072501567a081b85dedc87f58c98401dc09b889
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.13 {"installer":{"name":"uv","version":"0.12.13","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|