clawsql 0.1.0 → 0.1.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.
package/README.md CHANGED
@@ -15,7 +15,23 @@ MySQL High Availability Management Platform with automatic failover, read/write
15
15
 
16
16
  - **Container Runtime**: Docker or Podman
17
17
  - **Docker Compose**: docker-compose or podman-compose
18
- - **Node.js**: v18+ (for CLI development)
18
+
19
+ ## Installation
20
+
21
+ ### Via npm (Recommended)
22
+
23
+ ```bash
24
+ npm install -g clawsql
25
+ ```
26
+
27
+ ### From Source
28
+
29
+ ```bash
30
+ git clone https://github.com/clawsql/clawsql.git
31
+ cd clawsql
32
+ npm install
33
+ npm run build
34
+ ```
19
35
 
20
36
  ## Quick Start
21
37
 
@@ -26,7 +42,8 @@ MySQL High Availability Management Platform with automatic failover, read/write
26
42
  Start with a pre-configured demo MySQL cluster:
27
43
 
28
44
  ```bash
29
- ./start.sh --demo
45
+ clawsql
46
+ > /start --demo
30
47
  ```
31
48
 
32
49
  This starts:
@@ -38,27 +55,30 @@ This starts:
38
55
  Start the platform and connect to your existing MySQL instances:
39
56
 
40
57
  ```bash
41
- # Start platform
42
- ./start.sh
58
+ # Start the interactive CLI
59
+ clawsql
60
+
61
+ # Start platform services
62
+ > /start
43
63
 
44
64
  # Configure MySQL credentials
45
- node dist/bin/clawsql.js -c "/config set mysql.admin_user root"
46
- node dist/bin/clawsql.js -c "/config set mysql.admin_password yourpassword"
65
+ > /config set mysql.admin_user root
66
+ > /config set mysql.admin_password yourpassword
47
67
 
48
- # Create Orchestrator user on your MySQL instances
49
- mysql -e "CREATE USER 'clawsql'@'%' IDENTIFIED BY 'clawsql_password'; GRANT ALL ON *.* TO 'clawsql'@'%' WITH GRANT OPTION;"
68
+ # Create Orchestrator user on your MySQL instances (run on your MySQL server)
69
+ # mysql -e "CREATE USER 'clawsql'@'%' IDENTIFIED BY 'clawsql_password'; GRANT ALL ON *.* TO 'clawsql'@'%' WITH GRANT OPTION;"
50
70
 
51
71
  # Discover MySQL instances on your network
52
- node dist/bin/clawsql.js -c "/instances discover 172.18.0.0/24 --user root --password yourpassword"
72
+ > /instances discover 172.18.0.0/24 --user root --password yourpassword
53
73
 
54
74
  # Or register instances manually
55
- node dist/bin/clawsql.js -c "/instances register --host mysql-primary --port 3306"
75
+ > /instances register --host mysql-primary --port 3306
56
76
 
57
77
  # Sync to ProxySQL
58
- node dist/bin/clawsql.js -c "/clusters sync"
78
+ > /clusters sync
59
79
 
60
80
  # Verify health
61
- node dist/bin/clawsql.js -c "/doctor"
81
+ > /doctor
62
82
  ```
63
83
 
64
84
  ## Services
@@ -297,7 +317,7 @@ npm install
297
317
  # Build TypeScript
298
318
  npm run build
299
319
 
300
- # Run CLI
320
+ # Run CLI locally
301
321
  node dist/bin/clawsql.js
302
322
 
303
323
  # Run tests
@@ -336,15 +356,15 @@ clawsql/
336
356
  ### Check Platform Health
337
357
 
338
358
  ```bash
339
- node dist/bin/clawsql.js -c "/doctor"
359
+ clawsql -c "/doctor"
340
360
  ```
341
361
 
342
362
  ### View Logs
343
363
 
344
364
  ```bash
345
- docker-compose logs -f clawsql
346
- docker-compose logs -f orchestrator
347
- docker-compose logs -f proxysql
365
+ docker compose logs -f clawsql
366
+ docker compose logs -f orchestrator
367
+ docker compose logs -f proxysql
348
368
  ```
349
369
 
350
370
  ### Check MySQL Replication
package/dist/app.js CHANGED
@@ -90,7 +90,7 @@ ClawSQL provides comprehensive automation for MySQL cluster management:
90
90
  - Prometheus for metrics collection
91
91
  - Grafana for visualization
