compliance

package
v0.2.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 23, 2026 License: GPL-3.0 Imports: 22 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func WithCachedCampaignRole

func WithCachedCampaignRole(ctx context.Context, tenantID, campaignID, userID string, role pentest.CampaignRole) context.Context

WithCachedCampaignRole returns a new context with the given role memoized for the duration of the request.

Types

type CampaignAddMemberInput

type CampaignAddMemberInput struct {
	TenantID   string
	CampaignID string
	UserID     string
	Role       string
	ActorID    string
}

CampaignAddMemberInput contains input for adding a campaign member.

type CampaignRemoveMemberInput

type CampaignRemoveMemberInput struct {
	TenantID   string
	CampaignID string
	UserID     string
	ActorID    string // the user performing the removal (for self-remove check)
}

CampaignRemoveMemberInput contains input for removing a campaign member.

type CampaignTeamChangeResult

type CampaignTeamChangeResult struct {
	Member  *pentest.CampaignMember
	Warning string // optional soft warning (e.g., last reviewer removed with in_review findings)
}

CampaignTeamChangeResult captures the outcome of team membership changes that may carry soft warnings the caller should show the user.

type CampaignUpdateMemberRoleInput

type CampaignUpdateMemberRoleInput struct {
	TenantID   string
	CampaignID string
	UserID     string
	NewRole    string
	ActorID    string // the user performing the update, for audit trail
}

CampaignUpdateMemberRoleInput contains input for changing a member's role.

type ComplianceService

type ComplianceService struct {
	// contains filtered or unexported fields
}

ComplianceService handles compliance framework business operations.

func NewComplianceService

func NewComplianceService(
	frameworkRepo compliancedom.FrameworkRepository,
	controlRepo compliancedom.ControlRepository,
	assessmentRepo compliancedom.AssessmentRepository,
	mappingRepo compliancedom.MappingRepository,
	log *logger.Logger,
) *ComplianceService

NewComplianceService creates a new ComplianceService.

func (*ComplianceService) GetComplianceStats

func (s *ComplianceService) GetComplianceStats(ctx context.Context, tenantID string) (*ComplianceStatsResponse, error)

GetComplianceStats returns overall compliance statistics.

func (*ComplianceService) GetControl

func (s *ComplianceService) GetControl(ctx context.Context, tenantID, id string) (*compliancedom.Control, error)

GetControl retrieves a control by ID and verifies its framework is accessible to the tenant.

func (*ComplianceService) GetControlFindings

func (s *ComplianceService) GetControlFindings(ctx context.Context, tenantID, controlID string) ([]*compliancedom.FindingControlMapping, error)

GetControlFindings lists findings mapped to a control.

func (*ComplianceService) GetFindingControls

func (s *ComplianceService) GetFindingControls(ctx context.Context, tenantID, findingID string) ([]*compliancedom.FindingControlMapping, error)

GetFindingControls lists controls mapped to a finding.

func (*ComplianceService) GetFramework

func (s *ComplianceService) GetFramework(ctx context.Context, tenantID, id string) (*compliancedom.Framework, error)

GetFramework retrieves a framework by ID with tenant isolation.

func (*ComplianceService) GetFrameworkBySlug

func (s *ComplianceService) GetFrameworkBySlug(ctx context.Context, slug string) (*compliancedom.Framework, error)

GetFrameworkBySlug retrieves a system framework by slug.

func (*ComplianceService) GetFrameworkStats

func (s *ComplianceService) GetFrameworkStats(ctx context.Context, tenantID, frameworkID string) (*compliancedom.FrameworkStats, error)

GetFrameworkStats returns compliance statistics for a framework.

func (*ComplianceService) ListAssessments

func (s *ComplianceService) ListAssessments(ctx context.Context, tenantID, frameworkID string, page pagination.Pagination) (pagination.Result[*compliancedom.Assessment], error)

ListAssessments lists assessments for a framework.

func (*ComplianceService) ListControls

func (s *ComplianceService) ListControls(ctx context.Context, tenantID, frameworkID string, page pagination.Pagination) (pagination.Result[*compliancedom.Control], error)

ListControls lists controls for a framework with tenant verification.

func (*ComplianceService) ListFrameworks

ListFrameworks lists compliance frameworks.

func (*ComplianceService) MapFindingToControl

func (s *ComplianceService) MapFindingToControl(ctx context.Context, tenantID, findingID, controlID, actorID string, impact string) (*compliancedom.FindingControlMapping, error)

