mirror of
https://github.com/trustgraph-ai/trustgraph.git
synced 2026-04-26 08:56:21 +02:00
69 lines
1.6 KiB
Python
69 lines
1.6 KiB
Python
"""
|
|
List the API keys for a user.
|
|
"""
|
|
|
|
import argparse
|
|
|
|
import tabulate
|
|
|
|
from ._iam import DEFAULT_URL, DEFAULT_TOKEN, call_iam, run_main
|
|
|
|
|
|
def do_list_api_keys(args):
|
|
req = {"operation": "list-api-keys", "user_id": args.user_id}
|
|
if args.workspace:
|
|
req["workspace"] = args.workspace
|
|
resp = call_iam(args.api_url, args.token, req)
|
|
|
|
keys = resp.get("api_keys", [])
|
|
if not keys:
|
|
print("No keys.")
|
|
return
|
|
|
|
rows = [
|
|
[
|
|
k.get("id", ""),
|
|
k.get("name", ""),
|
|
k.get("prefix", ""),
|
|
k.get("created", ""),
|
|
k.get("last_used", "") or "—",
|
|
k.get("expires", "") or "never",
|
|
]
|
|
for k in keys
|
|
]
|
|
print(tabulate.tabulate(
|
|
rows,
|
|
headers=["id", "name", "prefix", "created", "last used", "expires"],
|
|
tablefmt="pretty",
|
|
stralign="left",
|
|
))
|
|
|
|
|
|
def main():
|
|
parser = argparse.ArgumentParser(
|
|
prog="tg-list-api-keys", description=__doc__,
|
|
)
|
|
parser.add_argument(
|
|
"-u", "--api-url", default=DEFAULT_URL,
|
|
help=f"API URL (default: {DEFAULT_URL})",
|
|
)
|
|
parser.add_argument(
|
|
"-t", "--token", default=DEFAULT_TOKEN,
|
|
help="Auth token (default: $TRUSTGRAPH_TOKEN)",
|
|
)
|
|
parser.add_argument(
|
|
"--user-id", required=True,
|
|
help="Owner user id",
|
|
)
|
|
parser.add_argument(
|
|
"-w", "--workspace", default=None,
|
|
help=(
|
|
"Target workspace (admin only; defaults to caller's "
|
|
"assigned workspace)"
|
|
),
|
|
)
|
|
run_main(do_list_api_keys, parser)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|