Metadata-Version: 2.4
Name: gloomproxy-sdk
Version: 0.1.0
Summary: SDK for building GloomProxy scanner plugins
Project-URL: Homepage, https://github.com/commonhuman-lab/gloomproxy
Project-URL: Issues, https://github.com/commonhuman-lab/gloomproxy/issues
Author: CommonHuman-Lab
License: AGPL-3.0-or-later
Keywords: dast,pentest,plugin,proxy,scanner,security
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Information Technology
Classifier: License :: OSI Approved :: GNU Affero General Public License v3
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Security
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.10
Provides-Extra: dev
Requires-Dist: mypy>=1.0; extra == 'dev'
Requires-Dist: pytest-asyncio>=0.23; extra == 'dev'
Requires-Dist: pytest-cov>=5.0; extra == 'dev'
Requires-Dist: pytest>=8.0; extra == 'dev'
Requires-Dist: ruff>=0.4; extra == 'dev'
Provides-Extra: http
Requires-Dist: httpx>=0.27.0; extra == 'http'
Description-Content-Type: text/markdown

# gloomproxy-sdk

Python SDK for building [GloomProxy](https://github.com/commonhuman-lab/gloomproxy) scanner plugins.

## Installation

```bash
pip install gloomproxy-sdk
```

## Quick start

```python
from gloomproxy_sdk import BaseScanner, Finding, ScanContext, Severity

class MyScanner(BaseScanner):
    async def scan(self, context: ScanContext) -> list[Finding]:
        findings = []
        # ... injection logic ...
        return findings
```

## API

- `BaseScanner` — base class for all scanner plugins
- `Finding` / `Severity` — finding model and severity enum
- `ScanContext` / `Target` — scan target and request context
- `PluginCapabilities` / `PluginManifest` — plugin metadata declarations
- `ScanOptionDef` / `ScanOptionChoice` — declarative option schema
- `AuthSnapshot` / `extract_auth` — auth state capture helpers
- `ScanEventEmitter` — event hooks for real-time progress reporting
- `exceptions` — `ScanError`, `InitializationError`, `ScanTimeout`, et al.
- `utils.http.ScanHttpClient` — thin HTTP client for use inside plugins
- `utils.parsing` — `extract_forms`, `find_reflected`

## License

AGPL-3.0-or-later © CommonHuman-Lab
