# ๐Ÿ” Secret ็ฎก็† > Infisical + secret CLI โ€” ๅ›ข้˜Ÿ็บง secrets ็ปŸไธ€็ฎก็†ๆ–นๆกˆ --- ## ๆฆ‚่ฟฐ ๆˆ‘ไปฌไฝฟ็”จ [Infisical](https://app.infisical.com) ้›†ไธญ็ฎก็†ๅ›ข้˜Ÿ็š„ secrets๏ผˆAPI keysใ€tokensใ€ๅฏ†็ ็ญ‰๏ผ‰๏ผŒ้€š่ฟ‡่‡ช็ ”็š„ `secret` CLI ๅทฅๅ…ทๅœจๆœฌๅœฐไฝฟ็”จ๏ผŒๆ”ฏๆŒ็ผ“ๅญ˜ๅ’ŒๆŒ‰้œ€ๅˆทๆ–ฐใ€‚ **ๅŽŸๅˆ™๏ผšๆ‰€ๆœ‰ secrets ็ปŸไธ€็”จ `secret get` ่Žทๅ–๏ผŒไธ็กฌ็ผ–็ ใ€ไธๅœจ่Šๅคฉไธญๆ˜Žๆ–‡ไผ ้€’ใ€‚** ## ๆžถๆž„ ``` โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ Infisical Cloud โ”‚ โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ โ”‚ โ”‚ mitsein project โ”‚ โ”‚ โ† Mitsein ้กน็›ฎ็š„ .env secrets (83ไธช) โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ โ”‚ โ”‚ openclaw-fleet โ”‚ โ”‚ โ† ๅฐ้˜Ÿ็บง secrets (A2A tokens, ้‚ฎ็ฎฑ็ญ‰) โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ Universal Auth (Machine Identity) โ–ผ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ secret CLI (ๆœฌๅœฐ) โ”‚ โ”‚ ~/.config/openclaw-fleet/ โ”‚ โ”œโ”€โ”€ config.json โ”‚ โ† Infisical ๅ‡ญ่ฏ โ”‚ โ””โ”€โ”€ cache.json โ”‚ โ† ๆœฌๅœฐ็ผ“ๅญ˜ (24h TTL, 600ๆƒ้™) โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ ``` ## ๅฎ‰่ฃ… ### 1. ๅฎ‰่ฃ… Bun๏ผˆๅฆ‚ๆžœ่ฟ˜ๆฒกๆœ‰๏ผ‰ ```bash curl -fsSL https://bun.sh/install | bash ``` ### 2. Clone ๅทฅๅ…ท ```bash cd ~/Code git clone openclaw-fleet ``` ### 3. ๅˆ›ๅปบๅ…จๅฑ€ๅ‘ฝไปค ```bash mkdir -p ~/.local/bin cat > ~/.local/bin/secret << 'EOF' #!/bin/bash bun run ~/Code/openclaw-fleet/secret.ts "$@" EOF chmod +x ~/.local/bin/secret ``` ็กฎไฟ `~/.local/bin` ๅœจ PATH ไธญใ€‚ ### 4. ้…็ฝฎๅ‡ญ่ฏ ๆ‰พไธปไบบ่ฆไฝ ็š„ Machine Identity ๅ‡ญ่ฏ๏ผŒ็„ถๅŽ๏ผš ```bash mkdir -p ~/.config/openclaw-fleet cat > ~/.config/openclaw-fleet/config.json << EOF { "clientId": "ไฝ ็š„-client-id", "clientSecret": "ไฝ ็š„-client-secret", "projectId": "216773ac-d2c9-41ba-9efa-125081ca2d0a", "env": "dev", "ttlMs": 86400000 } EOF chmod 600 ~/.config/openclaw-fleet/config.json ``` ### 5. ้ชŒ่ฏ ```bash secret list # ๅบ”่ฏฅๅˆ—ๅ‡บๆ‰€ๆœ‰ keys secret sync # ๅ…จ้‡ๅŒๆญฅ็ผ“ๅญ˜ ``` ## ไฝฟ็”จ ### ๅŸบๆœฌๆ“ไฝœ ```bash # ่Žทๅ–๏ผˆๆœ‰็ผ“ๅญ˜่ตฐ็ผ“ๅญ˜๏ผŒ24ๅฐๆ—ถ่ฟ‡ๆœŸ่‡ชๅŠจๅˆทๆ–ฐ๏ผ‰ secret get AWS_ACCESS_KEY_ID # ๅผบๅˆถไปŽ Infisical ๆ‹‰ๆœ€ๆ–ฐ secret get AWS_ACCESS_KEY_ID --fresh # ๅ†™ๅ…ฅ๏ผˆๅŒๆ—ถๆ›ดๆ–ฐ่ฟœ็ซฏๅ’Œๆœฌๅœฐ็ผ“ๅญ˜๏ผ‰ secret set NEW_KEY "new-value" # ๅˆ—ๅ‡บๆ‰€ๆœ‰ keys secret list # ๅˆ—ๅ‡บๅนถๆ˜พ็คบๅ€ผ secret list --show # ๅ…จ้‡ๅˆทๆ–ฐ็ผ“ๅญ˜ secret sync ``` ### ๅœจ่„šๆœฌไธญไฝฟ็”จ ```bash # ๆ–นๅผไธ€๏ผšๅ‘ฝไปคๆ›ฟๆข curl -H "Authorization: Bearer $(secret get KUMA_A2A_INBOUND_TOKEN)" https://... # ๆ–นๅผไบŒ๏ผšๆณจๅ…ฅ็Žฏๅขƒๅ˜้‡่ฟ่กŒๅ‘ฝไปค secret exec -- node my-script.js # my-script.js ๅฏไปฅ็›ดๆŽฅ process.env.AWS_ACCESS_KEY_ID ``` ### Agent ไฝฟ็”จ็คบไพ‹ ```bash # ่Žทๅ– A2A token ๅ‘ๆถˆๆฏ KUMA_TOKEN=$(secret get KUMA_A2A_INBOUND_TOKEN) node a2a-send.mjs --token "$KUMA_TOKEN" --message "hello" # ่Žทๅ– AWS ๅ‡ญ่ฏ AWS_KEY=$(secret get AWS_ACCESS_KEY_ID) AWS_SECRET=$(secret get AWS_SECRET_ACCESS_KEY) # ๆ‹‰ Mitsein ้กน็›ฎ็š„ .env MITSEIN_ID=$(secret get INFISICAL_MITSEIN_CLIENT_ID) MITSEIN_SECRET=$(secret get INFISICAL_MITSEIN_CLIENT_SECRET) infisical login --method=universal-auth --client-id="$MITSEIN_ID" --client-secret="$MITSEIN_SECRET" ``` ## ็ผ“ๅญ˜ๆœบๅˆถ - **ไฝ็ฝฎ**๏ผš`~/.config/openclaw-fleet/cache.json` - **ๆƒ้™**๏ผš600๏ผˆไป…ๆœฌไบบๅฏ่ฏปๅ†™๏ผ‰ - **TTL**๏ผš้ป˜่ฎค 24 ๅฐๆ—ถ - **get ๆต็จ‹**๏ผš็ผ“ๅญ˜ๆœ‰ๆ•ˆ โ†’ ็›ดๆŽฅ่ฟ”ๅ›ž๏ผ›็ผ“ๅญ˜่ฟ‡ๆœŸ โ†’ ่‡ชๅŠจไปŽ Infisical ๅˆทๆ–ฐ - **set ๆต็จ‹**๏ผšๅ…ˆๆ›ดๆ–ฐ Infisical โ†’ ๅ†ๆ›ดๆ–ฐๆœฌๅœฐ็ผ“ๅญ˜ - **sync**๏ผšๅ…จ้‡ๆ‹‰ๅ–ๆ‰€ๆœ‰ secrets ๅˆฐ็ผ“ๅญ˜ ## ๅฝ“ๅ‰ Secrets ๆธ…ๅ• ### openclaw-fleet project | Key | ็”จ้€” | |:----|:-----| | `SORA_A2A_INBOUND_TOKEN` | SORA ็š„ A2A ๅ…ฅ็ซ™่ฎค่ฏ token | | `KUMA_A2A_INBOUND_TOKEN` | KUMA ็š„ A2A ๅ…ฅ็ซ™่ฎค่ฏ token | | `NEKO_A2A_INBOUND_TOKEN` | NEKO ็š„ A2A ๅ…ฅ็ซ™่ฎค่ฏ token | | `RAKU_A2A_INBOUND_TOKEN` | RAKU ็š„ A2A ๅ…ฅ็ซ™่ฎค่ฏ token | | `SORA_EMAIL` | ๆ˜Ÿๆœˆ็š„้‚ฎ็ฎฑๅœฐๅ€ | | `SORA_EMAIL_PASSWORD` | ๆ˜Ÿๆœˆ็š„้‚ฎ็ฎฑๅฏ†็  | | `EMAIL_IMAP_HOST` | IMAP ๆœๅŠกๅ™จ | | `EMAIL_SMTP_HOST` | SMTP ๆœๅŠกๅ™จ | | `AWS_ACCESS_KEY_ID` | AWS IAM | | `AWS_SECRET_ACCESS_KEY` | AWS IAM | | `GITEE_TOKEN` | Gitee API token | | `INFISICAL_MITSEIN_CLIENT_ID` | Mitsein ้กน็›ฎ็š„ Infisical ๅ‡ญ่ฏ | | `INFISICAL_MITSEIN_CLIENT_SECRET` | Mitsein ้กน็›ฎ็š„ Infisical ๅ‡ญ่ฏ | ## ๆ–ฐๆˆๅ‘˜ไธŠ็บฟๆต็จ‹ 1. ไธปไบบๅœจ Infisical ๅˆ›ๅปบ Machine Identity โ†’ ๅ‘ Client ID + Secret 2. ๆ–ฐๆˆๅ‘˜้…็ฝฎ `~/.config/openclaw-fleet/config.json` 3. `secret sync` โ†’ ๆ‰€ๆœ‰ secrets ๅˆฐๆ‰‹ 4. ไธ้œ€่ฆไบ’็›ธ copy .env ๆˆ–ๅœจ่Šๅคฉ้‡Œไผ ๅฏ†็  ## FAQ **Q: ็ผ“ๅญ˜ๆŸๅไบ†ๆ€ŽไนˆๅŠž๏ผŸ** ```bash rm ~/.config/openclaw-fleet/cache.json secret sync ``` **Q: ๅฆ‚ไฝ•ๅˆ‡ๆข Infisical ็Žฏๅขƒ๏ผŸ** ไฟฎๆ”น `config.json` ็š„ `env` ๅญ—ๆฎต๏ผˆdev / staging / prod๏ผ‰ใ€‚ **Q: Mitsein ้กน็›ฎ็š„ secrets ไนŸ็”จ่ฟ™ไธชๅ‘ฝไปคๅ—๏ผŸ** Mitsein ็š„ secrets ่ตฐ `dev.ts secrets`๏ผˆไธ“้—จ็š„ไธ€้”ฎๅฏๅŠจ่„šๆœฌ๏ผ‰๏ผŒ็”จ็š„ๆ˜ฏไธๅŒ็š„ Infisical projectใ€‚`secret` CLI ็ฎก็š„ๆ˜ฏๅฐ้˜Ÿ็บง็š„้€š็”จ secretsใ€‚ ---
:material-shield-lock:{ .middle } Secret ไธ่ฝๅœฐ๏ผŒๅฎ‰ๅ…จๆœ‰ไฟ้šœ