Skip to content

gitstq/EnvShield

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

1 Commit
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ›ก๏ธ EnvShield

English | ็ฎ€ไฝ“ไธญๆ–‡ | ็น้ซ”ไธญๆ–‡

Lightweight Environment Variable Security Management CLI Engine

Version Python License Encryption


็ฎ€ไฝ“ไธญๆ–‡

๐ŸŽ‰ ้กน็›ฎไป‹็ป

EnvShield ๆ˜ฏไธ€ๆฌพ่ฝป้‡็บง็Žฏๅขƒๅ˜้‡ๅฎ‰ๅ…จ็ฎก็† CLI ๅผ•ๆ“Ž๏ผŒไธ“ไธบไฟๆŠคๅบ”็”จ็จ‹ๅบๆ•ๆ„Ÿ้…็ฝฎ่€Œ่ฎพ่ฎกใ€‚

ไธบไป€ไนˆ้œ€่ฆ EnvShield๏ผŸ

ๅœจๆ—ฅๅธธๅผ€ๅ‘ไธญ๏ผŒๆˆ‘ไปฌ็ปๅธธ้ขไธดไปฅไธ‹็—›็‚น๏ผš

  • .env ๆ–‡ไปถไปฅๆ˜Žๆ–‡ๅญ˜ๅ‚จๅœจ้กน็›ฎ็›ฎๅฝ•ไธญ๏ผŒไปปไฝ•ๆ‹ฅๆœ‰ไปฃ็ ่ฎฟ้—ฎๆƒ้™็š„ไบบ้ƒฝ่ƒฝ็œ‹ๅˆฐๆ•ฐๆฎๅบ“ๅฏ†็ ใ€API ๅฏ†้’ฅ็ญ‰ๆ•ๆ„Ÿไฟกๆฏ
  • ๅ›ข้˜Ÿๅไฝœๆ—ถ๏ผŒๅฏ†้’ฅ้€š่ฟ‡ๅณๆ—ถ้€š่ฎฏๅทฅๅ…ทๆˆ–้‚ฎไปถไผ ้€’๏ผŒๅญ˜ๅœจๆณ„้œฒ้ฃŽ้™ฉ
  • ็ผบไน็ณป็ปŸๅŒ–็š„ๅฎ‰ๅ…จๅฎก่ฎกๆ‰‹ๆฎต๏ผŒ้šพไปฅ่ฏ„ไผฐๅฝ“ๅ‰็Žฏๅขƒ้…็ฝฎ็š„ๅฎ‰ๅ…จๆฐดไฝ
  • ๆบ็ ไธญๅถๅฐ”ๆฎ‹็•™็กฌ็ผ–็ ็š„ๅฏ†้’ฅ๏ผŒๆˆไธบๅฎ‰ๅ…จ้šๆ‚ฃ็š„ๅฎšๆ—ถ็‚ธๅผน
  • ๅคš็Žฏๅขƒ๏ผˆๅผ€ๅ‘ใ€ๆต‹่ฏ•ใ€็”Ÿไบง๏ผ‰็š„้…็ฝฎ็ฎก็†ๆททไนฑ๏ผŒๅฎนๆ˜“่ฏฏๆ“ไฝœ

ๆ ธๅฟƒไปทๅ€ผ๏ผš ็”จไธ€่กŒๅ‘ฝไปคๅฎŒๆˆ็Žฏๅขƒๅ˜้‡็š„ๅŠ ๅฏ†ไฟๆŠค๏ผŒ็”จไธ€ๅฅ—่ง„ๅˆ™ๅฎž็Žฐๅฎ‰ๅ…จๅฎก่ฎก่‡ชๅŠจๅŒ–๏ผŒ็”จ้›ถไพตๅ…ฅ็š„ๆ–นๅผ่žๅ…ฅ็Žฐๆœ‰ๅผ€ๅ‘ๆต็จ‹ใ€‚

ๅทฎๅผ‚ๅŒ–ไบฎ็‚น๏ผš

  • ๐Ÿ” ้›ถ้…็ฝฎๅฏๅŠจ โ€” ๆ— ้œ€ๅคๆ‚่ฎพ็ฝฎ๏ผŒenvshield init ๅณๅˆปไธŠๆ‰‹
  • โšก ๆž่‡ด่ฝป้‡ โ€” ๆ ธๅฟƒไพ่ต–ไป… cryptographyใ€richใ€click ไธ‰ไธชๅบ“
  • ๐Ÿ”„ ๆ— ็ผ้›†ๆˆ โ€” Git ้’ฉๅญ่‡ชๅŠจๆ‹ฆๆˆช๏ผŒ่ฟ่กŒๆ—ถ้€ๆ˜Ž่งฃๅฏ†ๆณจๅ…ฅ
  • ๐Ÿ“Š ้‡ๅŒ–ๅฎ‰ๅ…จ โ€” 15 ๆกๅฎก่ฎก่ง„ๅˆ™่พ“ๅ‡บ 0-100 ๅฎ‰ๅ…จ่ฏ„ๅˆ†๏ผŒๅฎ‰ๅ…จ็Šถๅ†ตไธ€็›ฎไบ†็„ถ

โœจ ๆ ธๅฟƒ็‰นๆ€ง

็‰นๆ€ง ่ฏดๆ˜Ž
๐Ÿ”’ AES-256-GCM ๅŠ ๅฏ† ้‡‡็”จๅ†›ไบ‹็บงๅŠ ๅฏ†็ฎ—ๆณ•ไฟๆŠค .env ๆ–‡ไปถ๏ผŒๆ”ฏๆŒ่ฎค่ฏๅŠ ๅฏ†๏ผŒ้˜ฒ็ฏกๆ”น
๐Ÿ” ๅฎ‰ๅ…จๅฎก่ฎกๅผ•ๆ“Ž ๅ†…็ฝฎ 15 ๆกๅฎ‰ๅ…จ่ง„ๅˆ™๏ผŒ่พ“ๅ‡บ 0-100 ๅฎ‰ๅ…จ่ฏ„ๅˆ†ๅŠ่ฏฆ็ป†ๆ”น่ฟ›ๅปบ่ฎฎ
๐Ÿ•ต๏ธ ๆบ็ ๆ‰ซๆๅ™จ ๆ™บ่ƒฝๆฃ€ๆต‹ 20+ ็ง็กฌ็ผ–็ ๅฏ†้’ฅๆจกๅผ๏ผŒ่ฆ†็›– Pythonใ€JSใ€Goใ€Java ็ญ‰ไธปๆต่ฏญ่จ€
๐Ÿช Git ้’ฉๅญๅฎˆๆŠค ่‡ชๅŠจๅฎ‰่ฃ… pre-commit ้’ฉๅญ๏ผŒไปŽๆบๅคด้˜ปๆญข .env ๆ–‡ไปถ่ขซๆไบคๅˆฐไปฃ็ ไป“ๅบ“
๐ŸŒ ๅคš็Žฏๅขƒ็ฎก็† ๆ”ฏๆŒ dev / staging / prod ๅคš็Žฏๅขƒ้…็ฝฎๅˆ‡ๆข๏ผŒๅ‘Šๅˆซ็Žฏๅขƒๆททไนฑ
๐Ÿ“Š TUI ๅฏ่ง†ๅŒ–ไปช่กจ็›˜ ๅŸบไบŽ Rich ๆž„ๅปบ็š„็ปˆ็ซฏไปช่กจ็›˜๏ผŒ็›ด่ง‚ๅฑ•็คบๅฎ‰ๅ…จ็Šถๆ€ๆฆ‚่งˆ
๐Ÿ’‰ ่ฟ่กŒๆ—ถๅ†…ๅญ˜่งฃๅฏ† ่งฃๅฏ†ๅŽ็š„ๅ˜้‡ไป…ๅญ˜ๅœจไบŽ่ฟ›็จ‹ๅ†…ๅญ˜ไธญ๏ผŒไธ่ฝ็›˜๏ผŒไธ็•™็—•
๐Ÿ“ค ๆ ผๅผๅฏผๅ…ฅๅฏผๅ‡บ ๆ”ฏๆŒ JSON / YAML ๆ ผๅผๅฏผๅ‡บๅฏผๅ…ฅ๏ผŒๆ–นไพฟ่ทจๅนณๅฐ่ฟ็งปๅ’Œๅค‡ไปฝ

๐Ÿš€ ๅฟซ้€Ÿๅผ€ๅง‹

็Žฏๅขƒ่ฆๆฑ‚

  • Python 3.8 ๆˆ–ๆ›ด้ซ˜็‰ˆๆœฌ
  • pip ๅŒ…็ฎก็†ๅ™จ

ๅฎ‰่ฃ…

