Metadata-Version: 2.4
Name: klyrek-report
Version: 0.1.0
Summary: Professional report generation for the Klyrek ecosystem
Author: Klyrek Contributors
License: MIT
Keywords: appsec,pentesting,reconnaissance,reporting,security
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Information Technology
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Security
Requires-Python: >=3.10
Requires-Dist: klyrek-core
Provides-Extra: dev
Requires-Dist: mypy>=1.10; extra == 'dev'
Requires-Dist: pytest>=8.0; extra == 'dev'
Requires-Dist: ruff>=0.6; extra == 'dev'
Description-Content-Type: text/markdown

# klyrek-report

Turns a `klyrek_core.models.ScanResult` — everything the rest of the ecosystem accumulated —
into an actual report, in three formats:

- **`render_markdown`** — a Markdown report (executive summary, findings grouped by severity,
  technology/endpoint tables). Renders cleanly on GitHub/GitLab or in any editor.
- **`render_json`** — the full `ScanResult` as JSON, for `klyrek-dashboard` or other tooling to
  consume.
- **`render_html`** — a self-contained, styled HTML report. All target-derived content (finding
  titles, evidence, endpoint URLs) is HTML-escaped before embedding, since that content
  ultimately came from the site being scanned and should never be trusted to render as raw HTML
  in a report someone opens in a browser.

`remediation.remediation_for(title)` maps the finding titles Klyrek's own detectors
(`klyrek-headers`, `klyrek-js`, `klyrek-assets`, ...) produce to generic remediation guidance —
a fixed, curated lookup, not an open-ended knowledge base.

```python
from klyrek_report.markdown import render_markdown
from klyrek_report.html import render_html
from klyrek_report.json_export import render_json

report_md = render_markdown(scan_result)
report_html = render_html(scan_result)
report_json = render_json(scan_result)
```
