FluidAttacks API Entity Relationships
Overview
The FluidAttacks API provides a comprehensive security assessment and management system. This document outlines the key entities, their relationships, and access control mechanisms.
Key Components
- Organizations: Top-level structure and policy management
- Groups: Project and application organization
- Roots: Assessment target definition
- Findings and Vulnerabilities: Security issue tracking
- ToE: Detailed analysis components
- Stakeholders and Integrations: Access and automation management
- Events and Analytics: Monitoring and reporting
Core Entities
Organization
- Top-level entity for macro projects
- Manages groups, stakeholders, and policies
- Handles billing and compliance
- Controls access management and security standards
- Configures vulnerability acceptance policies
- Manages ZTNA (Zero Trust Network Access) settings
Group
- Project-level vulnerability management
- Contains roots, findings, and stakeholders
- Configures service attributes and policies
- Manages ToE (Target of Evaluation) components
- Tracks security metrics and analytics
- Integrates with third-party services
Root
- Security assessment target
- Types:
- Git Root: Repository assessment
- IP Root: Network assessment
- URL Root: Web application assessment
- Manages environment configurations
- Links to ToE components
- Controls access credentials
Finding
- Vulnerability type classification
- Contains descriptions and evidence
- Includes severity ratings and analytics
- Provides remediation guidance
- Supports tagging and categorization
- Integrates with external tracking
Vulnerability
- Specific security issue instance
- Contains location and technical details
- Uses CVSS severity scoring
- Tracks treatment and verification
- Supports zero-risk assessment
- Integrates with issue tracking
ToE (Target of Evaluation)
- Assessment target details
- Components:
- Inputs: Entry points and components
- Lines: Code coverage analysis
- Ports: Network information
- Tracks changes and history
- Measures security coverage
- Analyzes dependencies
Stakeholder
- System user representation
- Role-based permissions
- Notification preferences
- Activity tracking
- Verification capabilities
- Multi-group membership
Event
- Incident tracking
- Evidence documentation
- Verification workflow
- Stakeholder consultation
- Component linking
Integration
- External system connectivity
- Supported platforms:
- GitLab
- Azure DevOps
- CI/CD systems
- Workflow automation
- Issue synchronization
- Security check configuration
Analytics
- Security metrics and insights
- Vulnerability statistics
- Remediation timing
- Code composition analysis
- Usage and billing reporting
- Compliance monitoring
Entity Relationships
1. Organization → Group
Type: One-to-Many
Features:
- Group-wide policy management
- Centralized billing
- Stakeholder access control
- Compliance standard management
- Vulnerability acceptance criteria
- ZTNA logging
2. Group → Root
Type: One-to-Many
Features:
- Multiple root type support
- Environment URL configuration
- Docker image management
- ToE association
3. Group → Finding
Type: One-to-Many
Features:
- Vulnerability containment
- Severity classification
- Evidence documentation
- Organizational tagging
- Analytics tracking
4. Finding → Vulnerability
Type: One-to-Many
Features:
- CVSS scoring
- Treatment tracking
- Verification status
- Zero-risk handling
- Bug tracking integration
5. Group → ToE
Type: One-to-Many
Features:
- Attack history tracking
- Code change monitoring
- Dependency analysis
- Coverage measurement
6. Group → Stakeholder
Type: Many-to-Many
Features:
- Access control
- Permission management
- Activity monitoring
- Notification handling
7. Group → Integration
Type: One-to-Many
Features:
- Issue tracking
- DevSecOps integration
- Security automation
8. Group → Event
Type: One-to-Many
Features:
- Incident tracking
- Evidence management
- Verification process
- Consultation support
9. Organization → Compliance
Type: One-to-Many
Features:
- Standards tracking
- Policy management
- Security metrics
- Compliance reporting
10. Group → Analytics
Type: One-to-One
Features:
- Vulnerability metrics
- Remediation timing
- Code analysis
- Security tracking
- Usage reporting
Access Control
Organization Roles
ORGANIZATION_MANAGER
- Organization credential management
- Analytics handling
- Billing control
- Stakeholder and mailmap management
CUSTOMER_MANAGER
- Organization support
- Process streamlining
- Basic organization management
RESOURCER
- Organization input maintenance
- Resource management
USER
- Basic access
- Limited organization visibility
Stakeholder Roles
ADMIN
- Full platform access
- Treatment modification restricted
- Highest access level
ARCHITECT
- Ethical hacking quality assurance
- Pentesting deliverable oversight
- Quality control
GROUP_MANAGER
- Report generation
- Notification management
- Treatment handling
- Tag management
- Group administration
HACKER
- Vulnerability identification
- Security exploitation
- Finding documentation
- Security reporting
REATTACKER
- Solution verification
- Remediation checking
- Security fix validation
REVIEWER
- Vulnerability management
- Draft evaluation
- Risk level verification
- Quality control
SERVICE_FORCES
- Forces service execution
- Data querying
- Zero risk handling
- Tag management
- Group access
VULNERABILITY_MANAGER
- Report generation
- Notification handling
- Treatment management
- Reattack requests
- Tag administration
- Vulnerability oversight
API Usage
GraphQL Queries
Organization Groups
query GetOrganizationGroups($organizationId: String!) { organization(organizationId: $organizationId) { groups { name description hasForces service subscription } }}
Group Vulnerabilities
query GetGroupVulnerabilities( $group: String!, $first: Int, $state: VulnerabilityState, $severity: SeverityRating) { group(groupName: $group) { vulnerabilities( first: $first, state: $state, severityRating: $severity ) { edges { node { id state where severityRating treatmentStatus verification lastVerificationDate } } } openVulnerabilities maxOpenSeverity meanRemediate }}
Zero-Risk Vulnerabilities
query GetZeroRiskVulnerabilities($findingId: String!, $first: Int) { finding(identifier: $findingId) { zeroRiskConnection(first: $first) { edges { node { id where justification status } } } zeroRiskSummary { approved rejected pending } }}
Treatment Summary
query GetVulnerabilityTreatment($findingId: String!) { finding(identifier: $findingId) { treatmentSummary { accepted inProgress notDefined scheduled } verificationSummary { pending verified requested } vulnStats { open closed total } }}
Critical Vulnerabilities
query GetCriticalVulnerabilities($group: String!) { group(groupName: $group) { vulnerabilities( first: 100, severityRating: CRITICAL, state: VULNERABLE ) { edges { node { id where severityRating treatment lastVerificationDate attackVectorDescription remediation } } } maxOpenSeverity meanRemediateCriticalSeverity }}
User Roles
query Me { me { userEmail role organizations { groups { userRole } userRole } }}
Permissions
query Me { me { userEmail permissions organizations { groups { permissions } permissions } }}
Organization Permissions
query OrgPermissions($organizationId: String!) { organization(organizationId: $organizationId) { permissions userRole groups { name permissions } }}
Group Permissions
query GroupPermissions($groupName: String!) { group(groupName: $groupName) { permissions }}