Skip to main content

AWS API Gateway OpenAPI spec linter

Project description

OpenAPI AWS API Gateway linter

codecov license

AWS-OpenAPI-Lint is a simple OpenAPI 3 yaml / json spec linter designed for checking API Gateway integration.

Rules

It contains rules for checking whether:

  • you have an authorizer on OPTIONS
  • authorizer is mentioned in requestParameters but is not present in security
  • http verbs are consistent in the path and integration
  • all used headers in path from all verbs are mentioned in CORS rules and vice-versa
  • CORS rules allow all verbs mentioned in the path
  • CORS rules are present
  • amazon integration is present
  • path parameters present in requestParameters are not used in the direct path parameters and vice-versa

Roadmap

  • Update README with rule names and behavior
  • Support json specs
  • Add optional rule for checking base url equality
  • Add support for configuration yaml file
  • Add possibility to disable rule checking on specific paths
  • Add possibility to disable rules per path
  • Ignore path-params if http_proxy integration type used
  • Add option to disable rules via CLI
  • Add warning threshold to return with status code 0 if limit not exceeded
  • Fix flake8 violations
  • Add a license
  • Publish to PyPI or alike
  • Configure properly up GitHub actions to run tests on push

Installation

pip install aws-openapi-lint

Usage

$ aws-openapi-lint path/to/spec.yml

usage: main.py [-h] [--treat-errors-as-warnings]
               [--warning-threshold WARNING_THRESHOLD]
               [--exclude-rules EXCLUDE_RULES]
               lint_file

Lint OpenAPI specifications based on AWS API Gateway.

positional arguments:
  lint_file             Specify path to the openapi schema file.

optional arguments:
  -h, --help            show this help message and exit
  --treat-errors-as-warnings
                        Treats errors as warnings (exit code will be 0 unless
                        warning threshold is specified
  --warning-threshold WARNING_THRESHOLD
                        Warning threshold which when surpassed renders exit
                        code to become 1)
  --exclude-rules EXCLUDE_RULES
                        Excluded rules separated by comma.

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

AWS-OpenAPI-Lint-0.2.2.tar.gz (7.4 kB view details)

Uploaded Source

File details

Details for the file AWS-OpenAPI-Lint-0.2.2.tar.gz.

File metadata

  • Download URL: AWS-OpenAPI-Lint-0.2.2.tar.gz
  • Upload date:
  • Size: 7.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/42.0.2 requests-toolbelt/0.9.1 tqdm/4.41.1 CPython/3.7.6

File hashes

Hashes for AWS-OpenAPI-Lint-0.2.2.tar.gz
Algorithm Hash digest
SHA256 1e9e37634893e2d64ed94a4938e251693f54b8d47927ed88dd0268553baacf30
MD5 d5bddd91adf7d9724455c78a29547405
BLAKE2b-256 8c867aaa63946ca2644352d9e629d8c10c451d3a7d3f87ef13513c156b7390dc

See more details on using hashes here.

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