{"id":15154142,"url":"https://github.com/esh2n/spanner-gui","last_synced_at":"2026-01-05T00:04:58.463Z","repository":{"id":257060521,"uuid":"856904330","full_name":"esh2n/spanner-gui","owner":"esh2n","description":"🚀 A simple and user-friendly GUI client for Google Cloud Spanner, built with Next.js and Tauri.","archived":false,"fork":false,"pushed_at":"2024-09-14T04:44:26.000Z","size":752,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-31T00:41:11.126Z","etag":null,"topics":["nextjs","spanner","tauri"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/esh2n.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-09-13T12:34:58.000Z","updated_at":"2024-09-14T04:47:40.000Z","dependencies_parsed_at":"2024-09-14T17:03:09.190Z","dependency_job_id":"05623c7c-0247-4343-8eae-860177028ef4","html_url":"https://github.com/esh2n/spanner-gui","commit_stats":null,"previous_names":["esh2n/spanner-gui"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/esh2n%2Fspanner-gui","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/esh2n%2Fspanner-gui/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/esh2n%2Fspanner-gui/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/esh2n%2Fspanner-gui/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/esh2n","download_url":"https://codeload.github.com/esh2n/spanner-gui/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":237944166,"owners_count":19391589,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["nextjs","spanner","tauri"],"created_at":"2024-09-26T17:03:09.180Z","updated_at":"2025-10-24T09:30:47.955Z","avatar_url":"https://github.com/esh2n.png","language":"TypeScript","readme":"# 🌐 Spanner GUI SQL Client\n\n🚀 A simple and user-friendly GUI client for Google Cloud Spanner, built with Next.js and React.\n\n## 🌟 Features\n\n- 🔍 Easy navigation of Spanner instances and databases\n- ⚡ Execute SQL queries\n- 📊 View query results in a clean, tabular format\n- 📜 Query history for quick access to past operations\n- 🎨 Syntax highlighting and query formatting\n- 📱 Responsive design for desktop and mobile use\n\n## 📦 Installation\n\n```bash\ngit clone https://github.com/esh2n/spanner-gui.git\ncd spanner-gui\nbun install\nbun run dev.tauri\n```\n\n## 🚀 Quick Start\n\n### 1. Set up Google Cloud credentials\n\nEnsure you have set up your Google Cloud credentials. You can do this by setting the `GOOGLE_APPLICATION_CREDENTIALS` environment variable to point to your service account key file.\n\n```shellscript\nexport GOOGLE_APPLICATION_CREDENTIALS=\"/path/to/your/service-account-key.json\"\n```\n\n### 2. Run the development server\n\n```shellscript\nbun run dev.tauri\n```\n\n## 🖥 Usage\n\n1. Enter your Google Cloud Project ID and click \"Initialize\"\n2. Select a Spanner instance from the dropdown\n3. Choose a database from the selected instance\n4. Write your SQL query in the editor\n5. Click \"Execute\" to run the query\n6. View results in the table below\n7. Access query history in the \"History\" tab\n\n\n## 🛠 API Reference\n\n### POST /api/spanner\n\nHandles all Spanner-related operations.\n\n#### Request Body\n\n```typescript\n{\n  type: 'instances' | 'databases' | 'query',\n  projectId: string,\n  instanceId?: string,\n  databaseId?: string,\n  query?: string\n}\n```\n\n#### Response\n\n- For `instances`: Array of instance names\n- For `databases`: Array of database names\n- For `query`: Array of result rows\n\n\n## 🤝 Contributing\n\nWe welcome contributions! Here's how you can help:\n\n1. 🍴 Fork the repository\n2. 🌿 Create your feature branch: `git checkout -b my-new-feature`\n3. 💾 Commit your changes: `git commit -am 'Add some feature'`\n4. 🚀 Push to the branch: `git push origin my-new-feature`\n5. 🎉 Submit a pull request\n\n\n## 📝 TODO\n\n- 🔒 Implement user authentication\n- 📊 Add visual query plan explanation\n- 🔄 Support for DML operations (INSERT, UPDATE, DELETE)\n- 📈 Query performance metrics\n- 🌓 Dark mode support\n- 🧪 Comprehensive unit and integration testing\n\n\n## 📜 License\n\nMIT\n\n## 🙏 Acknowledgements\n\n- [Next.js](https://nextjs.org/)\n- [React](https://reactjs.org/)\n- [Tauri](https://tauri.app/)\n- [Google Cloud Spanner](https://cloud.google.com/spanner)\n- [Tailwind CSS](https://tailwindcss.com/)\n- [shadcn/ui](https://ui.shadcn.com/)","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fesh2n%2Fspanner-gui","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fesh2n%2Fspanner-gui","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fesh2n%2Fspanner-gui/lists"}