mirror of
https://github.com/KeygraphHQ/shannon.git
synced 2026-08-11 05:50:21 +02:00
* feat(worker): record token, cache, and turn usage per agent * feat: replace model tiers with a single SHANNON_AI_MODEL across five providers * feat(cli): rebuild the setup wizard for provider and model selection * docs: document single-model selection and supported providers * feat(worker): use chat completions for OpenAI behind a custom base URL * feat: add SHANNON_AI_OPENAI_FORMAT to pick the wire API for OpenAI gateways * refactor(cli): drop endpoint path hints from the gateway format picker * feat(worker): enable pi in-session provider retry with retry-after backoff * refactor(worker): hand provider error classification to pi and drop the Anthropic ladders * refactor: remove the subscription retry preset and pipeline config section * fix(worker): validate Bedrock credentials with the same live probe as other providers * feat(worker): render the report from structured findings instead of agent-written markdown * fix(worker): dispose the credential probe session on every path * fix(worker): refuse to replace the assembled report with an empty one * refactor(worker): catch post-processing throws across the whole finalization block * revert(worker): drop the report zero-findings guard * docs(worker): correct the retry split and Bedrock credential claims * docs: regenerate llms-full.txt from current sources * feat(cli): build and run the npx flow from a clone * refactor(cli): flatten the setup summary output * feat(cli): reject runs with more than one provider configured * fix(worker): say a rejected bash call never ran * chore(cli): drop grok-4.3 and gpt-5.6-luna from the setup suggestions * feat(worker): capture structured finding locations for SARIF output * fix(worker): enumerate queue confidence so the report inherits it verbatim * feat(worker): give the reporting phase a mode-specific output schema * feat(worker): emit a SARIF 2.1.0 log for exploitative runs * fix(worker): correct SARIF locations and defer fingerprinting to the upload action * fix(worker): drop the confidence suffix from the analysis-mode summary list * feat(worker): give exploit findings a dedicated code location field * feat(worker): carry structured code locations from the vuln queue to the report * fix(worker): join code locations from the vuln queue instead of re-asking agents * fix(worker): spell out the finding_id to category mapping in the tool schema * feat: drop Google/Gemini as a supported AI provider * fix(worker): stop asking the report agent for code locations * docs: correct the provider list and drop the removed rate-limit settings * docs: add provider cyber safeguards and suggested models per provider * docs: document the SARIF output and the report rating thresholds
106 lines
3.6 KiB
YAML
106 lines
3.6 KiB
YAML
# Example configuration file for pentest-agent
|
|
# Copy this file and modify it for your specific testing needs
|
|
|
|
# Description of the target environment (optional, max 500 chars)
|
|
description: "Next.js e-commerce app on PostgreSQL. Local dev environment — .env files contain local-only credentials, not deployed to production."
|
|
|
|
# Limit which vulnerability classes run end-to-end (optional, default: all five)
|
|
# vuln_classes: [injection, xss, auth, authz, ssrf]
|
|
|
|
# Skip the exploitation phase (optional, default: "true")
|
|
# exploit: "false"
|
|
|
|
# Free-form engagement rules applied to analysis and exploitation agents (optional).
|
|
# Example below is illustrative; edit, remove, or add sections as needed.
|
|
# rules_of_engagement: |
|
|
# Forbidden techniques:
|
|
# - No password brute-force or credential stuffing. Cap login attempts at 5 per account.
|
|
# - ...
|
|
#
|
|
# Operational:
|
|
# - Throttle to under 5 requests per second per endpoint. Back off 60 seconds on any 429 response.
|
|
# - ...
|
|
#
|
|
# Data handling:
|
|
# - Do not include actual values in deliverables — use placeholders like [order_id] or [user_email].
|
|
# - ...
|
|
|
|
authentication:
|
|
login_type: form # Options: 'form' or 'sso'
|
|
login_url: "https://example.com/login"
|
|
credentials:
|
|
username: "testuser"
|
|
password: "testpassword"
|
|
totp_secret: "JBSWY3DPEHPK3PXP" # Optional TOTP secret for 2FA
|
|
|
|
# Optional mailbox credentials for magic-link / email-OTP flows.
|
|
# email_login:
|
|
# address: "inbox@example.com"
|
|
# password: "mailbox-password"
|
|
# totp_secret: "JBSWY3DPEHPK3PXP"
|
|
|
|
# Natural language instructions for login flow
|
|
login_flow:
|
|
- "Type $username into the email field"
|
|
- "Type $password into the password field"
|
|
- "Click the 'Sign In' button"
|
|
- "Enter $totp in the verification code field"
|
|
- "Click 'Verify'"
|
|
|
|
success_condition:
|
|
type: url_contains # Options: 'url_contains' or 'element_present'
|
|
value: "/dashboard"
|
|
|
|
rules:
|
|
# Supported types: url_path, subdomain, domain, method, header, parameter, code_path
|
|
avoid:
|
|
- description: "Do not test the marketing site subdomain"
|
|
type: subdomain
|
|
value: "www"
|
|
|
|
- description: "Skip logout functionality"
|
|
type: url_path
|
|
value: "/logout"
|
|
|
|
- description: "No DELETE operations on user API"
|
|
type: url_path
|
|
value: "/api/v1/users/*"
|
|
|
|
# code_path values are repo-relative file paths or globs (e.g. "src/auth.ts", "test/**").
|
|
# - description: "Test fixtures and specs (not production code)"
|
|
# type: code_path
|
|
# value: "test/**"
|
|
#
|
|
# - description: "Generated migrations"
|
|
# type: code_path
|
|
# value: "db/migrations/**"
|
|
|
|
focus:
|
|
- description: "Prioritize beta admin panel subdomain"
|
|
type: subdomain
|
|
value: "beta-admin"
|
|
|
|
- description: "Focus on user profile updates"
|
|
type: url_path
|
|
value: "/api/v2/user-profile"
|
|
|
|
# code_path values are repo-relative file paths or globs (e.g. "src/auth.ts", "routes/*.ts").
|
|
# - description: "Express route handlers"
|
|
# type: code_path
|
|
# value: "routes/*.ts"
|
|
#
|
|
# - description: "Sequelize ORM model definitions"
|
|
# type: code_path
|
|
# value: "models/*.ts"
|
|
|
|
# Report filters applied by the report agent when assembling the final report (optional).
|
|
# Example below is illustrative; edit, remove, or add sections as needed.
|
|
# report:
|
|
# # Emit a SARIF 2.1.0 log (report.sarif) beside the report. Requires exploit: "true".
|
|
# sarif: "true"
|
|
# min_severity: low
|
|
# min_confidence: low
|
|
# guidance: |
|
|
# Drop findings about missing security headers and rate-limit gaps.
|
|
# ...
|