Skip to main content

Headscale API client

Project description

Headscale API client

This module is a client for Headscale API. It can manage all the entities of headscale, namely:

  • nodes
  • users
  • routes
  • preauthkeys
  • apikeys

Wherever it was possible I used python data types, for example datetime is used for all the dates, while int is used for all IDs;

Schemas

Using the OpenAPI specs provided by headscale, I converted them to python classes, so you can refer to the Headscale OpenAPI specification in file headscale.openapi.json for more details, but I will try to provide a list of classes and methods available.

Nodes

Methods:

  • list: list all the nodes registered on headscale;
  • get: retrieve a specific node by its ID
  • byUser: retrieve all the nodes of a user, given the username;
  • delete: deletes a node, by ID;
  • expire: expire (disconnect) a node, by ID;
  • rename: rename a node, by ID;
  • move: assing a nide to a new user;
  • routes: retrieve all the routes announced by a node;
  • setTags: set tags for a node;
  • backfillips: (currently broken in Headscale), fills the nodes table with all the IPs, to be used in rare cases;

Properties:

  • expired: if the node is expired;
  • expireDate: when the node is going to expire;

Users

Methods:

  • list: list all users'
  • get: get a user, by ID;
  • create: create a new user, given a username;
  • delete: delete a user, given the username;
  • rename: rename a user, given the current and the new username;

Routes

Methods:

  • list: get all routes;
  • delete: deletes a route, given the ID;
  • enable: enable a route, given the ID;
  • disable: disable a route given the ID;

API Keys

Methods:

  • list: list all the API keys;
  • create: create a new API key;
  • expire: invalidates a new API key;
  • delete: delete an API key;

PreAuth keys

Methods

  • list: list all the preauth keys for a user;
  • create: create a new preauth key for a user;
  • expire: expires (invalidates) a preauth key for a user;

Configuration

To be able to access headscale the module needs the URL of the headscale portal and an API key. These values are provided via environment variables, specifically:

  • HSAPI_SERVER
  • HSAPI_API_TOKEN

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

hsapi_client-0.9.8.tar.gz (18.6 kB view details)

Uploaded Source

Built Distribution

hsapi_client-0.9.8-py3-none-any.whl (21.0 kB view details)

Uploaded Python 3

File details

Details for the file hsapi_client-0.9.8.tar.gz.

File metadata

  • Download URL: hsapi_client-0.9.8.tar.gz
  • Upload date:
  • Size: 18.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.12.1 Darwin/24.0.0

File hashes

Hashes for hsapi_client-0.9.8.tar.gz
Algorithm Hash digest
SHA256 513adbc205be5e2b76d2073bcf23ab2fa3613453f56fb53d6c272a56d0301417
MD5 27c0511fcfb07376703afb8be988edfb
BLAKE2b-256 609ff54166e407be4b601561553d1b9a244988c9ec52436c07f500901a5b3011

See more details on using hashes here.

File details

Details for the file hsapi_client-0.9.8-py3-none-any.whl.

File metadata

  • Download URL: hsapi_client-0.9.8-py3-none-any.whl
  • Upload date:
  • Size: 21.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.12.1 Darwin/24.0.0

File hashes

Hashes for hsapi_client-0.9.8-py3-none-any.whl
Algorithm Hash digest
SHA256 59b592077b2ff70fe2cd10c86450adbf6fcda2b6b72520626f079b9edcfec312
MD5 6c8f97240b36a4005fd640174836bc45
BLAKE2b-256 2ba654bfe4c095275b640fcae893e3e682c5e85bf75f3ec5a36e18bf4e0db480

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page