📊 庫存總覽
| 排序 | 類型名稱 | ID | 可用 | 即將到期 | 已出貨 | 過期 | 總計 | 操作 |
|---|
📦 補貨入庫
0 筆
💳 手動出貨
出貨設定
⚠️ 必填且每筆訂單唯一。相同識別碼重複呼叫永遠回傳同一批序號(30天內有效)
填寫左側表單後按取貨
🔍 訂單 / 序號查詢
此頁為唯讀查詢,不會出貨。輸入任意組合篩選條件後按「查詢」,結果顯示在下方。
伺服器端 HMAC 比對,不解密全表
📦 套組管理
| 套組名稱 | ID | 可出貨數 | 組成 | 操作 |
|---|
👥 帳號管理
| ID | 帳號名稱 | 角色 | 狀態 | 建立時間 | 操作 |
|---|
📋 操作日誌
動作
訂單識別碼
開始日期
結束日期
| 時間 | 帳號 | 動作 | 類型名稱 | 數量 | 訂單識別碼 |
|---|
🔎 查單
訂單識別碼
整合 ID
開始日期
結束日期
| 時間 | 整合 | 訂單識別碼 | Line | 目標 | 數量 |
|---|
⚙️ 系統設定
🔌 API 整合
Base URL:
Admin/Manual API: Account Token:
External Claims: Use Integration Token (not admin/account token). Only calls
One-time display: Tokens shown only once at creation/reset/rotation. Store immediately in a secure password manager or Secret Store.
Admin/Manual API: Account Token:
Authorization: Bearer km_xxx; UI login exchanges token for HttpOnly Session Cookie via POST /api/v1/auth/login.External Claims: Use Integration Token (not admin/account token). Only calls
/api/v1/claims, /api/v1/claims/dry-run, /api/v1/claims/stock.One-time display: Tokens shown only once at creation/reset/rotation. Store immediately in a secure password manager or Secret Store.
Production note: Keep
KEY_ENCRYPTION_SECRET permanently; existing keys cannot be decrypted after rotation. Delete ADMIN_BOOTSTRAP_TOKEN after creating first admin. Never put admin/account or integration tokens in frontend code or public docs.
📡 Webhook 通知
| 名稱 | URL | 事件 | 狀態 | 操作 |
|---|
當指定類型庫存低於設定閾值時,系統會自動以 POST 傳送 JSON 通知到設定的 URL。
🛡 API 危險操作開關
⚠️ 以下開關由後端強制執行。關閉後即使前端仍有按鈕,後端也會回傳 403 — 所有角色(包括 admin)均受限。
| 功能名稱 | 方法 | 端點路徑 | 狀態 | 關閉原因 | 最後更新 | 操作 |
|---|
🔗 整合管理
| 名稱 | 平台 | 狀態 | 每日配額 | 速率限制/分 | 建立時間 | 最後使用 | 操作 |
|---|
🩺 系統維護
🧬 版本與資料庫
載入中…
✅ 上線前檢查
載入中…
💾 備份與匯出
⚠️ 備份檔案包含加密後的序號資料。請妥善保管,勿分享給未授權人員。匯出後請存放於安全位置(如 Google Drive)。
☁️ 雲端備份(R2)
完整資料庫(序號類型、序號、整合、設定——並連同 SubShare 資料庫一起)每日台北 02:00 自動備份到 Cloudflare R2,保留 30 天自動清舊。也可按下方立即備份一次。
📤 匯出備份(下載檔案)
備份檔案不包含:token_hash、webhook_secret、明文序號值。
序號以加密形式(AES-GCM)匯出,還原時需要相同的 KEY_ENCRYPTION_SECRET。
序號以加密形式(AES-GCM)匯出,還原時需要相同的 KEY_ENCRYPTION_SECRET。
☁️ Google Drive 備份流程
點擊「下載備份」後,可手動將檔案上傳至 Google Drive,或使用以下指令自動化流程:
PowerShell(Windows)
$token = "km_your_admin_token"
$url = "https://your-worker.workers.dev/api/v1/backups/export"
$body = '{"include_encrypted_keys":true,"include_audit":true}'
$date = Get-Date -Format "yyyyMMdd-HHmmss"
$file = "key-manager-backup-$date.json"
Invoke-RestMethod -Method POST -Uri $url `
-Headers @{ Authorization="Bearer $token"; "Content-Type"="application/json" } `
-Body $body -OutFile $file
# Upload to Google Drive folder (requires Google Drive for Desktop mounted)
Copy-Item $file "G:\My Drive\Backups\$file"
Write-Host "Backup saved: $file"
curl(Linux / macOS)
TOKEN="km_your_admin_token"
URL="https://your-worker.workers.dev/api/v1/backups/export"
FILE="key-manager-backup-$(date +%Y%m%d-%H%M%S).json"
curl -s -X POST "$URL" -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" -d '{"include_encrypted_keys":true,"include_audit":true}' -o "$FILE"
echo "Backup saved: $FILE"
# Upload to Google Drive: drag into browser or use rclone
✅ 備份驗證
上傳備份 JSON 檔案以驗證其結構,不會寫入資料庫。