@dbos-inc/dbos-cloud 0.9.17 → 0.9.25

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 (48) hide show
  1. package/applications/delete-app.ts +6 -7
  2. package/applications/deploy-app-code.ts +8 -7
  3. package/applications/get-app-info.ts +6 -6
  4. package/applications/get-app-logs.ts +6 -6
  5. package/applications/list-apps.ts +2 -2
  6. package/applications/register-app.ts +6 -7
  7. package/applications/update-app.ts +6 -7
  8. package/cli.ts +66 -30
  9. package/cloudutils.ts +19 -0
  10. package/dashboards.ts +29 -0
  11. package/dist/packages/dbos-cloud/applications/delete-app.d.ts.map +1 -1
  12. package/dist/packages/dbos-cloud/applications/delete-app.js +5 -6
  13. package/dist/packages/dbos-cloud/applications/delete-app.js.map +1 -1
  14. package/dist/packages/dbos-cloud/applications/deploy-app-code.d.ts.map +1 -1
  15. package/dist/packages/dbos-cloud/applications/deploy-app-code.js +7 -6
  16. package/dist/packages/dbos-cloud/applications/deploy-app-code.js.map +1 -1
  17. package/dist/packages/dbos-cloud/applications/get-app-info.d.ts.map +1 -1
  18. package/dist/packages/dbos-cloud/applications/get-app-info.js +5 -5
  19. package/dist/packages/dbos-cloud/applications/get-app-info.js.map +1 -1
  20. package/dist/packages/dbos-cloud/applications/get-app-logs.d.ts.map +1 -1
  21. package/dist/packages/dbos-cloud/applications/get-app-logs.js +5 -5
  22. package/dist/packages/dbos-cloud/applications/get-app-logs.js.map +1 -1
  23. package/dist/packages/dbos-cloud/applications/list-apps.js +2 -2
  24. package/dist/packages/dbos-cloud/applications/list-apps.js.map +1 -1
  25. package/dist/packages/dbos-cloud/applications/register-app.d.ts.map +1 -1
  26. package/dist/packages/dbos-cloud/applications/register-app.js +5 -6
  27. package/dist/packages/dbos-cloud/applications/register-app.js.map +1 -1
  28. package/dist/packages/dbos-cloud/applications/update-app.d.ts.map +1 -1
  29. package/dist/packages/dbos-cloud/applications/update-app.js +5 -6
  30. package/dist/packages/dbos-cloud/applications/update-app.js.map +1 -1
  31. package/dist/packages/dbos-cloud/cli.js +59 -28
  32. package/dist/packages/dbos-cloud/cli.js.map +1 -1
  33. package/dist/packages/dbos-cloud/cloudutils.d.ts +2 -0
  34. package/dist/packages/dbos-cloud/cloudutils.d.ts.map +1 -1
  35. package/dist/packages/dbos-cloud/cloudutils.js +20 -1
  36. package/dist/packages/dbos-cloud/cloudutils.js.map +1 -1
  37. package/dist/packages/dbos-cloud/dashboards.d.ts +2 -0
  38. package/dist/packages/dbos-cloud/dashboards.d.ts.map +1 -0
  39. package/dist/packages/dbos-cloud/dashboards.js +36 -0
  40. package/dist/packages/dbos-cloud/dashboards.js.map +1 -0
  41. package/dist/packages/dbos-cloud/register.d.ts.map +1 -1
  42. package/dist/packages/dbos-cloud/register.js +8 -2
  43. package/dist/packages/dbos-cloud/register.js.map +1 -1
  44. package/dist/packages/dbos-cloud/userdb.js +4 -4
  45. package/dist/packages/dbos-cloud/userdb.js.map +1 -1
  46. package/package.json +1 -1
  47. package/register.ts +7 -2
  48. package/userdb.ts +4 -4
@@ -1,20 +1,19 @@
1
1
  import axios, { AxiosError } from "axios";
2
- import { isCloudAPIErrorResponse, handleAPIErrors, getCloudCredentials, getLogger } from "../cloudutils";
3
- import path from "node:path";
2
+ import { isCloudAPIErrorResponse, handleAPIErrors, getCloudCredentials, getLogger, retrieveApplicationName } from "../cloudutils";
4
3
 
