@dbos-inc/dbos-cloud 0.9.15-preview.g32137f5fa0 → 0.9.16-preview

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 (31) hide show
  1. package/applications/get-app-info.ts +47 -0
  2. package/applications/list-apps.ts +2 -1
  3. package/applications/types.ts +2 -1
  4. package/cli.ts +31 -26
  5. package/cloudutils.ts +24 -2
  6. package/dist/packages/dbos-cloud/applications/get-app-info.d.ts +2 -0
  7. package/dist/packages/dbos-cloud/applications/get-app-info.d.ts.map +1 -0
  8. package/dist/packages/dbos-cloud/applications/get-app-info.js +54 -0
  9. package/dist/packages/dbos-cloud/applications/get-app-info.js.map +1 -0
  10. package/dist/packages/dbos-cloud/applications/list-apps.d.ts.map +1 -1
  11. package/dist/packages/dbos-cloud/applications/list-apps.js +2 -1
  12. package/dist/packages/dbos-cloud/applications/list-apps.js.map +1 -1
  13. package/dist/packages/dbos-cloud/applications/types.d.ts +2 -1
  14. package/dist/packages/dbos-cloud/applications/types.d.ts.map +1 -1
  15. package/dist/packages/dbos-cloud/cli.js +29 -25
  16. package/dist/packages/dbos-cloud/cli.js.map +1 -1
  17. package/dist/packages/dbos-cloud/cloudutils.d.ts +6 -1
  18. package/dist/packages/dbos-cloud/cloudutils.d.ts.map +1 -1
  19. package/dist/packages/dbos-cloud/cloudutils.js +23 -5
  20. package/dist/packages/dbos-cloud/cloudutils.js.map +1 -1
  21. package/dist/packages/dbos-cloud/login.d.ts +0 -7
  22. package/dist/packages/dbos-cloud/login.d.ts.map +1 -1
  23. package/dist/packages/dbos-cloud/login.js +14 -12
  24. package/dist/packages/dbos-cloud/login.js.map +1 -1
  25. package/dist/packages/dbos-cloud/userdb.d.ts +6 -4
  26. package/dist/packages/dbos-cloud/userdb.d.ts.map +1 -1
  27. package/dist/packages/dbos-cloud/userdb.js +42 -4
  28. package/dist/packages/dbos-cloud/userdb.js.map +1 -1
  29. package/login.ts +9 -12
  30. package/package.json +2 -2
  31. package/userdb.ts +43 -4
@@ -0,0 +1,47 @@
1
+ import axios , { AxiosError } from "axios";
2
+ import { handleAPIErrors, getCloudCredentials, getLogger, isCloudAPIErrorResponse } from "../cloudutils";
3
+ import path from "node:path";
4
+ import { Application } from "./types";
5
+
6
+ export async function getAppInfo(host: string, json: boolean): Promise<number> {
7
+ const logger = getLogger();
8
+ const userCredentials = getCloudCredentials();
9
+ const bearerToken = "Bearer " + userCredentials.token;
10
+
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
+ if (!json) {
15
+ logger.info(`Retrieving info for application: ${appName}`)
16
+ }
17
+
18
+ try {
19
+ const res = await axios.get(`https://${host}/${userCredentials.userName}/application/${appName}`, {
20
+ headers: {
21
+ "Content-Type": "application/json",
22
+ Authorization: bearerToken,
23
+ }
24
+ });
25
+ const app = res.data as Application
26
+ if (json) {
27
+ console.log(JSON.stringify(app));
28
+ } else {
29
+ console.log(`Application Name: ${app.Name}`);
30
+ console.log(`ID: ${app.ID}`);
31
+ console.log(`Postgres Instance Name: ${app.PostgresInstanceName}`);
32
+ console.log(`Application Database Name: ${app.ApplicationDatabaseName}`);
33
+ console.log(`Status: ${app.Status}`);
34
+ console.log(`Version: ${app.Version}`);
35
+ }
36
+ return 0;
37
+ } catch (e) {
38
+ const errorLabel = `Failed to retrieve info for application ${appName}`;
39
+ const axiosError = e as AxiosError;
40
+ if (isCloudAPIErrorResponse(axiosError.response?.data)) {
41
+ handleAPIErrors(errorLabel, axiosError);
42
+ } else {
43
+ logger.error(`${errorLabel}: ${(e as Error).message}`);
44
+ }
45
+ return 1;
46
+ }
47
+ }
@@ -28,7 +28,8 @@ 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(`Database Name: ${app.DatabaseName}`);
31
+ console.log(`Postgres Instance Name: ${app.ApplicationDatabaseName}`);
32
+ console.log(`Application Database Name: ${app.ApplicationDatabaseName}`);
32
33
  console.log(`Status: ${app.Status}`);
33
34
  console.log(`Version: ${app.Version}`);
34
35
  console.log('-------------------------');
@@ -1,7 +1,8 @@
1
1
  export type Application = {
2
2
  Name: string;
3
3
  ID: string;
4
- DatabaseName: string;
4
+ PostgresInstanceName: string;
5
+ ApplicationDatabaseName: string;
5
6
  Status: string;
6
7
  Version: string;
7
8
  };
