Spaces:
Running
Running
| #!/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() | |