connectbase-client 3.3.1 → 3.5.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 +47 -0
- package/dist/connect-base.umd.js +3 -3
- package/dist/index.d.mts +79 -3
- package/dist/index.d.ts +79 -3
- package/dist/index.js +98 -5
- package/dist/index.mjs +97 -5
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,53 @@
|
|
|
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.5.0] - 2026-04-30
|
|
7
|
+
|
|
8
|
+
### Added — Knowledge Base 사용자별 격리
|
|
9
|
+
|
|
10
|
+
다중 사용자 SaaS RAG 챗봇 시나리오에서 한 KB 안의 문서를 사용자 단위로 격리할 수
|
|
11
|
+
있도록 검색 요청에 `where` 필드 + magic 토큰을 추가했습니다. **모든 격리 enforcement
|
|
12
|
+
는 서버측에서 수행** 되므로 클라이언트 변조 불가.
|
|
13
|
+
|
|
14
|
+
- **`KnowledgeSearchRequest.where?: Record<string, unknown>`** — metadata 기반 필터.
|
|
15
|
+
키 형식 `metadata.<path>` 또는 raw key. 검색 시 청크 metadata JSON 의 path 매칭.
|
|
16
|
+
- **`AUTH_MEMBER_ID_TOKEN`** (`'$auth.member_id'`) — magic 토큰 export. `where` 값에
|
|
17
|
+
사용하면 서버가 인증된 AppMember ID 로 자동 치환. AppMember JWT 가 함께 오지 않은
|
|
18
|
+
호출에서 사용 시 401.
|
|
19
|
+
|
|
20
|
+
### Behavior — Authorization 헤더로 격리 활성화
|
|
21
|
+
|
|
22
|
+
`Authorization: Bearer <appmember-jwt>` 헤더가 함께 오면 서버가 자동으로:
|
|
23
|
+
|
|
24
|
+
1. 검색 결과를 본인 `metadata.user_id` 문서로 한정
|
|
25
|
+
2. `addDocument` 시 `metadata.user_id` 자동 태깅 (클라이언트가 다른 값을 넣어도 강제 덮어씀)
|
|
26
|
+
3. `listDocuments` 가 본인 자료만 반환
|
|
27
|
+
4. `deleteDocument` 가 본인 자료만 허용 (cross-user → 403)
|
|
28
|
+
5. AI chat 의 RAG 검색 (`cb.ai.chatStream({ knowledgeBaseId })`) 도 동일 격리
|
|
29
|
+
|
|
30
|
+
헤더가 없으면 기존 동작 그대로 — 앱 단위 공유. **하위 호환 보장**.
|
|
31
|
+
|
|
32
|
+
```ts
|
|
33
|
+
import ConnectBase, { AUTH_MEMBER_ID_TOKEN } from 'connectbase-client'
|
|
34
|
+
|
|
35
|
+
// 로그인된 사용자 컨텍스트
|
|
36
|
+
const cb = new ConnectBase({
|
|
37
|
+
publicKey: 'cb_pk_...',
|
|
38
|
+
authToken: appMemberJwt, // AppMember JWT 동봉 시 격리 활성화
|
|
39
|
+
})
|
|
40
|
+
|
|
41
|
+
// 본인 자료만 검색
|
|
42
|
+
await cb.knowledge.search(kbId, { query: '내 메모' })
|
|
43
|
+
|
|
44
|
+
// 본인 자료 + 추가 필터
|
|
45
|
+
await cb.knowledge.search(kbId, {
|
|
46
|
+
query: '내 메모',
|
|
47
|
+
where: { 'metadata.tag': 'work' },
|
|
48
|
+
})
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
자세한 사용법: [docs/knowledge-base/USER_ISOLATION.md](https://github.com/connectbase-world/connectbase/blob/release/docs/knowledge-base/USER_ISOLATION.md)
|
|
52
|
+
|
|
6
53
|
## [3.3.1] - 2026-04-30
|
|
7
54
|
|
|
8
55
|
### Fixed — Docs
|