Skip to main content

A CLI tool to perform syntactic and semantic validation of YAML files.

Project description

Tests Python Support

iac-validate

A CLI tool to perform syntactic and semantic validation of YAML files.

$ iac-validate -h
Usage: iac-validate [OPTIONS] PATH

  A CLI tool to perform syntactic and semantic validation of YAML files.

Options:
  --version              Show the version and exit.
  -v, --verbosity LVL    Either CRITICAL, ERROR, WARNING, INFO or DEBUG
  -s, --schema FILE      Path to schema file.
  -r, --rules DIRECTORY  Path to semantic rules.
  -h, --help             Show this message and exit.

Syntactic validation is done by providing a Yamale schema and validating all YAML files against that schema. Semantic validation is done by providing a set of rules (implemented in Python) which are then validated against the YAML data. Every rule is implemented as a Python class and should be placed in a .py file located in the --rules path.

Each .py file must have a single class named Rule. This class must have the following attributes: id, description and severity. It must implement a classmethod() named match that has a single function argument data which is the data read from all YAML files. It should return a list of strings, one for each rule violation with a descriptive message. A sample rule can be found below.

class Rule:
    id = "101"
    description = "Verify child naming restrictions"
    severity = "HIGH"

    @classmethod
    def match(cls, data):
        results = []
        try:
            for child in data["root"]["children"]:
                if child["name"] == "FORBIDDEN":
                    results.append("root.children.name" + " - " + str(child["name"]))
        except KeyError:
            pass
        return results

Installation

Python 3.6+ is required to install iac-validate. Don't have Python 3.6 or later? See Python 3 Installation & Setup Guide.

iac-validate can be installed in a virtual environment using pip:

pip install iac-validate

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

iac-validate-0.1.2.tar.gz (11.1 kB view hashes)

Uploaded Source

Built Distribution

iac_validate-0.1.2-py3-none-any.whl (12.7 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page