dastworkflow

package
v0.1.8 Latest Latest
Warning

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

Go to latest
Published: Aug 15, 2026 License: Apache-2.0 Imports: 24 Imported by: 0

Documentation

Overview

Package dastworkflow coordinates the governed DAST verification lifecycle.

It deliberately reuses Synapse's existing approval and safety gate primitives instead of inventing a second approval path: propose creates an intrusive, approval-required action; decide records a human decision; run re-admits the decided action through safety.Gate and then calls the safe dastrunner.

Index

Constants

View Source
const (
	ToolAuthenticatedScan   = "run_authenticated_dast"
	ActionAuthenticatedScan = "dast.authenticated_scan"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type Proposal

type Proposal struct {
	Action   agent.ProposedAction   `json:"action"`
	Decision agent.ApprovalDecision `json:"decision"`
}

type ScanCeilings added in v0.1.8

type ScanCeilings struct {
	MaxReauth   int
	RatePerSec  int
	Concurrency int
	Limits      dastcrawl.Limits
}

func DefaultScanCeilings added in v0.1.8

func DefaultScanCeilings() ScanCeilings

type ScanConfig added in v0.1.8

type ScanConfig struct {
	Target           string             `json:"target"`
	Session          dastsession.Config `json:"session"`
	Crawler          dastcrawl.Input    `json:"crawler"`
	Limits           dastcrawl.Limits   `json:"limits"`
	RatePerSec       int                `json:"rate_per_sec"`
	Concurrency      int                `json:"concurrency"`
	SelectedCheckIDs []string           `json:"selected_check_ids,omitempty"`
}

ScanConfig is the complete secret-free DAST run input. Credential references are names in the engagement vault; plaintext values and secret placeholders are invalid.

type ScanResult added in v0.1.8

type ScanResult struct {
	Digest     string               `json:"config_sha256"`
	Surface    dastsurface.Surface  `json:"surface"`
	Coverage   dastsurface.Coverage `json:"coverage"`
	Incomplete bool                 `json:"incomplete"`
	Reason     string               `json:"reason,omitempty"`
	Proofs     []ports.DASTProof    `json:"proofs"`
}

type Service

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

func NewService

func NewService(gate *safety.Gate, approvals *approval.Service, store ports.ApprovalStore, runner *dastrunner.Service, ev *evidence.Service, clock ports.Clock, ids ports.IDGenerator) (*Service, error)

func (*Service) Decide

func (s *Service) Decide(ctx context.Context, human string, engagementID, actionID shared.ID, approve bool, reason string) (agent.ApprovalDecision, error)

func (*Service) Propose

func (s *Service) Propose(ctx context.Context, actor string, engagementID shared.ID, probe dastrunner.Probe) (Proposal, error)

func (*Service) ProposeScan added in v0.1.8

func (s *Service) ProposeScan(ctx context.Context, actor string, engagementID shared.ID, config ScanConfig) (Proposal, error)

func (*Service) Run

func (s *Service) Run(ctx context.Context, actor string, engagementID, actionID shared.ID, probe dastrunner.Probe) (dastrunner.Result, error)

func (*Service) RunScan added in v0.1.8

func (s *Service) RunScan(ctx context.Context, actor string, engagementID, actionID shared.ID, config ScanConfig) (ScanResult, error)

func (*Service) SetScan added in v0.1.8

func (s *Service) SetScan(session scanSession, helperBin string, ev *evidence.Service, evaluator ports.DASTCheckEvaluator, proofVerifier ports.DASTProofVerifier, judgments scanJudgmentProposer, verifier scanProofVerifier, ceilings ScanCeilings) error

Jump to

Keyboard shortcuts

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