Skip to content

本地优先的 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

受限网络中的生产访问

具有严格网络策略的组织:

  1. 跳板主机:在堡垒服务器上安装 DocKit
  2. 仅 VPN 访问:使用内部数据库工作,无需互联网
  3. 代理环境:无需担心外部流量

咨询与客户工作

管理多个客户数据库而不混淆凭证:

  • 独立配置:每个客户一个连接配置
  • 隔离查询:按项目文件夹组织查询
  • 无交叉污染:每个客户的数据保持独立
  • 轻松交接:为团队成员导出连接配置(加密)

隐私与遥测

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>

了解更多


关于本地优先架构有疑问? 查看我们的文档或在 GitHub 上提出问题。