package/cli.ts CHANGED
@@ -11,12 +11,12 @@ import {
11
11
  import { Command } from 'commander';
12
12
  import { login } from "./login";
13
13
  import { registerUser } from "./register";
14
- import { createUserDb, getUserDb, deleteUserDb } from "./userdb";
14
+ import { createUserDb, getUserDb, deleteUserDb, listUserDB } from "./userdb";
15
+ import { DBOSCloudHost } from "./cloudutils";
16
+ import { getAppInfo } from "./applications/get-app-info";
15
17
 
16
18
  const program = new Command();
17
19
 
18
- const DEFAULT_HOST = process.env.DBOS_DOMAIN; // TODO: Once we have a "production" cluster, hardcode its domain name here
19
-
20
20
  // eslint-disable-next-line @typescript-eslint/no-var-requires
21
21
  const packageJson = require('../../../package.json') as { version: string };
22
22
  program.
@@ -39,9 +39,8 @@ program
39
39
  .command('register')
40
40
  .description('Register a user and log in to DBOS cloud')
41
41
  .requiredOption('-u, --username <string>', 'Username')
42
- .option('-h, --host <string>', 'Specify the host', DEFAULT_HOST)
43
- .action(async (options: { username: string, host: string}) => {
44
- const exitCode = await registerUser(options.username, options.host);
42
+ .action(async (options: { username: string}) => {
43
+ const exitCode = await registerUser(options.username, DBOSCloudHost);
45
44
  process.exit(exitCode);
46
45
  });
47
46
 
@@ -52,15 +51,13 @@ program
52
51
  const applicationCommands = program
53
52
  .command('applications')
54
53
  .description('Manage your DBOS applications')
55
- .option('-h, --host <string>', 'Specify the host', DEFAULT_HOST)
56
54
 
57
55
  applicationCommands
58
56
  .command('register')
59
57
  .description('Register a new application')
60
58
  .requiredOption('-d, --database <string>', 'Specify the app database name')
61
59
  .action(async (options: { database: string }) => {
62
- const { host }: { host: string } = applicationCommands.opts()
63
- const exitCode = await registerApp(options.database, host);
60
+ const exitCode = await registerApp(options.database, DBOSCloudHost);
64
61
  process.exit(exitCode);
65
62
  });
66
63
 
@@ -68,8 +65,7 @@ applicationCommands
68
65
  .command('update')
69
66
  .description('Update an application')
70
67
  .action(async () => {
71
- const { host }: { host: string } = applicationCommands.opts()
72
- const exitCode = await updateApp(host);
68
+ const exitCode = await updateApp(DBOSCloudHost);
73
69
  process.exit(exitCode);
74
70
  });
75
71
 
@@ -78,8 +74,7 @@ applicationCommands
78
74
  .description('Deploy an application code to the cloud')
79
75
  .option('--no-docker', 'Build the code locally without using Docker')
80
76
  .action(async (options: { docker: boolean }) => {
81
- const { host }: { host: string } = applicationCommands.opts()
82
- const exitCode = await deployAppCode(host, options.docker);
77
+ const exitCode = await deployAppCode(DBOSCloudHost, options.docker);
83
78
  process.exit(exitCode);
84
79
  });
85
80
 
@@ -87,8 +82,7 @@ applicationCommands
87
82
  .command('delete')
88
83
  .description('Delete a previously deployed application')
89
84
  .action(async () => {
90
- const { host }: { host: string } = applicationCommands.opts()
91
- const exitCode = await deleteApp(host);
85
+ const exitCode = await deleteApp(DBOSCloudHost);
92
86
  process.exit(exitCode);
93
87
  });
94
88
 
@@ -97,8 +91,16 @@ applicationCommands
97
91
  .description('List all deployed applications')
98
92
  .option('--json', 'Emit JSON output')
99
93
  .action(async (options: { json: boolean }) => {
100
- const { host }: { host: string } = applicationCommands.opts()
101
- const exitCode = await listApps(host, options.json);
94
+ const exitCode = await listApps(DBOSCloudHost, options.json);
95
+ process.exit(exitCode);
96
+ });
97
+
98
+ applicationCommands
99
+ .command('get')
100
+ .description('Get application info')
101
+ .option('--json', 'Emit JSON output')
102
+ .action(async (options: { json: boolean }) => {
103
+ const exitCode = await getAppInfo(DBOSCloudHost, options.json);
102
104
  process.exit(exitCode);
103
105
  });
104
106
 
@@ -107,8 +109,7 @@ applicationCommands
107
109
  .description('Print the microVM logs of a deployed application')
108
110
  .option('-l, --last <integer>', 'How far back to query, in seconds from current time. By default, we retrieve all data', parseInt)
109
111
  .action(async (options: { last: number}) => {
110
- const { host }: { host: string } = applicationCommands.opts()
111
- const exitCode = await getAppLogs(host, options.last);
112
+ const exitCode = await getAppLogs(DBOSCloudHost, options.last);
112
113
  process.exit(exitCode);
113
114
  });
114
115
 
@@ -119,7 +120,6 @@ applicationCommands
119
120
  const userdbCommands = program
120
121
  .command('userdb')
121
122
  .description('Manage your databases')
122
- .option('-h, --host <string>', 'Specify the host', DEFAULT_HOST)
123
123
 
124
124
  userdbCommands
125
125
  .command('create')
@@ -128,8 +128,7 @@ userdbCommands
128
128
  .requiredOption('-W, --password <string>', 'Specify the admin password')
129
129
  .option('-s, --sync', 'make synchronous call', true)
130
130
  .action((async (dbname: string, options: { admin: string, password: string, sync: boolean }) => {
131
- const { host }: { host: string } = userdbCommands.opts()
132
- const exitCode = await createUserDb(host, dbname, options.admin, options.password, options.sync)
131
+ const exitCode = await createUserDb(DBOSCloudHost, dbname, options.admin, options.password, options.sync)
133
132
  process.exit(exitCode);
134
133
  }))
135
134
 
@@ -138,8 +137,15 @@ userdbCommands
138
137
  .argument('<string>', 'database name')
139
138
  .option('--json', 'Emit JSON output')
140
139
  .action((async (dbname: string, options: { json: boolean}) => {
141
- const { host }: { host: string } = userdbCommands.opts()
142
- const exitCode = await getUserDb(host, dbname, options.json)
140
+ const exitCode = await getUserDb(DBOSCloudHost, dbname, options.json)
141
+ process.exit(exitCode);
142
+ }))
143
+
144
+ userdbCommands
145
+ .command('list')
146
+ .option('--json', 'Emit JSON output')
147
+ .action((async (options: { json: boolean}) => {
148
+ const exitCode = await listUserDB(DBOSCloudHost, options.json)
143
149
  process.exit(exitCode);
144
150
  }))
145
151
 
@@ -147,8 +153,7 @@ userdbCommands
147
153
  .command('delete')
148
154
  .argument('<string>', 'database name')
149
155
  .action((async (dbname: string) => {
150
- const { host }: { host: string } = userdbCommands.opts()
151
- const exitCode = await deleteUserDb(host, dbname)
156
+ const exitCode = await deleteUserDb(DBOSCloudHost, dbname)
152
157
  process.exit(exitCode);
153
158
  }))
154
159
 
package/cloudutils.ts CHANGED
@@ -1,11 +1,18 @@
1
- import { DBOSCloudCredentials, dbosEnvPath } from "./login";
2
1
  import TransportStream = require("winston-transport");
3
2
  import { spawn, StdioOptions } from 'child_process';
4
3
  import { transports, createLogger, format, Logger } from "winston";
5
4
  import fs from "fs";
6
5
  import { AxiosError } from "axios";
6
+ import jwt from 'jsonwebtoken';
7
+
8
+ export interface DBOSCloudCredentials {
9
+ token: string;
10
+ userName: string;
11
+ }
7
12
 
8
13
  export const dbosConfigFilePath = "dbos-config.yaml";
14
+ export const DBOSCloudHost = process.env.DBOS_DOMAIN || "cloud.dbos.dev";
15
+ export const dbosEnvPath = ".dbos";
9
16
 
10
17
  // FIXME: we should have a global instance of the logger created in cli.ts
11
18
  export function getLogger(): Logger {
@@ -38,6 +45,16 @@ const consoleFormat = format.combine(
38
45
  })
39
46
  );
40
47
 
48
+ function isTokenExpired(token: string): boolean {
49
+ try {
50
+ const { exp } = jwt.decode(token) as jwt.JwtPayload;
51
+ if (!exp) return false;
52
+ return Date.now() >= exp * 1000;
53
+ } catch (error) {
54
+ return true;
55
+ }
56
+ }
57
+
41
58
  export function getCloudCredentials(): DBOSCloudCredentials {
42
59
  const logger = getLogger();
43
60
  if (!credentialsExist()) {
@@ -45,10 +62,15 @@ export function getCloudCredentials(): DBOSCloudCredentials {
45
62
  process.exit(1)
46
63
  }
47
64
  const userCredentials = JSON.parse(fs.readFileSync(`./${dbosEnvPath}/credentials`).toString("utf-8")) as DBOSCloudCredentials;
48
- return {
65
+ const credentials = {
49
66
  userName: userCredentials.userName,
50
67
  token: userCredentials.token.replace(/\r|\n/g, ""), // Trim the trailing /r /n.
51
68
  };
69
+ if (isTokenExpired(credentials.token)) {
70
+ logger.error("Error: Login expired. Please log in again with 'npx dbos-cloud login -u <username>'")
71
+ process.exit(1)
72
+ }
73
+ return credentials
52
74
  }
53
75
 
54
76
  export function credentialsExist(): boolean {
@@ -0,0 +1,2 @@
1
+ export declare function getAppInfo(host: string, json: boolean): Promise<number>;
2
+ //# sourceMappingURL=get-app-info.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.getAppInfo = void 0;
7
+ const axios_1 = __importDefault(require("axios"));
8
+ const cloudutils_1 = require("../cloudutils");
9
+ const node_path_1 = __importDefault(require("node:path"));
10
+ async function getAppInfo(host, json) {
11
+ const logger = (0, cloudutils_1.getLogger)();
12
+ const userCredentials = (0, cloudutils_1.getCloudCredentials)();
13
+ 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
+ if (!json) {
18
+ logger.info(`Retrieving info for application: ${appName}`);
19
+ }
20
+ try {
21
+ const res = await axios_1.default.get(`https://${host}/${userCredentials.userName}/application/${appName}`, {
22
+ headers: {
23
+ "Content-Type": "application/json",
24
+ Authorization: bearerToken,
25
+ }
26
+ });
27
+ const app = res.data;
28
+ if (json) {
29
+ console.log(JSON.stringify(app));
30
+ }
31
+ else {
32
+ console.log(`Application Name: ${app.Name}`);
33
+ console.log(`ID: ${app.ID}`);
34
+ console.log(`Postgres Instance Name: ${app.PostgresInstanceName}`);
35
+ console.log(`Application Database Name: ${app.ApplicationDatabaseName}`);
36
+ console.log(`Status: ${app.Status}`);
37
+ console.log(`Version: ${app.Version}`);
38
+ }
39
+ return 0;
40
+ }
41
+ catch (e) {
42
+ const errorLabel = `Failed to retrieve info for application ${appName}`;
43
+ const axiosError = e;
44
+ if ((0, cloudutils_1.isCloudAPIErrorResponse)(axiosError.response?.data)) {
45
+ (0, cloudutils_1.handleAPIErrors)(errorLabel, axiosError);
46
+ }
47
+ else {
48
+ logger.error(`${errorLabel}: ${e.message}`);
49
+ }
50
+ return 1;
51
+ }
52
+ }
53
+ exports.getAppInfo = getAppInfo;
54
+ //# sourceMappingURL=get-app-info.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-app-info.js","sourceRoot":"","sources":["../../../../applications/get-app-info.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA2C;AAC3C,8CAAyG;AACzG,0DAA6B;AAGtB,KAAK,UAAU,UAAU,CAAC,IAAY,EAAE,IAAa;IAC1D,MAAM,MAAM,GAAG,IAAA,sBAAS,GAAE,CAAC;IAC3B,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,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,CAAC,IAAI,CAAC,oCAAoC,OAAO,EAAE,CAAC,CAAA;IAC5D,CAAC;IAED,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,eAAK,CAAC,GAAG,CAAC,WAAW,IAAI,IAAI,eAAe,CAAC,QAAQ,gBAAgB,OAAO,EAAE,EAAE;YAChG,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,aAAa,EAAE,WAAW;aAC3B;SACF,CAAC,CAAC;QACH,MAAM,GAAG,GAAG,GAAG,CAAC,IAAmB,CAAA;QACnC,IAAI,IAAI,EAAE,CAAC;YACT,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;QACnC,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,qBAAqB,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;YAC7C,OAAO,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;YAC7B,OAAO,CAAC,GAAG,CAAC,2BAA2B,GAAG,CAAC,oBAAoB,EAAE,CAAC,CAAC;YACnE,OAAO,CAAC,GAAG,CAAC,8BAA8B,GAAG,CAAC,uBAAuB,EAAE,CAAC,CAAC;YACzE,OAAO,CAAC,GAAG,CAAC,WAAW,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;YACrC,OAAO,CAAC,GAAG,CAAC,YAAY,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QACzC,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,UAAU,GAAG,2CAA2C,OAAO,EAAE,CAAC;QACxE,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;AAzCD,gCAyCC"}
@@ -1 +1 @@
1
- {"version":3,"file":"list-apps.d.ts","sourceRoot":"","sources":["../../../../applications/list-apps.ts"],"names":[],"mappings":"AAIA,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CA2C3E"}
1
+ {"version":3,"file":"list-apps.d.ts","sourceRoot":"","sources":["../../../../applications/list-apps.ts"],"names":[],"mappings":"AAIA,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CA4C3E"}
@@ -29,7 +29,8 @@ async function listApps(host, json) {
29
29
  applications.forEach(app => {
30
30
  console.log(`Application Name: ${app.Name}`);
31
31
  console.log(`ID: ${app.ID}`);
32
- console.log(`Database Name: ${app.DatabaseName}`);
32
+ console.log(`Postgres Instance Name: ${app.ApplicationDatabaseName}`);
33
+ console.log(`Application Database Name: ${app.ApplicationDatabaseName}`);
33
34
  console.log(`Status: ${app.Status}`);
34
35
  console.log(`Version: ${app.Version}`);
35
36
  console.log('-------------------------');
@@ -1 +1 @@
1
- {"version":3,"file":"list-apps.js","sourceRoot":"","sources":["../../../../applications/list-apps.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0C;AAC1C,8CAAyG;AAGlG,KAAK,UAAU,QAAQ,CAAC,IAAY,EAAE,IAAa;IACxD,MAAM,MAAM,GAAG,IAAA,sBAAS,GAAE,CAAC;IAC3B,MAAM,eAAe,GAAG,IAAA,gCAAmB,GAAE,CAAC;IAC9C,MAAM,WAAW,GAAG,SAAS,GAAG,eAAe,CAAC,KAAK,CAAC;IAEtD,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,eAAK,CAAC,GAAG,CAC1B,WAAW,IAAI,IAAI,eAAe,CAAC,QAAQ,cAAc,EACzD;YACE,OAAO,EAAE;gBACP,aAAa,EAAE,WAAW;aAC3B;SACF,CACF,CAAC;QACF,MAAM,YAAY,GAAkB,IAAI,CAAC,IAAqB,CAAC;QAC/D,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YACrC,OAAO,CAAC,CAAC;QACX,CAAC;QACD,IAAI,IAAI,EAAE,CAAC;YACT,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC;QAC5C,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CAAC,4BAA4B,eAAe,CAAC,QAAQ,EAAE,CAAC,CAAA;YACnE,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gBACzB,OAAO,CAAC,GAAG,CAAC,qBAAqB,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC7C,OAAO,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC7B,OAAO,CAAC,GAAG,CAAC,kBAAkB,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC;gBAClD,OAAO,CAAC,GAAG,CAAC,WAAW,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;gBACrC,OAAO,CAAC,GAAG,CAAC,YAAY,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;gBACvC,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;YAC3C,CAAC,CAAC,CAAC;QACL,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,UAAU,GAAG,6BAA6B,CAAC;QACjD,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;AA3CD,4BA2CC"}
1
+ {"version":3,"file":"list-apps.js","sourceRoot":"","sources":["../../../../applications/list-apps.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0C;AAC1C,8CAAyG;AAGlG,KAAK,UAAU,QAAQ,CAAC,IAAY,EAAE,IAAa;IACxD,MAAM,MAAM,GAAG,IAAA,sBAAS,GAAE,CAAC;IAC3B,MAAM,eAAe,GAAG,IAAA,gCAAmB,GAAE,CAAC;IAC9C,MAAM,WAAW,GAAG,SAAS,GAAG,eAAe,CAAC,KAAK,CAAC;IAEtD,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,eAAK,CAAC,GAAG,CAC1B,WAAW,IAAI,IAAI,eAAe,CAAC,QAAQ,cAAc,EACzD;YACE,OAAO,EAAE;gBACP,aAAa,EAAE,WAAW;aAC3B;SACF,CACF,CAAC;QACF,MAAM,YAAY,GAAkB,IAAI,CAAC,IAAqB,CAAC;QAC/D,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YACrC,OAAO,CAAC,CAAC;QACX,CAAC;QACD,IAAI,IAAI,EAAE,CAAC;YACT,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC;QAC5C,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CAAC,4BAA4B,eAAe,CAAC,QAAQ,EAAE,CAAC,CAAA;YACnE,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gBACzB,OAAO,CAAC,GAAG,CAAC,qBAAqB,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC7C,OAAO,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC7B,OAAO,CAAC,GAAG,CAAC,2BAA2B,GAAG,CAAC,uBAAuB,EAAE,CAAC,CAAC;gBACtE,OAAO,CAAC,GAAG,CAAC,8BAA8B,GAAG,CAAC,uBAAuB,EAAE,CAAC,CAAC;gBACzE,OAAO,CAAC,GAAG,CAAC,WAAW,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;gBACrC,OAAO,CAAC,GAAG,CAAC,YAAY,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;gBACvC,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;YAC3C,CAAC,CAAC,CAAC;QACL,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,UAAU,GAAG,6BAA6B,CAAC;QACjD,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;AA5CD,4BA4CC"}
@@ -1,7 +1,8 @@
1
1
  export type Application = {
2
2
  Name: string;
3
3
  ID: string;
4
- DatabaseName: string;
4
+ PostgresInstanceName: string;
5
+ ApplicationDatabaseName: string;
5
6
  Status: string;
6
7
  Version: string;
7
8
  };
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../applications/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../applications/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,oBAAoB,EAAE,MAAM,CAAC;IAC7B,uBAAuB,EAAE,MAAM,CAAC;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC"}
@@ -6,8 +6,9 @@ const commander_1 = require("commander");
6
6
  const login_1 = require("./login");
7
7
  const register_1 = require("./register");
8
8
  const userdb_1 = require("./userdb");
9
+ const cloudutils_1 = require("./cloudutils");
10
+ const get_app_info_1 = require("./applications/get-app-info");
9
11
  const program = new commander_1.Command();
10
- const DEFAULT_HOST = process.env.DBOS_DOMAIN; // TODO: Once we have a "production" cluster, hardcode its domain name here
11
12
  // eslint-disable-next-line @typescript-eslint/no-var-requires
12
13
  const packageJson = require('../../../package.json');
13
14
  program.
@@ -27,9 +28,8 @@ program
27
28
  .command('register')
28
29
  .description('Register a user and log in to DBOS cloud')
29
30
  .requiredOption('-u, --username <string>', 'Username')
30
- .option('-h, --host <string>', 'Specify the host', DEFAULT_HOST)
31
31
  .action(async (options) => {
32
- const exitCode = await (0, register_1.registerUser)(options.username, options.host);
32
+ const exitCode = await (0, register_1.registerUser)(options.username, cloudutils_1.DBOSCloudHost);
33
33
  process.exit(exitCode);
34
34
  });
35
35
  /////////////////////////////
@@ -37,23 +37,20 @@ program
37
37
  /////////////////////////////
38
38
  const applicationCommands = program
39
39
  .command('applications')
40
- .description('Manage your DBOS applications')
41
- .option('-h, --host <string>', 'Specify the host', DEFAULT_HOST);
40
+ .description('Manage your DBOS applications');
42
41
  applicationCommands
43
42
  .command('register')
44
43
  .description('Register a new application')
45
44
  .requiredOption('-d, --database <string>', 'Specify the app database name')
46
45
  .action(async (options) => {
47
- const { host } = applicationCommands.opts();
48
- const exitCode = await (0, applications_1.registerApp)(options.database, host);
46
+ const exitCode = await (0, applications_1.registerApp)(options.database, cloudutils_1.DBOSCloudHost);
49
47
  process.exit(exitCode);
50
48
  });
51
49
  applicationCommands
52
50
  .command('update')
53
51
  .description('Update an application')
54
52
  .action(async () => {
55
- const { host } = applicationCommands.opts();
56
- const exitCode = await (0, applications_1.updateApp)(host);
53
+ const exitCode = await (0, applications_1.updateApp)(cloudutils_1.DBOSCloudHost);
57
54
  process.exit(exitCode);
58
55
  });
59
56
  applicationCommands
@@ -61,16 +58,14 @@ applicationCommands
61
58
  .description('Deploy an application code to the cloud')
62
59
  .option('--no-docker', 'Build the code locally without using Docker')
63
60
  .action(async (options) => {
64
- const { host } = applicationCommands.opts();
65
- const exitCode = await (0, applications_1.deployAppCode)(host, options.docker);
61
+ const exitCode = await (0, applications_1.deployAppCode)(cloudutils_1.DBOSCloudHost, options.docker);
66
62
  process.exit(exitCode);
67
63
  });
68
64
  applicationCommands
69
65
  .command('delete')
70
66
  .description('Delete a previously deployed application')
71
67
  .action(async () => {
72
- const { host } = applicationCommands.opts();
73
- const exitCode = await (0, applications_1.deleteApp)(host);
68
+ const exitCode = await (0, applications_1.deleteApp)(cloudutils_1.DBOSCloudHost);
74
69
  process.exit(exitCode);
75
70
  });
76
71
  applicationCommands
@@ -78,8 +73,15 @@ applicationCommands
78
73
  .description('List all deployed applications')
79
74
  .option('--json', 'Emit JSON output')
80
75
  .action(async (options) => {
81
- const { host } = applicationCommands.opts();
82
- const exitCode = await (0, applications_1.listApps)(host, options.json);
76
+ const exitCode = await (0, applications_1.listApps)(cloudutils_1.DBOSCloudHost, options.json);
77
+ process.exit(exitCode);
78
+ });
79
+ applicationCommands
80
+ .command('get')
81
+ .description('Get application info')
82
+ .option('--json', 'Emit JSON output')
83
+ .action(async (options) => {
84
+ const exitCode = await (0, get_app_info_1.getAppInfo)(cloudutils_1.DBOSCloudHost, options.json);
83
85
  process.exit(exitCode);
84
86
  });
85
87
  applicationCommands
@@ -87,8 +89,7 @@ applicationCommands
87
89
  .description('Print the microVM logs of a deployed application')
88
90
  .option('-l, --last <integer>', 'How far back to query, in seconds from current time. By default, we retrieve all data', parseInt)
89
91
  .action(async (options) => {
90
- const { host } = applicationCommands.opts();
91
- const exitCode = await (0, applications_1.getAppLogs)(host, options.last);
92
+ const exitCode = await (0, applications_1.getAppLogs)(cloudutils_1.DBOSCloudHost, options.last);
92
93
  process.exit(exitCode);
93
94
  });
94
95
  //////////////////////////////
@@ -96,8 +97,7 @@ applicationCommands
96
97
  //////////////////////////////
97
98
  const userdbCommands = program
98
99
  .command('userdb')
99
- .description('Manage your databases')
100
- .option('-h, --host <string>', 'Specify the host', DEFAULT_HOST);
100
+ .description('Manage your databases');
101
101
  userdbCommands
102
102
  .command('create')
103
103
  .argument('<string>', 'database name')
@@ -105,8 +105,7 @@ userdbCommands
105
105
  .requiredOption('-W, --password <string>', 'Specify the admin password')
106
106
  .option('-s, --sync', 'make synchronous call', true)
107
107
  .action((async (dbname, options) => {
108
- const { host } = userdbCommands.opts();
109
- const exitCode = await (0, userdb_1.createUserDb)(host, dbname, options.admin, options.password, options.sync);
108
+ const exitCode = await (0, userdb_1.createUserDb)(cloudutils_1.DBOSCloudHost, dbname, options.admin, options.password, options.sync);
110
109
  process.exit(exitCode);
111
110
  }));
112
111
  userdbCommands
@@ -114,16 +113,21 @@ userdbCommands
114
113
  .argument('<string>', 'database name')
115
114
  .option('--json', 'Emit JSON output')
116
115
  .action((async (dbname, options) => {
117
- const { host } = userdbCommands.opts();
118
- const exitCode = await (0, userdb_1.getUserDb)(host, dbname, options.json);
116
+ const exitCode = await (0, userdb_1.getUserDb)(cloudutils_1.DBOSCloudHost, dbname, options.json);
117
+ process.exit(exitCode);
118
+ }));
119
+ userdbCommands
120
+ .command('list')
121
+ .option('--json', 'Emit JSON output')
122
+ .action((async (options) => {
123
+ const exitCode = await (0, userdb_1.listUserDB)(cloudutils_1.DBOSCloudHost, options.json);
119
124
  process.exit(exitCode);
120
125
  }));
121
126
  userdbCommands
122
127
  .command('delete')
123
128
  .argument('<string>', 'database name')
124
129
  .action((async (dbname) => {
125
- const { host } = userdbCommands.opts();
126
- const exitCode = await (0, userdb_1.deleteUserDb)(host, dbname);
130
+ const exitCode = await (0, userdb_1.deleteUserDb)(cloudutils_1.DBOSCloudHost, dbname);
127
131
  process.exit(exitCode);
128
132
  }));
129
133
  program.parse(process.argv);
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../cli.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,13 @@
1
1
  /// <reference types="node" />
2
- import { DBOSCloudCredentials } from "./login";
3
2
  import { Logger } from "winston";
4
3
  import { AxiosError } from "axios";
4
+ export interface DBOSCloudCredentials {
5
+ token: string;
6
+ userName: string;
7
+ }
5
8
  export declare const dbosConfigFilePath = "dbos-config.yaml";
9
+ export declare const DBOSCloudHost: string;
10
+ export declare const dbosEnvPath = ".dbos";
6
11
  export declare function getLogger(): Logger;
7
12
  export declare function getCloudCredentials(): DBOSCloudCredentials;
8
13
  export declare function credentialsExist(): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"cloudutils.d.ts","sourceRoot":"","sources":["../../../cloudutils.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,oBAAoB,EAAe,MAAM,SAAS,CAAC;AAG5D,OAAO,EAAoC,MAAM,EAAE,MAAM,SAAS,CAAC;AAEnE,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAEnC,eAAO,MAAM,kBAAkB,qBAAqB,CAAC;AAGrD,wBAAgB,SAAS,IAAI,MAAM,CASlC;AAqBD,wBAAgB,mBAAmB,IAAI,oBAAoB,CAW1D;AAED,wBAAgB,gBAAgB,IAAI,OAAO,CAE1C;AAGD,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,MAAM,EAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAkBhF;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,GAAE,cAAuB,GAAG,MAAM,GAAG,MAAM,CAa7F;AAED,eAAO,MAAM,KAAK,OAAQ,MAAM,qBAA0C,CAAC;AAE3E,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAGrC,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAEhE;AAED,UAAU,qBAAqB;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,qBAAqB,CAKlF;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,UAAU,QAI3D"}
1
+ {"version":3,"file":"cloudutils.d.ts","sourceRoot":"","sources":["../../../cloudutils.ts"],"names":[],"mappings":";AAEA,OAAO,EAAoC,MAAM,EAAE,MAAM,SAAS,CAAC;AAEnE,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAGnC,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,eAAO,MAAM,kBAAkB,qBAAqB,CAAC;AACrD,eAAO,MAAM,aAAa,QAA8C,CAAC;AACzE,eAAO,MAAM,WAAW,UAAU,CAAC;AAGnC,wBAAgB,SAAS,IAAI,MAAM,CASlC;AA+BD,wBAAgB,mBAAmB,IAAI,oBAAoB,CAgB1D;AAED,wBAAgB,gBAAgB,IAAI,OAAO,CAE1C;AAGD,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,MAAM,EAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAkBhF;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,GAAE,cAAuB,GAAG,MAAM,GAAG,MAAM,CAa7F;AAED,eAAO,MAAM,KAAK,OAAQ,MAAM,qBAA0C,CAAC;AAE3E,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAGrC,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAEhE;AAED,UAAU,qBAAqB;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,qBAAqB,CAKlF;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,UAAU,QAI3D"}
@@ -3,12 +3,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.handleAPIErrors = exports.isCloudAPIErrorResponse = exports.createDirectory = exports.sleep = exports.readFileSync = exports.runCommand = exports.credentialsExist = exports.getCloudCredentials = exports.getLogger = exports.dbosConfigFilePath = void 0;
7
- const login_1 = require("./login");
6
+ exports.handleAPIErrors = exports.isCloudAPIErrorResponse = exports.createDirectory = exports.sleep = exports.readFileSync = exports.runCommand = exports.credentialsExist = exports.getCloudCredentials = exports.getLogger = exports.dbosEnvPath = exports.DBOSCloudHost = exports.dbosConfigFilePath = void 0;
8
7
  const child_process_1 = require("child_process");
9
8
  const winston_1 = require("winston");
10
9
  const fs_1 = __importDefault(require("fs"));
10
+ const jsonwebtoken_1 = __importDefault(require("jsonwebtoken"));
11
11
  exports.dbosConfigFilePath = "dbos-config.yaml";
12
+ exports.DBOSCloudHost = process.env.DBOS_DOMAIN || "cloud.dbos.dev";
13
+ exports.dbosEnvPath = ".dbos";
12
14
  // FIXME: we should have a global instance of the logger created in cli.ts
13
15
  function getLogger() {
14
16
  const winstonTransports = [];
@@ -30,21 +32,37 @@ const consoleFormat = winston_1.format.combine(winston_1.format.errors({ stack:
30
32
  // eslint-disable-next-line @typescript-eslint/no-unsafe-argument
31
33
  return `${ts} [${level}]: ${messageString} ${stack ? "\n" + formattedStack : ""}`;
32
34
  }));
35
+ function isTokenExpired(token) {
36
+ try {
37
+ const { exp } = jsonwebtoken_1.default.decode(token);
38
+ if (!exp)
39
+ return false;
40
+ return Date.now() >= exp * 1000;
41
+ }
42
+ catch (error) {
43
+ return true;
44
+ }
45
+ }
33
46
  function getCloudCredentials() {
34
47
  const logger = getLogger();
35
48
  if (!credentialsExist()) {
36
49
  logger.error("Error: not logged in");
37
50
  process.exit(1);
38
51
  }
39
- const userCredentials = JSON.parse(fs_1.default.readFileSync(`./${login_1.dbosEnvPath}/credentials`).toString("utf-8"));
40
- return {
52
+ const userCredentials = JSON.parse(fs_1.default.readFileSync(`./${exports.dbosEnvPath}/credentials`).toString("utf-8"));
53
+ const credentials = {
41
54
  userName: userCredentials.userName,
42
55
  token: userCredentials.token.replace(/\r|\n/g, ""), // Trim the trailing /r /n.
43
56
  };
57
+ if (isTokenExpired(credentials.token)) {
58
+ logger.error("Error: Login expired. Please log in again with 'npx dbos-cloud login -u <username>'");
59
+ process.exit(1);
60
+ }
61
+ return credentials;
44
62
  }
45
63
  exports.getCloudCredentials = getCloudCredentials;
46
64
  function credentialsExist() {
47
- return fs_1.default.existsSync(`./${login_1.dbosEnvPath}/credentials`);
65
+ return fs_1.default.existsSync(`./${exports.dbosEnvPath}/credentials`);
48
66
  }
49
67
  exports.credentialsExist = credentialsExist;
50
68
  // Run a command, streaming its output to stdout
@@ -1 +1 @@
1
- {"version":3,"file":"cloudutils.js","sourceRoot":"","sources":["../../../cloudutils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cloudutils.js","sourceRoot":"","sources":["../../../cloudutils.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,2 @@
1
- export declare const dbosEnvPath = ".dbos";
2
- export declare const DBOSClientID = "G38fLmVErczEo9ioCFjVIHea6yd0qMZu";
3
- export declare const DBOSCloudIdentifier = "dbos-cloud-api";
4
- export interface DBOSCloudCredentials {
5
- token: string;
6
- userName: string;
7
- }
8
1
  export declare function login(username: string): Promise<number>;
9
2
  //# sourceMappingURL=login.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../../login.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,WAAW,UAAU,CAAC;AACnC,eAAO,MAAM,YAAY,qCAAqC,CAAA;AAC9D,eAAO,MAAM,mBAAmB,mBAAmB,CAAA;AAEnD,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB;AA8CD,wBAAsB,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CA4D7D"}
1
+ {"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../../login.ts"],"names":[],"mappings":"AAyDA,wBAAsB,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CA4D7D"}
@@ -3,18 +3,20 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.login = exports.DBOSCloudIdentifier = exports.DBOSClientID = exports.dbosEnvPath = void 0;
6
+ exports.login = void 0;
7
7
  const axios_1 = __importDefault(require("axios"));
8
8
  const jsonwebtoken_1 = __importDefault(require("jsonwebtoken"));
9
9
  const jwks_rsa_1 = __importDefault(require("jwks-rsa"));
10
10
  const child_process_1 = require("child_process");
11
11
  const fs_1 = __importDefault(require("fs"));
12
12
  const cloudutils_1 = require("./cloudutils");
13
- exports.dbosEnvPath = ".dbos";
14
- exports.DBOSClientID = 'G38fLmVErczEo9ioCFjVIHea6yd0qMZu';
15
- exports.DBOSCloudIdentifier = 'dbos-cloud-api';
13
+ const DBOSCloudHost = process.env.DBOS_DOMAIN || "cloud.dbos.dev";
14
+ const productionEnvironment = DBOSCloudHost === "cloud.dbos.dev";
15
+ const Auth0Domain = productionEnvironment ? 'login.dbos.dev' : 'dbos-inc.us.auth0.com';
16
+ const DBOSClientID = productionEnvironment ? '6p7Sjxf13cyLMkdwn14MxlH7JdhILled' : 'G38fLmVErczEo9ioCFjVIHea6yd0qMZu';
17
+ const DBOSCloudIdentifier = 'dbos-cloud-api';
16
18
  const client = (0, jwks_rsa_1.default)({
17
- jwksUri: 'https://dbos-inc.us.auth0.com/.well-known/jwks.json'
19
+ jwksUri: `https://${Auth0Domain}/.well-known/jwks.json`
18
20
  });
19
21
  async function getSigningKey(kid) {
20
22
  const key = await client.getSigningKey(kid);
@@ -42,9 +44,9 @@ async function login(username) {
42
44
  logger.info(`Please authenticate with DBOS Cloud!`);
43
45
  const deviceCodeRequest = {
44
46
  method: 'POST',
45
- url: 'https://dbos-inc.us.auth0.com/oauth/device/code',
47
+ url: `https://${Auth0Domain}/oauth/device/code`,
46
48
  headers: { 'content-type': 'application/x-www-form-urlencoded' },
47
- data: { client_id: exports.DBOSClientID, scope: 'sub', audience: exports.DBOSCloudIdentifier }
49
+ data: { client_id: DBOSClientID, scope: 'sub', audience: DBOSCloudIdentifier }
48
50
  };
49
51
  let deviceCodeResponse;
50
52
  try {
@@ -61,12 +63,12 @@ async function login(username) {
61
63
  console.log(`Login URL: ${deviceCodeResponse.verification_uri_complete}`);
62
64
  const tokenRequest = {
63
65
  method: 'POST',
64
- url: 'https://dbos-inc.us.auth0.com/oauth/token',
66
+ url: `https://${Auth0Domain}/oauth/token`,
65
67
  headers: { 'content-type': 'application/x-www-form-urlencoded' },
66
68
  data: new URLSearchParams({
67
69
  grant_type: 'urn:ietf:params:oauth:grant-type:device_code',
68
70
  device_code: deviceCodeResponse.device_code,
69
- client_id: exports.DBOSClientID
71
+ client_id: DBOSClientID
70
72
  })
71
73
  };
72
74
  let tokenResponse;
@@ -91,10 +93,10 @@ async function login(username) {
91
93
  token: tokenResponse.access_token,
92
94
  userName: username,
93
95
  };
94
- (0, child_process_1.execSync)(`mkdir -p ${exports.dbosEnvPath}`);
95
- fs_1.default.writeFileSync(`${exports.dbosEnvPath}/credentials`, JSON.stringify(credentials), "utf-8");
96
+ (0, child_process_1.execSync)(`mkdir -p ${cloudutils_1.dbosEnvPath}`);
97
+ fs_1.default.writeFileSync(`${cloudutils_1.dbosEnvPath}/credentials`, JSON.stringify(credentials), "utf-8");
96
98
  logger.info(`Successfully logged in as user: ${credentials.userName}`);
97
- logger.info(`You can view your credentials in: ./${exports.dbosEnvPath}/credentials`);
99
+ logger.info(`You can view your credentials in: ./${cloudutils_1.dbosEnvPath}/credentials`);
98
100
  return 0;
99
101
  }
100
102
  exports.login = login;
@@ -1 +1 @@
1
- {"version":3,"file":"login.js","sourceRoot":"","sources":["../../../login.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"login.js","sourceRoot":"","sources":["../../../login.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,13 @@
1
1
  export interface UserDBInstance {
2
- readonly DBName: string;
2
+ readonly PostgresInstanceName: string;
3
3
  readonly Status: string;
4
4
  readonly HostName: string;
5
5
  readonly Port: number;
6
+ readonly AdminUsername: string;
6
7
  }
7
- export declare function createUserDb(host: string, dbName: string, adminName: string, adminPassword: string, sync: boolean): Promise<1 | 0>;
8
- export declare function deleteUserDb(host: string, dbName: string): Promise<1 | 0>;
9
- export declare function getUserDb(host: string, dbName: string, json: boolean): Promise<1 | 0>;
8
+ export declare function createUserDb(host: string, dbName: string, adminName: string, adminPassword: string, sync: boolean): Promise<0 | 1>;
9
+ export declare function deleteUserDb(host: string, dbName: string): Promise<0 | 1>;
10
+ export declare function getUserDb(host: string, dbName: string, json: boolean): Promise<0 | 1>;
11
+ export declare function listUserDB(host: string, json: boolean): Promise<0 | 1>;
10
12
  export declare function getUserDBInfo(host: string, dbName: string): Promise<UserDBInstance>;
11
13
  //# sourceMappingURL=userdb.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"userdb.d.ts","sourceRoot":"","sources":["../../../userdb.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,kBAuCvH;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,kBAwB9D;AAED,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,kBAyB1E;AAED,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAazF"}
1
+ {"version":3,"file":"userdb.d.ts","sourceRoot":"","sources":["../../../userdb.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,kBAuCvH;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,kBAwB9D;AAED,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,kBAyB1E;AAED,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,kBAqC3D;AAED,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAYzF"}
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.getUserDBInfo = exports.getUserDb = exports.deleteUserDb = exports.createUserDb = void 0;
6
+ exports.getUserDBInfo = exports.listUserDB = exports.getUserDb = exports.deleteUserDb = exports.createUserDb = void 0;
7
7
  const axios_1 = __importDefault(require("axios"));
8
8
  const cloudutils_1 = require("./cloudutils");
9
9
  const utils_1 = require("../../src/utils");
@@ -78,11 +78,11 @@ async function getUserDb(host, dbName, json) {
78
78
  console.log(JSON.stringify(userDBInfo));
79
79
  }
80
80
  else {
81
- logger.info(`Retrieving status of: ${dbName}`);
82
- console.log(`DB Name: ${userDBInfo.DBName}`);
81
+ console.log(`Postgres Instance Name: ${userDBInfo.PostgresInstanceName}`);
83
82
  console.log(`Status: ${userDBInfo.Status}`);
84
83
  console.log(`Host Name: ${userDBInfo.HostName}`);
85
84
  console.log(`Port: ${userDBInfo.Port}`);
85
+ console.log(`Admin Username: ${userDBInfo.AdminUsername}`);
86
86
  }
87
87
  return 0;
88
88
  }
@@ -99,6 +99,45 @@ async function getUserDb(host, dbName, json) {
99
99
  }
100
100
  }
101
101
  exports.getUserDb = getUserDb;
102
+ async function listUserDB(host, json) {
103
+ const logger = (0, cloudutils_1.getLogger)();
104
+ try {
105
+ const userCredentials = (0, cloudutils_1.getCloudCredentials)();
106
+ const bearerToken = "Bearer " + userCredentials.token;
107
+ const res = await axios_1.default.get(`https://${host}/${userCredentials.userName}/databases`, {
108
+ headers: {
109
+ "Content-Type": "application/json",
110
+ Authorization: bearerToken,
111
+ },
112
+ });
113
+ const userDBs = res.data;
114
+ if (json) {
115
+ console.log(JSON.stringify(userDBs));
116
+ }
117
+ else {
118
+ userDBs.forEach(userDBInfo => {
119
+ console.log(`Postgres Instance Name: ${userDBInfo.PostgresInstanceName}`);
120
+ console.log(`Status: ${userDBInfo.Status}`);
121
+ console.log(`Host Name: ${userDBInfo.HostName}`);
122
+ console.log(`Port: ${userDBInfo.Port}`);
123
+ console.log(`Admin Username: ${userDBInfo.AdminUsername}`);
124
+ });
125
+ }
126
+ return 0;
127
+ }
128
+ catch (e) {
129
+ const errorLabel = `Failed to retrieve info`;
130
+ const axiosError = e;
131
+ if ((0, cloudutils_1.isCloudAPIErrorResponse)(axiosError.response?.data)) {
132
+ (0, cloudutils_1.handleAPIErrors)(errorLabel, axiosError);
133
+ }
134
+ else {
135
+ logger.error(`${errorLabel}: ${e.message}`);
136
+ }
137
+ return 1;
138
+ }
139
+ }
140
+ exports.listUserDB = listUserDB;
102
141
  async function getUserDBInfo(host, dbName) {
103
142
  const userCredentials = (0, cloudutils_1.getCloudCredentials)();
104
143
  const bearerToken = "Bearer " + userCredentials.token;
@@ -108,7 +147,6 @@ async function getUserDBInfo(host, dbName) {
108
147
  Authorization: bearerToken,
109
148
  },
110
149
  });
111
- // TODO: this needs a type guard
112
150
  return res.data;
113
151
  }
114
152
  exports.getUserDBInfo = getUserDBInfo;
@@ -1 +1 @@
1
- {"version":3,"file":"userdb.js","sourceRoot":"","sources":["../../../userdb.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"userdb.js","sourceRoot":"","sources":["../../../userdb.ts"],"names":[],"mappings":"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"}
package/login.ts CHANGED
@@ -3,16 +3,13 @@ import jwt, { JwtPayload } from 'jsonwebtoken';
3
3
  import jwksClient from 'jwks-rsa';
4
4
  import { execSync } from "child_process";
5
5
  import fs from "fs";
6
- import { getLogger, sleep } from "./cloudutils";
6
+ import { DBOSCloudCredentials, dbosEnvPath, getLogger, sleep } from "./cloudutils";
7
7
 
8
- export const dbosEnvPath = ".dbos";
9
- export const DBOSClientID = 'G38fLmVErczEo9ioCFjVIHea6yd0qMZu'
10
- export const DBOSCloudIdentifier = 'dbos-cloud-api'
11
-
12
- export interface DBOSCloudCredentials {
13
- token: string;
14
- userName: string;
15
- }
8
+ const DBOSCloudHost = process.env.DBOS_DOMAIN || "cloud.dbos.dev";
9
+ const productionEnvironment = DBOSCloudHost === "cloud.dbos.dev";
10
+ const Auth0Domain = productionEnvironment ? 'login.dbos.dev' : 'dbos-inc.us.auth0.com';
11
+ const DBOSClientID = productionEnvironment ? '6p7Sjxf13cyLMkdwn14MxlH7JdhILled' : 'G38fLmVErczEo9ioCFjVIHea6yd0qMZu';
12
+ const DBOSCloudIdentifier = 'dbos-cloud-api';
16
13
 
17
14
  interface DeviceCodeResponse {
18
15
  device_code: string;
@@ -30,7 +27,7 @@ interface TokenResponse {
30
27
  }
31
28
 
32
29
  const client = jwksClient({
33
- jwksUri: 'https://dbos-inc.us.auth0.com/.well-known/jwks.json'
30
+ jwksUri: `https://${Auth0Domain}/.well-known/jwks.json`
34
31
  });
35
32
 
36
33
  async function getSigningKey(kid: string): Promise<string> {
@@ -64,7 +61,7 @@ export async function login(username: string): Promise<number> {
64
61
 
65
62
  const deviceCodeRequest = {
66
63
  method: 'POST',
67
- url: 'https://dbos-inc.us.auth0.com/oauth/device/code',
64
+ url: `https://${Auth0Domain}/oauth/device/code`,
68
65
  headers: { 'content-type': 'application/x-www-form-urlencoded' },
69
66
  data: { client_id: DBOSClientID, scope: 'sub', audience: DBOSCloudIdentifier }
70
67
  };
@@ -83,7 +80,7 @@ export async function login(username: string): Promise<number> {
83
80
 
84
81
  const tokenRequest = {
85
82
  method: 'POST',
86
- url: 'https://dbos-inc.us.auth0.com/oauth/token',
83
+ url: `https://${Auth0Domain}/oauth/token`,
87
84
  headers: { 'content-type': 'application/x-www-form-urlencoded' },
88
85
  data: new URLSearchParams({
89
86
  grant_type: 'urn:ietf:params:oauth:grant-type:device_code',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dbos-inc/dbos-cloud",
3
- "version": "0.9.15-preview.g32137f5fa0",
3
+ "version": "0.9.16-preview",
4
4
  "description": "Tool for performing application deployment to DBOS cloud",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -11,7 +11,7 @@
11
11
  "main": "cli.ts",
12
12
  "homepage": "https://docs.dbos.dev/",
13
13
  "scripts": {
14
- "build": "tsc --project tsconfig.json && chmod +x ./dist/packages/dbos-cloud/cli.js",
14
+ "build": "tsc --project tsconfig.json",
15
15
  "test": "echo \"No tests\"",
16
16
  "setversion": "grunt setversion"
17
17
  },
package/userdb.ts CHANGED
@@ -3,10 +3,11 @@ import { isCloudAPIErrorResponse, handleAPIErrors, getCloudCredentials, getLogge
3
3
  import { sleep } from "../../src/utils";
4
4
 
5
5
  export interface UserDBInstance {
6
- readonly DBName: string;
6
+ readonly PostgresInstanceName: string;
7
7
  readonly Status: string;
8
8
  readonly HostName: string;
9
9
  readonly Port: number;
10
+ readonly AdminUsername: string;
10
11
  }
11
12
 
12
13
  export async function createUserDb(host: string, dbName: string, adminName: string, adminPassword: string, sync: boolean) {
@@ -84,11 +85,11 @@ export async function getUserDb(host: string, dbName: string, json: boolean) {
84
85
  if (json) {
85
86
  console.log(JSON.stringify(userDBInfo));
86
87
  } else {
87
- logger.info(`Retrieving status of: ${dbName}`);
88
- console.log(`DB Name: ${userDBInfo.DBName}`);
88
+ console.log(`Postgres Instance Name: ${userDBInfo.PostgresInstanceName}`);
89
89
  console.log(`Status: ${userDBInfo.Status}`);
90
90
  console.log(`Host Name: ${userDBInfo.HostName}`);
91
91
  console.log(`Port: ${userDBInfo.Port}`);
92
+ console.log(`Admin Username: ${userDBInfo.AdminUsername}`);
92
93
  }
93
94
  return 0;
94
95
  } catch (e) {
@@ -103,6 +104,45 @@ export async function getUserDb(host: string, dbName: string, json: boolean) {
103
104
  }
104
105
  }
105
106
 
107
+ export async function listUserDB(host: string, json: boolean) {
108
+ const logger = getLogger();
109
+
110
+ try {
111
+ const userCredentials = getCloudCredentials();
112
+ const bearerToken = "Bearer " + userCredentials.token;
113
+
114
+ const res = await axios.get(`https://${host}/${userCredentials.userName}/databases`, {
115
+ headers: {
116
+ "Content-Type": "application/json",
117
+ Authorization: bearerToken,
118
+ },
119
+ });
120
+
121
+ const userDBs = res.data as UserDBInstance[];
122
+ if (json) {
123
+ console.log(JSON.stringify(userDBs));
124
+ } else {
125
+ userDBs.forEach(userDBInfo => {
126
+ console.log(`Postgres Instance Name: ${userDBInfo.PostgresInstanceName}`);
127
+ console.log(`Status: ${userDBInfo.Status}`);
128
+ console.log(`Host Name: ${userDBInfo.HostName}`);
129
+ console.log(`Port: ${userDBInfo.Port}`);
130
+ console.log(`Admin Username: ${userDBInfo.AdminUsername}`);
131
+ });
132
+ }
133
+ return 0;
134
+ } catch (e) {
135
+ const errorLabel = `Failed to retrieve info`;
136
+ const axiosError = e as AxiosError;
137
+ if (isCloudAPIErrorResponse(axiosError.response?.data)) {
138
+ handleAPIErrors(errorLabel, axiosError);
139
+ } else {
140
+ logger.error(`${errorLabel}: ${(e as Error).message}`);
141
+ }
142
+ return 1;
143
+ }
144
+ }
145
+
106
146
  export async function getUserDBInfo(host: string, dbName: string): Promise<UserDBInstance> {
107
147
  const userCredentials = getCloudCredentials();
108
148
  const bearerToken = "Bearer " + userCredentials.token;
@@ -114,6 +154,5 @@ export async function getUserDBInfo(host: string, dbName: string): Promise<UserD
114
154
  },
115
155
  });
116
156
 
117
- // TODO: this needs a type guard
118
157
  return res.data as UserDBInstance;
119
158
  }