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

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

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

File metadata

  • Download URL: hsapi_client-0.9.5.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.5.0

File hashes

Hashes for hsapi_client-0.9.5.tar.gz
Algorithm Hash digest
SHA256 aa8bf51a960c8e472b8a423bd7de5f7d9514ca5706e2b98ac473d57d158767f6
MD5 82a266c25513de3827e876336d4755b7
BLAKE2b-256 798f63e8d99403b10bce8216535d7dee6b1d82136ba6ddc66235de641a623020

See more details on using hashes here.

File details

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

File metadata

  • Download URL: hsapi_client-0.9.5-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.5.0

File hashes

Hashes for hsapi_client-0.9.5-py3-none-any.whl
Algorithm Hash digest
SHA256 a2ef7a62fba6f31ad08d6c04db95306c1da10c255383c699d04aa2dbd293f743
MD5 1464dbe755116e489a49cd132f40cacd
BLAKE2b-256 17b9608822449ab3ba475836a55bc1c1399b06118c672b43301791df36556e93

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