connectbase-client 3.16.2 → 3.17.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +81 -0
- package/dist/connect-base.umd.js +4 -4
- package/dist/index.d.mts +88 -0
- package/dist/index.d.ts +88 -0
- package/dist/index.js +113 -0
- package/dist/index.mjs +113 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,87 @@
|
|
|
3
3
|
본 SDK 의 모든 주요 변경사항을 [Keep a Changelog](https://keepachangelog.com/ko/1.1.0/) 형식으로 기록합니다.
|
|
4
4
|
버전은 [Semantic Versioning](https://semver.org/lang/ko/) 을 따릅니다.
|
|
5
5
|
|
|
6
|
+
## [3.17.0] - 2026-05-18
|
|
7
|
+
|
|
8
|
+
### Added — `cb.knowledge.addDocumentFromFile` (PDF / DOCX / text 파일 업로드)
|
|
9
|
+
|
|
10
|
+
`KnowledgeAPI.addDocumentFromFile(kbID, file, options?)` 를 신설했다. 브라우저 `<input type="file">`
|
|
11
|
+
로 받은 `File` / `Blob` 또는 Node.js `Buffer` / `Uint8Array` 를 그대로 넘기면 SDK 가 base64 인코딩
|
|
12
|
+
+ MIME 추출 후 서버에 보낸다. 서버는 PDF / DOCX / text 류를 자동 텍스트 추출하여 기존 청킹·인덱싱
|
|
13
|
+
파이프라인을 태운다 (platform-issue `019e3a31`, ai-tool chat RAG 제보).
|
|
14
|
+
|
|
15
|
+
지원 MIME:
|
|
16
|
+
- `application/pdf` (텍스트 PDF — 스캔 이미지 PDF 는 미지원)
|
|
17
|
+
- `application/vnd.openxmlformats-officedocument.wordprocessingml.document` (DOCX)
|
|
18
|
+
- `text/*` (plain / markdown / csv / html)
|
|
19
|
+
- `application/json`
|
|
20
|
+
|
|
21
|
+
파일 크기 상한: 50MB (원본 바이너리). 이미지 OCR / HWP / XLSX 는 향후 추가 예정 — 현재는 명시적 에러.
|
|
22
|
+
|
|
23
|
+
```ts
|
|
24
|
+
// 브라우저
|
|
25
|
+
const file = event.target.files[0]
|
|
26
|
+
const doc = await cb.knowledge.addDocumentFromFile('kb-id', file, {
|
|
27
|
+
metadata: { tag: 'manual' },
|
|
28
|
+
})
|
|
29
|
+
|
|
30
|
+
// Node.js
|
|
31
|
+
import { readFileSync } from 'node:fs'
|
|
32
|
+
const doc = await cb.knowledge.addDocumentFromFile('kb-id', {
|
|
33
|
+
data: readFileSync('./report.pdf'),
|
|
34
|
+
mimeType: 'application/pdf',
|
|
35
|
+
name: 'report.pdf',
|
|
36
|
+
})
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
`CreateDocumentRequest` 에 `file_content`(base64) / `mime_type` 옵션 필드를 추가해 기존 `addDocument`
|
|
40
|
+
도 동일 흐름을 직접 호출 가능. `source_type` enum 에 `'file'` 추가.
|
|
41
|
+
|
|
42
|
+
서버 측 변경 (core-server):
|
|
43
|
+
- `pkg/file_extractor` 신설 — PDF (ledongthuc/pdf, pure-Go) / DOCX (stdlib archive/zip + xml)
|
|
44
|
+
- `KnowledgeBaseService.createDocumentInternal` 가 source_type='file' 분기에서 base64 디코딩 →
|
|
45
|
+
텍스트 추출 → 기존 청킹 파이프라인 진입
|
|
46
|
+
- MCP `add_kb_document` 도구도 `file_content` / `mime_type` 인자를 받아 SDK 와 동일한 표면 제공
|
|
47
|
+
|
|
48
|
+
회귀 가드:
|
|
49
|
+
- `test/knowledge-add-document-from-file.test.ts` — 6 케이스 (Blob / File-like / Uint8Array / metadata /
|
|
50
|
+
default name / invalid input)
|
|
51
|
+
- backend `file_extractor` 10 케이스 + KB service `file_source_test.go` 5 케이스
|
|
52
|
+
|
|
53
|
+
영향 범위:
|
|
54
|
+
- 신규 메서드 추가 — 기존 호출자 코드 변경 불필요.
|
|
55
|
+
- `CreateDocumentRequest` 가 두 optional 필드 추가만 — 기존 사용 패턴 호환.
|
|
56
|
+
|
|
57
|
+
## [3.16.3] - 2026-05-18
|
|
58
|
+
|
|
59
|
+
### Fixed — `persistence='none'` + OAuth redirect callback 첫 새로고침 시 세션 풀림
|
|
60
|
+
|
|
61
|
+
`new ConnectBase({ persistence: 'none' })` + `cb.oauth.signIn(provider, redirectUri)` (redirect 방식)
|
|
62
|
+
로 로그인한 후 첫 새로고침에서 세션이 풀리는 회귀를 수정 (platform-issue `019e3960`, NJB 제보).
|
|
63
|
+
|
|
64
|
+
원인: OAuth 콜백의 302 응답에 동봉된 `Set-Cookie: cb_member_refresh_token=...` 가 일부 deployment /
|
|
65
|
+
브라우저 정책 / 사용자 설정 (3rd-party cookie 차단 등) 환경에서 브라우저에 저장되지 않는다.
|
|
66
|
+
`persistence='none'` 은 토큰을 메모리에만 두므로, 페이지 새로고침 후 SDK 가 `/v1/auth/re-issue` 를
|
|
67
|
+
cookie 없이 호출하게 되어 401 → `clearTokens` → 강제 로그아웃되었다.
|
|
68
|
+
|
|
69
|
+
수정:
|
|
70
|
+
- `OAuthAPI.getCallbackResult()` / `exchangeCodeFromCallback()` 가 토큰을 메모리에 적재한 직후
|
|
71
|
+
`HttpClient.bootstrapRefreshCookie()` 를 fire-and-forget 으로 호출한다. 이 호출은
|
|
72
|
+
`persistence === 'none'` 일 때만 `/v1/auth/re-issue` 를 Bearer 흐름으로 한 번 실행해 서버가
|
|
73
|
+
HttpOnly cookie 를 명시적으로 발급하도록 유도한다.
|
|
74
|
+
- 백엔드 `/v1/auth/re-issue` 가 `Authorization: Bearer` + `X-Public-Key` 조합을 SDK 호출 신호로
|
|
75
|
+
인식하면 응답에 `cb_member_refresh_token` cookie 를 함께 내려준다 (server-side 변경).
|
|
76
|
+
|
|
77
|
+
회귀 가드:
|
|
78
|
+
- `test/oauth-callback-cookie-bootstrap.test.ts` — 4 케이스 (getCallbackResult / exchangeCodeFromCallback /
|
|
79
|
+
에러 응답 / 토큰 누락)
|
|
80
|
+
- `test/http-cookie-bootstrap.test.ts` — 7 케이스 (persistence 별 동작, 비-브라우저, 5xx/401 silent 실패)
|
|
81
|
+
|
|
82
|
+
영향 범위:
|
|
83
|
+
- `persistence='none'` (기본값) 으로 OAuth redirect callback 을 쓰던 모든 SDK 사용자.
|
|
84
|
+
`persistence='localStorage'` / `'sessionStorage'` 사용자는 변경 사항 없음.
|
|
85
|
+
- 추가 1회 re-issue 호출 비용 외에 호출자 코드 변경 불필요.
|
|
86
|
+
|
|
6
87
|
## [3.16.2] - 2026-05-16
|
|
7
88
|
|
|
8
89
|
### Fixed — OAuth redirect 콜백 페이지에서 autoRestoreSession ↔ getCallbackResult rotation race
|