1. import os
  2. import logging
  3. def validate_headers(headers):
  4. """
  5. Validates request headers for scheduled runs.
  6. Args:
  7. headers (dict): A dictionary of request headers.
  8. Returns:
  9. bool: True if headers are valid, False otherwise. Raises ValueError
  10. if a required header is missing.
  11. """
  12. required_headers = {"run_id": True, "scheduled": True} # Required headers
  13. for header in required_headers:
  14. if header not in headers:
  15. raise ValueError(f"Missing required header: {header}")
  16. if headers["scheduled"] != "true": # Enforce string comparison
  17. raise ValueError("scheduled header must be 'true'")
  18. # Add more validation rules here as needed.
  19. # Example: check for a specific user agent.
  20. # if "user_agent" in headers and headers["user_agent"] != "valid_agent":
  21. # raise ValueError("Invalid user agent")
  22. return True
  23. if __name__ == '__main__':
  24. # Example Usage
  25. try:
  26. headers1 = {"run_id": "123", "scheduled": "true", "user_agent": "valid_agent"}
  27. validate_headers(headers1)
  28. print("Headers 1 are valid.")
  29. except ValueError as e:
  30. print(f"Headers 1 are invalid: {e}")
  31. try:
  32. headers2 = {"run_id": "456", "scheduled": "false"}
  33. validate_headers(headers2)
  34. print("Headers 2 are valid.")
  35. except ValueError as e:
  36. print(f"Headers 2 are invalid: {e}")
  37. try:
  38. headers3 = {"run_id": "789"}
  39. validate_headers(headers3)
  40. print("Headers 3 are valid.")
  41. except ValueError as e:
  42. print(f"Headers 3 are invalid: {e}")

Add your comment