package conftest

import json

# Funkcja do sprawdzania struktury JSON
is_valid_json(input) {
  # Sprawdź, czy input jest łańcuchem znaków
  is_string(input)

  # Parsuj JSON
  json.parse(input) != null
}

# Funkcja do sprawdzania struktury connectionstring
is_valid_connection_string(input) {
  # Sprawdź, czy input jest łańcuchem znaków
  is_string(input)

  # Parsuj JSON
  json_data := json.parse(input)

  # Sprawdź, czy JSON zawiera określone pola
  json_data["required_field1"] != null
  json_data["required_field2"] != null
}

# Reguła walidacji
deny[msg] {
  input.connectionstring != null
  not is_valid_connection_string(input.connectionstring)
  msg := "Invalid connection string JSON structure"
}