#!/usr/bin/env python3 """ Usage: python create_api_key.py Creates an API key for the given user and stores it in api_keys.json. """ import json import os import secrets import sys from datetime import datetime KEYS_FILE = os.path.join(os.path.dirname(__file__), "api_keys.json") def create_key(email: str, name: str) -> str: keys: dict = {} if os.path.exists(KEYS_FILE): with open(KEYS_FILE) as f: keys = json.load(f) # Check for duplicate email for k, v in keys.items(): if v["email"] == email: print(f"[!] A key already exists for {email}: {k}") print(" Delete it from api_keys.json first if you want a new one.") sys.exit(1) key = "tk_" + secrets.token_hex(24) keys[key] = { "email": email, "name": name, "created_at": datetime.now().isoformat(), } with open(KEYS_FILE, "w") as f: json.dump(keys, f, indent=2) print(f"\nāœ“ API key created for {name} <{email}>") print(f"\n Key: {key}\n") print(" Share the key with the user — it cannot be recovered later.") return key if __name__ == "__main__": if len(sys.argv) != 3: print("Usage: python create_api_key.py ") sys.exit(1) create_key(sys.argv[1], sys.argv[2])