{"id":32610297,"url":"https://github.com/tazgreenwood/data-warden","last_synced_at":"2026-04-11T17:40:07.587Z","repository":{"id":320626152,"uuid":"1082804492","full_name":"tazgreenwood/data-warden","owner":"tazgreenwood","description":"Fast, intuitive MySQL database management for VSCode. Query editor, data viewer, and quick table search with a powerful Golang backend.","archived":false,"fork":false,"pushed_at":"2025-11-19T04:26:11.000Z","size":908,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-11T17:39:06.068Z","etag":null,"topics":["database","database-management","database-tools","golang","mariadb","mysql","query-editor","sql","typescript","vscode-extension"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tazgreenwood.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":"ROADMAP.md","authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-10-24T19:49:55.000Z","updated_at":"2025-11-07T17:55:55.000Z","dependencies_parsed_at":"2025-10-24T22:16:46.755Z","dependency_job_id":"f78f2583-c2f5-4ada-9809-3bd3795ffdfc","html_url":"https://github.com/tazgreenwood/data-warden","commit_stats":null,"previous_names":["tazgreenwood/data-warden"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/tazgreenwood/data-warden","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tazgreenwood%2Fdata-warden","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tazgreenwood%2Fdata-warden/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tazgreenwood%2Fdata-warden/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tazgreenwood%2Fdata-warden/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tazgreenwood","download_url":"https://codeload.github.com/tazgreenwood/data-warden/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tazgreenwood%2Fdata-warden/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31689762,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-11T13:07:20.380Z","status":"ssl_error","status_checked_at":"2026-04-11T13:06:47.903Z","response_time":54,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["database","database-management","database-tools","golang","mariadb","mysql","query-editor","sql","typescript","vscode-extension"],"created_at":"2025-10-30T13:20:29.230Z","updated_at":"2026-04-11T17:40:07.579Z","avatar_url":"https://github.com/tazgreenwood.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"![Data Warden](media/data-warden-banner.png)\n\n# Data Warden\n\nA fast, intuitive database management extension for Visual Studio Code. Built with performance in mind using TypeScript and a Golang backend.\n\n## Features\n\n### 🔍 Quick Table Search\nPress `Cmd+Shift+T` (or `Ctrl+Shift+T` on Windows/Linux) to instantly search across all tables in your database. See row counts and table sizes at a glance.\n\n### 📊 Database Explorer\nBrowse your database structure in the sidebar with an intuitive tree view:\n- Connections\n- Databases\n- Tables with metadata (row counts, sizes)\n- Columns with types and constraints\n\n### 💾 Connection Management\nSecurely store and manage multiple database connections:\n- Encrypted password storage using VSCode SecretStorage\n- Test connections before saving\n- Easy switching between connections\n- SSL support\n\n### ✏️ Query Editor\nWrite and execute SQL queries with a feature-rich editor:\n- SQL syntax highlighting and autocomplete\n- Execute with `Cmd+Enter` or button\n- Execute selected text\n- **Query cancellation** - Stop long-running queries instantly\n- Interactive results viewer with sorting\n- Click cells to copy values\n- Export results to JSON or CSV\n- Save queries globally for reuse across projects\n- **Query history** - Automatically tracks last 20 queries with timestamps\n- **Query templates** - 16 common SQL patterns (SELECT, JOIN, INSERT, UPDATE, etc.)\n- **Format SQL** - Integrates with VSCode SQL formatter extensions\n- **Duplicate queries** - Quick copy command for existing query files\n\n### 📈 Interactive Data Viewer\nView and explore table data with powerful features:\n- Sortable columns\n- Paginated results for large datasets\n- Copy cells, rows, or entire columns\n- Export to JSON or CSV (CSV files can be imported to Excel)\n- Large export warnings for datasets over 10k rows\n- Null value highlighting\n- **Smart data type handling**:\n  - Binary16 UUID columns automatically formatted\n  - JSON columns with syntax highlighting and modal viewer\n  - Open JSON in editor for full editing capabilities\n\n## Getting Started\n\n### Installation\n\n1. Open Visual Studio Code\n2. Go to Extensions (Cmd+Shift+X)\n3. Search for \"Data Warden\"\n4. Click Install\n\n### Adding Your First Connection\n\n1. Click the Data Warden icon in the Activity Bar\n2. Click the \"+\" button to add a new connection\n3. Follow the prompts to enter:\n   - Connection name\n   - Host (e.g., `localhost`)\n   - Port (default: `3306`)\n   - Username\n   - Password (stored securely)\n   - Default database (optional)\n   - SSL options\n4. Test the connection and save\n\n### Quick Start\n\nOnce connected, you can:\n\n- **Browse databases**: Click to expand databases and tables in the sidebar\n- **View table data**: Right-click a table → \"View Data\"\n- **Quick search**: Press `Cmd+Shift+T` and start typing to find tables\n- **Create a query**: Click the \"+\" button in Saved Queries section\n- **Execute queries**: Open a `.dwquery` file and press `Cmd+Enter`\n\n## Keyboard Shortcuts\n\n| Command | macOS | Windows/Linux |\n|---------|-------|---------------|\n| Quick Table Search | `Cmd+Shift+T` | `Ctrl+Shift+T` |\n| Execute Query | `Cmd+Enter` | `Ctrl+Enter` |\n\n## Configuration\n\nCustomize Data Warden in your VSCode settings:\n\n```json\n{\n  \"dataWarden.defaultRowLimit\": 1000,\n  \"dataWarden.queryTimeout\": 30000,\n  \"dataWarden.autoConnect\": true,\n  \"dataWarden.showSystemDatabases\": false,\n  \"dataWarden.confirmBeforeDelete\": true,\n  \"dataWarden.export.defaultFormat\": \"json\"\n}\n```\n\n### Available Settings\n\n- **dataWarden.defaultRowLimit**: Default number of rows to fetch (default: 1000)\n- **dataWarden.queryTimeout**: Query execution timeout in milliseconds (default: 30000)\n- **dataWarden.autoConnect**: Automatically connect to last active connection on startup\n- **dataWarden.showSystemDatabases**: Show system databases in explorer\n- **dataWarden.confirmBeforeDelete**: Show confirmation before deleting\n- **dataWarden.export.defaultFormat**: Default export format (`json` or `csv`)\n- **dataWarden.query.showExecutionTime**: Show query execution time in results\n\n## Saved Queries\n\nQueries are saved globally in your VSCode application data directory, making them available across all projects.\n\n### Query Metadata\n\nAdd metadata to your queries using comments:\n\n```sql\n-- @name: Get Active Users\n-- @description: Fetches all active users from the last 30 days\n-- @tags: users, reporting\n\nSELECT * FROM users\nWHERE last_login \u003e DATE_SUB(NOW(), INTERVAL 30 DAY);\n```\n\n## Database Support\n\nCurrently supported:\n- **MySQL** / **MariaDB**\n\nComing soon:\n- PostgreSQL\n- SQLite\n- MongoDB\n\n## Performance\n\nData Warden is built for speed:\n- **Golang backend**: Native performance for database operations\n- **Connection pooling**: Optimized connection reuse (25 max connections, 10 idle)\n- **Intelligent caching**:\n  - Metadata cached for 30 seconds\n  - All-tables cache preloaded on connect (5-minute TTL)\n  - Instant quick search across hundreds of databases\n- **Query cancellation**: Context-based cancellation for responsive UI\n- **Memory-efficient**: Pre-allocated buffers and streaming results\n\n## Security\n\nYour database credentials are stored securely:\n- Passwords encrypted using VSCode SecretStorage API\n- No plaintext passwords in configuration files\n- SSL connection support\n- Workspace-scoped connections\n\n## Troubleshooting\n\n### Connection Issues\n\nIf you can't connect to your database:\n\n1. **Check if the database server is running**\n2. **Verify host and port** - Use `127.0.0.1` instead of `localhost` if having issues\n3. **Check credentials** - Ensure username and password are correct\n4. **Firewall settings** - Make sure the port is not blocked\n5. **View logs** - Check the \"Data Warden Backend\" output channel for detailed errors\n\n### Performance Issues\n\nIf queries are slow:\n\n1. **Check query complexity** - Use EXPLAIN to analyze queries\n2. **Adjust row limit** - Lower `dataWarden.defaultRowLimit` for faster loads\n3. **Network latency** - Connection speed affects performance\n4. **Database indexes** - Ensure your tables are properly indexed\n\n### Error Messages\n\nClick \"View Logs\" in error dialogs to see detailed information in the Output panel.\n\n## Development\n\n### Building from Source\n\n```bash\n# Install dependencies\nnpm install\n\n# Build the extension\nnpm run build\n\n# Watch for changes during development\nnpm run watch\n```\n\n### Project Structure\n\n- `src/` - TypeScript extension code\n- `backend/` - Golang backend for database operations\n- `media/` - Icons and assets\n- `ROADMAP.md` - Project roadmap and future features\n\n## Contributing\n\nFound a bug or have a feature request? Please open an issue on [GitHub](https://github.com/tazgreenwood/data-warden/issues).\n\n## License\n\nMIT License - see LICENSE file for details.\n\n## Changelog\n\nSee [CHANGELOG.md](CHANGELOG.md) for release notes and version history.\n\n---\n\n**Made with ❤️ by developers, for developers**\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftazgreenwood%2Fdata-warden","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftazgreenwood%2Fdata-warden","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftazgreenwood%2Fdata-warden/lists"}