MapFindingToControl maps a finding to a compliance control.

func (*ComplianceService) SetFindingRepository

func (s *ComplianceService) SetFindingRepository(repo vulnerability.FindingRepository)

SetFindingRepository sets the finding repository for draft guard on compliance mapping.

func (*ComplianceService) UnmapFindingFromControl

func (s *ComplianceService) UnmapFindingFromControl(ctx context.Context, tenantID, mappingID string) error

UnmapFindingFromControl removes a mapping.

func (*ComplianceService) UpdateAssessment

UpdateAssessment creates or updates a control assessment.

type ComplianceStatsResponse

type ComplianceStatsResponse struct {
	TotalFrameworks int `json:"total_frameworks"`
	TotalControls   int `json:"total_controls"`
	OverdueControls int `json:"overdue_controls"`
}

ComplianceStatsResponse contains overall compliance stats.

type CreateCampaignInput

type CreateCampaignInput struct {
	TenantID          string
	Name              string
	Description       string
	CampaignType      string
	Priority          string
	Methodology       string
	ClientName        string
	ClientContact     string
	StartDate         *string
	EndDate           *string
	Objectives        []string
	ScopeItems        []map[string]any
	RulesOfEngagement map[string]any
	LeadUserID        *string
	TeamUserIDs       []string
	AssetIDs          []string
	AssetGroupIDs     []string
	Tags              []string
	ActorID           string
}

CreateCampaignInput contains the input for creating a campaign.

type CreateControlTestInput

type CreateControlTestInput struct {
	TenantID       string
	Name           string
	Description    string
	Framework      string
	ControlID      string
	ControlName    string
	Category       string
	TestProcedure  string
	ExpectedResult string
	RiskLevel      string
	Tags           []string
}

CreateControlTestInput holds input for creating a control test.

type CreateReportInput

type CreateReportInput struct {
	TenantID   string
	CampaignID string
	Name       string
	ReportType string
	Format     string
	Options    map[string]any
	ActorID    string
}

CreateReportInput contains input for creating a report.

type CreateRetestInput

type CreateRetestInput struct {
	TenantID          string
	FindingID         string
	Status            string
	Notes             string
	Evidence          []map[string]any
	ActorID           string
	ActorCampaignRole pentest.CampaignRole // role of the actor in the campaign (for auto-status logic)
}

CreateRetestInput contains input for creating a retest.

type CreateSimulationInput

type CreateSimulationInput struct {
	TenantID           string
	Name               string
	Description        string
	SimulationType     string
	MitreTactic        string
	MitreTechniqueID   string
	MitreTechniqueName string
	TargetAssets       []string
	Config             map[string]any
	Tags               []string
	ActorID            string
}

CreateSimulationInput holds input for creating a simulation.

type CreateTemplateInput

type CreateTemplateInput struct {
	Name             string   `json:"name"`
	Category         string   `json:"category"`
	Severity         string   `json:"severity"`
	OWASPCategory    string   `json:"owasp_category"`
	CWEID            string   `json:"cwe_id"`
	Description      string   `json:"description"`
	StepsToReproduce []string `json:"steps_to_reproduce"`
	BusinessImpact   string   `json:"business_impact"`
	TechnicalImpact  string   `json:"technical_impact"`
	Remediation      string   `json:"remediation"`
	ReferenceURLs    []string `json:"reference_urls"`
	Tags             []string `json:"tags"`
}

CreateTemplateInput contains input for creating a template.

type PentestFindingInput

type PentestFindingInput struct {
	TenantID            string
	CampaignID          string
	AssetID             string // Required for unified findings (CTEM asset linkage)
	Title               string
	Description         string
	Severity            string
	Status              string
	CVSSScore           *float64
	CVSSVector          string
	CWEID               string
	CVEID               string
	OWASPCategory       string
	AffectedAssets      []string // Legacy: for pentest_findings table
	AffectedAssetsText  []string // For unified: free-text asset references
	StepsToReproduce    []string
	PoCCode             string
	Evidence            []map[string]any
	RequestResponses    []map[string]any
	BusinessImpact      string
	TechnicalImpact     string
	RemediationGuidance string
	RemediationDeadline *string
	ReferenceURLs       []string
	AssignedTo          *string
	ReviewedBy          *string
	Tags                []string
	ActorID             string
	TemplateID          *string
}

PentestFindingInput contains the input for creating a pentest finding.

type PentestService

type PentestService struct {
	// contains filtered or unexported fields
}

PentestService handles pentest campaign business operations.

