windsurf-data-handling
Implement Windsurf PII handling, data retention, and GDPR/CCPA compliance patterns. Use when handling sensitive data, implementing data redaction, configuring retention policies, or ensuring compliance with privacy regulations for Windsurf integrations. Trigger with phrases like "windsurf data", "windsurf PII", "windsurf GDPR", "windsurf data retention", "windsurf privacy", "windsurf CCPA".
Install
mkdir -p .claude/skills/windsurf-data-handling && curl -L -o skill.zip "https://mcp.directory/api/skills/download/3825" && unzip -o skill.zip -d .claude/skills/windsurf-data-handling && rm skill.zipInstalls to .claude/skills/windsurf-data-handling
About this skill
Windsurf Data Handling
Overview
Control what code and data Windsurf's AI (Cascade, Supercomplete) can access. Covers file exclusion patterns, telemetry controls, Codeium's data processing model, and compliance configuration for regulated environments.
Prerequisites
- Windsurf IDE installed
- Understanding of Codeium's data processing model
- Identified sensitive files and directories in workspace
Instructions
Step 1: Understand Codeium's Data Model
# What happens with your code in Windsurf
data_flow:
indexed_locally:
what: "File contents, structure, dependencies"
where: "Local machine only"
purpose: "Supercomplete context, Cascade awareness"
retention: "Persists until re-indexed"
sent_to_cloud:
what: "Cascade prompts, code snippets around cursor"
where: "Codeium cloud (or self-hosted for Enterprise)"
purpose: "AI model inference"
retention: "Zero-data retention for ALL paid plans"
never_processed:
what: "Files in .codeiumignore, .gitignore, node_modules"
where: "N/A"
purpose: "N/A"
compliance:
certifications: ["SOC 2 Type II", "FedRAMP High"]
hipaa: "BAA available for Enterprise customers"
data_retention: "Zero for paid plans, configurable for Enterprise"
deployment: "Cloud, Hybrid, or Self-Hosted options"
Step 2: Configure .codeiumignore for Data Protection
# .codeiumignore — files Windsurf AI will NEVER see or index
# Uses gitignore syntax. Default: .gitignore and node_modules excluded.
# ===== SECRETS =====
.env
.env.*
.env.local
credentials.json
serviceAccountKey.json
*.pem
*.key
*.p12
*.pfx
.aws/
.gcloud/
.azure/
vault-config.*
# ===== CUSTOMER DATA =====
data/customers/
data/exports/
data/backups/
*.sql
*.sql.gz
*.dump
fixtures/production-*
# ===== INFRASTRUCTURE SECRETS =====
terraform.tfstate
terraform.tfstate.backup
*.tfvars
*.auto.tfvars
ansible/vault*
# ===== COMPLIANCE BOUNDARIES =====
# PCI zone — credit card processing code
src/pci/
# HIPAA zone — health data processing
src/hipaa/
# Financial data
reports/financial/
Step 3: Disable Telemetry (Regulated Environments)
// settings.json — maximum privacy configuration
{
"codeium.enableTelemetry": false,
"codeium.enableSnippetTelemetry": false,
"telemetry.telemetryLevel": "off",
"update.showReleaseNotes": false
}
Step 4: Configure Autocomplete Data Boundaries
// Disable Supercomplete for sensitive file types
{
"codeium.autocomplete.languages": {
"plaintext": false,
"env": false,
"dotenv": false,
"properties": false,
"ini": false,
"yaml": false,
"json": false
}
}
Rationale: YAML and JSON files often contain configuration with secrets. Disabling Supercomplete for these types prevents the AI from seeing or suggesting content based on config files.
Step 5: Safe Cascade Usage with Sensitive Code
## Rules for using Cascade in regulated codebases
1. NEVER paste secrets into Cascade chat
- BAD: "My API key is sk-abc123, why isn't it working?"
- GOOD: "I'm getting auth errors. The key is set in .env as API_KEY."
2. NEVER ask Cascade to read excluded files
- BAD: "Read .env and tell me what's configured"
- GOOD: "What environment variables does src/config.ts expect?"
3. Use .windsurfrules to enforce safety patterns
- "Always use process.env for secrets, never hardcode"
- "Never log PII fields: email, phone, ssn, creditCard"
4. Mark compliance boundaries in .windsurfrules
- "Files in src/pci/ handle credit card data — extra review required"
- "Files in src/hipaa/ handle health data — never log patient info"
Step 6: Enterprise Self-Hosted Deployment
For maximum data control:
# Enterprise deployment options
deployment_modes:
cloud:
data_flow: "Code snippets → Codeium cloud → AI response"
retention: "Zero-data retention (default for paid plans)"
suitable_for: "Most teams"
hybrid:
data_flow: "Code stays on-prem, only prompts sent to cloud"
retention: "Configurable"
suitable_for: "Teams with data residency requirements"
self_hosted:
data_flow: "Everything on-prem or in your cloud"
retention: "You control"
suitable_for: "Highly regulated (finance, healthcare, government)"
requires: "Enterprise plan + infrastructure team"
Data Privacy Audit Checklist
-
.codeiumignorecovers all secret files and customer data - Telemetry disabled (if required by policy)
- Autocomplete disabled for secret-containing file types
-
.windsurfrulesincludes data handling coding standards - Team trained: never paste secrets into Cascade
- Enterprise: deployment mode matches compliance requirements
- Enterprise: SSO configured, personal accounts blocked
- Regular audit: verify no new sensitive files outside ignore patterns
Error Handling
| Issue | Cause | Solution |
|---|---|---|
| AI suggests hardcoded secrets | Secret was in indexed file | Add to .codeiumignore, rotate secret |
| PII appears in AI suggestions | Customer data in indexed directory | Exclude data directories |
| Telemetry still sending | Setting not applied | Verify in Settings UI, restart Windsurf |
| Compliance audit finding | Missing ignore patterns | Audit with find for exposed file types |
Examples
Quick Privacy Audit
set -euo pipefail
echo "=== Windsurf Data Privacy Audit ==="
echo "Has .codeiumignore: $([ -f .codeiumignore ] && echo 'YES' || echo 'NO')"
echo "Potential exposed secrets:"
find . -type f \
-not -path '*/node_modules/*' -not -path '*/.git/*' \
\( -name '*.env*' -o -name '*.key' -o -name '*.pem' -o -name 'credentials*' \) \
2>/dev/null | while read f; do
grep -q "$(basename "$f")" .codeiumignore 2>/dev/null && echo " $f: PROTECTED" || echo " $f: EXPOSED"
done
Resources
Next Steps
For enterprise access controls, see windsurf-enterprise-rbac.
More by jeremylongshore
View all skills by jeremylongshore →You might also like
flutter-development
aj-geddes
Build beautiful cross-platform mobile apps with Flutter and Dart. Covers widgets, state management with Provider/BLoC, navigation, API integration, and material design.
drawio-diagrams-enhanced
jgtolentino
Create professional draw.io (diagrams.net) diagrams in XML format (.drawio files) with integrated PMP/PMBOK methodologies, extensive visual asset libraries, and industry-standard professional templates. Use this skill when users ask to create flowcharts, swimlane diagrams, cross-functional flowcharts, org charts, network diagrams, UML diagrams, BPMN, project management diagrams (WBS, Gantt, PERT, RACI), risk matrices, stakeholder maps, or any other visual diagram in draw.io format. This skill includes access to custom shape libraries for icons, clipart, and professional symbols.
ui-ux-pro-max
nextlevelbuilder
"UI/UX design intelligence. 50 styles, 21 palettes, 50 font pairings, 20 charts, 8 stacks (React, Next.js, Vue, Svelte, SwiftUI, React Native, Flutter, Tailwind). Actions: plan, build, create, design, implement, review, fix, improve, optimize, enhance, refactor, check UI/UX code. Projects: website, landing page, dashboard, admin panel, e-commerce, SaaS, portfolio, blog, mobile app, .html, .tsx, .vue, .svelte. Elements: button, modal, navbar, sidebar, card, table, form, chart. Styles: glassmorphism, claymorphism, minimalism, brutalism, neumorphism, bento grid, dark mode, responsive, skeuomorphism, flat design. Topics: color palette, accessibility, animation, layout, typography, font pairing, spacing, hover, shadow, gradient."
godot
bfollington
This skill should be used when working on Godot Engine projects. It provides specialized knowledge of Godot's file formats (.gd, .tscn, .tres), architecture patterns (component-based, signal-driven, resource-based), common pitfalls, validation tools, code templates, and CLI workflows. The `godot` command is available for running the game, validating scripts, importing resources, and exporting builds. Use this skill for tasks involving Godot game development, debugging scene/resource files, implementing game systems, or creating new Godot components.
nano-banana-pro
garg-aayush
Generate and edit images using Google's Nano Banana Pro (Gemini 3 Pro Image) API. Use when the user asks to generate, create, edit, modify, change, alter, or update images. Also use when user references an existing image file and asks to modify it in any way (e.g., "modify this image", "change the background", "replace X with Y"). Supports both text-to-image generation and image-to-image editing with configurable resolution (1K default, 2K, or 4K for high resolution). DO NOT read the image file first - use this skill directly with the --input-image parameter.
fastapi-templates
wshobson
Create production-ready FastAPI projects with async patterns, dependency injection, and comprehensive error handling. Use when building new FastAPI applications or setting up backend API projects.
Related MCP Servers
Browse all serversNekzus Utility Server offers modular TypeScript tools for datetime, cards, and schema conversion with stdio transport co
Build persistent semantic networks for enterprise & engineering data management. Enable data persistence and memory acro
Unlock seamless Figma to code: streamline Figma to HTML with Framelink MCP Server for fast, accurate design-to-code work
Cipher empowers agents with persistent memory using vector databases and embeddings for seamless context retention and t
Integrate with Gemini CLI for large-scale file analysis, secure code execution, and advanced context control using Googl
Powerful MCP server for Slack with advanced API, message fetching, webhooks, and enterprise features. Robust Slack data
Stay ahead of the MCP ecosystem
Get weekly updates on new skills and servers.