giip
SES Proposal
2 min read

KB Management API User Guide

๋ณธ ๋ฌธ์„œ๋Š” ์ง€์‹ ๋ฒ ์ด์Šค(KB) ์‹œ์Šคํ…œ์„ ์™ธ๋ถ€ ์Šคํฌ๋ฆฝํŠธ(giipAgentWin ๋“ฑ)์—์„œ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ API ์‚ฌ์šฉ๋ฒ•์„ ์•ˆ๋‚ดํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ”Œ ์ง€์‹ ๋ฒ ์ด์Šค ๊ด€๋ฆฌ ํŽ˜์ด์ง€๋กœ ์ด๋™ โ†’

1. ๊ฐœ์š”

KB API(giipKb)๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ํŠน์ • ์„œ๋ฒ„(lssn) ๋˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(mdb_id)์— ๋Œ€ํ•œ ์žฅ์•  ๋Œ€์‘ ๋…ธํ•˜์šฐ, ์„ค์ • ์ •๋ณด ๋“ฑ์„ ์ €์žฅํ•˜๊ณ  ์กฐํšŒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

2. ๊ธฐ๋ณธ ์ •๋ณด

  • Endpoint: https://giipfaw.azurewebsites.net/api/giipKb
  • Authentication: x-api-key ํ—ค๋”๋ฅผ ํ†ตํ•ด ์„ธ์…˜ ํ† ํฐ(AK/SK)์„ ์ „๋‹ฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

3. ๊ธฐ๋Šฅ ์•ˆ๋‚ด (Endpoints)

3.1 KB ๋“ฑ๋ก (POST)

์ƒˆ๋กœ์šด ์ง€์‹ ๋ฌธ์„œ๋ฅผ ๋“ฑ๋กํ•ฉ๋‹ˆ๋‹ค.

Payload (JSON):

{
  "csn": 100,
  "refType": "LSSN", 
  "lssn": 1234,
  "title": "์„œ๋ฒ„ ์ปค๋„ ํŠœ๋‹ ๊ฐ€์ด๋“œ",
  "content": "# ๊ฐ€์ด๋“œ\n์ปค๋„ ํŒŒ๋ผ๋ฏธํ„ฐ ์ˆ˜์ • ๋ฐฉ๋ฒ•...",
  "tags": "kernel,tuning,linux"
}
  • refType: LSSN(์„œ๋ฒ„), MDB(DB), GENERAL ์ค‘ ์„ ํƒ

3.2 KB ์ˆ˜์ • (PUT)

๊ธฐ์กด ์ง€์‹ ๋ฌธ์„œ๋ฅผ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค.

Payload (JSON):

{
  "kbSn": 42,
  "title": "์ˆ˜์ •๋œ ์ œ๋ชฉ",
  "content": "์—…๋ฐ์ดํŠธ๋œ ๋‚ด์šฉ...",
  "tags": "linux,updated"
}

3.3 KB ์กฐํšŒ (GET)

ํ•„ํ„ฐ ์กฐ๊ฑด์— ๋งž๋Š” KB ๋ชฉ๋ก ๋˜๋Š” ์ƒ์„ธ ์ •๋ณด๋ฅผ ์กฐํšŒํ•ฉ๋‹ˆ๋‹ค.

Query Parameters:

  • kbSn: ํŠน์ • ๋ฌธ์„œ ์กฐํšŒ ์‹œ ์‚ฌ์šฉ
  • lssn: ํŠน์ • ์„œ๋ฒ„ ๊ด€๋ จ ์ง€์‹ ์กฐํšŒ
  • mdb_id: ํŠน์ • DB ๊ด€๋ จ ์ง€์‹ ์กฐํšŒ
  • searchKeyword: ๊ฒ€์ƒ‰์–ด

3.4 KB ์‚ญ์ œ (DELETE)

์ง€์‹ ๋ฌธ์„œ๋ฅผ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.

Query Parameters:

  • kbSn: ์‚ญ์ œํ•  ๋ฌธ์„œ ๋ฒˆํ˜ธ

4. SK ๊ธฐ๋ฐ˜ API ์‚ฌ์šฉ๋ฒ• (giipAgent ๊ถŒ์žฅ)

giipAgent์™€ ๊ฐ™์ด ์ƒ์ฃผํ˜• ํ”„๋กœ๊ทธ๋žจ ๋˜๋Š” ์ž๋™ํ™” ์Šคํฌ๋ฆฝํŠธ์—์„œ๋Š” ์„ธ์…˜ ๋งŒ๋ฃŒ๊ฐ€ ์—†๋Š” Secret Key(SK)๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๊ถŒ์žฅ๋ฉ๋‹ˆ๋‹ค. SK ๊ธฐ๋ฐ˜ ํ˜ธ์ถœ์€ ํ†ตํ•ฉ API ์—”๋“œํฌ์ธํŠธ(giipApiSk3)๋ฅผ ํ†ตํ•ด ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค.

  • Endpoint: https://giipfaw.azurewebsites.net/api/giipApiSk3
  • Method: POST (form-urlencoded)

4.1 ์ฃผ์š” ํŒŒ๋ผ๋ฏธํ„ฐ

  • sk: ๋ฐœ๊ธ‰๋ฐ›์€ Secret Key
  • text: ์‹คํ–‰ํ•  ๋ช…๋ น์–ด (KbCreate, KbUpdate, KbDelete, KbGet, KbList ์ค‘ ํ•˜๋‚˜)
  • jsondata: API์— ์ „๋‹ฌํ•  ์ƒ์„ธ ๋ฐ์ดํ„ฐ (JSON ๋ฌธ์ž์—ด)

