This specification is maintained by the AgentRules Working Group. Have enhancements or want to claim maintainership?Submit Specification →
securitycritical PriorityID: tauri-v2-multi-webview-acl-isolation-standard

Tauri 2.0 Multi-WebView ACL Capability Isolation Standard

Enforces strict zero-trust capability scoping and cryptographic boundary separation across heterogeneous WebViews in Tauri 2.0. Prevents cross-origin privilege escalation and malicious native command access by isolating permissions to discrete window and webview labels.

Prohibited Anti-Pattern: Global Capability Leakage and Unvalidated Multi-WebView Native IPC Invocation

Export Ready-to-Drop Configuration

Select format below to copy code or download file directly.

---
description: Tauri 2.0 Multi-WebView ACL Capability Isolation Standard - Enforces strict zero-trust capability scoping and cryptographic boundary separation across heterogeneous WebViews in Tauri 2.0. Prevents cross-origin privilege escalation and malicious native command access by isolating permissions to discrete window and webview labels.
globs: src-tauri/capabilities/**/*.json, src-tauri/src/**/*.rs, src/**/*.{ts,tsx}
alwaysApply: true
verified_by: "agentrules.org"
license: "CC-BY-4.0"
source: "https://agentrules.org/rules/tauri-v2-multi-webview-acl-isolation-standard"
---

# Tauri 2.0 Multi-WebView ACL Capability Isolation Standard

> **Severity**: CRITICAL | **Category**: security
> **Anti-Pattern Warning**: Global Capability Leakage and Unvalidated Multi-WebView Native IPC Invocation

## System Constraints
You are a Principal Security Architect specializing in Tauri 2.0 and Rust application security. Mandate strict zero-trust Access Control List (ACL) configurations and runtime context validation for multi-webview architectures. Reject any configuration that permits global or un-scoped capability definitions across heterogeneous execution contexts.

## Strict Guidelines
- Engineers MUST ALWAYS isolate permissions into separate capability JSON files scoped explicitly by window and webview label (e.g., 'main', 'auth-flow', 'plugin-sandbox').
- Engineers MUST NOT map wildcard '*' window identifiers or assign administrative capabilities ('core:default', 'fs:allow-all') to non-primary, third-party, or remote WebViews.
- Custom Rust IPC commands MUST explicitly check and validate the calling Webview/Window label via `tauri::Webview` parameter before executing privileged operations.
- Engineers MUST configure Content Security Policy (CSP) headers specifically per WebView in the capability definition, blocking inline scripts and untrusted remote origins.
- Components NEVER invoke native Rust commands directly from untrusted WebViews without explicit capability enablement and dynamic parameter validation.

## Bad vs Good Implementations
### Tauri 2.0 Capability Scoping (JSON)

#### Bad Antipattern (AI Common Hallucination)
> **Why it fails**: Assigns broad file system and shell permissions globally to all windows ('*'), allowing any auxiliary, OAuth, or compromised secondary WebView to read arbitrary files and spawn external processes.
```json
{
  "$schema": "../gen/schemas/desktop-schema.json",
  "identifier": "global-all-access",
  "description": "Shared capabilities for all application windows",
  "windows": ["*"],
  "permissions": [
    "core:default",
    "fs:default",
    "fs:allow-read-file",
    "shell:allow-open"
  ]
}
```

#### Production Standard (Correct)
> **Standard**: Explicitly binds minimal capabilities strictly to the 'auth-window' and 'auth-webview' labels, fully denying file system access, shell execution, and administrative command invocation.
```json
{
  "$schema": "../gen/schemas/desktop-schema.json",
  "identifier": "isolated-oauth-webview",
  "description": "Zero-trust ACL for external authentication WebView",
  "windows": ["auth-window"],
  "webviews": ["auth-webview"],
  "permissions": [
    "core:window:allow-close",
    "core:event:allow-emit"
  ]
}
```

### Rust IPC Caller Label Validation

