@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.
Files changed (88) hide show
  1. package/LICENSE.md +1 -1
  2. package/dist/client.d.ts +10 -0
  3. package/dist/client.js +72 -0
  4. package/dist/commands/auth.d.ts +2 -0
  5. package/dist/commands/auth.js +28 -0
  6. package/dist/generated/commands.d.ts +2 -0
  7. package/dist/generated/commands.js +9059 -0
  8. package/dist/index.d.ts +2 -1
  9. package/dist/index.js +24 -1
  10. package/package.json +25 -58
  11. package/readme.md +101 -83
  12. package/bin/dev.cmd +0 -3
  13. package/bin/dev.js +0 -6
  14. package/bin/run.cmd +0 -3
  15. package/bin/run.js +0 -5
  16. package/dist/commands/app/create.d.ts +0 -17
  17. package/dist/commands/app/create.js +0 -127
  18. package/dist/commands/app/delete.d.ts +0 -11
  19. package/dist/commands/app/delete.js +0 -106
  20. package/dist/commands/app/deploy.d.ts +0 -11
  21. package/dist/commands/app/deploy.js +0 -107
  22. package/dist/commands/app/stop.d.ts +0 -11
  23. package/dist/commands/app/stop.js +0 -102
  24. package/dist/commands/authenticate.d.ts +0 -10
  25. package/dist/commands/authenticate.js +0 -83
  26. package/dist/commands/database/mariadb/create.d.ts +0 -18
  27. package/dist/commands/database/mariadb/create.js +0 -188
  28. package/dist/commands/database/mariadb/delete.d.ts +0 -11
  29. package/dist/commands/database/mariadb/delete.js +0 -104
  30. package/dist/commands/database/mariadb/deploy.d.ts +0 -11
  31. package/dist/commands/database/mariadb/deploy.js +0 -103
  32. package/dist/commands/database/mariadb/stop.d.ts +0 -11
  33. package/dist/commands/database/mariadb/stop.js +0 -103
  34. package/dist/commands/database/mongo/create.d.ts +0 -17
  35. package/dist/commands/database/mongo/create.js +0 -176
  36. package/dist/commands/database/mongo/delete.d.ts +0 -11
  37. package/dist/commands/database/mongo/delete.js +0 -106
  38. package/dist/commands/database/mongo/deploy.d.ts +0 -11
  39. package/dist/commands/database/mongo/deploy.js +0 -103
  40. package/dist/commands/database/mongo/stop.d.ts +0 -11
  41. package/dist/commands/database/mongo/stop.js +0 -103
  42. package/dist/commands/database/mysql/create.d.ts +0 -18
  43. package/dist/commands/database/mysql/create.js +0 -188
  44. package/dist/commands/database/mysql/delete.d.ts +0 -11
  45. package/dist/commands/database/mysql/delete.js +0 -106
  46. package/dist/commands/database/mysql/deploy.d.ts +0 -6
  47. package/dist/commands/database/mysql/deploy.js +0 -86
  48. package/dist/commands/database/mysql/stop.d.ts +0 -6
  49. package/dist/commands/database/mysql/stop.js +0 -86
  50. package/dist/commands/database/postgres/create.d.ts +0 -17
  51. package/dist/commands/database/postgres/create.js +0 -176
  52. package/dist/commands/database/postgres/delete.d.ts +0 -11
  53. package/dist/commands/database/postgres/delete.js +0 -106
  54. package/dist/commands/database/postgres/deploy.d.ts +0 -11
  55. package/dist/commands/database/postgres/deploy.js +0 -103
  56. package/dist/commands/database/postgres/stop.d.ts +0 -11
  57. package/dist/commands/database/postgres/stop.js +0 -103
  58. package/dist/commands/database/redis/create.d.ts +0 -15
  59. package/dist/commands/database/redis/create.js +0 -151
  60. package/dist/commands/database/redis/delete.d.ts +0 -11
  61. package/dist/commands/database/redis/delete.js +0 -106
  62. package/dist/commands/database/redis/deploy.d.ts +0 -11
  63. package/dist/commands/database/redis/deploy.js +0 -103
  64. package/dist/commands/database/redis/stop.d.ts +0 -11
  65. package/dist/commands/database/redis/stop.js +0 -103
  66. package/dist/commands/env/pull.d.ts +0 -10
  67. package/dist/commands/env/pull.js +0 -68
  68. package/dist/commands/env/push.d.ts +0 -10
  69. package/dist/commands/env/push.js +0 -106
  70. package/dist/commands/project/create.d.ts +0 -11
  71. package/dist/commands/project/create.js +0 -89
  72. package/dist/commands/project/info.d.ts +0 -10
  73. package/dist/commands/project/info.js +0 -122
  74. package/dist/commands/project/list.d.ts +0 -6
  75. package/dist/commands/project/list.js +0 -43
  76. package/dist/commands/verify.d.ts +0 -6
  77. package/dist/commands/verify.js +0 -62
  78. package/dist/utils/http.d.ts +0 -4
  79. package/dist/utils/http.js +0 -4
  80. package/dist/utils/shared.d.ts +0 -10
  81. package/dist/utils/shared.js +0 -55
  82. package/dist/utils/slug.d.ts +0 -1
  83. package/dist/utils/slug.js +0 -12
  84. package/dist/utils/slugify.d.ts +0 -3
  85. package/dist/utils/slugify.js +0 -2
  86. package/dist/utils/utils.d.ts +0 -6
  87. package/dist/utils/utils.js +0 -26
  88. 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
- }