ModernPentestModernPentest

Adding Applications

Register your product and configure attack surfaces for security testing

An application represents a single product or service with a unified backend. Register one application per product, not separate entries for your web dashboard and API. For more details, see Core Concepts: Application.

Choose your setup

With your coding agent (recommended): connect from the repository and let it discover the deployed URLs, authentication and OpenAPI specification, then prepare dedicated test users through your own tooling. You review the setup and approve the scan before it starts. Read Enroll from your repository, or start the agent setup in the dashboard.

Manually: set up manually opens the full setup wizard described below. Configure application details, surfaces, authentication and scheduling step by step. Configure test accounts and any sign-in code source before proving ownership if you requested an automatic first pentest.

Advanced manual setup

Application Basics

Start by providing basic information about your application:

  • Name - A friendly identifier for your product (e.g., "Production App", "Staging Environment")
  • Description - Optional context for your team
  • Environment - Select the deployment environment:
EnvironmentDescriptionDefault Testing
ProductionLive customer-facing systemsActive (safe checks only)
StagingPre-production testing environmentAggressive (includes exploitation)
DevelopmentLocal or dev environmentsAggressive (includes exploitation)

The environment you select affects the default testing intensity. Production environments use safer testing by default to avoid service disruption.

Select Attack Surfaces

Choose which interfaces of your application to test:

SurfaceWhen to Enable
Web ApplicationYour product has a user-facing website or web app
REST APIYour product exposes REST/GraphQL endpoints

Most modern SaaS products have both surfaces: a web dashboard and an API that share users, data, and business logic. Enable both for complete coverage.

Screenshot: Add application modal

At least one surface must be selected. Your selection determines which configuration steps appear next.

Test Users & Credentials

Test users are defined once and shared across all surfaces. This enables consistent authorization testing across your web app and API.

Authentication Strategy:

StrategyDescriptionBest For
PublicNo authentication requiredPublic-facing apps without login
Pre-configuredProvide existing test accountsMost applications (default)
Open RegistrationAgents create accounts automaticallyComing soon

Adding Test Users:

For pre-configured authentication, add one or more test accounts:

  • Email - Where sign-in codes are sent, and the login identifier for most apps
  • Username (optional) - When your login form takes a username rather than the email
  • Password - Account password, if the account uses one
  • Role - User role for authorization testing (e.g., "admin", "user", "viewer")

How does this account sign in?

Each account declares its login method, because guessing costs a whole scan:

Login methodWhat it means
Password onlyEmail/username and a password. Nothing else.
One-time code onlyNo password; a magic link or emailed code is the sign-in
Password + one-time codePassword first, then a second-factor code

If the account needs a code, you choose where we get it: a scanner mailbox we generate for you, an authenticator secret (TOTP), or a fixed test code.

Setting up passwordless login, 2FA, or magic links? See Test User Authentication for the full walkthrough, verification steps, and troubleshooting.

Use dedicated test accounts with realistic permissions. Never use production admin credentials or real user accounts.

Why shared users? The same credentials test both web login and API authentication, enabling cross-surface authorization testing. For example, we can verify that a "user" role can't access admin endpoints on both the web app and API.

Web Surface Configuration

This step appears if you selected Web Application.

Configure how we access your web application:

Application URL