#### Bad Antipattern (AI Common Hallucination)
> **Why it fails**: Fails to inspect the calling WebView context. If a less-privileged WebView obtains invoke access, it can execute irreversible actions without origin or label validation.
```rust
#[tauri::command]
pub async fn delete_tenant_record(tenant_id: String) -> Result<(), String> {
    // Anti-pattern: No validation of invoking WebView context or ACL state
    database::delete(&tenant_id).map_err(|e| e.to_string())?;
    Ok(())
}
```

#### Production Standard (Correct)
> **Standard**: Validates the caller identity at the Rust IPC boundary using `tauri::Webview::label()`, ensuring invariant enforcement even if capability bounds are misconfigured.
```rust
#[tauri::command]
pub async fn delete_tenant_record(
    webview: tauri::Webview,
    tenant_id: String
) -> Result<(), String> {
    if webview.label() != "admin-main" {
        return Err("AccessDenied: IPC invoked from unauthorized WebView context".into());
    }
    
    database::delete(&tenant_id).map_err(|e| e.to_string())?;
    Ok(())
}
```

Recommended MCP Servers (mcp-serverlist.com)

Equip agent with system tools to verify code for this stack.

Recommended Agent Skills (askills.dev)

Ready-to-use executable skill functions tailored to this stack.

Architectural Specification & Invariant Rationale

Architectural Invariant Design: Tauri 2.0 Multi-WebView ACL Capability Isolation Standard

Tauri 2.0 Multi-WebView ACL Capability Isolation Standard defines an industrial-grade behavioral standard for security engineering. Enforces strict zero-trust capability scoping and cryptographic boundary separation across heterogeneous WebViews in Tauri 2.0. Prevents cross-origin privilege escalation and malicious native command access by isolating permissions to discrete window and webview labels. Modern software architectures require strict adherence to deterministic patterns to guarantee high availability, maintainability, and zero security vulnerabilities.

Framework Paradigm Shift & Drift MechanicsLLMs are trained on millions of open-source repositories containing outdated code, legacy idioms, and unpatched antipatterns. When coding assistants generate implementations for this stack, they default to common statistical tokens: Global Capability Leakage and Unvalidated Multi-WebView Native IPC Invocation Without an explicit system instruction file, developers spend hours debugging silent failures.
Failure Modes & Production Blast Radius

Hazard Analysis: What Breaks Without This Rule

The following failure modes have been cataloged from hundreds of hours of production code reviews where AI assistants produced non-compliant implementations:

Failure ModeAI Symptom (The Anti-Pattern)SeverityProduction Impact & Remedy
AI Hallucination & Deprecation DriftGlobal Capability Leakage and Unvalidated Multi-WebView Native IPC InvocationCritical
Violating this industrial standard introduces regression bugs, security risks, and unexpected runtime failures in production.
Enforce explicit behavioral system directives across all AI coding assistants in your repository.
Silent Architecture InconsistencyAI assistants produce mixed paradigms across files, creating fragmented codebase conventions.Medium
Increases cognitive load during code reviews and leads to maintenance debt across engineering teams.
Pin project conventions in .cursor/rules, CLAUDE.md, and AGENTS.md so all team agents follow identical guardrails.
Architectural Directives in Detail

Step-by-Step Production Directives

Each rule constraint below is injected into the AI agent's system prompt to establish deterministic boundaries:

1

Engineers MUST ALWAYS isolate permissions into separate capability JSON files scoped explicitly by window and webview label (e.g., 'main', 'auth-flow', 'plugin-sandbox').

Engineers MUST ALWAYS isolate permissions into separate capability JSON files scoped explicitly by window and webview label (e.g., 'main', 'auth-flow', 'plugin-sandbox').

Rationale:AI models frequently generate unconstrained code here because statistical language distributions lack project-specific architectural context. Mandating this directive ensures that generated code adheres to verified industrial production requirements.
Enforcement:Integrated into the Agent Pack rule file. When Cursor, Claude Code, or Codex processes this prompt, it applies this constraint before emitting syntax.
2

