Skip to main content

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.

Release files for AWS-OpenAPI-Lint 0.2.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for AWS-OpenAPI-Lint 0.2.2
File Size Uploaded
AWS-OpenAPI-Lint-0.2.2.tar.gz 7.4 kB Details

Release files / AWS-OpenAPI-Lint-0.2.2.tar.gz

Download URL AWS-OpenAPI-Lint-0.2.2.tar.gz
Size 7.4 kB
Tags Source
SHA-256 checksum
How to use checksums
1e9e37634893e2d64ed94a4938e251693f54b8d47927ed88dd0268553baacf30
BLAKE2b-256 checksum
How to use checksums
8c867aaa63946ca2644352d9e629d8c10c451d3a7d3f87ef13513c156b7390dc
Upload date
Uploaded using Trusted Publishing?
What is 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

Release history Release notifications | RSS feed

This release

0.2.2 This release

1 release file

0.2.1

1 release file

0.2.0

1 release file

0.1.7

1 release file

0.1.6

1 release file

0.1.5

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page