func NewPentestService

func NewPentestService(
	campaignRepo pentest.CampaignRepository,
	findingRepo pentest.FindingRepository,
	retestRepo pentest.RetestRepository,
	templateRepo pentest.TemplateRepository,
	reportRepo pentest.ReportRepository,
	log *logger.Logger,
) *PentestService

NewPentestService creates a new PentestService.

func (*PentestService) AddCampaignMember

func (s *PentestService) AddCampaignMember(ctx context.Context, input CampaignAddMemberInput) (*pentest.CampaignMember, error)

AddCampaignMember adds a user to a campaign with a specific role. Logs an audit event on success.

func (*PentestService) BatchListCampaignMembers

func (s *PentestService) BatchListCampaignMembers(ctx context.Context, tenantID string, campaignIDs []string) (map[string][]*pentest.CampaignMember, error)

BatchListCampaignMembers returns members grouped by campaign ID for batch enrichment.

func (*PentestService) CheckFindingAccess

func (s *PentestService) CheckFindingAccess(ctx context.Context, tenantID, findingID, userID string, isAdmin bool) error

CheckFindingAccess verifies that a user has campaign membership for a pentest finding. Implements FindingCampaignAccessChecker interface used by attachment handler.

func (*PentestService) CreateCampaign

func (s *PentestService) CreateCampaign(ctx context.Context, input CreateCampaignInput) (*pentest.Campaign, error)

CreateCampaign creates a new pentest campaign.

func (*PentestService) CreateFinding

func (s *PentestService) CreateFinding(ctx context.Context, input PentestFindingInput) (*pentest.Finding, error)

CreateFinding creates a new pentest finding.

func (*PentestService) CreateReport

func (s *PentestService) CreateReport(ctx context.Context, input CreateReportInput) (*pentest.Report, error)

CreateReport creates a report and marks it as generating.

func (*PentestService) CreateRetest

func (s *PentestService) CreateRetest(ctx context.Context, input CreateRetestInput) (*pentest.Retest, error)

CreateRetest creates a retest and auto-updates finding status.

func (*PentestService) CreateTemplate

func (s *PentestService) CreateTemplate(ctx context.Context, tenantID string, input CreateTemplateInput) (*pentest.Template, error)

CreateTemplate creates a new finding template.

func (*PentestService) CreateUnifiedFinding

func (s *PentestService) CreateUnifiedFinding(ctx context.Context, input PentestFindingInput) (*vulnerability.Finding, error)

CreateUnifiedFinding creates a pentest finding in the unified findings table. This is the CTEM-integrated version: finding goes directly into `findings` table with source='pentest', enabling dashboard, SLA, compliance, and risk scoring.

func (*PentestService) DeleteCampaign

func (s *PentestService) DeleteCampaign(ctx context.Context, tenantID, campaignID string) error

DeleteCampaign deletes a campaign and cascades to findings, retests, reports.

func (*PentestService) DeleteFinding

func (s *PentestService) DeleteFinding(ctx context.Context, tenantID, findingID string) error

DeleteFinding deletes a pentest finding. Uses the unified finding repo when available to delete from the correct table.

func (*PentestService) DeleteReport

func (s *PentestService) DeleteReport(ctx context.Context, tenantID, reportID string) error

DeleteReport deletes a report.

func (*PentestService) DeleteTemplate

func (s *PentestService) DeleteTemplate(ctx context.Context, tenantID, id string) error

DeleteTemplate deletes a template. System templates cannot be deleted.

func (*PentestService) GenerateReportHTML

func (s *PentestService) GenerateReportHTML(ctx context.Context, tenantID, campaignID string, options map[string]any) (string, error)

GenerateReportHTML generates an HTML report for a campaign.

func (*PentestService) GetBatchCampaignStats

func (s *PentestService) GetBatchCampaignStats(ctx context.Context, tenantID string, campaignIDs []string) (map[string]*pentest.CampaignStats, error)

GetBatchCampaignStats returns finding statistics for multiple campaigns in one query.

func (*PentestService) GetCampaign

func (s *PentestService) GetCampaign(ctx context.Context, tenantID, campaignID string) (*pentest.Campaign, error)

GetCampaign retrieves a campaign by ID.

func (*PentestService) GetCampaignStats

func (s *PentestService) GetCampaignStats(ctx context.Context, tenantID, campaignID string) (*pentest.CampaignStats, error)

GetCampaignStats returns finding statistics for a campaign.

func (*PentestService) GetFinding

