@dbos-inc/dbos-cloud 0.9.15-preview.g3106cba55d → 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.
- package/applications/get-app-info.ts +47 -0
- package/applications/list-apps.ts +2 -1
- package/applications/types.ts +2 -1
- package/cli.ts +19 -1
- package/cloudutils.ts +17 -1
- package/dist/packages/dbos-cloud/applications/get-app-info.d.ts +2 -0
- package/dist/packages/dbos-cloud/applications/get-app-info.d.ts.map +1 -0
- package/dist/packages/dbos-cloud/applications/get-app-info.js +54 -0
- package/dist/packages/dbos-cloud/applications/get-app-info.js.map +1 -0
- package/dist/packages/dbos-cloud/applications/list-apps.d.ts.map +1 -1
- package/dist/packages/dbos-cloud/applications/list-apps.js +2 -1
- package/dist/packages/dbos-cloud/applications/list-apps.js.map +1 -1
- package/dist/packages/dbos-cloud/applications/types.d.ts +2 -1
- package/dist/packages/dbos-cloud/applications/types.d.ts.map +1 -1
- package/dist/packages/dbos-cloud/cli.js +16 -0
- package/dist/packages/dbos-cloud/cli.js.map +1 -1
- package/dist/packages/dbos-cloud/cloudutils.d.ts.map +1 -1
- package/dist/packages/dbos-cloud/cloudutils.js +18 -1
- package/dist/packages/dbos-cloud/cloudutils.js.map +1 -1
- package/dist/packages/dbos-cloud/userdb.d.ts +3 -1
- package/dist/packages/dbos-cloud/userdb.d.ts.map +1 -1
- package/dist/packages/dbos-cloud/userdb.js +42 -4
- package/dist/packages/dbos-cloud/userdb.js.map +1 -1
- package/package.json +2 -2
- 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(`
|
|
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('-------------------------');
|
package/applications/types.ts
CHANGED
package/cli.ts
CHANGED
|
@@ -11,8 +11,9 @@ 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
15
|
import { DBOSCloudHost } from "./cloudutils";
|
|
16
|
+
import { getAppInfo } from "./applications/get-app-info";
|
|
16
17
|
|
|
17
18
|
const program = new Command();
|
|
18
19
|
|
|
@@ -94,6 +95,15 @@ applicationCommands
|
|
|
94
95
|
process.exit(exitCode);
|
|
95
96
|
});
|
|
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);
|
|
104
|
+
process.exit(exitCode);
|
|
105
|
+
});
|
|
106
|
+
|
|
97
107
|
applicationCommands
|
|
98
108
|
.command('logs')
|
|
99
109
|
.description('Print the microVM logs of a deployed application')
|
|
@@ -131,6 +141,14 @@ userdbCommands
|
|
|
131
141
|
process.exit(exitCode);
|
|
132
142
|
}))
|
|
133
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)
|
|
149
|
+
process.exit(exitCode);
|
|
150
|
+
}))
|
|
151
|
+
|
|
134
152
|
userdbCommands
|
|
135
153
|
.command('delete')
|
|
136
154
|
.argument('<string>', 'database name')
|
package/cloudutils.ts
CHANGED
|
@@ -3,6 +3,7 @@ import { spawn, StdioOptions } from 'child_process';
|
|
|
3
3
|
import { transports, createLogger, format, Logger } from "winston";
|
|
4
4
|
import fs from "fs";
|
|
5
5
|
import { AxiosError } from "axios";
|
|
6
|
+
import jwt from 'jsonwebtoken';
|
|
6
7
|
|
|
7
8
|
export interface DBOSCloudCredentials {
|
|
8
9
|
token: string;
|
|
@@ -44,6 +45,16 @@ const consoleFormat = format.combine(
|
|
|
44
45
|
})
|
|
45
46
|
);
|
|
46
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
|
+
|
|
47
58
|
export function getCloudCredentials(): DBOSCloudCredentials {
|
|
48
59
|
const logger = getLogger();
|
|
49
60
|
if (!credentialsExist()) {
|
|
@@ -51,10 +62,15 @@ export function getCloudCredentials(): DBOSCloudCredentials {
|
|
|
51
62
|
process.exit(1)
|
|
52
63
|
}
|
|
53
64
|
const userCredentials = JSON.parse(fs.readFileSync(`./${dbosEnvPath}/credentials`).toString("utf-8")) as DBOSCloudCredentials;
|
|
54
|
-
|
|
65
|
+
const credentials = {
|
|
55
66
|
userName: userCredentials.userName,
|
|
56
67
|
token: userCredentials.token.replace(/\r|\n/g, ""), // Trim the trailing /r /n.
|
|
57
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
|
|
58
74
|
}
|
|
59
75
|
|
|
60
76
|
export function credentialsExist(): boolean {
|
|
@@ -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,
|
|
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(`
|
|
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,
|
|
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 +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,
|
|
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"}
|
|
@@ -7,6 +7,7 @@ const login_1 = require("./login");
|
|
|
7
7
|
const register_1 = require("./register");
|
|
8
8
|
const userdb_1 = require("./userdb");
|
|
9
9
|
const cloudutils_1 = require("./cloudutils");
|
|
10
|
+
const get_app_info_1 = require("./applications/get-app-info");
|
|
10
11
|
const program = new commander_1.Command();
|
|
11
12
|
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
12
13
|
const packageJson = require('../../../package.json');
|
|
@@ -75,6 +76,14 @@ applicationCommands
|
|
|
75
76
|
const exitCode = await (0, applications_1.listApps)(cloudutils_1.DBOSCloudHost, options.json);
|
|
76
77
|
process.exit(exitCode);
|
|
77
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);
|
|
85
|
+
process.exit(exitCode);
|
|
86
|
+
});
|
|
78
87
|
applicationCommands
|
|
79
88
|
.command('logs')
|
|
80
89
|
.description('Print the microVM logs of a deployed application')
|
|
@@ -107,6 +116,13 @@ userdbCommands
|
|
|
107
116
|
const exitCode = await (0, userdb_1.getUserDb)(cloudutils_1.DBOSCloudHost, dbname, options.json);
|
|
108
117
|
process.exit(exitCode);
|
|
109
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);
|
|
124
|
+
process.exit(exitCode);
|
|
125
|
+
}));
|
|
110
126
|
userdbCommands
|
|
111
127
|
.command('delete')
|
|
112
128
|
.argument('<string>', 'database name')
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../cli.ts"],"names":[],"mappings":";;;AAEA,iDAOwB;AACxB,yCAAoC;AACpC,mCAAgC;AAChC,yCAA0C;AAC1C,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../cli.ts"],"names":[],"mappings":";;;AAEA,iDAOwB;AACxB,yCAAoC;AACpC,mCAAgC;AAChC,yCAA0C;AAC1C,qCAA6E;AAC7E,6CAA6C;AAC7C,8DAAyD;AAEzD,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,8DAA8D;AAC9D,MAAM,WAAW,GAAG,OAAO,CAAC,uBAAuB,CAAwB,CAAC;AAC5E,OAAO;IACL,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;AAE/B,qBAAqB;AACrB,qBAAqB;AACrB,qBAAqB;AAErB,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,sBAAsB,CAAC;KACnC,cAAc,CAAC,yBAAyB,EAAE,UAAU,CAAC;KACrD,MAAM,CAAC,KAAK,EAAE,OAA6B,EAAE,EAAE;IAC9C,MAAM,QAAQ,GAAG,MAAM,IAAA,aAAK,EAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC/C,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACzB,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,UAAU,CAAC;KACnB,WAAW,CAAC,0CAA0C,CAAC;KACvD,cAAc,CAAC,yBAAyB,EAAE,UAAU,CAAC;KACrD,MAAM,CAAC,KAAK,EAAE,OAA4B,EAAE,EAAE;IAC7C,MAAM,QAAQ,GAAG,MAAM,IAAA,uBAAY,EAAC,OAAO,CAAC,QAAQ,EAAE,0BAAa,CAAC,CAAC;IACrE,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACzB,CAAC,CAAC,CAAC;AAEL,6BAA6B;AAC7B,6BAA6B;AAC7B,6BAA6B;AAE7B,MAAM,mBAAmB,GAAG,OAAO;KAChC,OAAO,CAAC,cAAc,CAAC;KACvB,WAAW,CAAC,+BAA+B,CAAC,CAAA;AAE/C,mBAAmB;KAChB,OAAO,CAAC,UAAU,CAAC;KACnB,WAAW,CAAC,4BAA4B,CAAC;KACzC,cAAc,CAAC,yBAAyB,EAAE,+BAA+B,CAAC;KAC1E,MAAM,CAAC,KAAK,EAAE,OAA6B,EAAE,EAAE;IAC9C,MAAM,QAAQ,GAAG,MAAM,IAAA,0BAAW,EAAC,OAAO,CAAC,QAAQ,EAAE,0BAAa,CAAC,CAAC;IACpE,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACzB,CAAC,CAAC,CAAC;AAEL,mBAAmB;KAChB,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,uBAAuB,CAAC;KACpC,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,QAAQ,GAAG,MAAM,IAAA,wBAAS,EAAC,0BAAa,CAAC,CAAC;IAChD,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACzB,CAAC,CAAC,CAAC;AAEL,mBAAmB;KAChB,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,yCAAyC,CAAC;KACtD,MAAM,CAAC,aAAa,EAAE,6CAA6C,CAAC;KACpE,MAAM,CAAC,KAAK,EAAE,OAA4B,EAAE,EAAE;IAC7C,MAAM,QAAQ,GAAG,MAAM,IAAA,4BAAa,EAAC,0BAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACpE,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACzB,CAAC,CAAC,CAAC;AAEL,mBAAmB;KAChB,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,0CAA0C,CAAC;KACvD,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,QAAQ,GAAG,MAAM,IAAA,wBAAS,EAAC,0BAAa,CAAC,CAAC;IAChD,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACzB,CAAC,CAAC,CAAC;AAEL,mBAAmB;KAChB,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,gCAAgC,CAAC;KAC7C,MAAM,CAAC,QAAQ,EAAE,kBAAkB,CAAC;KACpC,MAAM,CAAC,KAAK,EAAE,OAA0B,EAAE,EAAE;IAC3C,MAAM,QAAQ,GAAG,MAAM,IAAA,uBAAQ,EAAC,0BAAa,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7D,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACzB,CAAC,CAAC,CAAC;AAEH,mBAAmB;KAClB,OAAO,CAAC,KAAK,CAAC;KACd,WAAW,CAAC,sBAAsB,CAAC;KACnC,MAAM,CAAC,QAAQ,EAAE,kBAAkB,CAAC;KACpC,MAAM,CAAC,KAAK,EAAE,OAA0B,EAAE,EAAE;IAC3C,MAAM,QAAQ,GAAG,MAAM,IAAA,yBAAU,EAAC,0BAAa,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/D,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACzB,CAAC,CAAC,CAAC;AAEL,mBAAmB;KAChB,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,kDAAkD,CAAC;KAC/D,MAAM,CAAC,sBAAsB,EAAE,uFAAuF,EAAE,QAAQ,CAAC;KACjI,MAAM,CAAC,KAAK,EAAE,OAAwB,EAAE,EAAE;IACzC,MAAM,QAAQ,GAAG,MAAM,IAAA,yBAAU,EAAC,0BAAa,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/D,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACzB,CAAC,CAAC,CAAC;AAEL,8BAA8B;AAC9B,8BAA8B;AAC9B,8BAA8B;AAE9B,MAAM,cAAc,GAAG,OAAO;KAC3B,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,uBAAuB,CAAC,CAAA;AAEvC,cAAc;KACX,OAAO,CAAC,QAAQ,CAAC;KACjB,QAAQ,CAAC,UAAU,EAAE,eAAe,CAAC;KACrC,cAAc,CAAC,sBAAsB,EAAE,wBAAwB,CAAC;KAChE,cAAc,CAAC,yBAAyB,EAAE,4BAA4B,CAAC;KACvE,MAAM,CAAC,YAAY,EAAE,uBAAuB,EAAE,IAAI,CAAC;KACnD,MAAM,CAAC,CAAC,KAAK,EAAE,MAAc,EAAE,OAA2D,EAAE,EAAE;IAC7F,MAAM,QAAQ,GAAG,MAAM,IAAA,qBAAY,EAAC,0BAAa,EAAE,MAAM,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;IACzG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACzB,CAAC,CAAC,CAAC,CAAA;AAEL,cAAc;KACX,OAAO,CAAC,QAAQ,CAAC;KACjB,QAAQ,CAAC,UAAU,EAAE,eAAe,CAAC;KACrC,MAAM,CAAC,QAAQ,EAAE,kBAAkB,CAAC;KACpC,MAAM,CAAC,CAAC,KAAK,EAAE,MAAc,EAAE,OAAyB,EAAE,EAAE;IAC3D,MAAM,QAAQ,GAAG,MAAM,IAAA,kBAAS,EAAC,0BAAa,EAAE,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;IACrE,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACzB,CAAC,CAAC,CAAC,CAAA;AAEH,cAAc;KACb,OAAO,CAAC,MAAM,CAAC;KACf,MAAM,CAAC,QAAQ,EAAE,kBAAkB,CAAC;KACpC,MAAM,CAAC,CAAC,KAAK,EAAE,OAAyB,EAAE,EAAE;IAC3C,MAAM,QAAQ,GAAG,MAAM,IAAA,mBAAU,EAAC,0BAAa,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;IAC9D,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACzB,CAAC,CAAC,CAAC,CAAA;AAEL,cAAc;KACX,OAAO,CAAC,QAAQ,CAAC;KACjB,QAAQ,CAAC,UAAU,EAAE,eAAe,CAAC;KACrC,MAAM,CAAC,CAAC,KAAK,EAAE,MAAc,EAAE,EAAE;IAChC,MAAM,QAAQ,GAAG,MAAM,IAAA,qBAAY,EAAC,0BAAa,EAAE,MAAM,CAAC,CAAA;IAC1D,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACzB,CAAC,CAAC,CAAC,CAAA;AAEL,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAE5B,oDAAoD;AACpD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAClC,OAAO,CAAC,UAAU,EAAE,CAAC;AACvB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
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;
|
|
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"}
|
|
@@ -7,6 +7,7 @@ exports.handleAPIErrors = exports.isCloudAPIErrorResponse = exports.createDirect
|
|
|
7
7
|
const child_process_1 = require("child_process");
|
|
8
8
|
const winston_1 = require("winston");
|
|
9
9
|
const fs_1 = __importDefault(require("fs"));
|
|
10
|
+
const jsonwebtoken_1 = __importDefault(require("jsonwebtoken"));
|
|
10
11
|
exports.dbosConfigFilePath = "dbos-config.yaml";
|
|
11
12
|
exports.DBOSCloudHost = process.env.DBOS_DOMAIN || "cloud.dbos.dev";
|
|
12
13
|
exports.dbosEnvPath = ".dbos";
|
|
@@ -31,6 +32,17 @@ const consoleFormat = winston_1.format.combine(winston_1.format.errors({ stack:
|
|
|
31
32
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
|
|
32
33
|
return `${ts} [${level}]: ${messageString} ${stack ? "\n" + formattedStack : ""}`;
|
|
33
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
|
+
}
|
|
34
46
|
function getCloudCredentials() {
|
|
35
47
|
const logger = getLogger();
|
|
36
48
|
if (!credentialsExist()) {
|
|
@@ -38,10 +50,15 @@ function getCloudCredentials() {
|
|
|
38
50
|
process.exit(1);
|
|
39
51
|
}
|
|
40
52
|
const userCredentials = JSON.parse(fs_1.default.readFileSync(`./${exports.dbosEnvPath}/credentials`).toString("utf-8"));
|
|
41
|
-
|
|
53
|
+
const credentials = {
|
|
42
54
|
userName: userCredentials.userName,
|
|
43
55
|
token: userCredentials.token.replace(/\r|\n/g, ""), // Trim the trailing /r /n.
|
|
44
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;
|
|
45
62
|
}
|
|
46
63
|
exports.getCloudCredentials = getCloudCredentials;
|
|
47
64
|
function credentialsExist() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cloudutils.js","sourceRoot":"","sources":["../../../cloudutils.ts"],"names":[],"mappings":";;;;;;AACA,iDAAoD;AACpD,qCAAmE;AACnE,4CAAoB;
|
|
1
|
+
{"version":3,"file":"cloudutils.js","sourceRoot":"","sources":["../../../cloudutils.ts"],"names":[],"mappings":";;;;;;AACA,iDAAoD;AACpD,qCAAmE;AACnE,4CAAoB;AAEpB,gEAA+B;AAOlB,QAAA,kBAAkB,GAAG,kBAAkB,CAAC;AACxC,QAAA,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,gBAAgB,CAAC;AAC5D,QAAA,WAAW,GAAG,OAAO,CAAC;AAEnC,0EAA0E;AAC1E,SAAgB,SAAS;IACvB,MAAM,iBAAiB,GAAsB,EAAE,CAAC;IAChD,iBAAiB,CAAC,IAAI,CACpB,IAAI,oBAAU,CAAC,OAAO,CAAC;QACrB,MAAM,EAAE,aAAa;QACrB,KAAK,EAAG,MAAM;KACf,CAAC,CACH,CAAC;IACF,OAAO,IAAA,sBAAY,EAAC,EAAE,UAAU,EAAE,iBAAiB,EAAE,CAAC,CAAC;AACzD,CAAC;AATD,8BASC;AAED,MAAM,aAAa,GAAG,gBAAM,CAAC,OAAO,CAClC,gBAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAC9B,gBAAM,CAAC,SAAS,EAAE,EAClB,gBAAM,CAAC,QAAQ,EAAE,EACjB,gBAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;IACrB,mEAAmE;IACnE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;IAClD,kJAAkJ;IAClJ,MAAM,EAAE,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACpD,kJAAkJ;IAClJ,MAAM,cAAc,GAAG,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAE9D,MAAM,aAAa,GAAW,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAE9F,iEAAiE;IACjE,OAAO,GAAG,EAAE,KAAK,KAAK,MAAM,aAAa,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,cAAc,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AACpF,CAAC,CAAC,CACH,CAAC;AAEF,SAAS,cAAc,CAAC,KAAa;IACnC,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,EAAE,GAAG,sBAAG,CAAC,MAAM,CAAC,KAAK,CAAmB,CAAC;QACpD,IAAI,CAAC,GAAG;YAAE,OAAO,KAAK,CAAC;QACvB,OAAO,IAAI,CAAC,GAAG,EAAE,IAAI,GAAG,GAAG,IAAI,CAAC;IAClC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAgB,mBAAmB;IACjC,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,IAAI,CAAC,gBAAgB,EAAE,EAAE,CAAC;QACxB,MAAM,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAA;QACpC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IACD,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,YAAE,CAAC,YAAY,CAAC,KAAK,mBAAW,cAAc,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAyB,CAAC;IAC9H,MAAM,WAAW,GAAI;QACnB,QAAQ,EAAE,eAAe,CAAC,QAAQ;QAClC,KAAK,EAAE,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,EAAE,2BAA2B;KAChF,CAAC;IACF,IAAI,cAAc,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;QACtC,MAAM,CAAC,KAAK,CAAC,qFAAqF,CAAC,CAAA;QACnG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IACD,OAAO,WAAW,CAAA;AACpB,CAAC;AAhBD,kDAgBC;AAED,SAAgB,gBAAgB;IAC9B,OAAO,YAAE,CAAC,UAAU,CAAC,KAAK,mBAAW,cAAc,CAAC,CAAC;AACvD,CAAC;AAFD,4CAEC;AAED,gDAAgD;AAChD,SAAgB,UAAU,CAAC,OAAe,EAAE,OAAiB,EAAE;IAC7D,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACnC,MAAM,KAAK,GAAiB,SAAS,CAAC;QAEtC,MAAM,OAAO,GAAG,IAAA,qBAAK,EAAC,OAAO,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QAEhD,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YACzB,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;gBACb,OAAO,CAAC,IAAI,CAAC,CAAC;YAClB,CAAC;iBAAM,CAAC;gBACJ,MAAM,CAAC,IAAI,KAAK,CAAC,YAAY,OAAO,sBAAsB,IAAI,EAAE,CAAC,CAAC,CAAC;YACvE,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;YAC1B,MAAM,CAAC,KAAK,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACL,CAAC;AAlBD,gCAkBC;AAED,SAAgB,YAAY,CAAC,IAAY,EAAE,WAA2B,MAAM;IAC1E,wBAAwB;IACxB,YAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,KAAmC,EAAE,KAAe,EAAE,EAAE;QACrE,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,eAAe,IAAI,KAAK,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;QACxE,CAAC;aAAM,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,eAAe,IAAI,gBAAgB,CAAC,CAAC;QACvD,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,yBAAyB;IACzB,MAAM,WAAW,GAAW,YAAE,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAE,CAAC;IACjE,OAAO,WAAW,CAAC;AACrB,CAAC;AAbD,oCAaC;AAEM,MAAM,KAAK,GAAG,CAAC,EAAU,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AAA9D,QAAA,KAAK,SAAyD;AAK3E,SAAgB,eAAe,CAAC,IAAY;IAC1C,OAAO,YAAE,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AACjD,CAAC;AAFD,0CAEC;AAQD,SAAgB,uBAAuB,CAAC,GAAY;IAClD,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI;QAC5C,SAAS,IAAI,GAAG,IAAI,OAAO,GAAG,CAAC,SAAS,CAAC,KAAK,QAAQ;QACtD,YAAY,IAAI,GAAG,IAAI,OAAO,GAAG,CAAC,YAAY,CAAC,KAAK,QAAQ;QAC5D,WAAW,IAAI,GAAG,IAAI,OAAO,GAAG,CAAC,WAAW,CAAC,KAAK,QAAQ,CAAC;AAC/D,CAAC;AALD,0DAKC;AAED,SAAgB,eAAe,CAAC,KAAa,EAAE,CAAa;IAC1D,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,IAAI,GAA0B,CAAC,CAAC,QAAQ,EAAE,IAA6B,CAAC;IAC9E,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,SAAS,KAAK,KAAK,KAAK,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;AACjE,CAAC;AAJD,0CAIC"}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
export interface UserDBInstance {
|
|
2
|
-
readonly
|
|
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
8
|
export declare function createUserDb(host: string, dbName: string, adminName: string, adminPassword: string, sync: boolean): Promise<0 | 1>;
|
|
8
9
|
export declare function deleteUserDb(host: string, dbName: string): Promise<0 | 1>;
|
|
9
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,
|
|
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
|
-
|
|
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":";;;;;;AAAA,kDAA0C;AAC1C,6CAAwG;AACxG,2CAAwC;
|
|
1
|
+
{"version":3,"file":"userdb.js","sourceRoot":"","sources":["../../../userdb.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dbos-inc/dbos-cloud",
|
|
3
|
-
"version": "0.9.
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
}
|