Overview
Faction’s reporting engine transforms assessment data into professional DOCX reports using customizable templates. The system supports multiple report templates per team, assessment-type-specific templates, retest reports, and advanced customization through report variables.Report Templates
Report templates are managed through theReportTemplates class (src/com/fuse/dao/ReportTemplates.java) and support extensive customization.
Template Properties
Template Storage
Templates can be stored in two ways:- Database Storage
- File System Storage
Templates stored as base64-encoded data within the database:Benefits:
- No filesystem dependencies
- Included in database backups
- Easier deployment
Report Types
Assessment Reports
Full reports generated after completing security assessments:Retest Reports
Specialized reports for remediation validation:Retest templates typically include only re-tested vulnerabilities and remediation status, providing a focused validation document.
Report Generation
The report generation process transforms assessment data into formatted DOCX files:Generation Flow
Select Template
System identifies appropriate template based on:
- Assessment type
- Team assignment
- Retest flag
Report Variables
Templates use variables to dynamically insert assessment data. Common variables include:Standard Variables
| Variable | Description | Source |
|---|---|---|
{{assessment.name}} | Assessment name | Assessment.java:41 |
{{assessment.summary}} | Executive summary | Assessment.java:39 |
{{assessment.riskAnalysis}} | Risk analysis section | Assessment.java:40 |
{{assessment.start}} | Start date | Assessment.java:49 |
{{assessment.end}} | End date | Assessment.java:50 |
{{assessment.appId}} | Target application | Assessment.java:48 |
Vulnerability Variables
Templates can iterate over vulnerabilities:Custom Field Variables
Custom fields are accessible in templates:Graphics and Charts
Faction supports embedding charts and graphics in reports through extensions:Chart Types
Vulnerability Distribution
Pie charts showing findings by severity level
Category Breakdown
Bar charts of vulnerabilities by category (XSS, SQLi, etc.)
Risk Trends
Line charts showing risk over time for campaigns
Extension-Based Graphics
The App Store extension system enables custom chart generation:- Generate charts from assessment data
- Insert graphics into DOCX templates
- Create custom visualizations
- Add compliance matrices
The Jira integration and other App Store extensions demonstrate graphics capabilities for vulnerability distribution and status tracking.
Large Report Handling
Faction automatically handles large reports by chunking the data:Template Management
Default Template Initialization
New teams automatically receive a sample template:Template Customization
File Type Support
While DOCX is the primary format, Faction’s architecture supports extensibility:Future versions may support additional formats like PDF, HTML, or Markdown through the extension system.
Report Storage
Generated reports are stored in theFinalReport entity:
- Generation time: When report was created
- Report type: Assessment or retest
- File format: Output format used
- File size: Whether chunking was required
Multi-Template Strategy
Organizations can maintain multiple templates:By Assessment Type
- Web Application: Focused on OWASP findings
- Network Penetration Test: Infrastructure-focused layout
- Cloud Security Review: Cloud-specific sections and compliance
- Mobile Application: Mobile platform considerations
By Client or Compliance
- PCI DSS: Include PCI-specific language and requirements
- SOC 2: Align with trust service criteria
- Custom Client Templates: Match client’s preferred format
By Report Scope
- Executive Summary: High-level overview for leadership
- Technical Details: In-depth findings for security teams
- Retest Validation: Remediation-focused reporting
Best Practices
Version Control Templates
Version Control Templates
Maintain template versions to track changes over time. Download templates before making significant changes.
Test Variable Substitution
Test Variable Substitution
Always generate test reports after template changes to ensure variables populate correctly.
Standardize Formatting
Standardize Formatting
Use consistent styles in Word templates (Heading 1, Heading 2, etc.) for professional appearance.
Include Branding
Include Branding
Add company logos, color schemes, and footer information to templates for branded reports.
Plan for Graphics
Plan for Graphics
Reserve space in templates for charts and graphics that extensions will generate.
Next Steps
Custom Templates Guide
Comprehensive guide to creating custom report templates
Assessments
Learn about assessment data included in reports
Vulnerabilities
Understand vulnerability data for reporting
App Store Extensions
Extend reporting with custom graphics and features