func (s *PentestService) GetFinding(ctx context.Context, tenantID, findingID string) (*pentest.Finding, error)

GetFinding retrieves a pentest finding by ID.

func (*PentestService) GetReport

func (s *PentestService) GetReport(ctx context.Context, tenantID, reportID string) (*pentest.Report, error)

GetReport retrieves a report by ID.

func (*PentestService) GetTemplate

func (s *PentestService) GetTemplate(ctx context.Context, tenantID, id string) (*pentest.Template, error)

GetTemplate retrieves a template by ID with tenant isolation.

func (*PentestService) GetUnifiedFinding

func (s *PentestService) GetUnifiedFinding(ctx context.Context, tenantID, findingID string) (*vulnerability.Finding, error)

GetUnifiedFinding retrieves a pentest finding from the unified findings table. Returns ErrNotFound if the finding exists but is not a pentest finding.

func (*PentestService) GetUserCampaignRole

func (s *PentestService) GetUserCampaignRole(ctx context.Context, tenantID, campaignID, userID string) (pentest.CampaignRole, error)

GetUserCampaignRole returns the user's role in a campaign.

func (*PentestService) ListAllPentestFindings

func (s *PentestService) ListAllPentestFindings(ctx context.Context, tenantID, campaignID, viewerUserID, search string, isAdmin bool, page pagination.Pagination) (pagination.Result[*vulnerability.Finding], error)

ListAllPentestFindings lists all pentest findings across all campaigns. If campaignID is provided, filters by that campaign.

Visibility: when viewerUserID is non-empty AND isAdmin=false, findings are restricted to campaigns the viewer is a member of (pentest_campaign_members). Admin callers see everything.

func (*PentestService) ListCampaignMembers

func (s *PentestService) ListCampaignMembers(ctx context.Context, tenantID, campaignID string) ([]*pentest.CampaignMember, error)

ListCampaignMembers returns all members of a campaign.

func (*PentestService) ListCampaigns

ListCampaigns lists campaigns with filtering and pagination.

func (*PentestService) ListFindings

ListFindings lists findings with filtering and pagination.

func (*PentestService) ListReports

ListReports lists reports with filtering.

func (*PentestService) ListRetests

func (s *PentestService) ListRetests(ctx context.Context, tenantID, findingID string) ([]*pentest.Retest, error)

ListRetests lists retests for a finding.

func (*PentestService) ListTemplates

ListTemplates lists templates with filtering.

func (*PentestService) ListUnifiedCampaignFindings

func (s *PentestService) ListUnifiedCampaignFindings(ctx context.Context, tenantID, campaignID string, page pagination.Pagination) (pagination.Result[*vulnerability.Finding], error)

ListUnifiedCampaignFindings lists pentest findings from the unified findings table filtered by campaign.

func (*PentestService) RemoveCampaignMember

func (s *PentestService) RemoveCampaignMember(ctx context.Context, input CampaignRemoveMemberInput) (string, error)

RemoveCampaignMember removes a user from a campaign. Validates: not removing last lead, not self-removing if lead. Returns a soft warning string if removing the last reviewer while in_review findings exist. Lead integrity check + delete are serialized via a transaction with SELECT FOR UPDATE.

func (*PentestService) RequireCampaignWritableForFinding

func (s *PentestService) RequireCampaignWritableForFinding(ctx context.Context, tenantID string, finding *vulnerability.Finding, allowExistingUpdates bool) error

RequireCampaignWritableForFinding looks up the finding's campaign and applies the writability lock check. Used by finding-direct routes that don't go through campaign-scoped middleware. allowExistingUpdates: if true, on_hold campaigns allow updating existing items (block only new creation).

func (*PentestService) ResolveCampaignRoleForFinding

func (s *PentestService) ResolveCampaignRoleForFinding(ctx context.Context, tenantID, findingID, userID string, isAdmin bool) (pentest.CampaignRole, *vulnerability.Finding, error)

ResolveCampaignRoleForFinding resolves the caller's campaign role from a unified finding. Used by finding-direct routes where campaign ID is not in the URL. Returns role and the finding. Admin callers get empty role (bypass enforced elsewhere).

Performance: honours a role already resolved by CampaignRoleResolver middleware (if the request path goes through /campaigns/{id}/...) to avoid redundant queries. For pure finding-direct routes the middleware isn't wired, so we hit the DB once.

func (*PentestService) SetAuditService

func (s *PentestService) SetAuditService(svc *auditapp.AuditService)

