inmanta-module-netbird
This package is an adapter that is meant to be used with the inmanta orchestrator: https://docs.inmanta.com
Features
This module allows to manage netbird resources, through the netbird management api.
The module is a work in progress, it currently contains the base entities every resource of this module builds upon:
netbird::Api: the endpoint and credentials used to reach the netbird management api.netbird::ResourceABC: the base entity for all the resources managed by this module.netbird::JsonObjectABC: the base entity for every object of the netbird api.
And the following resources:
netbird::User: a user, or a service user, of the netbird account.
Every netbird object is co-managed with whoever else edits the account: an attribute
left null in the model keeps the value the api currently holds, only the values the
model sets are enforced. The api addresses its objects by opaque ids, and so does
this module: netbird::ResourceABC.id is a reference resolving the id of an object
from the facts its resource publishes, to be fed to whatever other resource points at
it.
Example
import netbird
api = netbird::Api(
agent_name="netbird",
management_url="https://api.netbird.io",
api_token=std::get_env("NETBIRD_TOKEN"),
)
netbird::User(
api=api,
name="Alice",
email="alice@example.com",
role="admin",
)
Find more examples in the tests folder of this module!
Development
python3 -m venv .venv
source .venv/bin/activate
make install
pytest tests
The tests deploy a netbird server locally, in a podman container of their own, and run against its api. The container is started again for each test, so that every test sees a fresh, empty account. They are skipped when podman is not available.
Metadata
Release files for inmanta-module-netbird 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 | |
|---|---|---|---|
| inmanta_module_netbird-0.1.0.tar.gz | 13.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| inmanta_module_netbird-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 27.3 kB
Release files / inmanta_module_netbird-0.1.0.tar.gz
| Download URL | inmanta_module_netbird-0.1.0.tar.gz |
|---|---|
| Size | 13.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3e62bc7e0ee787fd51433ba7a9d0eb5d87963580a15d3178cea4fd2dadb6cfe7
|
|
BLAKE2b-256 checksum How to use checksums |
5177daab0fcbb24492c63f2f7784de87a15b54b4dcf6dbdb2d219b47c1055e43
|
| 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 Aug 11, 2026.
Transparency logRelease files / inmanta_module_netbird-0.1.0-py3-none-any.whl
| Download URL | inmanta_module_netbird-0.1.0-py3-none-any.whl |
|---|---|
| Size | 13.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
250482bd6451982a621fa46f844abe34efc31fd131f5fda309f5862d1d2471ea
|
|
BLAKE2b-256 checksum How to use checksums |
059e82570d07fa8f6f23e47493d0bd14a42468d054edd874c9b0e6d651c989b2
|
| 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 Aug 11, 2026.
Transparency log