Skip to main content

HTTP client for interacting with FLAME Hub services.

Project description

FLAME Hub Client

The FLAME Hub Client is a Python Client which wraps the endpoints of FLAME Hub API. This repository is part of the PrivateAIM project.

Getting started

To install the client, Python 3.10 or higher is required.

python -m pip install flame-hub-client

Quickstart

The FLAME Hub Client offers get, find, update, create and delete methods for the core, storage and auth endpoints. It is capable of authenticating against the API using either password or robot authentication. Pick one, provide your credentials and plug them into the class for the service you want to use. Note that the client will automatically reauthenticate if necessary.

import flame_hub

auth = flame_hub.auth.PasswordAuth(
    username="admin", password="start123", base_url="http://localhost:3000/auth/"
)
auth_client = flame_hub.AuthClient(base_url="http://localhost:3000/auth/", auth=auth)

Now you're ready to use the library's functions! Start off with getting the so-called master realm by using one of the find methods and filtering for the name "master".

master_realms = auth_client.find_realms(filter={"name": "master"})

Every find method returns a list of matching resources. Since there is only one realm called "master" in this example, we simply pop it from the list and print the result.

assert len(master_realms) == 1
master_realm = master_realms.pop()

print(master_realm.model_dump_json(indent=2))
{
  "name": "master",
  "display_name": null,
  "description": null,
  "id": "794f2375-f043-4789-bd0c-e5534e8deeaa",
  "built_in": true,
  "created_at": "2025-05-12T09:44:08.284000Z",
  "updated_at": "2025-05-12T09:44:08.284000Z"
}

Next we want to create a new node. Node resources are accessible over endpoints under the core directive. So the first step is to create a new core client and then create a new node.

core_client = flame_hub.CoreClient(base_url="http://localhost:3000/core/", auth=auth)
my_node = core_client.create_node(name="my-node", realm_id=master_realm)

print(my_node.model_dump_json(indent=2))
{
  "external_name": null,
  "hidden": false,
  "name": "my-node",
  "realm_id": "794f2375-f043-4789-bd0c-e5534e8deeaa",
  "registry_id": null,
  "type": "default",
  "id": "03636152-e6a8-4e01-994e-18b2b0c3a935",
  "public_key": null,
  "online": false,
  "registry": null,
  "registry_project_id": null,
  "registry_project": null,
  "robot_id": "200aab68-a686-407c-a6c1-2dd367ff6031",
  "created_at": "2025-05-19T15:43:57.859000Z",
  "updated_at": "2025-05-19T15:43:57.859000Z"
}

Maybe making the node public wasn't such a good idea, so let's update it by hiding it. To see if the update was successful, we have to request the updated node from the Hub.

core_client.update_node(my_node, hidden=True)

assert core_client.get_node(my_node.id) is True

To clean up our mess, we delete the node and verify that the node is gone forever.

core_client.delete_node(my_node)

assert core_client.get_node(my_node.id) is None

Note that creation, update and deletion isn't available for all resources. Check the documentation which methods are available for each resource.

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

flame_hub_client-0.2.5.tar.gz (24.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

flame_hub_client-0.2.5-py3-none-any.whl (27.7 kB view details)

Uploaded Python 3

File details

Details for the file flame_hub_client-0.2.5.tar.gz.

File metadata

  • Download URL: flame_hub_client-0.2.5.tar.gz
  • Upload date:
  • Size: 24.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for flame_hub_client-0.2.5.tar.gz
Algorithm Hash digest
SHA256 3afc5e0e5539628afaebfb1bbe7515465096a44a6781fb53645bc5bdc7198048
MD5 61687e0bd957d24101a73e52b943043d
BLAKE2b-256 7f9b32cf64e01b01b436ed50d2cc3412968260552b8fe3436ee67ec473e84646

See more details on using hashes here.

Provenance

The following attestation bundles were made for flame_hub_client-0.2.5.tar.gz:

Publisher: publish.yml on PrivateAIM/hub-python-client

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file flame_hub_client-0.2.5-py3-none-any.whl.

File metadata

File hashes

Hashes for flame_hub_client-0.2.5-py3-none-any.whl
Algorithm Hash digest
SHA256 37d8e40f7184c49a243a7cc5a4f48a74619f6c93fb325db20105852ab8517ad7
MD5 0161ce63328be58b3543ce99ccb5ea40
BLAKE2b-256 7ac1638950232fec3f0e8a83fb01cd41da3938436d679e1568a8dd3149f8b64d

See more details on using hashes here.

Provenance

The following attestation bundles were made for flame_hub_client-0.2.5-py3-none-any.whl:

Publisher: publish.yml on PrivateAIM/hub-python-client

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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