Security Policy
Relevant source files
The following files were used as context for generating this wiki page:
The Security Policy defines the protection mechanisms for user data, local LLM connections, and cloud synchronization within the Agent Studio MCP Engine. It ensures that sensitive assets, including prompt libraries and conversation histories, remain secure through client-side encryption and restricted access controls.
The project maintains specific support tiers for different versions to ensure continued security updates for the community.
Sources: SECURITY.md:1-12, src/data.ts:285-288
Supported Versions
The project provides security updates for specific release branches. Users must operate on supported versions to receive vulnerability patches.
| Version | Supported |
|---|---|
| 5.1.x | :white_check_mark: |
| 5.0.x | :x: |
| 4.0.x | :white_check_mark: |
| < 4.0 | :x: |
Sources: SECURITY.md:5-12
Data Synchronization Security
The Cloud Sync Cluster manages the secure transfer of workspace states across devices. It employs end-to-end encryption to prevent plain-text data from reaching cloud nodes.
Encryption Standards
The system hashes all custom prompt libraries, conversation caches, and system configurations using 256-bit PBKDF2. It then encrypts these payloads using AES-256-GCM directly on the client before synchronization.
Sources: src/components/SyncCluster.tsx:43-48, src/utils/ai.ts:167-170
Symmetric Sync Model
Users bridge multiple nodes by sharing a Symmetric Passphrase Key. This key facilitates the following security workflows:
- Key Generation: The system assembles cryptographic hash keys using random hex sequences.
- Cluster Mapping: Identical Sync Codes must be entered on all devices (laptop, desktop, or mobile) to authorize state pushes.
- Zero-Knowledge Storage: No unencrypted data is stored in the cloud registers.
Sources: src/components/SyncCluster.tsx:21-30, src/utils/ai.ts:171-173
The diagram shows the encryption flow where data is secured before leaving the client boundary.
Sources: src/components/SyncCluster.tsx:43-48, src/utils/ai.ts:167-173
Backend and API Security
The Agent application interacts with both local LLM providers and remote cloud APIs. Each connection type utilizes specific security protocols.
Local LLM Connectivity (CORS)
To access local processes like Ollama or LM Studio from the browser-based GUI, users must explicitly configure Cross-Origin Resource Sharing (CORS). The application directs users to set the OLLAMA_ORIGINS="*" environment variable to unlock native fetch bindings safely.
Sources: src/utils/ai.ts:39-44, src/data.ts:291-294
Remote Provider Authentication
Remote providers, such as OpenAI and Google Gemini, require valid API keys. The application stores these keys in the LLM Provider configuration.
- Desktop (Tauri): Keys are set via OS environment variables or a configuration dialog.
- Mobile (Capacitor): Keys are embedded via
capacitor.config.tsor secured through a storage plugin.
Sources: src/data.ts:19-35, BUILDING.md:129-132
Firebase Access Controls
Cloud data stored via Firebase follows strict attribute-based access control (ABAC) rules.
| Collection | Read | Write/Create | Delete/Update | Condition |
|---|---|---|---|---|
| users | Auth | Auth | Auth | UID must match |
| sessions | Auth | Auth | Owner | UID must match |
| prompts | Auth | Auth | Owner | UID must match |
Sources: firebase-blueprint.json:4-70
The sequence diagram illustrates the validation of user identity before permitting document access.
Sources: firebase-blueprint.json:7-11
Execution Sandboxing
The application uses specialized plugins to execute code or render graphics. These "Skills" operate within controlled environments to mitigate risk.
- JS / Code Playground: Executes client-side scripts within a secure iframe runtime.
- Visual SVG Sandbox: Renders vector drawings into a reactive view canvas, intercepting XML/SVG code blocks from LLM responses.
- MCP Handshakes: The Model Context Protocol (MCP) uses JSON-RPC over HTTP endpoints (e.g.,
localhost:3011) to interact with the local filesystem, requiring explicit tool invocation documentation.
Sources: src/data.ts:198-210, src/components/ChatArea.tsx:50-70, src/utils/ai.ts:79-85
Vulnerability Reporting
The project encourages responsible disclosure of security issues. Users finding vulnerabilities should follow the reporting instructions in the repository. The project team typically provides updates on the status of reported issues and indicates if a report is accepted or declined.
Sources: SECURITY.md:14-20
Final security configurations are managed through tauri.conf.json for desktop deployments, including Content Security Policy (CSP) settings which are currently set to null to allow flexible provider connections during development.
Sources: src-tauri/tauri.conf.json:37-39