@pengzi/kms 1.1.0 → 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.md +64 -5
- package/dist/cli/cli/kms.js +1050 -0
- package/dist/cli/kms.js +1050 -0
- package/dist/cli/src/client.js +254 -0
- package/dist/cli/src/core/asymmetric-crypto.js +170 -0
- package/dist/cli/src/core/crypto.js +99 -0
- package/dist/cli/src/core/crypto.service.js +66 -0
- package/dist/cli/src/core/key-derivation.js +95 -0
- package/dist/cli/src/index.js +50 -0
- package/dist/cli/src/models/audit.model.js +82 -0
- package/dist/cli/src/models/key.model.js +119 -0
- package/dist/cli/src/models/project.model.js +53 -0
- package/dist/cli/src/models/user.model.js +140 -0
- package/dist/cli/src/repositories/audit.repository.js +115 -0
- package/dist/cli/src/repositories/base.repository.js +94 -0
- package/dist/cli/src/repositories/key.repository.js +125 -0
- package/dist/cli/src/repositories/project.repository.js +81 -0
- package/dist/cli/src/repositories/user.repository.js +101 -0
- package/dist/cli/src/services/audit.service.js +111 -0
- package/dist/cli/src/services/auth.service.js +176 -0
- package/dist/cli/src/services/key.service.js +137 -0
- package/dist/cli/src/services/permission.service.js +142 -0
- package/dist/cli/src/services/project.service.js +102 -0
- package/dist/cli/src/types/audit.types.js +54 -0
- package/dist/cli/src/types/crypto.types.js +5 -0
- package/dist/cli/src/types/index.js +90 -0
- package/dist/cli/src/types/key.types.js +27 -0
- package/dist/cli/src/types/project.types.js +15 -0
- package/dist/cli/src/types/user.types.js +48 -0
- package/dist/cli/src/utils/config-loader.js +125 -0
- package/dist/cli/src/utils/constants.js +118 -0
- package/dist/cli/src/utils/error-handler.js +108 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +19 -2
- package/dist/client.js.map +1 -1
- package/dist/models/key.model.js +1 -1
- package/dist/models/key.model.js.map +1 -1
- package/dist/services/key.service.d.ts +5 -0
- package/dist/services/key.service.d.ts.map +1 -1
- package/dist/services/key.service.js +12 -4
- package/dist/services/key.service.js.map +1 -1
- package/dist/src/client.js +269 -0
- package/dist/src/core/asymmetric-crypto.js +170 -0
- package/dist/src/core/crypto.js +99 -0
- package/dist/src/core/crypto.service.js +66 -0
- package/dist/src/core/key-derivation.js +95 -0
- package/dist/src/index.js +50 -0
- package/dist/src/models/audit.model.js +82 -0
- package/dist/src/models/key.model.js +119 -0
- package/dist/src/models/project.model.js +53 -0
- package/dist/src/models/user.model.js +140 -0
- package/dist/src/repositories/audit.repository.js +115 -0
- package/dist/src/repositories/base.repository.js +94 -0
- package/dist/src/repositories/key.repository.js +125 -0
- package/dist/src/repositories/project.repository.js +81 -0
- package/dist/src/repositories/user.repository.js +101 -0
- package/dist/src/services/audit.service.js +111 -0
- package/dist/src/services/auth.service.js +176 -0
- package/dist/src/services/key.service.js +137 -0
- package/dist/src/services/permission.service.js +142 -0
- package/dist/src/services/project.service.js +102 -0
- package/dist/src/types/audit.types.js +54 -0
- package/dist/src/types/crypto.types.js +5 -0
- package/dist/src/types/index.js +90 -0
- package/dist/src/types/key.types.js +27 -0
- package/dist/src/types/project.types.js +15 -0
- package/dist/src/types/user.types.js +48 -0
- package/dist/src/utils/config-loader.js +125 -0
- package/dist/src/utils/constants.js +118 -0
- package/dist/src/utils/error-handler.js +108 -0
- package/dist/types/client.types.d.ts +20 -0
- package/dist/types/client.types.d.ts.map +1 -1
- package/package.json +7 -2
package/README.md
CHANGED
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
- **审计日志**:完整记录所有密钥操作
|
|
11
11
|
- **TypeScript**:完整的类型定义
|
|
12
12
|
- **易用性**:简洁的API设计
|
|
13
|
+
- **CLI工具**:交互式命令行工具,无需编写代码即可管理密钥
|
|
13
14
|
|
|
14
15
|
## 安全特性
|
|
15
16
|
|
|
@@ -23,7 +24,13 @@
|
|
|
23
24
|
## 安装
|
|
24
25
|
|
|
25
26
|
```bash
|
|
26
|
-
npm install @
|
|
27
|
+
npm install @pengzi/kms
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
安装后即可使用 CLI 工具:
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
kms
|
|
27
34
|
```
|
|
28
35
|
|
|
29
36
|
## 前置要求
|
|
@@ -33,10 +40,39 @@ npm install @pzdemons/kms
|
|
|
33
40
|
|
|
34
41
|
## 快速开始
|
|
35
42
|
|
|
36
|
-
### 1
|
|
43
|
+
### 方式 1: 使用 CLI 工具(推荐新手)
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
# 启动交互式 CLI
|
|
47
|
+
kms
|
|
48
|
+
|
|
49
|
+
# 首次使用需要配置数据库连接
|
|
50
|
+
# 按提示输入 MongoDB 连接字符串
|
|
51
|
+
|
|
52
|
+
# 创建项目
|
|
53
|
+
选择: 项目管理 → 创建新项目
|
|
54
|
+
项目名称: my-project
|
|
55
|
+
主密码: MySecurePassword123!
|
|
56
|
+
|
|
57
|
+
# 创建密钥
|
|
58
|
+
选择: 密钥管理 → 创建密钥
|
|
59
|
+
项目: my-project
|
|
60
|
+
密钥名称: mongodb-primary
|
|
61
|
+
密钥类型: mongodb
|
|
62
|
+
密钥值: mongodb://user:pass@localhost:27017/mydb
|
|
63
|
+
|
|
64
|
+
# 获取密钥
|
|
65
|
+
选择: 密钥管理 → 获取密钥值
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
详细 CLI 使用说明请查看:[CLI 使用指南](./docs/CLI_GUIDE.md)
|
|
69
|
+
|
|
70
|
+
### 方式 2: 使用 Node.js SDK
|
|
71
|
+
|
|
72
|
+
#### 1. 初始化客户端
|
|
37
73
|
|
|
38
74
|
```typescript
|
|
39
|
-
import { KMSClient, KeyType } from '@
|
|
75
|
+
import { KMSClient, KeyType } from '@pengzi/kms';
|
|
40
76
|
|
|
41
77
|
const kms = new KMSClient({
|
|
42
78
|
connectionString: 'mongodb://localhost:27017',
|
|
@@ -203,12 +239,35 @@ app.listen(3000);
|
|
|
203
239
|
|
|
204
240
|
为了确保系统的安全性,请遵循以下最佳实践:
|
|
205
241
|
|
|
206
|
-
1.
|
|
242
|
+
1. **使用 TLS/SSL 连接** ⚠️ 重要
|
|
243
|
+
- 生产环境**必须**使用 TLS/SSL 加密连接
|
|
244
|
+
- MongoDB Atlas 默认启用 TLS,连接字符串使用 `mongodb+srv://`
|
|
245
|
+
- 自建 MongoDB 需配置 TLS 证书
|
|
246
|
+
```javascript
|
|
247
|
+
// MongoDB Atlas(自动启用 TLS)
|
|
248
|
+
const kms = new KMSClient({
|
|
249
|
+
connectionString: 'mongodb+srv://user:pass@cluster.mongodb.net/kms',
|
|
250
|
+
databaseName: 'kms'
|
|
251
|
+
});
|
|
252
|
+
|
|
253
|
+
// 自建 MongoDB + TLS
|
|
254
|
+
const kms = new KMSClient({
|
|
255
|
+
connectionString: 'mongodb://localhost:27017/kms',
|
|
256
|
+
databaseName: 'kms',
|
|
257
|
+
connectionOptions: {
|
|
258
|
+
tls: true,
|
|
259
|
+
tlsCAFile: '/path/to/ca.pem'
|
|
260
|
+
}
|
|
261
|
+
});
|
|
262
|
+
```
|
|
263
|
+
详细说明请查看:[TLS 连接指南](./docs/TLS_GUIDE.md)
|
|
264
|
+
|
|
265
|
+
2. **主密码安全**
|
|
207
266
|
- 使用至少12个字符的强密码
|
|
208
267
|
- 包含大小写字母、数字和特殊字符
|
|
209
268
|
- 定期轮换主密码(建议每180天)
|
|
210
269
|
|
|
211
|
-
|
|
270
|
+
3. **密钥轮换**
|
|
212
271
|
- 定期轮换数据库连接凭证(建议每90天)
|
|
213
272
|
- 设置密钥过期时间
|
|
214
273
|
|