dsh-vault 1.2.0-rc.9 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README-zh.md +4 -1
- package/README.md +5 -2
- package/lib/client.js +62 -62
- package/package.json +1 -1
package/README-zh.md
CHANGED
|
@@ -61,6 +61,7 @@ dsh-vault 是一个面向 DeepSeek Harness 的安全加密插件:把你在使
|
|
|
61
61
|
| `vault_health` | 保险库健康扫描:弱密码/复用凭据、未启用 2FA、不安全的 http:// 站点,以及整体安全评分(0–100) |
|
|
62
62
|
| `vault_breach_check` | Watchtower 风格泄露扫描:对接 Have I Been Pwned(k-anonymity,仅发送 SHA-1 前缀),附离线常见密码兜底 |
|
|
63
63
|
| `vault_integrity` | 校验磁盘上的保险库文件可正确解密并与内存中的 store 一致 |
|
|
64
|
+
| `vault_integrity` | 校验磁盘上的保险库文件可正确解密并与内存中的 store 一致 |
|
|
64
65
|
| `vault_merge` | 合并一个条目到另一个;`keepSource: true` 保留源条目 |
|
|
65
66
|
| `vault_quick_add` | 快速录入(标题 + 一个密钥),支持 tags/notes |
|
|
66
67
|
| `vault_expiry` | 设置/清除过期(`expiresAt: 0` 移除) |
|
|
@@ -71,7 +72,9 @@ dsh-vault 是一个面向 DeepSeek Harness 的安全加密插件:把你在使
|
|
|
71
72
|
| `vault_export` / `vault_import` | 整库加密备份/迁移(独立导出密码) |
|
|
72
73
|
| `vault_fill` | 按 host/URL/用户名/标题匹配条目并返回其凭据 |
|
|
73
74
|
| `vault_env` | 把标记 env 的条目(tags 含 `env`)渲染为 `KEY=VALUE` 行 |
|
|
74
|
-
| `
|
|
75
|
+
| `vault_export_bitwarden` / `vault_import_bitwarden` | Bitwarden/Vaultwarden JSON 互通(完整字段映射,支持覆盖) |
|
|
76
|
+
| `vault_copy` | 复制条目(含密钥)到另一个命名保险库 |
|
|
77
|
+
| `vault_templates` | 内建 + 用户自定义模板(save/list/remove,KeePassXC 风格) |
|
|
75
78
|
|
|
76
79
|
**典型开发场景**:存一条 SSH 凭据(`kind: ssh` + host/port/username/password 或 privateKey),开发时让模型 `vault_search` 找主机、`vault_get` 取连接信息;存 API 网关的 `api-key`/`oauth` 条目管理 access/refresh token 轮换。
|
|
77
80
|
|
package/README.md
CHANGED
|
@@ -54,7 +54,7 @@ Each record has a `title`, an optional `kind`, and any combination of fields:
|
|
|
54
54
|
| `vault_generate_password` | Generate a strong random password (length/classes/grouping) **or a memorable passphrase** (`passphrase: true`, EFF-style word list, `words`/`separator`/`wordDigits`) |
|
|
55
55
|
| `vault_strength` | Zero-dependency password strength estimate (score 0–100, weak/fair/strong/very strong) |
|
|
56
56
|
| `vault_rekey` | Upgrade the vault to fresh scrypt KDF parameters in place |
|
|
57
|
-
| `vault_backup` | Timestamped encrypted backup with retention
|
|
57
|
+
| `vault_backup` | Timestamped encrypted backup with retention; optional `note` |
|
|
58
58
|
| `vault_import_csv` | Bulk-import credentials from a CSV file (custom columns become fields; `overwrite: true` merges fields into existing entries instead of duplicating) |
|
|
59
59
|
| `vault_apply_tags` | Bulk add/remove/replace tags on every entry matching a query (dry-run supported, no secrets) |
|
|
60
60
|
| `vault_totp_uri` | Build an otpauth:// provisioning URI for a stored or bare TOTP secret |
|
|
@@ -63,6 +63,7 @@ Each record has a `title`, an optional `kind`, and any combination of fields:
|
|
|
63
63
|
| `vault_health` | Vault health scan: weak/reused passwords, missing 2FA, insecure http:// sites, and an overall security score (0–100) |
|
|
64
64
|
| `vault_breach_check` | Watchtower-style breach scan against Have I Been Pwned (k-anonymity: only the SHA-1 prefix leaves the machine), with an offline common-password fallback |
|
|
65
65
|
| `vault_integrity` | Verify the on-disk vault file decrypts correctly and matches the in-memory store |
|
|
66
|
+
| `vault_integrity` | Verify the on-disk vault file decrypts correctly and matches the in-memory store |
|
|
66
67
|
| `vault_merge` | Merge one entry into another; `keepSource: true` keeps the source after merging |
|
|
67
68
|
| `vault_quick_add` | Fast capture (title + one secret) with optional tags/notes |
|
|
68
69
|
| `vault_expiry` | Set/clear expiry (`expiresAt: 0` removes it) |
|
|
@@ -73,7 +74,9 @@ Each record has a `title`, an optional `kind`, and any combination of fields:
|
|
|
73
74
|
| `vault_export` / `vault_import` | Portable encrypted backup/migration of the whole vault (separate export password) |
|
|
74
75
|
| `vault_fill` | Find the entry matching a host/URL/username/title and return its credentials |
|
|
75
76
|
| `vault_env` | Render env-flagged entries (tags contain `env`) as `KEY=VALUE` lines |
|
|
76
|
-
| `
|
|
77
|
+
| `vault_export_bitwarden` / `vault_import_bitwarden` | Bitwarden/Vaultwarden JSON interop (full field mapping, overwrite support) |
|
|
78
|
+
| `vault_copy` | Copy an entry (secrets included) into another named vault |
|
|
79
|
+
| `vault_templates` | Built-in + user-defined templates (save/list/remove), KeePassXC-style |
|
|
77
80
|
|
|
78
81
|
**Typical workflows**: store an SSH credential (`kind: ssh` + host/port/username/password or privateKey) and have the model `vault_search` for the host then `vault_get` the connection details; keep `api-key`/`oauth` entries for API-gateway access/refresh token rotation.
|
|
79
82
|
|
package/lib/client.js
CHANGED
|
@@ -17,83 +17,83 @@ window.__ModuleLoader__.load({
|
|
|
17
17
|
document.head.appendChild(tag);
|
|
18
18
|
}
|
|
19
19
|
var VaultSection_module_css_default = {
|
|
20
|
+
"lockedBanner": "t_j5va_lockedBanner",
|
|
21
|
+
"intro": "t_j5va_intro",
|
|
22
|
+
"toolbar": "t_j5va_toolbar",
|
|
23
|
+
"policyBar": "t_j5va_policyBar",
|
|
24
|
+
"editorBody": "t_j5va_editorBody",
|
|
25
|
+
"field": "t_j5va_field",
|
|
26
|
+
"reportLine": "t_j5va_reportLine",
|
|
20
27
|
"sortButton": "t_j5va_sortButton",
|
|
21
|
-
"
|
|
28
|
+
"deleteButton": "t_j5va_deleteButton",
|
|
29
|
+
"editor": "t_j5va_editor",
|
|
30
|
+
"healthBar": "t_j5va_healthBar",
|
|
31
|
+
"checkField": "t_j5va_checkField",
|
|
32
|
+
"rowDue": "t_j5va_rowDue",
|
|
33
|
+
"badgeOk": "t_j5va_badgeOk",
|
|
34
|
+
"emptyHint": "t_j5va_emptyHint",
|
|
35
|
+
"list": "t_j5va_list",
|
|
36
|
+
"section": "t_j5va_section",
|
|
37
|
+
"rowActions": "t_j5va_rowActions",
|
|
38
|
+
"kindChip": "t_j5va_kindChip",
|
|
39
|
+
"emptyBox": "t_j5va_emptyBox",
|
|
22
40
|
"badge": "t_j5va_badge",
|
|
23
|
-
"
|
|
24
|
-
"
|
|
25
|
-
"
|
|
26
|
-
"
|
|
41
|
+
"row": "t_j5va_row",
|
|
42
|
+
"genOpts": "t_j5va_genOpts",
|
|
43
|
+
"revealButton": "t_j5va_revealButton",
|
|
44
|
+
"auditRow": "t_j5va_auditRow",
|
|
45
|
+
"saveButton": "t_j5va_saveButton",
|
|
46
|
+
"trashButton": "t_j5va_trashButton",
|
|
27
47
|
"detailItem": "t_j5va_detailItem",
|
|
28
|
-
"
|
|
29
|
-
"
|
|
48
|
+
"identity": "t_j5va_identity",
|
|
49
|
+
"badgeDanger": "t_j5va_badgeDanger",
|
|
50
|
+
"auditIssues": "t_j5va_auditIssues",
|
|
51
|
+
"pwMeter": "t_j5va_pwMeter",
|
|
30
52
|
"pwFair": "t_j5va_pwFair",
|
|
53
|
+
"reportTitle": "t_j5va_reportTitle",
|
|
54
|
+
"reportSub": "t_j5va_reportSub",
|
|
55
|
+
"copied": "t_j5va_copied",
|
|
56
|
+
"title": "t_j5va_title",
|
|
57
|
+
"dupGroup": "t_j5va_dupGroup",
|
|
58
|
+
"addButton": "t_j5va_addButton",
|
|
59
|
+
"badgeWarn": "t_j5va_badgeWarn",
|
|
31
60
|
"resultCount": "t_j5va_resultCount",
|
|
32
|
-
"
|
|
33
|
-
"
|
|
34
|
-
"healthBar": "t_j5va_healthBar",
|
|
35
|
-
"rowMain": "t_j5va_rowMain",
|
|
36
|
-
"scoreRing": "t_j5va_scoreRing",
|
|
37
|
-
"badgeDanger": "t_j5va_badgeDanger",
|
|
38
|
-
"clearButton": "t_j5va_clearButton",
|
|
39
|
-
"kindChip": "t_j5va_kindChip",
|
|
40
|
-
"deleteButton": "t_j5va_deleteButton",
|
|
61
|
+
"secretField": "t_j5va_secretField",
|
|
62
|
+
"footer": "t_j5va_footer",
|
|
41
63
|
"pinStar": "t_j5va_pinStar",
|
|
42
|
-
"genOpts": "t_j5va_genOpts",
|
|
43
|
-
"genOptRow": "t_j5va_genOptRow",
|
|
44
|
-
"auditIssues": "t_j5va_auditIssues",
|
|
45
|
-
"identity": "t_j5va_identity",
|
|
46
|
-
"trashButton": "t_j5va_trashButton",
|
|
47
|
-
"reportLine": "t_j5va_reportLine",
|
|
48
|
-
"pwLabel": "t_j5va_pwLabel",
|
|
49
64
|
"uriCode": "t_j5va_uriCode",
|
|
50
|
-
"
|
|
51
|
-
"
|
|
52
|
-
"
|
|
53
|
-
"emptyBox": "t_j5va_emptyBox",
|
|
54
|
-
"editor": "t_j5va_editor",
|
|
65
|
+
"empty": "t_j5va_empty",
|
|
66
|
+
"reportBox": "t_j5va_reportBox",
|
|
67
|
+
"scoreRing": "t_j5va_scoreRing",
|
|
55
68
|
"rowExpired": "t_j5va_rowExpired",
|
|
69
|
+
"searchBox": "t_j5va_searchBox",
|
|
70
|
+
"dangerButton": "t_j5va_dangerButton",
|
|
71
|
+
"clearButton": "t_j5va_clearButton",
|
|
72
|
+
"pwWeak": "t_j5va_pwWeak",
|
|
73
|
+
"rowMain": "t_j5va_rowMain",
|
|
74
|
+
"dupNames": "t_j5va_dupNames",
|
|
75
|
+
"backupButton": "t_j5va_backupButton",
|
|
76
|
+
"modeAsk": "t_j5va_modeAsk",
|
|
56
77
|
"totpRing": "t_j5va_totpRing",
|
|
57
|
-
"
|
|
58
|
-
"
|
|
78
|
+
"highBadge": "t_j5va_highBadge",
|
|
79
|
+
"pwStrong": "t_j5va_pwStrong",
|
|
59
80
|
"totp": "t_j5va_totp",
|
|
60
|
-
"
|
|
61
|
-
"
|
|
81
|
+
"editorActions": "t_j5va_editorActions",
|
|
82
|
+
"detailBox": "t_j5va_detailBox",
|
|
83
|
+
"srOnly": "t_j5va_srOnly",
|
|
84
|
+
"status": "t_j5va_status",
|
|
85
|
+
"error": "t_j5va_error",
|
|
62
86
|
"retryButton": "t_j5va_retryButton",
|
|
63
87
|
"policyField": "t_j5va_policyField",
|
|
64
|
-
"
|
|
65
|
-
"checkField": "t_j5va_checkField",
|
|
66
|
-
"rowDue": "t_j5va_rowDue",
|
|
67
|
-
"dupMerge": "t_j5va_dupMerge",
|
|
68
|
-
"row": "t_j5va_row",
|
|
69
|
-
"intro": "t_j5va_intro",
|
|
70
|
-
"backupButton": "t_j5va_backupButton",
|
|
71
|
-
"empty": "t_j5va_empty",
|
|
72
|
-
"modeAsk": "t_j5va_modeAsk",
|
|
73
|
-
"footer": "t_j5va_footer",
|
|
74
|
-
"revealButton": "t_j5va_revealButton",
|
|
75
|
-
"rowActions": "t_j5va_rowActions",
|
|
76
|
-
"dueBadge": "t_j5va_dueBadge",
|
|
77
|
-
"reportBox": "t_j5va_reportBox",
|
|
78
|
-
"pwBar": "t_j5va_pwBar",
|
|
79
|
-
"lockedBanner": "t_j5va_lockedBanner",
|
|
80
|
-
"field": "t_j5va_field",
|
|
81
|
-
"saveButton": "t_j5va_saveButton",
|
|
82
|
-
"error": "t_j5va_error",
|
|
88
|
+
"genOptRow": "t_j5va_genOptRow",
|
|
83
89
|
"modeReadonly": "t_j5va_modeReadonly",
|
|
84
|
-
"
|
|
85
|
-
"
|
|
86
|
-
"policyBar": "t_j5va_policyBar",
|
|
90
|
+
"kindIcon": "t_j5va_kindIcon",
|
|
91
|
+
"dueBadge": "t_j5va_dueBadge",
|
|
87
92
|
"modeAuto": "t_j5va_modeAuto",
|
|
88
93
|
"kindFilter": "t_j5va_kindFilter",
|
|
89
|
-
"
|
|
90
|
-
"
|
|
91
|
-
"
|
|
92
|
-
"badgeWarn": "t_j5va_badgeWarn",
|
|
93
|
-
"searchBox": "t_j5va_searchBox",
|
|
94
|
-
"editorActions": "t_j5va_editorActions",
|
|
95
|
-
"secretField": "t_j5va_secretField",
|
|
96
|
-
"highBadge": "t_j5va_highBadge"
|
|
94
|
+
"pwBar": "t_j5va_pwBar",
|
|
95
|
+
"pwLabel": "t_j5va_pwLabel",
|
|
96
|
+
"dupMerge": "t_j5va_dupMerge"
|
|
97
97
|
};
|
|
98
98
|
//#endregion
|
|
99
99
|
//#region src/client/VaultSection.tsx
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dsh-vault",
|
|
3
|
-
"version": "1.2.0
|
|
3
|
+
"version": "1.2.0",
|
|
4
4
|
"description": "Encrypted credential vault for DeepSeek Harness: store and retrieve usernames, emails, phone numbers, passwords, TOTP secrets, SSH/API-key/OAuth developer credentials through model tools and a Settings UI page.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|