feat(reporting): Enhance CSV, extend JSON schema, and add Markdown export
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 5.6k
- Forks
- 1.2k
- Avg merge
- 1d 21h
- Merged PRs (30d)
- 16
Description
Description:
Nettacker already supports HTML, CSV and JSON exports as part of its comprehensive reporting features. These formats are a major strength compared to other tools. However, there are opportunities to enhance and extend reporting to make results more reliable and more useful for modern workflows.
Motivation:
-
CSV: While supported, there have been bug reports (e.g., API crashes) and inconsistencies. Stabilizing CSV export will improve reliability.
-
JSON: Current JSON output is useful, but extending it into a SIEM‑friendly schema (with fields like severity, CVE, tags, timestamp) would allow direct ingestion into Splunk/ELK.
-
Markdown: A new format, useful for sharing results in GitHub issues, documentation, or wikis.
Scope:
-
Keep implementation modular in a new reporting module (e.g., nettacker/lib/report_export/).
-
Avoid changes to core scanning logic.
-
Add CLI option --report-format with choices: html, json, csv, markdown, siem-json.
-
Default remains HTML/JSON for backward compatibility.
Deliverables:
-
CSV stabilization — fix bugs and ensure consistent schema across CLI and API.
-
Markdown export — generate tables for easy sharing.
-
Extended JSON schema — add SIEM‑friendly fields.
-
Documentation updates in docs/Usage.md.
-
Unit tests for each format.
Example outputs for each format.
Non‑Goals:
No changes to core scanning logic.
No external dependencies beyond Python standard library.
No dashboard or visualization work (future scope).
Benefits:
-
Builds on Nettacker’s existing strengths (CSV/JSON).
-
Adds new formats (Markdown, SIEM‑JSON) for broader usability.
-
Improves reliability and integration with modern security workflows.
Testing:
-
Verify CSV export works for CLI and API across multiple modules/targets.
-
Validate JSON schema against SIEM ingestion requirements.
-
Confirm Markdown tables render correctly.
-
Add unit tests for each format.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by locating the existing CLI and API report-export paths, then review the proposed nettacker/lib/report_export/ module and docs/Usage.md. Identify current format tests before defining the modular scope. Done means the requested formats, CLI option, documentation, examples, and unit tests are covered without changing scanning logic.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- api, cli, security
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100