Sensitive endpoints
Security tests can be powerful. Some probes are safe to run almost anywhere, such as header checks. Others can create data, send attack payloads, or generate traffic bursts. Sensitive endpoint controls tell Qodex what it is allowed to do in each environment. Use these controls to keep production safe while still getting meaningful security coverage in staging or preview environments.The three environment constraints
Each environment can define three constraints:| Constraint | What it controls |
|---|---|
read_only | Blocks write verbs such as POST, PUT, PATCH, and DELETE when set to true. |
max_requests_per_second | Caps how fast Qodex can send requests during a run. |
allow_destructive_tests | Blocks destructive payloads such as data deletion, destructive SQL payloads, or account deactivation when set to false. |
Example configuration
Recommended defaults
| Environment | read_only | max_requests_per_second | allow_destructive_tests |
|---|---|---|---|
| Production | true | 5 | false |
| Staging mirror of production | true | 5 | false |
| Dedicated QA staging | false | 20 | true |
| Local development | false | 50 | true |
| Preview deployment | false | 20 | true |
What happens when a probe is blocked
When constraints block a probe, Qodex handles it in one of three ways:| Outcome | What Qodex does |
|---|---|
| Probe is allowed | Authors and runs the scenario normally. |
| Probe is partly allowed | Keeps the safe steps and skips unsafe steps. |
| Probe is fully blocked | Skips the scenario and notes the reason in the run summary. |
read_only: true environment, a BOLA check can still test GET /api/orders/{id} with the wrong user token, but Qodex should skip the PUT and DELETE versions.
The runner also enforces rate limits, so a manually authored scenario cannot bypass the configured request ceiling.
Checking constraints in chat
Before running a security sweep, you can ask:When to tighten constraints
- The environment points to production or production data.
- The endpoint changes billing, permissions, users, or account state.
- The test includes brute-force, fuzzing, or burst behavior.
- The target is shared with customers or internal teams.
- You are not sure whether the endpoint has idempotent cleanup.
Related
Security scenarios
Learn how constraints shape the scenarios Qodex authors.
OWASP API Top 10 in Qodex
See which probes may need write access or higher rate limits.
Inverted semantics
Understand how security pass and fail states work.
Auth profiles
Configure roles for BOLA, IDOR, and privilege-escalation tests.