@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
@@ -1,190 +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.getUserDBCredentials = exports.createUserRole = exports.chooseAppDBServer = exports.getUserDBInfo = exports.createUserDb = void 0;
7
- const axios_1 = __importDefault(require("axios"));
8
- const cloudutils_1 = require("./cloudutils");
9
- const prompts_1 = require("@inquirer/prompts");
10
- function isValidPassword(logger, password) {
11
- if (password.length < 8 || password.length > 128) {
12
- logger.error('Invalid database password. Passwords must be between 8 and 128 characters long');
13
- return false;
14
- }
15
- if (password.includes('/') ||
16
- password.includes('"') ||
17
- password.includes('@') ||
18
- password.includes(' ') ||
19
- password.includes("'")) {
20
- logger.error('Password contains invalid character. Passwords can contain any ASCII character except @, /, \\, ", \', and spaces');
21
- return false;
22
- }
23
- return true;
24
- }
25
- async function createUserDb(host, dbName, appDBUsername, appDBPassword, sync, userCredentials) {
26
- const logger = (0, cloudutils_1.getLogger)();
27
- if (!userCredentials) {
28
- userCredentials = await (0, cloudutils_1.getCloudCredentials)(host, logger);
29
- }
30
- const bearerToken = 'Bearer ' + userCredentials.token;
31
- if (!isValidPassword(logger, appDBPassword)) {
32
- return 1;
33
- }
34
- try {
35
- await axios_1.default.post(`https://${host}/v1alpha1/${userCredentials.organization}/databases/userdb`, { Name: dbName, AdminName: appDBUsername, AdminPassword: appDBPassword }, {
36
- headers: {
37
- 'Content-Type': 'application/json',
38
- Authorization: bearerToken,
39
- },
40
- });
41
- logger.info(`Successfully started provisioning database: ${dbName}`);
42
- if (sync) {
43
- let status = '';
44
- while (status !== 'available' && status !== 'backing-up') {
45
- if (status === '') {
46
- await (0, cloudutils_1.sleepms)(5000); // First time sleep 5 sec
47
- }
48
- else {
49
- await (0, cloudutils_1.sleepms)(30000); // Otherwise, sleep 30 sec
50
- }
51
- const userDBInfo = await getUserDBInfo(host, dbName, userCredentials);
52
- logger.info(userDBInfo);
53
- status = userDBInfo.Status;
54
- }
55
- }
56
- logger.info(`Database successfully provisioned!`);
57
- return 0;
58
- }
59
- catch (e) {
60
- const errorLabel = `Failed to create database ${dbName}`;
61
- const axiosError = e;
62
- if ((0, cloudutils_1.isCloudAPIErrorResponse)(axiosError.response?.data)) {
63
- (0, cloudutils_1.handleAPIErrors)(errorLabel, axiosError);
64
- }
65
- else {
66
- logger.error(`${errorLabel}: ${e.message}`);
67
- }
68
- return 1;
69
- }
70
- }
71
- exports.createUserDb = createUserDb;
72
- async function getUserDBInfo(host, dbName, userCredentials) {
73
- const logger = (0, cloudutils_1.getLogger)();
74
- if (!userCredentials) {
75
- userCredentials = await (0, cloudutils_1.getCloudCredentials)(host, logger);
76
- }
77
- const bearerToken = 'Bearer ' + userCredentials.token;
78
- const res = await axios_1.default.get(`https://${host}/v1alpha1/${userCredentials.organization}/databases/userdb/info/${dbName}`, {
79
- headers: {
80
- 'Content-Type': 'application/json',
81
- Authorization: bearerToken,
82
- },
83
- });
84
- return res.data;
85
- }
86
- exports.getUserDBInfo = getUserDBInfo;
87
- async function chooseAppDBServer(logger, host, userCredentials) {
88
- // List existing database instances.
89
- let userDBs = [];
90
- const bearerToken = 'Bearer ' + userCredentials.token;
91
- try {
92
- const res = await axios_1.default.get(`https://${host}/v1alpha1/${userCredentials.organization}/databases`, {
93
- headers: {
94
- 'Content-Type': 'application/json',
95
- Authorization: bearerToken,
96
- },
97
- });
98
- userDBs = res.data;
99
- }
100
- catch (e) {
101
- const errorLabel = `Failed to list databases`;
102
- const axiosError = e;
103
- if ((0, cloudutils_1.isCloudAPIErrorResponse)(axiosError.response?.data)) {
104
- (0, cloudutils_1.handleAPIErrors)(errorLabel, axiosError);
105
- }
106
- else {
107
- logger.error(`${errorLabel}: ${e.message}`);
108
- }
109
- process.exit(1);
110
- }
111
- let userDBName = '';
112
- if (userDBs.length === 0) {
113
- // If not, prompt the user to provision one.
114
- logger.info('Provisioning a cloud Postgres database server');
115
- userDBName = `${userCredentials.userName}-db-server`;
116
- // Use a default user name and auto generated password.
117
- const appDBUserName = 'dbos_user';
118
- const appDBPassword = Buffer.from(Math.random().toString()).toString('base64');
119
- const res = await createUserDb(host, userDBName, appDBUserName, appDBPassword, true);
120
- if (res !== 0) {
121
- process.exit(1);
122
- }
123
- }
124
- else if (userDBs.length > 1) {
125
- // If there is more than one database instances, prompt the user to select one.
126
- userDBName = await (0, prompts_1.select)({
127
- message: 'Choose a database instance for this app:',
128
- choices: userDBs.map((db) => ({
129
- name: db.PostgresInstanceName,
130
- value: db.PostgresInstanceName,
131
- })),
132
- });
133
- }
134
- else {
135
- // Use the only available database server.
136
- userDBName = userDBs[0].PostgresInstanceName;
137
- logger.info(`Using database instance: ${userDBName}`);
138
- }
139
- return userDBName;
140
- }
141
- exports.chooseAppDBServer = chooseAppDBServer;
142
- async function createUserRole(logger, host, userCredentials, dbName) {
143
- const bearerToken = 'Bearer ' + userCredentials.token;
144
- try {
145
- await axios_1.default.post(`https://${host}/v1alpha1/${userCredentials.organization}/databases/userdb/${dbName}/createuserdbrole`, {}, {
146
- headers: {
147
- 'Content-Type': 'application/json',
148
- Authorization: bearerToken,
149
- },
150
- });
151
- }
152
- catch (e) {
153
- const errorLabel = `Failed to create the user role`;
154
- const axiosError = e;
155
- if ((0, cloudutils_1.isCloudAPIErrorResponse)(axiosError.response?.data)) {
156
- (0, cloudutils_1.handleAPIErrors)(errorLabel, axiosError);
157
- }
158
- else {
159
- logger.error(`${errorLabel}: ${e.message}`);
160
- }
161
- process.exit(1);
162
- }
163
- }
164
- exports.createUserRole = createUserRole;
165
- async function getUserDBCredentials(logger, host, userCredentials, dbName) {
166
- // List existing database instances.
167
- const bearerToken = 'Bearer ' + userCredentials.token;
168
- try {
169
- const res = await axios_1.default.get(`https://${host}/v1alpha1/${userCredentials.organization}/databases/userdb/${dbName}/credentials`, {
170
- headers: {
171
- 'Content-Type': 'application/json',
172
- Authorization: bearerToken,
173
- },
174
- });
175
- return res.data;
176
- }
177
- catch (e) {
178
- const errorLabel = `Failed to list databases`;
179
- const axiosError = e;
180
- if ((0, cloudutils_1.isCloudAPIErrorResponse)(axiosError.response?.data)) {
181
- (0, cloudutils_1.handleAPIErrors)(errorLabel, axiosError);
182
- }
183
- else {
184
- logger.error(`${errorLabel}: ${e.message}`);
185
- }
186
- process.exit(1);
187
- }
188
- }
189
- exports.getUserDBCredentials = getUserDBCredentials;
190
- //# sourceMappingURL=databases.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"databases.js","sourceRoot":"","sources":["../../../../src/dbos-runtime/cloudutils/databases.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- This is 95% lifted from the dbos-cloud package. We should figure out how to get imports working across the monorepo, then get rid of this copy-pasted code.