92
92
  `,
93
- version: '0.1.0',
93
+ version: '0.1.3',
94
94
  },
95
95
  servers: [
96
96
  { url: '/', description: 'Current server' },
@@ -115,7 +115,7 @@ ClawSQL provides comprehensive automation for MySQL cluster management:
115
115
  fastify.get('/', async () => {
116
116
  return {
117
117
  name: 'ClawSQL',
118
- version: '0.1.0',
118
+ version: '0.1.3',
119
119
  description: 'MySQL Cluster Automation and Operations Management',
120
120
  docs: '/docs',
121
121
  health: '/health',
@@ -1 +1 @@
1
- {"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/start.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAc,MAAM,gBAAgB,CAAC;AASrD;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,OA8G1B,CAAC;AA2EF,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/start.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAc,MAAM,gBAAgB,CAAC;AAYrD;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,OAmJ1B,CAAC;AA4EF,eAAe,YAAY,CAAC"}
@@ -23,7 +23,14 @@ exports.startCommand = {
23
23
  handler: async (args, ctx) => {
24
24
  const formatter = ctx.formatter;
25
25
  const demoMode = args.includes('--demo');
26
+ const allInOneMode = args.includes('--allinone');
27
+ // Parse --registry flag
28
+ const registryIndex = args.indexOf('--registry');
29
+ const registryMirror = registryIndex !== -1 && args[registryIndex + 1] ? args[registryIndex + 1] : null;
26
30
  console.log(formatter.header('Starting ClawSQL Platform'));
31
+ if (allInOneMode) {
32
+ console.log(formatter.info('Using all-in-one container mode'));
33
+ }
27
34
  // Check Docker prerequisites
28
35
  const dockerInfo = await (0, docker_prereq_js_1.checkDockerPrerequisites)();
29
36
  if (!dockerInfo.runtime) {
@@ -38,11 +45,24 @@ exports.startCommand = {
38
45
  }
39
46
  if (!dockerInfo.composeCommand) {
40
47
  console.log(formatter.error('Docker Compose not found'));
41
- console.log(formatter.info('Install: pip install docker-compose'));
48
+ console.log((0, docker_prereq_js_1.getComposeInstallGuidance)(dockerInfo.runtime));
42
49
  return;
43
50
  }
44
51
  console.log(formatter.keyValue('Runtime', `${dockerInfo.runtime} ${dockerInfo.version}`));
45
52
  console.log(formatter.keyValue('Compose', dockerInfo.composeCommand.join(' ')));
53
+ // Configure registry mirror if specified
54
+ if (registryMirror && dockerInfo.runtime) {
55
+ const mirror = docker_prereq_js_1.REGISTRY_MIRRORS[registryMirror] || registryMirror;
56
+ console.log(formatter.info(`Configuring registry mirror: ${mirror}`));
57
+ const configured = await (0, docker_prereq_js_1.configureRegistryMirror)(dockerInfo.runtime, mirror);
58
+ if (configured) {
59
+ console.log(formatter.success('Registry mirror configured'));
60
+ }
61
+ else {
62
+ console.log(formatter.error('Failed to configure registry mirror'));
63
+ console.log(formatter.info('You may need to run with sudo or configure manually'));
64
+ }
65
+ }
46
66
  // Ensure Docker files are extracted
47
67
  let dockerPath;
48
68
  try {
@@ -57,25 +77,42 @@ exports.startCommand = {
57
77
  await (0, docker_files_js_1.ensureEnvFile)();
58
78
  // Build compose arguments
59
79
  const composeArgs = [];
60
- // Add file flags first if demo mode
61
- if (demoMode) {
80
+ const composeEnv = {};
81
+ const isPodmanCompose = dockerInfo.composeCommand[0] === 'podman-compose';
82
+ // Select compose file based on mode
83
+ if (allInOneMode) {
84
+ composeArgs.push('-f', 'docker-compose.allinone.yml');
85
+ console.log(formatter.info('Starting all-in-one container...'));
86
+ }
87
+ else if (demoMode) {
62
88
  composeArgs.push('-f', 'docker-compose.yml', '-f', 'docker-compose.demo.yml');
63
89
  console.log(formatter.info('Starting with demo MySQL cluster...'));
64
90
  }
65
91
  else {
66
92
  console.log(formatter.info('Starting platform services (bring your own MySQL)...'));
67
93
  }
68
- // Add metadata profile if no external DB configured
69
- const metadataDbHost = process.env.METADATA_DB_HOST;
70
- if (!metadataDbHost) {
71
- composeArgs.push('--profile', 'metadata');
72
- console.log(formatter.info('Auto-provisioning metadata database...'));
94
+ // Add metadata profile if no external DB configured (not for all-in-one)
95
+ if (!allInOneMode) {
96
+ const metadataDbHost = process.env.METADATA_DB_HOST;
97
+ if (!metadataDbHost) {
98
+ // podman-compose doesn't support --profile flag, use environment variable instead
99
+ if (isPodmanCompose) {
100
+ composeEnv.COMPOSE_PROFILES = 'metadata';
101
+ }
102
+ else {
103
+ composeArgs.push('--profile', 'metadata');
104
+ }
105
+ console.log(formatter.info('Auto-provisioning metadata database...'));
106
+ }
73
107
  }
74
108
  // Add up command
75
109
  composeArgs.push('up', '-d');
76
110
  // Execute compose up
77
111
  console.log();
78
- const result = await executeCommand(dockerInfo.composeCommand, composeArgs, { cwd: dockerPath });
112
+ const result = await executeCommand(dockerInfo.composeCommand, composeArgs, {
113
+ cwd: dockerPath,
114
+ env: Object.keys(composeEnv).length > 0 ? composeEnv : undefined,
115
+ });
79
116
  if (!result.success) {
80
117
  console.log(formatter.error('Failed to start services'));
81
118
  console.log(result.stderr);
@@ -141,6 +178,7 @@ function executeCommand(cmd, args, options) {
141
178
  const proc = (0, child_process_1.spawn)(cmd[0], [...cmd.slice(1), ...args], {
142
179
  cwd: options?.cwd,
143
180
  stdio: options?.silent ? 'pipe' : 'inherit',
181
+ env: options?.env ? { ...process.env, ...options.env } : process.env,
144
182
  });
145
183
  let stdout = '';
146
184
  let stderr = '';
@@ -1 +1 @@
1
- {"version":3,"file":"start.js","sourceRoot":"","sources":["../../../src/cli/commands/start.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"start.js","sourceRoot":"","sources":["../../../src/cli/commands/start.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"docker-files.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/docker-files.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH;;GAEG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAGvC;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AASD;;GAEG;AACH,wBAAgB,eAAe,IAAI,OAAO,CAsBzC;AAyCD;;GAEG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,MAAM,CAAC,CAsDzD;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAE7C;AAED;;GAEG;AACH,wBAAgB,wBAAwB,IAAI,MAAM,CAEjD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAG1C;AAED;;GAEG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC,CAyBrD"}
1
+ {"version":3,"file":"docker-files.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/docker-files.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH;;GAEG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAGvC;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AASD;;GAEG;AACH,wBAAgB,eAAe,IAAI,OAAO,CAsBzC;AAiED;;GAEG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,MAAM,CAAC,CA2EzD;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAE7C;AAED;;GAEG;AACH,wBAAgB,wBAAwB,IAAI,MAAM,CAEjD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAG1C;AAED;;GAEG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC,CAyBrD"}
@@ -128,6 +128,26 @@ function getBundledDockerComposePath() {
128
128
  // docker-compose.yml is at the root of the npm package
129
129
  return path.join(__dirname, '..', '..', '..');
130
130
  }
131
+ /**
132
+ * Fix docker-compose paths for extracted files
133
+ *
134
+ * When running from npm install, the docker/ directory is flattened.
135
+ * The original docker-compose.yml has paths like:
136
+ * - dockerfile: docker/Dockerfile.node
137
+ * - ./docker/orchestrator/orchestrator.conf.json
138
+ *
139
+ * After extraction, these need to be:
140
+ * - dockerfile: Dockerfile.node
141
+ * - ./orchestrator/orchestrator.conf.json
142
+ */
143
+ function fixDockerComposePaths(filePath) {
144
+ let content = fs.readFileSync(filePath, 'utf-8');
145
+ // Fix dockerfile path: "dockerfile: docker/Dockerfile.node" -> "dockerfile: Dockerfile.node"
146
+ content = content.replace(/dockerfile: docker\//g, 'dockerfile: ');
147
+ // Fix volume paths: "./docker/orchestrator/..." -> "./orchestrator/..."
148
+ content = content.replace(/\.\/docker\//g, './');
149
+ fs.writeFileSync(filePath, content);
150
+ }
131
151
  /**
132
152
  * Extract Docker files from npm package to ~/.clawsql/docker/
133
153
  */
@@ -152,13 +172,15 @@ async function ensureDockerFiles() {
152
172
  }
153
173
  // Copy docker/ directory
154
174
  copyDirRecursive(bundledDockerPath, dockerDir);
155
- // Copy docker-compose.yml files
175
+ // Copy docker-compose.yml files and fix paths
156
176
  const composeFiles = ['docker-compose.yml', 'docker-compose.demo.yml'];
157
177
  for (const file of composeFiles) {
158
178
  const srcPath = path.join(bundledRootPath, file);
159
179
  const destPath = path.join(dockerDir, file);
160
180
  if (fs.existsSync(srcPath)) {
161
181
  fs.copyFileSync(srcPath, destPath);
182
+ // Fix paths for npm installation
183
+ fixDockerComposePaths(destPath);
162
184
  }
163
185
  }
164
186
  // Copy init/ directory (MySQL init scripts)
@@ -167,6 +189,22 @@ async function ensureDockerFiles() {
167
189
  if (fs.existsSync(bundledInitPath)) {
168
190
  copyDirRecursive(bundledInitPath, destInitPath);
169
191
  }
192
+ // Copy package.json for Docker build
193
+ const packageJsonSrc = path.join(bundledRootPath, 'package.json');
194
+ if (fs.existsSync(packageJsonSrc)) {
195
+ fs.copyFileSync(packageJsonSrc, path.join(dockerDir, 'package.json'));
196
+ }
197
+ // Copy package-lock.json if available
198
+ const packageLockSrc = path.join(bundledRootPath, 'package-lock.json');
199
+ if (fs.existsSync(packageLockSrc)) {
200
+ fs.copyFileSync(packageLockSrc, path.join(dockerDir, 'package-lock.json'));
201
+ }
202
+ // Copy dist/ directory for Docker build (the application code)
203
+ const distSrc = path.join(bundledRootPath, 'dist');
204
+ const distDest = path.join(dockerDir, 'dist');
205
+ if (fs.existsSync(distSrc)) {
206
+ copyDirRecursive(distSrc, distDest);
207
+ }
170
208
  // Write version file
171
209
  const version = (0, settings_js_1.getSettings)().appVersion;
172
210
  fs.writeFileSync(getVersionFilePath(), version);
@@ -1 +1 @@
1
- {"version":3,"file":"docker-files.js","sourceRoot":"","sources":["../../../src/cli/utils/docker-files.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"docker-files.js","sourceRoot":"","sources":["../../../src/cli/utils/docker-files.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,19 @@
4
4
  * Detects and validates Docker/container runtime prerequisites.
5
5
  * Consolidates Docker detection logic used across multiple commands.
6
6
  */
7
+ /**
8
+ * Known registry mirrors for different regions
9
+ */
10
+ export declare const REGISTRY_MIRRORS: {
11
+ china: string;
12
+ aliyun: string;
13
+ ustc: string;
14
+ tencent: string;
15
+ };
16
+ /**
17
+ * Configure registry mirror for podman
18
+ */
19
+ export declare function configureRegistryMirror(runtime: 'docker' | 'podman', mirror: string): Promise<boolean>;
7
20
  /**
8
21
  * Docker runtime information
9
22
  */
@@ -37,6 +50,10 @@ export declare function getRuntimeVersion(runtime: 'docker' | 'podman'): Promise
37
50
  * Check all Docker prerequisites and return comprehensive info
38
51
  */
39
52
  export declare function checkDockerPrerequisites(): Promise<DockerInfo>;
53
+ /**
54
+ * Get installation guidance for Docker Compose or Podman Compose
55
+ */
56
+ export declare function getComposeInstallGuidance(runtime: 'docker' | 'podman' | null): string;
40
57
  /**
41
58
  * Get installation guidance for Docker
42
59
  */
@@ -1 +1 @@
1
- {"version":3,"file":"docker-prereq.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/docker-prereq.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,2CAA2C;IAC3C,OAAO,EAAE,QAAQ,GAAG,QAAQ,GAAG,IAAI,CAAC;IACpC,mFAAmF;IACnF,cAAc,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAChC,6BAA6B;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,uCAAuC;IACvC,aAAa,EAAE,OAAO,CAAC;CACxB;AA6CD;;GAEG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,QAAQ,GAAG,QAAQ,GAAG,IAAI,CAAC,CAsBzE;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,QAAQ,GAAG,QAAQ,GAC3B,OAAO,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAoC1B;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,CAOvF;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CASrF;AAED;;GAEG;AACH,wBAAsB,wBAAwB,IAAI,OAAO,CAAC,UAAU,CAAC,CAwBpE;AAED;;GAEG;AACH,wBAAgB,wBAAwB,IAAI,MAAM,CAiBjD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAYzD"}
1
+ {"version":3,"file":"docker-prereq.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/docker-prereq.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH;;GAEG;AACH,eAAO,MAAM,gBAAgB;;;;;CAK5B,CAAC;AAEF;;GAEG;AACH,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,QAAQ,GAAG,QAAQ,EAC5B,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,OAAO,CAAC,CA2DlB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,2CAA2C;IAC3C,OAAO,EAAE,QAAQ,GAAG,QAAQ,GAAG,IAAI,CAAC;IACpC,mFAAmF;IACnF,cAAc,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAChC,6BAA6B;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,uCAAuC;IACvC,aAAa,EAAE,OAAO,CAAC;CACxB;AA6CD;;GAEG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,QAAQ,GAAG,QAAQ,GAAG,IAAI,CAAC,CAsBzE;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,QAAQ,GAAG,QAAQ,GAC3B,OAAO,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAoC1B;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,CAOvF;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CASrF;AAED;;GAEG;AACH,wBAAsB,wBAAwB,IAAI,OAAO,CAAC,UAAU,CAAC,CAwBpE;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,QAAQ,GAAG,QAAQ,GAAG,IAAI,GAAG,MAAM,CAcrF;AAED;;GAEG;AACH,wBAAgB,wBAAwB,IAAI,MAAM,CAgBjD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAYzD"}
@@ -5,15 +5,123 @@
5
5
  * Detects and validates Docker/container runtime prerequisites.
6
6
  * Consolidates Docker detection logic used across multiple commands.
7
7
  */
8
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
9
+ if (k2 === undefined) k2 = k;
10
+ var desc = Object.getOwnPropertyDescriptor(m, k);
11
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
12
+ desc = { enumerable: true, get: function() { return m[k]; } };
13
+ }
14
+ Object.defineProperty(o, k2, desc);
15
+ }) : (function(o, m, k, k2) {
16
+ if (k2 === undefined) k2 = k;
17
+ o[k2] = m[k];
18
+ }));
19
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
20
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
21
+ }) : function(o, v) {
22
+ o["default"] = v;
23
+ });
24
+ var __importStar = (this && this.__importStar) || (function () {
25
+ var ownKeys = function(o) {
26
+ ownKeys = Object.getOwnPropertyNames || function (o) {
27
+ var ar = [];
28
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
29
+ return ar;
30
+ };
31
+ return ownKeys(o);
32
+ };
33
+ return function (mod) {
34
+ if (mod && mod.__esModule) return mod;
35
+ var result = {};
36
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
37
+ __setModuleDefault(result, mod);
38
+ return result;
39
+ };
40
+ })();
8
41
  Object.defineProperty(exports, "__esModule", { value: true });
42
+ exports.REGISTRY_MIRRORS = void 0;
43
+ exports.configureRegistryMirror = configureRegistryMirror;
9
44
  exports.detectRuntime = detectRuntime;
10
45
  exports.detectComposeCommand = detectComposeCommand;
11
46
  exports.checkDaemonRunning = checkDaemonRunning;
12
47
  exports.getRuntimeVersion = getRuntimeVersion;
13
48
  exports.checkDockerPrerequisites = checkDockerPrerequisites;
49
+ exports.getComposeInstallGuidance = getComposeInstallGuidance;
14
50
  exports.getDockerInstallGuidance = getDockerInstallGuidance;
15
51
  exports.formatDockerInfo = formatDockerInfo;
16
52
  const child_process_1 = require("child_process");
53
+ const fs = __importStar(require("fs"));
54
+ const path = __importStar(require("path"));
55
+ const os = __importStar(require("os"));
56
+ /**
57
+ * Known registry mirrors for different regions
58
+ */
59
+ exports.REGISTRY_MIRRORS = {
60
+ china: 'docker.m.daocloud.io',
61
+ aliyun: 'registry.cn-hangzhou.aliyuncs.com',
62
+ ustc: 'docker.mirrors.ustc.edu.cn',
63
+ tencent: 'mirror.ccs.tencentyun.com',
64
+ };
65
+ /**
66
+ * Configure registry mirror for podman
67
+ */
68
+ async function configureRegistryMirror(runtime, mirror) {
69
+ if (runtime === 'podman') {
70
+ // Try user-level config first
71
+ const userConfigDir = path.join(os.homedir(), '.config', 'containers', 'registries.conf.d');
72
+ const systemConfigDir = '/etc/containers/registries.conf.d';
73
+ const configContent = `[[registry]]
74
+ prefix = "docker.io"
75
+ location = "docker.io"
76
+
77
+ [[registry.mirror]]
78
+ location = "${mirror}"
79
+ `;
80
+ // Try user config first (no sudo needed)
81
+ try {
82
+ if (!fs.existsSync(userConfigDir)) {
83
+ fs.mkdirSync(userConfigDir, { recursive: true });
84
+ }
85
+ const userConfigFile = path.join(userConfigDir, 'clawsql-mirror.conf');
86
+ fs.writeFileSync(userConfigFile, configContent);
87
+ return true;
88
+ }
89
+ catch {
90
+ // User config failed, try system config (may need sudo)
91
+ try {
92
+ if (!fs.existsSync(systemConfigDir)) {
93
+ fs.mkdirSync(systemConfigDir, { recursive: true });
94
+ }
95
+ const systemConfigFile = path.join(systemConfigDir, 'clawsql-mirror.conf');
96
+ fs.writeFileSync(systemConfigFile, configContent);
97
+ return true;
98
+ }
99
+ catch {
100
+ return false;
101
+ }
102
+ }
103
+ }
104
+ // For Docker, configure daemon.json
105
+ if (runtime === 'docker') {
106
+ const daemonJsonPath = '/etc/docker/daemon.json';
107
+ try {
108
+ let existingConfig = {};
109
+ if (fs.existsSync(daemonJsonPath)) {
110
+ const existing = fs.readFileSync(daemonJsonPath, 'utf-8');
111
+ existingConfig = JSON.parse(existing);
112
+ }
113
+ existingConfig['registry-mirrors'] = [mirror];
114
+ fs.writeFileSync(daemonJsonPath, JSON.stringify(existingConfig, null, 2));
115
+ // Restart docker to apply changes
116
+ console.log('Restarting Docker to apply registry mirror...');
117
+ return true;
118
+ }
119
+ catch {
120
+ return false;
121
+ }
122
+ }
123
+ return false;
124
+ }
17
125
  /**
18
126
  * Execute a shell command and return result
19
127
  */
@@ -165,12 +273,28 @@ async function checkDockerPrerequisites() {
165
273
  daemonRunning,
166
274
  };
167
275
  }
276
+ /**
277
+ * Get installation guidance for Docker Compose or Podman Compose
278
+ */
279
+ function getComposeInstallGuidance(runtime) {
280
+ if (runtime === 'podman') {
281
+ return `Install podman-compose:
282
+ • Linux (dnf): dnf install podman-compose
283
+ • Linux (apt): apt install podman-compose
284
+ • pip: pip install podman-compose`;
285
+ }
286
+ // Docker or no runtime detected
287
+ return `Install Docker Compose:
288
+ • Docker Desktop (Mac/Windows): Includes docker compose
289
+ • Linux (apt): apt install docker-compose-plugin
290
+ • Linux (dnf): dnf install docker-compose-plugin
291
+ • Standalone: https://github.com/docker/compose/releases`;
292
+ }
168
293
  /**
169
294
  * Get installation guidance for Docker
170
295
  */