# ้€š่ฟ‡ pip ๅฎ‰่ฃ…
pip install envshield

# ้ชŒ่ฏๅฎ‰่ฃ…
envshield --version

ไธ‰ๆญฅไธŠๆ‰‹

# ็ฌฌไธ€ๆญฅ๏ผšๅœจ้กน็›ฎๆ น็›ฎๅฝ•ๅˆๅง‹ๅŒ–
envshield init

# ็ฌฌไบŒๆญฅ๏ผšๅŠ ๅฏ†ไฝ ็š„ .env ๆ–‡ไปถ
envshield encrypt .env

# ็ฌฌไธ‰ๆญฅ๏ผš่ฟ่กŒๅฎ‰ๅ…จๅฎก่ฎก๏ผŒๆŸฅ็œ‹ๅฎ‰ๅ…จ่ฏ„ๅˆ†
envshield audit .env

ๅŠ ๅฏ†ๅŽไผš็”Ÿๆˆ .env.vault ๆ–‡ไปถ๏ผŒๅŽŸๅง‹ .env ๆ–‡ไปถๅฐ†่ขซๅฎ‰ๅ…จๅˆ ้™คใ€‚ไฝ ๅฏไปฅๆ”พๅฟƒๅœฐๅฐ† .env.vault ๆไบคๅˆฐไปฃ็ ไป“ๅบ“ใ€‚


๐Ÿ“– ่ฏฆ็ป†ไฝฟ็”จๆŒ‡ๅ—

๐Ÿ”’ ๅŠ ๅฏ†ไธŽ่งฃๅฏ†

# ๅŠ ๅฏ† .env ๆ–‡ไปถ๏ผˆ้ป˜่ฎค๏ผ‰
envshield encrypt .env

# ๅŠ ๅฏ†ๆŒ‡ๅฎšๆ–‡ไปถ
envshield encrypt /path/to/production.env

# ่งฃๅฏ† .env.vault ๆ–‡ไปถ
envshield decrypt .env.vault

# ่งฃๅฏ†ๅˆฐๆŒ‡ๅฎš่พ“ๅ‡บๆ–‡ไปถ
envshield decrypt .env.vault --output .env.local

ๅŠ ๅฏ†ๆต็จ‹่ฏดๆ˜Ž๏ผš

  1. ่ฏปๅ–ๅŽŸๅง‹ .env ๆ–‡ไปถๅ†…ๅฎน
  2. ไฝฟ็”จ AES-256-GCM ็ฎ—ๆณ•ๅŠ ๅฏ†
  3. ็”Ÿๆˆ .env.vault ๅŠ ๅฏ†ๆ–‡ไปถ
  4. ๅฎ‰ๅ…จๆ“ฆ้™คๅŽŸๅง‹ .env ๆ–‡ไปถ
  5. ่‡ชๅŠจๅฐ† .env.vault ๆทปๅŠ ๅˆฐ .gitignore๏ผˆๅฏ้€‰๏ผ‰

๐Ÿ” ๅฎ‰ๅ…จๅฎก่ฎก

# ๅฏนๅฝ“ๅ‰ .env ๆ–‡ไปถ่ฟ›่กŒๅฎก่ฎก
envshield audit .env

# ๅฎก่ฎกๅนถ่พ“ๅ‡บ JSON ๆ ผๅผๆŠฅๅ‘Š
envshield audit .env --format json --output report.json

# ๅฎก่ฎกๆŒ‡ๅฎš็›ฎๅฝ•ไธ‹ๆ‰€ๆœ‰ .env ๆ–‡ไปถ
envshield audit ./config/

ๅฎก่ฎก่พ“ๅ‡บ็คบไพ‹๏ผš

โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
โ”‚           EnvShield ๅฎ‰ๅ…จๅฎก่ฎกๆŠฅๅ‘Š              โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚  ็ปผๅˆๅฎ‰ๅ…จ่ฏ„ๅˆ†:  72 / 100  โš ๏ธ ไธญ็ญ‰้ฃŽ้™ฉ        โ”‚
โ”‚  ๅฎก่ฎก่ง„ๅˆ™ๆ•ฐ:    15 ๆก                        โ”‚
โ”‚  ้€š่ฟ‡่ง„ๅˆ™:      11 ๆก  โœ…                    โ”‚
โ”‚  ่ญฆๅ‘Š่ง„ๅˆ™:      3 ๆก   โš ๏ธ                    โ”‚
โ”‚  ๆœช้€š่ฟ‡่ง„ๅˆ™:    1 ๆก   โŒ                    โ”‚
โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ

๐Ÿ•ต๏ธ ๆบ็ ๆ‰ซๆ

# ๆ‰ซๆๅฝ“ๅ‰็›ฎๅฝ•
envshield scan .

# ๆ‰ซๆๆŒ‡ๅฎš็›ฎๅฝ•๏ผŒๆŽ’้™ค node_modules
envshield scan ./src --exclude node_modules,venv,.git

# ๆ‰ซๆๅนถ่พ“ๅ‡บ่ฏฆ็ป†ๆŠฅๅ‘Š
envshield scan ./src --verbose

ๆบ็ ๆ‰ซๆๅ™จๆ”ฏๆŒๆฃ€ๆต‹ไปฅไธ‹ๆจกๅผ๏ผš

  • ็กฌ็ผ–็ ็š„ API Key๏ผˆapi_key = "sk-..."๏ผ‰
  • ๆ•ฐๆฎๅบ“่ฟžๆŽฅๅญ—็ฌฆไธฒไธญ็š„ๆ˜Žๆ–‡ๅฏ†็ 
  • AWS / GCP / Azure ๅ‡ญ่ฏ
  • JWT ๅฏ†้’ฅใ€OAuth Token
  • ็ง้’ฅๆ–‡ไปถๅ†…ๅฎน
  • ๅ…ถไป– 20+ ็งๅธธ่งๅฏ†้’ฅๆณ„้œฒๆจกๅผ

๐Ÿช Git ้’ฉๅญ

# ๅฎ‰่ฃ… pre-commit ้’ฉๅญ
envshield hook install

# ๅธ่ฝฝ้’ฉๅญ
envshield hook uninstall

ๅฎ‰่ฃ…ๅŽ๏ผŒๆฏๆฌก git commit ๆ—ถไผš่‡ชๅŠจๆฃ€ๆต‹ๆš‚ๅญ˜ๅŒบไธญๆ˜ฏๅฆๅŒ…ๅซ .env ๆ–‡ไปถใ€‚ๅฆ‚ๆžœๆฃ€ๆต‹ๅˆฐ๏ผŒๆไบคๅฐ†่ขซ้˜ปๆญขๅนถๆ็คบ็”จๆˆทใ€‚

๐Ÿ“Š TUI ไปช่กจ็›˜

# ๆ‰“ๅผ€ไบคไบ’ๅผไปช่กจ็›˜
envshield dashboard

ไปช่กจ็›˜ๆไพ›ไปฅไธ‹่ง†ๅ›พ๏ผš

  • ็Žฏๅขƒๅ˜้‡ๆ€ป่งˆ๏ผˆๅŠ ๅฏ†/ๆ˜Žๆ–‡็Šถๆ€๏ผ‰
  • ๅฎ‰ๅ…จ่ฏ„ๅˆ†่ถ‹ๅŠฟๅ›พ
  • ๆœ€่ฟ‘ๅฎก่ฎกๅކๅฒ
  • ๅฏ†้’ฅ่ฝฎๆขๆ้†’

๐Ÿ”‘ ๅ˜้‡็ฎก็†

# ่ฎพ็ฝฎๅ˜้‡
envshield set DATABASE_URL "postgres://user:pass@localhost:5432/mydb"

# ่Žทๅ–ๅ˜้‡
envshield get DATABASE_URL

# ๅˆ—ๅ‡บๆ‰€ๆœ‰ๅ˜้‡
envshield list

# ๅˆ ้™คๅ˜้‡
envshield delete API_KEY

๐ŸŒ ็Žฏๅขƒๅˆ‡ๆข

# ๅˆ‡ๆขๅˆฐ็”Ÿไบง็Žฏๅขƒ
envshield switch prod

# ๅˆ‡ๆขๅˆฐๅผ€ๅ‘็Žฏๅขƒ
envshield switch dev

# ๆŸฅ็œ‹ๅฝ“ๅ‰็Žฏๅขƒ
envshield switch --current

๐Ÿ’ก ๅฎ‰ๅ…จๅฎก่ฎก่ง„ๅˆ™

EnvShield ๅ†…็ฝฎ 15 ๆกๅฎ‰ๅ…จๅฎก่ฎก่ง„ๅˆ™๏ผŒ่ฆ†็›–ๅฏ†้’ฅๅผบๅบฆใ€ๆ–‡ไปถๆƒ้™ใ€ๆณ„้œฒๆฃ€ๆต‹็ญ‰ๅคšไธช็ปดๅบฆ๏ผš

