@dbos-inc/dbos-sdk 1.31.17-preview → 1.31.20-preview
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/src/dbos-executor.d.ts +1 -1
- package/dist/src/dbos-executor.d.ts.map +1 -1
- package/dist/src/dbos-runtime/cloudutils/authentication.d.ts +7 -0
- package/dist/src/dbos-runtime/cloudutils/authentication.d.ts.map +1 -0
- package/dist/src/dbos-runtime/cloudutils/authentication.js +101 -0
- package/dist/src/dbos-runtime/cloudutils/authentication.js.map +1 -0
- package/dist/src/dbos-runtime/cloudutils/cloudutils.d.ts +49 -0
- package/dist/src/dbos-runtime/cloudutils/cloudutils.d.ts.map +1 -0
- package/dist/src/dbos-runtime/cloudutils/cloudutils.js +271 -0
- package/dist/src/dbos-runtime/cloudutils/cloudutils.js.map +1 -0
- package/dist/src/dbos-runtime/cloudutils/databases.d.ts +21 -0
- package/dist/src/dbos-runtime/cloudutils/databases.d.ts.map +1 -0
- package/dist/src/dbos-runtime/cloudutils/databases.js +186 -0
- package/dist/src/dbos-runtime/cloudutils/databases.js.map +1 -0
- package/dist/src/dbos-runtime/db_wizard.d.ts +3 -0
- package/dist/src/dbos-runtime/db_wizard.d.ts.map +1 -0
- package/dist/src/dbos-runtime/db_wizard.js +168 -0
- package/dist/src/dbos-runtime/db_wizard.js.map +1 -0
- package/dist/src/dbos-runtime/migrate.d.ts +2 -1
- package/dist/src/dbos-runtime/migrate.d.ts.map +1 -1
- package/dist/src/dbos-runtime/migrate.js +9 -10
- package/dist/src/dbos-runtime/migrate.js.map +1 -1
- package/dist/src/dbos-runtime/runtime.d.ts.map +1 -1
- package/dist/src/dbos-runtime/runtime.js +6 -1
- package/dist/src/dbos-runtime/runtime.js.map +1 -1
- package/dist/src/dbos.d.ts.map +1 -1
- package/dist/src/dbos.js +2 -0
- package/dist/src/dbos.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +5 -1
- package/src/dbos-runtime/cloudutils/README.md +1 -0
@@ -18,7 +18,7 @@ export interface DBOSNull {
|
|
18
18
|
}
|
19
19
|
export declare const dbosNull: DBOSNull;
|
20
20
|
export interface DBOSConfig {
|
21
|
-
|
21
|
+
poolConfig: PoolConfig;
|
22
22
|
readonly userDbclient?: UserDatabaseName;
|
23
23
|
readonly telemetry?: TelemetryConfig;
|
24
24
|
readonly system_database: string;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"dbos-executor.d.ts","sourceRoot":"","sources":["../../src/dbos-executor.ts"],"names":[],"mappings":";AAGA,OAAO,EAEL,QAAQ,EACR,cAAc,EAEd,cAAc,EACd,cAAc,EAEd,mBAAmB,EACnB,cAAc,EAEd,cAAc,EAEd,qBAAqB,EACrB,sBAAsB,EACvB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAkB,WAAW,EAAE,iBAAiB,EAA0B,MAAM,eAAe,CAAC;AACvG,OAAO,EAAE,UAAU,EAAmB,YAAY,EAAE,MAAM,QAAQ,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,YAAY,IAAI,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1D,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,IAAI,CAAC;AAClE,OAAO,EAAE,cAAc,EAAkD,MAAM,mBAAmB,CAAC;AAEnG,OAAO,EAGL,YAAY,EAEZ,gBAAgB,EAIjB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,sBAAsB,EAA2J,kBAAkB,EAA2B,MAAM,cAAc,CAAC;AAS5P,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAErE,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,kBAAkB,EAAC,MAAM,GAAG,CAAC;AAKjG,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAIjI,MAAM,WAAW,QAAQ;CAAI;AAC7B,eAAO,MAAM,QAAQ,EAAE,QAAa,CAAC;AAGrC,MAAM,WAAW,UAAU;IACzB,
|
1
|
+
{"version":3,"file":"dbos-executor.d.ts","sourceRoot":"","sources":["../../src/dbos-executor.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,7 @@
|
|
1
|
+
import { Logger } from "winston";
|
2
|
+
export interface AuthenticationResponse {
|
3
|
+
token: string;
|
4
|
+
refreshToken?: string;
|
5
|
+
}
|
6
|
+
export declare function authenticate(logger: Logger, getRefreshToken?: boolean): Promise<AuthenticationResponse | null>;
|
7
|
+
//# sourceMappingURL=authentication.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"authentication.d.ts","sourceRoot":"","sources":["../../../../src/dbos-runtime/cloudutils/authentication.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAyBjC,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAgCD,wBAAsB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,eAAe,GAAE,OAAe,GAAG,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC,CA4D3H"}
|
@@ -0,0 +1,101 @@
|
|
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.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 DBOSCloudHost = process.env.DBOS_DOMAIN || "cloud.dbos.dev";
|
11
|
+
const productionEnvironment = DBOSCloudHost === "cloud.dbos.dev";
|
12
|
+
const Auth0Domain = productionEnvironment ? "login.dbos.dev" : "dbos-inc.us.auth0.com";
|
13
|
+
const DBOSClientID = productionEnvironment ? "6p7Sjxf13cyLMkdwn14MxlH7JdhILled" : "G38fLmVErczEo9ioCFjVIHea6yd0qMZu";
|
14
|
+
const DBOSCloudIdentifier = "dbos-cloud-api";
|
15
|
+
const sleepms = (ms) => new Promise((r) => setTimeout(r, ms));
|
16
|
+
const client = (0, jwks_rsa_1.default)({
|
17
|
+
jwksUri: `https://${Auth0Domain}/.well-known/jwks.json`,
|
18
|
+
});
|
19
|
+
async function getSigningKey(kid) {
|
20
|
+
const key = await client.getSigningKey(kid);
|
21
|
+
return key.getPublicKey();
|
22
|
+
}
|
23
|
+
async function verifyToken(token) {
|
24
|
+
const decoded = jsonwebtoken_1.default.decode(token, { complete: true });
|
25
|
+
if (!decoded || typeof decoded === "string" || !decoded.header.kid) {
|
26
|
+
throw new Error("Invalid token");
|
27
|
+
}
|
28
|
+
const signingKey = await getSigningKey(decoded.header.kid);
|
29
|
+
return new Promise((resolve, reject) => {
|
30
|
+
jsonwebtoken_1.default.verify(token, signingKey, { algorithms: ["RS256"] }, (err, verifiedToken) => {
|
31
|
+
if (err) {
|
32
|
+
reject(err);
|
33
|
+
}
|
34
|
+
else {
|
35
|
+
resolve(verifiedToken);
|
36
|
+
}
|
37
|
+
});
|
38
|
+
});
|
39
|
+
}
|
40
|
+
// Redirect a user to auth0 to authenticate, retrieving a JWT bearer token
|
41
|
+
async function authenticate(logger, getRefreshToken = false) {
|
42
|
+
logger.info(`Please authenticate with DBOS Cloud!`);
|
43
|
+
const deviceCodeRequest = {
|
44
|
+
method: "POST",
|
45
|
+
url: `https://${Auth0Domain}/oauth/device/code`,
|
46
|
+
headers: { "content-type": "application/x-www-form-urlencoded" },
|
47
|
+
data: {
|
48
|
+
client_id: DBOSClientID,
|
49
|
+
scope: getRefreshToken ? "offline_access" : "sub",
|
50
|
+
audience: DBOSCloudIdentifier,
|
51
|
+
},
|
52
|
+
};
|
53
|
+
let deviceCodeResponse;
|
54
|
+
try {
|
55
|
+
const response = await axios_1.default.request(deviceCodeRequest);
|
56
|
+
deviceCodeResponse = response.data;
|
57
|
+
}
|
58
|
+
catch (e) {
|
59
|
+
e.message = `failed to log in: ${e.message}`;
|
60
|
+
logger.error(e);
|
61
|
+
}
|
62
|
+
if (!deviceCodeResponse) {
|
63
|
+
return null;
|
64
|
+
}
|
65
|
+
const loginURL = deviceCodeResponse.verification_uri_complete;
|
66
|
+
console.log(`Login URL: ${loginURL}`);
|
67
|
+
const tokenRequest = {
|
68
|
+
method: "POST",
|
69
|
+
url: `https://${Auth0Domain}/oauth/token`,
|
70
|
+
headers: { "content-type": "application/x-www-form-urlencoded" },
|
71
|
+
data: {
|
72
|
+
grant_type: "urn:ietf:params:oauth:grant-type:device_code",
|
73
|
+
device_code: deviceCodeResponse.device_code,
|
74
|
+
client_id: DBOSClientID,
|
75
|
+
},
|
76
|
+
};
|
77
|
+
let tokenResponse;
|
78
|
+
let elapsedTimeSec = 0;
|
79
|
+
while (elapsedTimeSec < deviceCodeResponse.expires_in) {
|
80
|
+
try {
|
81
|
+
await sleepms(deviceCodeResponse.interval * 1000);
|
82
|
+
elapsedTimeSec += deviceCodeResponse.interval;
|
83
|
+
const response = await axios_1.default.request(tokenRequest);
|
84
|
+
tokenResponse = response.data;
|
85
|
+
break;
|
86
|
+
}
|
87
|
+
catch (e) {
|
88
|
+
logger.info(`Waiting for login...`);
|
89
|
+
}
|
90
|
+
}
|
91
|
+
if (!tokenResponse) {
|
92
|
+
return null;
|
93
|
+
}
|
94
|
+
await verifyToken(tokenResponse.access_token);
|
95
|
+
return {
|
96
|
+
token: tokenResponse.access_token,
|
97
|
+
refreshToken: tokenResponse.refresh_token,
|
98
|
+
};
|
99
|
+
}
|
100
|
+
exports.authenticate = authenticate;
|
101
|
+
//# sourceMappingURL=authentication.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"authentication.js","sourceRoot":"","sources":["../../../../src/dbos-runtime/cloudutils/authentication.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,49 @@
|
|
1
|
+
/// <reference types="node" />
|
2
|
+
import { AxiosError } from "axios";
|
3
|
+
import { createLogger, Logger } from "winston";
|
4
|
+
export interface DBOSCloudCredentials {
|
5
|
+
token: string;
|
6
|
+
refreshToken?: string;
|
7
|
+
userName: string;
|
8
|
+
organization: string;
|
9
|
+
}
|
10
|
+
export interface UserProfile {
|
11
|
+
Name: string;
|
12
|
+
Email: string;
|
13
|
+
Organization: string;
|
14
|
+
SubscriptionPlan: string;
|
15
|
+
}
|
16
|
+
export declare enum AppLanguages {
|
17
|
+
Node = "node",
|
18
|
+
Python = "python"
|
19
|
+
}
|
20
|
+
export declare const DBOSCloudHost: string;
|
21
|
+
export declare const dbosEnvPath = ".dbos";
|
22
|
+
export type CLILogger = ReturnType<typeof createLogger>;
|
23
|
+
export declare function getLogger(verbose?: boolean): CLILogger;
|
24
|
+
export declare function isTokenExpired(token: string): boolean;
|
25
|
+
export declare function credentialsExist(): boolean;
|
26
|
+
export declare function deleteCredentials(): void;
|
27
|
+
export declare function writeCredentials(credentials: DBOSCloudCredentials): void;
|
28
|
+
export declare function checkReadFile(path: string, encoding?: BufferEncoding): string | Buffer;
|
29
|
+
export declare const sleepms: (ms: number) => Promise<unknown>;
|
30
|
+
export declare function createDirectory(path: string): string | undefined;
|
31
|
+
export interface CloudAPIErrorResponse {
|
32
|
+
message: string;
|
33
|
+
statusCode: number;
|
34
|
+
requestID: string;
|
35
|
+
DetailedError?: string;
|
36
|
+
}
|
37
|
+
export declare function isCloudAPIErrorResponse(obj: unknown): obj is CloudAPIErrorResponse;
|
38
|
+
export declare function handleAPIErrors(label: string, e: AxiosError): void;
|
39
|
+
/**
|
40
|
+
* Login and obtain user credentials.
|
41
|
+
* First checks if the credentials exist and not expired.
|
42
|
+
* If so, returns the credentials.
|
43
|
+
* If not, try to login the user.
|
44
|
+
* If the user is not registered, prompts to register the user.
|
45
|
+
* @param {string} host - The DBOS Cloud host to authenticate against.
|
46
|
+
* @returns {DBOSCloudCredentials} - The user's DBOS Cloud credentials.
|
47
|
+
*/
|
48
|
+
export declare function getCloudCredentials(host: string, logger: Logger, userName?: string, secret?: string): Promise<DBOSCloudCredentials>;
|
49
|
+
//# sourceMappingURL=cloudutils.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"cloudutils.d.ts","sourceRoot":"","sources":["../../../../src/dbos-runtime/cloudutils/cloudutils.ts"],"names":[],"mappings":";AACA,OAAc,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAM1C,OAAO,EAAc,YAAY,EAAU,MAAM,EAAE,MAAM,SAAS,CAAC;AAEnE,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,oBAAY,YAAY;IACtB,IAAI,SAAS;IACb,MAAM,WAAW;CAClB;AAED,eAAO,MAAM,aAAa,QAA8C,CAAC;AACzE,eAAO,MAAM,WAAW,UAAU,CAAC;AAEnC,MAAM,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC;AAExD,wBAAgB,SAAS,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAUtD;AAoBD,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAQrD;AAGD,wBAAgB,gBAAgB,IAAI,OAAO,CAE1C;AAED,wBAAgB,iBAAiB,SAEhC;AAED,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,oBAAoB,QAGjE;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,GAAE,cAAuB,GAAG,MAAM,GAAG,MAAM,CAa9F;AAED,eAAO,MAAM,OAAO,OAAQ,MAAM,qBAA0C,CAAC;AAE7E,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAEhE;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,qBAAqB,CAWlF;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,UAAU,QAI3D;AAGD;;;;;;;;GAQG;AACH,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC,CA+BzI"}
|
@@ -0,0 +1,271 @@
|
|
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.getCloudCredentials = exports.handleAPIErrors = exports.isCloudAPIErrorResponse = exports.createDirectory = exports.sleepms = exports.checkReadFile = exports.writeCredentials = exports.deleteCredentials = exports.credentialsExist = exports.isTokenExpired = exports.getLogger = exports.dbosEnvPath = exports.DBOSCloudHost = exports.AppLanguages = void 0;
|
7
|
+
const fs_1 = __importDefault(require("fs"));
|
8
|
+
const axios_1 = __importDefault(require("axios"));
|
9
|
+
const jsonwebtoken_1 = __importDefault(require("jsonwebtoken"));
|
10
|
+
const node_path_1 = __importDefault(require("node:path"));
|
11
|
+
const prompts_1 = require("@inquirer/prompts");
|
12
|
+
const validator_1 = __importDefault(require("validator"));
|
13
|
+
const authentication_1 = require("./authentication");
|
14
|
+
const winston_1 = require("winston");
|
15
|
+
var AppLanguages;
|
16
|
+
(function (AppLanguages) {
|
17
|
+
AppLanguages["Node"] = "node";
|
18
|
+
AppLanguages["Python"] = "python";
|
19
|
+
})(AppLanguages || (exports.AppLanguages = AppLanguages = {}));
|
20
|
+
exports.DBOSCloudHost = process.env.DBOS_DOMAIN || "cloud.dbos.dev";
|
21
|
+
exports.dbosEnvPath = ".dbos";
|
22
|
+
let curLogger = undefined;
|
23
|
+
function getLogger(verbose) {
|
24
|
+
if (curLogger)
|
25
|
+
return curLogger;
|
26
|
+
const winstonTransports = [];
|
27
|
+
winstonTransports.push(new winston_1.transports.Console({
|
28
|
+
format: consoleFormat,
|
29
|
+
level: verbose ? "debug" : "info",
|
30
|
+
}));
|
31
|
+
return (curLogger = (0, winston_1.createLogger)({ transports: winstonTransports }));
|
32
|
+
}
|
33
|
+
exports.getLogger = getLogger;
|
34
|
+
const consoleFormat = winston_1.format.combine(winston_1.format.errors({ stack: true }), winston_1.format.timestamp(), winston_1.format.colorize(), winston_1.format.printf((info) => {
|
35
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
36
|
+
const { timestamp, level, message, stack } = info;
|
37
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-assignment
|
38
|
+
const ts = timestamp.slice(0, 19).replace("T", " ");
|
39
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-assignment
|
40
|
+
const formattedStack = stack?.split("\n").slice(1).join("\n");
|
41
|
+
const messageString = typeof message === "string" ? message : JSON.stringify(message);
|
42
|
+
return `${ts} [${level}]: ${messageString} ${stack ? "\n" + formattedStack : ""}`;
|
43
|
+
}));
|
44
|
+
function isTokenExpired(token) {
|
45
|
+
try {
|
46
|
+
const { exp } = jsonwebtoken_1.default.decode(token);
|
47
|
+
if (!exp)
|
48
|
+
return false;
|
49
|
+
return Date.now() >= exp * 1000;
|
50
|
+
}
|
51
|
+
catch (error) {
|
52
|
+
return true;
|
53
|
+
}
|
54
|
+
}
|
55
|
+
exports.isTokenExpired = isTokenExpired;
|
56
|
+
function credentialsExist() {
|
57
|
+
return fs_1.default.existsSync(`./${exports.dbosEnvPath}/credentials`);
|
58
|
+
}
|
59
|
+
exports.credentialsExist = credentialsExist;
|
60
|
+
function deleteCredentials() {
|
61
|
+
fs_1.default.unlinkSync(`./${exports.dbosEnvPath}/credentials`);
|
62
|
+
}
|
63
|
+
exports.deleteCredentials = deleteCredentials;
|
64
|
+
function writeCredentials(credentials) {
|
65
|
+
fs_1.default.mkdirSync(exports.dbosEnvPath, { recursive: true });
|
66
|
+
fs_1.default.writeFileSync(node_path_1.default.join(exports.dbosEnvPath, "credentials"), JSON.stringify(credentials), "utf-8");
|
67
|
+
}
|
68
|
+
exports.writeCredentials = writeCredentials;
|
69
|
+
function checkReadFile(path, encoding = "utf8") {
|
70
|
+
// First, check the file
|
71
|
+
fs_1.default.stat(path, (error, stats) => {
|
72
|
+
if (error) {
|
73
|
+
throw new Error(`checking on ${path}. ${error.code}: ${error.errno}`);
|
74
|
+
}
|
75
|
+
else if (!stats.isFile()) {
|
76
|
+
throw new Error(`config file ${path} is not a file`);
|
77
|
+
}
|
78
|
+
});
|
79
|
+
// Then, read its content
|
80
|
+
const fileContent = fs_1.default.readFileSync(path, { encoding });
|
81
|
+
return fileContent;
|
82
|
+
}
|
83
|
+
exports.checkReadFile = checkReadFile;
|
84
|
+
const sleepms = (ms) => new Promise((r) => setTimeout(r, ms));
|
85
|
+
exports.sleepms = sleepms;
|
86
|
+
function createDirectory(path) {
|
87
|
+
return fs_1.default.mkdirSync(path, { recursive: true });
|
88
|
+
}
|
89
|
+
exports.createDirectory = createDirectory;
|
90
|
+
function isCloudAPIErrorResponse(obj) {
|
91
|
+
return (typeof obj === "object" &&
|
92
|
+
obj !== null &&
|
93
|
+
"message" in obj &&
|
94
|
+
typeof obj["message"] === "string" &&
|
95
|
+
"statusCode" in obj &&
|
96
|
+
typeof obj["statusCode"] === "number" &&
|
97
|
+
"requestID" in obj &&
|
98
|
+
typeof obj["requestID"] === "string");
|
99
|
+
}
|
100
|
+
exports.isCloudAPIErrorResponse = isCloudAPIErrorResponse;
|
101
|
+
function handleAPIErrors(label, e) {
|
102
|
+
const logger = getLogger();
|
103
|
+
const resp = e.response?.data;
|
104
|
+
logger.error(`[${resp.requestID}] ${label}: ${resp.message}.`);
|
105
|
+
}
|
106
|
+
exports.handleAPIErrors = handleAPIErrors;
|
107
|
+
/**
|
108
|
+
* Login and obtain user credentials.
|
109
|
+
* First checks if the credentials exist and not expired.
|
110
|
+
* If so, returns the credentials.
|
111
|
+
* If not, try to login the user.
|
112
|
+
* If the user is not registered, prompts to register the user.
|
113
|
+
* @param {string} host - The DBOS Cloud host to authenticate against.
|
114
|
+
* @returns {DBOSCloudCredentials} - The user's DBOS Cloud credentials.
|
115
|
+
*/
|
116
|
+
async function getCloudCredentials(host, logger, userName, secret) {
|
117
|
+
// Check if credentials exist and are not expired
|
118
|
+
const credentials = await checkCredentials(logger);
|
119
|
+
// Log in the user.
|
120
|
+
if (credentials.token === "") {
|
121
|
+
const authResponse = await (0, authentication_1.authenticate)(logger, false);
|
122
|
+
if (authResponse === null) {
|
123
|
+
logger.error("Failed to login. Exiting...");
|
124
|
+
process.exit(1);
|
125
|
+
}
|
126
|
+
credentials.token = authResponse.token;
|
127
|
+
credentials.refreshToken = authResponse.refreshToken;
|
128
|
+
// Cache the user credentials, but it doesn't have the user name and organization yet.
|
129
|
+
// This is designed to avoid extra logins when registering the user next time.
|
130
|
+
writeCredentials(credentials);
|
131
|
+
}
|
132
|
+
// Check if the user exists in DBOS Cloud
|
133
|
+
const userExists = await checkUserProfile(host, credentials, logger);
|
134
|
+
if (userExists) {
|
135
|
+
writeCredentials(credentials);
|
136
|
+
logger.debug(`Successfully logged in as ${credentials.userName}!`);
|
137
|
+
return credentials;
|
138
|
+
}
|
139
|
+
// User doesn't exist, register the user in DBOS Cloud
|
140
|
+
await registerUser(host, credentials, logger, userName, secret);
|
141
|
+
writeCredentials(credentials);
|
142
|
+
return credentials;
|
143
|
+
}
|
144
|
+
exports.getCloudCredentials = getCloudCredentials;
|
145
|
+
/**
|
146
|
+
* Check if the credentials exist and are not expired.
|
147
|
+
* If so, return the credentials.
|
148
|
+
* If not, delete the existing credentials and return empty credentials.
|
149
|
+
* @param logger - The logger instance.
|
150
|
+
* @returns {DBOSCloudCredentials} - The user's DBOS Cloud credentials if exists, or an empty one.
|
151
|
+
*/
|
152
|
+
async function checkCredentials(logger) {
|
153
|
+
const emptyCredentials = { token: "", userName: "", organization: "" };
|
154
|
+
if (!credentialsExist()) {
|
155
|
+
return Promise.resolve(emptyCredentials);
|
156
|
+
}
|
157
|
+
const credentials = JSON.parse(fs_1.default.readFileSync(`./${exports.dbosEnvPath}/credentials`).toString("utf-8"));
|
158
|
+
credentials.token = credentials.token.replace(/\r|\n/g, ""); // Trim the trailing /r /n.
|
159
|
+
logger.debug(`Loaded credentials from ${exports.dbosEnvPath}/credentials`);
|
160
|
+
if (isTokenExpired(credentials.token)) {
|
161
|
+
logger.warn("Credentials expired. Logging in again...");
|
162
|
+
deleteCredentials();
|
163
|
+
return Promise.resolve(emptyCredentials);
|
164
|
+
}
|
165
|
+
return Promise.resolve(credentials);
|
166
|
+
}
|
167
|
+
/**
|
168
|
+
* Check user profile in DBOS Cloud.
|
169
|
+
* @param host - The DBOS Cloud host to authenticate against.
|
170
|
+
* @param credentials - The user's DBOS Cloud credentials (to be updated with userName and organization).
|
171
|
+
* @param logger - The logger instance.
|
172
|
+
* @returns {boolean} - True if the user profile exists, false otherwise.
|
173
|
+
*/
|
174
|
+
async function checkUserProfile(host, credentials, logger) {
|
175
|
+
const bearerToken = "Bearer " + credentials.token;
|
176
|
+
try {
|
177
|
+
const response = await axios_1.default.get(`https://${host}/v1alpha1/user/profile`, {
|
178
|
+
headers: {
|
179
|
+
"Content-Type": "application/json",
|
180
|
+
Authorization: bearerToken,
|
181
|
+
},
|
182
|
+
});
|
183
|
+
const profile = response.data;
|
184
|
+
credentials.userName = profile.Name;
|
185
|
+
credentials.organization = profile.Organization;
|
186
|
+
return true;
|
187
|
+
}
|
188
|
+
catch (e) {
|
189
|
+
const axiosError = e;
|
190
|
+
const errorLabel = `Failed to login`;
|
191
|
+
if (isCloudAPIErrorResponse(axiosError.response?.data)) {
|
192
|
+
const resp = axiosError.response?.data;
|
193
|
+
if (!resp.message.includes("user not found in DBOS Cloud")) {
|
194
|
+
handleAPIErrors(errorLabel, axiosError);
|
195
|
+
process.exit(1);
|
196
|
+
}
|
197
|
+
}
|
198
|
+
else {
|
199
|
+
logger.error(`${errorLabel}: ${e.message}`);
|
200
|
+
process.exit(1);
|
201
|
+
}
|
202
|
+
}
|
203
|
+
return false;
|
204
|
+
}
|
205
|
+
function isValidUsername(value) {
|
206
|
+
if (value.length < 3 || value.length > 30) {
|
207
|
+
return "Username must be 3~30 characters long";
|
208
|
+
}
|
209
|
+
if (!validator_1.default.matches(value, "^[a-z0-9_]+$")) {
|
210
|
+
return "Username must contain only lowercase letters, numbers, and underscores.";
|
211
|
+
}
|
212
|
+
// TODO: Check if the username is already taken. Need a cloud endpoint for this.
|
213
|
+
return true;
|
214
|
+
}
|
215
|
+
/**
|
216
|
+
* Register the user in DBOS Cloud and modify the credentials.
|
217
|
+
* Exit the process on errors.
|
218
|
+
* @param {string} host - The DBOS Cloud host to authenticate against.
|
219
|
+
* @param {DBOSCloudCredentials} credentials - The user's DBOS Cloud credentials (to be updated with userName and organization).
|
220
|
+
* @param {Logger} logger - The logger instance.
|
221
|
+
* @returns
|
222
|
+
*/
|
223
|
+
async function registerUser(host, credentials, logger, userName, secret) {
|
224
|
+
logger.info(`Please register for DBOS Cloud`);
|
225
|
+
if (!userName) {
|
226
|
+
userName = await (0, prompts_1.input)({
|
227
|
+
message: "Choose your username:",
|
228
|
+
required: true,
|
229
|
+
validate: isValidUsername,
|
230
|
+
});
|
231
|
+
}
|
232
|
+
if (isValidUsername(userName) !== true) {
|
233
|
+
logger.error(`Invalid username: ${userName}. Usernames must be between 3 and 30 characters long and contain only lowercase letters, underscores, and numbers.`);
|
234
|
+
process.exit(1);
|
235
|
+
}
|
236
|
+
const bearerToken = "Bearer " + credentials.token;
|
237
|
+
try {
|
238
|
+
await axios_1.default.put(`https://${host}/v1alpha1/user`, {
|
239
|
+
name: userName,
|
240
|
+
secret: secret,
|
241
|
+
}, {
|
242
|
+
headers: {
|
243
|
+
"Content-Type": "application/json",
|
244
|
+
Authorization: bearerToken,
|
245
|
+
},
|
246
|
+
});
|
247
|
+
const response = await axios_1.default.get(`https://${host}/v1alpha1/user/profile`, {
|
248
|
+
headers: {
|
249
|
+
"Content-Type": "application/json",
|
250
|
+
Authorization: bearerToken,
|
251
|
+
},
|
252
|
+
});
|
253
|
+
const profile = response.data;
|
254
|
+
credentials.userName = profile.Name;
|
255
|
+
credentials.organization = profile.Organization;
|
256
|
+
logger.info(` ... Successfully registered and logged in as ${credentials.userName}!`);
|
257
|
+
}
|
258
|
+
catch (e) {
|
259
|
+
const errorLabel = `Failed to register user ${userName}`;
|
260
|
+
const axiosError = e;
|
261
|
+
if (isCloudAPIErrorResponse(axiosError.response?.data)) {
|
262
|
+
handleAPIErrors(errorLabel, axiosError);
|
263
|
+
}
|
264
|
+
else {
|
265
|
+
logger.error(`${errorLabel}: ${e.message}`);
|
266
|
+
}
|
267
|
+
process.exit(1);
|
268
|
+
}
|
269
|
+
return;
|
270
|
+
}
|
271
|
+
//# sourceMappingURL=cloudutils.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"cloudutils.js","sourceRoot":"","sources":["../../../../src/dbos-runtime/cloudutils/cloudutils.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,21 @@
|
|
1
|
+
import { DBOSCloudCredentials } from "./cloudutils";
|
2
|
+
import { Logger } from "winston";
|
3
|
+
export interface UserDBInstance {
|
4
|
+
readonly PostgresInstanceName: string;
|
5
|
+
readonly Status: string;
|
6
|
+
readonly HostName: string;
|
7
|
+
readonly Port: number;
|
8
|
+
readonly DatabaseUsername: string;
|
9
|
+
readonly IsLinked: boolean;
|
10
|
+
readonly SupabaseReference: string | null;
|
11
|
+
}
|
12
|
+
export interface UserDBCredentials {
|
13
|
+
readonly RoleName: string;
|
14
|
+
readonly Password: string;
|
15
|
+
}
|
16
|
+
export declare function createUserDb(host: string, dbName: string, appDBUsername: string, appDBPassword: string, sync: boolean, userCredentials?: DBOSCloudCredentials): Promise<0 | 1>;
|
17
|
+
export declare function getUserDBInfo(host: string, dbName: string, userCredentials?: DBOSCloudCredentials): Promise<UserDBInstance>;
|
18
|
+
export declare function chooseAppDBServer(logger: Logger, host: string, userCredentials: DBOSCloudCredentials): Promise<string>;
|
19
|
+
export declare function createUserRole(logger: Logger, host: string, userCredentials: DBOSCloudCredentials, dbName: string): Promise<void>;
|
20
|
+
export declare function getUserDBCredentials(logger: Logger, host: string, userCredentials: DBOSCloudCredentials, dbName: string): Promise<UserDBCredentials>;
|
21
|
+
//# sourceMappingURL=databases.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"databases.d.ts","sourceRoot":"","sources":["../../../../src/dbos-runtime/cloudutils/databases.ts"],"names":[],"mappings":"AACA,OAAO,EAAqF,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACvI,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAGjC,MAAM,WAAW,cAAc;IAC3B,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7C;AAED,MAAM,WAAW,iBAAiB;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC7B;AAeD,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,eAAe,CAAC,EAAE,oBAAoB,kBAkDnK;AAED,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,cAAc,CAAC,CAejI;AAED,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,eAAe,EAAE,oBAAoB,GAAG,OAAO,CAAC,MAAM,CAAC,CAmD5H;AAGD,wBAAsB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,EAAE,MAAM,iBAmBvH;AAED,wBAAsB,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAqB1J"}
|