From 36f3cdc94c75369f93c2ebd5f5d88369611e8291 Mon Sep 17 00:00:00 2001 From: Cyber MacGeddon Date: Tue, 1 Apr 2025 19:45:23 +0100 Subject: [PATCH] tg-show-config CLI command --- trustgraph-base/trustgraph/api/api.py | 30 ++++++++++++++++ trustgraph-cli/scripts/tg-show-config | 49 +++++++++++++++++++++++++++ trustgraph-cli/setup.py | 1 + 3 files changed, 80 insertions(+) create mode 100755 trustgraph-cli/scripts/tg-show-config diff --git a/trustgraph-base/trustgraph/api/api.py b/trustgraph-base/trustgraph/api/api.py index 4c72d3ca..a9568e47 100644 --- a/trustgraph-base/trustgraph/api/api.py +++ b/trustgraph-base/trustgraph/api/api.py @@ -382,3 +382,33 @@ class Api: if resp.status_code != 200: raise ProtocolException(f"Status code {resp.status_code}") + def get_config(self): + + # The input consists of system and prompt strings + input = { + "operation": "config" + } + + url = f"{self.url}config" + + # Invoke the API, input is passed as JSON + resp = requests.post(url, json=input) + + # Should be a 200 status code + if resp.status_code != 200: + raise ProtocolException(f"Status code {resp.status_code}") + + try: + # Parse the response as JSON + object = resp.json() + except: + raise ProtocolException(f"Expected JSON response") + + self.check_error(resp) + + try: + return object["config"], object["version"] + except: + raise ProtocolException(f"Response not formatted correctly") + + diff --git a/trustgraph-cli/scripts/tg-show-config b/trustgraph-cli/scripts/tg-show-config new file mode 100755 index 00000000..43d2d100 --- /dev/null +++ b/trustgraph-cli/scripts/tg-show-config @@ -0,0 +1,49 @@ +#!/usr/bin/env python3 + +""" +Dumps out the current configuration +""" + +import argparse +import os +from trustgraph.api import Api +import json + +default_url = os.getenv("TRUSTGRAPH_URL", 'http://localhost:8088/') + +def show_config(url): + + api = Api(url) + + config, version = api.get_config() + + print("Version:", version) + print(json.dumps(config, indent=4)) + +def main(): + + parser = argparse.ArgumentParser( + prog='tg-show-config', + description=__doc__, + ) + + parser.add_argument( + '-u', '--api-url', + default=default_url, + help=f'API URL (default: {default_url})', + ) + + args = parser.parse_args() + + try: + + show_config( + url=args.api_url, + ) + + except Exception as e: + + print("Exception:", e, flush=True) + +main() + diff --git a/trustgraph-cli/setup.py b/trustgraph-cli/setup.py index 93ab5b5e..406e2c24 100644 --- a/trustgraph-cli/setup.py +++ b/trustgraph-cli/setup.py @@ -62,5 +62,6 @@ setuptools.setup( "scripts/tg-processor-state", "scripts/tg-save-kg-core", "scripts/tg-save-doc-embeds", + "scripts/tg-show-config", ] )