# ่ง„ๅˆ™ๅ็งฐ ่ฏดๆ˜Ž ไธฅ้‡็บงๅˆซ
1 ๅผฑๅฏ†้’ฅๆฃ€ๆต‹ ๆฃ€ๆŸฅๅฏ†้’ฅ้•ฟๅบฆๆ˜ฏๅฆไฝŽไบŽ 16 ไธชๅญ—็ฌฆ ๐Ÿ”ด ้ซ˜
2 ๅธธ่งๅผฑๅฏ†้’ฅๅŒน้… ๆฃ€ๆต‹ๆ˜ฏๅฆไฝฟ็”จ passwordใ€123456 ็ญ‰ๅธธ่งๅผฑๅฏ†้’ฅ ๐Ÿ”ด ้ซ˜
3 ๅฏ†้’ฅ็†ตๅ€ผ่ฏ„ไผฐ ่ฏ„ไผฐๅฏ†้’ฅ็š„้šๆœบๆ€งๅ’Œๅคๆ‚ๅบฆ ๐ŸŸก ไธญ
4 ๆ˜Žๆ–‡ๅฏ†็ ๆฃ€ๆต‹ ๆฃ€ๆŸฅ่ฟžๆŽฅๅญ—็ฌฆไธฒไธญๆ˜ฏๅฆๅŒ…ๅซๆ˜Žๆ–‡ๅฏ†็  ๐Ÿ”ด ้ซ˜
5 API Key ๆ ผๅผ้ชŒ่ฏ ้ชŒ่ฏ API Key ๆ˜ฏๅฆ็ฌฆๅˆๆœๅŠกๅ•†ๆ ผๅผ่ง„่Œƒ ๐ŸŸก ไธญ
6 ่ฟ‡ๆœŸๅฏ†้’ฅๆฃ€ๆต‹ ๆฃ€ๆŸฅๅฏ†้’ฅๆ˜ฏๅฆ่ถ…่ฟ‡ๅปบ่ฎฎ่ฝฎๆขๅ‘จๆœŸ๏ผˆ90 ๅคฉ๏ผ‰ ๐ŸŸก ไธญ
7 ๆ–‡ไปถๆƒ้™ๆฃ€ๆŸฅ ๆฃ€ๆŸฅ .env ๆ–‡ไปถๆƒ้™ๆ˜ฏๅฆ่ฟ‡ไบŽๅฎฝๆพ ๐Ÿ”ด ้ซ˜
8 .gitignore ่ฆ†็›–ๆฃ€ๆŸฅ ็กฎ่ฎค .env ๆ–‡ไปถๅทฒ่ขซ .gitignore ๆŽ’้™ค ๐Ÿ”ด ้ซ˜
9 ้‡ๅคๅฏ†้’ฅๆฃ€ๆต‹ ๆฃ€ๆŸฅไธๅŒ็Žฏๅขƒ้—ดๆ˜ฏๅฆๅญ˜ๅœจ็›ธๅŒๅฏ†้’ฅ ๐ŸŸก ไธญ
10 ๆ•ๆ„Ÿๅ˜้‡ๅ‘ฝๅ่ง„่Œƒ ๆฃ€ๆŸฅๆ•ๆ„Ÿๅ˜้‡ๆ˜ฏๅฆไฝฟ็”จ SECRETใ€KEYใ€TOKEN ็ญ‰ๅŽ็ผ€ ๐ŸŸข ไฝŽ
11 ็กฌ็ผ–็ ๅ‡ญ่ฏๆ‰ซๆ ๆ‰ซๆๆบ็ ไธญๆ˜ฏๅฆๅญ˜ๅœจ็กฌ็ผ–็ ็š„ๅ‡ญ่ฏ ๐Ÿ”ด ้ซ˜
12 ่ฐƒ่ฏ•ๆจกๅผๆฃ€ๆต‹ ๆฃ€ๆŸฅๆ˜ฏๅฆๅœจ็”Ÿไบง็Žฏๅขƒๅผ€ๅฏไบ†่ฐƒ่ฏ•ๆจกๅผ ๐ŸŸก ไธญ
13 ไธๅฎ‰ๅ…จๅ่ฎฎๆฃ€ๆต‹ ๆฃ€ๆŸฅ่ฟžๆŽฅๅญ—็ฌฆไธฒๆ˜ฏๅฆไฝฟ็”จ HTTP ็ญ‰ไธๅฎ‰ๅ…จๅ่ฎฎ ๐ŸŸก ไธญ
14 ้ป˜่ฎคๅ‡ญ่ฏๆฃ€ๆต‹ ๆฃ€ๆŸฅๆ˜ฏๅฆไฝฟ็”จไบ†ๆก†ๆžถ้ป˜่ฎคๅ‡ญ่ฏ ๐Ÿ”ด ้ซ˜
15 ๅฏ†้’ฅ่ฝฎๆข็ญ–็•ฅ ่ฏ„ไผฐๅฏ†้’ฅ่ฝฎๆข็ญ–็•ฅ็š„ๅฎŒๅ–„็จ‹ๅบฆ ๐ŸŸข ไฝŽ

๐Ÿ“ฆ ่ฟ›้˜ถ็”จๆณ•

ๅคš็Žฏๅขƒ็ฎก็†

# ๅˆๅง‹ๅŒ–ๅคš็Žฏๅขƒ้…็ฝฎ
envshield init --envs dev,staging,prod

# ไธบไธๅŒ็Žฏๅขƒ่ฎพ็ฝฎๅ˜้‡
envshield set DATABASE_URL "postgres://localhost/dev" --env dev
envshield set DATABASE_URL "postgres://staging-db/app" --env staging
envshield set DATABASE_URL "postgres://prod-db/app" --env prod

# ๅˆ‡ๆข็Žฏๅขƒ
envshield switch prod

่ฟ่กŒๆ—ถ่งฃๅฏ†ๆณจๅ…ฅ

# ไฝฟ็”จ่ฟ่กŒๆ—ถๆณจๅ…ฅๅฏๅŠจๅบ”็”จ
envshield run -- python app.py

# ไฝฟ็”จ่ฟ่กŒๆ—ถๆณจๅ…ฅๅฏๅŠจ Node.js ๅบ”็”จ
envshield run -- node server.js

# ไฝฟ็”จ่ฟ่กŒๆ—ถๆณจๅ…ฅๆ‰ง่กŒไปปๆ„ๅ‘ฝไปค
envshield run -- make deploy

่ฟ่กŒๆ—ถๆณจๅ…ฅ็š„ๅทฅไฝœๅŽŸ็†๏ผš

  1. ่ฏปๅ– .env.vault ๅŠ ๅฏ†ๆ–‡ไปถ
  2. ๅœจ่ฟ›็จ‹ๅ†…ๅญ˜ไธญ่งฃๅฏ†
  3. ๅฐ†่งฃๅฏ†ๅŽ็š„ๅ˜้‡ๆณจๅ…ฅๅˆฐๅญ่ฟ›็จ‹็š„็Žฏๅขƒๅ˜้‡ไธญ
  4. ่งฃๅฏ†ๆ•ฐๆฎไป…ๅญ˜ๅœจไบŽๅ†…ๅญ˜ไธญ๏ผŒ่ฟ›็จ‹็ป“ๆŸๅŽ่‡ชๅŠจๆธ…้™ค

CI/CD ้›†ๆˆ

# GitHub Actions ็คบไพ‹
- name: Setup EnvShield
  run: pip install envshield

- name: Decrypt environment
  run: envshield decrypt .env.vault --output .env
  env:
    ENVSHIELD_MASTER_KEY: ${{ secrets.ENVSHIELD_MASTER_KEY }}

- name: Run security audit
  run: envshield audit .env --format json --output audit-report.json

- name: Scan source code
  run: envshield scan ./src --exclude node_modules,venv
# GitLab CI ็คบไพ‹
security_audit:
  stage: test
  before_script:
    - pip install envshield
  script:
    - envshield decrypt .env.vault --output .env
    - envshield audit .env
    - envshield scan ./src
  artifacts:
    reports:
      security_audit: audit-report.json

ๅฏผๅ‡บไธŽๅฏผๅ…ฅ

# ๅฏผๅ‡บไธบ JSON ๆ ผๅผ
envshield export --format json --output config.json

# ๅฏผๅ‡บไธบ YAML ๆ ผๅผ
envshield export --format yaml --output config.yaml

# ไปŽ JSON ๅฏผๅ…ฅ
envshield import config.json

