Spaces:
Sleeping
Sleeping
| # verify_env.py | |
| import os, re, json | |
| KEYS = [ | |
| "NOTION_COOKIE", | |
| "NOTION_SPACE_ID", | |
| "NOTION_USER_ID", | |
| "NOTION_USER_EMAIL", | |
| ] | |
| def redacted(v: str): | |
| if v is None: | |
| return None | |
| s = v | |
| return f"{s[:4]}…{s[-4:]} (len={len(s)})" | |
| def uuid_like(v: str): | |
| return bool(re.fullmatch(r"[0-9a-fA-F-]{32,}", v or "")) | |
| def has_quotes_or_newlines(v: str): | |
| if not v: | |
| return False | |
| return any(ch in v for ch in ['\n', '\r', '"', "'"]) | |
| def main(): | |
| out = {} | |
| for k in KEYS: | |
| raw = os.getenv(k) | |
| out[k] = { | |
| "set": raw is not None, | |
| "empty": (raw or "") == "", | |
| "redacted": redacted(raw), | |
| "uuid_like": uuid_like(raw) if k in ("NOTION_SPACE_ID","NOTION_USER_ID") else None, | |
| "has_quotes_or_newlines": has_quotes_or_newlines(raw), | |
| "starts_with_token_v2": raw.strip().startswith("token_v2=") if (raw and k=="NOTION_COOKIE") else None, | |
| } | |
| print(json.dumps(out, ensure_ascii=False, indent=2)) | |
| if __name__ == "__main__": | |
| main() |