0.1.17 โ€ข Published 2 years ago

env-manage v0.1.17

Weekly downloads
-
License
MIT
Repository
-
Last release
2 years ago

๐Ÿ—’ Env-manage


env-manage

์‚ฌ๋‚ด env ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์™€์„œ ํŒŒ์ผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๋งŒ๋“ค์–ด๋ณธ ํˆด์ž…๋‹ˆ๋‹ค.

๊ฐœ๋ฐœ ์‹œ env๋ฅผ ๋ฒˆ๊ฑฐ๋กญ๊ฒŒ ์ดˆ๊ธฐํ™”ํ•˜์ง€ ์•Š๊ณ  ์ปค๋งจ๋“œ๋กœ ์žฌ์ƒ์„ฑํ•˜์—ฌ ์—…๋ฐ์ดํŠธ ํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ตฌํ˜„ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

๊ฐœ๋ฐœ ํ›„๊ธฐ์™€ ๊ด€๋ จํ•˜์—ฌ ์ •๋ฆฌํ•œ ๋‚ด์šฉ์€ ๊ฐœ์ธ ๋ธ”๋กœ๊ทธ์—์„œ ํ™•์ธํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Quick Features

  • CLI ๋ช…๋ น์–ด๋ฅผ ์ด์šฉํ•ด ์ดˆ๊ธฐ ์„ค์ •
  • CLI ๋ช…๋ น์–ด๋ฅผ ์ด์šฉํ•ด env ์ƒ์„ฑ ๋ฐ ์—…๋ฐ์ดํŠธ

Prerequisite

  • ํ•ด๋‹น ๋ฒ„์ „์€ REST ํ†ต์‹ ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค
  • ๊ธฐ๋ณธ ์›Œํฌํ”Œ๋กœ์šฐ๋Š” ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค

ํ•ด๋‹น ๊ตฌ์กฐ์— ๋”ฐ๋ผ, ๋ณด์•ˆ์ ์œผ๋กœ ํ•„์š”๋˜๋Š” ์„œ๋ฒ„ ๋ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ตฌ์กฐ๋Š” ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  1. access token์„ JWT๋กœ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ secret ๊ฐ’. ํ•ด๋‹น secret์€ ๊ฐœ๋ฐœ์ž๋“ค์ด ๋Œ€์™ธ๋น„๋กœ ์•Œ๊ณ  ์žˆ์–ด์•ผ ํ•˜๋ฉฐ, ์„œ๋ฒ„ ์ธก์€ ์ด secret์„ ์ €์žฅํ•˜๊ณ  ์ด๊ฒƒ๊ณผ jwt ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ด์šฉํ•˜์—ฌ access token์„ ์ƒ์„ฑ ๋ฐ ๊ฒ€์ฆํ•˜๋Š” ๋กœ์ง์„ ๋งŒ๋“ค์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  2. access token ๋ฐœ๊ธ‰์„ ์œ„ํ•œ Init Endpoint(-sve) (POST/Body ๋‚ด์— secret ๊ฐ’ ๊ฒ€์ฆ ํ›„ ์ผ์น˜ํ•˜๋ฉด jwtํ† ํฐ์„ ์ƒ์„ฑํ•˜์—ฌ ์ „๋‹ฌ)

  3. database ์กฐํšŒ ํ›„ ํ•ด๋‹น ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•ด์ค„ Generate Endpoint (POST/Body ๋‚ด์— repo ๊ฐ’์œผ๋กœ ๋ฐ์ดํ„ฐ ํ•„ํ„ฐ๋ง)

    • ํ•ด๋‹น endpoint๋Š” init ๋•Œ ๋ฐœ๊ธ‰๋ฐ›์€ access token์„ ๊ฒ€์ฆํ•˜๋Š” ๋กœ์ง ํ•„์š” (๋ฏธ๋“ค์›จ์–ด ๊ตฌ์กฐ ์ถ”์ฒœ)

    • ํ† ํฐ ๊ฒ€์ฆ ๋ฏธ๋“ค์›จ์–ด๋ฅผ ์ž‘์„ฑํ•  ๋•Œ, access token์€ Authorization Header์„ ํ†ตํ•ด ์ „๋‹ฌ๋˜๋ฏ€๋กœ, ๊ฒ€์ฆ middleware์—์„œ ํ•ด๋‹น header์˜ access token์„ ๊ฒ€์ฆํ•˜๋„๋ก ๊ตฌํ˜„ํ•ด์•ผ ํ•จ

    • generate endpoint๋Š” body์—์„œ ์ „๋‹ฌ๋ฐ›๋Š” "repo" ๊ฐ’์„ ๊ธฐ์ค€์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ํ•„ํ„ฐ๋งํ•˜์—ฌ Env ๊ฐ’์„ ์กฐํšŒํ•˜๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•จ
    • generate endpoint์—์„œ response๋กœ ์ „๋‹ฌํ•ด์ค˜์•ผ ํ•  env ๋ฆฌ์ŠคํŠธ๋Š” ๊ทธ ๊ฐ’ ์ž์ฒด๋ฅผ Json์œผ๋กœ ๋ณด๋‚ด์ฃผ์–ด์•ผ ํ•จ
  4. "repo" ๋ผ๋Š” ์ปฌ๋Ÿผ๋ช…์„ ์ง€๋‹Œ env ๊ด€๋ฆฌ ํ…Œ์ด๋ธ”. (repo ์ปฌ๋Ÿผ์€ ์˜ˆ๋ฅผ ๋“ค์–ด, ์›น๊ฐœ๋ฐœ ํ™˜๊ฒฝ์ธ์ง€, ์•ฑ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์ธ์ง€, ์„œ๋ฒ„์ธ์ง€ ๋“ฑ๋“ฑ์„ ๊ตฌ๋ถ„ํ•˜์—ฌ env ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธ ์‚ฌํ•ญ์€ gen ์ปค๋งจ๋“œ ์„ค๋ช… ๋‚ด์šฉ ์ฐธ์กฐ.)


