0.1.17 โ€ข Published 9 months ago

env-manage v0.1.17

Weekly downloads
-
License
MIT
Repository
-
Last release
9 months 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

9 months ago

0.1.17

9 months ago

0.1.15

11 months ago

0.1.14

11 months ago

0.1.13

11 months ago

0.1.12

11 months ago

0.1.11

11 months ago

0.1.10

11 months ago

0.1.9

11 months ago

0.1.8

11 months ago

0.1.7

11 months ago

0.1.6

11 months ago

0.1.5

11 months ago

0.1.4

11 months ago

0.1.3

11 months ago

0.1.2

11 months ago

0.1.1

11 months ago

0.1.0

11 months ago

0.0.14

12 months ago

0.0.13

12 months ago

0.0.12

12 months ago

0.0.11

12 months ago

0.0.10

12 months ago

0.0.9

12 months ago

0.0.8

12 months ago

0.0.7

12 months ago

0.0.6

12 months ago

0.0.5

12 months ago

0.0.4

12 months ago

0.0.2

12 months ago

0.0.1

12 months ago