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

Uploaded Source

Built Distribution

hsapi_client-0.9.7-py3-none-any.whl (20.3 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for hsapi_client-0.9.7.tar.gz
Algorithm Hash digest
SHA256 7a6bf7cb533a4f0431c322bc292f09559eb27b37177ea2101a6ea559dc0c9e47
MD5 4f9ffe0d09aa685eeec140da6c408864
BLAKE2b-256 2fa2910246d129d7408ad1c3dc171027534d7560ccdb9b792f8ed06371abe57c

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for hsapi_client-0.9.7-py3-none-any.whl
Algorithm Hash digest
SHA256 6cd8ac2a787112a02d7d5d3e029ceba0749844806b20b3c27247393cccd53def
MD5 5bb6173f2eaaab863ced56382d9a32a1
BLAKE2b-256 7e6708326c4e119a221e673dca9ad326f2de3df0798b8e2a4d9a172895159f0b

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