Commands

๐Ÿ“– init : ์ดˆ๊ธฐ ํ™˜๊ฒฝ ์„ค์ •์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค

init์ด ์ง„ํ–‰๋ฐฉํ–ฅ์€ ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

a. command ์ž…๋ ฅ b. origin ์ž…๋ ฅ(๊ฐœ๋ฐœ, ์šด์˜) c. mode ์ž…๋ ฅ(access token ๋ฐœ๊ธ‰๋ฐ›์„ ์„œ๋ฒ„ ํ™˜๊ฒฝ ์„ ํƒ) d. secret ์ž…๋ ฅ

args

  1. -sve (ํ† ํฐ ๋ฐœ๊ธ‰์ฃผ์†Œ) : ์„œ๋ฒ„์˜ ์–ด๋–ค Endpoint๋ฅผ ํ†ตํ•ด secret ๊ฐ’์„ ๊ฒ€์ฆํ•˜๊ณ  access token์„ ๋ฐœํ–‰๋ฐ›์„ ์ง€๋ฅผ ์ž‘์„ฑํ•˜์—ฌ data.json์— ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

  2. -gee (env ๋ฐœ๊ธ‰์ฃผ์†Œ) : ์„œ๋ฒ„์˜ ์–ด๋–ค Endpoint๋ฅผ ํ†ตํ•ด DB์˜ env ๊ฐ’์„ ์กฐํšŒํ•˜๊ณ , ์‚ฌ์šฉ์ž์—๊ฒŒ ์ „๋‹ฌํ•ด์ค„ ์ง€๋ฅผ ์ž‘์„ฑํ•˜์—ฌ data.json์— ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

# init command ์˜ˆ์‹œ

npx env-manage init -sve v1/env-init -gee v1/env-generate

init์ด ์™„๋ฃŒ๋˜๋ฉด, ์ดˆ๊ธฐ์„ค์ •์— ๋Œ€ํ•œ ๊ฐ’์ด data.json์ด๋ผ๋Š” ํŒŒ์ผ์— ์ €์žฅ๋˜์–ด ํ•ด๋‹น ๋ชจ๋“ˆ์˜ ํด๋” ์•„๋ž˜์— ์ €์žฅ๋ฉ๋‹ˆ๋‹ค.


