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/api-contract.md is the canonical northbound REST
API contract. The NetBox plugin builds against it.
Companion repo netbox-nso-plugin provides the
NetBox plugin that consumes this adapter. nso-packages contains the
NSO-side YANG service packages (network-state-export read exports and the
*-reconciler write services) that 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, and logging). It provides 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.
Development
The custom review-pattern pre-commit hooks require the opengrep executable on
PATH. Follow the official OpenGrep installation instructions,
or set OPENGREP_BIN to an installed executable. These checks run in local
pre-commit only. GitHub Actions and the pre-push stage do not run OpenGrep.
Projection authority writes must use explicit targets, even in sanctioned functions.
Do not unpack tuples or lists into authorized_document, authorized_revision, or
applied_revision. The authority-assignment-guard AST check enforces this in
pre-commit and pytest, including nested and starred targets. OpenGrep checks the
owner and value of each explicit write.
Metadata
Release files for nso-adapter 1.10.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 | Provenance | Actions |
|---|---|---|---|---|
| nso_adapter-1.10.0.tar.gz | 587.7 kB | With provenance | Details for nso_adapter-1.10.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| nso_adapter-1.10.0-py3-none-any.whl | Python 3 | none | any | Details for nso_adapter-1.10.0-py3-none-any.whl |
Total release size: 1.2 MB
Release files / nso_adapter-1.10.0.tar.gz
| Download URL | nso_adapter-1.10.0.tar.gz |
|---|---|
| Size | 587.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
7b48a66c3b198e83a4e7c50a973eb2fbfaa37441c44d59747faa85fcc562ccb3
|
|
BLAKE2b-256 checksum How to use checksums |
844bd1b1e12785063538b12a6ba176a5783a55fed9f0361cefa6b3089f99b944
|
| 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 Oct 7, 2026.
Transparency logRelease files / nso_adapter-1.10.0-py3-none-any.whl
| Download URL | nso_adapter-1.10.0-py3-none-any.whl |
|---|---|
| Size | 599.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
3115d447f15810c5e599df7fcf4a5288bf85596c27fedba2fa8b0ed97729a5f7
|
|
BLAKE2b-256 checksum How to use checksums |
429224ed6f2cc432494bfa5ea450ccedce6431296ddb7de63ebd16e746a0518f
|
| 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 Oct 7, 2026.
Transparency logSecurity for nso-adapter 1.10.0
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.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for nso_adapter-1.10.0.tar.gz
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 Oct 7, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.