nso-adapter
Middleware service between Cisco NSO and consumers (NetBox first). Speaks NSO RESTCONF; exposes a consumer-agnostic northbound REST API. Internally split into a generic NSO core and pluggable consumer bindings; a NetBox binding ships with it.
Documentation
docs/00-plan.md— overall plan for the NSO ↔ NetBox integration (cross-cutting; lives here because the adapter implements the contract).docs/api-contract.md— canonical northbound REST API contract. The NetBox plugin builds against this.docs/nso-adapter.md— adapter design (this repo).
Companion repos: netbox-nso-plugin — the NetBox
plugin that consumes this adapter; nso-packages — the NSO-side YANG
service packages (network-state-export read exports + the *-reconciler
write services) the adapter drives over RESTCONF.
Status
In active development (Phase 2, 2026-06). The northbound API serves ~57
endpoints across 16 config families (interfaces/IPs/MTU, VLAN/switchport,
SVI, subinterfaces, L2 services, LAG, IS-IS, OSPF, BGP, route-policy,
redistribution, static routes, BFD, SNMP, logging) — read mirrors plus a
full-replace intent store with a durable apply worker, post-apply dry-run
verification, periodic + SSE-triggered sync, and an intent-summary endpoint
for split-brain detection. docs/api-contract.md is kept in lock-step with
the implemented surface; docs/00-plan.md §6/§7 records the original
Phase 1 plan.
Release files for nso-adapter 1.4.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| nso_adapter-1.4.1.tar.gz | 499.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| nso_adapter-1.4.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.1 MB
Release files / nso_adapter-1.4.1.tar.gz
| Download URL | nso_adapter-1.4.1.tar.gz |
|---|---|
| Size | 499.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
36b0914f00ddf6e1f7fd3f5a42bab28f201c55669aeafece9c921d85a6e84976
|
|
BLAKE2b-256 checksum How to use checksums |
761da442297ee1e004234134f2371394544f8dacc1f19be1d148c9a2318f0e81
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 14, 2026.
Transparency logRelease files / nso_adapter-1.4.1-py3-none-any.whl
| Download URL | nso_adapter-1.4.1-py3-none-any.whl |
|---|---|
| Size | 555.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
de8535a24194c4d1216e825d89c9948bf48027230068fafcda2f2d50055b356e
|
|
BLAKE2b-256 checksum How to use checksums |
d806a86fd49307fbcecbab883cb4f17cbab2ae53426876204d3d9650c7370d9e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 14, 2026.
Transparency log