func (*PentestService) SetCampaignMemberRepository

func (s *PentestService) SetCampaignMemberRepository(repo pentest.CampaignMemberRepository)

SetCampaignMemberRepository sets the campaign member repository.

func (*PentestService) SetFindingActivityService

func (s *PentestService) SetFindingActivityService(svc *activity.FindingActivityService)

SetAuditService wires an audit service for team change logging (fire-and-forget). SetFindingActivityService sets the finding activity service for audit trail.

func (*PentestService) SetTenantMemberChecker

func (s *PentestService) SetTenantMemberChecker(checker TenantMemberChecker)

SetTenantMemberChecker sets the tenant membership validator.

func (*PentestService) SetUnifiedFindingRepository

func (s *PentestService) SetUnifiedFindingRepository(repo vulnerability.FindingRepository)

SetUnifiedFindingRepository sets the unified finding repository for CTEM integration. When set, pentest findings are created in the findings table (source='pentest').

func (*PentestService) SetUserNotificationService

func (s *PentestService) SetUserNotificationService(svc *integration.NotificationService)

SetUserNotificationService sets the in-app notification service.

func (*PentestService) UpdateCampaign

func (s *PentestService) UpdateCampaign(ctx context.Context, input UpdateCampaignInput) (*pentest.Campaign, error)

UpdateCampaign updates an existing campaign.

func (*PentestService) UpdateCampaignMemberRole

func (s *PentestService) UpdateCampaignMemberRole(ctx context.Context, input CampaignUpdateMemberRoleInput) error

UpdateCampaignMemberRole changes a member's role. Validates: not demoting the last lead.

func (*PentestService) UpdateCampaignStatus

func (s *PentestService) UpdateCampaignStatus(ctx context.Context, tenantID, campaignID, newStatus string) (*StatusChangeResult, error)

UpdateCampaignStatus transitions the campaign status. Returns a warning if completing with open findings (does not block).

func (*PentestService) UpdateFinding

func (s *PentestService) UpdateFinding(ctx context.Context, tenantID, findingID string, input PentestFindingInput) (*pentest.Finding, error)

UpdateFinding updates a pentest finding.

func (*PentestService) UpdateFindingStatus

func (s *PentestService) UpdateFindingStatus(ctx context.Context, tenantID, findingID, newStatus, actorID string) (*pentest.Finding, error)

UpdateFindingStatus transitions the finding status.

func (*PentestService) UpdatePentestFindingStatus

func (s *PentestService) UpdatePentestFindingStatus(ctx context.Context, tenantID, findingID, newStatus, actorID string) (*vulnerability.Finding, error)

UpdatePentestFindingStatus transitions a pentest finding's status with validation.

func (*PentestService) UpdateTemplate

func (s *PentestService) UpdateTemplate(ctx context.Context, tenantID, id string, input CreateTemplateInput) (*pentest.Template, error)

UpdateTemplate updates a template. Returns error if system template.

func (*PentestService) UpdateUnifiedFinding

func (s *PentestService) UpdateUnifiedFinding(ctx context.Context, tenantID, findingID string, input PentestFindingInput) (*vulnerability.Finding, error)

UpdateUnifiedFinding updates a pentest finding in the unified findings table.

type PentestSourceMetadata

type PentestSourceMetadata struct {
	StepsToReproduce    []string         `json:"steps_to_reproduce,omitempty"`
	PoCCode             string           `json:"poc_code,omitempty"`
	Evidence            []map[string]any `json:"evidence,omitempty"`
	RequestResponses    []map[string]any `json:"request_responses,omitempty"`
	BusinessImpact      string           `json:"business_impact,omitempty"`
	TechnicalImpact     string           `json:"technical_impact,omitempty"`
	RemediationGuidance string           `json:"remediation_guidance,omitempty"`
	ReviewedBy          string           `json:"reviewed_by,omitempty"`
	OWASPCategory       string           `json:"owasp_category,omitempty"`
	CWEID               string           `json:"cwe_id,omitempty"`
	AffectedAssets      []string         `json:"affected_assets,omitempty"`
	ReferenceURLs       []string         `json:"reference_urls,omitempty"`
}

PentestSourceMetadata holds pentest-specific data stored in findings.source_metadata JSONB.

type RecordControlTestResultInput

type RecordControlTestResultInput struct {
	TenantID   string
	ControlID  string
	Status     string
	Evidence   string
	Notes      string
	TestedByID string
}

RecordControlTestResult records a test result.

type SimulationService