5
4
  export async function deleteApp(host: string): Promise<number> {
6
5
  const logger = getLogger()
7
6
  const userCredentials = getCloudCredentials();
8
7
  const bearerToken = "Bearer " + userCredentials.token;
9
8
 
10
- // eslint-disable-next-line @typescript-eslint/no-var-requires
11
- const packageJson = require(path.join(process.cwd(), 'package.json')) as { name: string };
12
- const appName = packageJson.name;
13
- logger.info(`Loaded application name from package.json: ${appName}`)
9
+ const appName = retrieveApplicationName(logger);
10
+ if (appName === null) {
11
+ return 1;
12
+ }
14
13
  logger.info(`Deleting application: ${appName}`)
15
14
 
16
15
  try {
17
- await axios.delete(`https://${host}/${userCredentials.userName}/application/${appName}`, {
16
+ await axios.delete(`https://${host}/v1alpha1/${userCredentials.userName}/applications/${appName}`, {
18
17
  headers: {
19
18
  "Content-Type": "application/json",
20
19
  Authorization: bearerToken,
@@ -1,7 +1,7 @@
1
1
  import axios, { AxiosError } from "axios";
2
2
  import { execSync } from "child_process";
3
3
  import { writeFileSync, existsSync } from 'fs';
4
- import { handleAPIErrors, createDirectory, dbosConfigFilePath, getCloudCredentials, getLogger, readFileSync, runCommand, sleep, isCloudAPIErrorResponse } from "../cloudutils";
4
+ import { handleAPIErrors, createDirectory, dbosConfigFilePath, getCloudCredentials, getLogger, readFileSync, runCommand, sleep, isCloudAPIErrorResponse, retrieveApplicationName } from "../cloudutils";
5
5
  import path from "path";
6
6
  import { Application } from "./types";
7
7
 
@@ -17,9 +17,10 @@ export async function deployAppCode(host: string, docker: boolean): Promise<numb
17
17
  const userCredentials = getCloudCredentials();
18
18
  const bearerToken = "Bearer " + userCredentials.token;
19
19
 
20
- // eslint-disable-next-line @typescript-eslint/no-var-requires
21
- const packageJson = require(path.join(process.cwd(), 'package.json')) as { name: string };
22
- const appName = packageJson.name;
20
+ const appName = retrieveApplicationName(logger);
21
+ if (appName === null) {
22
+ return 1;
23
+ }
23
24
  logger.info(`Loaded application name from package.json: ${appName}`)
24
25
 
25
26
  createDirectory(deployDirectoryName);
@@ -52,7 +53,7 @@ export async function deployAppCode(host: string, docker: boolean): Promise<numb
52
53
  // Submit the deploy request
53
54
  logger.info(`Submitting deploy request for ${appName}`)
54
55
  const response = await axios.post(
55
- `https://${host}/${userCredentials.userName}/application/${appName}`,
56
+ `https://${host}/v1alpha1/${userCredentials.userName}/applications/${appName}`,
56
57
  {
57
58
  application_archive: zipData,
58
59
  },
@@ -84,7 +85,7 @@ export async function deployAppCode(host: string, docker: boolean): Promise<numb
84
85
 
85
86
  // Retrieve the application status, check if it is "AVAILABLE"
86
87
  const list = await axios.get(
87
- `https://${host}/${userCredentials.userName}/application`,
88
+ `https://${host}/v1alpha1/${userCredentials.userName}/applications`,
88
89
  {
89
90
  headers: {
90
91
  Authorization: bearerToken,
@@ -101,7 +102,7 @@ export async function deployAppCode(host: string, docker: boolean): Promise<numb
101
102
  }
102
103
  await sleep(5000); // Leave time for route cache updates
103
104
  logger.info(`Application ${appName} successfuly deployed`)
104
- logger.info(`Access your application at https://${host}/${userCredentials.userName}/application/${appName}`)
105
+ logger.info(`Access your application at https://${host}/apps/${userCredentials.userName}/${appName}`)
105
106
  return 0;
106
107
  } catch (e) {
107
108
  const errorLabel = `Failed to deploy application ${appName}`;
@@ -1,6 +1,5 @@
1
1
  import axios , { AxiosError } from "axios";
2
- import { handleAPIErrors, getCloudCredentials, getLogger, isCloudAPIErrorResponse } from "../cloudutils";
3
- import path from "node:path";
2
+ import { handleAPIErrors, getCloudCredentials, getLogger, isCloudAPIErrorResponse, retrieveApplicationName } from "../cloudutils";
4
3
  import { Application } from "./types";
5
4
 
6
5
  export async function getAppInfo(host: string, json: boolean): Promise<number> {
@@ -8,15 +7,16 @@ export async function getAppInfo(host: string, json: boolean): Promise<number> {
8
7
  const userCredentials = getCloudCredentials();
9
8
  const bearerToken = "Bearer " + userCredentials.token;
10
9
 
11
- // eslint-disable-next-line @typescript-eslint/no-var-requires
12
- const packageJson = require(path.join(process.cwd(), 'package.json')) as { name: string };
13
- const appName = packageJson.name;
10
+ const appName = retrieveApplicationName(logger, json);
11
+ if (appName === null) {
12
+ return 1;
13
+ }
14
14
  if (!json) {
15
15
  logger.info(`Retrieving info for application: ${appName}`)
16
16
  }
17
17
 
18
18
  try {
19
- const res = await axios.get(`https://${host}/${userCredentials.userName}/application/${appName}`, {
19
+ const res = await axios.get(`https://${host}/v1alpha1/${userCredentials.userName}/applications/${appName}`, {
20
20
  headers: {
21
21
  "Content-Type": "application/json",
22
22
  Authorization: bearerToken,
@@ -1,6 +1,5 @@
1
1
  import axios , { AxiosError } from "axios";
2
- import { handleAPIErrors, getCloudCredentials, getLogger, isCloudAPIErrorResponse } from "../cloudutils";
3
- import path from "node:path";
2
+ import { handleAPIErrors, getCloudCredentials, getLogger, isCloudAPIErrorResponse, retrieveApplicationName } from "../cloudutils";
4
3
 
5
4
  export async function getAppLogs(host: string, last: number): Promise<number> {
6
5
  if (last != undefined && (isNaN(last) || last <= 0)) {
@@ -13,13 +12,14 @@ export async function getAppLogs(host: string, last: number): Promise<number> {
13
12
  const userCredentials = getCloudCredentials();
14
13
  const bearerToken = "Bearer " + userCredentials.token;
15
14
 
16
- // eslint-disable-next-line @typescript-eslint/no-var-requires
17
- const packageJson = require(path.join(process.cwd(), 'package.json')) as { name: string };
18
- const appName = packageJson.name;
15
+ const appName = retrieveApplicationName(logger);
16
+ if (appName === null) {
17
+ return 1;
18
+ }
19
19
  logger.info(`Retrieving logs for application: ${appName}`)
20
20
 
21
21
  try {
22
- const res = await axios.get(`https://${host}/${userCredentials.userName}/logs/application/${appName}?last=${last}`, {
22
+ const res = await axios.get(`https://${host}/v1alpha1/${userCredentials.userName}/logs/applications/${appName}?last=${last}`, {
23
23
  headers: {
24
24
  "Content-Type": "application/json",
25
25
  Authorization: bearerToken,
@@ -9,7 +9,7 @@ export async function listApps(host: string, json: boolean): Promise<number> {
9
9
 
10
10
  try {
11
11
  const list = await axios.get(
12
- `https://${host}/${userCredentials.userName}/application`,
12
+ `https://${host}/v1alpha1/${userCredentials.userName}/applications`,
13
13
  {
14
14
  headers: {
15
15
  Authorization: bearerToken,
@@ -28,7 +28,7 @@ export async function listApps(host: string, json: boolean): Promise<number> {
28
28
  applications.forEach(app => {
29
29
  console.log(`Application Name: ${app.Name}`);
30
30
  console.log(`ID: ${app.ID}`);
31
- console.log(`Postgres Instance Name: ${app.ApplicationDatabaseName}`);
31
+ console.log(`Postgres Instance Name: ${app.PostgresInstanceName}`);
32
32
  console.log(`Application Database Name: ${app.ApplicationDatabaseName}`);
33
33
  console.log(`Status: ${app.Status}`);
34
34
  console.log(`Version: ${app.Version}`);
@@ -1,21 +1,20 @@
1
1
  import axios, { AxiosError } from "axios";
2
- import { handleAPIErrors, getCloudCredentials, getLogger, isCloudAPIErrorResponse } from "../cloudutils";
3
- import path from "node:path";
2
+ import { handleAPIErrors, getCloudCredentials, getLogger, isCloudAPIErrorResponse, retrieveApplicationName } from "../cloudutils";
4
3
 
5
4
  export async function registerApp(dbname: string, host: string): Promise<number> {
6
5
  const logger = getLogger();
7
6
  const userCredentials = getCloudCredentials();
8
7
  const bearerToken = "Bearer " + userCredentials.token;
9
8
 
10
- // eslint-disable-next-line @typescript-eslint/no-var-requires
11
- const packageJson = require(path.join(process.cwd(), 'package.json')) as { name: string };
12
- const appName = packageJson.name;
13
- logger.info(`Loaded application name from package.json: ${appName}`)
9
+ const appName = retrieveApplicationName(logger);
10
+ if (appName === null) {
11
+ return 1;
12
+ }
14
13
  logger.info(`Registering application: ${appName}`)
15
14
 
16
15
  try {
17
16
  const register = await axios.put(
18
- `https://${host}/${userCredentials.userName}/application`,
17
+ `https://${host}/v1alpha1/${userCredentials.userName}/applications`,
19
18
  {
20
19
  name: appName,
21
20
  database: dbname,
@@ -1,23 +1,22 @@
1
1
  import axios, { AxiosError } from "axios";
2
- import { getCloudCredentials, getLogger, handleAPIErrors, isCloudAPIErrorResponse } from "../cloudutils";
2
+ import { getCloudCredentials, getLogger, handleAPIErrors, isCloudAPIErrorResponse, retrieveApplicationName } from "../cloudutils";
3
3
  import { Application } from "./types";
4
- import path from "node:path";
5
4
 
6
5
  export async function updateApp(host: string): Promise<number> {
7
6
  const logger = getLogger();
8
7
  const userCredentials = getCloudCredentials();
9
8
  const bearerToken = "Bearer " + userCredentials.token;
10
9
 
11
- // eslint-disable-next-line @typescript-eslint/no-var-requires
12
- const packageJson = require(path.join(process.cwd(), 'package.json')) as { name: string };
13
- const appName = packageJson.name;
14
- logger.info(`Loaded application name from package.json: ${appName}`)
10
+ const appName = retrieveApplicationName(logger);
11
+ if (appName === null) {
12
+ return 1;
13
+ }
15
14
  logger.info(`Updating application: ${appName}`)
16
15
 
17
16
  try {
18
17
  logger.info(`Updating application ${appName}`);
19
18
  const update = await axios.patch(
20
- `https://${host}/${userCredentials.userName}/application/${appName}`,
19
+ `https://${host}/v1alpha1/${userCredentials.userName}/applications/${appName}`,
21
20
  {
22
21
  name: appName,
23
22
  },
package/cli.ts CHANGED
@@ -12,9 +12,11 @@ import { Command } from 'commander';
12
12
  import { login } from "./login";
13
13
  import { registerUser } from "./register";
14
14
  import { createUserDb, getUserDb, deleteUserDb, listUserDB } from "./userdb";
15
- import { DBOSCloudHost } from "./cloudutils";
15
+ import { launchDashboard } from "./dashboards";
16
+ import { DBOSCloudHost, credentialsExist, deleteCredentials } from "./cloudutils";
16
17
  import { getAppInfo } from "./applications/get-app-info";
17
18
 
19
+
18
20
  const program = new Command();
19
21
 
20
22
  // eslint-disable-next-line @typescript-eslint/no-var-requires
@@ -37,25 +39,38 @@ program
37
39
 
38
40
  program
39
41
  .command('register')
40
- .description('Register a user and log in to DBOS cloud')
42
+ .description('Register a user with DBOS cloud')
41
43
  .requiredOption('-u, --username <string>', 'Username')
42
44
  .action(async (options: { username: string}) => {
43
45
  const exitCode = await registerUser(options.username, DBOSCloudHost);
44
46
  process.exit(exitCode);
45
47
  });
46
48
 
49
+ program
50
+ .command('logout')
51
+ .description('Log out of DBOS cloud')
52
+ .action(() => {
53
+ if (credentialsExist()) {
54
+ deleteCredentials();
55
+ }
56
+ process.exit(0);
57
+ });
58
+
47
59
  /////////////////////////////
48
60
  /* APPLICATIONS MANAGEMENT */
49
61
  /////////////////////////////
50
62
 
51
63
  const applicationCommands = program
52
- .command('applications')
64
+ .command('application')
65
+ .alias('applications')
66
+ .alias('app')
67
+ .alias('apps')
53
68
  .description('Manage your DBOS applications')
54
69
 
55
70
  applicationCommands
56
71
  .command('register')
57
- .description('Register a new application')
58
- .requiredOption('-d, --database <string>', 'Specify the app database name')
72
+ .description('Register this application')
73
+ .requiredOption('-d, --database <string>', 'Specify a Postgres database instance for this application')
59
74
  .action(async (options: { database: string }) => {
60
75
  const exitCode = await registerApp(options.database, DBOSCloudHost);
61
76
  process.exit(exitCode);
@@ -63,7 +78,7 @@ applicationCommands
63
78
 
64
79
  applicationCommands
65
80
  .command('update')
66
- .description('Update an application')
81
+ .description('Update this application')
67
82
  .action(async () => {
68
83
  const exitCode = await updateApp(DBOSCloudHost);
69
84
  process.exit(exitCode);
@@ -71,7 +86,7 @@ applicationCommands
71
86
 
72
87
  applicationCommands
73
88
  .command('deploy')
74
- .description('Deploy an application code to the cloud')
89
+ .description('Deploy this application to the cloud')
75
90
  .option('--no-docker', 'Build the code locally without using Docker')
76
91
  .action(async (options: { docker: boolean }) => {
77
92
  const exitCode = await deployAppCode(DBOSCloudHost, options.docker);
@@ -80,7 +95,7 @@ applicationCommands
80
95
 
81
96
  applicationCommands
82
97
  .command('delete')
83
- .description('Delete a previously deployed application')
98
+ .description('Delete this application')
84
99
  .action(async () => {
85
100
  const exitCode = await deleteApp(DBOSCloudHost);
86
101
  process.exit(exitCode);
@@ -88,7 +103,7 @@ applicationCommands
88
103
 
89
104
  applicationCommands
90
105
  .command('list')
91
- .description('List all deployed applications')
106
+ .description('List all applications')
92
107
  .option('--json', 'Emit JSON output')
93
108
  .action(async (options: { json: boolean }) => {
94
109
  const exitCode = await listApps(DBOSCloudHost, options.json);
@@ -96,8 +111,8 @@ applicationCommands
96
111
  });
97
112
 
98
113
  applicationCommands
99
- .command('get')
100
- .description('Get application info')
114
+ .command('status')
115
+ .description("Retrieve this application's status")
101
116
  .option('--json', 'Emit JSON output')
102
117
  .action(async (options: { json: boolean }) => {
103
118
  const exitCode = await getAppInfo(DBOSCloudHost, options.json);
@@ -106,57 +121,78 @@ applicationCommands
106
121
 
107
122
  applicationCommands
108
123
  .command('logs')
109
- .description('Print the microVM logs of a deployed application')
124
+ .description("Print this application's logs")
110
125
  .option('-l, --last <integer>', 'How far back to query, in seconds from current time. By default, we retrieve all data', parseInt)
111
126
  .action(async (options: { last: number}) => {
112
127
  const exitCode = await getAppLogs(DBOSCloudHost, options.last);
113
128
  process.exit(exitCode);
114
129
  });
115
130
 
116
- //////////////////////////////
117
- /* USER DATABASE MANAGEMENT */
118
- //////////////////////////////
131
+ //////////////////////////////////
132
+ /* DATABASE INSTANCE MANAGEMENT */
133
+ //////////////////////////////////
119
134
 
120
- const userdbCommands = program
121
- .command('userdb')
122
- .description('Manage your databases')
135
+ const databaseCommands = program
136
+ .command('database')
137
+ .alias('databases')
138
+ .alias('db')
139
+ .description('Manage Postgres database instances')
123
140
 
124
- userdbCommands
125
- .command('create')
126
- .argument('<string>', 'database name')
141
+ databaseCommands
142
+ .command('provision')
143
+ .description("Provision a Postgres database instance")
144
+ .argument('<string>', 'database instance name')
127
145
  .requiredOption('-a, --admin <string>', 'Specify the admin user')
128
146
  .requiredOption('-W, --password <string>', 'Specify the admin password')
129
- .option('-s, --sync', 'make synchronous call', true)
130
- .action((async (dbname: string, options: { admin: string, password: string, sync: boolean }) => {
131
- const exitCode = await createUserDb(DBOSCloudHost, dbname, options.admin, options.password, options.sync)
147
+ .action((async (dbname: string, options: { admin: string, password: string }) => {
148
+ const exitCode = await createUserDb(DBOSCloudHost, dbname, options.admin, options.password, true)
132
149
  process.exit(exitCode);
133
150
  }))
134
151
 
135
- userdbCommands
152
+ databaseCommands
136
153
  .command('status')
137
- .argument('<string>', 'database name')
154
+ .description("Retrieve the status of a Postgres database instance")
155
+ .argument('<string>', 'database instance name')
138
156
  .option('--json', 'Emit JSON output')
139
157
  .action((async (dbname: string, options: { json: boolean}) => {
140
158
  const exitCode = await getUserDb(DBOSCloudHost, dbname, options.json)
141
159
  process.exit(exitCode);
142
160
  }))
143
161
 
144
- userdbCommands
162
+ databaseCommands
145
163
  .command('list')
164
+ .description("List all your Postgres database instances")
146
165
  .option('--json', 'Emit JSON output')
147
166
  .action((async (options: { json: boolean}) => {
148
167
  const exitCode = await listUserDB(DBOSCloudHost, options.json)
149
168
  process.exit(exitCode);
150
169
  }))
151
170
 
152
- userdbCommands
153
- .command('delete')
154
- .argument('<string>', 'database name')
171
+ databaseCommands
172
+ .command('destroy')
173
+ .description("Destroy a Postgres database instance")
174
+ .argument('<string>', 'database instance name')
155
175
  .action((async (dbname: string) => {
156
176
  const exitCode = await deleteUserDb(DBOSCloudHost, dbname)
157
177
  process.exit(exitCode);
158
178
  }))
159
179
 
180
+ /////////////////////
181
+ /* USER DASHBOARDS */
182
+ /////////////////////
183
+
184
+ const dashboardCommands = program
185
+ .command('dashboard')
186
+ .description('Manage Monitoring Dashboards')
187
+
188
+ dashboardCommands
189
+ .command('launch')
190
+ .description('Deploy the Monitoring Dashboard')
191
+ .action(async () => {
192
+ const exitCode = await launchDashboard(DBOSCloudHost);
193
+ process.exit(exitCode);
194
+ });
195
+
160
196
  program.parse(process.argv);
161
197
 
162
198
  // If no arguments provided, display help by default
package/cloudutils.ts CHANGED
@@ -4,6 +4,7 @@ import { transports, createLogger, format, Logger } from "winston";
4
4
  import fs from "fs";
5
5
  import { AxiosError } from "axios";
6
6
  import jwt from 'jsonwebtoken';
7
+ import path from "node:path";
7
8
 
8
9
  export interface DBOSCloudCredentials {
9
10
  token: string;
@@ -14,6 +15,20 @@ export const dbosConfigFilePath = "dbos-config.yaml";
14
15
  export const DBOSCloudHost = process.env.DBOS_DOMAIN || "cloud.dbos.dev";
15
16
  export const dbosEnvPath = ".dbos";
16
17
 
18
+ export function retrieveApplicationName(logger: Logger, silent: boolean = false): string | null {
19
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
20
+ const packageJson = require(path.join(process.cwd(), 'package.json')) as { name: string };
21
+ const appName = packageJson.name;
22
+ if (appName === undefined) {
23
+ logger.error("Error: cannot find a valid package.json file. Please run this command in an application root directory.")
24
+ return null;
25
+ }
26
+ if (!silent) {
27
+ logger.info(`Loaded application name from package.json: ${appName}`)
28
+ }
29
+ return appName
30
+ }
31
+
17
32
  // FIXME: we should have a global instance of the logger created in cli.ts
18
33
  export function getLogger(): Logger {
19
34
  const winstonTransports: TransportStream[] = [];
@@ -77,6 +92,10 @@ export function credentialsExist(): boolean {
77
92
  return fs.existsSync(`./${dbosEnvPath}/credentials`);
78
93
  }
79
94
 
95
+ export function deleteCredentials() {
96
+ fs.unlinkSync(`./${dbosEnvPath}/credentials`);
97
+ }
98
+
80
99
  // Run a command, streaming its output to stdout
81
100
  export function runCommand(command: string, args: string[] = []): Promise<number> {
82
101
  return new Promise((resolve, reject) => {
package/dashboards.ts ADDED
@@ -0,0 +1,29 @@
1
+ import axios, { AxiosError } from "axios";
2
+ import { getLogger, getCloudCredentials, isCloudAPIErrorResponse, handleAPIErrors } from "./cloudutils";
3
+
4
+ export async function launchDashboard(host: string): Promise<number> {
5
+ const logger = getLogger();
6
+ const userCredentials = getCloudCredentials();
7
+ const bearerToken = "Bearer " + userCredentials.token;
8
+ try{
9
+ const res = await axios.put(`https://${host}/v1alpha1/${userCredentials.userName}/dashboard`,
10
+ {},
11
+ {
12
+ headers: {
13
+ "Content-Type": "application/json",
14
+ Authorization: bearerToken,
15
+ }
16
+ });
17
+ logger.info(`Dashboard ready at ${res.data}`)
18
+ return 0
19
+ } catch (e) {
20
+ const errorLabel = `Failed to initialize dashboard`;
21
+ const axiosError = e as AxiosError;
22
+ if (isCloudAPIErrorResponse(axiosError.response?.data)) {
23
+ handleAPIErrors(errorLabel, axiosError);
24
+ } else {
25
+ logger.error(`${errorLabel}: ${(e as Error).message}`);
26
+ }
27
+ }
28
+ return 1;
29
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"delete-app.d.ts","sourceRoot":"","sources":["../../../../applications/delete-app.ts"],"names":[],"mappings":"AAIA,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CA+B7D"}
1
+ {"version":3,"file":"delete-app.d.ts","sourceRoot":"","sources":["../../../../applications/delete-app.ts"],"names":[],"mappings":"AAGA,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CA+B7D"}
@@ -6,18 +6,17 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.deleteApp = void 0;
7
7
  const axios_1 = __importDefault(require("axios"));
8
8
  const cloudutils_1 = require("../cloudutils");
9
- const node_path_1 = __importDefault(require("node:path"));
10
9
  async function deleteApp(host) {
11
10
  const logger = (0, cloudutils_1.getLogger)();
12
11
  const userCredentials = (0, cloudutils_1.getCloudCredentials)();
13
12
  const bearerToken = "Bearer " + userCredentials.token;
14
- // eslint-disable-next-line @typescript-eslint/no-var-requires
15
- const packageJson = require(node_path_1.default.join(process.cwd(), 'package.json'));
16
- const appName = packageJson.name;
17
- logger.info(`Loaded application name from package.json: ${appName}`);
13
+ const appName = (0, cloudutils_1.retrieveApplicationName)(logger);
14
+ if (appName === null) {
15
+ return 1;
16
+ }
18
17
  logger.info(`Deleting application: ${appName}`);
19
18
  try {
20
- await axios_1.default.delete(`https://${host}/${userCredentials.userName}/application/${appName}`, {
19
+ await axios_1.default.delete(`https://${host}/v1alpha1/${userCredentials.userName}/applications/${appName}`, {
21
20
  headers: {
22
21
  "Content-Type": "application/json",
23
22
  Authorization: bearerToken,
@@ -1 +1 @@
1
- {"version":3,"file":"delete-app.js","sourceRoot":"","sources":["../../../../applications/delete-app.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0C;AAC1C,8CAAyG;AACzG,0DAA6B;AAEtB,KAAK,UAAU,SAAS,CAAC,IAAY;IAC1C,MAAM,MAAM,GAAG,IAAA,sBAAS,GAAE,CAAA;IAC1B,MAAM,eAAe,GAAG,IAAA,gCAAmB,GAAE,CAAC;IAC9C,MAAM,WAAW,GAAG,SAAS,GAAG,eAAe,CAAC,KAAK,CAAC;IAEtD,8DAA8D;IAC9D,MAAM,WAAW,GAAG,OAAO,CAAC,mBAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC,CAAqB,CAAC;IAC1F,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC;IACjC,MAAM,CAAC,IAAI,CAAC,8CAA8C,OAAO,EAAE,CAAC,CAAA;IACpE,MAAM,CAAC,IAAI,CAAC,yBAAyB,OAAO,EAAE,CAAC,CAAA;IAE/C,IAAI,CAAC;QACH,MAAM,eAAK,CAAC,MAAM,CAAC,WAAW,IAAI,IAAI,eAAe,CAAC,QAAQ,gBAAgB,OAAO,EAAE,EAAE;YACvF,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,aAAa,EAAE,WAAW;aAC3B;SACF,CAAC,CAAC;QAEH,MAAM,CAAC,IAAI,CAAC,qCAAqC,OAAO,EAAE,CAAC,CAAC;QAC5D,OAAO,CAAC,CAAC;IACX,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,UAAU,GAAG,gCAAgC,OAAO,EAAE,CAAC;QAC7D,MAAM,UAAU,GAAG,CAAe,CAAC;QACnC,IAAI,IAAA,oCAAuB,EAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC;YACvD,IAAA,4BAAe,EAAC,UAAU,EAAE,UAAU,CAAC,CAAC;QAC1C,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,KAAK,CAAC,GAAG,UAAU,KAAM,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;QACzD,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC;AACH,CAAC;AA/BD,8BA+BC"}
1
+ {"version":3,"file":"delete-app.js","sourceRoot":"","sources":["../../../../applications/delete-app.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0C;AAC1C,8CAAkI;AAE3H,KAAK,UAAU,SAAS,CAAC,IAAY;IAC1C,MAAM,MAAM,GAAG,IAAA,sBAAS,GAAE,CAAA;IAC1B,MAAM,eAAe,GAAG,IAAA,gCAAmB,GAAE,CAAC;IAC9C,MAAM,WAAW,GAAG,SAAS,GAAG,eAAe,CAAC,KAAK,CAAC;IAEtD,MAAM,OAAO,GAAG,IAAA,oCAAuB,EAAC,MAAM,CAAC,CAAC;IAChD,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACrB,OAAO,CAAC,CAAC;IACX,CAAC;IACD,MAAM,CAAC,IAAI,CAAC,yBAAyB,OAAO,EAAE,CAAC,CAAA;IAE/C,IAAI,CAAC;QACH,MAAM,eAAK,CAAC,MAAM,CAAC,WAAW,IAAI,aAAa,eAAe,CAAC,QAAQ,iBAAiB,OAAO,EAAE,EAAE;YACjG,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,aAAa,EAAE,WAAW;aAC3B;SACF,CAAC,CAAC;QAEH,MAAM,CAAC,IAAI,CAAC,qCAAqC,OAAO,EAAE,CAAC,CAAC;QAC5D,OAAO,CAAC,CAAC;IACX,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,UAAU,GAAG,gCAAgC,OAAO,EAAE,CAAC;QAC7D,MAAM,UAAU,GAAG,CAAe,CAAC;QACnC,IAAI,IAAA,oCAAuB,EAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC;YACvD,IAAA,4BAAe,EAAC,UAAU,EAAE,UAAU,CAAC,CAAC;QAC1C,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,KAAK,CAAC,GAAG,UAAU,KAAM,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;QACzD,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC;AACH,CAAC;AA/BD,8BA+BC"}
@@ -1 +1 @@
1
- {"version":3,"file":"deploy-app-code.d.ts","sourceRoot":"","sources":["../../../../applications/deploy-app-code.ts"],"names":[],"mappings":"AAcA,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAqGlF"}
1
+ {"version":3,"file":"deploy-app-code.d.ts","sourceRoot":"","sources":["../../../../applications/deploy-app-code.ts"],"names":[],"mappings":"AAcA,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAsGlF"}
@@ -14,9 +14,10 @@ async function deployAppCode(host, docker) {
14
14
  const logger = (0, cloudutils_1.getLogger)();
15
15
  const userCredentials = (0, cloudutils_1.getCloudCredentials)();
16
16
  const bearerToken = "Bearer " + userCredentials.token;
17
- // eslint-disable-next-line @typescript-eslint/no-var-requires
18
- const packageJson = require(path_1.default.join(process.cwd(), 'package.json'));
19
- const appName = packageJson.name;
17
+ const appName = (0, cloudutils_1.retrieveApplicationName)(logger);
18
+ if (appName === null) {
19
+ return 1;
20
+ }
20
21
  logger.info(`Loaded application name from package.json: ${appName}`);
21
22
  (0, cloudutils_1.createDirectory)(deployDirectoryName);
22
23
  // Verify that package-lock.json exists
@@ -43,7 +44,7 @@ async function deployAppCode(host, docker) {
43
44
  const zipData = (0, cloudutils_1.readFileSync)(`${deployDirectoryName}/${appName}.zip`, "base64");
44
45
  // Submit the deploy request
45
46
  logger.info(`Submitting deploy request for ${appName}`);
46
- const response = await axios_1.default.post(`https://${host}/${userCredentials.userName}/application/${appName}`, {
47
+ const response = await axios_1.default.post(`https://${host}/v1alpha1/${userCredentials.userName}/applications/${appName}`, {
47
48
  application_archive: zipData,
48
49
  }, {
49
50
  headers: {
@@ -69,7 +70,7 @@ async function deployAppCode(host, docker) {
69
70
  return 1;
70
71
  }
71
72
  // Retrieve the application status, check if it is "AVAILABLE"
72
- const list = await axios_1.default.get(`https://${host}/${userCredentials.userName}/application`, {
73
+ const list = await axios_1.default.get(`https://${host}/v1alpha1/${userCredentials.userName}/applications`, {
73
74
  headers: {
74
75
  Authorization: bearerToken,
75
76
  },
@@ -84,7 +85,7 @@ async function deployAppCode(host, docker) {
84
85
  }
85
86
  await (0, cloudutils_1.sleep)(5000); // Leave time for route cache updates
86
87
  logger.info(`Application ${appName} successfuly deployed`);
87
- logger.info(`Access your application at https://${host}/${userCredentials.userName}/application/${appName}`);
88
+ logger.info(`Access your application at https://${host}/apps/${userCredentials.userName}/${appName}`);
88
89
  return 0;
89
90
  }
90
91
  catch (e) {
@@ -1 +1 @@
1
- {"version":3,"file":"deploy-app-code.js","sourceRoot":"","sources":["../../../../applications/deploy-app-code.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deploy-app-code.js","sourceRoot":"","sources":["../../../../applications/deploy-app-code.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"get-app-info.d.ts","sourceRoot":"","sources":["../../../../applications/get-app-info.ts"],"names":[],"mappings":"AAKA,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAyC7E"}
1
+ {"version":3,"file":"get-app-info.d.ts","sourceRoot":"","sources":["../../../../applications/get-app-info.ts"],"names":[],"mappings":"AAIA,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CA0C7E"}
@@ -6,19 +6,19 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.getAppInfo = void 0;
7
7
  const axios_1 = __importDefault(require("axios"));
8
8
  const cloudutils_1 = require("../cloudutils");
9
- const node_path_1 = __importDefault(require("node:path"));
10
9
  async function getAppInfo(host, json) {
11
10
  const logger = (0, cloudutils_1.getLogger)();
12
11
  const userCredentials = (0, cloudutils_1.getCloudCredentials)();
13
12
  const bearerToken = "Bearer " + userCredentials.token;
14
- // eslint-disable-next-line @typescript-eslint/no-var-requires
15
- const packageJson = require(node_path_1.default.join(process.cwd(), 'package.json'));
16
- const appName = packageJson.name;
13
+ const appName = (0, cloudutils_1.retrieveApplicationName)(logger, json);
14
+ if (appName === null) {
15
+ return 1;
16
+ }
17
17
  if (!json) {
18
18
  logger.info(`Retrieving info for application: ${appName}`);
19
19
  }
20
20
  try {
21
- const res = await axios_1.default.get(`https://${host}/${userCredentials.userName}/application/${appName}`, {
21
+ const res = await axios_1.default.get(`https://${host}/v1alpha1/${userCredentials.userName}/applications/${appName}`, {
22
22
  headers: {
23
23
  "Content-Type": "application/json",
24
24
  Authorization: bearerToken,