clawsql 0.1.0 → 0.1.2
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 +37 -17
- package/dist/app.js +2 -2
- package/dist/cli/commands/start.d.ts.map +1 -1
- package/dist/cli/commands/start.js +15 -3
- package/dist/cli/commands/start.js.map +1 -1
- package/dist/cli/utils/docker-files.d.ts.map +1 -1
- package/dist/cli/utils/docker-files.js +39 -1
- package/dist/cli/utils/docker-files.js.map +1 -1
- package/dist/cli/utils/docker-prereq.d.ts +4 -0
- package/dist/cli/utils/docker-prereq.d.ts.map +1 -1
- package/dist/cli/utils/docker-prereq.js +23 -6
- package/dist/cli/utils/docker-prereq.js.map +1 -1
- package/dist/config/settings.js +1 -1
- package/init/primary.sql +6 -5
- package/package.json +3 -2
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
|
-
|
|
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
|
-
|
|
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
|
|
42
|
-
|
|
58
|
+
# Start the interactive CLI
|
|
59
|
+
clawsql
|
|
60
|
+
|
|
61
|
+
# Start platform services
|
|
62
|
+
> /start
|
|
43
63
|
|
|
44
64
|
# Configure MySQL credentials
|
|
45
|
-
|
|
46
|
-
|
|
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
|
-
|
|
72
|
+
> /instances discover 172.18.0.0/24 --user root --password yourpassword
|
|
53
73
|
|
|
54
74
|
# Or register instances manually
|
|
55
|
-
|
|
75
|
+
> /instances register --host mysql-primary --port 3306
|
|
56
76
|
|
|
57
77
|
# Sync to ProxySQL
|
|
58
|
-
|
|
78
|
+
> /clusters sync
|
|
59
79
|
|
|
60
80
|
# Verify health
|
|
61
|
-
|
|
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
|
-
|
|
359
|
+
clawsql -c "/doctor"
|
|
340
360
|
```
|
|
341
361
|
|
|
342
362
|
### View Logs
|
|
343
363
|
|
|
344
364
|
```bash
|
|
345
|
-
docker
|
|
346
|
-
docker
|
|
347
|
-
docker
|
|
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.
|
|
93
|
+
version: '0.1.2',
|
|
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.
|
|
118
|
+
version: '0.1.2',
|
|
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;
|
|
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;AAUrD;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,OAwH1B,CAAC;AA4EF,eAAe,YAAY,CAAC"}
|
|
@@ -38,7 +38,7 @@ exports.startCommand = {
|
|
|
38
38
|
}
|
|
39
39
|
if (!dockerInfo.composeCommand) {
|
|
40
40
|
console.log(formatter.error('Docker Compose not found'));
|
|
41
|
-
console.log(
|
|
41
|
+
console.log((0, docker_prereq_js_1.getComposeInstallGuidance)(dockerInfo.runtime));
|
|
42
42
|
return;
|
|
43
43
|
}
|
|
44
44
|
console.log(formatter.keyValue('Runtime', `${dockerInfo.runtime} ${dockerInfo.version}`));
|
|
@@ -57,6 +57,8 @@ exports.startCommand = {
|
|
|
57
57
|
await (0, docker_files_js_1.ensureEnvFile)();
|
|
58
58
|
// Build compose arguments
|
|
59
59
|
const composeArgs = [];
|
|
60
|
+
const composeEnv = {};
|
|
61
|
+
const isPodmanCompose = dockerInfo.composeCommand[0] === 'podman-compose';
|
|
60
62
|
// Add file flags first if demo mode
|
|
61
63
|
if (demoMode) {
|
|
62
64
|
composeArgs.push('-f', 'docker-compose.yml', '-f', 'docker-compose.demo.yml');
|
|
@@ -68,14 +70,23 @@ exports.startCommand = {
|
|
|
68
70
|
// Add metadata profile if no external DB configured
|
|
69
71
|
const metadataDbHost = process.env.METADATA_DB_HOST;
|
|
70
72
|
if (!metadataDbHost) {
|
|
71
|
-
|
|
73
|
+
// podman-compose doesn't support --profile flag, use environment variable instead
|
|
74
|
+
if (isPodmanCompose) {
|
|
75
|
+
composeEnv.COMPOSE_PROFILES = 'metadata';
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
composeArgs.push('--profile', 'metadata');
|
|
79
|
+
}
|
|
72
80
|
console.log(formatter.info('Auto-provisioning metadata database...'));
|
|
73
81
|
}
|
|
74
82
|
// Add up command
|
|
75
83
|
composeArgs.push('up', '-d');
|
|
76
84
|
// Execute compose up
|
|
77
85
|
console.log();
|
|
78
|
-
const result = await executeCommand(dockerInfo.composeCommand, composeArgs, {
|
|
86
|
+
const result = await executeCommand(dockerInfo.composeCommand, composeArgs, {
|
|
87
|
+
cwd: dockerPath,
|
|
88
|
+
env: Object.keys(composeEnv).length > 0 ? composeEnv : undefined,
|
|
89
|
+
});
|
|
79
90
|
if (!result.success) {
|
|
80
91
|
console.log(formatter.error('Failed to start services'));
|
|
81
92
|
console.log(result.stderr);
|
|
@@ -141,6 +152,7 @@ function executeCommand(cmd, args, options) {
|
|
|
141
152
|
const proc = (0, child_process_1.spawn)(cmd[0], [...cmd.slice(1), ...args], {
|
|
142
153
|
cwd: options?.cwd,
|
|
143
154
|
stdio: options?.silent ? 'pipe' : 'inherit',
|
|
155
|
+
env: options?.env ? { ...process.env, ...options.env } : process.env,
|
|
144
156
|
});
|
|
145
157
|
let stdout = '';
|
|
146
158
|
let stderr = '';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start.js","sourceRoot":"","sources":["../../../src/cli/commands/start.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;AAGH,kDAA0B;AAC1B,iDAAsC;AACtC,8DAA4E;AAC5E,
|
|
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;
|
|
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":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUH,wCAGC;AAKD,8CAEC;AAYD,0CAsBC;
|
|
1
|
+
{"version":3,"file":"docker-files.js","sourceRoot":"","sources":["../../../src/cli/utils/docker-files.ts"],"names":[],"mappings":"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"}
|
|
@@ -37,6 +37,10 @@ export declare function getRuntimeVersion(runtime: 'docker' | 'podman'): Promise
|
|
|
37
37
|
* Check all Docker prerequisites and return comprehensive info
|
|
38
38
|
*/
|
|
39
39
|
export declare function checkDockerPrerequisites(): Promise<DockerInfo>;
|
|
40
|
+
/**
|
|
41
|
+
* Get installation guidance for Docker Compose or Podman Compose
|
|
42
|
+
*/
|
|
43
|
+
export declare function getComposeInstallGuidance(runtime: 'docker' | 'podman' | null): string;
|
|
40
44
|
/**
|
|
41
45
|
* Get installation guidance for Docker
|
|
42
46
|
*/
|
|
@@ -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,
|
|
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,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"}
|
|
@@ -11,6 +11,7 @@ exports.detectComposeCommand = detectComposeCommand;
|
|
|
11
11
|
exports.checkDaemonRunning = checkDaemonRunning;
|
|
12
12
|
exports.getRuntimeVersion = getRuntimeVersion;
|
|
13
13
|
exports.checkDockerPrerequisites = checkDockerPrerequisites;
|
|
14
|
+
exports.getComposeInstallGuidance = getComposeInstallGuidance;
|
|
14
15
|
exports.getDockerInstallGuidance = getDockerInstallGuidance;
|
|
15
16
|
exports.formatDockerInfo = formatDockerInfo;
|
|
16
17
|
const child_process_1 = require("child_process");
|
|
@@ -165,12 +166,28 @@ async function checkDockerPrerequisites() {
|
|
|
165
166
|
daemonRunning,
|
|
166
167
|
};
|
|
167
168
|
}
|
|
169
|
+
/**
|
|
170
|
+
* Get installation guidance for Docker Compose or Podman Compose
|
|
171
|
+
*/
|
|
172
|
+
function getComposeInstallGuidance(runtime) {
|
|
173
|
+
if (runtime === 'podman') {
|
|
174
|
+
return `Install podman-compose:
|
|
175
|
+
• Linux (dnf): dnf install podman-compose
|
|
176
|
+
• Linux (apt): apt install podman-compose
|
|
177
|
+
• pip: pip install podman-compose`;
|
|
178
|
+
}
|
|
179
|
+
// Docker or no runtime detected
|
|
180
|
+
return `Install Docker Compose:
|
|
181
|
+
• Docker Desktop (Mac/Windows): Includes docker compose
|
|
182
|
+
• Linux (apt): apt install docker-compose-plugin
|
|
183
|
+
• Linux (dnf): dnf install docker-compose-plugin
|
|
184
|
+
• Standalone: https://github.com/docker/compose/releases`;
|
|
185
|
+
}
|
|
168
186
|
/**
|
|
169
187
|
* Get installation guidance for Docker
|
|
170
188
|
*/
|
|
171
189
|
function getDockerInstallGuidance() {
|
|
172
|
-
return `
|
|
173
|
-
Docker is required to run ClawSQL platform.
|
|
190
|
+
return `Docker is required to run ClawSQL platform.
|
|
174
191
|
|
|
175
192
|
Install Docker:
|
|
176
193
|
• macOS: https://docs.docker.com/desktop/install/mac-install/
|
|
@@ -178,13 +195,13 @@ Install Docker:
|
|
|
178
195
|
• Linux: https://docs.docker.com/engine/install/
|
|
179
196
|
|
|
180
197
|
After installing Docker, also ensure Docker Compose is available:
|
|
181
|
-
• Docker Desktop
|
|
182
|
-
• Linux:
|
|
198
|
+
• Docker Desktop (Mac/Windows): Includes docker compose
|
|
199
|
+
• Linux: apt install docker-compose-plugin
|
|
200
|
+
• Standalone: https://github.com/docker/compose/releases
|
|
183
201
|
|
|
184
202
|
Alternative: Podman
|
|
185
203
|
• Install: https://podman.io/getting-started/installation
|
|
186
|
-
• Compose:
|
|
187
|
-
`.trim();
|
|
204
|
+
• Compose: dnf install podman-compose or apt install podman-compose`;
|
|
188
205
|
}
|
|
189
206
|
/**
|
|
190
207
|
* Format Docker info for display
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"docker-prereq.js","sourceRoot":"","sources":["../../../src/cli/utils/docker-prereq.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAgEH,sCAsBC;AAKD,oDAsCC;AAKD,gDAOC;AAKD,8CASC;AAKD,4DAwBC;AAKD,
|
|
1
|
+
{"version":3,"file":"docker-prereq.js","sourceRoot":"","sources":["../../../src/cli/utils/docker-prereq.ts"],"names":[],"mappings":"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"}
|
package/dist/config/settings.js
CHANGED
|
@@ -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.
|
|
97
|
+
appVersion: zod_1.z.string().default('0.1.2'),
|
|
98
98
|
debug: zod_1.z.boolean().default(false),
|
|
99
99
|
metadataDb: MetadataDBSettingsSchema,
|
|
100
100
|
orchestrator: OrchestratorSettingsSchema,
|
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
|
-
|
|
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.
|
|
3
|
+
"version": "0.1.2",
|
|
4
4
|
"description": "MySQL Cluster Automation and Operations Management System",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -79,6 +79,7 @@
|
|
|
79
79
|
"docker-compose.yml",
|
|
80
80
|
"docker-compose.demo.yml",
|
|
81
81
|
"init",
|
|
82
|
-
".env.example"
|
|
82
|
+
".env.example",
|
|
83
|
+
"package-lock.json"
|
|
83
84
|
]
|
|
84
85
|
}
|