Integrations & Adapters
Relevant source files
The following files were used as context for generating this wiki page:
The Integrations & Adapters module serves as the connectivity layer of the FixOps platform, enabling seamless communication between the core decision engine and external DevSecOps tools. This system follows a "Plug-and-Play" architecture, allowing the platform to ingest security findings from scanners, synchronize issues with tracking systems, and trigger workflows within CI/CD pipelines.
The architecture is divided into inbound integrations (Webhooks), outbound connectors (Issue Trackers/Communication), and specialized Adapters that normalize tool-specific data into the FixOps canonical format. This ensures that findings from diverse sources like Jira, GitHub, and SonarQube are treated consistently during policy evaluation and risk scoring.
Sources: CLI_API_INVENTORY.md:144-148, web/apps/integrations/app/page.tsx:7-60
Integration Architecture & Management
The integration system is managed via a centralized API router and a dedicated web interface. It supports several categories of tools, including Issue Tracking, Source Control, Communication, and Security Scanners. Each integration maintains its own configuration state, connection status, and synchronization metrics.
System Components
The following diagram illustrates the relationship between the Integration Router, the Adapters, and the external services they manage.
The integration flow manages the lifecycle of a connection from configuration to active synchronization.
Sources: apps/api/integrations_router.py, web/apps/integrations/app/page.tsx:7-60
Management Endpoints
The platform provides a suite of REST endpoints to manage the lifecycle of integrations.
| Endpoint | Method | Purpose |
|---|---|---|
/api/v1/integrations | GET | Lists all configured integrations and their statuses. |
/api/v1/integrations | POST | Configures a new integration instance. |
/api/v1/integrations/{id} | PUT | Updates the configuration of an existing integration. |
/api/v1/integrations/{id}/test | POST | Validates connectivity and credentials for an integration. |
/api/v1/integrations/{id}/sync | POST | Triggers a manual data synchronization (currently NO-OP). |
Sources: CLI_API_INVENTORY.md:130-141, web/apps/integrations/app/page.tsx:162-175
Outbound Connectors & Webhooks
FixOps categorizes integrations by their operational direction. Connectors handle outbound tasks like ticket creation, while Webhook receivers handle inbound events from external triggers.
Connector Capabilities
Different connectors support varying levels of bidirectional synchronization and background processing.
| Connector | Outbound Operations | Inbound (Webhook) | Background Worker |
|---|---|---|---|
| Jira | Create/Update Issue, Transition, Comment | Yes | Outbox Execute |
| GitHub | Create/Update Issue, Comment | No | Outbox Execute |
| ServiceNow | Create/Update Incident, Work Notes | Yes | Outbox Execute |
| Slack | Post Message | No | No |
Sources: CLI_API_INVENTORY.md:158-166
Webhook Event Flow
Inbound webhooks are processed through specific receivers that normalize the event payload before triggering internal workflows.
Inbound webhooks support events such as finding.created, finding.updated, and ssvc.decision.
Sources: web/apps/integrations/app/page.tsx:81-90, CLI_API_INVENTORY.md:144-156
Specialized Tool Adapters
Adapters are specific implementations designed to bridge the gap between third-party security tools and the FixOps data model. They handle authentication, data fetching, and normalization.
SonarQube Adapter
The SonarQube adapter is used to ingest SAST findings. It supports fetching issues based on project keys and types, converting them into the FixOps finding format.
- Key Operations:
fetch_issues(),normalize_severity(). - Data Mapping: Maps SonarQube
severityandtype(e.g., VULNERABILITY) to internal risk levels.
Sources: integrations/sonarqube/adapter.py, tests/e2e/comprehensive_e2e_test.py:102-108
GitHub Adapter
The GitHub adapter manages repository interactions, including scanning for dependency advisories and managing security issues.
- Configuration: Requires
orgname and a list ofrepos. - Authentication: Utilizes Personal Access Tokens (PAT) for API access.
- Stats Tracking: Monitors
repos_scannedandlast_synctime.
Sources: integrations/github/adapter.py, web/apps/integrations/app/page.tsx:26-39
Jira Connector
The Jira integration is the primary mechanism for remediation tracking. It synchronizes security findings with Jira tickets.
- Configuration Fields:
url,project,issue_type(e.g., Security Finding). - Drift Detection: Supported to ensure local findings match external ticket statuses.
Sources: web/apps/integrations/app/page.tsx:11-25, CLI_API_INVENTORY.md:158-160
Summary
The Integrations & Adapters system is critical for the automated DevSecOps lifecycle in FixOps. By providing a standardized interface for tool connectivity, it allows for centralized policy enforcement across diverse toolchains. The combination of outbound connectors for remediation and inbound webhooks for real-time response enables a closed-loop security operations environment.
Sources: CLI_API_INVENTORY.md:144-166, web/apps/integrations/app/page.tsx:340-355