@dbos-inc/dbos-cloud 1.0.2 → 1.1.5-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/dist/applications/delete-app.d.ts.map +1 -0
- package/dist/applications/delete-app.js +34 -0
- package/dist/applications/delete-app.js.map +1 -0
- package/dist/applications/deploy-app-code.d.ts.map +1 -0
- package/dist/{packages/dbos-cloud/applications → applications}/deploy-app-code.js +23 -30
- package/dist/applications/deploy-app-code.js.map +1 -0
- package/dist/applications/get-app-info.d.ts.map +1 -0
- package/dist/applications/get-app-info.js +43 -0
- package/dist/applications/get-app-info.js.map +1 -0
- package/dist/applications/get-app-logs.d.ts.map +1 -0
- package/dist/{packages/dbos-cloud/applications → applications}/get-app-logs.js +9 -16
- package/dist/applications/get-app-logs.js.map +1 -0
- package/dist/applications/index.d.ts +7 -0
- package/dist/applications/index.d.ts.map +1 -0
- package/dist/applications/index.js +7 -0
- package/dist/applications/index.js.map +1 -0
- package/dist/applications/list-apps.d.ts.map +1 -0
- package/dist/applications/list-apps.js +41 -0
- package/dist/applications/list-apps.js.map +1 -0
- package/dist/applications/register-app.d.ts.map +1 -0
- package/dist/applications/register-app.js +39 -0
- package/dist/applications/register-app.js.map +1 -0
- package/dist/applications/types.d.ts.map +1 -0
- package/dist/{packages/dbos-cloud/applications → applications}/types.js +1 -5
- package/dist/applications/types.js.map +1 -0
- package/dist/applications/update-app.d.ts.map +1 -0
- package/dist/applications/update-app.js +38 -0
- package/dist/applications/update-app.js.map +1 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/{packages/dbos-cloud/cli.js → cli.js} +58 -35
- package/dist/cli.js.map +1 -0
- package/dist/{packages/dbos-cloud/cloudutils.d.ts → cloudutils.d.ts} +1 -1
- package/dist/cloudutils.d.ts.map +1 -0
- package/dist/cloudutils.js +126 -0
- package/dist/cloudutils.js.map +1 -0
- package/dist/dashboards.d.ts.map +1 -0
- package/{dashboards.ts → dist/dashboards.js} +24 -24
- package/dist/dashboards.js.map +1 -0
- package/dist/login.d.ts.map +1 -0
- package/dist/{packages/dbos-cloud/login.js → login.js} +25 -26
- package/dist/login.js.map +1 -0
- package/dist/register.d.ts.map +1 -0
- package/dist/register.js +86 -0
- package/dist/register.js.map +1 -0
- package/dist/userdb.d.ts.map +1 -0
- package/dist/{packages/dbos-cloud/userdb.js → userdb.js} +34 -47
- package/dist/userdb.js.map +1 -0
- package/package.json +7 -3
- package/Gruntfile.js +0 -9
- package/applications/delete-app.ts +0 -35
- package/applications/deploy-app-code.ts +0 -126
- package/applications/get-app-info.ts +0 -42
- package/applications/get-app-logs.ts +0 -45
- package/applications/index.ts +0 -7
- package/applications/list-apps.ts +0 -42
- package/applications/register-app.ts +0 -43
- package/applications/types.ts +0 -19
- package/applications/update-app.ts +0 -43
- package/cli.ts +0 -225
- package/cloudutils.ts +0 -166
- package/dist/packages/dbos-cloud/applications/delete-app.d.ts.map +0 -1
- package/dist/packages/dbos-cloud/applications/delete-app.js +0 -41
- package/dist/packages/dbos-cloud/applications/delete-app.js.map +0 -1
- package/dist/packages/dbos-cloud/applications/deploy-app-code.d.ts.map +0 -1
- package/dist/packages/dbos-cloud/applications/deploy-app-code.js.map +0 -1
- package/dist/packages/dbos-cloud/applications/get-app-info.d.ts.map +0 -1
- package/dist/packages/dbos-cloud/applications/get-app-info.js +0 -50
- package/dist/packages/dbos-cloud/applications/get-app-info.js.map +0 -1
- package/dist/packages/dbos-cloud/applications/get-app-logs.d.ts.map +0 -1
- package/dist/packages/dbos-cloud/applications/get-app-logs.js.map +0 -1
- package/dist/packages/dbos-cloud/applications/index.d.ts +0 -7
- package/dist/packages/dbos-cloud/applications/index.d.ts.map +0 -1
- package/dist/packages/dbos-cloud/applications/index.js +0 -16
- package/dist/packages/dbos-cloud/applications/index.js.map +0 -1
- package/dist/packages/dbos-cloud/applications/list-apps.d.ts.map +0 -1
- package/dist/packages/dbos-cloud/applications/list-apps.js +0 -48
- package/dist/packages/dbos-cloud/applications/list-apps.js.map +0 -1
- package/dist/packages/dbos-cloud/applications/register-app.d.ts.map +0 -1
- package/dist/packages/dbos-cloud/applications/register-app.js +0 -46
- package/dist/packages/dbos-cloud/applications/register-app.js.map +0 -1
- package/dist/packages/dbos-cloud/applications/types.d.ts.map +0 -1
- package/dist/packages/dbos-cloud/applications/types.js.map +0 -1
- package/dist/packages/dbos-cloud/applications/update-app.d.ts.map +0 -1
- package/dist/packages/dbos-cloud/applications/update-app.js +0 -45
- package/dist/packages/dbos-cloud/applications/update-app.js.map +0 -1
- package/dist/packages/dbos-cloud/cli.d.ts.map +0 -1
- package/dist/packages/dbos-cloud/cli.js.map +0 -1
- package/dist/packages/dbos-cloud/cloudutils.d.ts.map +0 -1
- package/dist/packages/dbos-cloud/cloudutils.js +0 -145
- package/dist/packages/dbos-cloud/cloudutils.js.map +0 -1
- package/dist/packages/dbos-cloud/dashboards.d.ts.map +0 -1
- package/dist/packages/dbos-cloud/dashboards.js +0 -63
- package/dist/packages/dbos-cloud/dashboards.js.map +0 -1
- package/dist/packages/dbos-cloud/login.d.ts.map +0 -1
- package/dist/packages/dbos-cloud/login.js.map +0 -1
- package/dist/packages/dbos-cloud/register.d.ts.map +0 -1
- package/dist/packages/dbos-cloud/register.js +0 -116
- package/dist/packages/dbos-cloud/register.js.map +0 -1
- package/dist/packages/dbos-cloud/userdb.d.ts.map +0 -1
- package/dist/packages/dbos-cloud/userdb.js.map +0 -1
- package/dist/src/utils.d.ts +0 -6
- package/dist/src/utils.d.ts.map +0 -1
- package/dist/src/utils.js +0 -51
- package/dist/src/utils.js.map +0 -1
- package/login.ts +0 -146
- package/register.ts +0 -89
- package/tsconfig.json +0 -22
- package/userdb.ts +0 -191
- /package/dist/{packages/dbos-cloud/applications → applications}/delete-app.d.ts +0 -0
- /package/dist/{packages/dbos-cloud/applications → applications}/deploy-app-code.d.ts +0 -0
- /package/dist/{packages/dbos-cloud/applications → applications}/get-app-info.d.ts +0 -0
- /package/dist/{packages/dbos-cloud/applications → applications}/get-app-logs.d.ts +0 -0
- /package/dist/{packages/dbos-cloud/applications → applications}/list-apps.d.ts +0 -0
- /package/dist/{packages/dbos-cloud/applications → applications}/register-app.d.ts +0 -0
- /package/dist/{packages/dbos-cloud/applications → applications}/types.d.ts +0 -0
- /package/dist/{packages/dbos-cloud/applications → applications}/update-app.d.ts +0 -0
- /package/dist/{packages/dbos-cloud/cli.d.ts → cli.d.ts} +0 -0
- /package/dist/{packages/dbos-cloud/dashboards.d.ts → dashboards.d.ts} +0 -0
- /package/dist/{packages/dbos-cloud/login.d.ts → login.d.ts} +0 -0
- /package/dist/{packages/dbos-cloud/register.d.ts → register.d.ts} +0 -0
- /package/dist/{packages/dbos-cloud/userdb.d.ts → userdb.d.ts} +0 -0
|
@@ -1,21 +1,44 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
};
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
2
|
+
import { registerApp, updateApp, listApps, deleteApp, deployAppCode, getAppLogs, } from "./applications/index.js";
|
|
3
|
+
import { Command } from 'commander';
|
|
4
|
+
import { login } from "./login.js";
|
|
5
|
+
import { registerUser } from "./register.js";
|
|
6
|
+
import { createUserDb, getUserDb, deleteUserDb, listUserDB, resetDBCredentials } from "./userdb.js";
|
|
7
|
+
import { launchDashboard, getDashboardURL } from "./dashboards.js";
|
|
8
|
+
import { DBOSCloudHost, credentialsExist, deleteCredentials } from "./cloudutils.js";
|
|
9
|
+
import { getAppInfo } from "./applications/get-app-info.js";
|
|
10
|
+
import promptSync from 'prompt-sync';
|
|
11
|
+
import chalk from 'chalk';
|
|
12
|
+
import fs from "fs";
|
|
13
|
+
import * as url from 'url';
|
|
14
|
+
import path from "path";
|
|
15
|
+
import updateNotifier from "update-notifier";
|
|
16
|
+
// Read local package.json
|
|
17
|
+
const __dirname = url.fileURLToPath(new URL('.', import.meta.url));
|
|
18
|
+
const packageJson = JSON.parse(fs.readFileSync(path.join(__dirname, "..", "package.json")).toString());
|
|
19
|
+
// Notify the user if the package requires an update.
|
|
20
|
+
try {
|
|
21
|
+
const notifier = updateNotifier({
|
|
22
|
+
pkg: packageJson,
|
|
23
|
+
updateCheckInterval: 0
|
|
24
|
+
});
|
|
25
|
+
if (notifier.update && !notifier.update.current.includes("preview")) {
|
|
26
|
+
console.log(`
|
|
27
|
+
${chalk.yellow("-----------------------------------------------------------------------------------------")}
|
|
28
|
+
|
|
29
|
+
DBOS Cloud CLI Update available ${chalk.gray(notifier.update.current)} → ${chalk.green(notifier.update.latest)}
|
|
30
|
+
|
|
31
|
+
To upgrade the DBOS Cloud CLI to the latest version, run the following command:
|
|
32
|
+
${chalk.cyan("`npm i --save-dev @dbos-inc/dbos-cloud@latest`")}
|
|
33
|
+
|
|
34
|
+
${chalk.yellow("-----------------------------------------------------------------------------------------")}`);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
catch (error) {
|
|
38
|
+
// Ignore errors in the notifier
|
|
39
|
+
}
|
|
40
|
+
const program = new Command();
|
|
17
41
|
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
18
|
-
const packageJson = require('../../../package.json');
|
|
19
42
|
program.version(packageJson.version);
|
|
20
43
|
/////////////////////
|
|
21
44
|
/* AUTHENTICATION */
|
|
@@ -24,7 +47,7 @@ program
|
|
|
24
47
|
.command('login')
|
|
25
48
|
.description('Log in to DBOS cloud')
|
|
26
49
|
.action(async () => {
|
|
27
|
-
const exitCode = await
|
|
50
|
+
const exitCode = await login(DBOSCloudHost);
|
|
28
51
|
process.exit(exitCode);
|
|
29
52
|
});
|
|
30
53
|
program
|
|
@@ -32,15 +55,15 @@ program
|
|
|
32
55
|
.description('Register a user with DBOS cloud')
|
|
33
56
|
.requiredOption('-u, --username <string>', 'Username')
|
|
34
57
|
.action(async (options) => {
|
|
35
|
-
const exitCode = await
|
|
58
|
+
const exitCode = await registerUser(options.username, DBOSCloudHost);
|
|
36
59
|
process.exit(exitCode);
|
|
37
60
|
});
|
|
38
61
|
program
|
|
39
62
|
.command('logout')
|
|
40
63
|
.description('Log out of DBOS cloud')
|
|
41
64
|
.action(() => {
|
|
42
|
-
if (
|
|
43
|
-
|
|
65
|
+
if (credentialsExist()) {
|
|
66
|
+
deleteCredentials();
|
|
44
67
|
}
|
|
45
68
|
process.exit(0);
|
|
46
69
|
});
|
|
@@ -58,21 +81,21 @@ applicationCommands
|
|
|
58
81
|
.description('Register this application')
|
|
59
82
|
.requiredOption('-d, --database <string>', 'Specify a Postgres database instance for this application')
|
|
60
83
|
.action(async (options) => {
|
|
61
|
-
const exitCode = await
|
|
84
|
+
const exitCode = await registerApp(options.database, DBOSCloudHost);
|
|
62
85
|
process.exit(exitCode);
|
|
63
86
|
});
|
|
64
87
|
applicationCommands
|
|
65
88
|
.command('update')
|
|
66
89
|
.description('Update this application')
|
|
67
90
|
.action(async () => {
|
|
68
|
-
const exitCode = await
|
|
91
|
+
const exitCode = await updateApp(DBOSCloudHost);
|
|
69
92
|
process.exit(exitCode);
|
|
70
93
|
});
|
|
71
94
|
applicationCommands
|
|
72
95
|
.command('deploy')
|
|
73
96
|
.description('Deploy this application to the cloud')
|
|
74
97
|
.action(async () => {
|
|
75
|
-
const exitCode = await
|
|
98
|
+
const exitCode = await deployAppCode(DBOSCloudHost);
|
|
76
99
|
process.exit(exitCode);
|
|
77
100
|
});
|
|
78
101
|
applicationCommands
|
|
@@ -80,7 +103,7 @@ applicationCommands
|
|
|
80
103
|
.description('Delete this application')
|
|
81
104
|
.argument('[string]', 'application name')
|
|
82
105
|
.action(async (appName) => {
|
|
83
|
-
const exitCode = await
|
|
106
|
+
const exitCode = await deleteApp(DBOSCloudHost, appName);
|
|
84
107
|
process.exit(exitCode);
|
|
85
108
|
});
|
|
86
109
|
applicationCommands
|
|
@@ -88,7 +111,7 @@ applicationCommands
|
|
|
88
111
|
.description('List all applications')
|
|
89
112
|
.option('--json', 'Emit JSON output')
|
|
90
113
|
.action(async (options) => {
|
|
91
|
-
const exitCode = await
|
|
114
|
+
const exitCode = await listApps(DBOSCloudHost, options.json);
|
|
92
115
|
process.exit(exitCode);
|
|
93
116
|
});
|
|
94
117
|
applicationCommands
|
|
@@ -97,7 +120,7 @@ applicationCommands
|
|
|
97
120
|
.argument('[string]', 'application name')
|
|
98
121
|
.option('--json', 'Emit JSON output')
|
|
99
122
|
.action(async (appName, options) => {
|
|
100
|
-
const exitCode = await
|
|
123
|
+
const exitCode = await getAppInfo(DBOSCloudHost, options.json, appName);
|
|
101
124
|
process.exit(exitCode);
|
|
102
125
|
});
|
|
103
126
|
applicationCommands
|
|
@@ -105,7 +128,7 @@ applicationCommands
|
|
|
105
128
|
.description("Print this application's logs")
|
|
106
129
|
.option('-l, --last <integer>', 'How far back to query, in seconds from current time. By default, we retrieve all data', parseInt)
|
|
107
130
|
.action(async (options) => {
|
|
108
|
-
const exitCode = await
|
|
131
|
+
const exitCode = await getAppLogs(DBOSCloudHost, options.last);
|
|
109
132
|
process.exit(exitCode);
|
|
110
133
|
});
|
|
111
134
|
//////////////////////////////////
|
|
@@ -116,7 +139,7 @@ const databaseCommands = program
|
|
|
116
139
|
.alias('databases')
|
|
117
140
|
.alias('db')
|
|
118
141
|
.description('Manage Postgres database instances');
|
|
119
|
-
const prompt = (
|
|
142
|
+
const prompt = promptSync({ sigint: true });
|
|
120
143
|
databaseCommands
|
|
121
144
|
.command('provision')
|
|
122
145
|
.description("Provision a Postgres database instance")
|
|
@@ -127,7 +150,7 @@ databaseCommands
|
|
|
127
150
|
if (!options.password) {
|
|
128
151
|
options.password = prompt('Database Password: ', { echo: '*' });
|
|
129
152
|
}
|
|
130
|
-
const exitCode = await
|
|
153
|
+
const exitCode = await createUserDb(DBOSCloudHost, dbname, options.username, options.password, true);
|
|
131
154
|
process.exit(exitCode);
|
|
132
155
|
}));
|
|
133
156
|
databaseCommands
|
|
@@ -136,7 +159,7 @@ databaseCommands
|
|
|
136
159
|
.argument('<name>', 'database instance name')
|
|
137
160
|
.option('--json', 'Emit JSON output')
|
|
138
161
|
.action((async (dbname, options) => {
|
|
139
|
-
const exitCode = await
|
|
162
|
+
const exitCode = await getUserDb(DBOSCloudHost, dbname, options.json);
|
|
140
163
|
process.exit(exitCode);
|
|
141
164
|
}));
|
|
142
165
|
databaseCommands
|
|
@@ -144,7 +167,7 @@ databaseCommands
|
|
|
144
167
|
.description("List all your Postgres database instances")
|
|
145
168
|
.option('--json', 'Emit JSON output')
|
|
146
169
|
.action((async (options) => {
|
|
147
|
-
const exitCode = await
|
|
170
|
+
const exitCode = await listUserDB(DBOSCloudHost, options.json);
|
|
148
171
|
process.exit(exitCode);
|
|
149
172
|
}));
|
|
150
173
|
databaseCommands
|
|
@@ -156,7 +179,7 @@ databaseCommands
|
|
|
156
179
|
if (!options.password) {
|
|
157
180
|
options.password = prompt('Database Password: ', { echo: '*' });
|
|
158
181
|
}
|
|
159
|
-
const exitCode = await
|
|
182
|
+
const exitCode = await resetDBCredentials(DBOSCloudHost, dbName, options.password);
|
|
160
183
|
process.exit(exitCode);
|
|
161
184
|
}));
|
|
162
185
|
databaseCommands
|
|
@@ -164,7 +187,7 @@ databaseCommands
|
|
|
164
187
|
.description("Destroy a Postgres database instance")
|
|
165
188
|
.argument('<name>', 'database instance name')
|
|
166
189
|
.action((async (dbname) => {
|
|
167
|
-
const exitCode = await
|
|
190
|
+
const exitCode = await deleteUserDb(DBOSCloudHost, dbname);
|
|
168
191
|
process.exit(exitCode);
|
|
169
192
|
}));
|
|
170
193
|
/////////////////////
|
|
@@ -177,14 +200,14 @@ dashboardCommands
|
|
|
177
200
|
.command('launch')
|
|
178
201
|
.description('Deploy the Monitoring Dashboard')
|
|
179
202
|
.action(async () => {
|
|
180
|
-
const exitCode = await
|
|
203
|
+
const exitCode = await launchDashboard(DBOSCloudHost);
|
|
181
204
|
process.exit(exitCode);
|
|
182
205
|
});
|
|
183
206
|
dashboardCommands
|
|
184
207
|
.command('url')
|
|
185
208
|
.description('Get the URL of your Monitoring Dashboard')
|
|
186
209
|
.action(async () => {
|
|
187
|
-
const exitCode = await
|
|
210
|
+
const exitCode = await getDashboardURL(DBOSCloudHost);
|
|
188
211
|
process.exit(exitCode);
|
|
189
212
|
});
|
|
190
213
|
program.parse(process.argv);
|
package/dist/cli.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../cli.ts"],"names":[],"mappings":";AAEA,OAAO,EACL,WAAW,EACX,SAAS,EACT,QAAQ,EACR,SAAS,EACT,aAAa,EACb,UAAU,GACX,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACpG,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACrF,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC5D,OAAO,UAAU,MAAM,aAAa,CAAC;AACrC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,KAAK,GAAG,MAAM,KAAK,CAAC;AAC3B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,cAA2B,MAAM,iBAAiB,CAAC;AAE1D,0BAA0B;AAC1B,MAAM,SAAS,GAAG,GAAG,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACnE,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAY,CAAC;AAElH,qDAAqD;AACrD,IAAI,CAAC;IACH,MAAM,QAAQ,GAAG,cAAc,CAAC;QAC9B,GAAG,EAAE,WAAW;QAChB,mBAAmB,EAAE,CAAC;KACvB,CAAC,CAAA;IACF,IAAI,QAAQ,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACpE,OAAO,CAAC,GAAG,CAAC;IACZ,KAAK,CAAC,MAAM,CAAC,2FAA2F,CAAC;;oCAEzE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC;;;IAG7G,KAAK,CAAC,IAAI,CAAC,gDAAgD,CAAC;;IAE5D,KAAK,CAAC,MAAM,CAAC,2FAA2F,CAAC,EAAE,CAC1G,CAAC;IACJ,CAAC;AACH,CAAC;AAAC,OAAO,KAAK,EAAE,CAAC;IACf,gCAAgC;AAClC,CAAC;AAED,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,8DAA8D;AAC9D,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;AAErC,qBAAqB;AACrB,qBAAqB;AACrB,qBAAqB;AAErB,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,sBAAsB,CAAC;KACnC,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,aAAa,CAAC,CAAC;IAC5C,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACzB,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,UAAU,CAAC;KACnB,WAAW,CAAC,iCAAiC,CAAC;KAC9C,cAAc,CAAC,yBAAyB,EAAE,UAAU,CAAC;KACrD,MAAM,CAAC,KAAK,EAAE,OAA6B,EAAE,EAAE;IAC9C,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;IACrE,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACzB,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,uBAAuB,CAAC;KACpC,MAAM,CAAC,GAAG,EAAE;IACX,IAAI,gBAAgB,EAAE,EAAE,CAAC;QACvB,iBAAiB,EAAE,CAAC;IACtB,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC;AAEL,6BAA6B;AAC7B,6BAA6B;AAC7B,6BAA6B;AAE7B,MAAM,mBAAmB,GAAG,OAAO;KAChC,OAAO,CAAC,aAAa,CAAC;KACtB,KAAK,CAAC,cAAc,CAAC;KACrB,KAAK,CAAC,KAAK,CAAC;KACZ,KAAK,CAAC,MAAM,CAAC;KACb,WAAW,CAAC,+BAA+B,CAAC,CAAA;AAE/C,mBAAmB;KAChB,OAAO,CAAC,UAAU,CAAC;KACnB,WAAW,CAAC,2BAA2B,CAAC;KACxC,cAAc,CAAC,yBAAyB,EAAE,2DAA2D,CAAC;KACtG,MAAM,CAAC,KAAK,EAAE,OAA6B,EAAE,EAAE;IAC9C,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;IACpE,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACzB,CAAC,CAAC,CAAC;AAEL,mBAAmB;KAChB,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,yBAAyB,CAAC;KACtC,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,aAAa,CAAC,CAAC;IAChD,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACzB,CAAC,CAAC,CAAC;AAEL,mBAAmB;KAChB,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,sCAAsC,CAAC;KACnD,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,aAAa,CAAC,CAAC;IACpD,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACzB,CAAC,CAAC,CAAC;AAEL,mBAAmB;KAChB,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,yBAAyB,CAAC;KACtC,QAAQ,CAAC,UAAU,EAAE,kBAAkB,CAAC;KACxC,MAAM,CAAC,KAAK,EAAE,OAAgB,EAAE,EAAE;IACjC,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IACzD,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACzB,CAAC,CAAC,CAAC;AAEL,mBAAmB;KAChB,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,uBAAuB,CAAC;KACpC,MAAM,CAAC,QAAQ,EAAE,kBAAkB,CAAC;KACpC,MAAM,CAAC,KAAK,EAAE,OAA0B,EAAE,EAAE;IAC3C,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7D,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACzB,CAAC,CAAC,CAAC;AAEL,mBAAmB;KAChB,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,oCAAoC,CAAC;KACjD,QAAQ,CAAC,UAAU,EAAE,kBAAkB,CAAC;KACxC,MAAM,CAAC,QAAQ,EAAE,kBAAkB,CAAC;KACpC,MAAM,CAAC,KAAK,EAAE,OAA2B,EAAE,OAA0B,EAAE,EAAE;IACxE,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,aAAa,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACxE,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACzB,CAAC,CAAC,CAAC;AAEL,mBAAmB;KAChB,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,+BAA+B,CAAC;KAC5C,MAAM,CAAC,sBAAsB,EAAE,uFAAuF,EAAE,QAAQ,CAAC;KACjI,MAAM,CAAC,KAAK,EAAE,OAAyB,EAAE,EAAE;IAC1C,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,aAAa,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/D,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACzB,CAAC,CAAC,CAAC;AAEL,kCAAkC;AAClC,kCAAkC;AAClC,kCAAkC;AAElC,MAAM,gBAAgB,GAAG,OAAO;KAC7B,OAAO,CAAC,UAAU,CAAC;KACnB,KAAK,CAAC,WAAW,CAAC;KAClB,KAAK,CAAC,IAAI,CAAC;KACX,WAAW,CAAC,oCAAoC,CAAC,CAAA;AAEpD,MAAM,MAAM,GAAG,UAAU,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;AAC5C,gBAAgB;KACb,OAAO,CAAC,WAAW,CAAC;KACpB,WAAW,CAAC,wCAAwC,CAAC;KACrD,QAAQ,CAAC,QAAQ,EAAE,wBAAwB,CAAC;KAC5C,cAAc,CAAC,yBAAyB,EAAE,gCAAgC,CAAC;KAC3E,MAAM,CAAC,yBAAyB,EAAE,qCAAqC,CAAC;KACxE,MAAM,CAAC,CAAC,KAAK,EAAE,MAAc,EAAE,OAA2D,EAAE,EAAE;IAC7F,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;QACtB,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC,qBAAqB,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;IAClE,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,aAAa,EAAE,MAAM,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;IACpG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACzB,CAAC,CAAC,CAAC,CAAA;AAEL,gBAAgB;KACb,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,qDAAqD,CAAC;KAClE,QAAQ,CAAC,QAAQ,EAAE,wBAAwB,CAAC;KAC5C,MAAM,CAAC,QAAQ,EAAE,kBAAkB,CAAC;KACpC,MAAM,CAAC,CAAC,KAAK,EAAE,MAAc,EAAE,OAA0B,EAAE,EAAE;IAC5D,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,aAAa,EAAE,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;IACrE,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACzB,CAAC,CAAC,CAAC,CAAA;AAEL,gBAAgB;KACb,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,2CAA2C,CAAC;KACxD,MAAM,CAAC,QAAQ,EAAE,kBAAkB,CAAC;KACpC,MAAM,CAAC,CAAC,KAAK,EAAE,OAA0B,EAAE,EAAE;IAC5C,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,aAAa,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;IAC9D,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACzB,CAAC,CAAC,CAAC,CAAA;AAEL,gBAAgB;KACb,OAAO,CAAC,gBAAgB,CAAC;KACzB,WAAW,CAAC,iDAAiD,CAAC;KAC9D,QAAQ,CAAC,QAAQ,EAAE,wBAAwB,CAAC;KAC5C,MAAM,CAAC,yBAAyB,EAAE,oCAAoC,CAAC;KACvE,MAAM,CAAC,CAAC,KAAK,EAAE,MAAc,EAAE,OAA6B,EAAE,EAAE;IAC/D,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;QACtB,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC,qBAAqB,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;IAClE,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,aAAa,EAAE,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAA;IAClF,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACzB,CAAC,CAAC,CAAC,CAAA;AAEL,gBAAgB;KACb,OAAO,CAAC,SAAS,CAAC;KAClB,WAAW,CAAC,sCAAsC,CAAC;KACnD,QAAQ,CAAC,QAAQ,EAAE,wBAAwB,CAAC;KAC5C,MAAM,CAAC,CAAC,KAAK,EAAE,MAAc,EAAE,EAAE;IAChC,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC,CAAA;IAC1D,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACzB,CAAC,CAAC,CAAC,CAAA;AAEL,qBAAqB;AACrB,qBAAqB;AACrB,qBAAqB;AAErB,MAAM,iBAAiB,GAAG,OAAO;KAC9B,OAAO,CAAC,WAAW,CAAC;KACpB,WAAW,CAAC,8BAA8B,CAAC,CAAA;AAE9C,iBAAiB;KACd,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,iCAAiC,CAAC;KAC9C,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,aAAa,CAAC,CAAC;IACtD,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACzB,CAAC,CAAC,CAAC;AAEL,iBAAiB;KACd,OAAO,CAAC,KAAK,CAAC;KACd,WAAW,CAAC,0CAA0C,CAAC;KACvD,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,aAAa,CAAC,CAAC;IACtD,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACzB,CAAC,CAAC,CAAC;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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cloudutils.d.ts","sourceRoot":"","sources":["../cloudutils.ts"],"names":[],"mappings":";AACA,OAAO,EAAoC,MAAM,EAAE,MAAM,SAAS,CAAC;AAEnE,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAInC,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;AAEnC,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,GAAE,OAAe,GAAG,MAAM,GAAG,SAAS,CAWnG;AAGD,wBAAgB,SAAS,IAAI,MAAM,CASlC;AA+BD,wBAAgB,mBAAmB,IAAI,oBAAoB,CAgB1D;AAED,wBAAgB,gBAAgB,IAAI,OAAO,CAE1C;AAED,wBAAgB,iBAAiB,SAEhC;AAED,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,oBAAoB,QAGjE;AAGD,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,MAAM,EAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAkBhF;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,GAAE,cAAuB,GAAG,MAAM,GAAG,MAAM,CAa9F;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"}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import { execSync, spawn } from 'child_process';
|
|
2
|
+
import { transports, createLogger, format } from "winston";
|
|
3
|
+
import fs from "fs";
|
|
4
|
+
import jwt from 'jsonwebtoken';
|
|
5
|
+
import path from "node:path";
|
|
6
|
+
export const dbosConfigFilePath = "dbos-config.yaml";
|
|
7
|
+
export const DBOSCloudHost = process.env.DBOS_DOMAIN || "cloud.dbos.dev";
|
|
8
|
+
export const dbosEnvPath = ".dbos";
|
|
9
|
+
export function retrieveApplicationName(logger, silent = false) {
|
|
10
|
+
const packageJson = JSON.parse(fs.readFileSync(path.join(process.cwd(), "package.json")).toString());
|
|
11
|
+
const appName = packageJson.name;
|
|
12
|
+
if (appName === undefined) {
|
|
13
|
+
logger.error("Error: cannot find a valid package.json file. Please run this command in an application root directory.");
|
|
14
|
+
return undefined;
|
|
15
|
+
}
|
|
16
|
+
if (!silent) {
|
|
17
|
+
logger.info(`Loaded application name from package.json: ${appName}`);
|
|
18
|
+
}
|
|
19
|
+
return appName;
|
|
20
|
+
}
|
|
21
|
+
// FIXME: we should have a global instance of the logger created in cli.ts
|
|
22
|
+
export function getLogger() {
|
|
23
|
+
const winstonTransports = [];
|
|
24
|
+
winstonTransports.push(new transports.Console({
|
|
25
|
+
format: consoleFormat,
|
|
26
|
+
level: "info",
|
|
27
|
+
}));
|
|
28
|
+
return createLogger({ transports: winstonTransports });
|
|
29
|
+
}
|
|
30
|
+
const consoleFormat = format.combine(format.errors({ stack: true }), format.timestamp(), format.colorize(), format.printf((info) => {
|
|
31
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
32
|
+
const { timestamp, level, message, stack } = info;
|
|
33
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-assignment
|
|
34
|
+
const ts = timestamp.slice(0, 19).replace("T", " ");
|
|
35
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-assignment
|
|
36
|
+
const formattedStack = stack?.split("\n").slice(1).join("\n");
|
|
37
|
+
const messageString = typeof message === "string" ? message : JSON.stringify(message);
|
|
38
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
|
|
39
|
+
return `${ts} [${level}]: ${messageString} ${stack ? "\n" + formattedStack : ""}`;
|
|
40
|
+
}));
|
|
41
|
+
function isTokenExpired(token) {
|
|
42
|
+
try {
|
|
43
|
+
const { exp } = jwt.decode(token);
|
|
44
|
+
if (!exp)
|
|
45
|
+
return false;
|
|
46
|
+
return Date.now() >= exp * 1000;
|
|
47
|
+
}
|
|
48
|
+
catch (error) {
|
|
49
|
+
return true;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
export function getCloudCredentials() {
|
|
53
|
+
const logger = getLogger();
|
|
54
|
+
if (!credentialsExist()) {
|
|
55
|
+
logger.error("Error: not logged in");
|
|
56
|
+
process.exit(1);
|
|
57
|
+
}
|
|
58
|
+
const userCredentials = JSON.parse(fs.readFileSync(`./${dbosEnvPath}/credentials`).toString("utf-8"));
|
|
59
|
+
const credentials = {
|
|
60
|
+
userName: userCredentials.userName,
|
|
61
|
+
token: userCredentials.token.replace(/\r|\n/g, ""), // Trim the trailing /r /n.
|
|
62
|
+
};
|
|
63
|
+
if (isTokenExpired(credentials.token)) {
|
|
64
|
+
logger.error("Error: Login expired. Please log in again with 'npx dbos-cloud login'");
|
|
65
|
+
process.exit(1);
|
|
66
|
+
}
|
|
67
|
+
return credentials;
|
|
68
|
+
}
|
|
69
|
+
export function credentialsExist() {
|
|
70
|
+
return fs.existsSync(`./${dbosEnvPath}/credentials`);
|
|
71
|
+
}
|
|
72
|
+
export function deleteCredentials() {
|
|
73
|
+
fs.unlinkSync(`./${dbosEnvPath}/credentials`);
|
|
74
|
+
}
|
|
75
|
+
export function writeCredentials(credentials) {
|
|
76
|
+
execSync(`mkdir -p ${dbosEnvPath}`);
|
|
77
|
+
fs.writeFileSync(`${dbosEnvPath}/credentials`, JSON.stringify(credentials), "utf-8");
|
|
78
|
+
}
|
|
79
|
+
// Run a command, streaming its output to stdout
|
|
80
|
+
export function runCommand(command, args = []) {
|
|
81
|
+
return new Promise((resolve, reject) => {
|
|
82
|
+
const stdio = 'inherit';
|
|
83
|
+
const process = spawn(command, args, { stdio });
|
|
84
|
+
process.on('close', (code) => {
|
|
85
|
+
if (code === 0) {
|
|
86
|
+
resolve(code);
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
reject(new Error(`Command "${command}" exited with code ${code}`));
|
|
90
|
+
}
|
|
91
|
+
});
|
|
92
|
+
process.on('error', (error) => {
|
|
93
|
+
reject(error);
|
|
94
|
+
});
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
export function checkReadFile(path, encoding = "utf8") {
|
|
98
|
+
// First, check the file
|
|
99
|
+
fs.stat(path, (error, stats) => {
|
|
100
|
+
if (error) {
|
|
101
|
+
throw new Error(`checking on ${path}. ${error.code}: ${error.errno}`);
|
|
102
|
+
}
|
|
103
|
+
else if (!stats.isFile()) {
|
|
104
|
+
throw new Error(`config file ${path} is not a file`);
|
|
105
|
+
}
|
|
106
|
+
});
|
|
107
|
+
// Then, read its content
|
|
108
|
+
const fileContent = fs.readFileSync(path, { encoding });
|
|
109
|
+
return fileContent;
|
|
110
|
+
}
|
|
111
|
+
export const sleep = (ms) => new Promise((r) => setTimeout(r, ms));
|
|
112
|
+
export function createDirectory(path) {
|
|
113
|
+
return fs.mkdirSync(path, { recursive: true });
|
|
114
|
+
}
|
|
115
|
+
export function isCloudAPIErrorResponse(obj) {
|
|
116
|
+
return typeof obj === 'object' && obj !== null &&
|
|
117
|
+
'message' in obj && typeof obj['message'] === 'string' &&
|
|
118
|
+
'statusCode' in obj && typeof obj['statusCode'] === 'number' &&
|
|
119
|
+
'requestID' in obj && typeof obj['requestID'] === 'string';
|
|
120
|
+
}
|
|
121
|
+
export function handleAPIErrors(label, e) {
|
|
122
|
+
const logger = getLogger();
|
|
123
|
+
const resp = e.response?.data;
|
|
124
|
+
logger.error(`[${resp.requestID}] ${label}: ${resp.message}.`);
|
|
125
|
+
}
|
|
126
|
+
//# sourceMappingURL=cloudutils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cloudutils.js","sourceRoot":"","sources":["../cloudutils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dashboards.d.ts","sourceRoot":"","sources":["../dashboards.ts"],"names":[],"mappings":"AAGA,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAyBnE;AAED,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAwBnE"}
|
|
@@ -1,55 +1,55 @@
|
|
|
1
|
-
import axios
|
|
2
|
-
import { getLogger, getCloudCredentials, isCloudAPIErrorResponse, handleAPIErrors } from "./cloudutils";
|
|
3
|
-
|
|
4
|
-
export async function launchDashboard(host: string): Promise<number> {
|
|
1
|
+
import axios from "axios";
|
|
2
|
+
import { getLogger, getCloudCredentials, isCloudAPIErrorResponse, handleAPIErrors } from "./cloudutils.js";
|
|
3
|
+
export async function launchDashboard(host) {
|
|
5
4
|
const logger = getLogger();
|
|
6
5
|
const userCredentials = getCloudCredentials();
|
|
7
6
|
const bearerToken = "Bearer " + userCredentials.token;
|
|
8
|
-
try{
|
|
9
|
-
const res = await axios.put(`https://${host}/v1alpha1/${userCredentials.userName}/dashboard`,
|
|
10
|
-
{},
|
|
11
|
-
{
|
|
7
|
+
try {
|
|
8
|
+
const res = await axios.put(`https://${host}/v1alpha1/${userCredentials.userName}/dashboard`, {}, {
|
|
12
9
|
headers: {
|
|
13
10
|
"Content-Type": "application/json",
|
|
14
11
|
Authorization: bearerToken,
|
|
15
12
|
}
|
|
16
13
|
});
|
|
17
|
-
logger.info(`Dashboard ready at ${res.data}`)
|
|
18
|
-
return 0
|
|
19
|
-
}
|
|
14
|
+
logger.info(`Dashboard ready at ${res.data}`);
|
|
15
|
+
return 0;
|
|
16
|
+
}
|
|
17
|
+
catch (e) {
|
|
20
18
|
const errorLabel = `Failed to initialize dashboard`;
|
|
21
|
-
const axiosError = e
|
|
19
|
+
const axiosError = e;
|
|
22
20
|
if (isCloudAPIErrorResponse(axiosError.response?.data)) {
|
|
23
21
|
handleAPIErrors(errorLabel, axiosError);
|
|
24
|
-
}
|
|
25
|
-
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
logger.error(`${errorLabel}: ${e.message}`);
|
|
26
25
|
}
|
|
27
26
|
}
|
|
28
27
|
return 1;
|
|
29
28
|
}
|
|
30
|
-
|
|
31
|
-
export async function getDashboardURL(host: string): Promise<number> {
|
|
29
|
+
export async function getDashboardURL(host) {
|
|
32
30
|
const logger = getLogger();
|
|
33
31
|
const userCredentials = getCloudCredentials();
|
|
34
32
|
const bearerToken = "Bearer " + userCredentials.token;
|
|
35
33
|
try {
|
|
36
|
-
const res = await axios.get(`https://${host}/v1alpha1/${userCredentials.userName}/dashboard`,
|
|
37
|
-
{
|
|
34
|
+
const res = await axios.get(`https://${host}/v1alpha1/${userCredentials.userName}/dashboard`, {
|
|
38
35
|
headers: {
|
|
39
36
|
"Content-Type": "application/json",
|
|
40
37
|
Authorization: bearerToken,
|
|
41
38
|
}
|
|
42
39
|
});
|
|
43
|
-
logger.info(`Dashboard URL is ${res.data}`)
|
|
44
|
-
return 0
|
|
45
|
-
}
|
|
40
|
+
logger.info(`Dashboard URL is ${res.data}`);
|
|
41
|
+
return 0;
|
|
42
|
+
}
|
|
43
|
+
catch (e) {
|
|
46
44
|
const errorLabel = `Failed to retrieve URL`;
|
|
47
|
-
const axiosError = e
|
|
45
|
+
const axiosError = e;
|
|
48
46
|
if (isCloudAPIErrorResponse(axiosError.response?.data)) {
|
|
49
47
|
handleAPIErrors(errorLabel, axiosError);
|
|
50
|
-
}
|
|
51
|
-
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
logger.error(`${errorLabel}: ${e.message}`);
|
|
52
51
|
}
|
|
53
52
|
}
|
|
54
53
|
return 1;
|
|
55
54
|
}
|
|
55
|
+
//# sourceMappingURL=dashboards.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dashboards.js","sourceRoot":"","sources":["../dashboards.ts"],"names":[],"mappings":"AAAA,OAAO,KAAqB,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAE3G,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,IAAY;IAC9C,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,eAAe,GAAG,mBAAmB,EAAE,CAAC;IAC9C,MAAM,WAAW,GAAG,SAAS,GAAG,eAAe,CAAC,KAAK,CAAC;IACtD,IAAG,CAAC;QACA,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,WAAW,IAAI,aAAa,eAAe,CAAC,QAAQ,YAAY,EAC5F,EAAE,EACF;YACI,OAAO,EAAE;gBACL,cAAc,EAAE,kBAAkB;gBAClC,aAAa,EAAE,WAAW;aAC7B;SACJ,CAAC,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,sBAAsB,GAAG,CAAC,IAAI,EAAE,CAAC,CAAA;QAC7C,OAAO,CAAC,CAAA;IACZ,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACT,MAAM,UAAU,GAAG,gCAAgC,CAAC;QACpD,MAAM,UAAU,GAAG,CAAe,CAAC;QACnC,IAAI,uBAAuB,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC;YACrD,eAAe,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;QAC5C,CAAC;aAAM,CAAC;YACJ,MAAM,CAAC,KAAK,CAAC,GAAG,UAAU,KAAM,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;QAC3D,CAAC;IACL,CAAC;IACD,OAAO,CAAC,CAAC;AACb,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,IAAY;IAC9C,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,eAAe,GAAG,mBAAmB,EAAE,CAAC;IAC9C,MAAM,WAAW,GAAG,SAAS,GAAG,eAAe,CAAC,KAAK,CAAC;IACtD,IAAI,CAAC;QACD,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,WAAW,IAAI,aAAa,eAAe,CAAC,QAAQ,YAAY,EAC5F;YACI,OAAO,EAAE;gBACL,cAAc,EAAE,kBAAkB;gBAClC,aAAa,EAAE,WAAW;aAC7B;SACJ,CAAC,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,oBAAoB,GAAG,CAAC,IAAI,EAAE,CAAC,CAAA;QAC3C,OAAO,CAAC,CAAA;IACZ,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACT,MAAM,UAAU,GAAG,wBAAwB,CAAC;QAC5C,MAAM,UAAU,GAAG,CAAe,CAAC;QACnC,IAAI,uBAAuB,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC;YACrD,eAAe,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;QAC5C,CAAC;aAAM,CAAC;YACJ,MAAM,CAAC,KAAK,CAAC,GAAG,UAAU,KAAM,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;QAC3D,CAAC;IACL,CAAC;IACD,OAAO,CAAC,CAAC;AACb,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../login.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAqDjC,wBAAsB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA2DzE;AAED,wBAAsB,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAmCzD"}
|
|
@@ -1,19 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.login = exports.authenticate = void 0;
|
|
7
|
-
const axios_1 = __importDefault(require("axios"));
|
|
8
|
-
const jsonwebtoken_1 = __importDefault(require("jsonwebtoken"));
|
|
9
|
-
const jwks_rsa_1 = __importDefault(require("jwks-rsa"));
|
|
10
|
-
const cloudutils_1 = require("./cloudutils");
|
|
1
|
+
import axios from "axios";
|
|
2
|
+
import jwt from 'jsonwebtoken';
|
|
3
|
+
import jwksClient from 'jwks-rsa';
|
|
4
|
+
import { getLogger, handleAPIErrors, isCloudAPIErrorResponse, sleep, writeCredentials } from "./cloudutils.js";
|
|
11
5
|
const DBOSCloudHost = process.env.DBOS_DOMAIN || "cloud.dbos.dev";
|
|
12
6
|
const productionEnvironment = DBOSCloudHost === "cloud.dbos.dev";
|
|
13
7
|
const Auth0Domain = productionEnvironment ? 'login.dbos.dev' : 'dbos-inc.us.auth0.com';
|
|
14
8
|
const DBOSClientID = productionEnvironment ? '6p7Sjxf13cyLMkdwn14MxlH7JdhILled' : 'G38fLmVErczEo9ioCFjVIHea6yd0qMZu';
|
|
15
9
|
const DBOSCloudIdentifier = 'dbos-cloud-api';
|
|
16
|
-
const client = (
|
|
10
|
+
const client = jwksClient({
|
|
17
11
|
jwksUri: `https://${Auth0Domain}/.well-known/jwks.json`
|
|
18
12
|
});
|
|
19
13
|
async function getSigningKey(kid) {
|
|
@@ -21,13 +15,13 @@ async function getSigningKey(kid) {
|
|
|
21
15
|
return key.getPublicKey();
|
|
22
16
|
}
|
|
23
17
|
async function verifyToken(token) {
|
|
24
|
-
const decoded =
|
|
18
|
+
const decoded = jwt.decode(token, { complete: true });
|
|
25
19
|
if (!decoded || typeof decoded === 'string' || !decoded.header.kid) {
|
|
26
20
|
throw new Error('Invalid token');
|
|
27
21
|
}
|
|
28
22
|
const signingKey = await getSigningKey(decoded.header.kid);
|
|
29
23
|
return new Promise((resolve, reject) => {
|
|
30
|
-
|
|
24
|
+
jwt.verify(token, signingKey, { algorithms: ['RS256'] }, (err, verifiedToken) => {
|
|
31
25
|
if (err) {
|
|
32
26
|
reject(err);
|
|
33
27
|
}
|
|
@@ -38,7 +32,7 @@ async function verifyToken(token) {
|
|
|
38
32
|
});
|
|
39
33
|
}
|
|
40
34
|
// Redirect a user to auth0 to authenticate, retrieving a JWT bearer token
|
|
41
|
-
async function authenticate(logger) {
|
|
35
|
+
export async function authenticate(logger) {
|
|
42
36
|
logger.info(`Please authenticate with DBOS Cloud!`);
|
|
43
37
|
const deviceCodeRequest = {
|
|
44
38
|
method: 'POST',
|
|
@@ -48,7 +42,7 @@ async function authenticate(logger) {
|
|
|
48
42
|
};
|
|
49
43
|
let deviceCodeResponse;
|
|
50
44
|
try {
|
|
51
|
-
const response = await
|
|
45
|
+
const response = await axios.request(deviceCodeRequest);
|
|
52
46
|
deviceCodeResponse = response.data;
|
|
53
47
|
}
|
|
54
48
|
catch (e) {
|
|
@@ -58,7 +52,14 @@ async function authenticate(logger) {
|
|
|
58
52
|
if (!deviceCodeResponse) {
|
|
59
53
|
return null;
|
|
60
54
|
}
|
|
61
|
-
|
|
55
|
+
const loginURL = deviceCodeResponse.verification_uri_complete;
|
|
56
|
+
// TODO: Reenable after patching extension compatibility
|
|
57
|
+
// try {
|
|
58
|
+
// await open(loginURL)
|
|
59
|
+
// } catch (error) {
|
|
60
|
+
// // Ignore errors from open
|
|
61
|
+
// }
|
|
62
|
+
console.log(`Login URL: ${loginURL}`);
|
|
62
63
|
const tokenRequest = {
|
|
63
64
|
method: 'POST',
|
|
64
65
|
url: `https://${Auth0Domain}/oauth/token`,
|
|
@@ -73,9 +74,9 @@ async function authenticate(logger) {
|
|
|
73
74
|
let elapsedTimeSec = 0;
|
|
74
75
|
while (elapsedTimeSec < deviceCodeResponse.expires_in) {
|
|
75
76
|
try {
|
|
76
|
-
await
|
|
77
|
+
await sleep(deviceCodeResponse.interval * 1000);
|
|
77
78
|
elapsedTimeSec += deviceCodeResponse.interval;
|
|
78
|
-
const response = await
|
|
79
|
+
const response = await axios.request(tokenRequest);
|
|
79
80
|
tokenResponse = response.data;
|
|
80
81
|
break;
|
|
81
82
|
}
|
|
@@ -89,16 +90,15 @@ async function authenticate(logger) {
|
|
|
89
90
|
await verifyToken(tokenResponse.access_token);
|
|
90
91
|
return tokenResponse.access_token;
|
|
91
92
|
}
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
const logger = (0, cloudutils_1.getLogger)();
|
|
93
|
+
export async function login(host) {
|
|
94
|
+
const logger = getLogger();
|
|
95
95
|
const token = await authenticate(logger);
|
|
96
96
|
if (token === null) {
|
|
97
97
|
return 1;
|
|
98
98
|
}
|
|
99
99
|
const bearerToken = "Bearer " + token;
|
|
100
100
|
try {
|
|
101
|
-
const response = await
|
|
101
|
+
const response = await axios.get(`https://${host}/v1alpha1/user`, {
|
|
102
102
|
headers: {
|
|
103
103
|
"Content-Type": "application/json",
|
|
104
104
|
Authorization: bearerToken,
|
|
@@ -109,14 +109,14 @@ async function login(host) {
|
|
|
109
109
|
token: token,
|
|
110
110
|
userName: username,
|
|
111
111
|
};
|
|
112
|
-
|
|
112
|
+
writeCredentials(credentials);
|
|
113
113
|
logger.info(`Successfully logged in as ${credentials.userName}!`);
|
|
114
114
|
}
|
|
115
115
|
catch (e) {
|
|
116
116
|
const errorLabel = `Failed to login`;
|
|
117
117
|
const axiosError = e;
|
|
118
|
-
if (
|
|
119
|
-
|
|
118
|
+
if (isCloudAPIErrorResponse(axiosError.response?.data)) {
|
|
119
|
+
handleAPIErrors(errorLabel, axiosError);
|
|
120
120
|
}
|
|
121
121
|
else {
|
|
122
122
|
logger.error(`${errorLabel}: ${e.message}`);
|
|
@@ -125,5 +125,4 @@ async function login(host) {
|
|
|
125
125
|
}
|
|
126
126
|
return 0;
|
|
127
127
|
}
|
|
128
|
-
exports.login = login;
|
|
129
128
|
//# sourceMappingURL=login.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"login.js","sourceRoot":"","sources":["../login.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../register.ts"],"names":[],"mappings":"AAkBA,wBAAsB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAsElF"}
|