import os
import logging
def validate_headers(headers):
"""
Validates request headers for scheduled runs.
Args:
headers (dict): A dictionary of request headers.
Returns:
bool: True if headers are valid, False otherwise. Raises ValueError
if a required header is missing.
"""
required_headers = {"run_id": True, "scheduled": True} # Required headers
for header in required_headers:
if header not in headers:
raise ValueError(f"Missing required header: {header}")
if headers["scheduled"] != "true": # Enforce string comparison
raise ValueError("scheduled header must be 'true'")
# Add more validation rules here as needed.
# Example: check for a specific user agent.
# if "user_agent" in headers and headers["user_agent"] != "valid_agent":
# raise ValueError("Invalid user agent")
return True
if __name__ == '__main__':
# Example Usage
try:
headers1 = {"run_id": "123", "scheduled": "true", "user_agent": "valid_agent"}
validate_headers(headers1)
print("Headers 1 are valid.")
except ValueError as e:
print(f"Headers 1 are invalid: {e}")
try:
headers2 = {"run_id": "456", "scheduled": "false"}
validate_headers(headers2)
print("Headers 2 are valid.")
except ValueError as e:
print(f"Headers 2 are invalid: {e}")
try:
headers3 = {"run_id": "789"}
validate_headers(headers3)
print("Headers 3 are valid.")
except ValueError as e:
print(f"Headers 3 are invalid: {e}")
Add your comment