# ไปŽ YAML ๅฏผๅ…ฅ
envshield import config.yaml

๐Ÿค ่ดก็ŒฎๆŒ‡ๅ—

ๆˆ‘ไปฌๆฌข่ฟŽๅนถๆ„Ÿ่ฐขๆฏไธ€ไฝ่ดก็Œฎ่€…๏ผๅœจๅ‚ไธŽ่ดก็Œฎไน‹ๅ‰๏ผŒ่ฏท้˜…่ฏปไปฅไธ‹่ง„่Œƒ๏ผš

ๆไบค Pull Request

  1. Fork ๆœฌไป“ๅบ“ๅนถๅˆ›ๅปบไฝ ็š„็‰นๆ€งๅˆ†ๆ”ฏ๏ผšgit checkout -b feature/amazing-feature
  2. ็ผ–ๅ†™ไปฃ็  ๅนถ็กฎไฟ้€š่ฟ‡ๆ‰€ๆœ‰ๆต‹่ฏ•๏ผšpytest tests/
  3. ๆไบคๅ˜ๆ›ด๏ผŒไฝฟ็”จ Conventional Commits ่ง„่Œƒ๏ผšgit commit -m 'feat: add amazing feature'
  4. ๆŽจ้€ ๅˆฐไฝ ็š„ Fork๏ผšgit push origin feature/amazing-feature
  5. ๅˆ›ๅปบ Pull Request ๅนถ่ฏฆ็ป†ๆ่ฟฐๅ˜ๆ›ดๅ†…ๅฎน

ๆไบค Issue

  • ไฝฟ็”จๆธ…ๆ™ฐ็š„ๆ ‡้ข˜ๆ่ฟฐ้—ฎ้ข˜
  • ้™„ไธŠๅค็Žฐๆญฅ้ชคๅ’ŒๆœŸๆœ›่กŒไธบ
  • ้™„ไธŠ่ฟ่กŒ็Žฏๅขƒไฟกๆฏ๏ผˆๆ“ไฝœ็ณป็ปŸใ€Python ็‰ˆๆœฌใ€EnvShield ็‰ˆๆœฌ๏ผ‰
  • ๅฆ‚ๆœ‰ๅฏ่ƒฝ๏ผŒ้™„ไธŠ้”™่ฏฏๆ—ฅๅฟ—ๆˆชๅ›พ

ไปฃ็ ่ง„่Œƒ

  • ้ตๅพช PEP 8 ็ผ–็ ่ง„่Œƒ
  • ๆ‰€ๆœ‰ๅ…ฌๅ…ฑๅ‡ฝๆ•ฐๅฟ…้กปๅŒ…ๅซๆ–‡ๆกฃๅญ—็ฌฆไธฒ
  • ๆ–ฐๅŠŸ่ƒฝๅฟ…้กป้™„ๅธฆๅฏนๅบ”็š„ๅ•ๅ…ƒๆต‹่ฏ•
  • ๅฎ‰ๅ…จ็›ธๅ…ณไปฃ็ ๅ˜ๆ›ด้œ€่ฆ็ป่ฟ‡้ขๅค–็š„ไปฃ็ ๅฎกๆŸฅ

๐Ÿ“„ ๅผ€ๆบๅ่ฎฎ

ๆœฌ้กน็›ฎๅŸบไบŽ MIT ๅ่ฎฎ ๅผ€ๆบใ€‚

MIT License

Copyright (c) 2024 EnvShield Contributors

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

็น้ซ”ไธญๆ–‡

๐ŸŽ‰ ๅฐˆๆกˆไป‹็ดน

EnvShield ๆ˜ฏไธ€ๆฌพ่ผ•้‡็ดš็’ฐๅขƒ่ฎŠๆ•ธๅฎ‰ๅ…จ็ฎก็† CLI ๅผ•ๆ“Ž๏ผŒๅฐˆ็‚บไฟ่ญทๆ‡‰็”จ็จ‹ๅผๆ•ๆ„Ÿ่จญๅฎš่€Œ่จญ่จˆใ€‚

็‚บไป€้บผ้œ€่ฆ EnvShield๏ผŸ

ๅœจๆ—ฅๅธธ้–‹็™ผไธญ๏ผŒๆˆ‘ๅ€‘็ถ“ๅธธ้ข่‡จไปฅไธ‹็—›้ปž๏ผš

  • .env ๆช”ๆกˆไปฅๆ˜Žๆ–‡ๅ„ฒๅญ˜ๅœจๅฐˆๆกˆ็›ฎ้Œ„ไธญ๏ผŒไปปไฝ•ๆ“ๆœ‰็จ‹ๅผ็ขผๅญ˜ๅ–ๆฌŠ้™็š„ไบบ้ƒฝ่ƒฝ็œ‹ๅˆฐ่ณ‡ๆ–™ๅบซๅฏ†็ขผใ€API ้‡‘้‘ฐ็ญ‰ๆ•ๆ„Ÿ่ณ‡่จŠ
  • ๅœ˜้šŠๅ”ไฝœๆ™‚๏ผŒ้‡‘้‘ฐ้€้Ž้€š่จŠ่ปŸ้ซ”ๆˆ–้›ปๅญ้ƒตไปถๅ‚ณ้ž๏ผŒๅญ˜ๅœจๅค–ๆดฉ้ขจ้šช
  • ็ผบไน็ณป็ตฑๅŒ–็š„ๅฎ‰ๅ…จ็จฝๆ ธๆ‰‹ๆฎต๏ผŒ้›ฃไปฅ่ฉ•ไผฐ็›ฎๅ‰็’ฐๅขƒ่จญๅฎš็š„ๅฎ‰ๅ…จๆฐดไฝ
  • ๅŽŸๅง‹็ขผไธญๅถ็ˆพๆฎ˜็•™็กฌ็ทจ็ขผ็š„้‡‘้‘ฐ๏ผŒๆˆ็‚บๅฎ‰ๅ…จ้šฑๆ‚ฃ็š„ๅฎšๆ™‚็‚ธๅฝˆ
  • ๅคš็’ฐๅขƒ๏ผˆ้–‹็™ผใ€ๆธฌ่ฉฆใ€ๆญฃๅผ๏ผ‰็š„่จญๅฎš็ฎก็†ๆททไบ‚๏ผŒๅฎนๆ˜“่ชคๆ“ไฝœ

ๆ ธๅฟƒๅƒนๅ€ผ๏ผš ็”จไธ€่กŒๆŒ‡ไปคๅฎŒๆˆ็’ฐๅขƒ่ฎŠๆ•ธ็š„ๅŠ ๅฏ†ไฟ่ญท๏ผŒ็”จไธ€ๅฅ—่ฆๅ‰‡ๅฏฆ็พๅฎ‰ๅ…จ็จฝๆ ธ่‡ชๅ‹•ๅŒ–๏ผŒ็”จ้›ถไพตๅ…ฅ็š„ๆ–นๅผ่žๅ…ฅ็พๆœ‰้–‹็™ผๆต็จ‹ใ€‚

ๅทฎ็•ฐๅŒ–ไบฎ้ปž๏ผš

  • ๐Ÿ” ้›ถ่จญๅฎšๅ•Ÿๅ‹• โ€” ็„ก้œ€็น็‘ฃ่จญๅฎš๏ผŒenvshield init ๅณๅˆปไธŠๆ‰‹
  • โšก ๆฅต่‡ด่ผ•้‡ โ€” ๆ ธๅฟƒไพ่ณดๅƒ… cryptographyใ€richใ€click ไธ‰ๅ€‹ๅ‡ฝๅผๅบซ
  • ๐Ÿ”„ ็„ก็ธซๆ•ดๅˆ โ€” Git ๆ””ๆˆชๅ™จ่‡ชๅ‹•้˜ฒ่ญท๏ผŒๅŸท่กŒๆœŸ้€ๆ˜Ž่งฃๅฏ†ๆณจๅ…ฅ
  • ๐Ÿ“Š ้‡ๅŒ–ๅฎ‰ๅ…จ โ€” 15 ๆข็จฝๆ ธ่ฆๅ‰‡่ผธๅ‡บ 0-100 ๅฎ‰ๅ…จ่ฉ•ๅˆ†๏ผŒๅฎ‰ๅ…จ็‹€ๆณไธ€็›ฎ็žญ็„ถ

โœจ ๆ ธๅฟƒ็‰นๆ€ง

