(target, scan config) pair — manual or scheduled.
End-to-end flow
- Create a target.
- Create a scan config.
- Pair a target with a config and start a scan.
- Watch the live view as the agent runs.
- Findings land in the Pentest → Findings inbox.
(target, config) pair can be reused for nightly scheduled runs, ad-hoc manual runs, and pre-release deep dives. Findings flow into the unified inbox at Pentest → Findings regardless of how the scan was triggered.
Step 1 — Create a target
Pentest → Targets → New.| Field | Required | Notes |
|---|---|---|
| Name | Yes | Human-friendly identifier — e.g. staging-app, api-public-v2. Used everywhere the target is referenced. |
| Type | Yes | Web app / API / Codebase / Mobile backend. Drives which probe families are eligible. |
| Base URL or path | Yes | Public URL, internal URL/IP your worker can reach, or /var/lib/tigerstrike/codebase/<name> for codebases mounted on a self-hosted worker. |
| Description | optional | Free-text. Typically used for change-control links and primary contact. |
| Allowed paths | optional | Path allow-list — restrict the agent to specific routes. Glob-style: /api/v2/**, /webhooks/**. Leave empty to scan everything. |
| Forbidden paths | optional | Hard exclude — agent never discovers or probes these. Use for destructive endpoints (/admin/destroy-tenant, /api/users/*/delete, /payments/refund). |
| Auth | conditional | None / Basic / Bearer token / Form login / OAuth2 / Cookie. See the auth field walkthrough in Hosted scan → Authenticating. |
| Worker | Yes | Hosted (TigerGate-side) / <self-hosted-worker-name> / any-self-hosted. See Worker pinning. |
| Tags | optional | Free-form labels — team:platform, env:staging, release-blocker. Searchable across findings. |
| Notes | optional | Free-text. |
prod-readonly, staging-full, dev-full). Edit by clicking the row in Pentest → Targets; delete from the same view.
Step 2 — Create a scan config
Pentest → Scan Configs → New.| Field | Required | Default | Notes |
|---|---|---|---|
| Name | Yes | — | e.g. nightly-full, pr-quick-auth. |
| Scope | Yes | auth+api | auth / api / auth+api / full. See Picking a scope for time / cost trade-offs. |
| Max duration (minutes) | Yes | 60 | Wall-clock cap. Scan stops cleanly at the limit and returns whatever it found. |
| Per-scan budget (USD) | Yes | 10 | Hard cap on LLM spend for one run. Scan aborts when reached. |
| Concurrency | Yes | 2 | 1–4 parallel agents. Higher = faster but burns budget faster. |
| Reasoning model | Yes | claude-opus-4-7 | Primary planner — picks the next action. |
| Tool-use model | Yes | claude-sonnet-4-6 | Used for tool calls (HTTP probes, payload mutations). |
| Cheap model | Yes | claude-haiku-4-5 | Used for repetitive sub-steps (parsing responses, summarising). See LLM providers for the picker. |
| Categories | optional | All | Multi-select — XSS / SQLi / IDOR / SSRF / SSTI / Auth bypass / CSRF / Open redirect / Path traversal / Command injection / Deserialization / Prototype pollution / JWT / CORS / Rate limiting / Business logic. |
| Stop on first CRITICAL | optional | Off | Abort the scan as soon as one CRITICAL is confirmed — useful for “any finding fails the gate” flows. |
| Notify on finish | optional | Off | Pre-wire a Slack / email / webhook notification for this config. |
| Retain transcript | optional | On (30 days) | Keep the full agent transcript for reproduction. Off = only findings retained. |
| Tags | optional | — | Same tag vocabulary as targets. |
(target, config) pair is one scan; a single target can be paired with multiple configs (a nightly-full and a pr-quick-auth, e.g.).
Step 3 — Run a scan
Two ways. There is no CI / curl / CLI trigger — scans are started from the UI or by the scheduler.Manual run
Pentest → New Scan:Pick a scan config
Dropdown of every config. The page shows the config’s scope, max duration, and budget so you can sanity-check before launching.
Review the estimate
Below the form: Estimated duration (5–240 min) and Estimated cost (USD, model-dependent). The numbers come from past scans of similar shape.
Optional one-off overrides
Toggle Override config for this run to tweak max duration, budget, or concurrency for this run only — the saved config is untouched.
Scheduled run
Pentest → Schedules → New:| Field | Notes |
|---|---|
| Target + Scan config | Same pickers as the manual run. |
| Cadence | Cron expression, or one of the presets: hourly / daily / weekly / monthly. |
| Window | Restrict to a time-of-day window — e.g. 02:00–06:00 UTC to dodge prod traffic. |
| Skip if last run < N hours ago | Avoid double-firing if a manual run happened recently. |
| Notify on start / finish / failure | Wires up Slack / email / webhook from this schedule. |
scheduled so you can filter.
Step 4 — Live view
The scan opens at Pentest → Scans → <scan-id> with a live-updating view. What’s on the page:- Status banner —
Queued→Running→Completed/Stopped/Failed. Elapsed wall-clock time updates every second. - Progress bar — agent-reported completion estimate.
- Spend meter — live LLM cost against the per-scan budget. Turns red at 80 %.
- Agent transcript — streamed log of planner decisions + tool calls + findings as they’re confirmed. Auto-scrolls; click any line to pin.
- Findings list — every confirmed finding rendered immediately, sortable by severity / time / category.
- Controls — Pause (resume later), Stop (end the run; partial findings are kept), Open transcript (full agent log in a new tab).
Step 5 — After the scan
When the status flips to Completed, the page becomes static:- Findings roll into the unified Pentest → Findings inbox.
- Reproduction payloads are attached to each finding — copy/paste-able curl commands or HAR files.
- Spend report is finalised on the Spend tab.
- Schedule the next run button appears if this was a manual run that you might want to recur.
(target, config) pair, click Run again in the top-right.
Picking a scope
| Scope | Time | Cost | When |
|---|---|---|---|
auth | 5–15m | $ | Only the auth surface — login, MFA, password reset, session management |
api | 15–45m | $$ | Static API surface; you provide a token, agent probes endpoints |
auth+api | 30–90m | $$$ | Login flow + everything reachable as the authenticated user |
full | 60–240m | $$$$ | Above + deep crawl; finds the long-tail issues |
auth+api for general-purpose scans; reserve full for pre-release deep dives. The estimate on the New Scan page shows minutes + cost before you click Start.
Path scoping
For large apps, narrow the agent’s playground using the target’s Allowed paths field. Glob-style, one per line:Worker pinning
Each target pins to a worker:hosted— runs on TigerGate’s hosted worker. Default for public targets.<worker-name>— a specific self-hosted worker. Useful when you have multiple isolated networks and need each worker to scan only the network it’s on.any-self-hosted— whichever of your self-hosted workers is free first.
name is whatever you set as TIGERSTRIKE_WORKER_NAME in .env on the worker host.
Tagging
Tag targets + configs (team:platform, env:staging, release-blocker) — tags are searchable across Findings. Useful when:
- You want all findings on
team:payments-tagged targets routed to a specific Slack channel. - A release-gate rule that says “no open
release-blocker-tagged HIGH+ findings”. - Reporting “what did we find in
env:prodthis quarter”.