@kiyeonjeon21/datacontext 0.3.2 → 0.3.3

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.
@@ -1 +1 @@
1
- {"version":3,"file":"sqlite.d.ts","sourceRoot":"","sources":["../../src/adapters/sqlite.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAChF,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAyC,MAAM,oBAAoB,CAAC;AAGvG,qBAAa,aAAc,YAAW,eAAe;IACnD,QAAQ,CAAC,IAAI,YAAY;IAEzB,OAAO,CAAC,EAAE,CAAkC;IAC5C,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,YAAY,CAAS;gBAEjB,MAAM,EAAE,gBAAgB;IAMpC,OAAO,CAAC,aAAa;IAOf,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAcxB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAOjC,WAAW,IAAI,OAAO;IAIhB,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IA0CxC,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAyB/C,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;IA6CvE,UAAU,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAepD,eAAe,IAAI,MAAM;YAQX,UAAU;YAsDV,UAAU;YAiCV,cAAc;CAsC7B;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,aAAa,CAEnE;AAED;;GAEG;AACH,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,gBAAgB,GAAG,aAAa,CAErF"}
1
+ {"version":3,"file":"sqlite.d.ts","sourceRoot":"","sources":["../../src/adapters/sqlite.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAKH,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAChF,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAyC,MAAM,oBAAoB,CAAC;AAGvG,qBAAa,aAAc,YAAW,eAAe;IACnD,QAAQ,CAAC,IAAI,YAAY;IAEzB,OAAO,CAAC,EAAE,CAAkC;IAC5C,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,YAAY,CAAS;gBAEjB,MAAM,EAAE,gBAAgB;IAMpC,OAAO,CAAC,aAAa;IAOf,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IA4BxB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAOjC,WAAW,IAAI,OAAO;IAIhB,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IA0CxC,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAyB/C,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;IA6CvE,UAAU,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAepD,eAAe,IAAI,MAAM;YAQX,UAAU;YAsDV,UAAU;YAiCV,cAAc;CAsC7B;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,aAAa,CAEnE;AAED;;GAEG;AACH,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,gBAAgB,GAAG,aAAa,CAErF"}
@@ -18,6 +18,8 @@ exports.SQLiteAdapter = void 0;
18
18
  exports.createSQLiteAdapter = createSQLiteAdapter;
19
19
  exports.createSQLiteAdapterFromConfig = createSQLiteAdapterFromConfig;
20
20
  const better_sqlite3_1 = __importDefault(require("better-sqlite3"));
21
+ const fs_1 = require("fs");
22
+ const path_1 = require("path");
21
23
  const schema_hash_js_1 = require("../knowledge/schema-hash.js");
22
24
  class SQLiteAdapter {
23
25
  name = 'sqlite';
@@ -41,6 +43,17 @@ class SQLiteAdapter {
41
43
  return;
42
44
  }
43
45
  try {
46
+ // Resolve relative paths to absolute
47
+ let resolvedPath = this.filePath;
48
+ if (this.filePath !== ':memory:') {
49
+ resolvedPath = (0, path_1.resolve)(process.cwd(), this.filePath);
50
+ // Ensure parent directory exists
51
+ const dir = (0, path_1.dirname)(resolvedPath);
52
+ if (!(0, fs_1.existsSync)(dir)) {
53
+ (0, fs_1.mkdirSync)(dir, { recursive: true });
54
+ }
55
+ this.filePath = resolvedPath;
56
+ }
44
57
  this.db = new better_sqlite3_1.default(this.filePath, { readonly: false });
45
58
  // Enable foreign keys
46
59
  this.db.pragma('foreign_keys = ON');
@@ -1 +1 @@
1
- {"version":3,"file":"sqlite.js","sourceRoot":"","sources":["../../src/adapters/sqlite.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sqlite.js","sourceRoot":"","sources":["../../src/adapters/sqlite.ts"],"names":[],"mappings":"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"}
package/dist/cli/index.js CHANGED
@@ -32,9 +32,15 @@ function createAdapter(connectionString) {
32
32
  else if (url.startsWith('mysql://') || url.startsWith('mariadb://')) {
33
33
  return (0, mysql_js_1.createMySQLAdapter)(connectionString);
34
34
  }
35
- else if (url.startsWith('sqlite://') || url.endsWith('.sqlite') || url.endsWith('.sqlite3') || url.endsWith('.db') || url === ':memory:') {
36
- // SQLite: sqlite://path/to/db.sqlite or ./mydb.sqlite or :memory:
37
- const filePath = url.startsWith('sqlite://') ? url.replace('sqlite://', '') : connectionString;
35
+ else if (url.startsWith('sqlite://') || url.startsWith('sqlite:') || url.endsWith('.sqlite') || url.endsWith('.sqlite3') || url.endsWith('.db') || url === ':memory:') {
36
+ // SQLite: sqlite://path or sqlite:path or ./mydb.sqlite or :memory:
37
+ let filePath = connectionString;
38
+ if (url.startsWith('sqlite://')) {
39
+ filePath = connectionString.replace(/^sqlite:\/\//i, '');
40
+ }
41
+ else if (url.startsWith('sqlite:')) {
42
+ filePath = connectionString.replace(/^sqlite:/i, '');
43
+ }
38
44
  return (0, sqlite_js_1.createSQLiteAdapter)(filePath);
39
45
  }
40
46
  else {
@@ -61,17 +67,35 @@ program
61
67
  .option('--allowed-tables <tables...>', 'Only allow access to these tables')
62
68
  .action(async (connectionString, options) => {
63
69
  try {
64
- // Parse connection string
65
- const config = (0, base_js_1.parseConnectionString)(connectionString);
66
70
  // Create adapter (auto-detect database type)
67
71
  const adapter = createAdapter(connectionString);
68
72
  await adapter.connect();
73
+ // Determine database ID for knowledge store
74
+ let databaseId;
75
+ const url = connectionString.toLowerCase();
76
+ if (url.startsWith('sqlite://') || url.startsWith('sqlite:') || url.endsWith('.sqlite') || url.endsWith('.sqlite3') || url.endsWith('.db') || url === ':memory:') {
77
+ // SQLite: use filename as database ID
78
+ let filePath = connectionString;
79
+ if (url.startsWith('sqlite://')) {
80
+ filePath = connectionString.replace(/^sqlite:\/\//i, '');
81
+ }
82
+ else if (url.startsWith('sqlite:')) {
83
+ filePath = connectionString.replace(/^sqlite:/i, '');
84
+ }
85
+ const fileName = filePath.split('/').pop() || 'sqlite';
86
+ databaseId = `sqlite_${fileName.replace(/[^a-zA-Z0-9]/g, '_')}`;
87
+ }
88
+ else {
89
+ // URL-based databases (postgres, mysql)
90
+ const config = (0, base_js_1.parseConnectionString)(connectionString);
91
+ databaseId = `${config.host}_${config.database}`;
92
+ }
69
93
  // Create knowledge store
70
- const databaseId = `${config.host}_${config.database}`;
71
94
  const knowledge = (0, store_js_1.createKnowledgeStore)(databaseId);
72
95
  await knowledge.load();
73
- // Update schema hash
74
- const schema = await adapter.getSchema(options.schema);
96
+ // Update schema hash (SQLite uses 'main' schema)
97
+ const schemaName = url.startsWith('sqlite') || url.endsWith('.db') ? 'main' : options.schema;
98
+ const schema = await adapter.getSchema(schemaName);
75
99
  knowledge.updateSchemaHash(schema.schemaHash);
76
100
  await knowledge.save();
77
101
  // Create safety validator
@@ -744,18 +768,38 @@ program
744
768
  .action(async (connectionString, options) => {
745
769
  try {
746
770
  console.log('[datacontext] Starting REST API server...');
747
- // Parse connection string
748
- const config = (0, base_js_1.parseConnectionString)(connectionString);
749
771
  // Create adapter (auto-detect database type)
750
772
  const adapter = createAdapter(connectionString);
751
773
  await adapter.connect();
752
- console.log(`[datacontext] Connected to ${config.database}`);
774
+ // Determine database ID for knowledge store
775
+ let databaseId;
776
+ const url = connectionString.toLowerCase();
777
+ if (url.startsWith('sqlite://') || url.startsWith('sqlite:') || url.endsWith('.sqlite') || url.endsWith('.sqlite3') || url.endsWith('.db') || url === ':memory:') {
778
+ // SQLite: use filename as database ID
779
+ let filePath = connectionString;
780
+ if (url.startsWith('sqlite://')) {
781
+ filePath = connectionString.replace(/^sqlite:\/\//i, '');
782
+ }
783
+ else if (url.startsWith('sqlite:')) {
784
+ filePath = connectionString.replace(/^sqlite:/i, '');
785
+ }
786
+ const fileName = filePath.split('/').pop() || 'sqlite';
787
+ databaseId = `sqlite_${fileName.replace(/[^a-zA-Z0-9]/g, '_')}`;
788
+ console.log(`[datacontext] Connected to SQLite: ${filePath}`);
789
+ }
790
+ else {
791
+ // URL-based databases (postgres, mysql)
792
+ const config = (0, base_js_1.parseConnectionString)(connectionString);
793
+ databaseId = `${config.host}_${config.database}`;
794
+ console.log(`[datacontext] Connected to ${config.database}`);
795
+ }
753
796
  // Create knowledge store
754
- const databaseId = `${config.host}_${config.database}`;
755
797
  const knowledge = (0, store_js_1.createKnowledgeStore)(databaseId);
756
798
  await knowledge.load();
757
- // Update schema hash
758
- const schema = await adapter.getSchema(options.schema);
799
+ // Update schema hash (SQLite uses 'main' schema)
800
+ const isSqlite = url.startsWith('sqlite') || url.endsWith('.db') || url.endsWith('.sqlite') || url.endsWith('.sqlite3');
801
+ const schemaName = isSqlite ? 'main' : options.schema;
802
+ const schema = await adapter.getSchema(schemaName);
759
803
  knowledge.updateSchemaHash(schema.schemaHash);
760
804
  await knowledge.save();
761
805
  // Create DataContext service
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,261 @@
1
+ # Knowledge Types Guide
2
+
3
+ > DataContext의 지식 유형 정리 및 사용 가이드
4
+
5
+ ## Overview
6
+
7
+ DataContext는 4가지 유형의 지식을 관리합니다:
8
+
9
+ | 유형 | 목적 | 자동 적용 | AI 참조 |
10
+ |------|------|:--------:|:-------:|
11
+ | **Table Description** | 테이블/컬럼 설명 | ❌ | ✅ |
12
+ | **Business Glossary** | 용어 → SQL 번역 | ❌ | ✅ |
13
+ | **Business Rule** | 자동 적용 필터 | ✅ | ✅ |
14
+ | **Query Example** | 검증된 SQL 패턴 | ❌ | ✅ |
15
+
16
+ ---
17
+
18
+ ## 1. Table Description (테이블 설명)
19
+
20
+ **목적:** 테이블과 컬럼의 비즈니스 의미 설명
21
+
22
+ **사용 시점:** AI가 스키마를 이해할 때
23
+
24
+ **예시:**
25
+ ```yaml
26
+ table: users
27
+ description: "고객 계정 정보를 저장하는 테이블"
28
+ columns:
29
+ - name: status
30
+ description: "계정 상태 (0=비활성, 1=활성, 2=정지)"
31
+ - name: created_at
32
+ description: "계정 생성 일시"
33
+ ```
34
+
35
+ **관리 방법:**
36
+ - `datacontext harvest` - DB 코멘트에서 자동 수집
37
+ - `datacontext describe` - 수동 추가/수정
38
+
39
+ ---
40
+
41
+ ## 2. Business Glossary (용어 사전) ⭐
42
+
43
+ **목적:** 도메인 용어를 SQL 조건으로 번역
44
+
45
+ **사용 시점:** AI가 자연어 쿼리를 SQL로 변환할 때
46
+
47
+ **핵심 특징:**
48
+ - **선택적 적용** - AI가 컨텍스트에 맞게 판단
49
+ - **번역 도우미** - "활성 사용자"라고 하면 AI가 `status = 1` 사용
50
+ - **동의어 지원** - "active user", "활성화된 사용자" 모두 같은 의미
51
+
52
+ **예시:**
53
+ ```yaml
54
+ term: "활성 사용자"
55
+ synonyms: ["active user", "활성화된 사용자"]
56
+ definition: "status 컬럼이 1인 사용자"
57
+ sqlExpression: "status = 1"
58
+ appliesTo:
59
+ tables: ["users"]
60
+ category: status
61
+ ```
62
+
63
+ **사용 시나리오:**
64
+ ```
65
+ 사용자: "활성 사용자 목록 보여줘"
66
+ AI: SELECT * FROM users WHERE status = 1; -- Glossary 참조
67
+ ```
68
+
69
+ **관리 방법:**
70
+ - `datacontext glossary add "활성 사용자" "status가 1인 사용자" --sql "status = 1"`
71
+ - `datacontext glossary generate "활성=status 1, VIP=주문 10건 이상"`
72
+
73
+ ---
74
+
75
+ ## 3. Business Rule (비즈니스 룰) ⚠️
76
+
77
+ **목적:** 모든 쿼리에 자동으로 적용되는 필터/제약
78
+
79
+ **사용 시점:** 쿼리 실행 전 시스템이 자동 적용
80
+
81
+ **핵심 특징:**
82
+ - **강제 적용** - 사용자가 명시하지 않아도 항상 추가
83
+ - **보안/무결성** - Soft delete, Tenant isolation 등
84
+ - **우선순위** - 여러 룰이 있으면 priority 순으로 적용
85
+
86
+ **예시:**
87
+ ```yaml
88
+ name: "soft_delete_filter"
89
+ description: "삭제된 레코드 제외 (deleted_at IS NULL)"
90
+ condition: "deleted_at IS NULL"
91
+ appliesTo:
92
+ tables: ["users", "orders", "products"]
93
+ isActive: true
94
+ priority: 100
95
+ ```
96
+
97
+ **사용 시나리오:**
98
+ ```
99
+ 사용자: "SELECT * FROM users"
100
+ 시스템 적용 후: "SELECT * FROM users WHERE deleted_at IS NULL"
101
+ ```
102
+
103
+ **관리 방법:**
104
+ - VS Code: `DataContext: Add Business Rule`
105
+ - CLI: 현재 미구현 (향후 추가)
106
+
107
+ ---
108
+
109
+ ## 4. Query Example (쿼리 예시)
110
+
111
+ **목적:** 검증된 SQL 패턴 저장
112
+
113
+ **사용 시점:** AI가 유사한 쿼리 생성 시 참조
114
+
115
+ **예시:**
116
+ ```yaml
117
+ intent: "최근 30일 주문 총액 조회"
118
+ sql: |
119
+ SELECT
120
+ user_id,
121
+ SUM(total_amount) as total_spent
122
+ FROM orders
123
+ WHERE created_at >= CURRENT_DATE - INTERVAL '30 days'
124
+ GROUP BY user_id
125
+ tables: ["orders"]
126
+ isVerified: true
127
+ ```
128
+
129
+ **관리 방법:**
130
+ - VS Code: `DataContext: Add Query Example`
131
+ - 피드백에서 자동 생성 (성공한 쿼리)
132
+
133
+ ---
134
+
135
+ ## Glossary vs Rule: 언제 무엇을 사용?
136
+
137
+ ### Glossary 사용 (용어 번역)
138
+
139
+ ✅ 도메인 특화 용어가 있을 때
140
+ ✅ 사용자가 자연어로 요청할 때
141
+ ✅ 같은 개념에 여러 표현이 있을 때
142
+
143
+ **예시:**
144
+ - "활성 사용자", "VIP 고객", "최근 주문"
145
+ - 마케팅 용어, 비즈니스 지표
146
+
147
+ ### Rule 사용 (자동 적용 필터)
148
+
149
+ ✅ 항상 적용해야 하는 조건
150
+ ✅ 보안/무결성 관련
151
+ ✅ 사용자가 잊어버려도 적용되어야 함
152
+
153
+ **예시:**
154
+ - Soft delete 필터 (`deleted_at IS NULL`)
155
+ - Tenant isolation (`tenant_id = ?`)
156
+ - 권한 기반 필터 (`is_public = true OR owner_id = ?`)
157
+
158
+ ---
159
+
160
+ ## 스케일 대응 전략
161
+
162
+ ### 테이블이 많아질 때
163
+
164
+ 1. **태그로 그룹화**
165
+ ```yaml
166
+ table: user_preferences
167
+ tags: ["user", "settings"]
168
+ ```
169
+
170
+ 2. **스키마별 분리**
171
+ ```
172
+ knowledge/
173
+ ├── public/ # public schema
174
+ ├── analytics/ # analytics schema
175
+ └── admin/ # admin schema
176
+ ```
177
+
178
+ ### DB가 여러 개일 때
179
+
180
+ 1. **DB별 Knowledge 분리**
181
+ ```
182
+ .datacontext/
183
+ ├── users-db/
184
+ │ └── knowledge.json
185
+ ├── orders-db/
186
+ │ └── knowledge.json
187
+ └── analytics-db/
188
+ └── knowledge.json
189
+ ```
190
+
191
+ 2. **Cross-DB Glossary**
192
+ ```yaml
193
+ term: "고객"
194
+ appliesTo:
195
+ databases:
196
+ - name: users-db
197
+ tables: ["users"]
198
+ - name: orders-db
199
+ tables: ["customers"]
200
+ ```
201
+
202
+ ### 용어가 많아질 때
203
+
204
+ 1. **카테고리 활용**
205
+ - `status`: 상태 관련 (활성, 비활성, 정지)
206
+ - `time`: 시간 관련 (최근, 이번달, 지난주)
207
+ - `money`: 금액 관련 (매출, 비용, 이익)
208
+ - `entity`: 엔티티 타입 (고객, 상품, 주문)
209
+ - `metric`: 지표 (전환율, 이탈률)
210
+
211
+ 2. **검색 및 자동완성**
212
+ ```bash
213
+ datacontext glossary search "사용자"
214
+ # → 활성 사용자, 신규 사용자, VIP 사용자, ...
215
+ ```
216
+
217
+ ---
218
+
219
+ ## 권장 워크플로우
220
+
221
+ ### 1단계: 기본 설정 (처음 연결 시)
222
+
223
+ ```bash
224
+ # DB 메타데이터 수집
225
+ datacontext harvest
226
+
227
+ # 기본 Soft Delete 룰 추가 (해당되는 경우)
228
+ # VS Code: DataContext: Add Business Rule
229
+ ```
230
+
231
+ ### 2단계: 도메인 용어 추가 (점진적)
232
+
233
+ ```bash
234
+ # 자주 사용하는 용어부터
235
+ datacontext glossary add "활성 사용자" "status가 1인 사용자" --sql "status = 1"
236
+ datacontext glossary add "최근 주문" "30일 이내 주문" --sql "created_at > now() - interval '30 days'"
237
+
238
+ # 또는 AI로 일괄 생성
239
+ datacontext glossary generate "활성=status 1, VIP=order 10건 이상, 신규=created_at 7일 이내"
240
+ ```
241
+
242
+ ### 3단계: 사용하면서 개선
243
+
244
+ ```bash
245
+ # 쿼리 피드백 기록 (자동)
246
+ # 자주 수정되는 패턴 → Rule 또는 Glossary 추가
247
+
248
+ # 성공한 쿼리 → Query Example로 저장
249
+ ```
250
+
251
+ ---
252
+
253
+ ## 요약
254
+
255
+ | 질문 | 답 |
256
+ |------|-----|
257
+ | "AI가 용어를 이해하게 하고 싶다" | → **Glossary** |
258
+ | "모든 쿼리에 조건을 자동 추가하고 싶다" | → **Rule** |
259
+ | "테이블 의미를 설명하고 싶다" | → **Table Description** |
260
+ | "좋은 쿼리 패턴을 저장하고 싶다" | → **Query Example** |
261
+
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kiyeonjeon21/datacontext",
3
- "version": "0.3.2",
3
+ "version": "0.3.3",
4
4
  "description": "AI-native database context layer - Make AI understand your data better",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -0,0 +1,75 @@
1
+ #!/bin/bash
2
+ # Create SQLite test database with sample data
3
+
4
+ set -e
5
+
6
+ DB_PATH="${1:-./test-sqlite.db}"
7
+
8
+ echo "Creating SQLite test database at: $DB_PATH"
9
+
10
+ # Remove existing
11
+ rm -f "$DB_PATH"
12
+
13
+ # Create database and tables
14
+ sqlite3 "$DB_PATH" << 'EOF'
15
+ -- Users table
16
+ CREATE TABLE users (
17
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
18
+ name TEXT NOT NULL,
19
+ email TEXT UNIQUE NOT NULL,
20
+ status INTEGER DEFAULT 1,
21
+ created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
22
+ deleted_at DATETIME
23
+ );
24
+
25
+ -- Products table
26
+ CREATE TABLE products (
27
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
28
+ name TEXT NOT NULL,
29
+ price REAL NOT NULL,
30
+ inventory INTEGER DEFAULT 0,
31
+ category TEXT,
32
+ created_at DATETIME DEFAULT CURRENT_TIMESTAMP
33
+ );
34
+
35
+ -- Orders table
36
+ CREATE TABLE orders (
37
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
38
+ user_id INTEGER REFERENCES users(id),
39
+ product_id INTEGER REFERENCES products(id),
40
+ quantity INTEGER NOT NULL,
41
+ total_amount REAL NOT NULL,
42
+ status TEXT DEFAULT 'pending',
43
+ created_at DATETIME DEFAULT CURRENT_TIMESTAMP
44
+ );
45
+
46
+ -- Insert sample data
47
+ INSERT INTO users (name, email, status) VALUES
48
+ ('Alice', 'alice@example.com', 1),
49
+ ('Bob', 'bob@example.com', 1),
50
+ ('Charlie', 'charlie@example.com', 0),
51
+ ('Diana', 'diana@example.com', 2);
52
+
53
+ INSERT INTO products (name, price, inventory, category) VALUES
54
+ ('Laptop', 999.99, 50, 'electronics'),
55
+ ('Mouse', 29.99, 200, 'electronics'),
56
+ ('Keyboard', 79.99, 100, 'electronics'),
57
+ ('Desk Chair', 299.99, 30, 'furniture');
58
+
59
+ INSERT INTO orders (user_id, product_id, quantity, total_amount, status) VALUES
60
+ (1, 1, 1, 999.99, 'delivered'),
61
+ (1, 2, 2, 59.98, 'delivered'),
62
+ (2, 3, 1, 79.99, 'shipped'),
63
+ (2, 4, 1, 299.99, 'pending');
64
+
65
+ SELECT 'SQLite test database created!' as result;
66
+ .tables
67
+ EOF
68
+
69
+ echo ""
70
+ echo "Database created: $DB_PATH"
71
+ echo ""
72
+ echo "To start DataContext server:"
73
+ echo " npx @kiyeonjeon21/datacontext serve sqlite:$DB_PATH --port 3000"
74
+ echo ""
75
+
@@ -0,0 +1,324 @@
1
+ #!/bin/bash
2
+ # Test Databases Setup Script
3
+ # Uses Podman to run PostgreSQL, MySQL, and MariaDB for testing
4
+
5
+ set -e
6
+
7
+ # Colors
8
+ RED='\033[0;31m'
9
+ GREEN='\033[0;32m'
10
+ YELLOW='\033[1;33m'
11
+ NC='\033[0m' # No Color
12
+
13
+ echo -e "${GREEN}=== DataContext Database Test Environment ===${NC}"
14
+
15
+ # Check if podman is available
16
+ if ! command -v podman &> /dev/null; then
17
+ echo -e "${RED}Error: podman is not installed${NC}"
18
+ echo "Install with: brew install podman"
19
+ exit 1
20
+ fi
21
+
22
+ # Configuration
23
+ POSTGRES_PORT=5433
24
+ MYSQL_PORT=3307
25
+ MARIADB_PORT=3308
26
+ NETWORK_NAME="datacontext-test"
27
+
28
+ # Create network if not exists
29
+ podman network exists $NETWORK_NAME 2>/dev/null || podman network create $NETWORK_NAME
30
+
31
+ # Function to start PostgreSQL
32
+ start_postgres() {
33
+ echo -e "\n${YELLOW}Starting PostgreSQL...${NC}"
34
+
35
+ # Stop if running
36
+ podman rm -f datacontext-postgres 2>/dev/null || true
37
+
38
+ podman run -d \
39
+ --name datacontext-postgres \
40
+ --network $NETWORK_NAME \
41
+ -e POSTGRES_USER=postgres \
42
+ -e POSTGRES_PASSWORD=postgres \
43
+ -e POSTGRES_DB=datacontext_test \
44
+ -p $POSTGRES_PORT:5432 \
45
+ postgres:15-alpine
46
+
47
+ echo -e "${GREEN}PostgreSQL started on port $POSTGRES_PORT${NC}"
48
+ echo "Connection: postgres://postgres:postgres@localhost:$POSTGRES_PORT/datacontext_test"
49
+ }
50
+
51
+ # Function to start MySQL
52
+ start_mysql() {
53
+ echo -e "\n${YELLOW}Starting MySQL...${NC}"
54
+
55
+ # Stop if running
56
+ podman rm -f datacontext-mysql 2>/dev/null || true
57
+
58
+ podman run -d \
59
+ --name datacontext-mysql \
60
+ --network $NETWORK_NAME \
61
+ -e MYSQL_ROOT_PASSWORD=mysql \
62
+ -e MYSQL_DATABASE=datacontext_test \
63
+ -e MYSQL_USER=mysql \
64
+ -e MYSQL_PASSWORD=mysql \
65
+ -p $MYSQL_PORT:3306 \
66
+ mysql:8.0
67
+
68
+ echo -e "${GREEN}MySQL started on port $MYSQL_PORT${NC}"
69
+ echo "Connection: mysql://mysql:mysql@localhost:$MYSQL_PORT/datacontext_test"
70
+ }
71
+
72
+ # Function to start MariaDB
73
+ start_mariadb() {
74
+ echo -e "\n${YELLOW}Starting MariaDB...${NC}"
75
+
76
+ # Stop if running
77
+ podman rm -f datacontext-mariadb 2>/dev/null || true
78
+
79
+ podman run -d \
80
+ --name datacontext-mariadb \
81
+ --network $NETWORK_NAME \
82
+ -e MARIADB_ROOT_PASSWORD=mariadb \
83
+ -e MARIADB_DATABASE=datacontext_test \
84
+ -e MARIADB_USER=mariadb \
85
+ -e MARIADB_PASSWORD=mariadb \
86
+ -p $MARIADB_PORT:3306 \
87
+ mariadb:10.11
88
+
89
+ echo -e "${GREEN}MariaDB started on port $MARIADB_PORT${NC}"
90
+ echo "Connection: mysql://mariadb:mariadb@localhost:$MARIADB_PORT/datacontext_test"
91
+ }
92
+
93
+ # Function to wait for DB
94
+ wait_for_db() {
95
+ local name=$1
96
+ local port=$2
97
+ local max_attempts=30
98
+ local attempt=0
99
+
100
+ echo -e "${YELLOW}Waiting for $name to be ready...${NC}"
101
+
102
+ while [ $attempt -lt $max_attempts ]; do
103
+ if podman exec $name echo "SELECT 1" 2>/dev/null; then
104
+ echo -e "${GREEN}$name is ready!${NC}"
105
+ return 0
106
+ fi
107
+ attempt=$((attempt + 1))
108
+ sleep 1
109
+ done
110
+
111
+ echo -e "${RED}$name failed to start${NC}"
112
+ return 1
113
+ }
114
+
115
+ # Function to create test data
116
+ create_test_data() {
117
+ local db_type=$1
118
+ local container=$2
119
+
120
+ echo -e "\n${YELLOW}Creating test data for $db_type...${NC}"
121
+
122
+ case $db_type in
123
+ postgres)
124
+ podman exec -i $container psql -U postgres -d datacontext_test << 'EOF'
125
+ -- Users table
126
+ CREATE TABLE IF NOT EXISTS users (
127
+ id SERIAL PRIMARY KEY,
128
+ name VARCHAR(100) NOT NULL,
129
+ email VARCHAR(255) UNIQUE NOT NULL,
130
+ status INTEGER DEFAULT 1,
131
+ created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
132
+ deleted_at TIMESTAMP
133
+ );
134
+
135
+ COMMENT ON TABLE users IS 'User accounts table';
136
+ COMMENT ON COLUMN users.status IS 'Account status: 0=inactive, 1=active, 2=suspended';
137
+
138
+ -- Products table
139
+ CREATE TABLE IF NOT EXISTS products (
140
+ id SERIAL PRIMARY KEY,
141
+ name VARCHAR(200) NOT NULL,
142
+ price DECIMAL(10,2) NOT NULL,
143
+ inventory INTEGER DEFAULT 0,
144
+ category VARCHAR(50),
145
+ created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
146
+ );
147
+
148
+ COMMENT ON TABLE products IS 'Product catalog';
149
+
150
+ -- Orders table
151
+ CREATE TABLE IF NOT EXISTS orders (
152
+ id SERIAL PRIMARY KEY,
153
+ user_id INTEGER REFERENCES users(id),
154
+ product_id INTEGER REFERENCES products(id),
155
+ quantity INTEGER NOT NULL,
156
+ total_amount DECIMAL(10,2) NOT NULL,
157
+ status VARCHAR(20) DEFAULT 'pending',
158
+ created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
159
+ );
160
+
161
+ COMMENT ON TABLE orders IS 'Customer orders';
162
+ COMMENT ON COLUMN orders.status IS 'Order status: pending, paid, shipped, delivered, cancelled';
163
+
164
+ -- Insert sample data
165
+ INSERT INTO users (name, email, status) VALUES
166
+ ('Alice', 'alice@example.com', 1),
167
+ ('Bob', 'bob@example.com', 1),
168
+ ('Charlie', 'charlie@example.com', 0),
169
+ ('Diana', 'diana@example.com', 2)
170
+ ON CONFLICT DO NOTHING;
171
+
172
+ INSERT INTO products (name, price, inventory, category) VALUES
173
+ ('Laptop', 999.99, 50, 'electronics'),
174
+ ('Mouse', 29.99, 200, 'electronics'),
175
+ ('Keyboard', 79.99, 100, 'electronics'),
176
+ ('Desk Chair', 299.99, 30, 'furniture')
177
+ ON CONFLICT DO NOTHING;
178
+
179
+ INSERT INTO orders (user_id, product_id, quantity, total_amount, status) VALUES
180
+ (1, 1, 1, 999.99, 'delivered'),
181
+ (1, 2, 2, 59.98, 'delivered'),
182
+ (2, 3, 1, 79.99, 'shipped'),
183
+ (2, 4, 1, 299.99, 'pending')
184
+ ON CONFLICT DO NOTHING;
185
+
186
+ SELECT 'PostgreSQL test data created!' as result;
187
+ EOF
188
+ ;;
189
+
190
+ mysql)
191
+ sleep 10 # MySQL takes longer to start
192
+ podman exec -i $container mysql -umysql -pmysql datacontext_test << 'EOF'
193
+ -- Users table
194
+ CREATE TABLE IF NOT EXISTS users (
195
+ id INT AUTO_INCREMENT PRIMARY KEY,
196
+ name VARCHAR(100) NOT NULL,
197
+ email VARCHAR(255) UNIQUE NOT NULL,
198
+ status INT DEFAULT 1,
199
+ created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
200
+ deleted_at TIMESTAMP NULL
201
+ ) COMMENT='User accounts table';
202
+
203
+ -- Products table
204
+ CREATE TABLE IF NOT EXISTS products (
205
+ id INT AUTO_INCREMENT PRIMARY KEY,
206
+ name VARCHAR(200) NOT NULL,
207
+ price DECIMAL(10,2) NOT NULL,
208
+ inventory INT DEFAULT 0,
209
+ category VARCHAR(50),
210
+ created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
211
+ ) COMMENT='Product catalog';
212
+
213
+ -- Orders table
214
+ CREATE TABLE IF NOT EXISTS orders (
215
+ id INT AUTO_INCREMENT PRIMARY KEY,
216
+ user_id INT,
217
+ product_id INT,
218
+ quantity INT NOT NULL,
219
+ total_amount DECIMAL(10,2) NOT NULL,
220
+ status VARCHAR(20) DEFAULT 'pending',
221
+ created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
222
+ FOREIGN KEY (user_id) REFERENCES users(id),
223
+ FOREIGN KEY (product_id) REFERENCES products(id)
224
+ ) COMMENT='Customer orders';
225
+
226
+ -- Insert sample data
227
+ INSERT IGNORE INTO users (name, email, status) VALUES
228
+ ('Alice', 'alice@example.com', 1),
229
+ ('Bob', 'bob@example.com', 1),
230
+ ('Charlie', 'charlie@example.com', 0),
231
+ ('Diana', 'diana@example.com', 2);
232
+
233
+ INSERT IGNORE INTO products (name, price, inventory, category) VALUES
234
+ ('Laptop', 999.99, 50, 'electronics'),
235
+ ('Mouse', 29.99, 200, 'electronics'),
236
+ ('Keyboard', 79.99, 100, 'electronics'),
237
+ ('Desk Chair', 299.99, 30, 'furniture');
238
+
239
+ INSERT IGNORE INTO orders (user_id, product_id, quantity, total_amount, status) VALUES
240
+ (1, 1, 1, 999.99, 'delivered'),
241
+ (1, 2, 2, 59.98, 'delivered'),
242
+ (2, 3, 1, 79.99, 'shipped'),
243
+ (2, 4, 1, 299.99, 'pending');
244
+
245
+ SELECT 'MySQL test data created!' as result;
246
+ EOF
247
+ ;;
248
+ esac
249
+
250
+ echo -e "${GREEN}Test data created for $db_type${NC}"
251
+ }
252
+
253
+ # Function to stop all
254
+ stop_all() {
255
+ echo -e "\n${YELLOW}Stopping all test databases...${NC}"
256
+ podman rm -f datacontext-postgres datacontext-mysql datacontext-mariadb 2>/dev/null || true
257
+ echo -e "${GREEN}All databases stopped${NC}"
258
+ }
259
+
260
+ # Function to show status
261
+ show_status() {
262
+ echo -e "\n${GREEN}=== Database Status ===${NC}"
263
+ podman ps --filter "name=datacontext-" --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}"
264
+ }
265
+
266
+ # Function to show connection strings
267
+ show_connections() {
268
+ echo -e "\n${GREEN}=== Connection Strings ===${NC}"
269
+ echo ""
270
+ echo -e "${YELLOW}PostgreSQL:${NC}"
271
+ echo " postgres://postgres:postgres@localhost:$POSTGRES_PORT/datacontext_test"
272
+ echo ""
273
+ echo -e "${YELLOW}MySQL:${NC}"
274
+ echo " mysql://mysql:mysql@localhost:$MYSQL_PORT/datacontext_test"
275
+ echo ""
276
+ echo -e "${YELLOW}MariaDB:${NC}"
277
+ echo " mysql://mariadb:mariadb@localhost:$MARIADB_PORT/datacontext_test"
278
+ echo ""
279
+ echo -e "${GREEN}=== DataContext Commands ===${NC}"
280
+ echo ""
281
+ echo "# Start servers"
282
+ echo "npx @kiyeonjeon21/datacontext serve postgres://postgres:postgres@localhost:$POSTGRES_PORT/datacontext_test --port 3000"
283
+ echo "npx @kiyeonjeon21/datacontext serve mysql://mysql:mysql@localhost:$MYSQL_PORT/datacontext_test --port 3001"
284
+ echo ""
285
+ }
286
+
287
+ # Parse arguments
288
+ case "${1:-start}" in
289
+ start)
290
+ start_postgres
291
+ start_mysql
292
+ sleep 15 # Wait for DBs to be ready
293
+ create_test_data postgres datacontext-postgres
294
+ create_test_data mysql datacontext-mysql
295
+ show_status
296
+ show_connections
297
+ ;;
298
+ postgres)
299
+ start_postgres
300
+ sleep 5
301
+ create_test_data postgres datacontext-postgres
302
+ show_connections
303
+ ;;
304
+ mysql)
305
+ start_mysql
306
+ sleep 15
307
+ create_test_data mysql datacontext-mysql
308
+ show_connections
309
+ ;;
310
+ stop)
311
+ stop_all
312
+ ;;
313
+ status)
314
+ show_status
315
+ show_connections
316
+ ;;
317
+ *)
318
+ echo "Usage: $0 {start|postgres|mysql|stop|status}"
319
+ exit 1
320
+ ;;
321
+ esac
322
+
323
+ echo -e "\n${GREEN}Done!${NC}"
324
+
File without changes
@@ -11,6 +11,8 @@
11
11
  */
12
12
 
13
13
  import Database from 'better-sqlite3';
14
+ import { existsSync, mkdirSync } from 'fs';
15
+ import { dirname, resolve } from 'path';
14
16
  import type { DatabaseAdapter, QueryResult, ConnectionConfig } from './base.js';
15
17
  import type { SchemaInfo, TableInfo, ColumnInfo, IndexInfo, ForeignKeyInfo } from '../schema/types.js';
16
18
  import { hashSchema } from '../knowledge/schema-hash.js';
@@ -41,6 +43,20 @@ export class SQLiteAdapter implements DatabaseAdapter {
41
43
  }
42
44
 
43
45
  try {
46
+ // Resolve relative paths to absolute
47
+ let resolvedPath = this.filePath;
48
+ if (this.filePath !== ':memory:') {
49
+ resolvedPath = resolve(process.cwd(), this.filePath);
50
+
51
+ // Ensure parent directory exists
52
+ const dir = dirname(resolvedPath);
53
+ if (!existsSync(dir)) {
54
+ mkdirSync(dir, { recursive: true });
55
+ }
56
+
57
+ this.filePath = resolvedPath;
58
+ }
59
+
44
60
  this.db = new Database(this.filePath, { readonly: false });
45
61
  // Enable foreign keys
46
62
  this.db.pragma('foreign_keys = ON');
package/src/cli/index.ts CHANGED
@@ -34,9 +34,14 @@ function createAdapter(connectionString: string): DatabaseAdapter {
34
34
  return createPostgresAdapter(connectionString);
35
35
  } else if (url.startsWith('mysql://') || url.startsWith('mariadb://')) {
36
36
  return createMySQLAdapter(connectionString);
37
- } else if (url.startsWith('sqlite://') || url.endsWith('.sqlite') || url.endsWith('.sqlite3') || url.endsWith('.db') || url === ':memory:') {
38
- // SQLite: sqlite://path/to/db.sqlite or ./mydb.sqlite or :memory:
39
- const filePath = url.startsWith('sqlite://') ? url.replace('sqlite://', '') : connectionString;
37
+ } else if (url.startsWith('sqlite://') || url.startsWith('sqlite:') || url.endsWith('.sqlite') || url.endsWith('.sqlite3') || url.endsWith('.db') || url === ':memory:') {
38
+ // SQLite: sqlite://path or sqlite:path or ./mydb.sqlite or :memory:
39
+ let filePath = connectionString;
40
+ if (url.startsWith('sqlite://')) {
41
+ filePath = connectionString.replace(/^sqlite:\/\//i, '');
42
+ } else if (url.startsWith('sqlite:')) {
43
+ filePath = connectionString.replace(/^sqlite:/i, '');
44
+ }
40
45
  return createSQLiteAdapter(filePath);
41
46
  } else {
42
47
  throw new Error(
@@ -65,20 +70,37 @@ program
65
70
  .option('--allowed-tables <tables...>', 'Only allow access to these tables')
66
71
  .action(async (connectionString: string, options) => {
67
72
  try {
68
- // Parse connection string
69
- const config = parseConnectionString(connectionString);
70
-
71
73
  // Create adapter (auto-detect database type)
72
74
  const adapter = createAdapter(connectionString);
73
75
  await adapter.connect();
74
76
 
77
+ // Determine database ID for knowledge store
78
+ let databaseId: string;
79
+ const url = connectionString.toLowerCase();
80
+
81
+ if (url.startsWith('sqlite://') || url.startsWith('sqlite:') || url.endsWith('.sqlite') || url.endsWith('.sqlite3') || url.endsWith('.db') || url === ':memory:') {
82
+ // SQLite: use filename as database ID
83
+ let filePath = connectionString;
84
+ if (url.startsWith('sqlite://')) {
85
+ filePath = connectionString.replace(/^sqlite:\/\//i, '');
86
+ } else if (url.startsWith('sqlite:')) {
87
+ filePath = connectionString.replace(/^sqlite:/i, '');
88
+ }
89
+ const fileName = filePath.split('/').pop() || 'sqlite';
90
+ databaseId = `sqlite_${fileName.replace(/[^a-zA-Z0-9]/g, '_')}`;
91
+ } else {
92
+ // URL-based databases (postgres, mysql)
93
+ const config = parseConnectionString(connectionString);
94
+ databaseId = `${config.host}_${config.database}`;
95
+ }
96
+
75
97
  // Create knowledge store
76
- const databaseId = `${config.host}_${config.database}`;
77
98
  const knowledge = createKnowledgeStore(databaseId);
78
99
  await knowledge.load();
79
100
 
80
- // Update schema hash
81
- const schema = await adapter.getSchema(options.schema);
101
+ // Update schema hash (SQLite uses 'main' schema)
102
+ const schemaName = url.startsWith('sqlite') || url.endsWith('.db') ? 'main' : options.schema;
103
+ const schema = await adapter.getSchema(schemaName);
82
104
  knowledge.updateSchemaHash(schema.schemaHash);
83
105
  await knowledge.save();
84
106
 
@@ -836,21 +858,40 @@ program
836
858
  try {
837
859
  console.log('[datacontext] Starting REST API server...');
838
860
 
839
- // Parse connection string
840
- const config = parseConnectionString(connectionString);
841
-
842
861
  // Create adapter (auto-detect database type)
843
862
  const adapter = createAdapter(connectionString);
844
863
  await adapter.connect();
845
- console.log(`[datacontext] Connected to ${config.database}`);
864
+
865
+ // Determine database ID for knowledge store
866
+ let databaseId: string;
867
+ const url = connectionString.toLowerCase();
868
+
869
+ if (url.startsWith('sqlite://') || url.startsWith('sqlite:') || url.endsWith('.sqlite') || url.endsWith('.sqlite3') || url.endsWith('.db') || url === ':memory:') {
870
+ // SQLite: use filename as database ID
871
+ let filePath = connectionString;
872
+ if (url.startsWith('sqlite://')) {
873
+ filePath = connectionString.replace(/^sqlite:\/\//i, '');
874
+ } else if (url.startsWith('sqlite:')) {
875
+ filePath = connectionString.replace(/^sqlite:/i, '');
876
+ }
877
+ const fileName = filePath.split('/').pop() || 'sqlite';
878
+ databaseId = `sqlite_${fileName.replace(/[^a-zA-Z0-9]/g, '_')}`;
879
+ console.log(`[datacontext] Connected to SQLite: ${filePath}`);
880
+ } else {
881
+ // URL-based databases (postgres, mysql)
882
+ const config = parseConnectionString(connectionString);
883
+ databaseId = `${config.host}_${config.database}`;
884
+ console.log(`[datacontext] Connected to ${config.database}`);
885
+ }
846
886
 
847
887
  // Create knowledge store
848
- const databaseId = `${config.host}_${config.database}`;
849
888
  const knowledge = createKnowledgeStore(databaseId);
850
889
  await knowledge.load();
851
890
 
852
- // Update schema hash
853
- const schema = await adapter.getSchema(options.schema);
891
+ // Update schema hash (SQLite uses 'main' schema)
892
+ const isSqlite = url.startsWith('sqlite') || url.endsWith('.db') || url.endsWith('.sqlite') || url.endsWith('.sqlite3');
893
+ const schemaName = isSqlite ? 'main' : options.schema;
894
+ const schema = await adapter.getSchema(schemaName);
854
895
  knowledge.updateSchemaHash(schema.schemaHash);
855
896
  await knowledge.save();
856
897
 
package/test-sqlite.db ADDED
Binary file