็‰นๆ€ง ่ชชๆ˜Ž
๐Ÿ”’ AES-256-GCM ๅŠ ๅฏ† ๆŽก็”จ่ปไบ‹็ดšๅŠ ๅฏ†ๆผ”็ฎ—ๆณ•ไฟ่ญท .env ๆช”ๆกˆ๏ผŒๆ”ฏๆด่ช่ญ‰ๅŠ ๅฏ†๏ผŒ้˜ฒ็ซ„ๆ”น
๐Ÿ” ๅฎ‰ๅ…จ็จฝๆ ธๅผ•ๆ“Ž ๅ…งๅปบ 15 ๆขๅฎ‰ๅ…จ่ฆๅ‰‡๏ผŒ่ผธๅ‡บ 0-100 ๅฎ‰ๅ…จ่ฉ•ๅˆ†ๅŠ่ฉณ็ดฐๆ”นๅ–„ๅปบ่ญฐ
๐Ÿ•ต๏ธ ๅŽŸๅง‹็ขผๆŽƒๆๅ™จ ๆ™บๆ…งๅตๆธฌ 20+ ็จฎ็กฌ็ทจ็ขผ้‡‘้‘ฐๆจกๅผ๏ผŒๆถต่“‹ Pythonใ€JSใ€Goใ€Java ็ญ‰ไธปๆต่ชž่จ€
๐Ÿช Git ๆ””ๆˆชๅ™จๅฎˆ่ญท ่‡ชๅ‹•ๅฎ‰่ฃ pre-commit ๆ””ๆˆชๅ™จ๏ผŒๅพžๆบ้ ญ้˜ปๆญข .env ๆช”ๆกˆ่ขซๆไบคๅˆฐ็จ‹ๅผ็ขผๅ€‰ๅบซ
๐ŸŒ ๅคš็’ฐๅขƒ็ฎก็† ๆ”ฏๆด dev / staging / prod ๅคš็’ฐๅขƒ่จญๅฎšๅˆ‡ๆ›๏ผŒๅ‘Šๅˆฅ็’ฐๅขƒๆททไบ‚
๐Ÿ“Š TUI ่ฆ–่ฆบๅŒ–ๅ„€่กจๆฟ ๅŸบๆ–ผ Rich ๅปบๆง‹็š„็ต‚็ซฏๅ„€่กจๆฟ๏ผŒ็›ด่ง€ๅฑ•็คบๅฎ‰ๅ…จ็‹€ๆ…‹็ธฝ่ฆฝ
๐Ÿ’‰ ๅŸท่กŒๆœŸ่จ˜ๆ†ถ้ซ”่งฃๅฏ† ่งฃๅฏ†ๅพŒ็š„่ฎŠๆ•ธๅƒ…ๅญ˜ๅœจๆ–ผ่กŒ็จ‹่จ˜ๆ†ถ้ซ”ไธญ๏ผŒไธ่ฝ็ขŸ๏ผŒไธ็•™็—•
๐Ÿ“ค ๆ ผๅผๅŒฏๅ…ฅๅŒฏๅ‡บ ๆ”ฏๆด JSON / YAML ๆ ผๅผๅŒฏๅ‡บๅŒฏๅ…ฅ๏ผŒๆ–นไพฟ่ทจๅนณๅฐ้ท็งป่ˆ‡ๅ‚™ไปฝ

๐Ÿš€ ๅฟซ้€Ÿ้–‹ๅง‹

็’ฐๅขƒ้œ€ๆฑ‚

  • Python 3.8 ๆˆ–ๆ›ด้ซ˜็‰ˆๆœฌ
  • pip ๅฅ—ไปถ็ฎก็†ๅ™จ

ๅฎ‰่ฃ

# ้€้Ž pip ๅฎ‰่ฃ
pip install envshield

# ้ฉ—่ญ‰ๅฎ‰่ฃ
envshield --version

ไธ‰ๆญฅไธŠๆ‰‹

# ็ฌฌไธ€ๆญฅ๏ผšๅœจๅฐˆๆกˆๆ น็›ฎ้Œ„ๅˆๅง‹ๅŒ–
envshield init

# ็ฌฌไบŒๆญฅ๏ผšๅŠ ๅฏ†ไฝ ็š„ .env ๆช”ๆกˆ
envshield encrypt .env

# ็ฌฌไธ‰ๆญฅ๏ผšๅŸท่กŒๅฎ‰ๅ…จ็จฝๆ ธ๏ผŒๆŸฅ็œ‹ๅฎ‰ๅ…จ่ฉ•ๅˆ†
envshield audit .env

ๅŠ ๅฏ†ๅพŒๆœƒ็”ข็”Ÿ .env.vault ๆช”ๆกˆ๏ผŒๅŽŸๅง‹ .env ๆช”ๆกˆๅฐ‡่ขซๅฎ‰ๅ…จๅˆช้™คใ€‚ไฝ ๅฏไปฅๆ”พๅฟƒๅœฐๅฐ‡ .env.vault ๆไบคๅˆฐ็จ‹ๅผ็ขผๅ€‰ๅบซใ€‚


๐Ÿ“– ่ฉณ็ดฐไฝฟ็”จๆŒ‡ๅ—

๐Ÿ”’ ๅŠ ๅฏ†่ˆ‡่งฃๅฏ†

# ๅŠ ๅฏ† .env ๆช”ๆกˆ๏ผˆ้ ่จญ๏ผ‰
envshield encrypt .env

# ๅŠ ๅฏ†ๆŒ‡ๅฎšๆช”ๆกˆ
envshield encrypt /path/to/production.env

# ่งฃๅฏ† .env.vault ๆช”ๆกˆ
envshield decrypt .env.vault

# ่งฃๅฏ†ๅˆฐๆŒ‡ๅฎš่ผธๅ‡บๆช”ๆกˆ
envshield decrypt .env.vault --output .env.local

ๅŠ ๅฏ†ๆต็จ‹่ชชๆ˜Ž๏ผš

  1. ่ฎ€ๅ–ๅŽŸๅง‹ .env ๆช”ๆกˆๅ…งๅฎน
  2. ไฝฟ็”จ AES-256-GCM ๆผ”็ฎ—ๆณ•ๅŠ ๅฏ†
  3. ็”ข็”Ÿ .env.vault ๅŠ ๅฏ†ๆช”ๆกˆ
  4. ๅฎ‰ๅ…จๆธ…้™คๅŽŸๅง‹ .env ๆช”ๆกˆ
  5. ่‡ชๅ‹•ๅฐ‡ .env.vault ๅŠ ๅ…ฅ .gitignore๏ผˆๅฏ้ธ๏ผ‰

๐Ÿ” ๅฎ‰ๅ…จ็จฝๆ ธ

# ๅฐ็›ฎๅ‰ .env ๆช”ๆกˆ้€ฒ่กŒ็จฝๆ ธ
envshield audit .env

# ็จฝๆ ธไธฆ่ผธๅ‡บ JSON ๆ ผๅผๅ ฑๅ‘Š
envshield audit .env --format json --output report.json

# ็จฝๆ ธๆŒ‡ๅฎš็›ฎ้Œ„ไธ‹ๆ‰€ๆœ‰ .env ๆช”ๆกˆ
envshield audit ./config/

็จฝๆ ธ่ผธๅ‡บ็ฏ„ไพ‹๏ผš

โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
โ”‚           EnvShield ๅฎ‰ๅ…จ็จฝๆ ธๅ ฑๅ‘Š              โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚  ็ถœๅˆๅฎ‰ๅ…จ่ฉ•ๅˆ†:  72 / 100  โš ๏ธ ไธญ็ญ‰้ขจ้šช        โ”‚
โ”‚  ็จฝๆ ธ่ฆๅ‰‡ๆ•ธ:    15 ๆข                        โ”‚
โ”‚  ้€š้Ž่ฆๅ‰‡:      11 ๆข  โœ…                    โ”‚
โ”‚  ่ญฆๅ‘Š่ฆๅ‰‡:      3 ๆข   โš ๏ธ                    โ”‚
โ”‚  ๆœช้€š้Ž่ฆๅ‰‡:    1 ๆข   โŒ                    โ”‚
โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ

๐Ÿ•ต๏ธ ๅŽŸๅง‹็ขผๆŽƒๆ

# ๆŽƒๆ็›ฎๅ‰็›ฎ้Œ„
envshield scan .

# ๆŽƒๆๆŒ‡ๅฎš็›ฎ้Œ„๏ผŒๆŽ’้™ค node_modules
envshield scan ./src --exclude node_modules,venv,.git

# ๆŽƒๆไธฆ่ผธๅ‡บ่ฉณ็ดฐๅ ฑๅ‘Š
envshield scan ./src --verbose

