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.9.tar.gz (18.6 kB view details)

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

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

File metadata

  • Download URL: hsapi_client-0.9.9.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.2.0

File hashes

Hashes for hsapi_client-0.9.9.tar.gz
Algorithm Hash digest
SHA256 3846d47820b8feefd4569b8752cb431b5595a3376b76f909b26968322b7f89e0
MD5 43ed1cf4f7f1b1aaee829ca154864f97
BLAKE2b-256 9181670554fb1de84aaa169a67914170dc364a730faec187a3e7372f4a8586a5

See more details on using hashes here.

File details

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

File metadata

  • Download URL: hsapi_client-0.9.9-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.2.0

File hashes

Hashes for hsapi_client-0.9.9-py3-none-any.whl
Algorithm Hash digest
SHA256 93336e44af620c61d0157eb32a32be3c947d6aa0f8c93570db9210a7a65f27d6
MD5 b2ac9def730981ff19df308ea7c922cc
BLAKE2b-256 f73f7452316b6ce81aafd623c91f050c5a85c2c412c4042d0a31f201bf839bbd

See more details on using hashes here.

Supported by

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