@dbos-inc/dbos-sdk 3.0.35-preview → 3.0.38-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.
Files changed (30) hide show
  1. package/dist/src/dbos-runtime/config.d.ts.map +1 -1
  2. package/dist/src/dbos-runtime/config.js +31 -26
  3. package/dist/src/dbos-runtime/config.js.map +1 -1
  4. package/dist/src/dbos-runtime/docker_pg_helper.d.ts +3 -0
  5. package/dist/src/dbos-runtime/docker_pg_helper.d.ts.map +1 -1
  6. package/dist/src/dbos-runtime/docker_pg_helper.js +17 -4
  7. package/dist/src/dbos-runtime/docker_pg_helper.js.map +1 -1
  8. package/dist/src/telemetry/exporters.d.ts +2 -2
  9. package/dist/src/telemetry/exporters.d.ts.map +1 -1
  10. package/dist/src/telemetry/exporters.js +3 -2
  11. package/dist/src/telemetry/exporters.js.map +1 -1
  12. package/dist/src/utils.d.ts +1 -0
  13. package/dist/src/utils.d.ts.map +1 -1
  14. package/dist/src/utils.js +5 -1
  15. package/dist/src/utils.js.map +1 -1
  16. package/dist/tsconfig.tsbuildinfo +1 -1
  17. package/package.json +1 -7
  18. package/dist/src/dbos-runtime/cloudutils/authentication.d.ts +0 -7
  19. package/dist/src/dbos-runtime/cloudutils/authentication.d.ts.map +0 -1
  20. package/dist/src/dbos-runtime/cloudutils/authentication.js +0 -101
  21. package/dist/src/dbos-runtime/cloudutils/authentication.js.map +0 -1
  22. package/dist/src/dbos-runtime/cloudutils/cloudutils.d.ts +0 -50
  23. package/dist/src/dbos-runtime/cloudutils/cloudutils.d.ts.map +0 -1
  24. package/dist/src/dbos-runtime/cloudutils/cloudutils.js +0 -262
  25. package/dist/src/dbos-runtime/cloudutils/cloudutils.js.map +0 -1
  26. package/dist/src/dbos-runtime/cloudutils/databases.d.ts +0 -21
  27. package/dist/src/dbos-runtime/cloudutils/databases.d.ts.map +0 -1
  28. package/dist/src/dbos-runtime/cloudutils/databases.js +0 -190
  29. package/dist/src/dbos-runtime/cloudutils/databases.js.map +0 -1
  30. package/src/dbos-runtime/cloudutils/README.md +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dbos-inc/dbos-sdk",
3
- "version": "3.0.35-preview",
3
+ "version": "3.0.38-preview",
4
4
  "description": "A Typescript framework built on the database",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -41,8 +41,6 @@
41
41
  "@fastify/express": "^4.0.1",
42
42
  "@nestjs/common": "^11.0.12",
43
43
  "@prisma/client": "^5.3.1",
44
- "@types/co-body": "^6.1.3",
45
- "@types/dockerode": "^3.3.34",
46
44
  "@types/koa": "^2.15.0",
47
45
  "@types/koa__cors": "^5.0.0",
48
46
  "@types/koa__router": "^12.0.4",
@@ -82,15 +80,11 @@
82
80
  "@opentelemetry/sdk-trace-base": "1.22.0",
83
81
  "@opentelemetry/semantic-conventions": "1.22.0",
84
82
  "ajv": "8.13.0",
85
- "axios": "^1.7.9",
86
83
  "commander": "12.0.0",
87
- "jsonwebtoken": "^9.0.2",
88
- "jwks-rsa": "^3.1.0",
89
84
  "knex": "3.1.0",
90
85
  "koa": "^2.15.4",
91
86
  "lodash": "4.17.21",
92
87
  "pg": "8.11.3",
93
- "pg-connection-string": "^2.7.0",
94
88
  "pg-protocol": "^1.6.1",
95
89
  "reflect-metadata": "^0.2.2",
96
90
  "serialize-error": "8.1.0",
