Execution Control

Safe Execution
with Full Control

Test, validate, and preview every change before it reaches your users — with dry-run execution, output validation, and side-by-side HTML comparison.

Core Concept

Execute with Confidence

Every change in Ninja moves through a controlled lifecycle — from draft to live. You decide when it's ready. You see the result before anyone else does.

Stage 01
DRAFT
A rule or script is created and saved. No execution, no production impact. Work in progress — only visible to you.
Not active
Stage 02
DRY RUN
The rule executes in a simulated environment. Real logic, real data, real output — but zero impact on production traffic.
Simulated
Stage 03
VALIDATION
The output is checked against expected structure. HTML integrity, element presence, meta tags, and custom assertions — all verified automatically.
Verified
Stage 04
PREVIEW
A private, shareable preview link renders the exact output. Review on any device, share with stakeholders — before a single user sees it.
Private
Stage 05
LIVE
Activated with one action. The rule begins running on production traffic — with full audit trail and instant rollback if needed.
Active
Dry Run

Dry-Run Execution

A dry run executes your rule with real logic and real data — but in complete isolation from production. Users see nothing. Your origin is not affected. The output is captured for inspection.

It's not a simulation of what might happen. It's exactly what will happen — without any consequences.

What dry run gives you

🛡
Zero Production Impact
The rule runs in an isolated context. No live traffic is affected. No user sees any change. Nothing breaks.
Real Logic, Real Data
The dry run uses the same rule engine, the same dataset values, and the same HTML as production — not a mock or approximation.
Full Output Capture
The entire transformed HTML response is captured and stored — ready for validation, diff, and preview.
Test Any Change Safely
SEO changes, content injections, header modifications, script executions — all can be dry-run before activation, regardless of complexity.

Dry run output log

10:42:03 Dry-run started
10:42:03 Rule matched: seo_london
10:42:03 Dataset loaded: city_content["london"]
10:42:04 Script executed: seo_titles.js
10:42:04 <title> → "Best Clinics in London..."
10:42:04 <meta description> → "Find top clinics..."
10:42:04 <h1> → "London Clinics"
10:42:04 HTML response captured (42 KB)
10:42:04 Dry-run complete — 0 errors
Result
Rule executed successfully. 5 HTML modifications captured. Output ready for validation and preview.
Diff View

See the Difference

Ninja shows you a line-by-line diff between the original HTML and the modified output. Every change is highlighted — additions in green, removals in red. Nothing is hidden.

Original — from origin Before
<title>Clinic Finder</title> <meta charset="UTF-8">
<meta name="description" content="Find a clinic near you"> <link rel="stylesheet" href="/style.css">

<body>
  <h1>Find a Clinic</h1>   <p class="intro">...</p>
  <span class="price">From £99</span>   <button>Book Now</button>
Modified — dry-run output After
<title>Best Clinics in London — from GBP 120</title> <meta charset="UTF-8">
<meta name="description" content="Find top-rated clinics in London..."> <link rel="stylesheet" href="/style.css">

<body>
  <h1>London Clinics</h1>   <p class="intro">...</p>
  <span class="price">From GBP 120</span>   <button>Book in London</button>
5 additions
5 removals
0 errors · 0 warnings · ready for preview
Validation

Output Validation

After a dry run, Ninja automatically validates the output against a set of checks — verifying that the modified HTML is complete, structurally correct, and matches expected values.

Title tag present
<title>Best Clinics in London — from GBP 120</title>
Pass
Meta description present
content length: 58 chars · within recommended range
Pass
H1 element exists
"London Clinics" · 1 instance · no duplicate
Pass
No template variables remaining
0 unresolved {{variable}} placeholders in output
Pass
HTML structure intact
valid HTML5 · all tags closed · no broken nesting
Pass
!
Title length
72 chars · recommended max 60 — consider shorter variant
Warning
JSON-LD schema injected
<script type="application/ld+json"> present in <head>
Pass
6 passed 1 warning 0 errors
Validation complete — safe to preview
Preview

Controlled Preview

After validation, Ninja generates a private preview link that renders the exact modified output — accessible only to those you share it with. No public exposure, no live traffic impact.

Preview link

🔒 preview.ninjaweb5.com/dry/run_xk4f2m/london-clinics Copy
Private link · expires in 48h · accessible only with this URL
🔍
Before / After Toggle
Switch between original and modified view in one click — see exactly what changed in the rendered page.
📱
Any Device
Preview renders in a real browser. Open it on mobile, tablet, or desktop to verify layout and content at every viewport.
🤝
Share with Stakeholders
Send the preview link to designers, SEO managers, or clients. They review in a browser — no access to Ninja required.

