Skip to main content

Add your description here

Project description

OpenAPI Scanner

A tool for scanning and testing OpenAPI specifications.

Features

  • Support for both JSON and YAML OpenAPI specifications
  • Flexible authentication system
  • Automatic path parameter replacement
  • Custom header support
  • Multiple report formats (Console, HTML, CSV, JSONL)

Installation

# Install dependencies
pip install -r requirements.txt

# Install in development mode
pip install -e .

Usage

Basic Usage

# Using JSON specification
python -m specphp_scanner spec.json --host localhost --port 8080

# Using YAML specification
python -m specphp_scanner spec.yaml --host localhost --port 8080

Using Authentication

# Using module path
python -m specphp_scanner spec.json --auth-class examples.koel.auth.KoelAuth --auth-params '{"email": "user@example.com", "password": "secret"}'

# Using file path
python -m specphp_scanner spec.json --auth-class ./examples/koel/auth.py --auth-params '{"email": "user@example.com", "password": "secret"}'

Using Custom Headers

python -m specphp_scanner spec.json --headers '{"X-Custom-Header": "value"}'

Generating Reports

# Console output (default)
python -m specphp_scanner spec.json

# HTML report
python -m specphp_scanner spec.json --format html --output report.html

# CSV report
python -m specphp_scanner spec.json --format csv --output report.csv

# JSONL report
python -m specphp_scanner spec.json --format jsonl --output report.jsonl

Command Line Options

  • spec_file: Path to OpenAPI specification file (JSON or YAML)
  • --host: Target host (default: localhost)
  • --port: Target port (default: 8080)
  • --auth-class: Authentication class path or Python file path
  • --auth-params: JSON string containing authentication parameters
  • --headers: JSON string containing custom headers
  • --format: Report format (console, html, csv, jsonl)
  • --output: Output file path for the report
  • --verbose, -v: Enable verbose logging

Creating Custom Authentication Classes

Create a class that inherits from BaseAuth:

from specphp_scanner.auth.base import BaseAuth

class MyCustomAuth(BaseAuth):
    def __init__(self, **kwargs):
        # Initialize your authentication parameters
        self.token = None
        
    def authenticate(self):
        # Implement your authentication logic
        # This method should be called before making API requests
        pass
        
    def get_headers(self):
        # Return headers required for authentication
        return {"Authorization": f"Bearer {self.token}"}
        
    def get_cookies(self):
        # Return cookies required for authentication
        return {}

Examples

See the examples directory for sample implementations.

Project Structure

specphp_scanner/
├── __init__.py
├── cli.py
├── scanner.py
├── auth/
│   ├── __init__.py
│   ├── base.py
│   └── factory.py
└── utils/
    ├── __init__.py
    ├── param_generator.py
    ├── report.py
    └── templates/
        └── report.html

Running Tests

pytest

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

specphp_scanner-0.0.8.tar.gz (12.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

specphp_scanner-0.0.8-py3-none-any.whl (14.6 kB view details)

Uploaded Python 3

File details

Details for the file specphp_scanner-0.0.8.tar.gz.

File metadata

  • Download URL: specphp_scanner-0.0.8.tar.gz
  • Upload date:
  • Size: 12.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.8.4

File hashes

Hashes for specphp_scanner-0.0.8.tar.gz
Algorithm Hash digest
SHA256 37d38b3b86540f6cf306e70f8d67488797156ca0c4da492a4eeca7c7155f5cc8
MD5 dae398fec3cbdaf99f7ca5a95ef6bdc9
BLAKE2b-256 26296572caa10f52d56f77a556bb64cef60d917ffd734e3126a58b2d01dc7ca4

See more details on using hashes here.

File details

Details for the file specphp_scanner-0.0.8-py3-none-any.whl.

File metadata

File hashes

Hashes for specphp_scanner-0.0.8-py3-none-any.whl
Algorithm Hash digest
SHA256 b6f4ae5c7a02447ad67b957d35a6278dc5701fcd1a211214904d75c90344b85a
MD5 7ab50e26a7ca989507c0b7e7183d6bdc
BLAKE2b-256 4f581e5130e3f7540ad4ae5b899264fe2facebebd6d09ac04cb08c18a7319bb2

See more details on using hashes here.

Supported by

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