ai-agent-app / tools /gen_admin_key.py
MinhTai's picture
deploy: 66c22b0
1576c24
Raw
History Blame Contribute Delete
1.45 kB
#!/usr/bin/env python3
"""Emergency fallback: derive and print the current admin key locally.
Usage:
python tools/gen_admin_key.py
python tools/gen_admin_key.py --period monthly
Normally the key is generated automatically by the cron job and written to
/data/admin_keys.txt on HF Spaces. Use this script only when you need the key
before the cron has run, or when you have no access to the log file.
"""
import argparse
import sys
import os
sys.path.insert(0, os.path.join(os.path.dirname(__file__), "..", "backend"))
from app.admin_auth import get_window_label, derive_key, get_expiry_date
def main():
parser = argparse.ArgumentParser(description="Derive current admin key from master secret")
parser.add_argument("--period", default=None, help="Override rotation period (daily/weekly/monthly/quarterly/annual)")
args = parser.parse_args()
master = os.environ.get("ADMIN_MASTER_SECRET", "").strip()
if not master:
master = input("ADMIN_MASTER_SECRET: ").strip()
if not master:
print("Error: ADMIN_MASTER_SECRET is required", file=sys.stderr)
sys.exit(1)
period = args.period or os.environ.get("ADMIN_KEY_ROTATION_PERIOD", "weekly")
label = get_window_label(period, offset=0)
key = derive_key(master, label)
expiry = get_expiry_date(period)
print(f"Window : {label}")
print(f"Expires: {expiry}")
print(f"Key : {key}")
if __name__ == "__main__":
main()