@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,43 +0,0 @@
|
|
|
1
|
-
import axios, { AxiosError } from "axios";
|
|
2
|
-
import { handleAPIErrors, getCloudCredentials, getLogger, isCloudAPIErrorResponse, retrieveApplicationName } from "../cloudutils";
|
|
3
|
-
|
|
4
|
-
export async function registerApp(dbname: string, host: string): Promise<number> {
|
|
5
|
-
const logger = getLogger();
|
|
6
|
-
const userCredentials = getCloudCredentials();
|
|
7
|
-
const bearerToken = "Bearer " + userCredentials.token;
|
|
8
|
-
|
|
9
|
-
const appName = retrieveApplicationName(logger);
|
|
10
|
-
if (!appName) {
|
|
11
|
-
return 1;
|
|
12
|
-
}
|
|
13
|
-
logger.info(`Registering application: ${appName}`)
|
|
14
|
-
|
|
15
|
-
try {
|
|
16
|
-
const register = await axios.put(
|
|
17
|
-
`https://${host}/v1alpha1/${userCredentials.userName}/applications`,
|
|
18
|
-
{
|
|
19
|
-
name: appName,
|
|
20
|
-
database: dbname,
|
|
21
|
-
},
|
|
22
|
-
{
|
|
23
|
-
headers: {
|
|
24
|
-
"Content-Type": "application/json",
|
|
25
|
-
Authorization: bearerToken,
|
|
26
|
-
},
|
|
27
|
-
}
|
|
28
|
-
);
|
|
29
|
-
const uuid = register.data as string;
|
|
30
|
-
logger.info(`${appName} ID: ${uuid}`);
|
|
31
|
-
logger.info(`Successfully registered ${appName}!`);
|
|
32
|
-
return 0;
|
|
33
|
-
} catch (e) {
|
|
34
|
-
const errorLabel = `Failed to register application ${appName}`;
|
|
35
|
-
const axiosError = e as AxiosError;
|
|
36
|
-
if (isCloudAPIErrorResponse(axiosError.response?.data)) {
|
|
37
|
-
handleAPIErrors(errorLabel, axiosError);
|
|
38
|
-
} else {
|
|
39
|
-
logger.error(`${errorLabel}: ${(e as Error).message}`);
|
|
40
|
-
}
|
|
41
|
-
return 1;
|
|
42
|
-
}
|
|
43
|
-
}
|
package/applications/types.ts
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
export type Application = {
|
|
2
|
-
Name: string;
|
|
3
|
-
ID: string;
|
|
4
|
-
PostgresInstanceName: string;
|
|
5
|
-
ApplicationDatabaseName: string;
|
|
6
|
-
Status: string;
|
|
7
|
-
Version: string;
|
|
8
|
-
AppURL: string;
|
|
9
|
-
};
|
|
10
|
-
|
|
11
|
-
export function prettyPrintApplication(app: Application) {
|
|
12
|
-
console.log(`Application Name: ${app.Name}`);
|
|
13
|
-
console.log(`ID: ${app.ID}`);
|
|
14
|
-
console.log(`Postgres Instance Name: ${app.PostgresInstanceName}`);
|
|
15
|
-
console.log(`Application Database Name: ${app.ApplicationDatabaseName}`);
|
|
16
|
-
console.log(`Status: ${app.Status}`);
|
|
17
|
-
console.log(`Version: ${app.Version}`);
|
|
18
|
-
console.log(`App URL: ${app.AppURL}`);
|
|
19
|
-
}
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import axios, { AxiosError } from "axios";
|
|
2
|
-
import { getCloudCredentials, getLogger, handleAPIErrors, isCloudAPIErrorResponse, retrieveApplicationName } from "../cloudutils";
|
|
3
|
-
import { Application } from "./types";
|
|
4
|
-
|
|
5
|
-
export async function updateApp(host: string): Promise<number> {
|
|
6
|
-
const logger = getLogger();
|
|
7
|
-
const userCredentials = getCloudCredentials();
|
|
8
|
-
const bearerToken = "Bearer " + userCredentials.token;
|
|
9
|
-
|
|
10
|
-
const appName = retrieveApplicationName(logger);
|
|
11
|
-
if (!appName) {
|
|
12
|
-
return 1;
|
|
13
|
-
}
|
|
14
|
-
logger.info(`Updating application: ${appName}`)
|
|
15
|
-
|
|
16
|
-
try {
|
|
17
|
-
logger.info(`Updating application ${appName}`);
|
|
18
|
-
const update = await axios.patch(
|
|
19
|
-
`https://${host}/v1alpha1/${userCredentials.userName}/applications/${appName}`,
|
|
20
|
-
{
|
|
21
|
-
name: appName,
|
|
22
|
-
},
|
|
23
|
-
{
|
|
24
|
-
headers: {
|
|
25
|
-
"Content-Type": "application/json",
|
|
26
|
-
Authorization: bearerToken,
|
|
27
|
-
},
|
|
28
|
-
}
|
|
29
|
-
);
|
|
30
|
-
const application: Application = update.data as Application;
|
|
31
|
-
logger.info(`Successfully updated: ${application.Name}`);
|
|
32
|
-
return 0;
|
|
33
|
-
} catch (e) {
|
|
34
|
-
const errorLabel = "Failed to update application";
|
|
35
|
-
const axiosError = e as AxiosError;
|
|
36
|
-
if (isCloudAPIErrorResponse(axiosError.response?.data)) {
|
|
37
|
-
handleAPIErrors(errorLabel, axiosError);
|
|
38
|
-
} else {
|
|
39
|
-
logger.error(`${errorLabel}: ${(e as Error).message}`);
|
|
40
|
-
}
|
|
41
|
-
return 1;
|
|
42
|
-
}
|
|
43
|
-
}
|
package/cli.ts
DELETED
|
@@ -1,225 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
import {
|
|
4
|
-
registerApp,
|
|
5
|
-
updateApp,
|
|
6
|
-
listApps,
|
|
7
|
-
deleteApp,
|
|
8
|
-
deployAppCode,
|
|
9
|
-
getAppLogs,
|
|
10
|
-
} from "./applications";
|
|
11
|
-
import { Command } from 'commander';
|
|
12
|
-
import { login } from "./login";
|
|
13
|
-
import { registerUser } from "./register";
|
|
14
|
-
import { createUserDb, getUserDb, deleteUserDb, listUserDB, resetDBCredentials } from "./userdb";
|
|
15
|
-
import { launchDashboard, getDashboardURL } from "./dashboards";
|
|
16
|
-
import { DBOSCloudHost, credentialsExist, deleteCredentials } from "./cloudutils";
|
|
17
|
-
import { getAppInfo } from "./applications/get-app-info";
|
|
18
|
-
import promptSync from 'prompt-sync';
|
|
19
|
-
|
|
20
|
-
const program = new Command();
|
|
21
|
-
|
|
22
|
-
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
23
|
-
const packageJson = require('../../../package.json') as { version: string };
|
|
24
|
-
program.version(packageJson.version);
|
|
25
|
-
|
|
26
|
-
/////////////////////
|
|
27
|
-
/* AUTHENTICATION */
|
|
28
|
-
/////////////////////
|
|
29
|
-
|
|
30
|
-
program
|
|
31
|
-
.command('login')
|
|
32
|
-
.description('Log in to DBOS cloud')
|
|
33
|
-
.action(async () => {
|
|
34
|
-
const exitCode = await login(DBOSCloudHost);
|
|
35
|
-
process.exit(exitCode);
|
|
36
|
-
});
|
|
37
|
-
|
|
38
|
-
program
|
|
39
|
-
.command('register')
|
|
40
|
-
.description('Register a user with DBOS cloud')
|
|
41
|
-
.requiredOption('-u, --username <string>', 'Username')
|
|
42
|
-
.action(async (options: { username: string}) => {
|
|
43
|
-
const exitCode = await registerUser(options.username, DBOSCloudHost);
|
|
44
|
-
process.exit(exitCode);
|
|
45
|
-
});
|
|
46
|
-
|
|
47
|
-
program
|
|
48
|
-
.command('logout')
|
|
49
|
-
.description('Log out of DBOS cloud')
|
|
50
|
-
.action(() => {
|
|
51
|
-
if (credentialsExist()) {
|
|
52
|
-
deleteCredentials();
|
|
53
|
-
}
|
|
54
|
-
process.exit(0);
|
|
55
|
-
});
|
|
56
|
-
|
|
57
|
-
/////////////////////////////
|
|
58
|
-
/* APPLICATIONS MANAGEMENT */
|
|
59
|
-
/////////////////////////////
|
|
60
|
-
|
|
61
|
-
const applicationCommands = program
|
|
62
|
-
.command('application')
|
|
63
|
-
.alias('applications')
|
|
64
|
-
.alias('app')
|
|
65
|
-
.alias('apps')
|
|
66
|
-
.description('Manage your DBOS applications')
|
|
67
|
-
|
|
68
|
-
applicationCommands
|
|
69
|
-
.command('register')
|
|
70
|
-
.description('Register this application')
|
|
71
|
-
.requiredOption('-d, --database <string>', 'Specify a Postgres database instance for this application')
|
|
72
|
-
.action(async (options: { database: string }) => {
|
|
73
|
-
const exitCode = await registerApp(options.database, DBOSCloudHost);
|
|
74
|
-
process.exit(exitCode);
|
|
75
|
-
});
|
|
76
|
-
|
|
77
|
-
applicationCommands
|
|
78
|
-
.command('update')
|
|
79
|
-
.description('Update this application')
|
|
80
|
-
.action(async () => {
|
|
81
|
-
const exitCode = await updateApp(DBOSCloudHost);
|
|
82
|
-
process.exit(exitCode);
|
|
83
|
-
});
|
|
84
|
-
|
|
85
|
-
applicationCommands
|
|
86
|
-
.command('deploy')
|
|
87
|
-
.description('Deploy this application to the cloud')
|
|
88
|
-
.action(async () => {
|
|
89
|
-
const exitCode = await deployAppCode(DBOSCloudHost);
|
|
90
|
-
process.exit(exitCode);
|
|
91
|
-
});
|
|
92
|
-
|
|
93
|
-
applicationCommands
|
|
94
|
-
.command('delete')
|
|
95
|
-
.description('Delete this application')
|
|
96
|
-
.argument('[string]', 'application name')
|
|
97
|
-
.action(async (appName?: string) => {
|
|
98
|
-
const exitCode = await deleteApp(DBOSCloudHost, appName);
|
|
99
|
-
process.exit(exitCode);
|
|
100
|
-
});
|
|
101
|
-
|
|
102
|
-
applicationCommands
|
|
103
|
-
.command('list')
|
|
104
|
-
.description('List all applications')
|
|
105
|
-
.option('--json', 'Emit JSON output')
|
|
106
|
-
.action(async (options: { json: boolean }) => {
|
|
107
|
-
const exitCode = await listApps(DBOSCloudHost, options.json);
|
|
108
|
-
process.exit(exitCode);
|
|
109
|
-
});
|
|
110
|
-
|
|
111
|
-
applicationCommands
|
|
112
|
-
.command('status')
|
|
113
|
-
.description("Retrieve this application's status")
|
|
114
|
-
.argument('[string]', 'application name')
|
|
115
|
-
.option('--json', 'Emit JSON output')
|
|
116
|
-
.action(async (appName: string | undefined, options: { json: boolean }) => {
|
|
117
|
-
const exitCode = await getAppInfo(DBOSCloudHost, options.json, appName);
|
|
118
|
-
process.exit(exitCode);
|
|
119
|
-
});
|
|
120
|
-
|
|
121
|
-
applicationCommands
|
|
122
|
-
.command('logs')
|
|
123
|
-
.description("Print this application's logs")
|
|
124
|
-
.option('-l, --last <integer>', 'How far back to query, in seconds from current time. By default, we retrieve all data', parseInt)
|
|
125
|
-
.action(async (options: { last: number}) => {
|
|
126
|
-
const exitCode = await getAppLogs(DBOSCloudHost, options.last);
|
|
127
|
-
process.exit(exitCode);
|
|
128
|
-
});
|
|
129
|
-
|
|
130
|
-
//////////////////////////////////
|
|
131
|
-
/* DATABASE INSTANCE MANAGEMENT */
|
|
132
|
-
//////////////////////////////////
|
|
133
|
-
|
|
134
|
-
const databaseCommands = program
|
|
135
|
-
.command('database')
|
|
136
|
-
.alias('databases')
|
|
137
|
-
.alias('db')
|
|
138
|
-
.description('Manage Postgres database instances')
|
|
139
|
-
|
|
140
|
-
const prompt = promptSync({ sigint: true });
|
|
141
|
-
databaseCommands
|
|
142
|
-
.command('provision')
|
|
143
|
-
.description("Provision a Postgres database instance")
|
|
144
|
-
.argument('<name>', 'database instance name')
|
|
145
|
-
.requiredOption('-U, --username <string>', 'Specify your database username')
|
|
146
|
-
.option('-W, --password <string>', 'Specify your database user password')
|
|
147
|
-
.action((async (dbname: string, options: { username: string, password: string | undefined }) => {
|
|
148
|
-
if (!options.password) {
|
|
149
|
-
options.password = prompt('Database Password: ', { echo: '*' });
|
|
150
|
-
}
|
|
151
|
-
const exitCode = await createUserDb(DBOSCloudHost, dbname, options.username, options.password, true)
|
|
152
|
-
process.exit(exitCode);
|
|
153
|
-
}))
|
|
154
|
-
|
|
155
|
-
databaseCommands
|
|
156
|
-
.command('status')
|
|
157
|
-
.description("Retrieve the status of a Postgres database instance")
|
|
158
|
-
.argument('<name>', 'database instance name')
|
|
159
|
-
.option('--json', 'Emit JSON output')
|
|
160
|
-
.action((async (dbname: string, options: { json: boolean}) => {
|
|
161
|
-
const exitCode = await getUserDb(DBOSCloudHost, dbname, options.json)
|
|
162
|
-
process.exit(exitCode);
|
|
163
|
-
}))
|
|
164
|
-
|
|
165
|
-
databaseCommands
|
|
166
|
-
.command('list')
|
|
167
|
-
.description("List all your Postgres database instances")
|
|
168
|
-
.option('--json', 'Emit JSON output')
|
|
169
|
-
.action((async (options: { json: boolean}) => {
|
|
170
|
-
const exitCode = await listUserDB(DBOSCloudHost, options.json)
|
|
171
|
-
process.exit(exitCode);
|
|
172
|
-
}))
|
|
173
|
-
|
|
174
|
-
databaseCommands
|
|
175
|
-
.command('reset-password')
|
|
176
|
-
.description("Reset password for a Postgres database instance")
|
|
177
|
-
.argument('<name>', 'database instance name')
|
|
178
|
-
.option('-W, --password <string>', 'Specify the database user password')
|
|
179
|
-
.action((async (dbName: string, options: { password: string}) => {
|
|
180
|
-
if (!options.password) {
|
|
181
|
-
options.password = prompt('Database Password: ', { echo: '*' });
|
|
182
|
-
}
|
|
183
|
-
const exitCode = await resetDBCredentials(DBOSCloudHost, dbName, options.password)
|
|
184
|
-
process.exit(exitCode);
|
|
185
|
-
}))
|
|
186
|
-
|
|
187
|
-
databaseCommands
|
|
188
|
-
.command('destroy')
|
|
189
|
-
.description("Destroy a Postgres database instance")
|
|
190
|
-
.argument('<name>', 'database instance name')
|
|
191
|
-
.action((async (dbname: string) => {
|
|
192
|
-
const exitCode = await deleteUserDb(DBOSCloudHost, dbname)
|
|
193
|
-
process.exit(exitCode);
|
|
194
|
-
}))
|
|
195
|
-
|
|
196
|
-
/////////////////////
|
|
197
|
-
/* USER DASHBOARDS */
|
|
198
|
-
/////////////////////
|
|
199
|
-
|
|
200
|
-
const dashboardCommands = program
|
|
201
|
-
.command('dashboard')
|
|
202
|
-
.description('Manage Monitoring Dashboards')
|
|
203
|
-
|
|
204
|
-
dashboardCommands
|
|
205
|
-
.command('launch')
|
|
206
|
-
.description('Deploy the Monitoring Dashboard')
|
|
207
|
-
.action(async () => {
|
|
208
|
-
const exitCode = await launchDashboard(DBOSCloudHost);
|
|
209
|
-
process.exit(exitCode);
|
|
210
|
-
});
|
|
211
|
-
|
|
212
|
-
dashboardCommands
|
|
213
|
-
.command('url')
|
|
214
|
-
.description('Get the URL of your Monitoring Dashboard')
|
|
215
|
-
.action(async () => {
|
|
216
|
-
const exitCode = await getDashboardURL(DBOSCloudHost);
|
|
217
|
-
process.exit(exitCode);
|
|
218
|
-
});
|
|
219
|
-
|
|
220
|
-
program.parse(process.argv);
|
|
221
|
-
|
|
222
|
-
// If no arguments provided, display help by default
|
|
223
|
-
if (!process.argv.slice(2).length) {
|
|
224
|
-
program.outputHelp();
|
|
225
|
-
}
|
package/cloudutils.ts
DELETED
|
@@ -1,166 +0,0 @@
|
|
|
1
|
-
import TransportStream = require("winston-transport");
|
|
2
|
-
import { execSync, spawn, StdioOptions } from 'child_process';
|
|
3
|
-
import { transports, createLogger, format, Logger } from "winston";
|
|
4
|
-
import fs from "fs";
|
|
5
|
-
import { AxiosError } from "axios";
|
|
6
|
-
import jwt from 'jsonwebtoken';
|
|
7
|
-
import path from "node:path";
|
|
8
|
-
|
|
9
|
-
export interface DBOSCloudCredentials {
|
|
10
|
-
token: string;
|
|
11
|
-
userName: string;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
export const dbosConfigFilePath = "dbos-config.yaml";
|
|
15
|
-
export const DBOSCloudHost = process.env.DBOS_DOMAIN || "cloud.dbos.dev";
|
|
16
|
-
export const dbosEnvPath = ".dbos";
|
|
17
|
-
|
|
18
|
-
export function retrieveApplicationName(logger: Logger, silent: boolean = false): string | undefined {
|
|
19
|
-
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
20
|
-
const packageJson = require(path.join(process.cwd(), 'package.json')) as { name: string };
|
|
21
|
-
const appName = packageJson.name;
|
|
22
|
-
if (appName === undefined) {
|
|
23
|
-
logger.error("Error: cannot find a valid package.json file. Please run this command in an application root directory.")
|
|
24
|
-
return undefined;
|
|
25
|
-
}
|
|
26
|
-
if (!silent) {
|
|
27
|
-
logger.info(`Loaded application name from package.json: ${appName}`)
|
|
28
|
-
}
|
|
29
|
-
return appName
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
// FIXME: we should have a global instance of the logger created in cli.ts
|
|
33
|
-
export function getLogger(): Logger {
|
|
34
|
-
const winstonTransports: TransportStream[] = [];
|
|
35
|
-
winstonTransports.push(
|
|
36
|
-
new transports.Console({
|
|
37
|
-
format: consoleFormat,
|
|
38
|
-
level: "info",
|
|
39
|
-
})
|
|
40
|
-
);
|
|
41
|
-
return createLogger({ transports: winstonTransports });
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
const consoleFormat = format.combine(
|
|
45
|
-
format.errors({ stack: true }),
|
|
46
|
-
format.timestamp(),
|
|
47
|
-
format.colorize(),
|
|
48
|
-
format.printf((info) => {
|
|
49
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
50
|
-
const { timestamp, level, message, stack } = info;
|
|
51
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-assignment
|
|
52
|
-
const ts = timestamp.slice(0, 19).replace("T", " ");
|
|
53
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-assignment
|
|
54
|
-
const formattedStack = stack?.split("\n").slice(1).join("\n");
|
|
55
|
-
|
|
56
|
-
const messageString: string = typeof message === "string" ? message : JSON.stringify(message);
|
|
57
|
-
|
|
58
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
|
|
59
|
-
return `${ts} [${level}]: ${messageString} ${stack ? "\n" + formattedStack : ""}`;
|
|
60
|
-
})
|
|
61
|
-
);
|
|
62
|
-
|
|
63
|
-
function isTokenExpired(token: string): boolean {
|
|
64
|
-
try {
|
|
65
|
-
const { exp } = jwt.decode(token) as jwt.JwtPayload;
|
|
66
|
-
if (!exp) return false;
|
|
67
|
-
return Date.now() >= exp * 1000;
|
|
68
|
-
} catch (error) {
|
|
69
|
-
return true;
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
export function getCloudCredentials(): DBOSCloudCredentials {
|
|
74
|
-
const logger = getLogger();
|
|
75
|
-
if (!credentialsExist()) {
|
|
76
|
-
logger.error("Error: not logged in")
|
|
77
|
-
process.exit(1)
|
|
78
|
-
}
|
|
79
|
-
const userCredentials = JSON.parse(fs.readFileSync(`./${dbosEnvPath}/credentials`).toString("utf-8")) as DBOSCloudCredentials;
|
|
80
|
-
const credentials = {
|
|
81
|
-
userName: userCredentials.userName,
|
|
82
|
-
token: userCredentials.token.replace(/\r|\n/g, ""), // Trim the trailing /r /n.
|
|
83
|
-
};
|
|
84
|
-
if (isTokenExpired(credentials.token)) {
|
|
85
|
-
logger.error("Error: Login expired. Please log in again with 'npx dbos-cloud login'")
|
|
86
|
-
process.exit(1)
|
|
87
|
-
}
|
|
88
|
-
return credentials
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
export function credentialsExist(): boolean {
|
|
92
|
-
return fs.existsSync(`./${dbosEnvPath}/credentials`);
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
export function deleteCredentials() {
|
|
96
|
-
fs.unlinkSync(`./${dbosEnvPath}/credentials`);
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
export function writeCredentials(credentials: DBOSCloudCredentials) {
|
|
100
|
-
execSync(`mkdir -p ${dbosEnvPath}`);
|
|
101
|
-
fs.writeFileSync(`${dbosEnvPath}/credentials`, JSON.stringify(credentials), "utf-8");
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
// Run a command, streaming its output to stdout
|
|
105
|
-
export function runCommand(command: string, args: string[] = []): Promise<number> {
|
|
106
|
-
return new Promise((resolve, reject) => {
|
|
107
|
-
const stdio: StdioOptions = 'inherit';
|
|
108
|
-
|
|
109
|
-
const process = spawn(command, args, { stdio });
|
|
110
|
-
|
|
111
|
-
process.on('close', (code) => {
|
|
112
|
-
if (code === 0) {
|
|
113
|
-
resolve(code);
|
|
114
|
-
} else {
|
|
115
|
-
reject(new Error(`Command "${command}" exited with code ${code}`));
|
|
116
|
-
}
|
|
117
|
-
});
|
|
118
|
-
|
|
119
|
-
process.on('error', (error) => {
|
|
120
|
-
reject(error);
|
|
121
|
-
});
|
|
122
|
-
});
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
export function checkReadFile(path: string, encoding: BufferEncoding = "utf8"): string | Buffer {
|
|
126
|
-
// First, check the file
|
|
127
|
-
fs.stat(path, (error: NodeJS.ErrnoException | null, stats: fs.Stats) => {
|
|
128
|
-
if (error) {
|
|
129
|
-
throw new Error(`checking on ${path}. ${error.code}: ${error.errno}`);
|
|
130
|
-
} else if (!stats.isFile()) {
|
|
131
|
-
throw new Error(`config file ${path} is not a file`);
|
|
132
|
-
}
|
|
133
|
-
});
|
|
134
|
-
|
|
135
|
-
// Then, read its content
|
|
136
|
-
const fileContent: string = fs.readFileSync(path, { encoding } );
|
|
137
|
-
return fileContent;
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
export const sleep = (ms: number) => new Promise((r) => setTimeout(r, ms));
|
|
141
|
-
|
|
142
|
-
export type ValuesOf<T> = T[keyof T];
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
export function createDirectory(path: string): string | undefined {
|
|
146
|
-
return fs.mkdirSync(path, { recursive: true });
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
interface CloudAPIErrorResponse {
|
|
150
|
-
message: string,
|
|
151
|
-
statusCode: number,
|
|
152
|
-
requestID: string,
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
export function isCloudAPIErrorResponse(obj: unknown): obj is CloudAPIErrorResponse {
|
|
156
|
-
return typeof obj === 'object' && obj !== null &&
|
|
157
|
-
'message' in obj && typeof obj['message'] === 'string' &&
|
|
158
|
-
'statusCode' in obj && typeof obj['statusCode'] === 'number' &&
|
|
159
|
-
'requestID' in obj && typeof obj['requestID'] === 'string';
|
|
160
|
-
}
|
|
161
|
-
|
|
162
|
-
export function handleAPIErrors(label: string, e: AxiosError) {
|
|
163
|
-
const logger = getLogger();
|
|
164
|
-
const resp: CloudAPIErrorResponse = e.response?.data as CloudAPIErrorResponse;
|
|
165
|
-
logger.error(`[${resp.requestID}] ${label}: ${resp.message}.`);
|
|
166
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"delete-app.d.ts","sourceRoot":"","sources":["../../../../applications/delete-app.ts"],"names":[],"mappings":"AAGA,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CA+B/E"}
|
|
@@ -1,41 +0,0 @@
|
|
|
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.deleteApp = void 0;
|
|
7
|
-
const axios_1 = __importDefault(require("axios"));
|
|
8
|
-
const cloudutils_1 = require("../cloudutils");
|
|
9
|
-
async function deleteApp(host, appName) {
|
|
10
|
-
const logger = (0, cloudutils_1.getLogger)();
|
|
11
|
-
const userCredentials = (0, cloudutils_1.getCloudCredentials)();
|
|
12
|
-
const bearerToken = "Bearer " + userCredentials.token;
|
|
13
|
-
appName = appName ?? (0, cloudutils_1.retrieveApplicationName)(logger);
|
|
14
|
-
if (!appName) {
|
|
15
|
-
return 1;
|
|
16
|
-
}
|
|
17
|
-
logger.info(`Deleting application: ${appName}`);
|
|
18
|
-
try {
|
|
19
|
-
await axios_1.default.delete(`https://${host}/v1alpha1/${userCredentials.userName}/applications/${appName}`, {
|
|
20
|
-
headers: {
|
|
21
|
-
"Content-Type": "application/json",
|
|
22
|
-
Authorization: bearerToken,
|
|
23
|
-
},
|
|
24
|
-
});
|
|
25
|
-
logger.info(`Successfully deleted application: ${appName}`);
|
|
26
|
-
return 0;
|
|
27
|
-
}
|
|
28
|
-
catch (e) {
|
|
29
|
-
const errorLabel = `Failed to delete application ${appName}`;
|
|
30
|
-
const axiosError = e;
|
|
31
|
-
if ((0, cloudutils_1.isCloudAPIErrorResponse)(axiosError.response?.data)) {
|
|
32
|
-
(0, cloudutils_1.handleAPIErrors)(errorLabel, axiosError);
|
|
33
|
-
}
|
|
34
|
-
else {
|
|
35
|
-
logger.error(`${errorLabel}: ${e.message}`);
|
|
36
|
-
}
|
|
37
|
-
return 1;
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
exports.deleteApp = deleteApp;
|
|
41
|
-
//# sourceMappingURL=delete-app.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"delete-app.js","sourceRoot":"","sources":["../../../../applications/delete-app.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0C;AAC1C,8CAAkI;AAE3H,KAAK,UAAU,SAAS,CAAC,IAAY,EAAE,OAAgB;IAC5D,MAAM,MAAM,GAAG,IAAA,sBAAS,GAAE,CAAA;IAC1B,MAAM,eAAe,GAAG,IAAA,gCAAmB,GAAE,CAAC;IAC9C,MAAM,WAAW,GAAG,SAAS,GAAG,eAAe,CAAC,KAAK,CAAC;IAEtD,OAAO,GAAG,OAAO,IAAI,IAAA,oCAAuB,EAAC,MAAM,CAAC,CAAC;IACrD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,CAAC,CAAC;IACX,CAAC;IACD,MAAM,CAAC,IAAI,CAAC,yBAAyB,OAAO,EAAE,CAAC,CAAA;IAE/C,IAAI,CAAC;QACH,MAAM,eAAK,CAAC,MAAM,CAAC,WAAW,IAAI,aAAa,eAAe,CAAC,QAAQ,iBAAiB,OAAO,EAAE,EAAE;YACjG,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,aAAa,EAAE,WAAW;aAC3B;SACF,CAAC,CAAC;QAEH,MAAM,CAAC,IAAI,CAAC,qCAAqC,OAAO,EAAE,CAAC,CAAC;QAC5D,OAAO,CAAC,CAAC;IACX,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,UAAU,GAAG,gCAAgC,OAAO,EAAE,CAAC;QAC7D,MAAM,UAAU,GAAG,CAAe,CAAC;QACnC,IAAI,IAAA,oCAAuB,EAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC;YACvD,IAAA,4BAAe,EAAC,UAAU,EAAE,UAAU,CAAC,CAAC;QAC1C,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,KAAK,CAAC,GAAG,UAAU,KAAM,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;QACzD,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC;AACH,CAAC;AA/BD,8BA+BC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"deploy-app-code.d.ts","sourceRoot":"","sources":["../../../../applications/deploy-app-code.ts"],"names":[],"mappings":"AAkCA,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAmFjE"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"deploy-app-code.js","sourceRoot":"","sources":["../../../../applications/deploy-app-code.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"get-app-info.d.ts","sourceRoot":"","sources":["../../../../applications/get-app-info.ts"],"names":[],"mappings":"AAIA,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAqC/F"}
|
|
@@ -1,50 +0,0 @@
|
|
|
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 types_1 = require("./types");
|
|
10
|
-
async function getAppInfo(host, json, appName) {
|
|
11
|
-
const logger = (0, cloudutils_1.getLogger)();
|
|
12
|
-
const userCredentials = (0, cloudutils_1.getCloudCredentials)();
|
|
13
|
-
const bearerToken = "Bearer " + userCredentials.token;
|
|
14
|
-
appName = appName ?? (0, cloudutils_1.retrieveApplicationName)(logger, json);
|
|
15
|
-
if (!appName) {
|
|
16
|
-
return 1;
|
|
17
|
-
}
|
|
18
|
-
if (!json) {
|
|
19
|
-
logger.info(`Retrieving info for application: ${appName}`);
|
|
20
|
-
}
|
|
21
|
-
try {
|
|
22
|
-
const res = await axios_1.default.get(`https://${host}/v1alpha1/${userCredentials.userName}/applications/${appName}`, {
|
|
23
|
-
headers: {
|
|
24
|
-
"Content-Type": "application/json",
|
|
25
|
-
Authorization: bearerToken,
|
|
26
|
-
}
|
|
27
|
-
});
|
|
28
|
-
const app = res.data;
|
|
29
|
-
if (json) {
|
|
30
|
-
console.log(JSON.stringify(app));
|
|
31
|
-
}
|
|
32
|
-
else {
|
|
33
|
-
(0, types_1.prettyPrintApplication)(app);
|
|
34
|
-
}
|
|
35
|
-
return 0;
|
|
36
|
-
}
|
|
37
|
-
catch (e) {
|
|
38
|
-
const errorLabel = `Failed to retrieve info for application ${appName}`;
|
|
39
|
-
const axiosError = e;
|
|
40
|
-
if ((0, cloudutils_1.isCloudAPIErrorResponse)(axiosError.response?.data)) {
|
|
41
|
-
(0, cloudutils_1.handleAPIErrors)(errorLabel, axiosError);
|
|
42
|
-
}
|
|
43
|
-
else {
|
|
44
|
-
logger.error(`${errorLabel}: ${e.message}`);
|
|
45
|
-
}
|
|
46
|
-
return 1;
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
exports.getAppInfo = getAppInfo;
|
|
50
|
-
//# sourceMappingURL=get-app-info.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"get-app-info.js","sourceRoot":"","sources":["../../../../applications/get-app-info.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA2C;AAC3C,8CAAkI;AAClI,mCAA8D;AAEvD,KAAK,UAAU,UAAU,CAAC,IAAY,EAAE,IAAa,EAAE,OAAgB;IAC5E,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,OAAO,GAAG,OAAO,IAAI,IAAA,oCAAuB,EAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC3D,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,CAAC,CAAC;IACX,CAAC;IACD,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,aAAa,eAAe,CAAC,QAAQ,iBAAiB,OAAO,EAAE,EAAE;YAC1G,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,IAAA,8BAAsB,EAAC,GAAG,CAAC,CAAC;QAC9B,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;AArCD,gCAqCC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"get-app-logs.d.ts","sourceRoot":"","sources":["../../../../applications/get-app-logs.ts"],"names":[],"mappings":"AAGA,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAyC5E"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"get-app-logs.js","sourceRoot":"","sources":["../../../../applications/get-app-logs.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA2C;AAC3C,8CAAkI;AAE3H,KAAK,UAAU,UAAU,CAAC,IAAY,EAAE,IAAY;IACzD,IAAI,IAAI,IAAI,SAAS,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC;QACpD,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;IAC7E,CAAC;IACD,IAAI,IAAI,IAAI,SAAS,EAAE,CAAC;QACtB,IAAI,GAAG,CAAC,CAAA,CAAM,8DAA8D;IAC9E,CAAC;IACD,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,MAAM,OAAO,GAAG,IAAA,oCAAuB,EAAC,MAAM,CAAC,CAAC;IAChD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,CAAC,CAAC;IACX,CAAC;IACD,MAAM,CAAC,IAAI,CAAC,oCAAoC,OAAO,EAAE,CAAC,CAAA;IAE1D,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,eAAK,CAAC,GAAG,CAAC,WAAW,IAAI,aAAa,eAAe,CAAC,QAAQ,sBAAsB,OAAO,SAAS,IAAI,EAAE,EAAE;YAC5H,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,aAAa,EAAE,WAAW;aAC3B;SACF,CAAC,CAAC;QACH,IAAI,GAAG,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC;YACnB,MAAM,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;QAC5D,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CAAC,+CAA+C,OAAO,EAAE,CAAC,CAAC;YACtE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QACvB,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,UAAU,GAAG,0CAA0C,OAAO,EAAE,CAAC;QACvE,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,7 +0,0 @@
|
|
|
1
|
-
export { registerApp } from './register-app';
|
|
2
|
-
export { listApps } from './list-apps';
|
|
3
|
-
export { deleteApp } from './delete-app';
|
|
4
|
-
export { deployAppCode } from './deploy-app-code';
|
|
5
|
-
export { getAppLogs } from './get-app-logs';
|
|
6
|
-
export { updateApp } from './update-app';
|
|
7
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../applications/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.updateApp = exports.getAppLogs = exports.deployAppCode = exports.deleteApp = exports.listApps = exports.registerApp = void 0;
|
|
4
|
-
var register_app_1 = require("./register-app");
|
|
5
|
-
Object.defineProperty(exports, "registerApp", { enumerable: true, get: function () { return register_app_1.registerApp; } });
|
|
6
|
-
var list_apps_1 = require("./list-apps");
|
|
7
|
-
Object.defineProperty(exports, "listApps", { enumerable: true, get: function () { return list_apps_1.listApps; } });
|
|
8
|
-
var delete_app_1 = require("./delete-app");
|
|
9
|
-
Object.defineProperty(exports, "deleteApp", { enumerable: true, get: function () { return delete_app_1.deleteApp; } });
|
|
10
|
-
var deploy_app_code_1 = require("./deploy-app-code");
|
|
11
|
-
Object.defineProperty(exports, "deployAppCode", { enumerable: true, get: function () { return deploy_app_code_1.deployAppCode; } });
|
|
12
|
-
var get_app_logs_1 = require("./get-app-logs");
|
|
13
|
-
Object.defineProperty(exports, "getAppLogs", { enumerable: true, get: function () { return get_app_logs_1.getAppLogs; } });
|
|
14
|
-
var update_app_1 = require("./update-app");
|
|
15
|
-
Object.defineProperty(exports, "updateApp", { enumerable: true, get: function () { return update_app_1.updateApp; } });
|
|
16
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../applications/index.ts"],"names":[],"mappings":";;;AAAA,+CAA6C;AAApC,2GAAA,WAAW,OAAA;AACpB,yCAAuC;AAA9B,qGAAA,QAAQ,OAAA;AACjB,2CAAyC;AAAhC,uGAAA,SAAS,OAAA;AAClB,qDAAkD;AAAzC,gHAAA,aAAa,OAAA;AACtB,+CAA4C;AAAnC,0GAAA,UAAU,OAAA;AACnB,2CAAyC;AAAhC,uGAAA,SAAS,OAAA"}
|