171
296
  function getDockerInstallGuidance() {
172
- return `
173
- Docker is required to run ClawSQL platform.
297
+ return `Docker is required to run ClawSQL platform.
174
298
 
175
299
  Install Docker:
176
300
  • macOS: https://docs.docker.com/desktop/install/mac-install/
@@ -178,13 +302,13 @@ Install Docker:
178
302
  • Linux: https://docs.docker.com/engine/install/
179
303
 
180
304
  After installing Docker, also ensure Docker Compose is available:
181
- • Docker Desktop includes Compose
182
- • Linux: pip install docker-compose
305
+ • Docker Desktop (Mac/Windows): Includes docker compose
306
+ • Linux: apt install docker-compose-plugin
307
+ • Standalone: https://github.com/docker/compose/releases
183
308
 
184
309
  Alternative: Podman
185
310
  • Install: https://podman.io/getting-started/installation
186
- • Compose: pip install podman-compose
187
- `.trim();
311
+ • Compose: dnf install podman-compose or apt install podman-compose`;
188
312
  }
189
313
  /**
190
314
  * Format Docker info for display
@@ -1 +1 @@
1
- {"version":3,"file":"docker-prereq.js","sourceRoot":"","sources":["../../../src/cli/utils/docker-prereq.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"docker-prereq.js","sourceRoot":"","sources":["../../../src/cli/utils/docker-prereq.ts"],"names":[],"mappings":"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"}
@@ -94,7 +94,7 @@ const SyncSettingsSchema = zod_1.z.object({
94
94
  });
95
95
  const SettingsSchema = zod_1.z.object({
96
96
  appName: zod_1.z.string().default('ClawSQL'),
97
- appVersion: zod_1.z.string().default('0.1.0'),
97
+ appVersion: zod_1.z.string().default('0.1.3'),
98
98
  debug: zod_1.z.boolean().default(false),
99
99
  metadataDb: MetadataDBSettingsSchema,
100
100
  orchestrator: OrchestratorSettingsSchema,
@@ -0,0 +1,117 @@
1
+ # ClawSQL All-in-One Docker Image
2
+ # A single container with all ClawSQL components
3
+ #
4
+ # This image includes:
5
+ # - ClawSQL API (Node.js)
6
+ # - Orchestrator (MySQL topology management)
7
+ # - ProxySQL (MySQL proxy)
8
+ # - Prometheus (metrics)
9
+ # - Grafana (visualization)
10
+ # - Supervisord (process manager)
11
+
12
+ FROM docker.io/library/node:20-alpine AS clawsql-builder
13
+
14
+ WORKDIR /build
15
+ COPY package.json package-lock.json* ./
16
+ RUN npm ci
17
+ COPY . .
18
+ RUN npm run build
19
+
20
+ # =============================================================================
21
+ # Final all-in-one image
22
+ # =============================================================================
23
+ FROM docker.io/library/alpine:3.19
24
+
25
+ # Install all dependencies
26
+ RUN apk add --no-cache \
27
+ nodejs \
28
+ npm \
29
+ curl \
30
+ wget \
31
+ mysql-client \
32
+ supervisor \
33
+ python3 \
34
+ py3-pip \
35
+ bash \
36
+ shadow \
37
+ && pip3 install --break-system-packages supervisor
38
+
39
+ # Download and install components
40
+ ARG ORCHESTRATOR_VERSION=latest
41
+ ARG PROXYSQL_VERSION=latest
42
+ ARG PROMETHEUS_VERSION=2.45.0
43
+ ARG GRAFANA_VERSION=10.2.0
44
+
45
+ # Create directories
46
+ RUN mkdir -p /opt/clawsql \
47
+ /opt/orchestrator \
48
+ /opt/proxysql \
49
+ /opt/prometheus \
50
+ /opt/grafana \
51
+ /var/log/supervisor \
52
+ /var/lib/proxysql \
53
+ /var/lib/prometheus \
54
+ /var/lib/grafana \
55
+ /data
56
+
57
+ # Copy ClawSQL application
58
+ COPY --from=clawsql-builder /build/dist /opt/clawsql/dist
59
+ COPY --from=clawsql-builder /build/node_modules /opt/clawsql/node_modules
60
+ COPY --from=clawsql-builder /build/package.json /opt/clawsql/
61
+ COPY docker/orchestrator/orchestrator.conf.json /etc/orchestrator.conf.json
62
+ COPY docker/proxysql/proxysql.cnf /etc/proxysql.cnf
63
+ COPY docker/prometheus/prometheus.yml /etc/prometheus.yml
64
+ COPY docker/grafana/provisioning /opt/grafana/conf/provisioning
65
+ COPY docker/grafana/dashboards /opt/grafana/dashboards
66
+
67
+ # Download Orchestrator (we'll use a binary release if available, or the Docker image)
68
+ RUN ARCH=$(uname -m) && \
69
+ if [ "$ARCH" = "x86_64" ]; then ARCH="amd64"; fi && \
70
+ wget -q "https://github.com/openark/orchestrator/releases/download/v3.2.6/orchestrator-${ARCH}.tar.gz" -O /tmp/orchestrator.tar.gz || true && \
71
+ if [ -f /tmp/orchestrator.tar.gz ]; then \
72
+ tar -xzf /tmp/orchestrator.tar.gz -C /opt/orchestrator --strip-components=1 && \
73
+ rm /tmp/orchestrator.tar.gz; \
74
+ fi
75
+
76
+ # Download Prometheus
77
+ RUN ARCH=$(uname -m) && \
78
+ if [ "$ARCH" = "x86_64" ]; then ARCH="amd64"; elif [ "$ARCH" = "aarch64" ]; then ARCH="arm64"; fi && \
79
+ wget -q "https://github.com/prometheus/prometheus/releases/download/v${PROMETHEUS_VERSION}/prometheus-${PROMETHEUS_VERSION}.linux-${ARCH}.tar.gz" -O /tmp/prometheus.tar.gz && \
80
+ tar -xzf /tmp/prometheus.tar.gz -C /opt/prometheus --strip-components=1 && \
81
+ rm /tmp/prometheus.tar.gz
82
+
83
+ # Download Grafana
84
+ RUN ARCH=$(uname -m) && \
85
+ if [ "$ARCH" = "x86_64" ]; then ARCH="amd64"; elif [ "$ARCH" = "aarch64" ]; then ARCH="arm64"; fi && \
86
+ wget -q "https://dl.grafana.com/oss/release/grafana-${GRAFANA_VERSION}.linux-${ARCH}.tar.gz" -O /tmp/grafana.tar.gz && \
87
+ tar -xzf /tmp/grafana.tar.gz -C /opt/grafana --strip-components=1 && \
88
+ rm /tmp/grafana.tar.gz
89
+
90
+ # ProxySQL will be installed from Alpine package or downloaded
91
+ RUN apk add --no-cache proxysql || true
92
+
93
+ # Copy supervisord configuration
94
+ COPY docker/supervisord.conf /etc/supervisord.conf
95
+
96
+ # Copy entrypoint script
97
+ COPY docker/entrypoint-allinone.sh /entrypoint.sh
98
+ RUN chmod +x /entrypoint.sh
99
+
100
+ # Environment variables
101
+ ENV NODE_ENV=production \
102
+ API_HOST=0.0.0.0 \
103
+ API_PORT=8080 \
104
+ ORCHESTRATOR_URL=http://localhost:3000 \
105
+ PROXYSQL_HOST=localhost \
106
+ PROXYSQL_ADMIN_PORT=6032 \
107
+ PROMETHEUS_URL=http://localhost:9090
108
+
109
+ # Expose all ports
110
+ EXPOSE 8080 3000 6032 6033 9090 3001
111
+
112
+ # Health check
113
+ HEALTHCHECK --interval=30s --timeout=10s --start-period=60s --retries=3 \
114
+ CMD curl -f http://localhost:8080/health || exit 1
115
+
116
+ # Start all services via supervisord
117
+ CMD ["/entrypoint.sh"]
@@ -0,0 +1,59 @@
1
+ #!/bin/bash
2
+ set -e
3
+
4
+ # ClawSQL All-in-One Entrypoint
5
+ # Starts all services in the correct order
6
+
7
+ echo "Starting ClawSQL All-in-One..."
8
+
9
+ # Create required directories
10
+ mkdir -p /var/log/supervisor /var/log/grafana /var/lib/grafana /var/lib/prometheus /var/lib/proxysql
11
+
12
+ # Generate default secrets if not provided
13
+ : ${API_TOKEN_SECRET:=$(openssl rand -hex 32 2>/dev/null || cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 64 | head -n 1)}
14
+ : ${MYSQL_ADMIN_PASSWORD:=clawsql_password}
15
+ : ${MYSQL_REPLICATION_PASSWORD:=repl_password}
16
+
17
+ export API_TOKEN_SECRET MYSQL_ADMIN_PASSWORD MYSQL_REPLICATION_PASSWORD
18
+
19
+ # Wait for dependent services if external
20
+ wait_for_service() {
21
+ local host=$1
22
+ local port=$2
23
+ local name=$3
24
+ local max_wait=30
25
+ local count=0
26
+
27
+ if [ -n "$host" ] && [ "$host" != "localhost" ] && [ "$host" != "127.0.0.1" ]; then
28
+ echo "Waiting for $name at $host:$port..."
29
+ while ! nc -z "$host" "$port" 2>/dev/null; do
30
+ count=$((count + 1))
31
+ if [ $count -ge $max_wait ]; then
32
+ echo "Warning: $name not available after ${max_wait}s, continuing..."
33
+ return 1
34
+ fi
35
+ sleep 1
36
+ done
37
+ echo "$name is ready"
38
+ fi
39
+ }
40
+
41
+ # Wait for external MySQL if configured
42
+ if [ -n "$METADATA_DB_HOST" ]; then
43
+ wait_for_service "$METADATA_DB_HOST" "${METADATA_DB_PORT:-3306}" "Metadata MySQL"
44
+ fi
45
+
46
+ # Update Prometheus config with correct targets
47
+ if [ -f /etc/prometheus.yml ]; then
48
+ sed -i "s/localhost:8080/${API_HOST:-localhost}:${API_PORT:-8080}/g" /etc/prometheus.yml
49
+ fi
50
+
51
+ # Update Orchestrator config with database settings
52
+ if [ -f /etc/orchestrator.conf.json ]; then
53
+ if [ -n "$METADATA_DB_HOST" ]; then
54
+ sed -i "s/\"Host\":\"metadata-mysql\"/\"Host\":\"${METADATA_DB_HOST}\"/g" /etc/orchestrator.conf.json
55
+ fi
56
+ fi
57
+
58
+ echo "Starting services via supervisord..."
59
+ exec /usr/bin/supervisord -c /etc/supervisord.conf
@@ -0,0 +1,51 @@
1
+ [supervisord]
2
+ nodaemon=true
3
+ logfile=/var/log/supervisor/supervisord.log
4
+ pidfile=/var/run/supervisord.pid
5
+ user=root
6
+
7
+ [program:clawsql]
8
+ command=node /opt/clawsql/dist/index.js
9
+ directory=/opt/clawsql
10
+ autostart=true
11
+ autorestart=true
12
+ startsecs=5
13
+ stdout_logfile=/var/log/supervisor/clawsql.log
14
+ stderr_logfile=/var/log/supervisor/clawsql-error.log
15
+ environment=NODE_ENV="production"
16
+
17
+ [program:orchestrator]
18
+ command=/opt/orchestrator/orchestrator http
19
+ directory=/opt/orchestrator
20
+ autostart=true
21
+ autorestart=true
22
+ startsecs=5
23
+ stdout_logfile=/var/log/supervisor/orchestrator.log
24
+ stderr_logfile=/var/log/supervisor/orchestrator-error.log
25
+
26
+ [program:proxysql]
27
+ command=proxysql -f -c /etc/proxysql.cnf
28
+ autostart=true
29
+ autorestart=true
30
+ startsecs=5
31
+ stdout_logfile=/var/log/supervisor/proxysql.log
32
+ stderr_logfile=/var/log/supervisor/proxysql-error.log
33
+
34
+ [program:prometheus]
35
+ command=/opt/prometheus/prometheus --config.file=/etc/prometheus.yml --storage.tsdb.path=/var/lib/prometheus --web.listen-address=:9090
36
+ directory=/opt/prometheus
37
+ autostart=true
38
+ autorestart=true
39
+ startsecs=5
40
+ stdout_logfile=/var/log/supervisor/prometheus.log
41
+ stderr_logfile=/var/log/supervisor/prometheus-error.log
42
+
43
+ [program:grafana]
44
+ command=/opt/grafana/bin/grafana-server --homepath=/opt/grafana --config=/opt/grafana/conf/defaults.ini
45
+ directory=/opt/grafana
46
+ autostart=true
47
+ autorestart=true
48
+ startsecs=5
49
+ stdout_logfile=/var/log/supervisor/grafana.log
50
+ stderr_logfile=/var/log/supervisor/grafana-error.log
51
+ environment=GF_PATHS_DATA="/var/lib/grafana",GF_PATHS_LOGS="/var/log/grafana"
@@ -0,0 +1,66 @@
1
+ # ClawSQL All-in-One Deployment
2
+ # A single container with all components
3
+ #
4
+ # Usage:
5
+ # docker-compose -f docker-compose.allinone.yml up -d
6
+ #
7
+ # This is the simplest deployment option - one container with everything.
8
+
9
+ services:
10
+ clawsql-allinone:
11
+ image: clawsql/clawsql:allinone
12
+ build:
13
+ context: .
14
+ dockerfile: docker/Dockerfile.allinone
15
+ container_name: clawsql
16
+ hostname: clawsql
17
+ privileged: true
18
+ ports:
19
+ - "8080:8080" # ClawSQL API
20
+ - "3000:3000" # Orchestrator
21
+ - "6032:6032" # ProxySQL Admin
22
+ - "6033:6033" # ProxySQL MySQL
23
+ - "9090:9090" # Prometheus
24
+ - "3001:3001" # Grafana
25
+ environment:
26
+ - API_HOST=0.0.0.0
27
+ - API_PORT=8080
28
+ - API_TOKEN_SECRET=${API_TOKEN_SECRET:-change-me-in-production}
29
+ - ORCHESTRATOR_URL=http://localhost:3000
30
+ - PROXYSQL_HOST=localhost
31
+ - PROXYSQL_ADMIN_PORT=6032
32
+ - PROMETHEUS_URL=http://localhost:9090
33
+ # Metadata Database (optional - uses internal SQLite if not set)
34
+ - METADATA_DB_HOST=${METADATA_DB_HOST:-}
35
+ - METADATA_DB_PORT=${METADATA_DB_PORT:-3306}
36
+ - METADATA_DB_NAME=${METADATA_DB_NAME:-clawsql_meta}
37
+ - METADATA_DB_USER=${METADATA_DB_USER:-clawsql}
38
+ - METADATA_DB_PASSWORD=${METADATA_DB_PASSWORD:-clawsql_password}
39
+ # MySQL credentials
40
+ - MYSQL_ADMIN_USER=${MYSQL_ADMIN_USER:-clawsql}
41
+ - MYSQL_ADMIN_PASSWORD=${MYSQL_ADMIN_PASSWORD:-clawsql_password}
42
+ - MYSQL_REPLICATION_USER=${MYSQL_REPLICATION_USER:-repl}
43
+ - MYSQL_REPLICATION_PASSWORD=${MYSQL_REPLICATION_PASSWORD:-repl_password}
44
+ # Logging
45
+ - LOG_LEVEL=${LOG_LEVEL:-INFO}
46
+ - LOG_FORMAT=${LOG_FORMAT:-json}
47
+ # Failover
48
+ - AUTO_FAILOVER_ENABLED=${AUTO_FAILOVER_ENABLED:-true}
49
+ volumes:
50
+ - clawsql-data:/data
51
+ - prometheus-data:/var/lib/prometheus
52
+ - grafana-data:/var/lib/grafana
53
+ - proxysql-data:/var/lib/proxysql
54
+ restart: unless-stopped
55
+ healthcheck:
56
+ test: ["CMD", "curl", "-f", "http://localhost:8080/health"]
57
+ interval: 30s
58
+ timeout: 10s
59
+ retries: 3
60
+ start_period: 60s
61
+
62
+ volumes:
63
+ clawsql-data:
64
+ prometheus-data:
65
+ grafana-data:
66
+ proxysql-data:
@@ -9,7 +9,7 @@ services:
9
9
  # MySQL Primary (Writer)
10
10
  # =============================================================================
11
11
  mysql-primary:
12
- image: mysql:8.0
12
+ image: docker.io/library/mysql:8.0
13
13
  container_name: mysql-primary
14
14
  hostname: mysql-primary
15
15
  ports:
@@ -15,6 +15,7 @@ services:
15
15
  # ClawSQL Application (Node.js)
16
16
  # =============================================================================
17
17
  clawsql:
18
+ image: clawsql/clawsql:latest
18
19
  build:
19
20
  context: .
20
21
  dockerfile: docker/Dockerfile.node
@@ -65,7 +66,7 @@ services:
65
66
  # Uses shared metadata MySQL database
66
67
  # =============================================================================
67
68
  orchestrator:
68
- image: openarkcode/orchestrator:latest
69
+ image: docker.io/openarkcode/orchestrator:latest
69
70
  container_name: orchestrator
70
71
  hostname: orchestrator
71
72
  ports:
@@ -80,7 +81,7 @@ services:
80
81
  # ProxySQL - MySQL Proxy with Routing
81
82
  # =============================================================================
82
83
  proxysql:
83
- image: proxysql/proxysql:latest
84
+ image: docker.io/proxysql/proxysql:latest
84
85
  container_name: proxysql
85
86
  hostname: proxysql
86
87
  ports:
@@ -99,7 +100,7 @@ services:
99
100
  # Prometheus - Metrics Collection
100
101
  # =============================================================================
101
102
  prometheus:
102
- image: prom/prometheus:latest
103
+ image: docker.io/prom/prometheus:latest
103
104
  container_name: prometheus
104
105
  hostname: prometheus
105
106
  ports:
@@ -119,7 +120,7 @@ services:
119
120
  # Grafana - Visualization
120
121
  # =============================================================================
121
122
  grafana:
122
- image: grafana/grafana:latest
123
+ image: docker.io/grafana/grafana:latest
123
124
  container_name: grafana
124
125
  hostname: grafana
125
126
  ports:
@@ -176,7 +177,7 @@ services:
176
177
  # Auto-provisioned if METADATA_DB_HOST is not set
177
178
  # =============================================================================
178
179
  metadata-mysql:
179
- image: mysql:8.0
180
+ image: docker.io/library/mysql:8.0
180
181
  container_name: metadata-mysql
181
182
  hostname: metadata-mysql
182
183
  profiles:
package/init/primary.sql CHANGED
@@ -1,19 +1,20 @@
1
1
  -- Primary initialization script
2
- -- Create replication user
3
- CREATE USER IF NOT EXISTS 'repl'@'%' IDENTIFIED BY 'replpassword';
2
+ -- Create replication user with mysql_native_password for compatibility
3
+ CREATE USER IF NOT EXISTS 'repl'@'%' IDENTIFIED WITH mysql_native_password BY 'replpassword';
4
4
  GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';
5
5
 
6
6
  -- Create monitoring user
7
- CREATE USER IF NOT EXISTS 'monitor'@'%' IDENTIFIED BY 'monitorpassword';
7
+ CREATE USER IF NOT EXISTS 'monitor'@'%' IDENTIFIED WITH mysql_native_password BY 'monitorpassword';
8
8
  GRANT REPLICATION CLIENT, PROCESS ON *.* TO 'monitor'@'%';
9
9
  GRANT SELECT ON mysql.* TO 'monitor'@'%';
10
10
 
11
11
  -- Create Orchestrator user (needs SUPER for topology management)
12
- CREATE USER IF NOT EXISTS 'clawsql'@'%' IDENTIFIED BY 'clawsql_password';
12
+ -- Uses mysql_native_password for compatibility with Orchestrator
13
+ CREATE USER IF NOT EXISTS 'clawsql'@'%' IDENTIFIED WITH mysql_native_password BY 'clawsql_password';
13
14
  GRANT ALL PRIVILEGES ON *.* TO 'clawsql'@'%' WITH GRANT OPTION;
14
15
 
15
16
  -- Create application user for demo database
16
- CREATE USER IF NOT EXISTS 'app'@'%' IDENTIFIED BY 'apppassword';
17
+ CREATE USER IF NOT EXISTS 'app'@'%' IDENTIFIED WITH mysql_native_password BY 'apppassword';
17
18
  GRANT ALL PRIVILEGES ON clawsql.* TO 'app'@'%';
18
19
 
19
20
  FLUSH PRIVILEGES;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "clawsql",
3
- "version": "0.1.0",
3
+ "version": "0.1.3",
4
4
  "description": "MySQL Cluster Automation and Operations Management System",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -78,7 +78,9 @@
78
78
  "docker",
79
79
  "docker-compose.yml",
80
80
  "docker-compose.demo.yml",
81
+ "docker-compose.allinone.yml",
81
82
  "init",
82
- ".env.example"
83
+ ".env.example",
84
+ "package-lock.json"
83
85
  ]
84
86
  }