1041006580 commited on
Commit
9843e1b
·
1 Parent(s): 351a21e

feat(docker): 支持通过CREDENTIALS_JSON环境变量配置多凭据

Browse files
Files changed (2) hide show
  1. README.md +49 -2
  2. entrypoint.sh +20 -10
README.md CHANGED
@@ -345,14 +345,20 @@ kiro-rs/
345
 
346
  本项目支持部署到 HuggingFace Spaces。通过环境变量配置:
347
 
348
- ### 必需的环境变量
 
 
 
 
 
 
349
 
350
  | 变量名 | 说明 | 示例 |
351
  |--------|------|------|
352
  | `REFRESH_TOKEN` | Kiro 刷新令牌 | `your-refresh-token` |
353
  | `API_KEY` | API 访问密钥 | `sk-kiro-rs-your-key` |
354
 
355
- ### 可选的环境变量
356
 
357
  | 变量名 | 说明 | 默认值 |
358
  |--------|------|--------|
@@ -363,6 +369,47 @@ kiro-rs/
363
  | `CLIENT_SECRET` | IdC 客户端密钥(仅 idc 模式) | - |
364
  | `ADMIN_API_KEY` | Admin API 密钥(启用管理界面) | - |
365
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
366
  ### 启用 Admin 管理界面
367
 
368
  在 HuggingFace Space 的 Settings → Variables 中添加:
 
345
 
346
  本项目支持部署到 HuggingFace Spaces。通过环境变量配置:
347
 
348
+ ### 凭据配置模式
349
+
350
+ 支持两种凭据配置模式:
351
+
352
+ #### 模式1:单凭据模式(简单)
353
+
354
+ **必需的环境变量**:
355
 
356
  | 变量名 | 说明 | 示例 |
357
  |--------|------|------|
358
  | `REFRESH_TOKEN` | Kiro 刷新令牌 | `your-refresh-token` |
359
  | `API_KEY` | API 访问密钥 | `sk-kiro-rs-your-key` |
360
 
361
+ **可选的环境变量**:
362
 
363
  | 变量名 | 说明 | 默认值 |
364
  |--------|------|--------|
 
369
  | `CLIENT_SECRET` | IdC 客户端密钥(仅 idc 模式) | - |
370
  | `ADMIN_API_KEY` | Admin API 密钥(启用管理界面) | - |
371
 
372
+ #### 模式2:多凭据模式(高级)
373
+
374
+ 使用 `CREDENTIALS_JSON` 环境变量传入完整的凭据数组(JSON格式):
375
+
376
+ **必需的环境变量**:
377
+
378
+ | 变量名 | 说明 | 示例 |
379
+ |--------|------|------|
380
+ | `CREDENTIALS_JSON` | 凭据JSON数组 | 见下方示例 |
381
+ | `API_KEY` | API 访问密钥 | `sk-kiro-rs-your-key` |
382
+
383
+ **CREDENTIALS_JSON 示例**:
384
+
385
+ ```json
386
+ [
387
+ {
388
+ "refreshToken": "第一个凭据的刷新token",
389
+ "expiresAt": "2025-12-31T02:32:45.144Z",
390
+ "authMethod": "social",
391
+ "priority": 0
392
+ },
393
+ {
394
+ "refreshToken": "第二个凭据的刷新token",
395
+ "expiresAt": "2025-12-31T02:32:45.144Z",
396
+ "authMethod": "idc",
397
+ "clientId": "xxxxxxxxx",
398
+ "clientSecret": "xxxxxxxxx",
399
+ "priority": 1
400
+ }
401
+ ]
402
+ ```
403
+
404
+ **注意**:在HuggingFace Space设置环境变量时,需要将JSON压缩成一行,去掉换行符。
405
+
406
+ **其他可选环境变量**:
407
+
408
+ | 变量名 | 说明 | 默认值 |
409
+ |--------|------|--------|
410
+ | `REGION` | AWS 区域 | `us-east-1` |
411
+ | `ADMIN_API_KEY` | Admin API 密钥(启用管理界面) | - |
412
+
413
  ### 启用 Admin 管理界面
414
 
415
  在 HuggingFace Space 的 Settings → Variables 中添加:
entrypoint.sh CHANGED
@@ -25,26 +25,36 @@ EOF
25
  fi
26
 
27
  # 从环境变量生成 credentials.json
28
- # 支持单凭据模式
29
- cat > /app/config/credentials.json << EOF
 
 
 
 
 
 
 
 
 
 
30
  {
31
  "refreshToken": "${REFRESH_TOKEN}",
32
  "expiresAt": "${EXPIRES_AT:-2020-01-01T00:00:00.000Z}",
33
- "authMethod": "${AUTH_METHOD:-social}"
 
 
34
  }
35
  EOF
36
-
37
- # 如果是 IdC 模式,需要添加 clientId 和 clientSecret
38
- if [ "${AUTH_METHOD}" = "idc" ]; then
39
- cat > /app/config/credentials.json << EOF
40
  {
41
  "refreshToken": "${REFRESH_TOKEN}",
42
  "expiresAt": "${EXPIRES_AT:-2020-01-01T00:00:00.000Z}",
43
- "authMethod": "idc",
44
- "clientId": "${CLIENT_ID}",
45
- "clientSecret": "${CLIENT_SECRET}"
46
  }
47
  EOF
 
 
48
  fi
49
 
50
  echo "Starting kiro-rs..."
 
25
  fi
26
 
27
  # 从环境变量生成 credentials.json
28
+ # 支持两种模式
29
+ # 1. 多凭据模式:通过 CREDENTIALS_JSON 环境变量传入完整的 JSON 数组
30
+ # 2. 单凭据模式:通过单独的环境变量(向后兼容)
31
+
32
+ if [ -n "${CREDENTIALS_JSON}" ]; then
33
+ # 多凭据模式:直接使用 CREDENTIALS_JSON
34
+ echo "${CREDENTIALS_JSON}" > /app/config/credentials.json
35
+ echo "Using multi-credential mode from CREDENTIALS_JSON"
36
+ else
37
+ # 单凭据模式
38
+ if [ "${AUTH_METHOD}" = "idc" ]; then
39
+ cat > /app/config/credentials.json << EOF
40
  {
41
  "refreshToken": "${REFRESH_TOKEN}",
42
  "expiresAt": "${EXPIRES_AT:-2020-01-01T00:00:00.000Z}",
43
+ "authMethod": "idc",
44
+ "clientId": "${CLIENT_ID}",
45
+ "clientSecret": "${CLIENT_SECRET}"
46
  }
47
  EOF
48
+ else
49
+ cat > /app/config/credentials.json << EOF
 
 
50
  {
51
  "refreshToken": "${REFRESH_TOKEN}",
52
  "expiresAt": "${EXPIRES_AT:-2020-01-01T00:00:00.000Z}",
53
+ "authMethod": "${AUTH_METHOD:-social}"
 
 
54
  }
55
  EOF
56
+ fi
57
+ echo "Using single-credential mode"
58
  fi
59
 
60
  echo "Starting kiro-rs..."