@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,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 DatabaseMariadbDeploy extends Command {
|
|
8
|
-
static description = "Deploy an mariadb to a project.";
|
|
9
|
-
static examples = ["$ <%= config.bin %> app deploy"];
|
|
10
|
-
static flags = {
|
|
11
|
-
projectId: Flags.string({
|
|
12
|
-
char: "p",
|
|
13
|
-
description: "ID of the project",
|
|
14
|
-
required: false,
|
|
15
|
-
}),
|
|
16
|
-
mariadbId: Flags.string({
|
|
17
|
-
char: "m",
|
|
18
|
-
description: "ID of the MariaDB 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(DatabaseMariadbDeploy);
|
|
30
|
-
let { projectId, mariadbId } = flags;
|
|
31
|
-
// Modo interactivo si no se proporcionan los flags necesarios
|
|
32
|
-
if (!projectId || !mariadbId) {
|
|
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 MariaDB in:",
|
|
43
|
-
name: "project",
|
|
44
|
-
type: "list",
|
|
45
|
-
},
|
|
46
|
-
]);
|
|
47
|
-
projectId = project.projectId;
|
|
48
|
-
}
|
|
49
|
-
const projectSelected = await getProject(projectId, auth, this);
|
|
50
|
-
if (projectSelected.mariadb.length === 0) {
|
|
51
|
-
this.error(chalk.yellow("No MariaDB instances found in this project."));
|
|
52
|
-
}
|
|
53
|
-
if (!mariadbId) {
|
|
54
|
-
const dbAnswers = await inquirer.prompt([
|
|
55
|
-
{
|
|
56
|
-
// @ts-ignore
|
|
57
|
-
choices: projectSelected.mariadb.map((db) => ({
|
|
58
|
-
name: db.name,
|
|
59
|
-
value: db.mariadbId,
|
|
60
|
-
})),
|
|
61
|
-
message: "Select the MariaDB instance to deploy:",
|
|
62
|
-
name: "selectedDb",
|
|
63
|
-
type: "list",
|
|
64
|
-
},
|
|
65
|
-
]);
|
|
66
|
-
mariadbId = 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 MariaDB instance?",
|
|
75
|
-
name: "confirmDeploy",
|
|
76
|
-
type: "confirm",
|
|
77
|
-
},
|
|
78
|
-
]);
|
|
79
|
-
if (!confirmAnswers.confirmDeploy) {
|
|
80
|
-
this.error(chalk.yellow("MariaDB deployment cancelled."));
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
try {
|
|
84
|
-
const response = await axios.post(`${auth.url}/api/trpc/mariadb.deploy`, {
|
|
85
|
-
json: {
|
|
86
|
-
mariadbId,
|
|
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 MariaDB instance"));
|
|
96
|
-
}
|
|
97
|
-
this.log(chalk.green("MariaDB instance deployed successfully."));
|
|
98
|
-
}
|
|
99
|
-
catch (error) {
|
|
100
|
-
this.error(chalk.red(`Error deploying MariaDB instance: ${error.message}`));
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { Command } from "@oclif/core";
|
|
2
|
-
export default class DatabaseMariadbStop 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
|
-
mariadbId: 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 chalk from "chalk";
|
|
3
|
-
import inquirer from "inquirer";
|
|
4
|
-
import axios from "axios";
|
|
5
|
-
import { getProject, getProjects } from "../../../utils/shared.js";
|
|
6
|
-
import { readAuthConfig } from "../../../utils/utils.js";
|
|
7
|
-
export default class DatabaseMariadbStop extends Command {
|
|
8
|
-
static description = "Stop an mariadb from a project.";
|
|
9
|
-
static examples = ["$ <%= config.bin %> mariadb stop"];
|
|
10
|
-
static flags = {
|
|
11
|
-
projectId: Flags.string({
|
|
12
|
-
char: "p",
|
|
13
|
-
description: "ID of the project",
|
|
14
|
-
required: false,
|
|
15
|
-
}),
|
|
16
|
-
mariadbId: Flags.string({
|
|
17
|
-
char: "m",
|
|
18
|
-
description: "ID of the MariaDB 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(DatabaseMariadbStop);
|
|
30
|
-
let { projectId, mariadbId } = flags;
|
|
31
|
-
// Modo interactivo si no se proporcionan los flags necesarios
|
|
32
|
-
if (!projectId || !mariadbId) {
|
|
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 MariaDB 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.mariadb.length === 0) {
|
|
51
|
-
this.error(chalk.yellow("No MariaDB instances found in this project."));
|
|
52
|
-
}
|
|
53
|
-
if (!mariadbId) {
|
|
54
|
-
const dbAnswers = await inquirer.prompt([
|
|
55
|
-
{
|
|
56
|
-
// @ts-ignore
|
|
57
|
-
choices: projectSelected.mariadb.map((db) => ({
|
|
58
|
-
name: db.name,
|
|
59
|
-
value: db.mariadbId,
|
|
60
|
-
})),
|
|
61
|
-
message: "Select the MariaDB instance to stop:",
|
|
62
|
-
name: "selectedDb",
|
|
63
|
-
type: "list",
|
|
64
|
-
},
|
|
65
|
-
]);
|
|
66
|
-
mariadbId = 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 MariaDB instance?",
|
|
75
|
-
name: "confirmStop",
|
|
76
|
-
type: "confirm",
|
|
77
|
-
},
|
|
78
|
-
]);
|
|
79
|
-
if (!confirmAnswers.confirmStop) {
|
|
80
|
-
this.error(chalk.yellow("MariaDB stop cancelled."));
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
try {
|
|
84
|
-
const response = await axios.post(`${auth.url}/api/trpc/mariadb.stop`, {
|
|
85
|
-
json: {
|
|
86
|
-
mariadbId,
|
|
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 MariaDB instance"));
|
|
96
|
-
}
|
|
97
|
-
this.log(chalk.green("MariaDB instance stopped successfully."));
|
|
98
|
-
}
|
|
99
|
-
catch (error) {
|
|
100
|
-
this.error(chalk.red(`Error stopping MariaDB instance: ${error.message}`));
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { Command } from "@oclif/core";
|
|
2
|
-
export default class DatabaseMongoCreate 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
|
-
databaseName: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
|
|
9
|
-
description: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
|
|
10
|
-
databasePassword: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
|
|
11
|
-
databaseUser: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
|
|
12
|
-
dockerImage: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
|
|
13
|
-
skipConfirm: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
|
|
14
|
-
appName: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
|
|
15
|
-
};
|
|
16
|
-
run(): Promise<void>;
|
|
17
|
-
}
|
|
@@ -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 { readAuthConfig } from "../../../utils/utils.js";
|
|
6
|
-
import { getProjects } from "../../../utils/shared.js";
|
|
7
|
-
import { slugify } from "../../../utils/slug.js";
|
|
8
|
-
export default class DatabaseMongoCreate extends Command {
|
|
9
|
-
static description = "Create a new MongoDB database within a project.";
|
|
10
|
-
static examples = ["$ <%= config.bin %> mongo 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: "MongoDB 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: "mongo",
|
|
38
|
-
}),
|
|
39
|
-
dockerImage: Flags.string({
|
|
40
|
-
description: "Docker image",
|
|
41
|
-
default: "mongo:6",
|
|
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(DatabaseMongoCreate);
|
|
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 MongoDB 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 (optional):",
|
|
99
|
-
name: "databasePassword",
|
|
100
|
-
type: "password",
|
|
101
|
-
default: databasePassword,
|
|
102
|
-
},
|
|
103
|
-
{
|
|
104
|
-
default: dockerImage || "mongo:6",
|
|
105
|
-
message: "Docker Image (default: mongo:6):",
|
|
106
|
-
name: "dockerImage",
|
|
107
|
-
type: "input",
|
|
108
|
-
},
|
|
109
|
-
{
|
|
110
|
-
default: databaseUser || "mongo",
|
|
111
|
-
message: "Database User: (default: mongo):",
|
|
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 MongoDB instance?',
|
|
141
|
-
default: false,
|
|
142
|
-
},
|
|
143
|
-
]);
|
|
144
|
-
if (!confirm.proceed) {
|
|
145
|
-
this.error(chalk.yellow("MongoDB creation cancelled."));
|
|
146
|
-
return;
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
try {
|
|
150
|
-
const response = await axios.post(`${auth.url}/api/trpc/mongo.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 MongoDB instance"));
|
|
169
|
-
}
|
|
170
|
-
this.log(chalk.green(`MongoDB instance '${name}' created successfully.`));
|
|
171
|
-
}
|
|
172
|
-
catch (error) {
|
|
173
|
-
this.error(chalk.red(`Error creating MongoDB instance: ${error.message}`));
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { Command } from "@oclif/core";
|
|
2
|
-
export default class DatabaseMongoDelete 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
|
-
mongoId: 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 DatabaseMongoDelete extends Command {
|
|
8
|
-
static description = "Delete a MongoDB database from a project.";
|
|
9
|
-
static examples = [
|
|
10
|
-
"$ <%= config.bin %> mongo delete",
|
|
11
|
-
"$ <%= config.bin %> mongo 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
|
-
mongoId: Flags.string({
|
|
20
|
-
char: "m",
|
|
21
|
-
description: "ID of the MongoDB instance to delete",
|
|
22
|
-
required: false,
|
|
23
|
-
}),
|
|
24
|
-
skipConfirm: Flags.boolean({
|
|
25
|
-
char: "y",
|
|
26
|
-
description: "Skip confirmation prompt",
|
|
27
|
-
default: false,
|
|
28
|
-
}),
|
|
29
|
-
};
|
|
30
|
-
async run() {
|
|
31
|
-
const auth = await readAuthConfig(this);
|
|
32
|
-
const { flags } = await this.parse(DatabaseMongoDelete);
|
|
33
|
-
let { projectId, mongoId } = flags;
|
|
34
|
-
// Modo interactivo si no se proporcionan los flags necesarios
|
|
35
|
-
if (!projectId || !mongoId) {
|
|
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 MongoDB 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.mongo || projectSelected.mongo.length === 0) {
|
|
54
|
-
this.error(chalk.yellow("No MongoDB instances found in this project."));
|
|
55
|
-
}
|
|
56
|
-
if (!mongoId) {
|
|
57
|
-
const dbAnswers = await inquirer.prompt([
|
|
58
|
-
{
|
|
59
|
-
// @ts-ignore
|
|
60
|
-
choices: projectSelected.mongo.map((db) => ({
|
|
61
|
-
name: db.name,
|
|
62
|
-
value: db.mongoId,
|
|
63
|
-
})),
|
|
64
|
-
message: "Select the MongoDB instance to delete:",
|
|
65
|
-
name: "selectedDb",
|
|
66
|
-
type: "list",
|
|
67
|
-
},
|
|
68
|
-
]);
|
|
69
|
-
mongoId = 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 MongoDB instance?",
|
|
78
|
-
name: "confirmDelete",
|
|
79
|
-
type: "confirm",
|
|
80
|
-
},
|
|
81
|
-
]);
|
|
82
|
-
if (!confirmAnswers.confirmDelete) {
|
|
83
|
-
this.error(chalk.yellow("MongoDB deletion cancelled."));
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
try {
|
|
87
|
-
const response = await axios.post(`${auth.url}/api/trpc/mongo.remove`, {
|
|
88
|
-
json: {
|
|
89
|
-
mongoId,
|
|
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 MongoDB instance"));
|
|
99
|
-
}
|
|
100
|
-
this.log(chalk.green("MongoDB instance deleted successfully."));
|
|
101
|
-
}
|
|
102
|
-
catch (error) {
|
|
103
|
-
this.error(chalk.red(`Error deleting MongoDB instance: ${error.message}`));
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { Command } from "@oclif/core";
|
|
2
|
-
export default class DatabaseMongoDeploy 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
|
-
mongoId: 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 DatabaseMongoDeploy extends Command {
|
|
8
|
-
static description = "Deploy an mongo to a project.";
|
|
9
|
-
static examples = ["$ <%= config.bin %> app deploy"];
|
|
10
|
-
static flags = {
|
|
11
|
-
projectId: Flags.string({
|
|
12
|
-
char: "p",
|
|
13
|
-
description: "ID of the project",
|
|
14
|
-
required: false,
|
|
15
|
-
}),
|
|
16
|
-
mongoId: Flags.string({
|
|
17
|
-
char: "m",
|
|
18
|
-
description: "ID of the MongoDB 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(DatabaseMongoDeploy);
|
|
30
|
-
let { projectId, mongoId } = flags;
|
|
31
|
-
// Modo interactivo si no se proporcionan los flags necesarios
|
|
32
|
-
if (!projectId || !mongoId) {
|
|
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 MongoDB 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.mongo.length === 0) {
|
|
51
|
-
this.error(chalk.yellow("No MongoDB instances found in this project."));
|
|
52
|
-
}
|
|
53
|
-
if (!mongoId) {
|
|
54
|
-
const dbAnswers = await inquirer.prompt([
|
|
55
|
-
{
|
|
56
|
-
// @ts-ignore
|
|
57
|
-
choices: projectSelected.mongo.map((db) => ({
|
|
58
|
-
name: db.name,
|
|
59
|
-
value: db.mongoId,
|
|
60
|
-
})),
|
|
61
|
-
message: "Select the MongoDB instance to deploy:",
|
|
62
|
-
name: "selectedDb",
|
|
63
|
-
type: "list",
|
|
64
|
-
},
|
|
65
|
-
]);
|
|
66
|
-
mongoId = 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 MongoDB instance?",
|
|
75
|
-
name: "confirmDeploy",
|
|
76
|
-
type: "confirm",
|
|
77
|
-
},
|
|
78
|
-
]);
|
|
79
|
-
if (!confirmAnswers.confirmDeploy) {
|
|
80
|
-
this.error(chalk.yellow("MongoDB deployment cancelled."));
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
try {
|
|
84
|
-
const response = await axios.post(`${auth.url}/api/trpc/mongo.deploy`, {
|
|
85
|
-
json: {
|
|
86
|
-
mongoId,
|
|
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 MongoDB instance"));
|
|
96
|
-
}
|
|
97
|
-
this.log(chalk.green("MongoDB instance deployed successfully."));
|
|
98
|
-
}
|
|
99
|
-
catch (error) {
|
|
100
|
-
this.error(chalk.red(`Error deploying MongoDB instance: ${error.message}`));
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { Command } from "@oclif/core";
|
|
2
|
-
export default class DatabaseMongoStop 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
|
-
mongoId: 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
|
-
}
|