@@ -1,7 +0,0 @@
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
@@ -1 +0,0 @@
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,CAChC,MAAM,EAAE,MAAM,EACd,eAAe,GAAE,OAAe,GAC/B,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC,CA4DxC"}
@@ -1,101 +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.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
@@ -1 +0,0 @@
1
- {"version":3,"file":"authentication.js","sourceRoot":"","sources":["../../../../src/dbos-runtime/cloudutils/authentication.ts"],"names":[],"mappings":"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"}
@@ -1,50 +0,0 @@
1
- /// <reference types="node" />
2
- /// <reference types="node" />
3
- import { AxiosError } from 'axios';
4
- import { createLogger, Logger } from 'winston';
5
- export interface DBOSCloudCredentials {
6
- token: string;
7
- refreshToken?: string;
8
- userName: string;
9
- organization: string;
10
- }
11
- export interface UserProfile {
12
- Name: string;
13
- Email: string;
14
- Organization: string;
15
- SubscriptionPlan: string;
16
- }
17
- export declare enum AppLanguages {
18
- Node = "node",
19
- Python = "python"
20
- }
21
- export declare const DBOSCloudHost: string;
22
- export declare const dbosEnvPath = ".dbos";
23
- export type CLILogger = ReturnType<typeof createLogger>;
24
- export declare function getLogger(verbose?: boolean): CLILogger;
25
- export declare function isTokenExpired(token: string): boolean;
26
- export declare function credentialsExist(): boolean;
27
- export declare function deleteCredentials(): void;
28
- export declare function writeCredentials(credentials: DBOSCloudCredentials): void;
29
- export declare function checkReadFile(path: string, encoding?: BufferEncoding): string | Buffer;
30
- export declare const sleepms: (ms: number) => Promise<unknown>;
31
- export declare function createDirectory(path: string): string | undefined;
32
- export interface CloudAPIErrorResponse {
33
- message: string;
34
- statusCode: number;
35
- requestID: string;
36
- DetailedError?: string;
37
- }
38
- export declare function isCloudAPIErrorResponse(obj: unknown): obj is CloudAPIErrorResponse;
39
- export declare function handleAPIErrors(label: string, e: AxiosError): void;
40
- /**
41
- * Login and obtain user credentials.
42
- * First checks if the credentials exist and not expired.
43
- * If so, returns the credentials.
44
- * If not, try to login the user.
45
- * If the user is not registered, prompts to register the user.
46
- * @param {string} host - The DBOS Cloud host to authenticate against.
47
- * @returns {DBOSCloudCredentials} - The user's DBOS Cloud credentials.
48
- */
49
- export declare function getCloudCredentials(host: string, logger: Logger, userName?: string, secret?: string): Promise<DBOSCloudCredentials>;
50
- //# sourceMappingURL=cloudutils.d.ts.map
@@ -1 +0,0 @@
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,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAG3D,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;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAQrD;AAED,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;AAED;;;;;;;;GAQG;AACH,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,QAAQ,CAAC,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,oBAAoB,CAAC,CA+B/B"}
@@ -1,262 +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.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
- const logs_1 = require("../../telemetry/logs");
16
- var AppLanguages;
17
- (function (AppLanguages) {
18
- AppLanguages["Node"] = "node";
19
- AppLanguages["Python"] = "python";
20
- })(AppLanguages || (exports.AppLanguages = AppLanguages = {}));
21
- exports.DBOSCloudHost = process.env.DBOS_DOMAIN || 'cloud.dbos.dev';
22
- exports.dbosEnvPath = '.dbos';
23
- let curLogger = undefined;
24
- function getLogger(verbose) {
25
- if (curLogger)
26
- return curLogger;
27
- const winstonTransports = [];
28
- winstonTransports.push(new winston_1.transports.Console({
29
- format: logs_1.consoleFormat,
30
- level: verbose ? 'debug' : 'info',
31
- }));
32
- return (curLogger = (0, winston_1.createLogger)({ transports: winstonTransports }));
33
- }
34
- exports.getLogger = getLogger;
35
- function isTokenExpired(token) {
36
- try {
37
- const { exp } = jsonwebtoken_1.default.decode(token);
38
- if (!exp)
39
- return false;
40
- return Date.now() >= exp * 1000;
41
- }
42
- catch (error) {
43
- return true;
44
- }
45
- }
46
- exports.isTokenExpired = isTokenExpired;
47
- function credentialsExist() {
48
- return fs_1.default.existsSync(`./${exports.dbosEnvPath}/credentials`);
49
- }
50
- exports.credentialsExist = credentialsExist;
51
- function deleteCredentials() {
52
- fs_1.default.unlinkSync(`./${exports.dbosEnvPath}/credentials`);
53
- }
54
- exports.deleteCredentials = deleteCredentials;
55
- function writeCredentials(credentials) {
56
- fs_1.default.mkdirSync(exports.dbosEnvPath, { recursive: true });
57
- fs_1.default.writeFileSync(node_path_1.default.join(exports.dbosEnvPath, 'credentials'), JSON.stringify(credentials), 'utf-8');
58
- }
59
- exports.writeCredentials = writeCredentials;
60
- function checkReadFile(path, encoding = 'utf8') {
61
- // First, check the file
62
- fs_1.default.stat(path, (error, stats) => {
63
- if (error) {
64
- throw new Error(`checking on ${path}. ${error.code}: ${error.errno}`);
65
- }
66
- else if (!stats.isFile()) {
67
- throw new Error(`config file ${path} is not a file`);
68
- }
69
- });
70
- // Then, read its content
71
- const fileContent = fs_1.default.readFileSync(path, { encoding });
72
- return fileContent;
73
- }
74
- exports.checkReadFile = checkReadFile;
75
- const sleepms = (ms) => new Promise((r) => setTimeout(r, ms));
76
- exports.sleepms = sleepms;
77
- function createDirectory(path) {
78
- return fs_1.default.mkdirSync(path, { recursive: true });
79
- }
80
- exports.createDirectory = createDirectory;
81
- function isCloudAPIErrorResponse(obj) {
82
- return (typeof obj === 'object' &&
83
- obj !== null &&
84
- 'message' in obj &&
85
- typeof obj['message'] === 'string' &&
86
- 'statusCode' in obj &&
87
- typeof obj['statusCode'] === 'number' &&
88
- 'requestID' in obj &&
89
- typeof obj['requestID'] === 'string');
90
- }
91
- exports.isCloudAPIErrorResponse = isCloudAPIErrorResponse;
92
- function handleAPIErrors(label, e) {
93
- const logger = getLogger();
94
- const resp = e.response?.data;
95
- logger.error(`[${resp.requestID}] ${label}: ${resp.message}.`);
96
- }
97
- exports.handleAPIErrors = handleAPIErrors;
98
- /**
99
- * Login and obtain user credentials.
100
- * First checks if the credentials exist and not expired.
101
- * If so, returns the credentials.
102
- * If not, try to login the user.
103
- * If the user is not registered, prompts to register the user.
104
- * @param {string} host - The DBOS Cloud host to authenticate against.
105
- * @returns {DBOSCloudCredentials} - The user's DBOS Cloud credentials.
106
- */
107
- async function getCloudCredentials(host, logger, userName, secret) {
108
- // Check if credentials exist and are not expired
109
- const credentials = await checkCredentials(logger);
110
- // Log in the user.
111
- if (credentials.token === '') {
112
- const authResponse = await (0, authentication_1.authenticate)(logger, false);
113
- if (authResponse === null) {
114
- logger.error('Failed to login. Exiting...');
115
- process.exit(1);
116
- }
117
- credentials.token = authResponse.token;
118
- credentials.refreshToken = authResponse.refreshToken;
119
- // Cache the user credentials, but it doesn't have the user name and organization yet.
120
- // This is designed to avoid extra logins when registering the user next time.
121
- writeCredentials(credentials);
122
- }
123
- // Check if the user exists in DBOS Cloud
124
- const userExists = await checkUserProfile(host, credentials, logger);
125
- if (userExists) {
126
- writeCredentials(credentials);
127
- logger.debug(`Successfully logged in as ${credentials.userName}!`);
128
- return credentials;
129
- }
130
- // User doesn't exist, register the user in DBOS Cloud
131
- await registerUser(host, credentials, logger, userName, secret);
132
- writeCredentials(credentials);
133
- return credentials;
134
- }
135
- exports.getCloudCredentials = getCloudCredentials;
136
- /**
137
- * Check if the credentials exist and are not expired.
138
- * If so, return the credentials.
139
- * If not, delete the existing credentials and return empty credentials.
140
- * @param logger - The logger instance.
141
- * @returns {DBOSCloudCredentials} - The user's DBOS Cloud credentials if exists, or an empty one.
142
- */
143
- async function checkCredentials(logger) {
144
- const emptyCredentials = { token: '', userName: '', organization: '' };
145
- if (!credentialsExist()) {
146
- return Promise.resolve(emptyCredentials);
147
- }
148
- const credentials = JSON.parse(fs_1.default.readFileSync(`./${exports.dbosEnvPath}/credentials`).toString('utf-8'));
149
- credentials.token = credentials.token.replace(/\r|\n/g, ''); // Trim the trailing /r /n.
150
- logger.debug(`Loaded credentials from ${exports.dbosEnvPath}/credentials`);
151
- if (isTokenExpired(credentials.token)) {
152
- logger.warn('Credentials expired. Logging in again...');
153
- deleteCredentials();
154
- return Promise.resolve(emptyCredentials);
155
- }
156
- return Promise.resolve(credentials);
157
- }
158
- /**
159
- * Check user profile in DBOS Cloud.
160
- * @param host - The DBOS Cloud host to authenticate against.
161
- * @param credentials - The user's DBOS Cloud credentials (to be updated with userName and organization).
162
- * @param logger - The logger instance.
163
- * @returns {boolean} - True if the user profile exists, false otherwise.
164
- */
165
- async function checkUserProfile(host, credentials, logger) {
166
- const bearerToken = 'Bearer ' + credentials.token;
167
- try {
168
- const response = await axios_1.default.get(`https://${host}/v1alpha1/user/profile`, {
169
- headers: {
170
- 'Content-Type': 'application/json',
171
- Authorization: bearerToken,
172
- },
173
- });
174
- const profile = response.data;
175
- credentials.userName = profile.Name;
176
- credentials.organization = profile.Organization;
177
- return true;
178
- }
179
- catch (e) {
180
- const axiosError = e;
181
- const errorLabel = `Failed to login`;
182
- if (isCloudAPIErrorResponse(axiosError.response?.data)) {
183
- const resp = axiosError.response?.data;
184
- if (!resp.message.includes('user not found in DBOS Cloud')) {
185
- handleAPIErrors(errorLabel, axiosError);
186
- process.exit(1);
187
- }
188
- }
189
- else {
190
- logger.error(`${errorLabel}: ${e.message}`);
191
- process.exit(1);
192
- }
193
- }
194
- return false;
195
- }
196
- function isValidUsername(value) {
197
- if (value.length < 3 || value.length > 30) {
198
- return 'Username must be 3~30 characters long';
199
- }
200
- if (!validator_1.default.matches(value, '^[a-z0-9_]+$')) {
201
- return 'Username must contain only lowercase letters, numbers, and underscores.';
202
- }
203
- // TODO: Check if the username is already taken. Need a cloud endpoint for this.
204
- return true;
205
- }
206
- /**
207
- * Register the user in DBOS Cloud and modify the credentials.
208
- * Exit the process on errors.
209
- * @param {string} host - The DBOS Cloud host to authenticate against.
210
- * @param {DBOSCloudCredentials} credentials - The user's DBOS Cloud credentials (to be updated with userName and organization).
211
- * @param {Logger} logger - The logger instance.
212
- * @returns
213
- */
214
- async function registerUser(host, credentials, logger, userName, secret) {
215
- logger.info(`Please register for DBOS Cloud`);
216
- if (!userName) {
217
- userName = await (0, prompts_1.input)({
218
- message: 'Choose your username:',
219
- required: true,
220
- validate: isValidUsername,
221
- });
222
- }
223
- if (isValidUsername(userName) !== true) {
224
- logger.error(`Invalid username: ${userName}. Usernames must be between 3 and 30 characters long and contain only lowercase letters, underscores, and numbers.`);
225
- process.exit(1);
226
- }
227
- const bearerToken = 'Bearer ' + credentials.token;
228
- try {
229
- await axios_1.default.put(`https://${host}/v1alpha1/user`, {
230
- name: userName,
231
- secret: secret,
232
- }, {
233
- headers: {
234
- 'Content-Type': 'application/json',
235
- Authorization: bearerToken,
236
- },
237
- });
238
- const response = await axios_1.default.get(`https://${host}/v1alpha1/user/profile`, {
239
- headers: {
240
- 'Content-Type': 'application/json',
241
- Authorization: bearerToken,
242
- },
243
- });
244
- const profile = response.data;
245
- credentials.userName = profile.Name;
246
- credentials.organization = profile.Organization;
247
- logger.info(` ... Successfully registered and logged in as ${credentials.userName}!`);
248
- }
249
- catch (e) {
250
- const errorLabel = `Failed to register user ${userName}`;
251
- const axiosError = e;
252
- if (isCloudAPIErrorResponse(axiosError.response?.data)) {
253
- handleAPIErrors(errorLabel, axiosError);
254
- }
255
- else {
256
- logger.error(`${errorLabel}: ${e.message}`);
257
- }
258
- process.exit(1);
259
- }
260
- return;
261
- }
262
- //# sourceMappingURL=cloudutils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cloudutils.js","sourceRoot":"","sources":["../../../../src/dbos-runtime/cloudutils/cloudutils.ts"],"names":[],"mappings":"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"}
@@ -1,21 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"databases.d.ts","sourceRoot":"","sources":["../../../../src/dbos-runtime/cloudutils/databases.ts"],"names":[],"mappings":"AACA,OAAO,EAML,oBAAoB,EACrB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAGjC,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3C;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAsBD,wBAAsB,YAAY,CAChC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,MAAM,EACrB,aAAa,EAAE,MAAM,EACrB,IAAI,EAAE,OAAO,EACb,eAAe,CAAC,EAAE,oBAAoB,kBAmDvC;AAED,wBAAsB,aAAa,CACjC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,eAAe,CAAC,EAAE,oBAAoB,GACrC,OAAO,CAAC,cAAc,CAAC,CAkBzB;AAED,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,eAAe,EAAE,oBAAoB,GACpC,OAAO,CAAC,MAAM,CAAC,CAmDjB;AAED,wBAAsB,cAAc,CAClC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,eAAe,EAAE,oBAAoB,EACrC,MAAM,EAAE,MAAM,iBAwBf;AAED,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,eAAe,EAAE,oBAAoB,EACrC,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,iBAAiB,CAAC,CAwB5B"}