4.2 ํ˜ธ์ถœ ์˜ˆ์ œ (PowerShell)

$sk = "YOUR_SECRET_KEY"
$url = "https://giipfaw.azurewebsites.net/api/giipApiSk3"

# KB ๋“ฑ๋ก ์˜ˆ์ œ
$body = @{
    sk = $sk
    text = "KbCreate jsondata"
    jsondata = (@{
        csn = 100
        refType = "LSSN"
        lssn = 1234
        title = "Agent ์ž๋™ ๋“ฑ๋ก ์ง€์‹"
        content = "์—์ด์ „ํŠธ์—์„œ ์ž๋™์œผ๋กœ ๋ถ„์„๋œ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค."
        tags = "agent,auto"
    } | ConvertTo-Json -Compress)
}

$response = Invoke-RestMethod -Uri $url -Method Post -Body $body
Write-Host "KB Registered. kbSn: $($response.data[0].kbSn)"

5. giipAgentWin ์ž๋™ํ™” ์˜ˆ์ œ (AK ๊ธฐ๋ฐ˜)

giipAgentWin ์Šคํฌ๋ฆฝํŠธ์—์„œ ์™„๋ฃŒ๋œ ์ž‘์—… ๋กœ๊ทธ๋ฅผ AK๋กœ ์ž๋™ ๋“ฑ๋กํ•˜๋Š” ์˜ˆ์ œ์ž…๋‹ˆ๋‹ค (๋กœ๊ทธ์ธ ์„ธ์…˜์ด ์œ ํšจํ•œ ๊ฒฝ์šฐ).

$ak = "YOUR_SESSION_AK"
$url = "https://giipfaw.azurewebsites.net/api/giipKb"

$body = @{
    title = "์ž๋™ํ™” ๋ถ„์„ ๊ฒฐ๊ณผ - $(Get-Date -Format 'yyyyMMdd')"
    content = "# ๋ถ„์„ ๊ฒฐ๊ณผ`nํ™˜๊ฒฝ ์ ๊ฒ€์ด ์™„๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค."
    refType = "LSSN"
    lssn = 1201
    csn = 0
    tags = "auto,diag"
} | ConvertTo-Json -Compress

$headers = @{
    "x-api-key" = $ak
    "Content-Type" = "application/json"
}

$response = Invoke-RestMethod -Uri $url -Method Post -Headers $headers -Body $body
Write-Host "KB Registered. kbSn: $($response.kbSn)"

[!TIP] giipv3 ํ”„๋ก ํŠธ์—”๋“œ์˜ ์„œ๋ฒ„/DB ์ƒ์„ธ ํŽ˜์ด์ง€์—์„œ ์ด API๋กœ ๋“ฑ๋ก๋œ ๋‚ด์šฉ์„ ์ฆ‰์‹œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


๋ฌธ์ œ ํ•ด๊ฒฐ

์ฆ์ƒ์›์ธํ•ด๊ฒฐ
401 Unauthorized ์‘๋‹ตx-api-key ํ—ค๋”์— ์œ ํšจํ•œ AK/SK ํ† ํฐ์ด ์—†๊ฑฐ๋‚˜ ์„ธ์…˜์ด ๋งŒ๋ฃŒ๋จํ—ค๋”์— ์œ ํšจํ•œ ํ† ํฐ์„ ๋„ฃ๊ฑฐ๋‚˜, ์„ธ์…˜ ๋งŒ๋ฃŒ๊ฐ€ ์—†๋Š” SK ๊ธฐ๋ฐ˜ giipApiSk3 ํ˜ธ์ถœ๋กœ ์ „ํ™˜
SK ํ˜ธ์ถœ ์‹œ ๋ช…๋ น์ด ์‹คํ–‰๋˜์ง€ ์•Š์Œtext ํ•„๋“œ๊ฐ€ KbCreate jsondata ํ˜•์‹์ด ์•„๋‹˜text์— ๋ช…๋ น์–ด(KbCreate/KbUpdate/KbDelete/KbGet/KbList)์™€ jsondata ํ‚ค์›Œ๋“œ๋ฅผ ์ •ํ™•ํžˆ ๊ธฐ์žฌ
๋“ฑ๋กยท์ˆ˜์ • ์‹œ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ˆ„๋ฝ๋จrefType ๊ฐ’์ด LSSN/MDB/GENERAL ์ด์™ธ์ด๊ฑฐ๋‚˜ kbSn ๋ˆ„๋ฝํ—ˆ์šฉ๋œ refType ์„ธ ๊ฐ’ ์ค‘ ํ•˜๋‚˜๋งŒ ์‚ฌ์šฉํ•˜๊ณ , PUT/DELETE์—๋Š” ์œ ํšจํ•œ kbSn ์ง€์ •
jsondata ํŒŒ์‹ฑ ์˜ค๋ฅ˜content ๋‚ด ๊ฐœํ–‰ยท๋”ฐ์˜ดํ‘œ๊ฐ€ ์ด์Šค์ผ€์ดํ”„๋˜์ง€ ์•Š์ŒConvertTo-Json -Compress ๋“ฑ์œผ๋กœ JSON ๋ฌธ์ž์—ด๋กœ ์ง๋ ฌํ™”ํ•œ ๋’ค ์ „์†ก