DSH Data Migration Plugin

DSH Web 的配置、插件清單、Skills、Preset、Storages 以及私有數據,如果直接複製文件,很容易因爲路徑不一致或依賴缺失導致環境失效。這個插件旨在將上述內容打包爲一個密碼保護的 .dsh-migrate 文件,支持跨機遷移。

插件簡介

  • 名稱:dsh-data-migration
  • 維護者:hesixian
  • 許可:MIT
  • 核心功能:將本地配置與依賴打包爲加密文件,在新機器上預檢後恢復。

安裝與啓用

  1. 進入項目目錄並安裝依賴。
  2. 構建插件。
  3. 將本地 bundle 加入 DSH Web profile。
cd D:\code\dsh-data-migration
pnpm install
pnpm build

# 把本地 bundle 加入 DSH Web profile
dsh plugin --profile web add link:D:\code\dsh-data-migration

安裝完成後,重啓 dsh web,在設置中即可找到 DSH 數據遷移 選項。

核心能力

1. 導出與導入

  • 導出:支持系統文件夾對話框選擇保存位置,或直接填寫完整路徑,自動生成 backup.dsh-migrate。
  • 導入:支持選擇 .dsh-migrate 文件或其所在的文件夾,自動讀取。

2. 安全預檢

在恢復前,插件會先對遷移包進行解密和校驗。此過程只展示摘要(導出時間、Profile、文件數、API Key 變量名、link 依賴等),不會修改本機任何配置。

3. 確認恢復

  • 必須勾選敏感數據聲明纔會啓用恢復按鈕。
  • 恢復前會爲目標文件建立恢復點。
  • 若寫入或環境變量設置失敗,系統會自動回滾。

許多本地插件通過 link: 引用源碼,這些插件通常未發佈到 npm。
* 攜帶源碼:導出時可選擇將 link: 依賴的源碼打包。恢復時寫回原路徑(若目錄已有內容則不覆蓋)。
* 路徑改道:若源機器路徑所在的盤符在新機器上不存在(例如源機有 D 盤而新機只有 C 盤),預檢會檢測到並將源碼改放到 <DSH 主目錄>\linked-plugins\<插件名>,同時改寫 package.json 和 pnpm-lock.yaml 中的聲明。

5. 依賴恢復與校驗

  • 對帶有 pnpm-lock.yaml 的 profile,執行 pnpm install --frozen-lockfile。
  • 安裝後校驗:DSH 的解析機制可能導致“已安裝但無法解析”的假象。本插件會探測 dsh.profile.bundles,區分“已裝但解析不了”和“無法驗證”的項並分別報告。

6. 安全模型

  • 加密:使用 scrypt (N=32768, r=8, p=1) 和 AES-256-GCM 加密。
  • 內容限制:僅遷移 settings.yaml 中聲明的 apiKeyEnv 環境變量。不遷移 node_modules、pnpm store、會話、附件或日誌。
  • 訪問控制:接口僅限本機迴環地址與同源請求,寫操作只接受 POST。
  • 隱私保護:頁面不顯示憑據或 API Key 的值,也不顯示原始安裝日誌。
  • 臨時文件:預檢解密出的明文憑據存儲在臨時目錄,恢復結束即刪除。若超過 30 分鐘未恢復,殘留文件會在下次預檢時清理。

使用步驟

  1. 舊機操作:選擇保存文件夾(或填寫完整 .dsh-migrate 路徑),設置至少 12 位密碼,點擊“導出”。
  2. 傳輸:將生成的遷移包傳輸到新機器。
  3. 新機操作:安裝本插件後,選擇遷移包(文件或所在文件夾)並輸入密碼,點擊“預檢”。
  4. 確認:閱讀預檢摘要,勾選敏感憑據確認。若摘要中出現 link: 依賴,請確認“遷移包已攜帶以下插件源碼”。
  5. 恢復:按需保留“自動安裝 profile 依賴”選項(首次遷移建議放行 lifecycle scripts,否則部分插件可能缺少二進制或編譯模塊),點擊“確認並恢復”。
  6. 完成:重啓 dsh web。

注意事項

  • 備份性質:遷移包等同於 DSH 身份備份,應保存在可信的離線介質或加密存儲中,切勿通過公共網盤或郵件轉發。
  • 環境隔離:不遷移運行時產生的數據,如 node_modules、會話、附件等。
  • 權限要求:插件以當前 dsh 進程權限運行,安裝前應檢查源碼與許可證。

生態與鏈接

該插件是 DeepSeek Harness 生態的一部分。更多細節可參考 GitHub 倉庫。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