Preview browser

preview.ninjaweb5.com/dry/run_xk4f2m/london-clinics
PREVIEW
<title> Best Clinics in London — from GBP 120 </title>
London Clinics
GBP 120
per session
Book in London
Original
Modified ✓
Lifecycle

Execution Modes

Every rule exists in one of three modes. You move between them deliberately — with full control over what's active in production at any given moment.

Mode 01
DRAFT
In progress
The rule exists but does not execute. You can edit, test in dry-run, and iterate freely — nothing affects real users. Stay here as long as you need.
Not running
Mode 02
DRY RUN
Test mode
The rule executes on real requests — but only in isolation. Output is captured. Results are visible to you. Live users are completely unaffected.
Testing
Mode 03
LIVE
Production
The rule runs on every matching request in production. Fully audited. Instantly reversible. You can deactivate and return to Draft in one click.
Running
Audit

Full Visibility

Every execution is logged. Every change is tracked. You always know what ran, when it ran, what it changed, and what the result was — in production and in dry-run.

Execution audit log — rule: seo_london
14:03:11 Rule seo_london created as Draft Draft
14:11:44 Dry-run triggered for /city/london Dry Run
14:11:45 5 HTML modifications captured — 0 errors Pass
14:11:45 Validation: 6 checks passed, 1 warning (title length) Warning
14:18:02 Preview link generated and shared Preview
14:32:17 Rule approved and activated — entering Live mode Live
14:32:17 Production execution started — matching 124 req/min on /city/london Active
📋
Execution Logs
Every rule execution is logged with timestamp, matched conditions, applied actions, and output summary.
📊
Change History
A full timeline of every modification — who made it, when it was activated, what it changed, and when it was turned off.
Instant Rollback
Deactivate any live rule in one click — it returns to Draft immediately. No deploy, no waiting, no risk.
Use Cases

Real Control Use Cases

Use Case 01
Verify SEO Changes

Dry-run a title or meta update, validate output length and structure, preview how it renders — before it goes live and gets indexed.

Use Case 02
Test UI Modifications

Preview a UI injection or layout change in a real browser before production. Share with your design team for sign-off via a private link.

Use Case 03
Validate Security Rules

Verify that a security header injection or script removal works correctly — without the risk of breaking anything in production.

Use Case 04
Campaign Preview

Prepare and preview a promotional banner or CTA change for a campaign launch. Verify it on mobile. Approve before the campaign goes live.

Use Case 05
QA Before Rollout

Run automated validation checks on every rule change before it reaches production — no manual QA cycle needed for standard checks.

Use Case 06
Rollback with Confidence

If something unexpected happens in production, deactivate the rule instantly. The site returns to its original state — no emergency deploy required.

Comparison

Traditional vs
Controlled Execution

DimensionTraditional DeployNinja Controlled Execution
Deployment Direct to production — no staging Draft → Dry Run → Preview → Live
Preview No preview before production Private preview link before any user sees it
Testing Test on production or separate environment Dry run on real traffic — zero production impact
Validation Manual checks after deploy Automated HTML checks before activation
Visibility Limited — hard to trace what changed Full audit log — every execution tracked
Rollback New deploy or revert commit One click — instant, no deploy needed
Risk Errors reach users before detection Errors caught before production — every time
Value

Reduce Risk,
Move Faster

🛡
Fewer Errors

Validation catches problems before they reach production — every time, automatically.

Safer Releases

Preview and approval before every activation. No more surprises in production.

Faster Testing

Dry runs complete in seconds. No environment setup, no deploy cycle, no waiting.

Full Control

Every execution is deliberate. You decide what's live. You can reverse it instantly.

You don't just change the site. You control
every step before it reaches anyone.
Execution Control Infrastructure
Execute Safely

Test every change with a dry run, validate the output, preview it privately — then go live with full confidence and instant rollback.

Explore More
Rules Engine
Programmable Rules
The foundation behind what you test and preview — declarative control over web output with the WHEN, WHERE, DO, WHY model.
Explore →
Custom Logic
Scripts & Sandbox
Write custom edge logic and run it in a safe sandbox — the same sandbox used in dry-run execution.
Explore →
Solution
QA & Testing
How teams use Ninja's execution control layer to run automated QA on every HTML change — without a separate testing environment.
Explore →