def extract_iam_metadata()

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