type SimulationService struct {
	// contains filtered or unexported fields
}

SimulationService manages attack simulations and control tests.

func NewSimulationService

func NewSimulationService(simRepo simulation.SimulationRepository, controlRepo simulation.ControlTestRepository, log *logger.Logger) *SimulationService

NewSimulationService creates a new simulation service.

func (*SimulationService) CreateControlTest

CreateControlTest creates a new control test.

func (*SimulationService) CreateSimulation

CreateSimulation creates a new attack simulation.

func (*SimulationService) DeleteControlTest

func (s *SimulationService) DeleteControlTest(ctx context.Context, tenantID, ctID string) error

DeleteControlTest deletes a control test.

func (*SimulationService) DeleteSimulation

func (s *SimulationService) DeleteSimulation(ctx context.Context, tenantID, simID string) error

DeleteSimulation deletes a simulation.

func (*SimulationService) GetControlTest

func (s *SimulationService) GetControlTest(ctx context.Context, tenantID, ctID string) (*simulation.ControlTest, error)

GetControlTest retrieves a control test by ID.

func (*SimulationService) GetControlTestStats

func (s *SimulationService) GetControlTestStats(ctx context.Context, tenantID string) ([]simulation.FrameworkStats, error)

GetControlTestStats returns aggregated stats per framework.

func (*SimulationService) GetSimulation

func (s *SimulationService) GetSimulation(ctx context.Context, tenantID, simID string) (*simulation.Simulation, error)

GetSimulation retrieves a simulation by ID.

func (*SimulationService) ListControlTests

ListControlTests lists control tests with filtering.

func (*SimulationService) ListSimulationRuns

func (s *SimulationService) ListSimulationRuns(ctx context.Context, tenantID, simID string, page pagination.Pagination) (pagination.Result[*simulation.SimulationRun], error)

ListSimulationRuns lists runs for a specific simulation.

func (*SimulationService) ListSimulations

ListSimulations lists simulations with filtering.

func (*SimulationService) RecordControlTestResult

func (s *SimulationService) RecordControlTestResult(ctx context.Context, input RecordControlTestResultInput) (*simulation.ControlTest, error)

RecordControlTestResult records a test result.

func (*SimulationService) RunSimulation

func (s *SimulationService) RunSimulation(ctx context.Context, tenantID, simID, actorID string) (*simulation.SimulationRun, error)

RunSimulation creates a new run for a simulation and executes it. For atomic simulations, execution is inline (technique check + detection validation). For campaign simulations, this starts the first step and tracks progress.

func (*SimulationService) SetRunRepo

func (s *SimulationService) SetRunRepo(repo simulation.RunRepository)

SetRunRepo sets the run repository (optional — nil disables run persistence).

func (*SimulationService) UpdateSimulation

UpdateSimulation updates a simulation.

type StatusChangeResult

type StatusChangeResult struct {
	Campaign *pentest.Campaign
	Warning  string
}

StatusChangeResult wraps campaign + optional warning for status transitions.

type TenantMemberChecker

type TenantMemberChecker interface {
	IsTenantMember(ctx context.Context, tenantID, userID string) bool
}

TenantMemberChecker verifies if a user belongs to a tenant.

type UpdateAssessmentInput

type UpdateAssessmentInput struct {
	TenantID    string
	FrameworkID string
	ControlID   string
	Status      string
	Priority    string
	Owner       string
	Notes       string
	DueDate     *string
	ActorID     string
}

UpdateAssessmentInput contains input for updating an assessment.

type UpdateCampaignInput

type UpdateCampaignInput struct {
	TenantID          string
	CampaignID        string
	Name              string
	Description       string
	CampaignType      string
	Priority          string
	Methodology       string
	ClientName        string
	ClientContact     string
	StartDate         *string
	EndDate           *string
	Objectives        []string
	ScopeItems        []map[string]any
	RulesOfEngagement map[string]any
	LeadUserID        *string
	TeamUserIDs       []string
	AssetIDs          []string
	AssetGroupIDs     []string
	Tags              []string
	Metadata          map[string]any
}

UpdateCampaignInput contains the input for updating a campaign.

type UpdateSimulationInput

type UpdateSimulationInput struct {
	TenantID           string
	SimulationID       string
	Name               string
	Description        string
	MitreTactic        string
	MitreTechniqueID   string
	MitreTechniqueName string
	TargetAssets       []string
	Config             map[string]any
	Tags               []string
}

UpdateSimulationInput holds input for updating a simulation.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL