clawsql 0.2.4 → 0.2.6

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.
Files changed (59) hide show
  1. package/README.md +67 -16
  2. package/dist/api/schemas/index.d.ts +20 -20
  3. package/dist/app.d.ts.map +1 -1
  4. package/dist/app.js +12 -0
  5. package/dist/app.js.map +1 -1
  6. package/dist/bin/clawsql.js +0 -0
  7. package/dist/cli/commands/clusters.d.ts +1 -1
  8. package/dist/cli/commands/clusters.d.ts.map +1 -1
  9. package/dist/cli/commands/clusters.js +291 -56
  10. package/dist/cli/commands/clusters.js.map +1 -1
  11. package/dist/cli/commands/templates.d.ts +11 -0
  12. package/dist/cli/commands/templates.d.ts.map +1 -0
  13. package/dist/cli/commands/templates.js +206 -0
  14. package/dist/cli/commands/templates.js.map +1 -0
  15. package/dist/cli/formatter.d.ts +24 -0
  16. package/dist/cli/formatter.d.ts.map +1 -1
  17. package/dist/cli/formatter.js +22 -0
  18. package/dist/cli/formatter.js.map +1 -1
  19. package/dist/cli/index.d.ts.map +1 -1
  20. package/dist/cli/index.js +2 -0
  21. package/dist/cli/index.js.map +1 -1
  22. package/dist/cli/utils/args.d.ts +25 -0
  23. package/dist/cli/utils/args.d.ts.map +1 -0
  24. package/dist/cli/utils/args.js +51 -0
  25. package/dist/cli/utils/args.js.map +1 -0
  26. package/dist/config/settings.d.ts +38 -6
  27. package/dist/config/settings.d.ts.map +1 -1
  28. package/dist/config/settings.js +8 -0
  29. package/dist/config/settings.js.map +1 -1
  30. package/dist/core/provisioning/cluster-provisioner.d.ts +99 -0
  31. package/dist/core/provisioning/cluster-provisioner.d.ts.map +1 -0
  32. package/dist/core/provisioning/cluster-provisioner.js +415 -0
  33. package/dist/core/provisioning/cluster-provisioner.js.map +1 -0
  34. package/dist/core/provisioning/index.d.ts +12 -0
  35. package/dist/core/provisioning/index.d.ts.map +1 -0
  36. package/dist/core/provisioning/index.js +21 -0
  37. package/dist/core/provisioning/index.js.map +1 -0
  38. package/dist/core/provisioning/predefined-templates.d.ts +43 -0
  39. package/dist/core/provisioning/predefined-templates.d.ts.map +1 -0
  40. package/dist/core/provisioning/predefined-templates.js +117 -0
  41. package/dist/core/provisioning/predefined-templates.js.map +1 -0
  42. package/dist/core/provisioning/template-manager.d.ts +113 -0
  43. package/dist/core/provisioning/template-manager.d.ts.map +1 -0
  44. package/dist/core/provisioning/template-manager.js +274 -0
  45. package/dist/core/provisioning/template-manager.js.map +1 -0
  46. package/dist/core/routing/proxysql-manager.d.ts +17 -0
  47. package/dist/core/routing/proxysql-manager.d.ts.map +1 -1
  48. package/dist/core/routing/proxysql-manager.js +77 -0
  49. package/dist/core/routing/proxysql-manager.js.map +1 -1
  50. package/dist/types/index.d.ts +52 -0
  51. package/dist/types/index.d.ts.map +1 -1
  52. package/dist/types/index.js +45 -1
  53. package/dist/types/index.js.map +1 -1
  54. package/dist/utils/database.d.ts.map +1 -1
  55. package/dist/utils/database.js +40 -0
  56. package/dist/utils/database.js.map +1 -1
  57. package/docker/Dockerfile.allinone +1 -1
  58. package/docker/Dockerfile.node +1 -1
  59. package/package.json +1 -1
package/README.md CHANGED
@@ -121,7 +121,7 @@ After starting, access these services:
121
121
  | Orchestrator | http://localhost:3000 | MySQL topology manager |
122
122
  | Prometheus | http://localhost:9090 | Metrics collection |
123
123
  | Grafana | http://localhost:3001 | Dashboards (admin/admin) |
124
- | ProxySQL | localhost:6033 | MySQL traffic (read/write split) |
124
+ | ProxySQL | localhost:6033+ | MySQL traffic (per-cluster ports) |
125
125
  | OpenClaw Gateway | ws://localhost:18789 | AI agent gateway |
126
126
  | OpenClaw UI | http://localhost:18790 | AI control panel |
127
127
 
@@ -205,16 +205,62 @@ Available configuration keys:
205
205
 
206
206
  ### Cluster Management
207
207
 
208
+ ClawSQL uses a **provisioning-first approach** - create clusters from predefined templates for consistent, validated configurations.
209
+
210
+ ```bash
211
+ # Primary: Template-based provisioning (recommended)
212
+ /clusters provision # Interactive template selection
213
+ /clusters provision --template <name> --cluster <name> --hosts <h:p,...>
214
+ # Provision cluster from template
215
+ # First host becomes primary, rest become replicas
216
+ # Auto-configures replication and ProxySQL with dedicated port
217
+
218
+ /clusters quick <template> <cluster> <h:p,...> # Fast provisioning (minimal args)
219
+ /clusters deprovision <cluster> --force # Remove provisioned cluster
220
+
221
+ # View clusters and topology
222
+ /clusters list # List all clusters
223
+ /clusters topology [--name <cluster>] # Show topology
224
+
225
+ # Manual operations (for advanced use cases)
226
+ /clusters manual create --name <name> --primary <h:p> [--replicas <h:p,...>]
227
+ /clusters manual import --primary <h:p> # Import existing topology
228
+ /clusters manual sync [--name <cluster>] # Sync to ProxySQL
229
+ /clusters manual promote --name <cluster> --host <h:p> # Promote replica
230
+ ```
231
+
232
+ ### Predefined Templates
233
+
234
+ Templates are automatically initialized on platform startup. No need to create them manually:
235
+
236
+ | Template | Nodes | Mode | Use Case |
237
+ |----------|-------|------|----------|
238
+ | `dev-single` | 1 | async | Development/testing, CI/CD |
239
+ | `dev-replica` | 2 | async | Development with backup |
240
+ | `standard` | 3 | async | General production workloads |
241
+ | `ha-semisync` | 3 | semi-sync | Critical production, zero data loss |
242
+ | `read-heavy` | 5 | async | Analytics, reporting, high read throughput |
243
+ | `production-ha` | 4 | semi-sync | Mission-critical, enterprise databases |
244
+ | `geo-distributed` | 6 | async | Multi-region, disaster recovery |
245
+
246
+ Quick example:
247
+ ```bash
248
+ # Provision a standard 3-node cluster
249
+ > /clusters quick standard mycluster mysql1:3306,mysql2:3306,mysql3:3306
250
+ Cluster "mycluster" ready at port 6033
251
+ ```
252
+
253
+ ### Template Management
254
+
208
255
  ```bash
209
- /clusters list # List all clusters
210
- /clusters topology [--name <cluster>] # Show topology
211
- /clusters import --primary <host:port> # Import existing topology
212
- /clusters create --name <name> --primary <h:p> # Create new cluster
213
- --replicas <h:p,...> Replica instances (optional)
214
-
215
- /clusters sync [--name <cluster>] # Sync to ProxySQL
216
- /clusters add-replica --name <cluster> --host <h:p> # Add replica
217
- /clusters remove-replica --name <cluster> --host <h:p> # Remove replica
256
+ /templates list # List available templates (includes predefined)
257
+ /templates create --name <name> # Create custom template
258
+ --replicas <n> Number of replicas (default: 2)
259
+ --mode <mode> Replication mode: async, semi-sync (default: async)
260
+ --description <desc> Optional description
261
+
262
+ /templates show <name> # Show template details
263
+ /templates delete <name> --force # Delete custom template (predefined cannot be deleted)
218
264
  ```
219
265
 
220
266
  ### Failover Operations
@@ -308,13 +354,15 @@ Key settings:
308
354
  ┌─────────────────────────────────────────────────────────────────┐
309
355
  │ ProxySQL │
310
356
  │ (Read/Write Splitting) │
311
- Port 6033 - MySQL Traffic | Port 6032 - Admin
357
+ Per-Cluster Ports: 6033 (cluster1), 6034 (cluster2), ...
358
+ │ Port 6032 - Admin Interface │
312
359
  └───────────────┬─────────────────────────────┬───────────────────┘
313
360
  │ │
314
361
  ┌───────▼───────┐ ┌───────▼───────┐
315
362
  │ Primary │ │ Replica │
316
363
  │ (Writer) │────────────▶│ (Reader) │
317
- Port 3306 │ Repl │ Port 3306
364
+ Hostgroup N │ Repl │ Hostgroup N+10
365
+ │ Port 3306 │ │ Port 3306 │
318
366
  └───────────────┘ └───────────────┘
319
367
  │ │
320
368
  └──────────────┬──────────────┘
@@ -325,10 +373,11 @@ Key settings:
325
373
  │ │ Orchestrator│ │ Failover │ │ Monitoring │ │
326
374
  │ │ Client │ │ Engine │ │ Service │ │
327
375
  │ └─────────────┘ └─────────────┘ └─────────────┘ │
328
- ┌─────────────────────────────────────────────────┐ │
329
- │ │ OpenClaw AI Gateway │ │
330
- │ │ Port 18789 - Gateway | Port 18790 - UI │ │
331
- └─────────────────────────────────────────────────┘
376
+ ┌─────────────┐ ┌─────────────────────────────────────────────┐│
377
+ │ │ Provisioning│ │ OpenClaw AI Gateway ││
378
+ │ │ Engine │ │ Port 18789 - Gateway | Port 18790 ││
379
+ │ │ (Templates) │ └─────────────────────────────────────────────┘│
380
+ │ └─────────────┘ │
332
381
  └─────────────────────────────────────────────────────────────────┘
333
382
  ```
334
383
 
@@ -376,9 +425,11 @@ clawsql/
376
425
  │ │ ├── discovery/ # Instance discovery and topology
377
426
  │ │ ├── monitoring/ # Metrics and health checks
378
427
  │ │ ├── failover/ # Failover operations
428
+ │ │ ├── provisioning/ # Template-based cluster provisioning
379
429
  │ │ └── routing/ # ProxySQL integration
380
430
  │ ├── api/ # REST API routes
381
431
  │ ├── cli/ # CLI commands
432
+ │ │ └── utils/ # CLI utilities (arg parsing, etc.)
382
433
  │ ├── utils/ # Utilities
383
434
  │ └── __tests__/ # Test files
384
435
  ├── docker/ # Docker configurations
@@ -137,6 +137,7 @@ export declare const InstanceListResponse: z.ZodObject<{
137
137
  page: z.ZodNumber;
138
138
  page_size: z.ZodNumber;
139
139
  }, "strip", z.ZodTypeAny, {
140
+ total: number;
140
141
  page: number;
141
142
  page_size: number;
142
143
  items: {
@@ -153,8 +154,8 @@ export declare const InstanceListResponse: z.ZodObject<{
153
154
  last_seen: Date;
154
155
  created_at: Date;
155
156
  }[];
156
- total: number;
157
157
  }, {
158
+ total: number;
158
159
  page: number;
159
160
  page_size: number;
160
161
  items: {
@@ -171,7 +172,6 @@ export declare const InstanceListResponse: z.ZodObject<{
171
172
  last_seen: Date;
172
173
  created_at: Date;
173
174
  }[];
174
- total: number;
175
175
  }>;
176
176
  export declare const InstanceMetricsResponse: z.ZodObject<{
177
177
  instance_id: z.ZodString;
@@ -294,7 +294,7 @@ export declare const DiscoveryResponse: z.ZodObject<{
294
294
  started_at: z.ZodOptional<z.ZodDate>;
295
295
  completed_at: z.ZodOptional<z.ZodDate>;
296
296
  }, "strip", z.ZodTypeAny, {
297
- status: "failed" | "completed" | "running" | "pending";
297
+ status: "failed" | "completed" | "pending" | "running";
298
298
  network_segments: string[];
299
299
  task_id: string;
300
300
  instances_found: number;
@@ -316,7 +316,7 @@ export declare const DiscoveryResponse: z.ZodObject<{
316
316
  started_at?: Date | undefined;
317
317
  completed_at?: Date | undefined;
318
318
  }, {
319
- status: "failed" | "completed" | "running" | "pending";
319
+ status: "failed" | "completed" | "pending" | "running";
320
320
  network_segments: string[];
321
321
  task_id: string;
322
322
  instances_found: number;
@@ -675,6 +675,7 @@ export declare const ClusterListResponse: z.ZodObject<{
675
675
  page: z.ZodNumber;
676
676
  page_size: z.ZodNumber;
677
677
  }, "strip", z.ZodTypeAny, {
678
+ total: number;
678
679
  page: number;
679
680
  page_size: number;
680
681
  items: {
@@ -714,8 +715,8 @@ export declare const ClusterListResponse: z.ZodObject<{
714
715
  health_status: "unknown" | "healthy" | "degraded" | "unhealthy";
715
716
  updated_at: Date;
716
717
  }[];
717
- total: number;
718
718
  }, {
719
+ total: number;
719
720
  page: number;
720
721
  page_size: number;
721
722
  items: {
@@ -755,7 +756,6 @@ export declare const ClusterListResponse: z.ZodObject<{
755
756
  health_status: "unknown" | "healthy" | "degraded" | "unhealthy";
756
757
  updated_at: Date;
757
758
  }[];
758
- total: number;
759
759
  }>;
760
760
  export declare const FailoverStateSchema: z.ZodEnum<["idle", "detecting", "candidate_selection", "promoting", "reconfiguring", "completed", "failed"]>;
761
761
  export declare const FailoverRequest: z.ZodObject<{
@@ -785,10 +785,10 @@ export declare const FailoverOperationResponse: z.ZodObject<{
785
785
  }, "strip", z.ZodTypeAny, {
786
786
  error: string | null;
787
787
  state: "failed" | "idle" | "detecting" | "candidate_selection" | "promoting" | "reconfiguring" | "completed";
788
- reason: string | null;
789
- cluster_id: string;
790
788
  steps: string[];
791
789
  manual: boolean;
790
+ reason: string | null;
791
+ cluster_id: string;
792
792
  operation_id: string;
793
793
  started_at: string | null;
794
794
  completed_at: string | null;
@@ -799,10 +799,10 @@ export declare const FailoverOperationResponse: z.ZodObject<{
799
799
  }, {
800
800
  error: string | null;
801
801
  state: "failed" | "idle" | "detecting" | "candidate_selection" | "promoting" | "reconfiguring" | "completed";
802
- reason: string | null;
803
- cluster_id: string;
804
802
  steps: string[];
805
803
  manual: boolean;
804
+ reason: string | null;
805
+ cluster_id: string;
806
806
  operation_id: string;
807
807
  started_at: string | null;
808
808
  completed_at: string | null;
@@ -829,10 +829,10 @@ export declare const FailoverListResponse: z.ZodObject<{
829
829
  }, "strip", z.ZodTypeAny, {
830
830
  error: string | null;
831
831
  state: "failed" | "idle" | "detecting" | "candidate_selection" | "promoting" | "reconfiguring" | "completed";
832
- reason: string | null;
833
- cluster_id: string;
834
832
  steps: string[];
835
833
  manual: boolean;
834
+ reason: string | null;
835
+ cluster_id: string;
836
836
  operation_id: string;
837
837
  started_at: string | null;
838
838
  completed_at: string | null;
@@ -843,10 +843,10 @@ export declare const FailoverListResponse: z.ZodObject<{
843
843
  }, {
844
844
  error: string | null;
845
845
  state: "failed" | "idle" | "detecting" | "candidate_selection" | "promoting" | "reconfiguring" | "completed";
846
- reason: string | null;
847
- cluster_id: string;
848
846
  steps: string[];
849
847
  manual: boolean;
848
+ reason: string | null;
849
+ cluster_id: string;
850
850
  operation_id: string;
851
851
  started_at: string | null;
852
852
  completed_at: string | null;
@@ -857,13 +857,14 @@ export declare const FailoverListResponse: z.ZodObject<{
857
857
  }>, "many">;
858
858
  total: z.ZodNumber;
859
859
  }, "strip", z.ZodTypeAny, {
860
+ total: number;
860
861
  items: {
861
862
  error: string | null;
862
863
  state: "failed" | "idle" | "detecting" | "candidate_selection" | "promoting" | "reconfiguring" | "completed";
863
- reason: string | null;
864
- cluster_id: string;
865
864
  steps: string[];
866
865
  manual: boolean;
866
+ reason: string | null;
867
+ cluster_id: string;
867
868
  operation_id: string;
868
869
  started_at: string | null;
869
870
  completed_at: string | null;
@@ -872,15 +873,15 @@ export declare const FailoverListResponse: z.ZodObject<{
872
873
  duration_seconds: number | null;
873
874
  triggered_by: string | null;
874
875
  }[];
875
- total: number;
876
876
  }, {
877
+ total: number;
877
878
  items: {
878
879
  error: string | null;
879
880
  state: "failed" | "idle" | "detecting" | "candidate_selection" | "promoting" | "reconfiguring" | "completed";
880
- reason: string | null;
881
- cluster_id: string;
882
881
  steps: string[];
883
882
  manual: boolean;
883
+ reason: string | null;
884
+ cluster_id: string;
884
885
  operation_id: string;
885
886
  started_at: string | null;
886
887
  completed_at: string | null;
@@ -889,7 +890,6 @@ export declare const FailoverListResponse: z.ZodObject<{
889
890
  duration_seconds: number | null;
890
891
  triggered_by: string | null;
891
892
  }[];
892
- total: number;
893
893
  }>;
894
894
  export declare const HealthStatusResponse: z.ZodObject<{
895
895
  status: z.ZodEnum<["healthy", "unhealthy"]>;
package/dist/app.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH,OAAO,EAGL,eAAe,EAChB,MAAM,2BAA2B,CAAC;AAiBnC;;GAEG;AACH,wBAAsB,SAAS,wSAsI9B;AAED;;GAEG;AACH,wBAAsB,WAAW,wSA6ChC"}
1
+ {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH,OAAO,EAGL,eAAe,EAChB,MAAM,2BAA2B,CAAC;AAkBnC;;GAEG;AACH,wBAAsB,SAAS,wSAsI9B;AAED;;GAEG;AACH,wBAAsB,WAAW,wSAwDhC"}
package/dist/app.js CHANGED
@@ -18,6 +18,7 @@ const settings_js_1 = require("./config/settings.js");
18
18
  const logger_js_1 = require("./utils/logger.js");
19
19
  const database_js_1 = require("./utils/database.js");
20
20
  const exceptions_js_1 = require("./utils/exceptions.js");
21
+ const index_js_1 = require("./core/provisioning/index.js");
21
22
  // Import routes
22
23
  const instances_js_1 = __importDefault(require("./api/routes/instances.js"));
23
24
  const clusters_js_1 = __importDefault(require("./api/routes/clusters.js"));
@@ -161,6 +162,17 @@ async function startServer() {
161
162
  // Initialize database
162
163
  try {
163
164
  await (0, database_js_1.initDatabase)();
165
+ // Initialize predefined templates for cluster provisioning
166
+ try {
167
+ const templateManager = (0, index_js_1.getTemplateManager)();
168
+ const templatesCreated = await templateManager.initializePredefinedTemplates();
169
+ if (templatesCreated > 0) {
170
+ fastify.log.info(`Initialized ${templatesCreated} predefined templates`);
171
+ }
172
+ }
173
+ catch (error) {
174
+ fastify.log.warn({ error }, 'Failed to initialize predefined templates, continuing with existing templates');
175
+ }
164
176
  }
165
177
  catch (error) {
166
178
  fastify.log.warn({ error }, 'Failed to initialize database, continuing without persistence');
package/dist/app.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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"}
File without changes
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * ClawSQL CLI - Clusters Command
3
3
  *
4
- * Manage MySQL clusters.
4
+ * Manage MySQL clusters with template-based provisioning as the primary approach.
5
5
  */
6
6
  import { Command } from '../registry.js';
7
7
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"clusters.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/clusters.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAc,MAAM,gBAAgB,CAAC;AAErD;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,OA4C7B,CAAC;AA2dF,eAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"clusters.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/clusters.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAc,MAAM,gBAAgB,CAAC;AAIrD;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,OAgE7B,CAAC;AA8sBF,eAAe,eAAe,CAAC"}