๐Ÿ“– gen : evn ํŒŒ์ผ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค

args

  1. mode ("-d" or "-p") : ํ™˜๊ฒฝ์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ์„ค์ •๋œ ํ™˜๊ฒฝ์˜ ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ env ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐœ๊ธ‰๋ฐ›์Šต๋‹ˆ๋‹ค.

  2. -repo (env ํ•„ํ„ฐ๋ง ์ฟผ๋ฆฌ) : env๊ฐ€ ๊ด€๋ฆฌ๋˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ…Œ์ด๋ธ”์—์„œ ์˜ˆ๋ฅผ ๋“ค์–ด "afun-wallet-app"์ด๋ผ๋Š” ์žฅ์†Œ์˜ env๋งŒ ํ•„์š”ํ•  ๊ฒฝ์šฐ, ํ•ด๋‹น ๋ฐ์ดํ„ฐ๋งŒ ํ•„ํ„ฐ๋งํ•˜์—ฌ ์กฐํšŒํ•  ์ˆ˜ ์žˆ๋„๋ก ์ „๋‹ฌ๋˜์–ด์•ผ ํ•˜๋Š” ๊ฐ’์ž†๋‹ˆ๋‹ค.

  3. -filename (env ์ด๋ฆ„, optional) : env๋ฅผ ์ƒ์„ฑํ•  ์‹œ, ์–ด๋–ค ์ด๋ฆ„์œผ๋กœ ์„ค์ •ํ•  ๊ฒƒ์ธ์ง€๋ฅผ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ ์ž…๋ ฅํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด ".env"๋กœ ์ž๋™ ์„ค์ •๋ฉ๋‹ˆ๋‹ค.

# gen command ์˜ˆ์‹œ

npx env-manage gen -d -repo afun-wallet-app -filename .env.development

๐Ÿ“– refresh : init์‹œ์— ์ €์žฅ๋˜์–ด ์žˆ๋˜ access token์ด ๋งŒ๋ฃŒ๋  ๊ฒฝ์šฐ, ํ•ด๋‹น ํ† ํฐ์„ ์—…๋ฐ์ดํŠธํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. (generate๋ฅผ ์œ„ํ•ด์„œ๋Š” ๋งŒ๋ฃŒ๊ฐ€ ์ง€๋‚˜์ง€ ์•Š์€ access token์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.)

ํ•ด๋‹น refresh ์ปค๋งจ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋จผ์ € init ์ปค๋งจ๋“œ๋ฅผ ์ด์šฉํ•˜์—ฌ ์ดˆ๊ธฐ ์„ค์ •์„ ์ €์žฅํ•ด ๋‘์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ดˆ๊ธฐ ์„ค์ •์ด ์™„๋ฃŒ๋œ ์ดํ›„์—๋Š”, ํ•ด๋‹น ๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ access token์„ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค.

# gen command ์˜ˆ์‹œ

npx env-manage refresh
0.1.16

2 years ago

0.1.17

2 years ago

0.1.15

2 years ago

0.1.14

2 years ago

0.1.13

2 years ago

0.1.12

2 years ago

0.1.11

2 years ago

0.1.10

2 years ago

0.1.9

2 years ago

0.1.8

2 years ago

0.1.7

2 years ago

0.1.6

2 years ago

0.1.5

2 years ago

0.1.4

2 years ago

0.1.3

2 years ago

0.1.2

2 years ago

0.1.1

2 years ago

0.1.0

2 years ago

0.0.14

2 years ago

0.0.13

2 years ago

0.0.12

2 years ago

0.0.11

2 years ago

0.0.10

2 years ago

0.0.9

2 years ago

0.0.8

2 years ago

0.0.7

2 years ago

0.0.6

2 years ago

0.0.5

2 years ago

0.0.4

2 years ago

0.0.2

2 years ago

0.0.1

2 years ago