@dbos-inc/dbos-cloud 0.10.23-preview.gcf8e8224bd → 0.10.25-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/deploy-app-code.ts +28 -87
- package/applications/get-app-info.ts +2 -7
- package/applications/list-apps.ts +2 -7
- package/applications/types.ts +11 -0
- package/cli.ts +3 -5
- package/cloudutils.ts +2 -11
- package/dist/packages/dbos-cloud/applications/deploy-app-code.d.ts +1 -1
- package/dist/packages/dbos-cloud/applications/deploy-app-code.d.ts.map +1 -1
- package/dist/packages/dbos-cloud/applications/deploy-app-code.js +20 -76
- package/dist/packages/dbos-cloud/applications/deploy-app-code.js.map +1 -1
- package/dist/packages/dbos-cloud/applications/get-app-info.d.ts.map +1 -1
- package/dist/packages/dbos-cloud/applications/get-app-info.js +2 -6
- package/dist/packages/dbos-cloud/applications/get-app-info.js.map +1 -1
- package/dist/packages/dbos-cloud/applications/list-apps.d.ts.map +1 -1
- package/dist/packages/dbos-cloud/applications/list-apps.js +2 -6
- package/dist/packages/dbos-cloud/applications/list-apps.js.map +1 -1
- package/dist/packages/dbos-cloud/applications/types.d.ts +2 -0
- package/dist/packages/dbos-cloud/applications/types.d.ts.map +1 -1
- package/dist/packages/dbos-cloud/applications/types.js +11 -0
- package/dist/packages/dbos-cloud/applications/types.js.map +1 -1
- package/dist/packages/dbos-cloud/cli.js +3 -5
- package/dist/packages/dbos-cloud/cli.js.map +1 -1
- package/dist/packages/dbos-cloud/cloudutils.d.ts +1 -2
- package/dist/packages/dbos-cloud/cloudutils.d.ts.map +1 -1
- package/dist/packages/dbos-cloud/cloudutils.js +4 -35
- package/dist/packages/dbos-cloud/cloudutils.js.map +1 -1
- package/package.json +4 -4
|
@@ -1,21 +1,38 @@
|
|
|
1
1
|
import axios, { AxiosError } from "axios";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
handleAPIErrors, createDirectory, dbosConfigFilePath, getCloudCredentials,
|
|
6
|
-
getLogger, readFileSync, runCommand, sleep, isCloudAPIErrorResponse,
|
|
7
|
-
retrieveApplicationName, isValidApplicationName } from "../cloudutils";
|
|
2
|
+
import { existsSync, readFileSync } from 'fs';
|
|
3
|
+
import { handleAPIErrors, dbosConfigFilePath, getCloudCredentials, getLogger, checkReadFile, sleep, isCloudAPIErrorResponse, retrieveApplicationName, dbosEnvPath } from "../cloudutils";
|
|
8
4
|
import path from "path";
|
|
9
5
|
import { Application } from "./types";
|
|
10
|
-
|
|
11
|
-
|
|
6
|
+
import JSZip from "jszip";
|
|
7
|
+
import fg from 'fast-glob';
|
|
12
8
|
|
|
13
9
|
type DeployOutput = {
|
|
14
10
|
ApplicationName: string;
|
|
15
11
|
ApplicationVersion: string;
|
|
16
12
|
}
|
|
17
13
|
|
|
18
|
-
|
|
14
|
+
async function createZipData(): Promise<string> {
|
|
15
|
+
const zip = new JSZip();
|
|
16
|
+
|
|
17
|
+
const files = await fg(`${process.cwd()}/**/*`, { dot: true, onlyFiles: true, ignore: [`**/${dbosEnvPath}/**`, '**/node_modules/**', '**/dist/**', `**/${dbosConfigFilePath}`] });
|
|
18
|
+
|
|
19
|
+
files.forEach(file => {
|
|
20
|
+
const relativePath = file.replace(`${process.cwd()}/`, '');
|
|
21
|
+
const fileData = readFileSync(file);
|
|
22
|
+
zip.file(relativePath, fileData, { binary: true });
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
// Add the interpolated config file at package root
|
|
26
|
+
const interpolatedConfig = readInterpolatedConfig(dbosConfigFilePath)
|
|
27
|
+
zip.file(dbosConfigFilePath, interpolatedConfig, { binary: true });
|
|
28
|
+
|
|
29
|
+
// Generate ZIP file as a Buffer
|
|
30
|
+
const buffer = await zip.generateAsync({ type: 'nodebuffer' });
|
|
31
|
+
return buffer.toString('base64');
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
export async function deployAppCode(host: string): Promise<number> {
|
|
19
36
|
const logger = getLogger()
|
|
20
37
|
const userCredentials = getCloudCredentials();
|
|
21
38
|
const bearerToken = "Bearer " + userCredentials.token;
|
|
@@ -24,14 +41,6 @@ export async function deployAppCode(host: string, docker: boolean): Promise<numb
|
|
|
24
41
|
if (appName === null) {
|
|
25
42
|
return 1;
|
|
26
43
|
}
|
|
27
|
-
logger.info(`Loaded application name from package.json: ${appName}`)
|
|
28
|
-
|
|
29
|
-
if (!isValidApplicationName(appName)) {
|
|
30
|
-
logger.error(`Invalid application name: ${appName}. Application name must be between 3 and 30 characters long and can only contain lowercase letters, numbers, hyphens and underscores. Exiting...`);
|
|
31
|
-
return 1;
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
createDirectory(deployDirectoryName);
|
|
35
44
|
|
|
36
45
|
// Verify that package-lock.json exists
|
|
37
46
|
if (!existsSync(path.join(process.cwd(), 'package-lock.json'))) {
|
|
@@ -39,24 +48,8 @@ export async function deployAppCode(host: string, docker: boolean): Promise<numb
|
|
|
39
48
|
return 1;
|
|
40
49
|
}
|
|
41
50
|
|
|
42
|
-
if (docker) {
|
|
43
|
-
// Build the application inside a Docker container using the same base image as our cloud setup
|
|
44
|
-
logger.info(`Building ${appName} using Docker`)
|
|
45
|
-
const dockerSuccess = await buildAppInDocker(appName);
|
|
46
|
-
if (!dockerSuccess) {
|
|
47
|
-
return 1;
|
|
48
|
-
}
|
|
49
|
-
} else {
|
|
50
|
-
// Zip the current directory and deploy from there. Requires app to have already been built. Only for testing.
|
|
51
|
-
execSync(`zip -ry ${deployDirectoryName}/${appName}.zip ./* -x ${deployDirectoryName}/* > /dev/null`);
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
const interpolatedConfig = readInterpolatedConfig(dbosConfigFilePath)
|
|
55
|
-
writeFileSync(`${deployDirectoryName}/${dbosConfigFilePath}`, interpolatedConfig)
|
|
56
|
-
execSync(`zip -j ${deployDirectoryName}/${appName}.zip ${deployDirectoryName}/${dbosConfigFilePath} > /dev/null`);
|
|
57
|
-
|
|
58
51
|
try {
|
|
59
|
-
const zipData =
|
|
52
|
+
const zipData = await createZipData();
|
|
60
53
|
|
|
61
54
|
// Submit the deploy request
|
|
62
55
|
logger.info(`Submitting deploy request for ${appName}`)
|
|
@@ -125,61 +118,9 @@ export async function deployAppCode(host: string, docker: boolean): Promise<numb
|
|
|
125
118
|
}
|
|
126
119
|
|
|
127
120
|
function readInterpolatedConfig(configFilePath: string): string {
|
|
128
|
-
const configFileContent =
|
|
121
|
+
const configFileContent = checkReadFile(configFilePath) as string;
|
|
129
122
|
const regex = /\${([^}]+)}/g; // Regex to match ${VAR_NAME} style placeholders
|
|
130
123
|
return configFileContent.replace(regex, (_, g1: string) => {
|
|
131
124
|
return process.env[g1] || ""; // If the env variable is not set, return an empty string.
|
|
132
125
|
});
|
|
133
126
|
}
|
|
134
|
-
|
|
135
|
-
async function buildAppInDocker(appName: string): Promise<boolean> {
|
|
136
|
-
const logger = getLogger();
|
|
137
|
-
|
|
138
|
-
// Verify Docker is running
|
|
139
|
-
try {
|
|
140
|
-
execSync(`docker > /dev/null 2>&1`)
|
|
141
|
-
} catch (e) {
|
|
142
|
-
logger.error("Docker not available. To deploy, please start the Docker daemon and make the `docker` command runnable without sudo.")
|
|
143
|
-
return false
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
const dockerFileName = `${deployDirectoryName}/Dockerfile.dbos`;
|
|
147
|
-
const containerName = `dbos-builder-${appName}`;
|
|
148
|
-
|
|
149
|
-
// Dockerfile content
|
|
150
|
-
const dockerFileContent = `
|
|
151
|
-
FROM node:lts-bookworm-slim
|
|
152
|
-
RUN apt update
|
|
153
|
-
RUN apt install -y zip
|
|
154
|
-
WORKDIR /app
|
|
155
|
-
COPY . .
|
|
156
|
-
RUN npm clean-install
|
|
157
|
-
RUN npm run build
|
|
158
|
-
RUN npm prune --omit=dev
|
|
159
|
-
RUN zip -ry ${appName}.zip ./* -x "${appName}.zip" -x "${deployDirectoryName}/*" > /dev/null
|
|
160
|
-
`;
|
|
161
|
-
const dockerIgnoreContent = `
|
|
162
|
-
node_modules/
|
|
163
|
-
${deployDirectoryName}/
|
|
164
|
-
dist/
|
|
165
|
-
.dbos/
|
|
166
|
-
`;
|
|
167
|
-
try {
|
|
168
|
-
// Write the Dockerfile and .dockerignore
|
|
169
|
-
writeFileSync(dockerFileName, dockerFileContent);
|
|
170
|
-
writeFileSync(`${deployDirectoryName}/Dockerfile.dbos.dockerignore`, dockerIgnoreContent);
|
|
171
|
-
// Build the Docker image. As build takes a long time, use runCommand to stream its output to stdout.
|
|
172
|
-
await runCommand('docker', ['build', '-t', appName, '-f', dockerFileName, '.'])
|
|
173
|
-
// Run the container
|
|
174
|
-
execSync(`docker run -d --name ${containerName} ${appName}`);
|
|
175
|
-
// Copy the archive from the container to the local deploy directory
|
|
176
|
-
execSync(`docker cp ${containerName}:/app/${appName}.zip ${deployDirectoryName}/${appName}.zip`);
|
|
177
|
-
// Stop and remove the container
|
|
178
|
-
execSync(`docker stop ${containerName}`);
|
|
179
|
-
execSync(`docker rm ${containerName}`);
|
|
180
|
-
return true;
|
|
181
|
-
} catch (e) {
|
|
182
|
-
logger.error(`Failed to build application ${appName}: ${(e as Error).message}`);
|
|
183
|
-
return false;
|
|
184
|
-
}
|
|
185
|
-
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import axios , { AxiosError } from "axios";
|
|
2
2
|
import { handleAPIErrors, getCloudCredentials, getLogger, isCloudAPIErrorResponse, retrieveApplicationName } from "../cloudutils";
|
|
3
|
-
import { Application } from "./types";
|
|
3
|
+
import { Application, prettyPrintApplication } from "./types";
|
|
4
4
|
|
|
5
5
|
export async function getAppInfo(host: string, json: boolean): Promise<number> {
|
|
6
6
|
const logger = getLogger();
|
|
@@ -26,12 +26,7 @@ export async function getAppInfo(host: string, json: boolean): Promise<number> {
|
|
|
26
26
|
if (json) {
|
|
27
27
|
console.log(JSON.stringify(app));
|
|
28
28
|
} else {
|
|
29
|
-
|
|
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}`);
|
|
29
|
+
prettyPrintApplication(app);
|
|
35
30
|
}
|
|
36
31
|
return 0;
|
|
37
32
|
} catch (e) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import axios, { AxiosError } from "axios";
|
|
2
2
|
import { handleAPIErrors, getCloudCredentials, getLogger, isCloudAPIErrorResponse } from "../cloudutils";
|
|
3
|
-
import { Application } from "./types";
|
|
3
|
+
import { Application, prettyPrintApplication } from "./types";
|
|
4
4
|
|
|
5
5
|
export async function listApps(host: string, json: boolean): Promise<number> {
|
|
6
6
|
const logger = getLogger();
|
|
@@ -24,12 +24,7 @@ export async function listApps(host: string, json: boolean): Promise<number> {
|
|
|
24
24
|
logger.info("No applications found");
|
|
25
25
|
}
|
|
26
26
|
applications.forEach(app => {
|
|
27
|
-
|
|
28
|
-
console.log(`ID: ${app.ID}`);
|
|
29
|
-
console.log(`Postgres Instance Name: ${app.PostgresInstanceName}`);
|
|
30
|
-
console.log(`Application Database Name: ${app.ApplicationDatabaseName}`);
|
|
31
|
-
console.log(`Status: ${app.Status}`);
|
|
32
|
-
console.log(`Version: ${app.Version}`);
|
|
27
|
+
prettyPrintApplication(app);
|
|
33
28
|
console.log('-------------------------');
|
|
34
29
|
});
|
|
35
30
|
}
|
package/applications/types.ts
CHANGED
|
@@ -5,4 +5,15 @@ export type Application = {
|
|
|
5
5
|
ApplicationDatabaseName: string;
|
|
6
6
|
Status: string;
|
|
7
7
|
Version: string;
|
|
8
|
+
AppURL: string;
|
|
8
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
|
+
}
|
package/cli.ts
CHANGED
|
@@ -20,8 +20,7 @@ const program = new Command();
|
|
|
20
20
|
|
|
21
21
|
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
22
22
|
const packageJson = require('../../../package.json') as { version: string };
|
|
23
|
-
program.
|
|
24
|
-
version(packageJson.version);
|
|
23
|
+
program.version(packageJson.version);
|
|
25
24
|
|
|
26
25
|
/////////////////////
|
|
27
26
|
/* AUTHENTICATION */
|
|
@@ -85,9 +84,8 @@ applicationCommands
|
|
|
85
84
|
applicationCommands
|
|
86
85
|
.command('deploy')
|
|
87
86
|
.description('Deploy this application to the cloud')
|
|
88
|
-
.
|
|
89
|
-
|
|
90
|
-
const exitCode = await deployAppCode(DBOSCloudHost, options.docker);
|
|
87
|
+
.action(async () => {
|
|
88
|
+
const exitCode = await deployAppCode(DBOSCloudHost);
|
|
91
89
|
process.exit(exitCode);
|
|
92
90
|
});
|
|
93
91
|
|
package/cloudutils.ts
CHANGED
|
@@ -5,7 +5,6 @@ import fs from "fs";
|
|
|
5
5
|
import { AxiosError } from "axios";
|
|
6
6
|
import jwt from 'jsonwebtoken';
|
|
7
7
|
import path from "node:path";
|
|
8
|
-
import * as validator from 'validator';
|
|
9
8
|
|
|
10
9
|
export interface DBOSCloudCredentials {
|
|
11
10
|
token: string;
|
|
@@ -83,7 +82,7 @@ export function getCloudCredentials(): DBOSCloudCredentials {
|
|
|
83
82
|
token: userCredentials.token.replace(/\r|\n/g, ""), // Trim the trailing /r /n.
|
|
84
83
|
};
|
|
85
84
|
if (isTokenExpired(credentials.token)) {
|
|
86
|
-
logger.error("Error: Login expired. Please log in again with 'npx dbos-cloud login
|
|
85
|
+
logger.error("Error: Login expired. Please log in again with 'npx dbos-cloud login'")
|
|
87
86
|
process.exit(1)
|
|
88
87
|
}
|
|
89
88
|
return credentials
|
|
@@ -123,7 +122,7 @@ export function runCommand(command: string, args: string[] = []): Promise<number
|
|
|
123
122
|
});
|
|
124
123
|
}
|
|
125
124
|
|
|
126
|
-
export function
|
|
125
|
+
export function checkReadFile(path: string, encoding: BufferEncoding = "utf8"): string | Buffer {
|
|
127
126
|
// First, check the file
|
|
128
127
|
fs.stat(path, (error: NodeJS.ErrnoException | null, stats: fs.Stats) => {
|
|
129
128
|
if (error) {
|
|
@@ -165,11 +164,3 @@ export function handleAPIErrors(label: string, e: AxiosError) {
|
|
|
165
164
|
const resp: CloudAPIErrorResponse = e.response?.data as CloudAPIErrorResponse;
|
|
166
165
|
logger.error(`[${resp.requestID}] ${label}: ${resp.message}.`);
|
|
167
166
|
}
|
|
168
|
-
|
|
169
|
-
export function isValidApplicationName(appName: string): boolean {
|
|
170
|
-
if (appName.length < 3 || appName.length > 30) {
|
|
171
|
-
return false;
|
|
172
|
-
}
|
|
173
|
-
return validator.matches(appName, "^[a-z0-9-_]+$");
|
|
174
|
-
}
|
|
175
|
-
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare function deployAppCode(host: string
|
|
1
|
+
export declare function deployAppCode(host: string): Promise<number>;
|
|
2
2
|
//# sourceMappingURL=deploy-app-code.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy-app-code.d.ts","sourceRoot":"","sources":["../../../../applications/deploy-app-code.ts"],"names":[],"mappings":"
|
|
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"}
|
|
@@ -5,12 +5,27 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.deployAppCode = void 0;
|
|
7
7
|
const axios_1 = __importDefault(require("axios"));
|
|
8
|
-
const child_process_1 = require("child_process");
|
|
9
8
|
const fs_1 = require("fs");
|
|
10
9
|
const cloudutils_1 = require("../cloudutils");
|
|
11
10
|
const path_1 = __importDefault(require("path"));
|
|
12
|
-
const
|
|
13
|
-
|
|
11
|
+
const jszip_1 = __importDefault(require("jszip"));
|
|
12
|
+
const fast_glob_1 = __importDefault(require("fast-glob"));
|
|
13
|
+
async function createZipData() {
|
|
14
|
+
const zip = new jszip_1.default();
|
|
15
|
+
const files = await (0, fast_glob_1.default)(`${process.cwd()}/**/*`, { dot: true, onlyFiles: true, ignore: [`**/${cloudutils_1.dbosEnvPath}/**`, '**/node_modules/**', '**/dist/**', `**/${cloudutils_1.dbosConfigFilePath}`] });
|
|
16
|
+
files.forEach(file => {
|
|
17
|
+
const relativePath = file.replace(`${process.cwd()}/`, '');
|
|
18
|
+
const fileData = (0, fs_1.readFileSync)(file);
|
|
19
|
+
zip.file(relativePath, fileData, { binary: true });
|
|
20
|
+
});
|
|
21
|
+
// Add the interpolated config file at package root
|
|
22
|
+
const interpolatedConfig = readInterpolatedConfig(cloudutils_1.dbosConfigFilePath);
|
|
23
|
+
zip.file(cloudutils_1.dbosConfigFilePath, interpolatedConfig, { binary: true });
|
|
24
|
+
// Generate ZIP file as a Buffer
|
|
25
|
+
const buffer = await zip.generateAsync({ type: 'nodebuffer' });
|
|
26
|
+
return buffer.toString('base64');
|
|
27
|
+
}
|
|
28
|
+
async function deployAppCode(host) {
|
|
14
29
|
const logger = (0, cloudutils_1.getLogger)();
|
|
15
30
|
const userCredentials = (0, cloudutils_1.getCloudCredentials)();
|
|
16
31
|
const bearerToken = "Bearer " + userCredentials.token;
|
|
@@ -18,34 +33,13 @@ async function deployAppCode(host, docker) {
|
|
|
18
33
|
if (appName === null) {
|
|
19
34
|
return 1;
|
|
20
35
|
}
|
|
21
|
-
logger.info(`Loaded application name from package.json: ${appName}`);
|
|
22
|
-
if (!(0, cloudutils_1.isValidApplicationName)(appName)) {
|
|
23
|
-
logger.error(`Invalid application name: ${appName}. Application name must be between 3 and 30 characters long and can only contain lowercase letters, numbers, hyphens and underscores. Exiting...`);
|
|
24
|
-
return 1;
|
|
25
|
-
}
|
|
26
|
-
(0, cloudutils_1.createDirectory)(deployDirectoryName);
|
|
27
36
|
// Verify that package-lock.json exists
|
|
28
37
|
if (!(0, fs_1.existsSync)(path_1.default.join(process.cwd(), 'package-lock.json'))) {
|
|
29
38
|
logger.error("package-lock.json not found. Please run 'npm install' before deploying.");
|
|
30
39
|
return 1;
|
|
31
40
|
}
|
|
32
|
-
if (docker) {
|
|
33
|
-
// Build the application inside a Docker container using the same base image as our cloud setup
|
|
34
|
-
logger.info(`Building ${appName} using Docker`);
|
|
35
|
-
const dockerSuccess = await buildAppInDocker(appName);
|
|
36
|
-
if (!dockerSuccess) {
|
|
37
|
-
return 1;
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
else {
|
|
41
|
-
// Zip the current directory and deploy from there. Requires app to have already been built. Only for testing.
|
|
42
|
-
(0, child_process_1.execSync)(`zip -ry ${deployDirectoryName}/${appName}.zip ./* -x ${deployDirectoryName}/* > /dev/null`);
|
|
43
|
-
}
|
|
44
|
-
const interpolatedConfig = readInterpolatedConfig(cloudutils_1.dbosConfigFilePath);
|
|
45
|
-
(0, fs_1.writeFileSync)(`${deployDirectoryName}/${cloudutils_1.dbosConfigFilePath}`, interpolatedConfig);
|
|
46
|
-
(0, child_process_1.execSync)(`zip -j ${deployDirectoryName}/${appName}.zip ${deployDirectoryName}/${cloudutils_1.dbosConfigFilePath} > /dev/null`);
|
|
47
41
|
try {
|
|
48
|
-
const zipData =
|
|
42
|
+
const zipData = await createZipData();
|
|
49
43
|
// Submit the deploy request
|
|
50
44
|
logger.info(`Submitting deploy request for ${appName}`);
|
|
51
45
|
const response = await axios_1.default.post(`https://${host}/v1alpha1/${userCredentials.userName}/applications/${appName}`, {
|
|
@@ -106,60 +100,10 @@ async function deployAppCode(host, docker) {
|
|
|
106
100
|
}
|
|
107
101
|
exports.deployAppCode = deployAppCode;
|
|
108
102
|
function readInterpolatedConfig(configFilePath) {
|
|
109
|
-
const configFileContent = (0, cloudutils_1.
|
|
103
|
+
const configFileContent = (0, cloudutils_1.checkReadFile)(configFilePath);
|
|
110
104
|
const regex = /\${([^}]+)}/g; // Regex to match ${VAR_NAME} style placeholders
|
|
111
105
|
return configFileContent.replace(regex, (_, g1) => {
|
|
112
106
|
return process.env[g1] || ""; // If the env variable is not set, return an empty string.
|
|
113
107
|
});
|
|
114
108
|
}
|
|
115
|
-
async function buildAppInDocker(appName) {
|
|
116
|
-
const logger = (0, cloudutils_1.getLogger)();
|
|
117
|
-
// Verify Docker is running
|
|
118
|
-
try {
|
|
119
|
-
(0, child_process_1.execSync)(`docker > /dev/null 2>&1`);
|
|
120
|
-
}
|
|
121
|
-
catch (e) {
|
|
122
|
-
logger.error("Docker not available. To deploy, please start the Docker daemon and make the `docker` command runnable without sudo.");
|
|
123
|
-
return false;
|
|
124
|
-
}
|
|
125
|
-
const dockerFileName = `${deployDirectoryName}/Dockerfile.dbos`;
|
|
126
|
-
const containerName = `dbos-builder-${appName}`;
|
|
127
|
-
// Dockerfile content
|
|
128
|
-
const dockerFileContent = `
|
|
129
|
-
FROM node:lts-bookworm-slim
|
|
130
|
-
RUN apt update
|
|
131
|
-
RUN apt install -y zip
|
|
132
|
-
WORKDIR /app
|
|
133
|
-
COPY . .
|
|
134
|
-
RUN npm clean-install
|
|
135
|
-
RUN npm run build
|
|
136
|
-
RUN npm prune --omit=dev
|
|
137
|
-
RUN zip -ry ${appName}.zip ./* -x "${appName}.zip" -x "${deployDirectoryName}/*" > /dev/null
|
|
138
|
-
`;
|
|
139
|
-
const dockerIgnoreContent = `
|
|
140
|
-
node_modules/
|
|
141
|
-
${deployDirectoryName}/
|
|
142
|
-
dist/
|
|
143
|
-
.dbos/
|
|
144
|
-
`;
|
|
145
|
-
try {
|
|
146
|
-
// Write the Dockerfile and .dockerignore
|
|
147
|
-
(0, fs_1.writeFileSync)(dockerFileName, dockerFileContent);
|
|
148
|
-
(0, fs_1.writeFileSync)(`${deployDirectoryName}/Dockerfile.dbos.dockerignore`, dockerIgnoreContent);
|
|
149
|
-
// Build the Docker image. As build takes a long time, use runCommand to stream its output to stdout.
|
|
150
|
-
await (0, cloudutils_1.runCommand)('docker', ['build', '-t', appName, '-f', dockerFileName, '.']);
|
|
151
|
-
// Run the container
|
|
152
|
-
(0, child_process_1.execSync)(`docker run -d --name ${containerName} ${appName}`);
|
|
153
|
-
// Copy the archive from the container to the local deploy directory
|
|
154
|
-
(0, child_process_1.execSync)(`docker cp ${containerName}:/app/${appName}.zip ${deployDirectoryName}/${appName}.zip`);
|
|
155
|
-
// Stop and remove the container
|
|
156
|
-
(0, child_process_1.execSync)(`docker stop ${containerName}`);
|
|
157
|
-
(0, child_process_1.execSync)(`docker rm ${containerName}`);
|
|
158
|
-
return true;
|
|
159
|
-
}
|
|
160
|
-
catch (e) {
|
|
161
|
-
logger.error(`Failed to build application ${appName}: ${e.message}`);
|
|
162
|
-
return false;
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
109
|
//# sourceMappingURL=deploy-app-code.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy-app-code.js","sourceRoot":"","sources":["../../../../applications/deploy-app-code.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0C;AAC1C,
|
|
1
|
+
{"version":3,"file":"deploy-app-code.js","sourceRoot":"","sources":["../../../../applications/deploy-app-code.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-app-info.d.ts","sourceRoot":"","sources":["../../../../applications/get-app-info.ts"],"names":[],"mappings":"AAIA,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"get-app-info.d.ts","sourceRoot":"","sources":["../../../../applications/get-app-info.ts"],"names":[],"mappings":"AAIA,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAqC7E"}
|
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.getAppInfo = void 0;
|
|
7
7
|
const axios_1 = __importDefault(require("axios"));
|
|
8
8
|
const cloudutils_1 = require("../cloudutils");
|
|
9
|
+
const types_1 = require("./types");
|
|
9
10
|
async function getAppInfo(host, json) {
|
|
10
11
|
const logger = (0, cloudutils_1.getLogger)();
|
|
11
12
|
const userCredentials = (0, cloudutils_1.getCloudCredentials)();
|
|
@@ -29,12 +30,7 @@ async function getAppInfo(host, json) {
|
|
|
29
30
|
console.log(JSON.stringify(app));
|
|
30
31
|
}
|
|
31
32
|
else {
|
|
32
|
-
|
|
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}`);
|
|
33
|
+
(0, types_1.prettyPrintApplication)(app);
|
|
38
34
|
}
|
|
39
35
|
return 0;
|
|
40
36
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-app-info.js","sourceRoot":"","sources":["../../../../applications/get-app-info.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA2C;AAC3C,8CAAkI;
|
|
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;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,MAAM,OAAO,GAAG,IAAA,oCAAuB,EAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACtD,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACrB,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 +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,CAqC3E"}
|
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.listApps = void 0;
|
|
7
7
|
const axios_1 = __importDefault(require("axios"));
|
|
8
8
|
const cloudutils_1 = require("../cloudutils");
|
|
9
|
+
const types_1 = require("./types");
|
|
9
10
|
async function listApps(host, json) {
|
|
10
11
|
const logger = (0, cloudutils_1.getLogger)();
|
|
11
12
|
const userCredentials = (0, cloudutils_1.getCloudCredentials)();
|
|
@@ -25,12 +26,7 @@ async function listApps(host, json) {
|
|
|
25
26
|
logger.info("No applications found");
|
|
26
27
|
}
|
|
27
28
|
applications.forEach(app => {
|
|
28
|
-
|
|
29
|
-
console.log(`ID: ${app.ID}`);
|
|
30
|
-
console.log(`Postgres Instance Name: ${app.PostgresInstanceName}`);
|
|
31
|
-
console.log(`Application Database Name: ${app.ApplicationDatabaseName}`);
|
|
32
|
-
console.log(`Status: ${app.Status}`);
|
|
33
|
-
console.log(`Version: ${app.Version}`);
|
|
29
|
+
(0, types_1.prettyPrintApplication)(app);
|
|
34
30
|
console.log('-------------------------');
|
|
35
31
|
});
|
|
36
32
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list-apps.js","sourceRoot":"","sources":["../../../../applications/list-apps.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0C;AAC1C,8CAAyG;
|
|
1
|
+
{"version":3,"file":"list-apps.js","sourceRoot":"","sources":["../../../../applications/list-apps.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0C;AAC1C,8CAAyG;AACzG,mCAA8D;AAEvD,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,aAAa,eAAe,CAAC,QAAQ,eAAe,EACnE;YACE,OAAO,EAAE;gBACP,aAAa,EAAE,WAAW;aAC3B;SACF,CACF,CAAC;QACF,MAAM,YAAY,GAAkB,IAAI,CAAC,IAAqB,CAAC;QAC/D,IAAI,IAAI,EAAE,CAAC;YACT,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC;QAC5C,CAAC;aAAM,CAAC;YACN,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC9B,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YACvC,CAAC;YACD,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gBACzB,IAAA,8BAAsB,EAAC,GAAG,CAAC,CAAC;gBAC5B,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;AArCD,4BAqCC"}
|
|
@@ -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,oBAAoB,EAAE,MAAM,CAAC;IAC7B,uBAAuB,EAAE,MAAM,CAAC;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../applications/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,oBAAoB,EAAE,MAAM,CAAC;IAC7B,uBAAuB,EAAE,MAAM,CAAC;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,WAAW,QAQtD"}
|
|
@@ -1,3 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.prettyPrintApplication = void 0;
|
|
4
|
+
function prettyPrintApplication(app) {
|
|
5
|
+
console.log(`Application Name: ${app.Name}`);
|
|
6
|
+
console.log(`ID: ${app.ID}`);
|
|
7
|
+
console.log(`Postgres Instance Name: ${app.PostgresInstanceName}`);
|
|
8
|
+
console.log(`Application Database Name: ${app.ApplicationDatabaseName}`);
|
|
9
|
+
console.log(`Status: ${app.Status}`);
|
|
10
|
+
console.log(`Version: ${app.Version}`);
|
|
11
|
+
console.log(`App URL: ${app.AppURL}`);
|
|
12
|
+
}
|
|
13
|
+
exports.prettyPrintApplication = prettyPrintApplication;
|
|
3
14
|
//# sourceMappingURL=types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../applications/types.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../applications/types.ts"],"names":[],"mappings":";;;AAUA,SAAgB,sBAAsB,CAAC,GAAgB;IACrD,OAAO,CAAC,GAAG,CAAC,qBAAqB,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;IAC7C,OAAO,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;IAC7B,OAAO,CAAC,GAAG,CAAC,2BAA2B,GAAG,CAAC,oBAAoB,EAAE,CAAC,CAAC;IACnE,OAAO,CAAC,GAAG,CAAC,8BAA8B,GAAG,CAAC,uBAAuB,EAAE,CAAC,CAAC;IACzE,OAAO,CAAC,GAAG,CAAC,WAAW,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;IACrC,OAAO,CAAC,GAAG,CAAC,YAAY,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;IACvC,OAAO,CAAC,GAAG,CAAC,YAAY,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;AACxC,CAAC;AARD,wDAQC"}
|
|
@@ -12,8 +12,7 @@ const get_app_info_1 = require("./applications/get-app-info");
|
|
|
12
12
|
const program = new commander_1.Command();
|
|
13
13
|
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
14
14
|
const packageJson = require('../../../package.json');
|
|
15
|
-
program.
|
|
16
|
-
version(packageJson.version);
|
|
15
|
+
program.version(packageJson.version);
|
|
17
16
|
/////////////////////
|
|
18
17
|
/* AUTHENTICATION */
|
|
19
18
|
/////////////////////
|
|
@@ -68,9 +67,8 @@ applicationCommands
|
|
|
68
67
|
applicationCommands
|
|
69
68
|
.command('deploy')
|
|
70
69
|
.description('Deploy this application to the cloud')
|
|
71
|
-
.
|
|
72
|
-
|
|
73
|
-
const exitCode = await (0, applications_1.deployAppCode)(cloudutils_1.DBOSCloudHost, options.docker);
|
|
70
|
+
.action(async () => {
|
|
71
|
+
const exitCode = await (0, applications_1.deployAppCode)(cloudutils_1.DBOSCloudHost);
|
|
74
72
|
process.exit(exitCode);
|
|
75
73
|
});
|
|
76
74
|
applicationCommands
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../cli.ts"],"names":[],"mappings":";;;AAEA,iDAOwB;AACxB,yCAAoC;AACpC,mCAAgC;AAChC,yCAA0C;AAC1C,qCAA6E;AAC7E,6CAA+C;AAC/C,6CAAkF;AAClF,8DAAyD;AAEzD,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,8DAA8D;AAC9D,MAAM,WAAW,GAAG,OAAO,CAAC,uBAAuB,CAAwB,CAAC;AAC5E,OAAO
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,7 +15,7 @@ export declare function credentialsExist(): boolean;
|
|
|
15
15
|
export declare function deleteCredentials(): void;
|
|
16
16
|
export declare function writeCredentials(credentials: DBOSCloudCredentials): void;
|
|
17
17
|
export declare function runCommand(command: string, args?: string[]): Promise<number>;
|
|
18
|
-
export declare function
|
|
18
|
+
export declare function checkReadFile(path: string, encoding?: BufferEncoding): string | Buffer;
|
|
19
19
|
export declare const sleep: (ms: number) => Promise<unknown>;
|
|
20
20
|
export type ValuesOf<T> = T[keyof T];
|
|
21
21
|
export declare function createDirectory(path: string): string | undefined;
|
|
@@ -26,6 +26,5 @@ interface CloudAPIErrorResponse {
|
|
|
26
26
|
}
|
|
27
27
|
export declare function isCloudAPIErrorResponse(obj: unknown): obj is CloudAPIErrorResponse;
|
|
28
28
|
export declare function handleAPIErrors(label: string, e: AxiosError): void;
|
|
29
|
-
export declare function isValidApplicationName(appName: string): boolean;
|
|
30
29
|
export {};
|
|
31
30
|
//# sourceMappingURL=cloudutils.d.ts.map
|
|
@@ -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;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,IAAI,CAY9F;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"}
|
|
@@ -1,38 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
4
|
};
|
|
28
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
-
exports.
|
|
6
|
+
exports.handleAPIErrors = exports.isCloudAPIErrorResponse = exports.createDirectory = exports.sleep = exports.checkReadFile = exports.runCommand = exports.writeCredentials = exports.deleteCredentials = exports.credentialsExist = exports.getCloudCredentials = exports.getLogger = exports.retrieveApplicationName = exports.dbosEnvPath = exports.DBOSCloudHost = exports.dbosConfigFilePath = void 0;
|
|
30
7
|
const child_process_1 = require("child_process");
|
|
31
8
|
const winston_1 = require("winston");
|
|
32
9
|
const fs_1 = __importDefault(require("fs"));
|
|
33
10
|
const jsonwebtoken_1 = __importDefault(require("jsonwebtoken"));
|
|
34
11
|
const node_path_1 = __importDefault(require("node:path"));
|
|
35
|
-
const validator = __importStar(require("validator"));
|
|
36
12
|
exports.dbosConfigFilePath = "dbos-config.yaml";
|
|
37
13
|
exports.DBOSCloudHost = process.env.DBOS_DOMAIN || "cloud.dbos.dev";
|
|
38
14
|
exports.dbosEnvPath = ".dbos";
|
|
@@ -94,7 +70,7 @@ function getCloudCredentials() {
|
|
|
94
70
|
token: userCredentials.token.replace(/\r|\n/g, ""), // Trim the trailing /r /n.
|
|
95
71
|
};
|
|
96
72
|
if (isTokenExpired(credentials.token)) {
|
|
97
|
-
logger.error("Error: Login expired. Please log in again with 'npx dbos-cloud login
|
|
73
|
+
logger.error("Error: Login expired. Please log in again with 'npx dbos-cloud login'");
|
|
98
74
|
process.exit(1);
|
|
99
75
|
}
|
|
100
76
|
return credentials;
|
|
@@ -132,7 +108,7 @@ function runCommand(command, args = []) {
|
|
|
132
108
|
});
|
|
133
109
|
}
|
|
134
110
|
exports.runCommand = runCommand;
|
|
135
|
-
function
|
|
111
|
+
function checkReadFile(path, encoding = "utf8") {
|
|
136
112
|
// First, check the file
|
|
137
113
|
fs_1.default.stat(path, (error, stats) => {
|
|
138
114
|
if (error) {
|
|
@@ -146,7 +122,7 @@ function readFileSync(path, encoding = "utf8") {
|
|
|
146
122
|
const fileContent = fs_1.default.readFileSync(path, { encoding });
|
|
147
123
|
return fileContent;
|
|
148
124
|
}
|
|
149
|
-
exports.
|
|
125
|
+
exports.checkReadFile = checkReadFile;
|
|
150
126
|
const sleep = (ms) => new Promise((r) => setTimeout(r, ms));
|
|
151
127
|
exports.sleep = sleep;
|
|
152
128
|
function createDirectory(path) {
|
|
@@ -166,11 +142,4 @@ function handleAPIErrors(label, e) {
|
|
|
166
142
|
logger.error(`[${resp.requestID}] ${label}: ${resp.message}.`);
|
|
167
143
|
}
|
|
168
144
|
exports.handleAPIErrors = handleAPIErrors;
|
|
169
|
-
function isValidApplicationName(appName) {
|
|
170
|
-
if (appName.length < 3 || appName.length > 30) {
|
|
171
|
-
return false;
|
|
172
|
-
}
|
|
173
|
-
return validator.matches(appName, "^[a-z0-9-_]+$");
|
|
174
|
-
}
|
|
175
|
-
exports.isValidApplicationName = isValidApplicationName;
|
|
176
145
|
//# sourceMappingURL=cloudutils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cloudutils.js","sourceRoot":"","sources":["../../../cloudutils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cloudutils.js","sourceRoot":"","sources":["../../../cloudutils.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.10.
|
|
3
|
+
"version": "0.10.25-preview",
|
|
4
4
|
"description": "Tool for performing application deployment to DBOS cloud",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -22,15 +22,15 @@
|
|
|
22
22
|
"@types/node": "^20.6.3",
|
|
23
23
|
"grunt": "^1.6.1",
|
|
24
24
|
"nerdbank-gitversioning": "^3.6.133",
|
|
25
|
-
"typescript": "^5.3.3"
|
|
26
|
-
"@types/validator": "^13.11.9"
|
|
25
|
+
"typescript": "^5.3.3"
|
|
27
26
|
},
|
|
28
27
|
"dependencies": {
|
|
29
28
|
"axios": "^1.6.5",
|
|
30
29
|
"commander": "^11.0.0",
|
|
30
|
+
"fast-glob": "^3.3.2",
|
|
31
31
|
"jsonwebtoken": "^9.0.2",
|
|
32
|
+
"jszip": "^3.10.1",
|
|
32
33
|
"jwks-rsa": "^3.1.0",
|
|
33
|
-
"validator": "^13.11.0",
|
|
34
34
|
"winston": "^3.11.0",
|
|
35
35
|
"winston-transport": "^4.6.0"
|
|
36
36
|
}
|