@optima-chat/dev-skills 0.7.6 → 0.7.7
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.
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
执行 SQL 查询,支持 CI/Stage/Prod 三个环境。
|
|
4
4
|
|
|
5
|
-
**版本**: v0.
|
|
5
|
+
**版本**: v0.6.0
|
|
6
6
|
|
|
7
7
|
## 使用场景
|
|
8
8
|
|
|
@@ -44,7 +44,6 @@ optima-query-db commerce-backend "SELECT * FROM products LIMIT 5" prod
|
|
|
44
44
|
- `service` (必需): 服务名称
|
|
45
45
|
- `commerce-backend` - 电商后端数据库
|
|
46
46
|
- `user-auth` - 用户认证数据库
|
|
47
|
-
- `mcp-host` - MCP 协调器数据库
|
|
48
47
|
- `agentic-chat` - AI 聊天服务数据库
|
|
49
48
|
- `sql` (必需): SQL 查询语句(用引号包裹)
|
|
50
49
|
- `environment` (可选): 环境,默认 ci
|
|
@@ -133,12 +132,6 @@ sshpass -p "$CI_PASSWORD" ssh -o StrictHostKeyChecking=no ${CI_USER}@${CI_HOST}
|
|
|
133
132
|
- 密码: `password123`
|
|
134
133
|
- 数据库: `userauth`
|
|
135
134
|
|
|
136
|
-
- `mcp-host`:
|
|
137
|
-
- 容器: `mcp-host-db-1`
|
|
138
|
-
- 用户: `mcp_user`
|
|
139
|
-
- 密码: `mcp_password`
|
|
140
|
-
- 数据库: `mcp_host`
|
|
141
|
-
|
|
142
135
|
- `agentic-chat`:
|
|
143
136
|
- 容器: `optima-postgres`
|
|
144
137
|
- 用户: `postgres`
|
|
@@ -158,9 +151,6 @@ sshpass -p "$CI_PASSWORD" ssh -o StrictHostKeyChecking=no ${CI_USER}@${CI_HOST}
|
|
|
158
151
|
# user-auth
|
|
159
152
|
sshpass -p "$CI_PASSWORD" ssh -o StrictHostKeyChecking=no ${CI_USER}@${CI_HOST} "docker exec user-auth-postgres-1 psql -U userauth -d userauth -c \"SELECT COUNT(*) FROM users\""
|
|
160
153
|
|
|
161
|
-
# mcp-host
|
|
162
|
-
sshpass -p "$CI_PASSWORD" ssh -o StrictHostKeyChecking=no ${CI_USER}@${CI_HOST} "docker exec mcp-host-db-1 psql -U mcp_user -d mcp_host -c \"SELECT COUNT(*) FROM sessions\""
|
|
163
|
-
|
|
164
154
|
# agentic-chat
|
|
165
155
|
sshpass -p "$CI_PASSWORD" ssh -o StrictHostKeyChecking=no ${CI_USER}@${CI_HOST} "docker exec optima-postgres psql -U postgres -d optima_chat -c \"SELECT COUNT(*) FROM conversations\""
|
|
166
156
|
```
|
|
@@ -199,59 +189,51 @@ print(f\"COMMERCE_DB_USER={secrets['COMMERCE_DB_USER']}\")
|
|
|
199
189
|
print(f\"COMMERCE_DB_PASSWORD={secrets['COMMERCE_DB_PASSWORD']}\")
|
|
200
190
|
" > /tmp/stage_db_config.sh && source /tmp/stage_db_config.sh
|
|
201
191
|
|
|
202
|
-
# 4. 建立 SSH 隧道到
|
|
203
|
-
ssh -i ~/.ssh/optima-ec2-key -f -N -L 15432
|
|
192
|
+
# 4. 建立 SSH 隧道到 Shared EC2,通过隧道访问 Stage RDS
|
|
193
|
+
ssh -i ~/.ssh/optima-ec2-key -f -N -L 15432:optima-stage-postgres.ctg866o0ehac.ap-southeast-1.rds.amazonaws.com:5432 ec2-user@13.251.46.219
|
|
204
194
|
|
|
205
195
|
# 5. 通过本地端口 15432 连接到 RDS
|
|
206
|
-
PGPASSWORD="${COMMERCE_DB_PASSWORD}" psql -h localhost -p 15432 -U "${COMMERCE_DB_USER}" -d
|
|
196
|
+
PGPASSWORD="${COMMERCE_DB_PASSWORD}" psql -h localhost -p 15432 -U "${COMMERCE_DB_USER}" -d optima_commerce -c "SELECT COUNT(*) FROM products"
|
|
207
197
|
|
|
208
198
|
# 6. 关闭 SSH 隧道(可选)
|
|
209
199
|
pkill -f "ssh.*15432:${DATABASE_HOST}:5432"
|
|
210
200
|
```
|
|
211
201
|
|
|
212
|
-
|
|
202
|
+
**完整示例(三个服务)**:
|
|
213
203
|
```bash
|
|
214
204
|
# commerce-backend
|
|
215
|
-
# 使用 COMMERCE_DB_USER, COMMERCE_DB_PASSWORD, 数据库:
|
|
205
|
+
# 使用 COMMERCE_DB_USER, COMMERCE_DB_PASSWORD, 数据库: optima_commerce
|
|
216
206
|
|
|
217
207
|
# user-auth
|
|
218
|
-
# 使用 AUTH_DB_USER, AUTH_DB_PASSWORD, 数据库:
|
|
219
|
-
|
|
220
|
-
# mcp-host
|
|
221
|
-
# 使用 MCP_DB_USER, MCP_DB_PASSWORD, 数据库: optima_stage_mcp
|
|
208
|
+
# 使用 AUTH_DB_USER, AUTH_DB_PASSWORD, 数据库: optima_auth
|
|
222
209
|
|
|
223
210
|
# agentic-chat
|
|
224
|
-
# 使用 CHAT_DB_USER, CHAT_DB_PASSWORD, 数据库:
|
|
211
|
+
# 使用 CHAT_DB_USER, CHAT_DB_PASSWORD, 数据库: optima_chat
|
|
225
212
|
```
|
|
226
213
|
|
|
227
214
|
**数据库配置映射**:
|
|
228
215
|
- `commerce-backend`:
|
|
229
|
-
- 数据库: `
|
|
216
|
+
- 数据库: `optima_commerce`
|
|
230
217
|
- 用户: Infisical `COMMERCE_DB_USER`
|
|
231
218
|
- 密码: Infisical `COMMERCE_DB_PASSWORD`
|
|
232
219
|
|
|
233
220
|
- `user-auth`:
|
|
234
|
-
- 数据库: `
|
|
221
|
+
- 数据库: `optima_auth`
|
|
235
222
|
- 用户: Infisical `AUTH_DB_USER`
|
|
236
223
|
- 密码: Infisical `AUTH_DB_PASSWORD`
|
|
237
224
|
|
|
238
|
-
- `mcp-host`:
|
|
239
|
-
- 数据库: `optima_stage_mcp`
|
|
240
|
-
- 用户: Infisical `MCP_DB_USER`
|
|
241
|
-
- 密码: Infisical `MCP_DB_PASSWORD`
|
|
242
|
-
|
|
243
225
|
- `agentic-chat`:
|
|
244
|
-
- 数据库: `
|
|
226
|
+
- 数据库: `optima_chat`
|
|
245
227
|
- 用户: Infisical `CHAT_DB_USER`
|
|
246
228
|
- 密码: Infisical `CHAT_DB_PASSWORD`
|
|
247
229
|
|
|
248
230
|
**说明**:
|
|
249
231
|
- Infisical 配置从 GitHub Variables 获取
|
|
250
232
|
- 数据库密钥从 Infisical 动态获取(项目: optima-secrets, 环境: staging, 路径: /infrastructure)
|
|
251
|
-
-
|
|
252
|
-
-
|
|
253
|
-
- SSH 隧道: 本地端口 `15432` → EC2 → RDS `5432`
|
|
254
|
-
- Stage 和 Prod
|
|
233
|
+
- Stage RDS: `optima-stage-postgres.ctg866o0ehac.ap-southeast-1.rds.amazonaws.com`
|
|
234
|
+
- Shared EC2 IP: `13.251.46.219`
|
|
235
|
+
- SSH 隧道: 本地端口 `15432` → Shared EC2 → Stage RDS `5432`
|
|
236
|
+
- Stage 和 Prod 有独立的 RDS 实例
|
|
255
237
|
|
|
256
238
|
### 2. Prod 环境(environment = "prod")
|
|
257
239
|
|
|
@@ -288,8 +270,8 @@ print(f\"COMMERCE_DB_USER={secrets['COMMERCE_DB_USER']}\")
|
|
|
288
270
|
print(f\"COMMERCE_DB_PASSWORD={secrets['COMMERCE_DB_PASSWORD']}\")
|
|
289
271
|
" > /tmp/prod_db_config.sh && source /tmp/prod_db_config.sh
|
|
290
272
|
|
|
291
|
-
# 4. 建立 SSH 隧道到
|
|
292
|
-
ssh -i ~/.ssh/optima-ec2-key -f -N -L 15433
|
|
273
|
+
# 4. 建立 SSH 隧道到 Shared EC2,通过隧道访问 Prod RDS
|
|
274
|
+
ssh -i ~/.ssh/optima-ec2-key -f -N -L 15433:optima-prod-postgres.ctg866o0ehac.ap-southeast-1.rds.amazonaws.com:5432 ec2-user@13.251.46.219
|
|
293
275
|
|
|
294
276
|
# 5. 通过本地端口 15433 连接到 RDS
|
|
295
277
|
PGPASSWORD="${COMMERCE_DB_PASSWORD}" psql -h localhost -p 15433 -U "${COMMERCE_DB_USER}" -d optima_commerce -c "SELECT COUNT(*) FROM products"
|
|
@@ -298,7 +280,7 @@ PGPASSWORD="${COMMERCE_DB_PASSWORD}" psql -h localhost -p 15433 -U "${COMMERCE_D
|
|
|
298
280
|
pkill -f "ssh.*15433:${DATABASE_HOST}:5432"
|
|
299
281
|
```
|
|
300
282
|
|
|
301
|
-
|
|
283
|
+
**完整示例(三个服务)**:
|
|
302
284
|
```bash
|
|
303
285
|
# commerce-backend
|
|
304
286
|
# 使用 COMMERCE_DB_USER, COMMERCE_DB_PASSWORD, 数据库: optima_commerce
|
|
@@ -306,9 +288,6 @@ pkill -f "ssh.*15433:${DATABASE_HOST}:5432"
|
|
|
306
288
|
# user-auth
|
|
307
289
|
# 使用 AUTH_DB_USER, AUTH_DB_PASSWORD, 数据库: optima_auth
|
|
308
290
|
|
|
309
|
-
# mcp-host
|
|
310
|
-
# 使用 MCP_DB_USER, MCP_DB_PASSWORD, 数据库: optima_mcp
|
|
311
|
-
|
|
312
291
|
# agentic-chat
|
|
313
292
|
# 使用 CHAT_DB_USER, CHAT_DB_PASSWORD, 数据库: optima_chat
|
|
314
293
|
```
|
|
@@ -324,11 +303,6 @@ pkill -f "ssh.*15433:${DATABASE_HOST}:5432"
|
|
|
324
303
|
- 用户: Infisical `AUTH_DB_USER`
|
|
325
304
|
- 密码: Infisical `AUTH_DB_PASSWORD`
|
|
326
305
|
|
|
327
|
-
- `mcp-host`:
|
|
328
|
-
- 数据库: `optima_mcp`
|
|
329
|
-
- 用户: Infisical `MCP_DB_USER`
|
|
330
|
-
- 密码: Infisical `MCP_DB_PASSWORD`
|
|
331
|
-
|
|
332
306
|
- `agentic-chat`:
|
|
333
307
|
- 数据库: `optima_chat`
|
|
334
308
|
- 用户: Infisical `CHAT_DB_USER`
|
|
@@ -337,10 +311,11 @@ pkill -f "ssh.*15433:${DATABASE_HOST}:5432"
|
|
|
337
311
|
**说明**:
|
|
338
312
|
- Infisical 配置从 GitHub Variables 获取
|
|
339
313
|
- 数据库密钥从 Infisical 动态获取(项目: optima-secrets, 环境: prod, 路径: /infrastructure)
|
|
340
|
-
-
|
|
341
|
-
-
|
|
342
|
-
- SSH 隧道: 本地端口 `15433` → EC2 → RDS `5432`
|
|
343
|
-
- Stage
|
|
314
|
+
- Prod RDS: `optima-prod-postgres.ctg866o0ehac.ap-southeast-1.rds.amazonaws.com`
|
|
315
|
+
- Shared EC2 IP: `13.251.46.219`
|
|
316
|
+
- SSH 隧道: 本地端口 `15433` → Shared EC2 → Prod RDS `5432`
|
|
317
|
+
- Stage 用端口 `15432`,Prod 用端口 `15433`
|
|
318
|
+
- Stage 和 Prod 有独立的 RDS 实例
|
|
344
319
|
|
|
345
320
|
**⚠️ 生产环境安全规则**:
|
|
346
321
|
1. **谨慎操作** - 生产数据库,避免误操作
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: "query-db"
|
|
3
|
-
description: "当用户请求查询数据库、执行SQL、查看数据、统计数据、检查数据库、查询表、数据库查询时,使用此技能。支持 CI、Stage、Prod 三个环境的 commerce-backend、user-auth、
|
|
3
|
+
description: "当用户请求查询数据库、执行SQL、查看数据、统计数据、检查数据库、查询表、数据库查询时,使用此技能。支持 CI、Stage、Prod 三个环境的 commerce-backend、user-auth、agentic-chat 服务的数据库查询。优先使用 optima-query-db CLI 工具。"
|
|
4
4
|
allowed-tools: ["Bash", "SlashCommand"]
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -73,7 +73,6 @@ optima-query-db commerce-backend "SELECT status, COUNT(*) FROM orders GROUP BY s
|
|
|
73
73
|
**常用服务**:
|
|
74
74
|
- `commerce-backend` - 电商数据库
|
|
75
75
|
- `user-auth` - 用户认证数据库
|
|
76
|
-
- `mcp-host` - MCP 协调器数据库
|
|
77
76
|
- `agentic-chat` - AI 聊天数据库
|
|
78
77
|
|
|
79
78
|
### 常用查询示例
|