ๅŽŸๅง‹็ขผๆŽƒๆๅ™จๆ”ฏๆดๅตๆธฌไปฅไธ‹ๆจกๅผ๏ผš

  • ็กฌ็ทจ็ขผ็š„ API Key๏ผˆapi_key = "sk-..."๏ผ‰
  • ่ณ‡ๆ–™ๅบซ้€ฃ็ทšๅญ—ไธฒไธญ็š„ๆ˜Žๆ–‡ๅฏ†็ขผ
  • AWS / GCP / Azure ๆ†‘่ญ‰
  • JWT ้‡‘้‘ฐใ€OAuth Token
  • ็ง้‘ฐๆช”ๆกˆๅ…งๅฎน
  • ๅ…ถไป– 20+ ็จฎๅธธ่ฆ‹้‡‘้‘ฐๅค–ๆดฉๆจกๅผ

๐Ÿช Git ๆ””ๆˆชๅ™จ

# ๅฎ‰่ฃ pre-commit ๆ””ๆˆชๅ™จ
envshield hook install

# ๅธ่ผ‰ๆ””ๆˆชๅ™จ
envshield hook uninstall

ๅฎ‰่ฃๅพŒ๏ผŒๆฏๆฌก git commit ๆ™‚ๆœƒ่‡ชๅ‹•ๅตๆธฌๆšซๅญ˜ๅ€ไธญๆ˜ฏๅฆๅŒ…ๅซ .env ๆช”ๆกˆใ€‚ๅฆ‚ๆžœๅตๆธฌๅˆฐ๏ผŒๆไบคๅฐ‡่ขซ้˜ปๆญขไธฆๆ็คบไฝฟ็”จ่€…ใ€‚

๐Ÿ“Š TUI ๅ„€่กจๆฟ

# ้–‹ๅ•Ÿไบ’ๅ‹•ๅผๅ„€่กจๆฟ
envshield dashboard

ๅ„€่กจๆฟๆไพ›ไปฅไธ‹ๆชข่ฆ–๏ผš

  • ็’ฐๅขƒ่ฎŠๆ•ธ็ธฝ่ฆฝ๏ผˆๅŠ ๅฏ†/ๆ˜Žๆ–‡็‹€ๆ…‹๏ผ‰
  • ๅฎ‰ๅ…จ่ฉ•ๅˆ†่ถจๅ‹ขๅœ–
  • ๆœ€่ฟ‘็จฝๆ ธๆญทๅฒ
  • ้‡‘้‘ฐ่ผชๆ›ๆ้†’

๐Ÿ”‘ ่ฎŠๆ•ธ็ฎก็†

# ่จญๅฎš่ฎŠๆ•ธ
envshield set DATABASE_URL "postgres://user:pass@localhost:5432/mydb"

# ๅ–ๅพ—่ฎŠๆ•ธ
envshield get DATABASE_URL

# ๅˆ—ๅ‡บๆ‰€ๆœ‰่ฎŠๆ•ธ
envshield list

# ๅˆช้™ค่ฎŠๆ•ธ
envshield delete API_KEY

๐ŸŒ ็’ฐๅขƒๅˆ‡ๆ›

# ๅˆ‡ๆ›ๅˆฐๆญฃๅผ็’ฐๅขƒ
envshield switch prod

# ๅˆ‡ๆ›ๅˆฐ้–‹็™ผ็’ฐๅขƒ
envshield switch dev

# ๆŸฅ็œ‹็›ฎๅ‰็’ฐๅขƒ
envshield switch --current

๐Ÿ’ก ๅฎ‰ๅ…จ็จฝๆ ธ่ฆๅ‰‡

EnvShield ๅ…งๅปบ 15 ๆขๅฎ‰ๅ…จ็จฝๆ ธ่ฆๅ‰‡๏ผŒๆถต่“‹้‡‘้‘ฐๅผทๅบฆใ€ๆช”ๆกˆๆฌŠ้™ใ€ๅค–ๆดฉๅตๆธฌ็ญ‰ๅคšๅ€‹็ถญๅบฆ๏ผš

# ่ฆๅ‰‡ๅ็จฑ ่ชชๆ˜Ž ๅšด้‡็ญ‰็ดš
1 ๅผฑ้‡‘้‘ฐๅตๆธฌ ๆชขๆŸฅ้‡‘้‘ฐ้•ทๅบฆๆ˜ฏๅฆไฝŽๆ–ผ 16 ๅ€‹ๅญ—ๅ…ƒ ๐Ÿ”ด ้ซ˜
2 ๅธธ่ฆ‹ๅผฑ้‡‘้‘ฐๆฏ”ๅฐ ๅตๆธฌๆ˜ฏๅฆไฝฟ็”จ passwordใ€123456 ็ญ‰ๅธธ่ฆ‹ๅผฑ้‡‘้‘ฐ ๐Ÿ”ด ้ซ˜
3 ้‡‘้‘ฐ็†ตๅ€ผ่ฉ•ไผฐ ่ฉ•ไผฐ้‡‘้‘ฐ็š„้šจๆฉŸๆ€ง่ˆ‡่ค‡้›œๅบฆ ๐ŸŸก ไธญ
4 ๆ˜Žๆ–‡ๅฏ†็ขผๅตๆธฌ ๆชขๆŸฅ้€ฃ็ทšๅญ—ไธฒไธญๆ˜ฏๅฆๅŒ…ๅซๆ˜Žๆ–‡ๅฏ†็ขผ ๐Ÿ”ด ้ซ˜
5 API Key ๆ ผๅผ้ฉ—่ญ‰ ้ฉ—่ญ‰ API Key ๆ˜ฏๅฆ็ฌฆๅˆๆœๅ‹™ๅ•†ๆ ผๅผ่ฆ็ฏ„ ๐ŸŸก ไธญ
6 ้ŽๆœŸ้‡‘้‘ฐๅตๆธฌ ๆชขๆŸฅ้‡‘้‘ฐๆ˜ฏๅฆ่ถ…้Žๅปบ่ญฐ่ผชๆ›้€ฑๆœŸ๏ผˆ90 ๅคฉ๏ผ‰ ๐ŸŸก ไธญ
7 ๆช”ๆกˆๆฌŠ้™ๆชขๆŸฅ ๆชขๆŸฅ .env ๆช”ๆกˆๆฌŠ้™ๆ˜ฏๅฆ้Žๆ–ผๅฏฌ้ฌ† ๐Ÿ”ด ้ซ˜
8 .gitignore ่ฆ†่“‹ๆชขๆŸฅ ็ขบ่ช .env ๆช”ๆกˆๅทฒ่ขซ .gitignore ๆŽ’้™ค ๐Ÿ”ด ้ซ˜
9 ้‡่ค‡้‡‘้‘ฐๅตๆธฌ ๆชขๆŸฅไธๅŒ็’ฐๅขƒ้–“ๆ˜ฏๅฆๅญ˜ๅœจ็›ธๅŒ้‡‘้‘ฐ ๐ŸŸก ไธญ
10 ๆ•ๆ„Ÿ่ฎŠๆ•ธๅ‘ฝๅ่ฆ็ฏ„ ๆชขๆŸฅๆ•ๆ„Ÿ่ฎŠๆ•ธๆ˜ฏๅฆไฝฟ็”จ SECRETใ€KEYใ€TOKEN ็ญ‰ๅพŒ็ถด ๐ŸŸข ไฝŽ
11 ็กฌ็ทจ็ขผๆ†‘่ญ‰ๆŽƒๆ ๆŽƒๆๅŽŸๅง‹็ขผไธญๆ˜ฏๅฆๅญ˜ๅœจ็กฌ็ทจ็ขผ็š„ๆ†‘่ญ‰ ๐Ÿ”ด ้ซ˜
12 ้™ค้Œฏๆจกๅผๅตๆธฌ ๆชขๆŸฅๆ˜ฏๅฆๅœจๆญฃๅผ็’ฐๅขƒ้–‹ๅ•Ÿไบ†้™ค้Œฏๆจกๅผ ๐ŸŸก ไธญ
13 ไธๅฎ‰ๅ…จๅ”ๅฎšๅตๆธฌ ๆฃขๆŸฅ้€ฃ็ทšๅญ—ไธฒๆ˜ฏๅฆไฝฟ็”จ HTTP ็ญ‰ไธๅฎ‰ๅ…จๅ”ๅฎš ๐ŸŸก ไธญ
14 ้ ่จญๆ†‘่ญ‰ๅตๆธฌ ๆชขๆŸฅๆ˜ฏๅฆไฝฟ็”จไบ†ๆก†ๆžถ้ ่จญๆ†‘่ญ‰ ๐Ÿ”ด ้ซ˜
15 ้‡‘้‘ฐ่ผชๆ›็ญ–็•ฅ ่ฉ•ไผฐ้‡‘้‘ฐ่ผชๆ›็ญ–็•ฅ็š„ๅฎŒๅ–„็จ‹ๅบฆ ๐ŸŸข ไฝŽ

