本地优先的 NoSQL 数据库客户端
DocKit 基于本地优先架构构建,这意味着您的所有查询、连接配置和数据都保留在您的设备上。无云同步,无外部服务器,无遥测。
什么是本地优先?
本地优先应用程序优先考虑本地数据存储和处理,而不是基于云的替代方案:
- 数据存储在您的设备上:查询、连接和设置存储在本地
- 离线工作:无需互联网连接即可实现全部功能
- 无外部依赖:无需云服务即可运行
- 隐私设计:您的数据永远不会离开您的控制
为什么本地优先对数据库工具很重要
🔒 安全与合规
许多组织对数据处理有严格要求:
- 隔离环境:在没有互联网的隔离网络中工作
- HIPAA/SOC2 合规:将敏感查询数据保留在本地
- 金融服务:满足数据驻留的监管要求
- 政府/军事:安全许可环境
示例用例:
- 医疗保健:查询患者数据库而不将 PHI 暴露给云服务
- 银行:管理生产数据库并提供完整的审计跟踪
- 国防:在机密环境中进行数据库管理
⚡ 性能优势
本地优先设计意味着更快的操作:
| 操作 | 基于云的工具 | DocKit(本地优先) |
|---|---|---|
| 应用启动 | 5-10秒(获取配置) | < 2秒(本地读取) |
| 查询加载 | 网络请求 | 即时(本地文件) |
| 连接切换 | API 调用 | 即时(本地配置) |
| 查询保存 | 上传到云端 | 即时(本地写入) |
💾 数据所有权
您可以控制数据的存储位置和方式:
- 文件格式:纯文本文件(JSON、SQL、PartiQL)
- 位置:选择您的存储目录
- 备份:使用您自己的备份策略(Time Machine、您选择的云同步)
- 版本控制:将查询提交到 Git
DocKit 如何实现本地优先
1. 查询存储
所有查询保存为单独的文件:
~/DocKit/
queries/
dynamodb/
get-user-by-email.partiql
list-active-orders.partiql
elasticsearch/
search-products.json
aggregate-sales.json优势:
- 易于组织(文件夹、标签)
- Git 友好(提交、差异、与团队共享)
- 无供应商锁定(纯文本)
- 适用于任何文本编辑器
2. 连接配置
加密的本地存储用于数据库凭证:
json
{
"name": "生产 DynamoDB",
"type": "dynamodb",
"region": "us-east-1",
"accessKeyId": "已加密",
"secretAccessKey": "已加密"
}安全功能:
- 使用操作系统密钥链加密凭证(macOS Keychain、Windows 凭据管理器)
- 永不通过网络传输
- 不以纯文本存储
- 每个操作系统用户账户隔离
3. 应用程序设置
所有首选项存储在本地:
- 编辑器主题和字体大小
- 键盘快捷键
- UI 布局首选项
- 最近的连接
- 查询历史
位置:
- macOS:
~/Library/Application Support/DocKit/ - Windows:
%APPDATA%/DocKit/ - Linux:
~/.config/DocKit/
本地优先 vs. 云同步工具
| 功能 | DocKit(本地优先) | 云工具(Dynobase 等) |
|---|---|---|
| 查询存储 | 本地文件 | 云数据库 |
| 离线工作 | ✅ 全部功能 | ❌ 有限或无 |
| 数据隐私 | ✅ 永不离开设备 | ⚠️ 同步到供应商服务器 |
| 需要网络 | 仅用于数据库连接 | 应用功能也需要 |
| 合规性 | ✅ 隔离兼容 | ❌ 外部依赖 |
| 团队共享 | 通过 Git/共享驱动器 | 内置云同步 |
| 备份策略 | 您的选择 | 供应商控制 |
| 供应商锁定 | ❌ 纯文件 | ⚠️ 专有格式 |
本地优先数据库工具的用例
开发与测试
DynamoDB Local 开发:
bash
# 在 Docker 中运行 DynamoDB Local
docker run -p 8000:8000 amazon/dynamodb-local
# 将 DocKit 连接到 localhost:8000
# 无需 AWS 凭证或互联网DocKit 完美适用于:
- DynamoDB Local
- Docker 中的 Elasticsearch
- OpenSearch 本地实例
- LocalStack
受限网络中的生产访问
具有严格网络策略的组织:
- 跳板主机:在堡垒服务器上安装 DocKit
- 仅 VPN 访问:使用内部数据库工作,无需互联网
- 代理环境:无需担心外部流量
咨询与客户工作
管理多个客户数据库而不混淆凭证:
- 独立配置:每个客户一个连接配置
- 隔离查询:按项目文件夹组织查询
- 无交叉污染:每个客户的数据保持独立
- 轻松交接:为团队成员导出连接配置(加密)
隐私与遥测
DocKit 的本地优先理念延伸到遥测:
DocKit 不收集的内容:
- ❌ 查询内容或模式
- ❌ 数据库凭证
- ❌ 连接字符串或端点
- ❌ 使用分析
- ❌ 错误报告(除非您选择加入)
- ❌ 设备标识符
DocKit 做的事情:
- ✅ 崩溃报告(仅限选择加入,需要您的批准)
- ✅ 匿名功能使用(仅限选择加入)
- ✅ 版本检查(通知更新)
所有遥测都是选择加入,而不是选择退出。
与其他数据库客户端比较
云优先工具(TablePlus Cloud、Dynobase)
优点:
- 轻松的团队协作
- 跨设备同步
- 自动备份
缺点:
- 核心功能需要互联网
- 数据存储在供应商服务器上
- 每月订阅费用
- 合规/安全问题
基于浏览器(AWS 控制台、Kibana)
优点:
- 无需安装
- 始终保持最新
缺点:
- 需要活动连接
- 无离线查询构建
- 基于标签(容易丢失工作)
- 性能开销
DocKit(本地优先)
优点:
- 完整的离线功能
- 数据永不离开您的设备
- 快速性能
- 免费且开源
缺点:
- 团队共享需要手动同步(通过 Git)
- 每个设备有独立的查询存储
本地优先的团队协作
问:没有云同步,团队如何共享查询?
答:基于 Git 的工作流程
bash
# 为查询创建共享存储库
git init dockit-queries
cd dockit-queries
# 添加您的查询
cp ~/DocKit/queries/*.partiql ./
git add .
git commit -m "添加用户查询模板"
git push
# 团队成员拉取更新
git pull优势:
- 内置版本控制
- 查询的代码审查流程
- 审计跟踪的追溯/历史
- 与现有 Git 工作流程配合使用
开始使用本地优先工作流程
1. 安装 DocKit
从 dockit.geekfun.club/download 下载
2. 选择您的查询目录
首次启动时,选择存储查询的位置:
- 默认:
~/DocKit/queries/ - 自定义:任何文件夹(例如
~/Projects/client-queries/)
3. 设置连接
为您的数据库创建连接配置(加密存储在本地)
4. 开始查询
所有查询自动保存到您选择的目录
5. (可选)设置 Git 同步
bash
cd ~/DocKit/queries
git init
git remote add origin <your-repo>了解更多
- DynamoDB GUI 客户端 - DynamoDB 特定功能
- 开源数据库 GUI - 为什么开源很重要
- 桌面数据库客户端 - 原生应用的优势
- 下载 DocKit - 立即开始