Engineers MUST NOT map wildcard '*' window identifiers or assign administrative capabilities ('core

Engineers MUST NOT map wildcard '*' window identifiers or assign administrative capabilities ('core:default', 'fs:allow-all') to non-primary, third-party, or remote WebViews.

Rationale:AI models frequently generate unconstrained code here because statistical language distributions lack project-specific architectural context. Mandating this directive ensures that generated code adheres to verified industrial production requirements.
Enforcement:Integrated into the Agent Pack rule file. When Cursor, Claude Code, or Codex processes this prompt, it applies this constraint before emitting syntax.
3

Custom Rust IPC commands MUST explicitly check and validate the calling Webview/Window label via `tauri

Custom Rust IPC commands MUST explicitly check and validate the calling Webview/Window label via `tauri::Webview` parameter before executing privileged operations.

Rationale:AI models frequently generate unconstrained code here because statistical language distributions lack project-specific architectural context. Mandating this directive ensures that generated code adheres to verified industrial production requirements.
Enforcement:Integrated into the Agent Pack rule file. When Cursor, Claude Code, or Codex processes this prompt, it applies this constraint before emitting syntax.
4

Engineers MUST configure Content Security Policy (CSP) headers specifically per WebView in the capability definition, blocking inline scripts and untrusted remote origins.

Engineers MUST configure Content Security Policy (CSP) headers specifically per WebView in the capability definition, blocking inline scripts and untrusted remote origins.

Rationale:AI models frequently generate unconstrained code here because statistical language distributions lack project-specific architectural context. Mandating this directive ensures that generated code adheres to verified industrial production requirements.
Enforcement:Integrated into the Agent Pack rule file. When Cursor, Claude Code, or Codex processes this prompt, it applies this constraint before emitting syntax.
5

Components NEVER invoke native Rust commands directly from untrusted WebViews without explicit capability enablement and dynamic parameter validation.

Components NEVER invoke native Rust commands directly from untrusted WebViews without explicit capability enablement and dynamic parameter validation.

Rationale:AI models frequently generate unconstrained code here because statistical language distributions lack project-specific architectural context. Mandating this directive ensures that generated code adheres to verified industrial production requirements.
Enforcement:Integrated into the Agent Pack rule file. When Cursor, Claude Code, or Codex processes this prompt, it applies this constraint before emitting syntax.
Technical Questions & Answers

Frequently Asked Technical Questions

Common questions developers face when configuring AI coding assistants for this stack:

Q:Why is Tauri 2.0 Multi-WebView ACL Capability Isolation Standard critical for AI coding assistants?

Enforces strict zero-trust capability scoping and cryptographic boundary separation across heterogeneous WebViews in Tauri 2.0. Prevents cross-origin privilege escalation and malicious native command access by isolating permissions to discrete window and webview labels. Without explicit behavioral boundaries, AI coding assistants (Cursor, Claude Code, Windsurf, Codex) rely on training data averages, which frequently produce deprecated, inefficient, or vulnerable code patterns.

Q:How does adopting this rule prevent AI hallucinations?

This rule explicitly declares what the AI must avoid (Global Capability Leakage and Unvalidated Multi-WebView Native IPC Invocation) and prescribes verified positive examples. Grounding the LLM with negative and positive pairs eliminates guesswork.

Q:Which AI coding environments are supported?

This specification is multi-platform compatible: Cursor (.cursor/rules/*.mdc & .cursorrules), Anthropic Claude Code (CLAUDE.md), Windsurf (.windsurfrules), Codex / Cline (AGENTS.md), and GitHub Copilot (.github/copilot-instructions.md).

Q:Can I combine this rule with other technology stacks?

Yes. Use the Interactive Stack Builder or download an Agent Pack to merge this rule with other frontend, backend, database, security, and DevOps rules without syntax collision.

Open Specification · CC BY 4.0·Free for Personal, Team & Commercial In-Repo Use

Citation & Open Source Attribution Guidelines

This specification is licensed under Creative Commons Attribution 4.0 International (CC BY 4.0). You are completely free to adapt and share this rule in your workspace. If citing, including in public AI benchmark datasets, or redistributing, attribution to AgentRules.org is required.

1 Rule in Stack

Tauri