๐Ÿ“ฆ ้€ฒ้šŽ็”จๆณ•

ๅคš็’ฐๅขƒ็ฎก็†

# ๅˆๅง‹ๅŒ–ๅคš็’ฐๅขƒ่จญๅฎš
envshield init --envs dev,staging,prod

# ็‚บไธๅŒ็’ฐๅขƒ่จญๅฎš่ฎŠๆ•ธ
envshield set DATABASE_URL "postgres://localhost/dev" --env dev
envshield set DATABASE_URL "postgres://staging-db/app" --env staging
envshield set DATABASE_URL "postgres://prod-db/app" --env prod

# ๅˆ‡ๆ›็’ฐๅขƒ
envshield switch prod

ๅŸท่กŒๆœŸ่งฃๅฏ†ๆณจๅ…ฅ

# ไฝฟ็”จๅŸท่กŒๆœŸๆณจๅ…ฅๅ•Ÿๅ‹•ๆ‡‰็”จ็จ‹ๅผ
envshield run -- python app.py

# ไฝฟ็”จๅŸท่กŒๆœŸๆณจๅ…ฅๅ•Ÿๅ‹• Node.js ๆ‡‰็”จ็จ‹ๅผ
envshield run -- node server.js

# ไฝฟ็”จๅŸท่กŒๆœŸๆณจๅ…ฅๅŸท่กŒไปปๆ„ๆŒ‡ไปค
envshield run -- make deploy

ๅŸท่กŒๆœŸๆณจๅ…ฅ็š„ๅทฅไฝœๅŽŸ็†๏ผš

  1. ่ฎ€ๅ– .env.vault ๅŠ ๅฏ†ๆช”ๆกˆ
  2. ๅœจ่กŒ็จ‹่จ˜ๆ†ถ้ซ”ไธญ่งฃๅฏ†
  3. ๅฐ‡่งฃๅฏ†ๅพŒ็š„่ฎŠๆ•ธๆณจๅ…ฅๅˆฐๅญ่กŒ็จ‹็š„็’ฐๅขƒ่ฎŠๆ•ธไธญ
  4. ่งฃๅฏ†่ณ‡ๆ–™ๅƒ…ๅญ˜ๅœจๆ–ผ่จ˜ๆ†ถ้ซ”ไธญ๏ผŒ่กŒ็จ‹็ตๆŸๅพŒ่‡ชๅ‹•ๆธ…้™ค

CI/CD ๆ•ดๅˆ

# GitHub Actions ็ฏ„ไพ‹
- name: Setup EnvShield
  run: pip install envshield

- name: Decrypt environment
  run: envshield decrypt .env.vault --output .env
  env:
    ENVSHIELD_MASTER_KEY: ${{ secrets.ENVSHIELD_MASTER_KEY }}

- name: Run security audit
  run: envshield audit .env --format json --output audit-report.json

- name: Scan source code
  run: envshield scan ./src --exclude node_modules,venv
# GitLab CI ็ฏ„ไพ‹
security_audit:
  stage: test
  before_script:
    - pip install envshield
  script:
    - envshield decrypt .env.vault --output .env
    - envshield audit .env
    - envshield scan ./src
  artifacts:
    reports:
      security_audit: audit-report.json

ๅŒฏๅ‡บ่ˆ‡ๅŒฏๅ…ฅ

# ๅŒฏๅ‡บ็‚บ JSON ๆ ผๅผ
envshield export --format json --output config.json

# ๅŒฏๅ‡บ็‚บ YAML ๆ ผๅผ
envshield export --format yaml --output config.yaml

# ๅพž JSON ๅŒฏๅ…ฅ
envshield import config.json

# ๅพž YAML ๅŒฏๅ…ฅ
envshield import config.yaml

๐Ÿค ่ฒข็ปๆŒ‡ๅ—

ๆˆ‘ๅ€‘ๆญก่ฟŽไธฆๆ„Ÿ่ฌๆฏไธ€ไฝ่ฒข็ป่€…๏ผๅœจๅƒ่ˆ‡่ฒข็ปไน‹ๅ‰๏ผŒ่ซ‹้–ฑ่ฎ€ไปฅไธ‹่ฆ็ฏ„๏ผš

ๆไบค Pull Request

  1. Fork ๆœฌๅ€‰ๅบซไธฆๅปบ็ซ‹ไฝ ็š„ๅŠŸ่ƒฝๅˆ†ๆ”ฏ๏ผšgit checkout -b feature/amazing-feature
  2. ๆ’ฐๅฏซ็จ‹ๅผ็ขผ ไธฆ็ขบไฟ้€š้Žๆ‰€ๆœ‰ๆธฌ่ฉฆ๏ผšpytest tests/
  3. ๆไบค่ฎŠๆ›ด๏ผŒไฝฟ็”จ Conventional Commits ่ฆ็ฏ„๏ผšgit commit -m 'feat: add amazing feature'
  4. ๆŽจ้€ ๅˆฐไฝ ็š„ Fork๏ผšgit push origin feature/amazing-feature
  5. ๅปบ็ซ‹ Pull Request ไธฆ่ฉณ็ดฐๆ่ฟฐ่ฎŠๆ›ดๅ…งๅฎน

ๆไบค Issue

  • ไฝฟ็”จๆธ…ๆ™ฐ็š„ๆจ™้กŒๆ่ฟฐๅ•้กŒ
  • ้™„ไธŠ้‡็พๆญฅ้ฉŸ่ˆ‡ๆœŸๆœ›่กŒ็‚บ
  • ้™„ไธŠๅŸท่กŒ็’ฐๅขƒ่ณ‡่จŠ๏ผˆไฝœๆฅญ็ณป็ตฑใ€Python ็‰ˆๆœฌใ€EnvShield ็‰ˆๆœฌ๏ผ‰
  • ๅฆ‚ๆœ‰ๅฏ่ƒฝ๏ผŒ้™„ไธŠ้Œฏ่ชคๆ—ฅ่ชŒๆˆชๅœ–

็จ‹ๅผ็ขผ่ฆ็ฏ„

  • ้ตๅพช PEP 8 ็ทจ็ขผ่ฆ็ฏ„
  • ๆ‰€ๆœ‰ๅ…ฌๅ…ฑๅ‡ฝๅผๅฟ…้ ˆๅŒ…ๅซๆ–‡ไปถๅญ—ไธฒ
  • ๆ–ฐๅŠŸ่ƒฝๅฟ…้ ˆ้™„ๅธถๅฐๆ‡‰็š„ๅ–ฎๅ…ƒๆธฌ่ฉฆ
  • ๅฎ‰ๅ…จ็›ธ้—œ็จ‹ๅผ็ขผ่ฎŠๆ›ด้œ€่ฆ็ถ“้Ž้กๅค–็š„็จ‹ๅผ็ขผๅฏฉๆŸฅ

๐Ÿ“„ ้–‹ๆบๆŽˆๆฌŠ

ๆœฌๅฐˆๆกˆๅŸบๆ–ผ MIT ๆŽˆๆฌŠ ้–‹ๆบใ€‚

MIT License

Copyright (c) 2024 EnvShield Contributors

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

English

๐ŸŽ‰ Introduction

EnvShield is a lightweight environment variable security management CLI engine designed to protect sensitive application configurations.

Why EnvShield?

In day-to-day development, we frequently encounter the following pain points:

  • .env files are stored in plaintext within project directories, exposing database passwords, API keys, and other sensitive information to anyone with code access
  • During team collaboration, secrets are shared via messaging apps or email, creating leakage risks
  • There is a lack of systematic security auditing, making it difficult to assess the security posture of environment configurations
  • Hardcoded secrets occasionally remain in source code, acting as ticking time bombs for security breaches
  • Multi-environment (development, staging, production) configuration management is chaotic and error-prone

Core Value: Encrypt environment variables with a single command, automate security auditing with a comprehensive rule set, and seamlessly integrate into existing development workflows with zero intrusion.

Key Differentiators:

  • ๐Ÿ” Zero-config startup โ€” No complex setup required; get started instantly with envshield init
  • โšก Ultra-lightweight โ€” Only three core dependencies: cryptography, rich, and click
  • ๐Ÿ”„ Seamless integration โ€” Git hooks for automatic interception, transparent runtime decryption injection
  • ๐Ÿ“Š Quantified security โ€” 15 auditing rules output a 0-100 security score for at-a-glance assessment

โœจ Core Features