Enter the root URL of your web app (e.g., https://app.yourcompany.com)

The host of this URL is one of the hosts you prove ownership of after saving (see the last step).

Authentication Strategy:

StrategyDescription
PublicNo authentication needed for testing
Shared UsersUses credentials from Test Users step (recommended)
CustomWeb-specific credentials different from shared users

For most applications, Shared Users is recommended: it uses the test accounts you configured in the previous step and enables cross-surface testing.

REST API Configuration

This step appears if you selected REST API.

Configure your API for testing:

Base URL

Enter your API's root URL (e.g., https://api.yourcompany.com)

Its exact host is proven separately from the web host, including when both are under the same domain. If the URLs use the same host, one proof covers both.

OpenAPI Specification

Providing your OpenAPI spec enables deeper testing. Choose how to provide it:

MethodDescription
Auto-discoverWe scan 30+ common paths (/openapi.json, /swagger.json, etc.)
URLDirect link to your spec
UploadUpload a JSON or YAML file (max 5MB)
PasteCopy and paste spec content

Don't have an OpenAPI spec? Select auto-discover; we can still test your API through reconnaissance, but coverage will be more limited.

Authentication Strategy:

StrategyDescription
PublicNo authentication needed
Shared UsersAI discovers your auth flow using test credentials (recommended)
StaticManual credential configuration

For Static authentication, choose your auth type:

  • API Key - Header name and value
  • Bearer Token - JWT or access token
  • OAuth 2.0 - Token URL, client ID, secret, and scope
  • Basic Auth - Username and password

Rules of Engagement

Configure how aggressively we test your application:

Testing Intensity:

LevelDescriptionRecommended For
PassiveReconnaissance only, no active testingSensitive production systems
ActiveSafe vulnerability checksProduction environments
AggressiveIncludes exploitation attemptsStaging and development

Testing intensity is auto-set based on your environment selection, but you can override it here.

Test Types:

TypeDescriptionDefault
ReconAsset discovery and mappingAlways enabled
ScanningOWASP Top 10 vulnerability checksEnabled
ExploitationAttempt to exploit found vulnerabilitiesRequires approval

Excluded Paths

Specify paths to skip during testing (comma-separated):

  • /logout - Avoid logging out test users
  • /delete-account - Prevent destructive actions
  • /admin/danger-zone - Skip sensitive admin functions

All testing is documented for compliance purposes. See SOC 2 Reports for details.

Schedule & Notifications

Configure when and how often we test:

Scan Frequency:

FrequencyAvailability
ManualOn-demand only (Enterprise)
MonthlyAll plans
WeeklyProfessional and above
DailyComing soon

Preferred Testing Window:

WindowHoursRecommended
Business Hours9am - 5pmFor monitored testing
Off-Hours6pm - 8amMinimal user impact
Anytime24/7Maximum flexibility

Off-hours testing is recommended for production environments to minimize impact on users.

Notifications:

  • Email - Receive alerts when pentests complete or critical findings are discovered
  • Severity Threshold - Choose to be notified for critical/high only or all findings

First Pentest:

The wizard offers two of these three options, depending on the scan frequency you chose above:

OptionOffered whenWhat happens
Start the first pentest as soon as ownership is verifiedEvery frequencyThe pentest starts on its own the moment every host is proven, with no further click. The request is kept for 30 days.
Schedule for laterMonthly or weekly frequencyYou pick the date of the first pentest. It starts on that date if ownership is proven by then; if it is not, that run is skipped and the next one moves to the following cycle.
Save onlyManual frequencyNothing starts until you press Run Pentest on the application page.

The first option is available whatever you pay with: your plan's quota, a pentest credit, or, without either, your one free preview, whose findings are listed by title, severity and endpoint but stay locked until a credit or a plan unlocks them.

After adding your application, you can manage its schedule from the Schedule page: view upcoming pentests, reschedule them, or run immediately.

Prove You Own the Domain

Saving the application creates it, but no pentest can start until you prove you control every host you entered. The wizard shows a verification panel for each host with two ways to do it:

MethodWhat you publishCoversTime
DNS TXT record_modernpentest-verify.<host> with the value shownThat one hostMinutes to a few hours, depending on your DNS provider
HTTPS filehttps://<host>/.well-known/modernpentest-verify.txt containing the line shownThat one hostImmediate

Publish either one, then press Check now. A proof never expires, so a host proven once is proven for every application that targets it. Hosts on provider-owned suffixes such as *.vercel.app or *.run.app offer the HTTPS file only, because their DNS is not yours. Until every host is proven the application shows Ownership unverified, and Run Pentest stays disabled with the reason.

The exact rules, examples for Next.js, Vercel, Cloud Run and static hosting, and what each failure message means are in Domain Verification.

Automatic Platform Detection

You don't need to configure platform-specific settings. Our AI agents automatically detect and test:

PlatformWhat We DetectWhat We Test
SupabaseURL patterns, SDK usageRLS policies, storage buckets, edge functions
FirebaseConfig objects, SDK importsFirestore rules, RTDB permissions, storage rules
Vercel/Next.jsHeaders, deployment patternsNEXT_PUBLIC_ exposure, API routes, middleware
ConvexClient configurationDatabase access, function permissions

Platform detection happens during each pentest. If you add Supabase to your project later, we'll automatically detect and test it; no configuration changes needed.

Learn more in Reconnaissance.

Next Steps

Last updated: September 7, 2026

On this page