unified-keys 0.3.0 → 0.5.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 +3 -3
- package/SKILL.md +2 -1
- package/package.json +1 -1
- package/src/types.ts +7 -2
package/README.md
CHANGED
|
@@ -48,11 +48,11 @@ const result = await verifyKey(
|
|
|
48
48
|
### `createClient({ baseUrl, rootKey })` → client
|
|
49
49
|
管理客户端。`rootKey` 用于管理 API(verify 端点不需要)。
|
|
50
50
|
|
|
51
|
-
### `client.createKey({ appId, prefix?, credits?, maxUses?, meta?, externalId?, expiresAt?, count? })`
|
|
52
|
-
创建 key。返回 `{ keys: [{ key, keyId }] }`,`key`
|
|
51
|
+
### `client.createKey({ appId, prefix?, length?, credits?, maxUses?, meta?, externalId?, expiresAt?, count? })`
|
|
52
|
+
创建 key。返回 `{ keys: [{ key, keyId }] }`,`key` 是完整明文(`<prefix>_<base62 length>`)。`appId` 首次自动注册。`length` 默认 8(短期邀请码等);**长期付费 key 传 16**(≈95 bit 防爆破)。
|
|
53
53
|
|
|
54
54
|
### `verifyKey({ key, decrement?, autoDelete?, context? })`
|
|
55
|
-
公开验证(无需 rootKey,baseUrl 内置默认)。`decrement: true` 扣减 + 写 verify log;`false` 只查。`autoDelete
|
|
55
|
+
公开验证(无需 rootKey,baseUrl 内置默认)。`decrement: true` 扣减 + 写 verify log;`false` 只查。`autoDelete`:扣减后额度用尽(remaining=0)自动删——`true` 立即删;`"3m"`/`"2h"`/`"3d"` 延迟删(set deleteAt,Cron 每 10min 清理过期 key,保留记录供 admin 查看一段时间)。SDK 前置 `isValidKeyFormat` 校验,格式不对直接返回不查 DB。
|
|
56
56
|
返回 `{ valid, found, keyId, remaining, maxUses, meta, externalId, appId, enabled, expiresAt, createdAt }`。
|
|
57
57
|
|
|
58
58
|
### `client.listKeys({ appId, limit?, offset? })`
|
package/SKILL.md
CHANGED
|
@@ -38,6 +38,7 @@ const { keys } = await client.createKey({
|
|
|
38
38
|
appId: "my-app",
|
|
39
39
|
credits: 5, // 初始剩余次数
|
|
40
40
|
maxUses: 5, // 总额度(0 = 无限)
|
|
41
|
+
length: 8, // body 位数(默认 8;长期付费 key 用 16 防爆破)
|
|
41
42
|
externalId: "user-123", // 应用层关联业务实体(可选)
|
|
42
43
|
meta: { plan: "pro" }, // 任意元数据(可选)
|
|
43
44
|
count: 1, // 批量创建数
|
|
@@ -99,7 +100,7 @@ if (!isValidKeyFormat(inputKey)) return invalid();
|
|
|
99
100
|
| 选项 | 默认 | 说明 |
|
|
100
101
|
|---|---|---|
|
|
101
102
|
| `decrement` | true | true 扣减 + 写 verify log;false 只查 |
|
|
102
|
-
| `autoDelete` | false | 扣减后 remaining=0
|
|
103
|
+
| `autoDelete` | false | 扣减后 remaining=0 自动删:`true` 立即删;`"3m"`/`"2h"`/`"3d"` 延迟删(set deleteAt,Cron 每 10min 清理过期 key,保留记录供 admin 查看一段时间) |
|
|
103
104
|
| `context` | - | 写入 usage_log({username, ip, source, ...}) |
|
|
104
105
|
|
|
105
106
|
**SDK 前置校验**:verify 前先 `isValidKeyFormat(key)`,格式不对直接返回 `{valid:false, found:false}`,不查 DB(省时间)。应用也可单独用 `isValidKeyFormat` 做手输校验。
|
package/package.json
CHANGED
package/src/types.ts
CHANGED
|
@@ -37,6 +37,8 @@ export interface CreateKeyInput {
|
|
|
37
37
|
expiresAt?: string;
|
|
38
38
|
/** 应用层关联业务实体(如 github-inviter 的 configSlug) */
|
|
39
39
|
externalId?: string;
|
|
40
|
+
/** key body 长度(base62 位数),默认 8;长期付费 key 建议 16(防爆破) */
|
|
41
|
+
length?: number;
|
|
40
42
|
/** 总额度(0=无限),默认等于 credits */
|
|
41
43
|
maxUses?: number;
|
|
42
44
|
/** 应用层任意元数据 */
|
|
@@ -124,8 +126,11 @@ export interface GetKeyResult {
|
|
|
124
126
|
}
|
|
125
127
|
|
|
126
128
|
export interface VerifyInput {
|
|
127
|
-
/**
|
|
128
|
-
|
|
129
|
+
/**
|
|
130
|
+
* 扣减后额度用尽(remaining=0)自动删除:true 立即删;
|
|
131
|
+
* "3m"/"2h"/"3d" 等延迟删(set deleteAt,Cron 定期清理,保留记录一段时间)
|
|
132
|
+
*/
|
|
133
|
+
autoDelete?: boolean | string;
|
|
129
134
|
/** 上下文,写入 usage_log(如 {username, source, ip}) */
|
|
130
135
|
context?: Record<string, unknown>;
|
|
131
136
|
/** 默认 true;false 时只查不扣(写 verify log 但不扣减) */
|