Extension API Reference
This reference documents all interfaces, classes, and methods available in the FactionExtender library for building Faction extensions.Core Interfaces
The FactionExtender library provides five main interfaces that extensions implement to hook into Faction events.AssessmentManager
Handle assessment lifecycle events (create, update, complete, delete). Package:com.faction.extender
Methods
assessmentChange()
Called when an assessment changes state.assessment(Assessment) - The assessment object containing all assessment detailsvulnerabilities(List<Vulnerability>) - All vulnerabilities associated with this assessmentoperation(Operation) - The type of operation (CREATE, UPDATE, COMPLETE, DELETE)
AssessmentManagerResult containing modified assessment and vulnerabilities, or null if no changes
Example:
setConfigs()
Called when the extension is loaded to provide configuration parameters.configs(Map<String, String>) - Configuration key-value pairs from App Store
getLogs()
Returns log messages generated during extension execution.List<Log> - Log messages to be displayed in Faction logs
VulnerabilityManager
Process individual vulnerability changes. Package:com.faction.extender
Methods
vulnChange()
Called when a vulnerability is created, updated, or deleted.assessment(Assessment) - The parent assessmentvulnerability(Vulnerability) - The vulnerability being modifiedoperation(Operation) - The type of operation (CREATE, UPDATE, DELETE)
Vulnerability object, or null if no changes
Example:
setConfigs()
getLogs()
VerificationManager
Handle retest and verification workflows. Package:com.faction.extender
Methods
verificationChange()
Called when a verification/retest event occurs.assessor(User) - The user performing the verificationvulnerability(Vulnerability) - The vulnerability being retestedverification(Verification) - The verification/retest detailsoperation(Operation) - The type of operation (CREATE, UPDATE, COMPLETE)
Vulnerability object, or null if no changes
Example:
setConfigs()
getLogs()
ReportManager
Customize report generation and add dynamic content. Package:com.faction.extender
Methods
reportCreate()
Called during report generation, allowing modification of report text.assessment(Assessment) - The assessment being reportedvulnerabilities(List<Vulnerability>) - All vulnerabilities in the reportreportText(String) - Current report text/HTML
null if no changes
Example:
setConfigs()
getLogs()
ApplicationInventory
Integrate with external asset/inventory management systems. Package:com.faction.extender
Methods
search()
Called when searching for applications in the inventory.applicationId(String) - Application ID to search for (may be null)applicationName(String) - Application name to search for (may be null)
InventoryResult objects matching the search
Example:
setConfigs()
getLogs()
Data Model Classes
The following classes represent Faction’s core data structures passed to extensions.Assessment
Represents a penetration test or security assessment. Package:com.faction.elements
Properties
| Property | Type | Description |
|---|---|---|
id | Long | Unique assessment identifier |
name | String | Assessment name |
summary | String | Executive summary text |
riskAnalysis | String | Risk analysis text |
type | String | Assessment type (e.g., “Web Application”, “Network”) |
campaign | String | Campaign/project name |
assessors | List<User> | Users assigned to this assessment |
engagementContact | User | Client engagement contact |
remediationContact | User | Client remediation contact |
checklists | List<CheckList> | Assessment checklists |
customFields | List<CustomField> | Custom field values |
Methods
Vulnerability
Represents a security vulnerability finding. Package:com.faction.elements
Properties
| Property | Type | Description |
|---|---|---|
id | Long | Unique vulnerability identifier |
title | String | Vulnerability title |
description | String | Detailed description |
recommendation | String | Remediation recommendation |
details | String | Technical details and evidence |
severity | String | Severity level (Critical, High, Medium, Low) |
cvssScore | Double | CVSS score (if applicable) |
customFields | List<CustomField> | Custom field values |
Methods
User
Represents a Faction user. Package:com.faction.elements
Properties
| Property | Type | Description |
|---|---|---|
id | Long | Unique user identifier |
username | String | Username |
firstName | String | First name |
lastName | String | Last name |
email | String | Email address |
Verification
Represents a retest/verification event. Package:com.faction.elements
Properties
| Property | Type | Description |
|---|---|---|
id | Long | Unique verification identifier |
status | String | Verification status (Passed, Failed, Partial) |
notes | String | Verification notes |
assessor | User | User who performed the verification |
CustomField
Represents a custom field value. Package:com.faction.elements
Properties
| Property | Type | Description |
|---|---|---|
id | Long | Unique field identifier |
type | CustomType | Field type definition |
value | String | Field value |
Result Classes
Classes used to return data from extension methods.AssessmentManagerResult
Return value forAssessmentManager.assessmentChange().
Package: com.faction.elements.results
Methods
InventoryResult
Return value forApplicationInventory.search().
Package: com.faction.elements.results
Methods
Enumerations
Operation
Defines the type of operation being performed. Package:com.faction.extender
Values
| Value | Description |
|---|---|
CREATE | New entity created |
UPDATE | Existing entity updated |
COMPLETE | Entity marked as complete |
DELETE | Entity deleted |
EventType
Defines the type of event being processed. Package:com.fuse.extenderapi.Extensions
Values
| Value | Description | Interface |
|---|---|---|
INVENTORY | Application inventory events | ApplicationInventory |
ASMT_MANAGER | Assessment events | AssessmentManager |
VULN_MANAGER | Vulnerability events | VulnerabilityManager |
VER_MANAGER | Verification events | VerificationManager |
REPORT_MANAGER | Report generation events | ReportManager |
Logging
Log
Represents a log message generated by an extension. Package:com.faction.elements.utils
Constructor
Complete Extension Example
Here’s a complete, production-ready extension implementing multiple interfaces:Next Steps
Extension Development
Learn how to build extensions
App Store
Install and manage extensions
