@newpeak/barista-cli 0.1.209 ā 0.1.210
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/dist/commands/liberica/caturra/clients/approve.d.ts +3 -0
- package/dist/commands/liberica/caturra/clients/approve.d.ts.map +1 -0
- package/dist/commands/liberica/caturra/clients/approve.js +45 -0
- package/dist/commands/liberica/caturra/clients/approve.js.map +1 -0
- package/dist/commands/liberica/caturra/clients/index.d.ts +3 -0
- package/dist/commands/liberica/caturra/clients/index.d.ts.map +1 -0
- package/dist/commands/liberica/caturra/clients/index.js +15 -0
- package/dist/commands/liberica/caturra/clients/index.js.map +1 -0
- package/dist/commands/liberica/caturra/clients/list.d.ts +3 -0
- package/dist/commands/liberica/caturra/clients/list.d.ts.map +1 -0
- package/dist/commands/liberica/caturra/clients/list.js +75 -0
- package/dist/commands/liberica/caturra/clients/list.js.map +1 -0
- package/dist/commands/liberica/caturra/clients/register.d.ts +3 -0
- package/dist/commands/liberica/caturra/clients/register.d.ts.map +1 -0
- package/dist/commands/liberica/caturra/clients/register.js +57 -0
- package/dist/commands/liberica/caturra/clients/register.js.map +1 -0
- package/dist/commands/liberica/caturra/clients/revoke.d.ts +3 -0
- package/dist/commands/liberica/caturra/clients/revoke.d.ts.map +1 -0
- package/dist/commands/liberica/caturra/clients/revoke.js +44 -0
- package/dist/commands/liberica/caturra/clients/revoke.js.map +1 -0
- package/dist/commands/liberica/caturra/index.d.ts +3 -0
- package/dist/commands/liberica/caturra/index.d.ts.map +1 -0
- package/dist/commands/liberica/caturra/index.js +23 -0
- package/dist/commands/liberica/caturra/index.js.map +1 -0
- package/dist/commands/liberica/caturra/metadata/columns.d.ts +3 -0
- package/dist/commands/liberica/caturra/metadata/columns.d.ts.map +1 -0
- package/dist/commands/liberica/caturra/metadata/columns.js +68 -0
- package/dist/commands/liberica/caturra/metadata/columns.js.map +1 -0
- package/dist/commands/liberica/caturra/metadata/database-info.d.ts +3 -0
- package/dist/commands/liberica/caturra/metadata/database-info.d.ts.map +1 -0
- package/dist/commands/liberica/caturra/metadata/database-info.js +44 -0
- package/dist/commands/liberica/caturra/metadata/database-info.js.map +1 -0
- package/dist/commands/liberica/caturra/metadata/index.d.ts +3 -0
- package/dist/commands/liberica/caturra/metadata/index.d.ts.map +1 -0
- package/dist/commands/liberica/caturra/metadata/index.js +15 -0
- package/dist/commands/liberica/caturra/metadata/index.js.map +1 -0
- package/dist/commands/liberica/caturra/metadata/query.d.ts +3 -0
- package/dist/commands/liberica/caturra/metadata/query.d.ts.map +1 -0
- package/dist/commands/liberica/caturra/metadata/query.js +63 -0
- package/dist/commands/liberica/caturra/metadata/query.js.map +1 -0
- package/dist/commands/liberica/caturra/metadata/tables.d.ts +3 -0
- package/dist/commands/liberica/caturra/metadata/tables.d.ts.map +1 -0
- package/dist/commands/liberica/caturra/metadata/tables.js +51 -0
- package/dist/commands/liberica/caturra/metadata/tables.js.map +1 -0
- package/dist/commands/liberica/index.d.ts.map +1 -1
- package/dist/commands/liberica/index.js +3 -0
- package/dist/commands/liberica/index.js.map +1 -1
- package/dist/commands/liberica/outsourcing-orders/create.d.ts.map +1 -1
- package/dist/commands/liberica/outsourcing-orders/create.js +42 -47
- package/dist/commands/liberica/outsourcing-orders/create.js.map +1 -1
- package/dist/core/api/client.d.ts +34 -0
- package/dist/core/api/client.d.ts.map +1 -1
- package/dist/core/api/client.js +159 -0
- package/dist/core/api/client.js.map +1 -1
- package/dist/types/caturra.d.ts +93 -0
- package/dist/types/caturra.d.ts.map +1 -0
- package/dist/types/caturra.js +6 -0
- package/dist/types/caturra.js.map +1 -0
- package/package.json +1 -1
- package/skills/barista-cli/data/commands.json +49 -1
- package/skills/barista-cli/data/commands.yaml +33 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"approve.d.ts","sourceRoot":"","sources":["../../../../../src/commands/liberica/caturra/clients/approve.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,wBAAgB,kCAAkC,IAAI,OAAO,CA4C5D"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import chalk from 'chalk';
|
|
3
|
+
import { configManager } from '../../../../core/config/manager.js';
|
|
4
|
+
import { apiClient } from '../../../../core/api/client.js';
|
|
5
|
+
import { shouldUseJson } from '../../../../utils/output.js';
|
|
6
|
+
export function createCaturraClientsApproveCommand() {
|
|
7
|
+
const command = new Command('approve');
|
|
8
|
+
command
|
|
9
|
+
.description('Approve a pending Caturra client')
|
|
10
|
+
.argument('<clientId>', 'Client ID or UUID to approve')
|
|
11
|
+
.option('--remark <remark>', 'Approval remark')
|
|
12
|
+
.option('--dry-run', 'Preview without executing')
|
|
13
|
+
.option('--json', 'Output as JSON')
|
|
14
|
+
.action(async (clientId, options) => {
|
|
15
|
+
const context = configManager.getCurrentContext();
|
|
16
|
+
const environment = options.env || context.environment;
|
|
17
|
+
const tenant = options.tenant || context.tenant;
|
|
18
|
+
const outputJson = shouldUseJson(options);
|
|
19
|
+
if (options.dryRun) {
|
|
20
|
+
console.log(chalk.bold('\nš Dry-run: Approve Caturra Client\n'));
|
|
21
|
+
console.log(chalk.gray(` Client ID: ${clientId}`));
|
|
22
|
+
console.log(chalk.gray(` Remark: ${options.remark || '-'}`));
|
|
23
|
+
console.log();
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
const response = await apiClient.approveCaturraClient(environment, tenant, {
|
|
27
|
+
clientId,
|
|
28
|
+
approverRemark: options.remark,
|
|
29
|
+
});
|
|
30
|
+
if (!response.success) {
|
|
31
|
+
console.error(chalk.red(`\nā Approval failed: ${response.error?.message || 'Unknown error'}`));
|
|
32
|
+
process.exit(1);
|
|
33
|
+
}
|
|
34
|
+
if (outputJson) {
|
|
35
|
+
console.log(JSON.stringify({ success: true, data: response.data }, null, 2));
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
console.log(chalk.bold('\nā
Client approved successfully!\n'));
|
|
39
|
+
console.log(chalk.green(' New credentials have been generated.'));
|
|
40
|
+
console.log(chalk.gray(' The client will receive them via polling.'));
|
|
41
|
+
console.log();
|
|
42
|
+
});
|
|
43
|
+
return command;
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=approve.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"approve.js","sourceRoot":"","sources":["../../../../../src/commands/liberica/caturra/clients/approve.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAG5D,MAAM,UAAU,kCAAkC;IAChD,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC;IACvC,OAAO;SACJ,WAAW,CAAC,kCAAkC,CAAC;SAC/C,QAAQ,CAAC,YAAY,EAAE,8BAA8B,CAAC;SACtD,MAAM,CAAC,mBAAmB,EAAE,iBAAiB,CAAC;SAC9C,MAAM,CAAC,WAAW,EAAE,2BAA2B,CAAC;SAChD,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;SAClC,MAAM,CAAC,KAAK,EAAE,QAAgB,EAAE,OAAO,EAAE,EAAE;QAC1C,MAAM,OAAO,GAAG,aAAa,CAAC,iBAAiB,EAAE,CAAC;QAClD,MAAM,WAAW,GAAI,OAAO,CAAC,GAAmB,IAAI,OAAO,CAAC,WAAW,CAAC;QACxE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC;QAChD,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;QAE1C,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC,CAAC;YAClE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,QAAQ,EAAE,CAAC,CAAC,CAAC;YACpD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,OAAO,CAAC,MAAM,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC;YACjE,OAAO,CAAC,GAAG,EAAE,CAAC;YACd,OAAO;QACT,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,oBAAoB,CAAC,WAAW,EAAE,MAAM,EAAE;YACzE,QAAQ;YACR,cAAc,EAAE,OAAO,CAAC,MAA4B;SACrD,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;YACtB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,wBAAwB,QAAQ,CAAC,KAAK,EAAE,OAAO,IAAI,eAAe,EAAE,CAAC,CAAC,CAAC;YAC/F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,IAAI,UAAU,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAC7E,OAAO;QACT,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC,CAAC;QAC/D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC,CAAC;QACnE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC,CAAC;QACvE,OAAO,CAAC,GAAG,EAAE,CAAC;IAChB,CAAC,CAAC,CAAC;IAEL,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/commands/liberica/caturra/clients/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,wBAAgB,2BAA2B,IAAI,OAAO,CAUrD"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import { createCaturraClientsListCommand } from './list.js';
|
|
3
|
+
import { createCaturraClientsRegisterCommand } from './register.js';
|
|
4
|
+
import { createCaturraClientsApproveCommand } from './approve.js';
|
|
5
|
+
import { createCaturraClientsRevokeCommand } from './revoke.js';
|
|
6
|
+
export function createCaturraClientsCommand() {
|
|
7
|
+
const clientsCommand = new Command('clients');
|
|
8
|
+
clientsCommand.description('Manage Caturra clients');
|
|
9
|
+
clientsCommand.addCommand(createCaturraClientsListCommand());
|
|
10
|
+
clientsCommand.addCommand(createCaturraClientsRegisterCommand());
|
|
11
|
+
clientsCommand.addCommand(createCaturraClientsApproveCommand());
|
|
12
|
+
clientsCommand.addCommand(createCaturraClientsRevokeCommand());
|
|
13
|
+
return clientsCommand;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/commands/liberica/caturra/clients/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,+BAA+B,EAAE,MAAM,WAAW,CAAC;AAC5D,OAAO,EAAE,mCAAmC,EAAE,MAAM,eAAe,CAAC;AACpE,OAAO,EAAE,kCAAkC,EAAE,MAAM,cAAc,CAAC;AAClE,OAAO,EAAE,iCAAiC,EAAE,MAAM,aAAa,CAAC;AAEhE,MAAM,UAAU,2BAA2B;IACzC,MAAM,cAAc,GAAG,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC;IAC9C,cAAc,CAAC,WAAW,CAAC,wBAAwB,CAAC,CAAC;IAErD,cAAc,CAAC,UAAU,CAAC,+BAA+B,EAAE,CAAC,CAAC;IAC7D,cAAc,CAAC,UAAU,CAAC,mCAAmC,EAAE,CAAC,CAAC;IACjE,cAAc,CAAC,UAAU,CAAC,kCAAkC,EAAE,CAAC,CAAC;IAChE,cAAc,CAAC,UAAU,CAAC,iCAAiC,EAAE,CAAC,CAAC;IAE/D,OAAO,cAAc,CAAC;AACxB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../../../src/commands/liberica/caturra/clients/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,wBAAgB,+BAA+B,IAAI,OAAO,CAkFzD"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import chalk from 'chalk';
|
|
3
|
+
import Table from 'cli-table3';
|
|
4
|
+
import { configManager } from '../../../../core/config/manager.js';
|
|
5
|
+
import { apiClient } from '../../../../core/api/client.js';
|
|
6
|
+
import { shouldUseJson } from '../../../../utils/output.js';
|
|
7
|
+
export function createCaturraClientsListCommand() {
|
|
8
|
+
const command = new Command('list');
|
|
9
|
+
command
|
|
10
|
+
.description('List Caturra clients')
|
|
11
|
+
.option('-p, --page <number>', 'Page number', '1')
|
|
12
|
+
.option('-s, --size <number>', 'Page size', '20')
|
|
13
|
+
.option('--status <status>', 'Filter by status (PENDING/APPROVED/REVOKED)')
|
|
14
|
+
.option('--search <text>', 'Search text')
|
|
15
|
+
.option('--json', 'Output as JSON')
|
|
16
|
+
.action(async (options) => {
|
|
17
|
+
const context = configManager.getCurrentContext();
|
|
18
|
+
const environment = options.env || context.environment;
|
|
19
|
+
const tenant = options.tenant || context.tenant;
|
|
20
|
+
const outputJson = shouldUseJson(options);
|
|
21
|
+
const response = await apiClient.listCaturraClients(environment, tenant, {
|
|
22
|
+
pageNo: parseInt(options.page, 10),
|
|
23
|
+
pageSize: parseInt(options.size, 10),
|
|
24
|
+
status: options.status,
|
|
25
|
+
searchText: options.search,
|
|
26
|
+
});
|
|
27
|
+
if (!response.success) {
|
|
28
|
+
console.error(chalk.red(`\nā Failed to list clients: ${response.error?.message || 'Unknown error'}`));
|
|
29
|
+
process.exit(1);
|
|
30
|
+
}
|
|
31
|
+
const data = response.data;
|
|
32
|
+
if (outputJson) {
|
|
33
|
+
console.log(JSON.stringify({ success: true, data }, null, 2));
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
const records = data?.rows || [];
|
|
37
|
+
console.log(chalk.bold('\nā Caturra Clients\n'));
|
|
38
|
+
if (records.length === 0) {
|
|
39
|
+
console.log(chalk.gray(' No clients found\n'));
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
const table = new Table({
|
|
43
|
+
head: [
|
|
44
|
+
chalk.bold('ID'),
|
|
45
|
+
chalk.bold('Name'),
|
|
46
|
+
chalk.bold('Machine ID'),
|
|
47
|
+
chalk.bold('Status'),
|
|
48
|
+
chalk.bold('API Key'),
|
|
49
|
+
chalk.bold('Email'),
|
|
50
|
+
chalk.bold('Created'),
|
|
51
|
+
],
|
|
52
|
+
colWidths: [8, 15, 18, 10, 38, 20, 12],
|
|
53
|
+
style: { head: [], border: [] },
|
|
54
|
+
});
|
|
55
|
+
for (const client of records) {
|
|
56
|
+
const statusColor = client.status === 'APPROVED' ? chalk.green :
|
|
57
|
+
client.status === 'PENDING' ? chalk.yellow :
|
|
58
|
+
chalk.red;
|
|
59
|
+
table.push([
|
|
60
|
+
String(client.clientId ?? '-').substring(0, 8),
|
|
61
|
+
String(client.clientName ?? '-').substring(0, 14),
|
|
62
|
+
String(client.machineId ?? '-').substring(0, 17),
|
|
63
|
+
statusColor(String(client.status ?? '-')),
|
|
64
|
+
String(client.apiKey ?? '-').substring(0, 37),
|
|
65
|
+
String(client.contactEmail ?? '-').substring(0, 19),
|
|
66
|
+
String(client.createTime ?? '-').substring(0, 11),
|
|
67
|
+
]);
|
|
68
|
+
}
|
|
69
|
+
console.log(table.toString());
|
|
70
|
+
console.log(chalk.gray(`\n Total: ${data?.totalRows ?? 0} | Page: ${data?.pageNo ?? 1} / ${Math.ceil((data?.totalRows ?? 0) / (data?.pageSize ?? 20)) || 1} | Size: ${data?.pageSize ?? 20}`));
|
|
71
|
+
console.log();
|
|
72
|
+
});
|
|
73
|
+
return command;
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../../../src/commands/liberica/caturra/clients/list.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../../../../src/commands/liberica/caturra/clients/register.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,wBAAgB,mCAAmC,IAAI,OAAO,CAyD7D"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import chalk from 'chalk';
|
|
3
|
+
import { configManager } from '../../../../core/config/manager.js';
|
|
4
|
+
import { apiClient } from '../../../../core/api/client.js';
|
|
5
|
+
import { shouldUseJson } from '../../../../utils/output.js';
|
|
6
|
+
export function createCaturraClientsRegisterCommand() {
|
|
7
|
+
const command = new Command('register');
|
|
8
|
+
command
|
|
9
|
+
.description('Register a new Caturra client')
|
|
10
|
+
.requiredOption('-n, --name <name>', 'Client name')
|
|
11
|
+
.option('-d, --description <desc>', 'Client description')
|
|
12
|
+
.option('-e, --email <email>', 'Contact email')
|
|
13
|
+
.option('--dry-run', 'Preview without executing')
|
|
14
|
+
.option('--json', 'Output as JSON')
|
|
15
|
+
.action(async (options) => {
|
|
16
|
+
const context = configManager.getCurrentContext();
|
|
17
|
+
const environment = options.env || context.environment;
|
|
18
|
+
const tenant = options.tenant || context.tenant;
|
|
19
|
+
const outputJson = shouldUseJson(options);
|
|
20
|
+
if (options.dryRun) {
|
|
21
|
+
console.log(chalk.bold('\nš Dry-run: Register Caturra Client\n'));
|
|
22
|
+
console.log(chalk.gray(` Name: ${options.name}`));
|
|
23
|
+
console.log(chalk.gray(` Description: ${options.description || '-'}`));
|
|
24
|
+
console.log(chalk.gray(` Email: ${options.email || '-'}`));
|
|
25
|
+
console.log(chalk.gray(` Tenant: ${tenant}`));
|
|
26
|
+
console.log();
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
const response = await apiClient.registerCaturraClient(environment, tenant, {
|
|
30
|
+
clientName: options.name,
|
|
31
|
+
clientDescription: options.description,
|
|
32
|
+
contactEmail: options.email,
|
|
33
|
+
});
|
|
34
|
+
if (!response.success) {
|
|
35
|
+
console.error(chalk.red(`\nā Registration failed: ${response.error?.message || 'Unknown error'}`));
|
|
36
|
+
process.exit(1);
|
|
37
|
+
}
|
|
38
|
+
const client = response.data;
|
|
39
|
+
if (outputJson) {
|
|
40
|
+
console.log(JSON.stringify({ success: true, data: client }, null, 2));
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
console.log(chalk.bold('\nā
Client registered successfully!\n'));
|
|
44
|
+
if (client) {
|
|
45
|
+
console.log(chalk.green(` UUID: ${client.clientUuid}`));
|
|
46
|
+
console.log(chalk.green(` Name: ${client.clientName}`));
|
|
47
|
+
console.log(chalk.green(` API Key: ${client.apiKey}`));
|
|
48
|
+
console.log(chalk.yellow(` Status: ${client.status} (requires approval)`));
|
|
49
|
+
console.log();
|
|
50
|
+
console.log(chalk.gray(' The client will receive credentials via polling after approval.'));
|
|
51
|
+
console.log(chalk.gray(' Use "barista liberica caturra clients approve" to approve.'));
|
|
52
|
+
console.log();
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
return command;
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=register.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register.js","sourceRoot":"","sources":["../../../../../src/commands/liberica/caturra/clients/register.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"revoke.d.ts","sourceRoot":"","sources":["../../../../../src/commands/liberica/caturra/clients/revoke.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,wBAAgB,iCAAiC,IAAI,OAAO,CA2C3D"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import chalk from 'chalk';
|
|
3
|
+
import { configManager } from '../../../../core/config/manager.js';
|
|
4
|
+
import { apiClient } from '../../../../core/api/client.js';
|
|
5
|
+
import { shouldUseJson } from '../../../../utils/output.js';
|
|
6
|
+
export function createCaturraClientsRevokeCommand() {
|
|
7
|
+
const command = new Command('revoke');
|
|
8
|
+
command
|
|
9
|
+
.description('Revoke an approved Caturra client')
|
|
10
|
+
.argument('<clientId>', 'Client ID or UUID to revoke')
|
|
11
|
+
.option('-r, --reason <reason>', 'Revocation reason')
|
|
12
|
+
.option('--dry-run', 'Preview without executing')
|
|
13
|
+
.option('--json', 'Output as JSON')
|
|
14
|
+
.action(async (clientId, options) => {
|
|
15
|
+
const context = configManager.getCurrentContext();
|
|
16
|
+
const environment = options.env || context.environment;
|
|
17
|
+
const tenant = options.tenant || context.tenant;
|
|
18
|
+
const outputJson = shouldUseJson(options);
|
|
19
|
+
if (options.dryRun) {
|
|
20
|
+
console.log(chalk.bold('\nš Dry-run: Revoke Caturra Client\n'));
|
|
21
|
+
console.log(chalk.gray(` Client ID: ${clientId}`));
|
|
22
|
+
console.log(chalk.gray(` Reason: ${options.reason || '-'}`));
|
|
23
|
+
console.log();
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
const response = await apiClient.revokeCaturraClient(environment, tenant, {
|
|
27
|
+
clientId,
|
|
28
|
+
reason: options.reason,
|
|
29
|
+
});
|
|
30
|
+
if (!response.success) {
|
|
31
|
+
console.error(chalk.red(`\nā Revoke failed: ${response.error?.message || 'Unknown error'}`));
|
|
32
|
+
process.exit(1);
|
|
33
|
+
}
|
|
34
|
+
if (outputJson) {
|
|
35
|
+
console.log(JSON.stringify({ success: true, data: response.data }, null, 2));
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
console.log(chalk.bold('\nā
Client revoked successfully!\n'));
|
|
39
|
+
console.log(chalk.yellow(' The client can no longer connect to the server.'));
|
|
40
|
+
console.log();
|
|
41
|
+
});
|
|
42
|
+
return command;
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=revoke.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"revoke.js","sourceRoot":"","sources":["../../../../../src/commands/liberica/caturra/clients/revoke.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAG5D,MAAM,UAAU,iCAAiC;IAC/C,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC;IACtC,OAAO;SACJ,WAAW,CAAC,mCAAmC,CAAC;SAChD,QAAQ,CAAC,YAAY,EAAE,6BAA6B,CAAC;SACrD,MAAM,CAAC,uBAAuB,EAAE,mBAAmB,CAAC;SACpD,MAAM,CAAC,WAAW,EAAE,2BAA2B,CAAC;SAChD,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;SAClC,MAAM,CAAC,KAAK,EAAE,QAAgB,EAAE,OAAO,EAAE,EAAE;QAC1C,MAAM,OAAO,GAAG,aAAa,CAAC,iBAAiB,EAAE,CAAC;QAClD,MAAM,WAAW,GAAI,OAAO,CAAC,GAAmB,IAAI,OAAO,CAAC,WAAW,CAAC;QACxE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC;QAChD,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;QAE1C,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC,CAAC;YACjE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,QAAQ,EAAE,CAAC,CAAC,CAAC;YACpD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,OAAO,CAAC,MAAM,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC;YACjE,OAAO,CAAC,GAAG,EAAE,CAAC;YACd,OAAO;QACT,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE;YACxE,QAAQ;YACR,MAAM,EAAE,OAAO,CAAC,MAA4B;SAC7C,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;YACtB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,sBAAsB,QAAQ,CAAC,KAAK,EAAE,OAAO,IAAI,eAAe,EAAE,CAAC,CAAC,CAAC;YAC7F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,IAAI,UAAU,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAC7E,OAAO;QACT,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC,CAAC;QAC9D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,mDAAmD,CAAC,CAAC,CAAC;QAC/E,OAAO,CAAC,GAAG,EAAE,CAAC;IAChB,CAAC,CAAC,CAAC;IAEL,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/commands/liberica/caturra/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,wBAAgB,oBAAoB,IAAI,OAAO,CAqB9C"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import { createCaturraMetadataCommand } from './metadata/index.js';
|
|
3
|
+
import { createCaturraClientsCommand } from './clients/index.js';
|
|
4
|
+
export function createCaturraCommand() {
|
|
5
|
+
const caturraCommand = new Command('caturra');
|
|
6
|
+
caturraCommand.description('Manage Caturra clients and query database metadata');
|
|
7
|
+
caturraCommand.addCommand(createCaturraMetadataCommand());
|
|
8
|
+
caturraCommand.addCommand(createCaturraClientsCommand());
|
|
9
|
+
caturraCommand.action(() => {
|
|
10
|
+
console.log(' Use "barista liberica caturra metadata <command>" for database metadata queries');
|
|
11
|
+
console.log(' Use "barista liberica caturra clients <command>" for client management');
|
|
12
|
+
console.log();
|
|
13
|
+
console.log(' Examples:');
|
|
14
|
+
console.log(' barista liberica caturra metadata tables');
|
|
15
|
+
console.log(' barista liberica caturra metadata columns --table <tableName>');
|
|
16
|
+
console.log(' barista liberica caturra metadata query --client <uuid> --sql "SELECT * FROM ..."');
|
|
17
|
+
console.log(' barista liberica caturra clients list');
|
|
18
|
+
console.log(' barista liberica caturra clients register --name "MyApp"');
|
|
19
|
+
console.log();
|
|
20
|
+
});
|
|
21
|
+
return caturraCommand;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/commands/liberica/caturra/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,4BAA4B,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAC;AAEjE,MAAM,UAAU,oBAAoB;IAClC,MAAM,cAAc,GAAG,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC;IAC9C,cAAc,CAAC,WAAW,CAAC,oDAAoD,CAAC,CAAC;IAEjF,cAAc,CAAC,UAAU,CAAC,4BAA4B,EAAE,CAAC,CAAC;IAC1D,cAAc,CAAC,UAAU,CAAC,2BAA2B,EAAE,CAAC,CAAC;IAEzD,cAAc,CAAC,MAAM,CAAC,GAAG,EAAE;QACzB,OAAO,CAAC,GAAG,CAAC,mFAAmF,CAAC,CAAC;QACjG,OAAO,CAAC,GAAG,CAAC,0EAA0E,CAAC,CAAC;QACxF,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC;QAC5D,OAAO,CAAC,GAAG,CAAC,mEAAmE,CAAC,CAAC;QACjF,OAAO,CAAC,GAAG,CAAC,uFAAuF,CAAC,CAAC;QACrG,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;QACzD,OAAO,CAAC,GAAG,CAAC,8DAA8D,CAAC,CAAC;QAC5E,OAAO,CAAC,GAAG,EAAE,CAAC;IAChB,CAAC,CAAC,CAAC;IAEH,OAAO,cAAc,CAAC;AACxB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"columns.d.ts","sourceRoot":"","sources":["../../../../../src/commands/liberica/caturra/metadata/columns.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,wBAAgB,mCAAmC,IAAI,OAAO,CAgF7D"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import chalk from 'chalk';
|
|
3
|
+
import Table from 'cli-table3';
|
|
4
|
+
import { configManager } from '../../../../core/config/manager.js';
|
|
5
|
+
import { apiClient } from '../../../../core/api/client.js';
|
|
6
|
+
import { shouldUseJson } from '../../../../utils/output.js';
|
|
7
|
+
export function createCaturraMetadataColumnsCommand() {
|
|
8
|
+
const command = new Command('columns');
|
|
9
|
+
command
|
|
10
|
+
.description('Get columns for a specific table')
|
|
11
|
+
.requiredOption('-t, --table <tableName>', 'Table name')
|
|
12
|
+
.option('-c, --client <uuid>', 'Caturra client UUID for real-time query')
|
|
13
|
+
.option('--json', 'Output as JSON')
|
|
14
|
+
.action(async (options) => {
|
|
15
|
+
const context = configManager.getCurrentContext();
|
|
16
|
+
const environment = options.env || context.environment;
|
|
17
|
+
const tenant = options.tenant || context.tenant;
|
|
18
|
+
const outputJson = shouldUseJson(options);
|
|
19
|
+
const response = await apiClient.getCaturraColumns(environment, tenant, {
|
|
20
|
+
tableName: options.table,
|
|
21
|
+
clientId: options.client,
|
|
22
|
+
});
|
|
23
|
+
if (!response.success) {
|
|
24
|
+
console.error(chalk.red(`\nā Failed to get columns: ${response.error?.message || 'Unknown error'}`));
|
|
25
|
+
process.exit(1);
|
|
26
|
+
}
|
|
27
|
+
const columns = response.data || [];
|
|
28
|
+
if (outputJson) {
|
|
29
|
+
console.log(JSON.stringify({ success: true, tableName: options.table, data: columns }, null, 2));
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
console.log(chalk.bold(`\nš Columns: ${options.table}\n`));
|
|
33
|
+
if (columns.length === 0) {
|
|
34
|
+
console.log(chalk.gray(' No columns found\n'));
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
const table = new Table({
|
|
38
|
+
head: [
|
|
39
|
+
chalk.bold('#'),
|
|
40
|
+
chalk.bold('Column'),
|
|
41
|
+
chalk.bold('Type'),
|
|
42
|
+
chalk.bold('Size'),
|
|
43
|
+
chalk.bold('Nullable'),
|
|
44
|
+
chalk.bold('PK'),
|
|
45
|
+
chalk.bold('Auto'),
|
|
46
|
+
chalk.bold('Default'),
|
|
47
|
+
],
|
|
48
|
+
colWidths: [4, 22, 12, 8, 8, 4, 5, 12],
|
|
49
|
+
style: { head: [], border: [] },
|
|
50
|
+
});
|
|
51
|
+
columns.forEach((col, i) => {
|
|
52
|
+
table.push([
|
|
53
|
+
String(col.ordinalPosition ?? i + 1),
|
|
54
|
+
col.columnName,
|
|
55
|
+
col.dataType,
|
|
56
|
+
col.columnSize ?? '-',
|
|
57
|
+
col.nullable ? 'YES' : 'NO',
|
|
58
|
+
col.primaryKey ? 'ā
' : '',
|
|
59
|
+
col.autoIncrement ? 'ā' : '',
|
|
60
|
+
col.defaultValue ?? '-',
|
|
61
|
+
]);
|
|
62
|
+
});
|
|
63
|
+
console.log(table.toString());
|
|
64
|
+
console.log(chalk.gray(`\n Total: ${columns.length} columns\n`));
|
|
65
|
+
});
|
|
66
|
+
return command;
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=columns.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"columns.js","sourceRoot":"","sources":["../../../../../src/commands/liberica/caturra/metadata/columns.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"database-info.d.ts","sourceRoot":"","sources":["../../../../../src/commands/liberica/caturra/metadata/database-info.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,wBAAgB,wCAAwC,IAAI,OAAO,CA8DlE"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import chalk from 'chalk';
|
|
3
|
+
import Table from 'cli-table3';
|
|
4
|
+
import { configManager } from '../../../../core/config/manager.js';
|
|
5
|
+
import { apiClient } from '../../../../core/api/client.js';
|
|
6
|
+
import { shouldUseJson } from '../../../../utils/output.js';
|
|
7
|
+
export function createCaturraMetadataDatabaseInfoCommand() {
|
|
8
|
+
const command = new Command('database-info');
|
|
9
|
+
command
|
|
10
|
+
.description('Get database information (version, charset, etc.)')
|
|
11
|
+
.option('-c, --client <uuid>', 'Caturra client UUID for real-time query')
|
|
12
|
+
.option('--json', 'Output as JSON')
|
|
13
|
+
.action(async (options) => {
|
|
14
|
+
const context = configManager.getCurrentContext();
|
|
15
|
+
const environment = options.env || context.environment;
|
|
16
|
+
const tenant = options.tenant || context.tenant;
|
|
17
|
+
const outputJson = shouldUseJson(options);
|
|
18
|
+
const response = await apiClient.getCaturraDatabaseInfo(environment, tenant, {
|
|
19
|
+
clientId: options.client,
|
|
20
|
+
});
|
|
21
|
+
if (!response.success) {
|
|
22
|
+
console.error(chalk.red(`\nā Failed to get database info: ${response.error?.message || 'Unknown error'}`));
|
|
23
|
+
process.exit(1);
|
|
24
|
+
}
|
|
25
|
+
const info = response.data;
|
|
26
|
+
if (outputJson) {
|
|
27
|
+
console.log(JSON.stringify({ success: true, data: info }, null, 2));
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
if (!info) {
|
|
31
|
+
console.log(chalk.gray(' No database info available\n'));
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
console.log(chalk.bold('\nšļø Database Information\n'));
|
|
35
|
+
const table = new Table({
|
|
36
|
+
style: { head: [], border: [] },
|
|
37
|
+
});
|
|
38
|
+
table.push({ 'Database Version': info.databaseVersion }, { 'Charset': info.charset }, { 'Collation': info.collation }, { 'Metadata Version': String(info.metadataVersion) }, { 'Last Updated': info.lastUpdated ? new Date(info.lastUpdated).toISOString() : 'N/A' }, { 'Tables': String(info.tableCount) }, { 'Columns': String(info.columnCount) });
|
|
39
|
+
console.log(table.toString());
|
|
40
|
+
console.log();
|
|
41
|
+
});
|
|
42
|
+
return command;
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=database-info.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"database-info.js","sourceRoot":"","sources":["../../../../../src/commands/liberica/caturra/metadata/database-info.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,MAAM,YAAY,CAAC;AAC/B,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAG5D,MAAM,UAAU,wCAAwC;IACtD,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,eAAe,CAAC,CAAC;IAC7C,OAAO;SACJ,WAAW,CAAC,mDAAmD,CAAC;SAChE,MAAM,CAAC,qBAAqB,EAAE,yCAAyC,CAAC;SACxE,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;SAClC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACxB,MAAM,OAAO,GAAG,aAAa,CAAC,iBAAiB,EAAE,CAAC;QAClD,MAAM,WAAW,GAAI,OAAO,CAAC,GAAmB,IAAI,OAAO,CAAC,WAAW,CAAC;QACxE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC;QAChD,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;QAE1C,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,sBAAsB,CAAC,WAAW,EAAE,MAAM,EAAE;YAC3E,QAAQ,EAAE,OAAO,CAAC,MAA4B;SAC/C,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;YACtB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,oCAAoC,QAAQ,CAAC,KAAK,EAAE,OAAO,IAAI,eAAe,EAAE,CAAC,CAAC,CAAC;YAC3G,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,IAAI,GAAG,QAAQ,CAAC,IAQd,CAAC;QAET,IAAI,UAAU,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YACpE,OAAO;QACT,CAAC;QAED,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC,CAAC;YAC1D,OAAO;QACT,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC,CAAC;QAEzD,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC;YACtB,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;SAChC,CAAC,CAAC;QAEH,KAAK,CAAC,IAAI,CACR,EAAE,kBAAkB,EAAE,IAAI,CAAC,eAAe,EAAE,EAC5C,EAAE,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,EAC3B,EAAE,WAAW,EAAE,IAAI,CAAC,SAAS,EAAE,EAC/B,EAAE,kBAAkB,EAAE,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,EACpD,EAAE,cAAc,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,EACvF,EAAE,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,EACrC,EAAE,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CACxC,CAAC;QAEF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC9B,OAAO,CAAC,GAAG,EAAE,CAAC;IAChB,CAAC,CAAC,CAAC;IAEL,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/commands/liberica/caturra/metadata/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,wBAAgB,4BAA4B,IAAI,OAAO,CAUtD"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import { createCaturraMetadataTablesCommand } from './tables.js';
|
|
3
|
+
import { createCaturraMetadataColumnsCommand } from './columns.js';
|
|
4
|
+
import { createCaturraMetadataQueryCommand } from './query.js';
|
|
5
|
+
import { createCaturraMetadataDatabaseInfoCommand } from './database-info.js';
|
|
6
|
+
export function createCaturraMetadataCommand() {
|
|
7
|
+
const metadataCommand = new Command('metadata');
|
|
8
|
+
metadataCommand.description('Query database metadata (tables, columns, etc.)');
|
|
9
|
+
metadataCommand.addCommand(createCaturraMetadataTablesCommand());
|
|
10
|
+
metadataCommand.addCommand(createCaturraMetadataColumnsCommand());
|
|
11
|
+
metadataCommand.addCommand(createCaturraMetadataQueryCommand());
|
|
12
|
+
metadataCommand.addCommand(createCaturraMetadataDatabaseInfoCommand());
|
|
13
|
+
return metadataCommand;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/commands/liberica/caturra/metadata/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,kCAAkC,EAAE,MAAM,aAAa,CAAC;AACjE,OAAO,EAAE,mCAAmC,EAAE,MAAM,cAAc,CAAC;AACnE,OAAO,EAAE,iCAAiC,EAAE,MAAM,YAAY,CAAC;AAC/D,OAAO,EAAE,wCAAwC,EAAE,MAAM,oBAAoB,CAAC;AAE9E,MAAM,UAAU,4BAA4B;IAC1C,MAAM,eAAe,GAAG,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC;IAChD,eAAe,CAAC,WAAW,CAAC,iDAAiD,CAAC,CAAC;IAE/E,eAAe,CAAC,UAAU,CAAC,kCAAkC,EAAE,CAAC,CAAC;IACjE,eAAe,CAAC,UAAU,CAAC,mCAAmC,EAAE,CAAC,CAAC;IAClE,eAAe,CAAC,UAAU,CAAC,iCAAiC,EAAE,CAAC,CAAC;IAChE,eAAe,CAAC,UAAU,CAAC,wCAAwC,EAAE,CAAC,CAAC;IAEvE,OAAO,eAAe,CAAC;AACzB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../../../../src/commands/liberica/caturra/metadata/query.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,wBAAgB,iCAAiC,IAAI,OAAO,CAkE3D"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import chalk from 'chalk';
|
|
3
|
+
import Table from 'cli-table3';
|
|
4
|
+
import { configManager } from '../../../../core/config/manager.js';
|
|
5
|
+
import { apiClient } from '../../../../core/api/client.js';
|
|
6
|
+
import { shouldUseJson } from '../../../../utils/output.js';
|
|
7
|
+
export function createCaturraMetadataQueryCommand() {
|
|
8
|
+
const command = new Command('query');
|
|
9
|
+
command
|
|
10
|
+
.description('Execute SQL query on client database (requires connected client)')
|
|
11
|
+
.requiredOption('-c, --client <uuid>', 'Caturra client UUID (required)')
|
|
12
|
+
.requiredOption('-q, --sql <query>', 'SQL query (SELECT only)')
|
|
13
|
+
.option('--dry-run', 'Show the query without executing')
|
|
14
|
+
.option('--json', 'Output as JSON')
|
|
15
|
+
.action(async (options) => {
|
|
16
|
+
const context = configManager.getCurrentContext();
|
|
17
|
+
const environment = options.env || context.environment;
|
|
18
|
+
const tenant = options.tenant || context.tenant;
|
|
19
|
+
const outputJson = shouldUseJson(options);
|
|
20
|
+
if (options.dryRun) {
|
|
21
|
+
console.log(chalk.bold('\nš Dry-run: SQL Query\n'));
|
|
22
|
+
console.log(chalk.gray(` Client: ${options.client}`));
|
|
23
|
+
console.log(chalk.gray(` SQL: ${options.sql}`));
|
|
24
|
+
console.log();
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
const response = await apiClient.executeCaturraQuery(environment, tenant, {
|
|
28
|
+
clientId: options.client,
|
|
29
|
+
sql: options.sql,
|
|
30
|
+
});
|
|
31
|
+
if (!response.success) {
|
|
32
|
+
console.error(chalk.red(`\nā Query failed: ${response.error?.message || 'Unknown error'}`));
|
|
33
|
+
process.exit(1);
|
|
34
|
+
}
|
|
35
|
+
const rows = response.data || [];
|
|
36
|
+
if (outputJson) {
|
|
37
|
+
console.log(JSON.stringify({ success: true, rowCount: rows.length, data: rows }, null, 2));
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
console.log(chalk.bold('\nš Query Result\n'));
|
|
41
|
+
if (rows.length === 0) {
|
|
42
|
+
console.log(chalk.gray(' No rows returned\n'));
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
// Extract column names from first row
|
|
46
|
+
const columnNames = Object.keys(rows[0]);
|
|
47
|
+
const table = new Table({
|
|
48
|
+
head: columnNames.map(name => chalk.bold(name)),
|
|
49
|
+
colWidths: columnNames.map(() => Math.min(20, Math.floor(80 / columnNames.length))),
|
|
50
|
+
style: { head: [], border: [] },
|
|
51
|
+
});
|
|
52
|
+
rows.forEach(row => {
|
|
53
|
+
table.push(columnNames.map(col => {
|
|
54
|
+
const val = row[col];
|
|
55
|
+
return val === null ? chalk.gray('NULL') : String(val).substring(0, 40);
|
|
56
|
+
}));
|
|
57
|
+
});
|
|
58
|
+
console.log(table.toString());
|
|
59
|
+
console.log(chalk.gray(`\n Total: ${rows.length} rows\n`));
|
|
60
|
+
});
|
|
61
|
+
return command;
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=query.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query.js","sourceRoot":"","sources":["../../../../../src/commands/liberica/caturra/metadata/query.ts"],"names":[],"mappings":"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"}
|