@nine-lab/nine-connector 0.1.11 β†’ 0.1.13

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/README.kr.md ADDED
@@ -0,0 +1,71 @@
1
+ cat <<EOF > README.kr.md
2
+ # @nine-lab/nine-connector πŸš€
3
+
4
+ [ν•œκ΅­μ–΄ λ¬Έμ„œ(Korean)](./README.kr.md) | [English Document](./README.md)
5
+
6
+ μžμ—°μ–΄ 기반 SQL 생성 μ—”μ§„(NineQuery)κ³Ό λ°μ΄ν„°λ² μ΄μŠ€ 사이λ₯Ό μ—°κ²°ν•˜λŠ” **AI μ „μš© DB 컀λ„₯ν„° μ„œλΉ„μŠ€**μž…λ‹ˆλ‹€.
7
+
8
+ λ°μ΄ν„°λ² μ΄μŠ€μ˜ ꡬ쑰(Schema)λ₯Ό λΆ„μ„ν•˜μ—¬ AIκ°€ 졜적의 쿼리λ₯Ό 생성할 수 μžˆλ„λ‘ λΈŒλ¦Ώμ§€ 역할을 μˆ˜ν–‰ν•˜λ©°, λ³΄μ•ˆμ΄ κ²€μ¦λœ ν™˜κ²½μ—μ„œ 데이터λ₯Ό μ•ˆμ „ν•˜κ²Œ λ°˜ν™˜ν•©λ‹ˆλ‹€.
9
+
10
+ ---
11
+
12
+ ## 🌟 μ£Όμš” κΈ°λŠ₯
13
+
14
+ * **μžλ™ μ΄ˆκΈ°ν™”**: \`nine-connector init\` λͺ…λ ΉμœΌλ‘œ \`.env\` μ„€μ •κ³Ό AI ν”„λ‘¬ν”„νŠΈ ν…œν”Œλ¦Ώμ„ μ¦‰μ‹œ κ΅¬μΆ•ν•©λ‹ˆλ‹€.
15
+ * **Multi-DB 지원**: MySQL, PostgreSQL, MariaDB, Oracle λ“± λ‹€μ–‘ν•œ μ—”ν„°ν”„λΌμ΄μ¦ˆ DB ν™˜κ²½μ— λŒ€μ‘ν•©λ‹ˆλ‹€.
16
+ * **λΉ„μ¦ˆλ‹ˆμŠ€ 둜직 μ΅œμ ν™”**: ν”„λ‘¬ν”„νŠΈ 파일 μˆ˜μ •μ„ 톡해 νŠΉμ • ν…Œμ΄λΈ” 쑰회 κΈˆμ§€, 필터링 쑰건 κ°•μ œ λ“± 고객사별 맞좀 κ·œμΉ™μ„ μ μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
17
+ * **λ³΄μ•ˆ κ°€λ“œ**: λ‚΄λΆ€μ μœΌλ‘œ 였직 \`SELECT\` 쿼리만 ν—ˆμš©ν•˜μ—¬ 데이터 λ³€μ‘° 및 μœ μΆœμ„ μ›μ²œ μ°¨λ‹¨ν•©λ‹ˆλ‹€.
18
+ * **운영 μ•ˆμ •μ„±**: BigInt 직렬화 및 DB별 κ²°κ³Ό 포맷 μ •κ·œν™”λ₯Ό 톡해 데이터 일관성을 보μž₯ν•©λ‹ˆλ‹€.
19
+
20
+ ---
21
+
22
+ ## πŸ›  μ„€μΉ˜ 및 μ‚¬μš© 방법
23
+
24
+ ### 1. νŒ¨ν‚€μ§€ μ„€μΉ˜
25
+ \`\`\`bash
26
+ npm install -g @nine-lab/nine-connector
27
+ \`\`\`
28
+
29
+ ### 2. ν”„λ‘œμ νŠΈ μ΄ˆκΈ°ν™” (졜초 1회)
30
+ μ„œλ²„ μ‹€ν–‰ μ „ DB 접속 정보 및 ν”„λ‘¬ν”„νŠΈ ν™˜κ²½ ꡬ성을 μœ„ν•΄ μ‹€ν–‰ν•©λ‹ˆλ‹€.
31
+ \`\`\`bash
32
+ nine-connector init
33
+ \`\`\`
34
+
35
+ ### 3. μ„œλ²„ μ‹€ν–‰ 및 관리 (PM2 ꢌμž₯)
36
+ μ„œλ²„μ˜ μ•ˆμ •μ μΈ 기동과 둜그 관리λ₯Ό μœ„ν•΄ ν”„λ‘œμ„ΈμŠ€ 이름을 νŒ¨ν‚€μ§€λͺ…κ³Ό λ™μΌν•œ **nine-connector**둜 κ΄€λ¦¬ν•˜λŠ” 것을 ꢌμž₯ν•©λ‹ˆλ‹€.
37
+
38
+ * **μ„œλ²„ μ‹œμž‘**:
39
+ \`\`\`bash
40
+ pm2 start nine-connector --name "nine-connector"
41
+ \`\`\`
42
+ * **μƒνƒœ 확인**:
43
+ \`\`\`bash
44
+ pm2 status
45
+ \`\`\`
46
+ * **둜그 확인**:
47
+ \`\`\`bash
48
+ pm2 logs nine-connector
49
+ \`\`\`
50
+ * **μ„œλ²„ 쀑지/μž¬μ‹œμž‘**:
51
+ \`\`\`bash
52
+ pm2 stop nine-connector
53
+ pm2 restart nine-connector
54
+ \`\`\`
55
+
56
+ ---
57
+
58
+ ## πŸ“‚ ν”„λ‘œμ νŠΈ ꡬ쑰 및 μ»€μŠ€ν„°λ§ˆμ΄μ§•
59
+
60
+ 기본적으둜 \`nine-query\` μ»΄ν¬λ„ŒνŠΈμ™€ μ—°λ™λ˜μ–΄ λ™μž‘ν•˜λ©°, μ•„λž˜ νŒŒμΌλ“€μ„ 톡해 μ„ΈλΆ€ λ™μž‘μ„ μ œμ–΄ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
61
+
62
+ * **.env**: DB 접속 정보 및 AI λͺ¨λΈ(Gemini) μ„€μ •κ°’
63
+ * **prompts/table-filter.md**: μ§ˆλ¬Έμ— μ ν•©ν•œ ν…Œμ΄λΈ”μ„ μ°Ύμ•„λ‚΄λŠ” AI의 νŒλ‹¨ 둜직
64
+ * **prompts/query-generator.md**: μ‹€μ œ SQL을 μƒμ„±ν•˜λŠ” AI의 페λ₯΄μ†Œλ‚˜ 및 κ·œμΉ™
65
+ * **πŸ’‘ Tip**: 이 파일의 \`[고객사 μ „μš© λΉ„μ¦ˆλ‹ˆμŠ€ 둜직 및 λ³΄μ•ˆ κ·œμΉ™]\` μ„Ήμ…˜μ— "νŠΉμ • 민감 ν…Œμ΄λΈ” 쑰회 κΈˆμ§€"λ‚˜ "κΈ°λ³Έ μ •λ ¬/필터링 κΈ°μ€€"을 λͺ…μ‹œν•˜μ—¬ AI의 닡변을 ν†΅μ œν•  수 μžˆμŠ΅λ‹ˆλ‹€.
66
+
67
+ ---
68
+
69
+ ## πŸ“„ λΌμ΄μ„ μŠ€
70
+ MIT Β© **nine-lab**
71
+ EOF
package/README.md CHANGED
@@ -1,60 +1,72 @@
1
1
  cat <<EOF > README.md
2
2
  # @nine-lab/nine-connector πŸš€
3
3
 
4
- μžμ—°μ–΄ 기반 SQL 생성 μ—”μ§„(NineQuery)κ³Ό λ°μ΄ν„°λ² μ΄μŠ€ 사이λ₯Ό μ—°κ²°ν•˜λŠ” **AI μ „μš© DB 컀λ„₯ν„° μ„œλΉ„μŠ€**μž…λ‹ˆλ‹€.
4
+ [ν•œκ΅­μ–΄ λ¬Έμ„œ(Korean)](./README.kr.md) | [English Document](./README.md)
5
5
 
6
- μ‚¬μš©μžμ˜ μ§ˆλ¬Έμ„ λΆ„μ„ν•˜μ—¬ 졜적의 ν…Œμ΄λΈ”μ„ ν•„ν„°λ§ν•˜κ³ , μ•ˆμ „ν•œ SQL을 μƒμ„±ν•˜μ—¬ μ¦‰μ‹œ μ‹€ν–‰ κ²°κ³Όλ₯Ό λ°˜ν™˜ν•˜λŠ” 톡합 ν™˜κ²½μ„ μ œκ³΅ν•©λ‹ˆλ‹€.
6
+ **NineConnector** is an AI-specialized database connector service that bridges the gap between natural language SQL generation engines (**NineQuery**) and your database.
7
+
8
+ It analyzes database schemas to provide AI models with the necessary metadata for optimal query generation and ensures secure data retrieval within a verified environment.
7
9
 
8
10
  ---
9
11
 
10
- ## 🌟 μ£Όμš” κΈ°λŠ₯
12
+ ## 🌟 Key Features
11
13
 
12
- * **μžλ™ μ΄ˆκΈ°ν™”**: \`nine-connector init\` λͺ…λ ΉμœΌλ‘œ \`.env\` μ„€μ •κ³Ό AI ν”„λ‘¬ν”„νŠΈλ₯Ό μžλ™ κ΅¬μΆ•ν•©λ‹ˆλ‹€.
13
- * **Multi-DB 지원**: MySQL, PostgreSQL, MariaDB, Oracle λ“± λ‹€μ–‘ν•œ DB ν™˜κ²½μ— λŒ€μ‘ν•©λ‹ˆλ‹€.
14
- * **λΉ„μ¦ˆλ‹ˆμŠ€ 둜직 μ΅œμ ν™”**: ν”„λ‘¬ν”„νŠΈ 파일 μˆ˜μ •μ„ 톡해 νŠΉμ • ν…Œμ΄λΈ” 쑰회 κΈˆμ§€, 필터링 쑰건 κ°•μ œ λ“± 고객사별 맞좀 κ·œμΉ™μ„ μ μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
15
- * **λ³΄μ•ˆ κ°€λ“œ**: λ‚΄λΆ€μ μœΌλ‘œ 였직 \`SELECT\` 쿼리만 ν—ˆμš©ν•˜μ—¬ 데이터 λ³€μ‘°λ₯Ό μ°¨λ‹¨ν•©λ‹ˆλ‹€.
16
- * **데이터 νƒ€μž… μ΅œμ ν™”**: \`BigInt\` λ“± JSON λ³€ν™˜μ΄ κΉŒλ‹€λ‘œμš΄ νƒ€μž…μ„ ν¬ν•¨ν•˜μ—¬ λͺ¨λ“  데이터λ₯Ό μ•ˆμ „ν•˜κ²Œ λ°˜ν™˜ν•©λ‹ˆλ‹€.
14
+ * **Auto-Initialization**: Instantly set up your environment with \`.env\` configurations and AI prompt templates using the \`nine-connector init\` command.
15
+ * **Multi-DB Support**: Out-of-the-box compatibility with enterprise database environments including **MySQL, PostgreSQL, MariaDB, and Oracle**.
16
+ * **Business Logic Optimization**: Fine-tune AI behavior by customizing prompt files to enforce rules such as table access restrictions or mandatory filtering logic.
17
+ * **Security Guardrail**: Strictly restricts execution to \`SELECT\` queries to prevent unauthorized data modification or leakage.
18
+ * **Operational Stability**: Ensures data consistency through **BigInt serialization** and standardized result formatting across different DB dialects.
17
19
 
18
20
  ---
19
21
 
20
- ## πŸ›  μ„€μΉ˜ 및 μ‚¬μš© 방법
22
+ ## πŸ›  Installation & Quick Start
21
23
 
22
- ### 1. νŒ¨ν‚€μ§€ μ„€μΉ˜
24
+ ### 1. Install Package
25
+ Install the package globally to access the CLI commands from anywhere.
23
26
  \`\`\`bash
24
27
  npm install -g @nine-lab/nine-connector
25
28
  \`\`\`
26
29
 
27
- ### 2. ν”„λ‘œμ νŠΈ μ΄ˆκΈ°ν™”
28
- 접속 정보 μ„€μ • 및 ν”„λ‘¬ν”„νŠΈ ν…œν”Œλ¦Ώ 생성을 μœ„ν•΄ μ‹€ν–‰ν•©λ‹ˆλ‹€.
30
+ ### 2. Initialize Project (First-time setup)
31
+ Run the initialization command to configure DB connection settings and generate prompt templates.
29
32
  \`\`\`bash
30
33
  nine-connector init
31
34
  \`\`\`
32
35
 
33
- ### 3. μ„œλ²„ μ‹€ν–‰
34
- \`\`\`bash
35
- nine-connector
36
- \`\`\`
36
+ ### 3. Server Execution & Management (PM2 Recommended)
37
+ For production environments, we highly recommend using **PM2** to ensure high availability and efficient log management.
38
+
39
+ * **Start Server**:
40
+ \`\`\`bash
41
+ pm2 start nine-connector --name "nine-connector"
42
+ \`\`\`
43
+ * **Check Status**:
44
+ \`\`\`bash
45
+ pm2 status
46
+ \`\`\`
47
+ * **View Logs**:
48
+ \`\`\`bash
49
+ pm2 logs nine-connector
50
+ \`\`\`
51
+ * **Stop / Restart**:
52
+ \`\`\`bash
53
+ pm2 stop nine-connector
54
+ pm2 restart nine-connector
55
+ \`\`\`
37
56
 
38
57
  ---
39
58
 
40
- ## πŸ”Œ API λͺ…μ„Έ (Public API)
59
+ ## πŸ“‚ Project Structure & Customization
41
60
 
42
- ### 1. μžμ—°μ–΄ 질의 처리 (Main)
43
- μ‚¬μš©μžμ˜ μ§ˆλ¬Έμ„ λ°›μ•„ **ν…Œμ΄λΈ” μ„ μ • -> SQL 생성 -> 데이터 쑰회**λ₯Ό ν•œ λ²ˆμ— μˆ˜ν–‰ν•©λ‹ˆλ‹€.
44
- * **Endpoint:** \`POST /api/ask\`
45
- * **Body:** \`{ "question": "μ˜¬ν•΄ 맀좜이 κ°€μž₯ 높은 μΉ΄ν…Œκ³ λ¦¬ μ•Œλ €μ€˜" }\`
46
- * **Response:** SQLλ¬Έ, AI의 μ„€λͺ…, 그리고 쑰회된 κ²°κ³Ό 데이터λ₯Ό ν¬ν•¨ν•©λ‹ˆλ‹€.
47
-
48
- ---
61
+ Designed to work seamlessly with the \`nine-query\` component, you can control the AI's behavior via the following files:
49
62
 
50
- ## πŸ“‚ ν”„λ‘œμ νŠΈ ꡬ쑰 및 μ»€μŠ€ν„°λ§ˆμ΄μ§•
51
- * **.env**: DB 접속 및 AI λͺ¨λΈ μ„€μ •κ°’
52
- * **prompts/table-filter.md**: μ§ˆλ¬Έμ— ν•„μš”ν•œ ν…Œμ΄λΈ”μ„ κ³ λ₯΄λŠ” AI 둜직
53
- * **prompts/query-generator.md**: μ‹€μ œ SQL을 μƒμ„±ν•˜λŠ” AI 페λ₯΄μ†Œλ‚˜
54
- * **Tip**: 파일 λ‚΄ \`[고객사 μ „μš© λΉ„μ¦ˆλ‹ˆμŠ€ 둜직 및 λ³΄μ•ˆ κ·œμΉ™]\` μ„Ήμ…˜μ— "νŠΉμ • ν…Œμ΄λΈ” 쑰회 κΈˆμ§€"λ‚˜ "κΈ°λ³Έ μ •λ ¬ κΈ°μ€€" 등을 μž‘μ„±ν•˜μ—¬ AI의 λ™μž‘μ„ μ œμ–΄ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
63
+ * **.env**: Database credentials and AI model (e.g., Gemini) configurations.
64
+ * **prompts/table-filter.md**: AI logic for identifying relevant tables based on user intent.
65
+ * **prompts/query-generator.md**: Persona and rules for the SQL generation AI.
66
+ * **πŸ’‘ Tip**: Use the \`[Custom Business Logic & Security Rules]\` section in this file to enforce specific constraints, such as "Do not access sensitive user tables" or "Always apply a default sort order."
55
67
 
56
68
  ---
57
69
 
58
- ## πŸ“„ λΌμ΄μ„ μŠ€
70
+ ## πŸ“„ License
59
71
  MIT Β© **nine-lab**
60
- EOF
72
+ EOF
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nine-lab/nine-connector",
3
- "version": "0.1.11",
3
+ "version": "0.1.13",
4
4
  "description": "NineQuery AI Connector for Database",
5
5
  "main": "src/index.js",
6
6
  "type": "module",
@@ -67,7 +67,8 @@ class PoolManager {
67
67
  password: config.password,
68
68
  database: config.database,
69
69
  connectionLimit: 10,
70
- connectTimeout: 10000
70
+ connectTimeout: 10000,
71
+ ssl: config.ssl || undefined
71
72
  });
72
73
  }
73
74
 
package/src/index.js CHANGED
@@ -34,7 +34,10 @@ async function bootstrap() {
34
34
  port: Number(process.env.DB_PORT),
35
35
  user: process.env.DB_USER,
36
36
  password: process.env.DB_PASS,
37
- database: process.env.DB_NAME
37
+ database: process.env.DB_NAME,
38
+ ssl: {
39
+ rejectUnauthorized: false
40
+ }
38
41
  });
39
42
 
40
43
  // BigInt 직렬화 μ„€μ •