Files
bookmarks-api/tools/register_client.py
T

42 lines
1.3 KiB
Python

#!/usr/bin/env python3
"""CLI fallback for client secrets. Prefer the add-on Manage clients page."""
from __future__ import annotations
import argparse
import json
import sys
from pathlib import Path
ROOT = Path(__file__).resolve().parents[1]
sys.path.insert(0, str(ROOT))
from fab_auth import CLIENTS_PATH, create_client, list_clients, revoke_client # noqa: E402
def main() -> int:
parser = argparse.ArgumentParser(description="Manage Firefox Agent Bridge clients (CLI)")
sub = parser.add_subparsers(dest="cmd", required=True)
add = sub.add_parser("add", help="generate a secret (printed once)")
add.add_argument("--name", required=True)
sub.add_parser("list")
drop = sub.add_parser("revoke")
drop.add_argument("name_or_id")
ns = parser.parse_args()
if ns.cmd == "add":
created = create_client(ns.name)
print(created["token"])
print(
f"id={created['id']} name={created['name']} — store that token in FAB_TOKEN; it will not be shown again.",
file=sys.stderr,
)
return 0
if ns.cmd == "list":
print(json.dumps({"store": str(CLIENTS_PATH), "clients": list_clients()}, indent=2))
return 0
print(json.dumps({"revoked": revoke_client(ns.name_or_id)}))
return 0
if __name__ == "__main__":
raise SystemExit(main())