@dokploy/cli 0.2.8 → 0.3.1
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/LICENSE.md +1 -1
- package/dist/client.d.ts +10 -0
- package/dist/client.js +72 -0
- package/dist/commands/auth.d.ts +2 -0
- package/dist/commands/auth.js +28 -0
- package/dist/generated/commands.d.ts +2 -0
- package/dist/generated/commands.js +9059 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.js +24 -1
- package/package.json +25 -58
- package/readme.md +101 -83
- package/bin/dev.cmd +0 -3
- package/bin/dev.js +0 -6
- package/bin/run.cmd +0 -3
- package/bin/run.js +0 -5
- package/dist/commands/app/create.d.ts +0 -17
- package/dist/commands/app/create.js +0 -127
- package/dist/commands/app/delete.d.ts +0 -11
- package/dist/commands/app/delete.js +0 -106
- package/dist/commands/app/deploy.d.ts +0 -11
- package/dist/commands/app/deploy.js +0 -107
- package/dist/commands/app/stop.d.ts +0 -11
- package/dist/commands/app/stop.js +0 -102
- package/dist/commands/authenticate.d.ts +0 -10
- package/dist/commands/authenticate.js +0 -83
- package/dist/commands/database/mariadb/create.d.ts +0 -18
- package/dist/commands/database/mariadb/create.js +0 -188
- package/dist/commands/database/mariadb/delete.d.ts +0 -11
- package/dist/commands/database/mariadb/delete.js +0 -104
- package/dist/commands/database/mariadb/deploy.d.ts +0 -11
- package/dist/commands/database/mariadb/deploy.js +0 -103
- package/dist/commands/database/mariadb/stop.d.ts +0 -11
- package/dist/commands/database/mariadb/stop.js +0 -103
- package/dist/commands/database/mongo/create.d.ts +0 -17
- package/dist/commands/database/mongo/create.js +0 -176
- package/dist/commands/database/mongo/delete.d.ts +0 -11
- package/dist/commands/database/mongo/delete.js +0 -106
- package/dist/commands/database/mongo/deploy.d.ts +0 -11
- package/dist/commands/database/mongo/deploy.js +0 -103
- package/dist/commands/database/mongo/stop.d.ts +0 -11
- package/dist/commands/database/mongo/stop.js +0 -103
- package/dist/commands/database/mysql/create.d.ts +0 -18
- package/dist/commands/database/mysql/create.js +0 -188
- package/dist/commands/database/mysql/delete.d.ts +0 -11
- package/dist/commands/database/mysql/delete.js +0 -106
- package/dist/commands/database/mysql/deploy.d.ts +0 -6
- package/dist/commands/database/mysql/deploy.js +0 -86
- package/dist/commands/database/mysql/stop.d.ts +0 -6
- package/dist/commands/database/mysql/stop.js +0 -86
- package/dist/commands/database/postgres/create.d.ts +0 -17
- package/dist/commands/database/postgres/create.js +0 -176
- package/dist/commands/database/postgres/delete.d.ts +0 -11
- package/dist/commands/database/postgres/delete.js +0 -106
- package/dist/commands/database/postgres/deploy.d.ts +0 -11
- package/dist/commands/database/postgres/deploy.js +0 -103
- package/dist/commands/database/postgres/stop.d.ts +0 -11
- package/dist/commands/database/postgres/stop.js +0 -103
- package/dist/commands/database/redis/create.d.ts +0 -15
- package/dist/commands/database/redis/create.js +0 -151
- package/dist/commands/database/redis/delete.d.ts +0 -11
- package/dist/commands/database/redis/delete.js +0 -106
- package/dist/commands/database/redis/deploy.d.ts +0 -11
- package/dist/commands/database/redis/deploy.js +0 -103
- package/dist/commands/database/redis/stop.d.ts +0 -11
- package/dist/commands/database/redis/stop.js +0 -103
- package/dist/commands/env/pull.d.ts +0 -10
- package/dist/commands/env/pull.js +0 -68
- package/dist/commands/env/push.d.ts +0 -10
- package/dist/commands/env/push.js +0 -106
- package/dist/commands/project/create.d.ts +0 -11
- package/dist/commands/project/create.js +0 -89
- package/dist/commands/project/info.d.ts +0 -10
- package/dist/commands/project/info.js +0 -122
- package/dist/commands/project/list.d.ts +0 -6
- package/dist/commands/project/list.js +0 -43
- package/dist/commands/verify.d.ts +0 -6
- package/dist/commands/verify.js +0 -62
- package/dist/utils/http.d.ts +0 -4
- package/dist/utils/http.js +0 -4
- package/dist/utils/shared.d.ts +0 -10
- package/dist/utils/shared.js +0 -55
- package/dist/utils/slug.d.ts +0 -1
- package/dist/utils/slug.js +0 -12
- package/dist/utils/slugify.d.ts +0 -3
- package/dist/utils/slugify.js +0 -2
- package/dist/utils/utils.d.ts +0 -6
- package/dist/utils/utils.js +0 -26
- package/oclif.manifest.json +0 -1680
|
@@ -1,176 +0,0 @@
|
|
|
1
|
-
import { Command, Flags } from "@oclif/core";
|
|
2
|
-
import axios from "axios";
|
|
3
|
-
import chalk from "chalk";
|
|
4
|
-
import inquirer from "inquirer";
|
|
5
|
-
import { slugify } from "../../../utils/slug.js";
|
|
6
|
-
import { readAuthConfig } from "../../../utils/utils.js";
|
|
7
|
-
import { getProjects } from "../../../utils/shared.js";
|
|
8
|
-
export default class DatabasePostgresCreate extends Command {
|
|
9
|
-
static description = "Create a new PostgreSQL database within a project.";
|
|
10
|
-
static examples = ["$ <%= config.bin %> postgres create"];
|
|
11
|
-
static flags = {
|
|
12
|
-
projectId: Flags.string({
|
|
13
|
-
char: "p",
|
|
14
|
-
description: "ID of the project",
|
|
15
|
-
required: false,
|
|
16
|
-
}),
|
|
17
|
-
name: Flags.string({
|
|
18
|
-
char: "n",
|
|
19
|
-
description: "Database name",
|
|
20
|
-
required: false,
|
|
21
|
-
}),
|
|
22
|
-
databaseName: Flags.string({
|
|
23
|
-
description: "PostgreSQL database name",
|
|
24
|
-
required: false,
|
|
25
|
-
}),
|
|
26
|
-
description: Flags.string({
|
|
27
|
-
char: "d",
|
|
28
|
-
description: "Database description",
|
|
29
|
-
required: false,
|
|
30
|
-
}),
|
|
31
|
-
databasePassword: Flags.string({
|
|
32
|
-
description: "Database password",
|
|
33
|
-
required: false,
|
|
34
|
-
}),
|
|
35
|
-
databaseUser: Flags.string({
|
|
36
|
-
description: "Database user",
|
|
37
|
-
default: "postgres",
|
|
38
|
-
}),
|
|
39
|
-
dockerImage: Flags.string({
|
|
40
|
-
description: "Docker image",
|
|
41
|
-
default: "postgres:15",
|
|
42
|
-
}),
|
|
43
|
-
skipConfirm: Flags.boolean({
|
|
44
|
-
char: "y",
|
|
45
|
-
description: "Skip confirmation prompt",
|
|
46
|
-
default: false,
|
|
47
|
-
}),
|
|
48
|
-
appName: Flags.string({
|
|
49
|
-
description: "App name",
|
|
50
|
-
required: false,
|
|
51
|
-
}),
|
|
52
|
-
};
|
|
53
|
-
async run() {
|
|
54
|
-
const auth = await readAuthConfig(this);
|
|
55
|
-
const { flags } = await this.parse(DatabasePostgresCreate);
|
|
56
|
-
let { projectId, name, databaseName, description, databasePassword, databaseUser, dockerImage, appName } = flags;
|
|
57
|
-
// Modo interactivo si no se proporcionan los flags necesarios
|
|
58
|
-
if (!projectId || !name || !databaseName || !appName || !databasePassword) {
|
|
59
|
-
console.log(chalk.blue.bold("\n Listing all Projects \n"));
|
|
60
|
-
const projects = await getProjects(auth, this);
|
|
61
|
-
if (!projectId) {
|
|
62
|
-
const { project } = await inquirer.prompt([
|
|
63
|
-
{
|
|
64
|
-
choices: projects.map((project) => ({
|
|
65
|
-
name: project.name,
|
|
66
|
-
value: project,
|
|
67
|
-
})),
|
|
68
|
-
message: "Select a project to create the PostgreSQL instance in:",
|
|
69
|
-
name: "project",
|
|
70
|
-
type: "list",
|
|
71
|
-
},
|
|
72
|
-
]);
|
|
73
|
-
projectId = project.projectId;
|
|
74
|
-
}
|
|
75
|
-
if (!name || !databaseName || !appName || !databasePassword) {
|
|
76
|
-
const dbDetails = await inquirer.prompt([
|
|
77
|
-
{
|
|
78
|
-
message: "Enter the name:",
|
|
79
|
-
name: "name",
|
|
80
|
-
type: "input",
|
|
81
|
-
validate: (input) => (input ? true : "Database name is required"),
|
|
82
|
-
default: name,
|
|
83
|
-
},
|
|
84
|
-
{
|
|
85
|
-
message: "Database name:",
|
|
86
|
-
name: "databaseName",
|
|
87
|
-
type: "input",
|
|
88
|
-
validate: (input) => (input ? true : "Database name is required"),
|
|
89
|
-
default: databaseName,
|
|
90
|
-
},
|
|
91
|
-
{
|
|
92
|
-
message: "Enter the database description (optional):",
|
|
93
|
-
name: "description",
|
|
94
|
-
type: "input",
|
|
95
|
-
default: description,
|
|
96
|
-
},
|
|
97
|
-
{
|
|
98
|
-
message: "Database password:",
|
|
99
|
-
name: "databasePassword",
|
|
100
|
-
type: "password",
|
|
101
|
-
default: databasePassword,
|
|
102
|
-
},
|
|
103
|
-
{
|
|
104
|
-
default: dockerImage || "postgres:15",
|
|
105
|
-
message: "Docker Image (default: postgres:15):",
|
|
106
|
-
name: "dockerImage",
|
|
107
|
-
type: "input",
|
|
108
|
-
},
|
|
109
|
-
{
|
|
110
|
-
default: databaseUser || "postgres",
|
|
111
|
-
message: "Database User: (default: postgres):",
|
|
112
|
-
name: "databaseUser",
|
|
113
|
-
type: "input",
|
|
114
|
-
},
|
|
115
|
-
]);
|
|
116
|
-
name = dbDetails.name;
|
|
117
|
-
databaseName = dbDetails.databaseName;
|
|
118
|
-
description = dbDetails.description;
|
|
119
|
-
databasePassword = dbDetails.databasePassword;
|
|
120
|
-
dockerImage = dbDetails.dockerImage;
|
|
121
|
-
databaseUser = dbDetails.databaseUser;
|
|
122
|
-
const appNamePrompt = await inquirer.prompt([
|
|
123
|
-
{
|
|
124
|
-
default: appName || `${slugify(name)}`,
|
|
125
|
-
message: "Enter the App name:",
|
|
126
|
-
name: "appName",
|
|
127
|
-
type: "input",
|
|
128
|
-
validate: (input) => (input ? true : "App name is required"),
|
|
129
|
-
},
|
|
130
|
-
]);
|
|
131
|
-
appName = appNamePrompt.appName;
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
// Confirmar si no se especifica --skipConfirm
|
|
135
|
-
if (!flags.skipConfirm) {
|
|
136
|
-
const confirm = await inquirer.prompt([
|
|
137
|
-
{
|
|
138
|
-
type: 'confirm',
|
|
139
|
-
name: 'proceed',
|
|
140
|
-
message: 'Do you want to create this PostgreSQL instance?',
|
|
141
|
-
default: false,
|
|
142
|
-
},
|
|
143
|
-
]);
|
|
144
|
-
if (!confirm.proceed) {
|
|
145
|
-
this.error(chalk.yellow("PostgreSQL creation cancelled."));
|
|
146
|
-
return;
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
try {
|
|
150
|
-
const response = await axios.post(`${auth.url}/api/trpc/postgres.create`, {
|
|
151
|
-
json: {
|
|
152
|
-
name,
|
|
153
|
-
databaseName,
|
|
154
|
-
description,
|
|
155
|
-
databasePassword,
|
|
156
|
-
databaseUser,
|
|
157
|
-
dockerImage,
|
|
158
|
-
appName,
|
|
159
|
-
projectId,
|
|
160
|
-
},
|
|
161
|
-
}, {
|
|
162
|
-
headers: {
|
|
163
|
-
"x-api-key": auth.token,
|
|
164
|
-
"Content-Type": "application/json",
|
|
165
|
-
},
|
|
166
|
-
});
|
|
167
|
-
if (!response.data.result.data.json) {
|
|
168
|
-
this.error(chalk.red("Error creating PostgreSQL instance", response.data.result.data.json));
|
|
169
|
-
}
|
|
170
|
-
this.log(chalk.green(`PostgreSQL instance '${name}' created successfully.`));
|
|
171
|
-
}
|
|
172
|
-
catch (error) {
|
|
173
|
-
this.error(chalk.red(`Error creating PostgreSQL instance: ${error.message}`));
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { Command } from "@oclif/core";
|
|
2
|
-
export default class DatabasePostgresDelete extends Command {
|
|
3
|
-
static description: string;
|
|
4
|
-
static examples: string[];
|
|
5
|
-
static flags: {
|
|
6
|
-
projectId: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
|
|
7
|
-
postgresId: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
|
|
8
|
-
skipConfirm: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
|
|
9
|
-
};
|
|
10
|
-
run(): Promise<void>;
|
|
11
|
-
}
|
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
import { Command, Flags } from "@oclif/core";
|
|
2
|
-
import axios from "axios";
|
|
3
|
-
import chalk from "chalk";
|
|
4
|
-
import inquirer from "inquirer";
|
|
5
|
-
import { readAuthConfig } from "../../../utils/utils.js";
|
|
6
|
-
import { getProject, getProjects } from "../../../utils/shared.js";
|
|
7
|
-
export default class DatabasePostgresDelete extends Command {
|
|
8
|
-
static description = "Delete a PostgreSQL database from a project.";
|
|
9
|
-
static examples = [
|
|
10
|
-
"$ <%= config.bin %> postgres delete",
|
|
11
|
-
"$ <%= config.bin %> postgres delete -p <projectId>",
|
|
12
|
-
];
|
|
13
|
-
static flags = {
|
|
14
|
-
projectId: Flags.string({
|
|
15
|
-
char: "p",
|
|
16
|
-
description: "ID of the project",
|
|
17
|
-
required: false,
|
|
18
|
-
}),
|
|
19
|
-
postgresId: Flags.string({
|
|
20
|
-
char: "d",
|
|
21
|
-
description: "ID of the PostgreSQL database",
|
|
22
|
-
required: false,
|
|
23
|
-
}),
|
|
24
|
-
skipConfirm: Flags.boolean({
|
|
25
|
-
char: "y",
|
|
26
|
-
description: "Skip confirmation",
|
|
27
|
-
required: false,
|
|
28
|
-
}),
|
|
29
|
-
};
|
|
30
|
-
async run() {
|
|
31
|
-
const auth = await readAuthConfig(this);
|
|
32
|
-
const { flags } = await this.parse(DatabasePostgresDelete);
|
|
33
|
-
let { projectId, postgresId } = flags;
|
|
34
|
-
// Modo interactivo si no se proporcionan los flags necesarios
|
|
35
|
-
if (!projectId || !postgresId) {
|
|
36
|
-
console.log(chalk.blue.bold("\n Listing all Projects \n"));
|
|
37
|
-
const projects = await getProjects(auth, this);
|
|
38
|
-
if (!projectId) {
|
|
39
|
-
const answers = await inquirer.prompt([
|
|
40
|
-
{
|
|
41
|
-
choices: projects.map((project) => ({
|
|
42
|
-
name: project.name,
|
|
43
|
-
value: project.projectId,
|
|
44
|
-
})),
|
|
45
|
-
message: "Select a project to delete the PostgreSQL instance from:",
|
|
46
|
-
name: "selectedProject",
|
|
47
|
-
type: "list",
|
|
48
|
-
},
|
|
49
|
-
]);
|
|
50
|
-
projectId = answers.selectedProject;
|
|
51
|
-
}
|
|
52
|
-
const projectSelected = await getProject(projectId, auth, this);
|
|
53
|
-
if (!projectSelected.postgres || projectSelected.postgres.length === 0) {
|
|
54
|
-
this.error(chalk.yellow("No PostgreSQL instances found in this project."));
|
|
55
|
-
}
|
|
56
|
-
if (!postgresId) {
|
|
57
|
-
const dbAnswers = await inquirer.prompt([
|
|
58
|
-
{
|
|
59
|
-
// @ts-ignore
|
|
60
|
-
choices: projectSelected.postgres.map((db) => ({
|
|
61
|
-
name: db.name,
|
|
62
|
-
value: db.postgresId,
|
|
63
|
-
})),
|
|
64
|
-
message: "Select the PostgreSQL instance to delete:",
|
|
65
|
-
name: "selectedDb",
|
|
66
|
-
type: "list",
|
|
67
|
-
},
|
|
68
|
-
]);
|
|
69
|
-
postgresId = dbAnswers.selectedDb;
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
// Confirmar si no se especifica --skipConfirm
|
|
73
|
-
if (!flags.skipConfirm) {
|
|
74
|
-
const confirmAnswers = await inquirer.prompt([
|
|
75
|
-
{
|
|
76
|
-
default: false,
|
|
77
|
-
message: "Are you sure you want to delete this PostgreSQL instance?",
|
|
78
|
-
name: "confirmDelete",
|
|
79
|
-
type: "confirm",
|
|
80
|
-
},
|
|
81
|
-
]);
|
|
82
|
-
if (!confirmAnswers.confirmDelete) {
|
|
83
|
-
this.error(chalk.yellow("PostgreSQL deletion cancelled."));
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
try {
|
|
87
|
-
const response = await axios.post(`${auth.url}/api/trpc/postgres.remove`, {
|
|
88
|
-
json: {
|
|
89
|
-
postgresId,
|
|
90
|
-
},
|
|
91
|
-
}, {
|
|
92
|
-
headers: {
|
|
93
|
-
"x-api-key": auth.token,
|
|
94
|
-
"Content-Type": "application/json",
|
|
95
|
-
},
|
|
96
|
-
});
|
|
97
|
-
if (!response.data.result.data.json) {
|
|
98
|
-
this.error(chalk.red("Error deleting PostgreSQL instance"));
|
|
99
|
-
}
|
|
100
|
-
this.log(chalk.green("PostgreSQL instance deleted successfully."));
|
|
101
|
-
}
|
|
102
|
-
catch (error) {
|
|
103
|
-
this.error(chalk.red(`Error deleting PostgreSQL instance: ${error.message}`));
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { Command } from "@oclif/core";
|
|
2
|
-
export default class DatabasePostgresDeploy extends Command {
|
|
3
|
-
static description: string;
|
|
4
|
-
static examples: string[];
|
|
5
|
-
static flags: {
|
|
6
|
-
projectId: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
|
|
7
|
-
postgresId: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
|
|
8
|
-
skipConfirm: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
|
|
9
|
-
};
|
|
10
|
-
run(): Promise<void>;
|
|
11
|
-
}
|
|
@@ -1,103 +0,0 @@
|
|
|
1
|
-
import { Command, Flags } from "@oclif/core";
|
|
2
|
-
import { readAuthConfig } from "../../../utils/utils.js";
|
|
3
|
-
import chalk from "chalk";
|
|
4
|
-
import { getProject, getProjects } from "../../../utils/shared.js";
|
|
5
|
-
import inquirer from "inquirer";
|
|
6
|
-
import axios from "axios";
|
|
7
|
-
export default class DatabasePostgresDeploy extends Command {
|
|
8
|
-
static description = "Deploy a PostgreSQL instance to a project.";
|
|
9
|
-
static examples = ["$ <%= config.bin %> postgres deploy"];
|
|
10
|
-
static flags = {
|
|
11
|
-
projectId: Flags.string({
|
|
12
|
-
char: "p",
|
|
13
|
-
description: "ID of the project",
|
|
14
|
-
required: false,
|
|
15
|
-
}),
|
|
16
|
-
postgresId: Flags.string({
|
|
17
|
-
char: "d",
|
|
18
|
-
description: "ID of the PostgreSQL instance to deploy",
|
|
19
|
-
required: false,
|
|
20
|
-
}),
|
|
21
|
-
skipConfirm: Flags.boolean({
|
|
22
|
-
char: "y",
|
|
23
|
-
description: "Skip confirmation prompt",
|
|
24
|
-
default: false,
|
|
25
|
-
}),
|
|
26
|
-
};
|
|
27
|
-
async run() {
|
|
28
|
-
const auth = await readAuthConfig(this);
|
|
29
|
-
const { flags } = await this.parse(DatabasePostgresDeploy);
|
|
30
|
-
let { projectId, postgresId } = flags;
|
|
31
|
-
// Modo interactivo si no se proporcionan los flags necesarios
|
|
32
|
-
if (!projectId || !postgresId) {
|
|
33
|
-
console.log(chalk.blue.bold("\n Listing all Projects \n"));
|
|
34
|
-
const projects = await getProjects(auth, this);
|
|
35
|
-
if (!projectId) {
|
|
36
|
-
const { project } = await inquirer.prompt([
|
|
37
|
-
{
|
|
38
|
-
choices: projects.map((project) => ({
|
|
39
|
-
name: project.name,
|
|
40
|
-
value: project,
|
|
41
|
-
})),
|
|
42
|
-
message: "Select a project to deploy the PostgreSQL instance from:",
|
|
43
|
-
name: "project",
|
|
44
|
-
type: "list",
|
|
45
|
-
},
|
|
46
|
-
]);
|
|
47
|
-
projectId = project.projectId;
|
|
48
|
-
}
|
|
49
|
-
const projectSelected = await getProject(projectId, auth, this);
|
|
50
|
-
if (projectSelected.postgres.length === 0) {
|
|
51
|
-
this.error(chalk.yellow("No PostgreSQL instances found in this project."));
|
|
52
|
-
}
|
|
53
|
-
if (!postgresId) {
|
|
54
|
-
const dbAnswers = await inquirer.prompt([
|
|
55
|
-
{
|
|
56
|
-
// @ts-ignore
|
|
57
|
-
choices: projectSelected.postgres.map((db) => ({
|
|
58
|
-
name: db.name,
|
|
59
|
-
value: db.postgresId,
|
|
60
|
-
})),
|
|
61
|
-
message: "Select the PostgreSQL instance to deploy:",
|
|
62
|
-
name: "selectedDb",
|
|
63
|
-
type: "list",
|
|
64
|
-
},
|
|
65
|
-
]);
|
|
66
|
-
postgresId = dbAnswers.selectedDb;
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
// Confirmar si no se especifica --skipConfirm
|
|
70
|
-
if (!flags.skipConfirm) {
|
|
71
|
-
const confirmAnswers = await inquirer.prompt([
|
|
72
|
-
{
|
|
73
|
-
default: false,
|
|
74
|
-
message: "Are you sure you want to deploy this PostgreSQL instance?",
|
|
75
|
-
name: "confirmDeploy",
|
|
76
|
-
type: "confirm",
|
|
77
|
-
},
|
|
78
|
-
]);
|
|
79
|
-
if (!confirmAnswers.confirmDeploy) {
|
|
80
|
-
this.error(chalk.yellow("PostgreSQL deployment cancelled."));
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
try {
|
|
84
|
-
const response = await axios.post(`${auth.url}/api/trpc/postgres.deploy`, {
|
|
85
|
-
json: {
|
|
86
|
-
postgresId,
|
|
87
|
-
},
|
|
88
|
-
}, {
|
|
89
|
-
headers: {
|
|
90
|
-
"x-api-key": auth.token,
|
|
91
|
-
"Content-Type": "application/json",
|
|
92
|
-
},
|
|
93
|
-
});
|
|
94
|
-
if (response.status !== 200) {
|
|
95
|
-
this.error(chalk.red("Error deploying PostgreSQL instance"));
|
|
96
|
-
}
|
|
97
|
-
this.log(chalk.green("PostgreSQL instance deployed successfully."));
|
|
98
|
-
}
|
|
99
|
-
catch (error) {
|
|
100
|
-
this.error(chalk.red(`Error deploying PostgreSQL instance: ${error.message}`));
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { Command } from "@oclif/core";
|
|
2
|
-
export default class DatabasePostgresStop extends Command {
|
|
3
|
-
static description: string;
|
|
4
|
-
static examples: string[];
|
|
5
|
-
static flags: {
|
|
6
|
-
projectId: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
|
|
7
|
-
postgresId: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
|
|
8
|
-
skipConfirm: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
|
|
9
|
-
};
|
|
10
|
-
run(): Promise<void>;
|
|
11
|
-
}
|
|
@@ -1,103 +0,0 @@
|
|
|
1
|
-
import { Command, Flags } from "@oclif/core";
|
|
2
|
-
import { readAuthConfig } from "../../../utils/utils.js";
|
|
3
|
-
import chalk from "chalk";
|
|
4
|
-
import { getProject, getProjects } from "../../../utils/shared.js";
|
|
5
|
-
import inquirer from "inquirer";
|
|
6
|
-
import axios from "axios";
|
|
7
|
-
export default class DatabasePostgresStop extends Command {
|
|
8
|
-
static description = "Stop a PostgreSQL instance in a project.";
|
|
9
|
-
static examples = ["$ <%= config.bin %> postgres stop"];
|
|
10
|
-
static flags = {
|
|
11
|
-
projectId: Flags.string({
|
|
12
|
-
char: "p",
|
|
13
|
-
description: "ID of the project",
|
|
14
|
-
required: false,
|
|
15
|
-
}),
|
|
16
|
-
postgresId: Flags.string({
|
|
17
|
-
char: "d",
|
|
18
|
-
description: "ID of the PostgreSQL instance to stop",
|
|
19
|
-
required: false,
|
|
20
|
-
}),
|
|
21
|
-
skipConfirm: Flags.boolean({
|
|
22
|
-
char: "y",
|
|
23
|
-
description: "Skip confirmation prompt",
|
|
24
|
-
default: false,
|
|
25
|
-
}),
|
|
26
|
-
};
|
|
27
|
-
async run() {
|
|
28
|
-
const auth = await readAuthConfig(this);
|
|
29
|
-
const { flags } = await this.parse(DatabasePostgresStop);
|
|
30
|
-
let { projectId, postgresId } = flags;
|
|
31
|
-
// Modo interactivo si no se proporcionan los flags necesarios
|
|
32
|
-
if (!projectId || !postgresId) {
|
|
33
|
-
console.log(chalk.blue.bold("\n Listing all Projects \n"));
|
|
34
|
-
const projects = await getProjects(auth, this);
|
|
35
|
-
if (!projectId) {
|
|
36
|
-
const { project } = await inquirer.prompt([
|
|
37
|
-
{
|
|
38
|
-
choices: projects.map((project) => ({
|
|
39
|
-
name: project.name,
|
|
40
|
-
value: project,
|
|
41
|
-
})),
|
|
42
|
-
message: "Select a project to stop the PostgreSQL instance from:",
|
|
43
|
-
name: "project",
|
|
44
|
-
type: "list",
|
|
45
|
-
},
|
|
46
|
-
]);
|
|
47
|
-
projectId = project.projectId;
|
|
48
|
-
}
|
|
49
|
-
const projectSelected = await getProject(projectId, auth, this);
|
|
50
|
-
if (projectSelected.postgres.length === 0) {
|
|
51
|
-
this.error(chalk.yellow("No PostgreSQL instances found in this project."));
|
|
52
|
-
}
|
|
53
|
-
if (!postgresId) {
|
|
54
|
-
const dbAnswers = await inquirer.prompt([
|
|
55
|
-
{
|
|
56
|
-
// @ts-ignore
|
|
57
|
-
choices: projectSelected.postgres.map((db) => ({
|
|
58
|
-
name: db.name,
|
|
59
|
-
value: db.postgresId,
|
|
60
|
-
})),
|
|
61
|
-
message: "Select the PostgreSQL instance to stop:",
|
|
62
|
-
name: "selectedDb",
|
|
63
|
-
type: "list",
|
|
64
|
-
},
|
|
65
|
-
]);
|
|
66
|
-
postgresId = dbAnswers.selectedDb;
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
// Confirmar si no se especifica --skipConfirm
|
|
70
|
-
if (!flags.skipConfirm) {
|
|
71
|
-
const confirmAnswers = await inquirer.prompt([
|
|
72
|
-
{
|
|
73
|
-
default: false,
|
|
74
|
-
message: "Are you sure you want to stop this PostgreSQL instance?",
|
|
75
|
-
name: "confirmStop",
|
|
76
|
-
type: "confirm",
|
|
77
|
-
},
|
|
78
|
-
]);
|
|
79
|
-
if (!confirmAnswers.confirmStop) {
|
|
80
|
-
this.error(chalk.yellow("PostgreSQL stop cancelled."));
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
try {
|
|
84
|
-
const response = await axios.post(`${auth.url}/api/trpc/postgres.stop`, {
|
|
85
|
-
json: {
|
|
86
|
-
postgresId,
|
|
87
|
-
},
|
|
88
|
-
}, {
|
|
89
|
-
headers: {
|
|
90
|
-
"x-api-key": auth.token,
|
|
91
|
-
"Content-Type": "application/json",
|
|
92
|
-
},
|
|
93
|
-
});
|
|
94
|
-
if (response.status !== 200) {
|
|
95
|
-
this.error(chalk.red("Error stopping PostgreSQL instance"));
|
|
96
|
-
}
|
|
97
|
-
this.log(chalk.green("PostgreSQL instance stopped successfully."));
|
|
98
|
-
}
|
|
99
|
-
catch (error) {
|
|
100
|
-
this.error(chalk.red(`Error stopping PostgreSQL instance: ${error.message}`));
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { Command } from "@oclif/core";
|
|
2
|
-
export default class DatabaseRedisCreate extends Command {
|
|
3
|
-
static description: string;
|
|
4
|
-
static examples: string[];
|
|
5
|
-
static flags: {
|
|
6
|
-
projectId: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
|
|
7
|
-
name: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
|
|
8
|
-
description: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
|
|
9
|
-
databasePassword: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
|
|
10
|
-
dockerImage: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
|
|
11
|
-
skipConfirm: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
|
|
12
|
-
appName: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
|
|
13
|
-
};
|
|
14
|
-
run(): Promise<void>;
|
|
15
|
-
}
|