Run backend and web with a shared configurable port, add local webhook and secret-generation helpers with tests, and document current app-auth and fixture workflows.
21 lines
615 B
Python
21 lines
615 B
Python
"""Print a random secret as an environment assignment without changing any files."""
|
|
|
|
import argparse
|
|
import re
|
|
import secrets
|
|
|
|
|
|
def main() -> None:
|
|
parser = argparse.ArgumentParser(description="Generate a secret as NAME=VALUE.")
|
|
parser.add_argument(
|
|
"name", help="Environment variable name, e.g. LEAD_SCORING_WEBHOOK_SIGNING_SECRET"
|
|
)
|
|
args = parser.parse_args()
|
|
if re.fullmatch(r"[A-Za-z_][A-Za-z0-9_]*", args.name) is None:
|
|
parser.error("name must be a valid environment variable name")
|
|
print(f"{args.name}={secrets.token_hex(32)}")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|