Documents staging via keyzoo so production /api/auth/steam gets STEAM_API_KEY and SESSION_SECRET. Co-authored-by: Cursor <cursoragent@cursor.com>
70 lines
2.1 KiB
Python
70 lines
2.1 KiB
Python
"""Dump Pages env_var names/types and latest deployment id (no secret values)."""
|
|
|
|
from __future__ import annotations
|
|
|
|
import json
|
|
import os
|
|
import sys
|
|
import urllib.request
|
|
|
|
ACCT = "510534f7f6284344aadaf2f5a0794d48"
|
|
PROJ = "climperor-relations"
|
|
|
|
|
|
def get(path: str) -> dict:
|
|
email = os.environ.get("CLOUDFLARE_EMAIL") or os.environ.get(
|
|
"KEYZOO_ASSET_META_USERNAME"
|
|
)
|
|
key = os.environ.get("CLOUDFLARE_API_KEY") or os.environ.get(
|
|
"KEYZOO_ASSET_SECRET_GLOBAL_API_KEY"
|
|
)
|
|
req = urllib.request.Request(
|
|
f"https://api.cloudflare.com/client/v4{path}",
|
|
headers={"X-Auth-Email": email, "X-Auth-Key": key},
|
|
)
|
|
with urllib.request.urlopen(req, timeout=60) as r:
|
|
return json.load(r)
|
|
|
|
|
|
def main() -> int:
|
|
p = get(f"/accounts/{ACCT}/pages/projects/{PROJ}")["result"]
|
|
dc = p.get("deployment_configs") or {}
|
|
for env in ("production", "preview"):
|
|
ev = (dc.get(env) or {}).get("env_vars") or {}
|
|
print(env, "keys", sorted(ev.keys()))
|
|
for k, v in sorted(ev.items()):
|
|
print(
|
|
" ",
|
|
k,
|
|
"type=",
|
|
(v or {}).get("type"),
|
|
"has_value=",
|
|
"value" in (v or {}),
|
|
)
|
|
deps = get(f"/accounts/{ACCT}/pages/projects/{PROJ}/deployments?per_page=2")[
|
|
"result"
|
|
]
|
|
for d0 in deps or []:
|
|
print(
|
|
"deployment",
|
|
d0.get("id"),
|
|
d0.get("environment"),
|
|
d0.get("created_on"),
|
|
d0.get("url"),
|
|
)
|
|
if d0.get("id"):
|
|
det = get(
|
|
f"/accounts/{ACCT}/pages/projects/{PROJ}/deployments/{d0['id']}"
|
|
)["result"]
|
|
# Some APIs nest env under build_config / env_vars
|
|
for k in sorted(det.keys()):
|
|
if "env" in k.lower() or k in ("aliases", "is_skipped", "production_branch"):
|
|
val = det.get(k)
|
|
s = json.dumps(val, ensure_ascii=False) if not isinstance(val, str) else val
|
|
print(f" {k}: {s[:240]}")
|
|
return 0
|
|
|
|
|
|
if __name__ == "__main__":
|
|
sys.exit(main())
|