in cicd-deployers/dataform_runner.py [0:0]
def extract_iam_metadata(file_path):
"""
Extracts IAM metadata from a Dataform SQLX file.
Args:
file_path: Path to the SQLX file.
Returns:
A dictionary containing the IAM metadata, or None if not found.
"""
with open(file_path, 'r') as f:
content = f.read()
match = re.search(r'//iam_metadata: ({[\s\S]*?})', content)
if match:
json_str = match.group(1).replace("//", "")
try:
iam_metadata = json.loads(json_str)
return iam_metadata
except json.JSONDecodeError:
logging.info("Error decoding JSON metadata.")
return None
else:
logging.info("IAM metadata not found in the file.")
return None