Grafanaκ° λ§λ£ λ ν ν°μ μ¬μ©νλ νλ‘μΈμ€κ° νΌλ μ€λ½μ΅λλ€. Grafana API λ¬Έμ μμ API ν€ μμ± λλ¨Έμ§ μμ²μ secondsToLive νλλ₯Ό μ¬μ©νλ©΄ μ ν€μ λν λ§λ£λ₯Ό μ€μ ν μ μμ΅λλ€.
-X POST
-H "Content-Type: application/json"
-d '{
"name":"testKey",
"role":"Admin",
"secondsToLive":60
}'
http://removed:forsecurity<strong i="7">@localhost</strong>:3000/api/auth/keys
μ΄ μλ λ΄κ° μ΄λ»κ² ꡬννλμ§ λ³΄μ¬μ€λλ€. 1 λΆ νμ ν€κ° λ§λ£λκ³ UIμμ ν€κ° μ κ±°λλ©΄ ν€λ₯Ό λ€μ λ§λ€ μμμ κ²μΌλ‘ μμλ©λλ€.
λ΄κ° μ€μ λ‘λ³΄κ³ μλ κ²μ ν€κ° λ§λ£λκ³ ν€κ° UIμμ μ κ±°λλ©° ν΄λΉ μ΄λ¦μ΄ "testKey"μΈ λ€λ₯Έ ν€λ₯Ό λ μ΄μ λ§λ€ μ μλ€λ κ²μ λλ€.
API ν€ μμ±κ³Ό κ΄λ ¨λ μ μμ μΈ λμμ λκΉ? λλ μ΄κ²μ΄ κ³΅κ° APIμ λν΄ κΉ¨μ§ κ²μ΄λΌκ³ μκ°ν©λλ€. API ν€μ Grafana ꡬνκ³Ό κ΄λ ¨λ κ²μΌ μ μμ΅λκΉ?
λ€μμ λ§λ£λμ΄ λ μ΄μ UIμμλ ν€μ λν μμ²μ΄μμ λ μλ²μ μλ΅ μμ λλ€.
{"message":"Failed to add API key"}
λ§λ£ μ μ ν€ (API λλ UIλ₯Ό ν΅ν΄)λ₯Ό μμ νλ©΄ λ¬Έμ μμ΄ ν€λ₯Ό λ€μ λ§λ€ μ μμ΅λλ€.
νμ¬ μμ€ν μμλ ν€λ₯Ό λ³΄λ €κ³ νλ©΄ λΉ λͺ©λ‘μ΄ λνλ©λλ€.
curl -X GET -H "Content-Type: application/json" http://removed:forsecurity<strong i="18">@localhost</strong>:3000/api/auth/keys
[]
λ§λ£ ν APIλ₯Ό ν΅ν΄ ν€λ₯Ό μμ νλ©΄ (λ μ΄μ νμλμ§ μμΌλ―λ‘ UIλ₯Ό ν΅ν΄ ν μ μμ) ν€λ₯Ό λ€μ μμ± ν μ μμ΅λλ€.
ν€κ° λ§λ£ λ μνμ λ°μ΄ν°λ² μ΄μ€μ μ¬μ ν μ‘΄μ¬νλ κ²½μ° UIμμ λ³Ό μμλ μ΅μ μ μν©λλ€. λν λ§λ£ μνμ λν νλκ°μλ ν€λ₯Ό λμ΄νκΈ° μν΄ API νΈμΆμμλ³΄κ³ λκΈ°λ₯Ό λ°λλλ€.
μΆκ° μ λ³΄κ° νμνλ©΄ μλ €μ£ΌμΈμ. μ΄ λ¬Έμ κ° μ€λ³΅λμ§ μκΈ°λ₯Ό λ°λλλ€.
@ 5w3rv05 μ΄κ²μ λμκ² λ²κ·Έμ²λΌ λ€λ¦¬μ§λ§ νΉλ³ν μ΄μ λλ¬Έμ ꡬνμ΄ μ νλ κ²½μ° κ΅¬ννλ μ¬λλ€κ³Ό νμΈν΄μΌν©λλ€.
λλ κ·Έκ²μ νμΈνμ΅λλ€. κ·Έκ²μ λ²κ·Έμ
λλ€. λ§λ£ λ ν€λ API ν€ μμ± μ€μ κ³ λ €λμ΄μλ μλ©λλ€.
λν API ν€λ₯Ό λμ΄νκΈ°μν API νΈμΆμ μ νμ μΌλ‘ λ§λ£ λ ν€λ λ°νν΄μΌν©λλ€.
λ§λ£ λ ν€λ API ν€ μμ± μ€μ κ³ λ €λμ§ μμμΌν©λλ€.
λλ κ·Έλ€μ΄ν΄μΌ / νμνλ€κ³ μκ°ν©λλ€. μ΄λ¦μ κ³ μ μμΈμ μΌλΆμ λλ€.
λ κ°μ§ μ루μ
1) λ§λ£ λ ν€ μλ μ 리 (dbμμ μ κ±°)
2) λ§λ£ λ ν€λ₯Ό λͺ©λ‘μ νμνκ³ μ‘°μ§ κ΄λ¦¬μκ° μλμΌλ‘ μ κ±°νλλ‘ν©λλ€.
κ°μ₯ μ μ©ν λκΈ
λλ κ·Έλ€μ΄ν΄μΌ / νμνλ€κ³ μκ°ν©λλ€. μ΄λ¦μ κ³ μ μμΈμ μΌλΆμ λλ€.
λ κ°μ§ μ루μ
1) λ§λ£ λ ν€ μλ μ 리 (dbμμ μ κ±°)
2) λ§λ£ λ ν€λ₯Ό λͺ©λ‘μ νμνκ³ μ‘°μ§ κ΄λ¦¬μκ° μλμΌλ‘ μ κ±°νλλ‘ν©λλ€.