Feature Description
๐Ÿ”’ AES-256-GCM Encryption Military-grade authenticated encryption for .env files with tamper protection
๐Ÿ” Security Audit Engine 15 built-in security rules with a 0-100 security score and actionable improvement suggestions
๐Ÿ•ต๏ธ Source Code Scanner Intelligent detection of 20+ hardcoded secret patterns across Python, JS, Go, Java, and more
๐Ÿช Git Hook Guardian Automatically installed pre-commit hooks prevent .env files from being committed to repositories
๐ŸŒ Multi-environment Management Switch between dev / staging / prod configurations effortlessly
๐Ÿ“Š TUI Visual Dashboard Rich-based terminal dashboard for an intuitive overview of your security posture
๐Ÿ’‰ Runtime In-memory Decryption Decrypted variables exist only in process memory โ€” never written to disk
๐Ÿ“ค Format Import/Export JSON / YAML format support for cross-platform migration and backup

๐Ÿš€ Quick Start

Prerequisites

  • Python 3.8 or later
  • pip package manager

Installation

# Install via pip
pip install envshield

# Verify installation
envshield --version

Three Steps to Get Started

# Step 1: Initialize in your project root
envshield init

# Step 2: Encrypt your .env file
envshield encrypt .env

# Step 3: Run a security audit and check your score
envshield audit .env

After encryption, a .env.vault file is generated and the original .env file is securely deleted. You can safely commit .env.vault to your repository.


๐Ÿ“– Detailed Usage Guide

๐Ÿ”’ Encryption & Decryption

# Encrypt .env file (default)
envshield encrypt .env

# Encrypt a specific file
envshield encrypt /path/to/production.env

# Decrypt .env.vault file
envshield decrypt .env.vault

# Decrypt to a specific output file
envshield decrypt .env.vault --output .env.local

Encryption workflow:

  1. Read the original .env file contents
  2. Encrypt using the AES-256-GCM algorithm
  3. Generate a .env.vault encrypted file
  4. Securely erase the original .env file
  5. Automatically add .env.vault to .gitignore (optional)

๐Ÿ” Security Audit

# Audit the current .env file
envshield audit .env

# Audit and output a JSON report
envshield audit .env --format json --output report.json

# Audit all .env files in a directory
envshield audit ./config/

Sample audit output:

โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
โ”‚         EnvShield Security Audit Report      โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚  Overall Score:  72 / 100  โš ๏ธ Medium Risk   โ”‚
โ”‚  Rules Checked:  15                          โ”‚
โ”‚  Passed:         11  โœ…                      โ”‚
โ”‚  Warnings:       3   โš ๏ธ                      โ”‚
โ”‚  Failed:         1   โŒ                      โ”‚
โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ

๐Ÿ•ต๏ธ Source Code Scanning

# Scan the current directory
envshield scan .

# Scan a specific directory, excluding node_modules
envshield scan ./src --exclude node_modules,venv,.git

# Scan with verbose output
envshield scan ./src --verbose

The source code scanner detects the following patterns:

  • Hardcoded API keys (api_key = "sk-...")
  • Plaintext passwords in database connection strings
  • AWS / GCP / Azure credentials
  • JWT secrets, OAuth tokens
  • Private key file contents
  • 20+ other common secret leakage patterns

๐Ÿช Git Hooks

# Install pre-commit hook
envshield hook install

# Uninstall hook
envshield hook uninstall

Once installed, every git commit automatically checks the staging area for .env files. If detected, the commit is blocked and the user is notified.

๐Ÿ“Š TUI Dashboard

# Open the interactive dashboard
envshield dashboard

The dashboard provides the following views:

  • Environment variable overview (encrypted/plaintext status)
  • Security score trend chart
  • Recent audit history
  • Key rotation reminders

๐Ÿ”‘ Variable Management

# Set a variable
envshield set DATABASE_URL "postgres://user:pass@localhost:5432/mydb"

# Get a variable
envshield get DATABASE_URL

# List all variables
envshield list

# Delete a variable
envshield delete API_KEY

๐ŸŒ Environment Switching

# Switch to production environment
envshield switch prod

# Switch to development environment
envshield switch dev

# View current environment
envshield switch --current

๐Ÿ’ก Security Audit Rules

EnvShield includes 15 built-in security audit rules covering key strength, file permissions, leakage detection, and more:

# Rule Description Severity
1 Weak Key Detection Checks if key length is below 16 characters ๐Ÿ”ด High
2 Common Weak Key Match Detects use of password, 123456, and other common weak keys ๐Ÿ”ด High
3 Key Entropy Evaluation Evaluates the randomness and complexity of keys ๐ŸŸก Medium
4 Plaintext Password Detection Checks for plaintext passwords in connection strings ๐Ÿ”ด High
5 API Key Format Validation Validates API keys against provider format specifications ๐ŸŸก Medium
6 Expired Key Detection Checks if keys exceed the recommended rotation period (90 days) ๐ŸŸก Medium
7 File Permission Check Checks if .env file permissions are too permissive ๐Ÿ”ด High
8 .gitignore Coverage Check Confirms .env files are excluded in .gitignore ๐Ÿ”ด High
9 Duplicate Key Detection Checks for identical keys across different environments ๐ŸŸก Medium
10 Sensitive Variable Naming Checks if sensitive variables use SECRET, KEY, TOKEN suffixes ๐ŸŸข Low
11 Hardcoded Credential Scan Scans source code for hardcoded credentials ๐Ÿ”ด High
12 Debug Mode Detection Checks if debug mode is enabled in production ๐ŸŸก Medium
13 Insecure Protocol Detection Checks for insecure protocols like HTTP in connection strings ๐ŸŸก Medium
14 Default Credential Detection Checks for framework default credentials ๐Ÿ”ด High
15 Key Rotation Policy Evaluates the completeness of key rotation policies ๐ŸŸข Low

๐Ÿ“ฆ Advanced Usage

Multi-environment Management

# Initialize multi-environment configuration
envshield init --envs dev,staging,prod

# Set variables for different environments
envshield set DATABASE_URL "postgres://localhost/dev" --env dev
envshield set DATABASE_URL "postgres://staging-db/app" --env staging
envshield set DATABASE_URL "postgres://prod-db/app" --env prod

# Switch environment
envshield switch prod

Runtime Decryption Injection

# Start a Python app with runtime injection
envshield run -- python app.py

# Start a Node.js app with runtime injection
envshield run -- node server.js

# Run any command with runtime injection
envshield run -- make deploy

How runtime injection works:

  1. Reads the .env.vault encrypted file
  2. Decrypts it in process memory
  3. Injects the decrypted variables into the child process environment
  4. Decrypted data exists only in memory and is automatically cleared when the process exits

CI/CD Integration

# GitHub Actions example
- name: Setup EnvShield
  run: pip install envshield

- name: Decrypt environment
  run: envshield decrypt .env.vault --output .env
  env:
    ENVSHIELD_MASTER_KEY: ${{ secrets.ENVSHIELD_MASTER_KEY }}

- name: Run security audit
  run: envshield audit .env --format json --output audit-report.json

- name: Scan source code
  run: envshield scan ./src --exclude node_modules,venv
# GitLab CI example
security_audit:
  stage: test
  before_script:
    - pip install envshield
  script:
    - envshield decrypt .env.vault --output .env
    - envshield audit .env
    - envshield scan ./src
  artifacts:
    reports:
      security_audit: audit-report.json

Export & Import

# Export as JSON format
envshield export --format json --output config.json

# Export as YAML format
envshield export --format yaml --output config.yaml

# Import from JSON
envshield import config.json

# Import from YAML
envshield import config.yaml

๐Ÿค Contributing

We welcome and appreciate every contributor! Before participating, please read the following guidelines:

Submitting a Pull Request

  1. Fork this repository and create your feature branch: git checkout -b feature/amazing-feature
  2. Write code and ensure all tests pass: pytest tests/
  3. Commit changes following the Conventional Commits specification: git commit -m 'feat: add amazing feature'
  4. Push to your fork: git push origin feature/amazing-feature
  5. Open a Pull Request with a detailed description of your changes

Submitting an Issue

  • Use a clear and descriptive title
  • Include steps to reproduce and expected behavior
  • Include your runtime environment (OS, Python version, EnvShield version)
  • Attach error log screenshots when possible

Code Standards

  • Follow PEP 8 coding conventions
  • All public functions must include docstrings
  • New features must include corresponding unit tests
  • Security-related code changes require additional code review

๐Ÿ“„ License

This project is licensed under the MIT License.

MIT License

Copyright (c) 2024 EnvShield Contributors

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

About

๐Ÿ›ก๏ธ EnvShield - Lightweight Environment Variable Security Management CLI Engine | ่ฝป้‡็บง็Žฏๅขƒๅ˜้‡ๅฎ‰ๅ…จ็ฎก็†CLIๅผ•ๆ“Ž - AES-256 Encryption, 15 Audit Rules, Source Scanner, Git Hooks, TUI Dashboard

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages