@nine-lab/nine-connector 0.1.12 β†’ 0.1.14

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,51 +1,54 @@
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
- λ°μ΄ν„°λ² μ΄μŠ€μ˜ ꡬ쑰(Schema)λ₯Ό λΆ„μ„ν•˜μ—¬ AIκ°€ 졜적의 쿼리λ₯Ό 생성할 수 μžˆλ„λ‘ λΈŒλ¦Ώμ§€ 역할을 μˆ˜ν–‰ν•˜λ©°, λ³΄μ•ˆμ΄ κ²€μ¦λœ ν™˜κ²½μ—μ„œ 데이터λ₯Ό μ•ˆμ „ν•˜κ²Œ λ°˜ν™˜ν•©λ‹ˆλ‹€.
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 직렬화 및 DB별 κ²°κ³Ό 포맷 μ •κ·œν™”λ₯Ό 톡해 데이터 일관성을 보μž₯ν•©λ‹ˆλ‹€.
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. ν”„λ‘œμ νŠΈ μ΄ˆκΈ°ν™” (졜초 1회)
28
- μ„œλ²„ μ‹€ν–‰ μ „ DB 접속 정보 및 ν”„λ‘¬ν”„νŠΈ ν™˜κ²½ ꡬ성을 μœ„ν•΄ μ‹€ν–‰ν•©λ‹ˆλ‹€.
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. μ„œλ²„ μ‹€ν–‰ 및 관리 (PM2 ꢌμž₯)
34
- μ„œλ²„μ˜ μ•ˆμ •μ μΈ 기동과 둜그 관리λ₯Ό μœ„ν•΄ ν”„λ‘œμ„ΈμŠ€ 이름을 νŒ¨ν‚€μ§€λͺ…κ³Ό λ™μΌν•œ **nine-connector**둜 κ΄€λ¦¬ν•˜λŠ” 것을 ꢌμž₯ν•©λ‹ˆλ‹€.
36
+ ### 3. Server Execution & Management (PM2 Recommended)
37
+ For production environments, we highly recommend using **PM2** to ensure high availability and efficient log management.
35
38
 
36
- * **μ„œλ²„ μ‹œμž‘**:
39
+ * **Start Server**:
37
40
  \`\`\`bash
38
41
  pm2 start nine-connector --name "nine-connector"
39
42
  \`\`\`
40
- * **μƒνƒœ 확인**:
43
+ * **Check Status**:
41
44
  \`\`\`bash
42
45
  pm2 status
43
46
  \`\`\`
44
- * **둜그 확인**:
47
+ * **View Logs**:
45
48
  \`\`\`bash
46
49
  pm2 logs nine-connector
47
50
  \`\`\`
48
- * **μ„œλ²„ 쀑지/μž¬μ‹œμž‘**:
51
+ * **Stop / Restart**:
49
52
  \`\`\`bash
50
53
  pm2 stop nine-connector
51
54
  pm2 restart nine-connector
@@ -53,17 +56,17 @@ nine-connector init
53
56
 
54
57
  ---
55
58
 
56
- ## πŸ“‚ ν”„λ‘œμ νŠΈ ꡬ쑰 및 μ»€μŠ€ν„°λ§ˆμ΄μ§•
59
+ ## πŸ“‚ Project Structure & Customization
57
60
 
58
- 기본적으둜 \`nine-query\` μ»΄ν¬λ„ŒνŠΈμ™€ μ—°λ™λ˜μ–΄ λ™μž‘ν•˜λ©°, μ•„λž˜ νŒŒμΌλ“€μ„ 톡해 μ„ΈλΆ€ λ™μž‘μ„ μ œμ–΄ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
61
+ Designed to work seamlessly with the \`nine-query\` component, you can control the AI's behavior via the following files:
59
62
 
60
- * **.env**: DB 접속 정보 및 AI λͺ¨λΈ(Gemini) μ„€μ •κ°’
61
- * **prompts/table-filter.md**: μ§ˆλ¬Έμ— μ ν•©ν•œ ν…Œμ΄λΈ”μ„ μ°Ύμ•„λ‚΄λŠ” AI의 νŒλ‹¨ 둜직
62
- * **prompts/query-generator.md**: μ‹€μ œ SQL을 μƒμ„±ν•˜λŠ” AI의 페λ₯΄μ†Œλ‚˜ 및 κ·œμΉ™
63
- * **πŸ’‘ 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."
64
67
 
65
68
  ---
66
69
 
67
- ## πŸ“„ λΌμ΄μ„ μŠ€
70
+ ## πŸ“„ License
68
71
  MIT Β© **nine-lab**
69
72
  EOF
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nine-lab/nine-connector",
3
- "version": "0.1.12",
3
+ "version": "0.1.14",
4
4
  "description": "NineQuery AI Connector for Database",
5
5
  "main": "src/index.js",
6
6
  "type": "module",
@@ -16,7 +16,8 @@
16
16
  3. 쿼리문 μ•ˆμ— λ§ˆν¬λ‹€μš΄ μ½”λ“œ 블둝(```sql)을 ν¬ν•¨ν•˜μ§€ λ§ˆμ„Έμš”.
17
17
 
18
18
  [고객사 μ „μš© λΉ„μ¦ˆλ‹ˆμŠ€ 둜직 및 λ³΄μ•ˆ κ·œμΉ™]
19
- -
19
+ - μ‚¬μš©μžκ°€ νŠΉμ • 단어(예: μ§€λͺ…, μƒν˜Έλͺ…, 기술λͺ…)λ₯Ό μ–ΈκΈ‰ν•˜λ©° 쑰회λ₯Ό μš”μ²­ν•  경우,
20
+ κ³ μ •κ°’ 비ꡐ(=) λŒ€μ‹  λ°˜λ“œμ‹œ 'LIKE %검색어%' νŒ¨ν„΄μ„ μ‚¬μš©ν•˜μ„Έμš”.
20
21
  -
21
22
  (여기에 "νŠΉμ • ν…Œμ΄λΈ” 쑰회 κΈˆμ§€"λ‚˜ "κΈ°λ³Έ μ •λ ¬ κΈ°μ€€" λ“± μ»€μŠ€ν…€ κ·œμΉ™μ„ μž‘μ„±ν•˜μ„Έμš”.)
22
23
 
@@ -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 직렬화 μ„€μ •