Skip to content

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 

Repository files navigation

🛡️ Env Manager (envm)

envm은 Windows 환경에서 환경 변수를 효율적이고 안전하게 관리하기 위한 CLI 도구입니다. 레지스트리에 직접 값을 설정하는 동시에, 메타데이터를 별도로 관리하여 환경 변수의 출처와 상태를 추적할 수 있습니다.

🚀 개발 배경

Windows의 기본 환경 변수 관리 시스템은 다음과 같은 불편함이 있습니다:

  • 출처 불분명: 특정 환경 변수가 사용자가 직접 등록한 것인지, 프로그램 설치 시 자동으로 추가된 것인지 구분이 어렵습니다.

  • .env의 한계: 개발 시 .env 파일을 자주 사용하지만, Docker Compose나 여러 외부 도구에서 시스템 수준의 환경 변수를 참조해야 할 때 관리 포인트가 늘어납니다.

  • 보안 문제: API Key와 같은 민감 정보가 화면에 그대로 노출되는 경우가 많습니다.

envm은 이러한 문제를 해결하기 위해 메타데이터 기반 관리와 DPAPI 암호화를 도입했습니다.

✨ 주요 기능

  • 메타데이터 관리: 변수 생성 시간, 활성화 상태 등을 JSON으로 별도 기록.

  • 보안(DPAPI): 모든 환경 변수 값은 Windows DPAPI 를 이용하여 암호화되어 저장됩니다. 현재 로그인 유저에 종속됩니다. (%LOCALAPPDATA%\envm\envm.json)

  • Secret 모드: 민감한 값은 ***로 마스킹 처리하여 출력할 수 있습니다.

  • 활성/비활성: 변수를 삭제하지 않고 필요할 때만 레지스트리에 등록하거나 제거할 수 있습니다.

  • 시스템 변수 지원: -s 옵션을 통해 시스템 수준의 환경 변수도 제어 가능합니다.

🛠️ 설치 및 요구사항

  • OS: Windows 전용

  • 의존성: pywin32 (pip install pywin32)

📖 사용 방법

envm <KEY>

환경변수 값을 확인합니다. 마스킹된 환경변수는 관리자 권한에서 실행시 값을 확인할 수 있습니다.

envm -l / --list

환경변수 목록을 출력합니다.

envm -ls / --list-secret

환경변수 목록을 출력합니다. 마스킹 없이 출력합니다. 관리자 권한이 필요합니다.

envm -a / --add KEY VALUE | KEY=VALUE

환경 변수를 추가합니다.

envm -as / --add-secret KEY VALUE | KEY=VALUE

환경 변수를 추가합니다. --list 로 목록 조회시 * 로 마스킹되어 출력됩니다.

envm -m / --modify KEY VALUE | KEY=VALUE

환경 변수를 수정합니다.

envm -r / --remove KEY

환경 변수를 제거합니다.

envm -d / --disable KEY

환경 변수를 비활성화 합니다. --list 목록 출력시 (VALUE) 와 같이 괄호에 감싸서 출력됩니다.

envm -e / --enable KEY

환경 변수를 활성화 합니다.

envm <option> -s / --sys

명령어 뒤에 -s 옵션을 추가하면 이는 시스템 환경 변수를 대상으로 합니다. 관리자 권한이 필요합니다.

⚠️ 주의 사항

시스템 환경 변수(-s)를 수정하거나 -ls 명령어로 암호를 확인할 때는 반드시 관리자 권한으로 실행된 터미널이 필요합니다. 환경 변수 변경 후, 현재 열려 있는 터미널에는 즉시 반영되지 않을 수 있으니 새 창을 열어 확인하세요.

About

Env Manager

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages