@dbos-inc/dbos-sdk 2.2.9-preview.g48d872ebd0 → 2.3.7-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/.husky/pre-commit +1 -0
- package/.prettierignore +3 -0
- package/.prettierrc +9 -0
- package/CODE_OF_CONDUCT.md +24 -18
- package/CONTRIBUTING.md +12 -10
- package/README.md +2 -2
- package/compose.yaml +17 -17
- package/dbos-config.schema.json +4 -13
- package/dist/schemas/user_db_schema.d.ts.map +1 -1
- package/dist/schemas/user_db_schema.js.map +1 -1
- package/dist/src/context.d.ts +12 -12
- package/dist/src/context.d.ts.map +1 -1
- package/dist/src/context.js +9 -9
- package/dist/src/context.js.map +1 -1
- package/dist/src/data_validation.d.ts +1 -1
- package/dist/src/data_validation.d.ts.map +1 -1
- package/dist/src/data_validation.js +14 -8
- package/dist/src/data_validation.js.map +1 -1
- package/dist/src/dbos-executor.d.ts +4 -2
- package/dist/src/dbos-executor.d.ts.map +1 -1
- package/dist/src/dbos-executor.js +131 -114
- package/dist/src/dbos-executor.js.map +1 -1
- package/dist/src/dbos-runtime/cli.d.ts +3 -3
- package/dist/src/dbos-runtime/cli.d.ts.map +1 -1
- package/dist/src/dbos-runtime/cli.js +79 -38
- package/dist/src/dbos-runtime/cli.js.map +1 -1
- package/dist/src/dbos-runtime/cloudutils/authentication.d.ts +1 -1
- package/dist/src/dbos-runtime/cloudutils/authentication.d.ts.map +1 -1
- package/dist/src/dbos-runtime/cloudutils/authentication.js +14 -14
- package/dist/src/dbos-runtime/cloudutils/authentication.js.map +1 -1
- package/dist/src/dbos-runtime/cloudutils/cloudutils.d.ts +2 -2
- package/dist/src/dbos-runtime/cloudutils/cloudutils.d.ts.map +1 -1
- package/dist/src/dbos-runtime/cloudutils/cloudutils.js +32 -32
- package/dist/src/dbos-runtime/cloudutils/cloudutils.js.map +1 -1
- package/dist/src/dbos-runtime/cloudutils/databases.d.ts +2 -2
- package/dist/src/dbos-runtime/cloudutils/databases.d.ts.map +1 -1
- package/dist/src/dbos-runtime/cloudutils/databases.js +25 -21
- package/dist/src/dbos-runtime/cloudutils/databases.js.map +1 -1
- package/dist/src/dbos-runtime/commands.d.ts +1 -1
- package/dist/src/dbos-runtime/commands.js +9 -9
- package/dist/src/dbos-runtime/config.d.ts +7 -7
- package/dist/src/dbos-runtime/config.d.ts.map +1 -1
- package/dist/src/dbos-runtime/config.js +30 -23
- package/dist/src/dbos-runtime/config.js.map +1 -1
- package/dist/src/dbos-runtime/configure.d.ts.map +1 -1
- package/dist/src/dbos-runtime/configure.js.map +1 -1
- package/dist/src/dbos-runtime/db_connection.d.ts.map +1 -1
- package/dist/src/dbos-runtime/db_connection.js +2 -2
- package/dist/src/dbos-runtime/db_connection.js.map +1 -1
- package/dist/src/dbos-runtime/db_wizard.d.ts +1 -1
- package/dist/src/dbos-runtime/db_wizard.d.ts.map +1 -1
- package/dist/src/dbos-runtime/db_wizard.js +18 -18
- package/dist/src/dbos-runtime/db_wizard.js.map +1 -1
- package/dist/src/dbos-runtime/debug.d.ts +2 -2
- package/dist/src/dbos-runtime/debug.d.ts.map +1 -1
- package/dist/src/dbos-runtime/debug.js +4 -4
- package/dist/src/dbos-runtime/debug.js.map +1 -1
- package/dist/src/dbos-runtime/migrate.d.ts +2 -2
- package/dist/src/dbos-runtime/migrate.d.ts.map +1 -1
- package/dist/src/dbos-runtime/migrate.js +14 -10
- package/dist/src/dbos-runtime/migrate.js.map +1 -1
- package/dist/src/dbos-runtime/reset.d.ts +2 -2
- package/dist/src/dbos-runtime/reset.js +2 -2
- package/dist/src/dbos-runtime/reset.js.map +1 -1
- package/dist/src/dbos-runtime/runtime.d.ts.map +1 -1
- package/dist/src/dbos-runtime/runtime.js +4 -4
- package/dist/src/dbos-runtime/runtime.js.map +1 -1
- package/dist/src/dbos-runtime/workflow_management.d.ts +5 -4
- package/dist/src/dbos-runtime/workflow_management.d.ts.map +1 -1
- package/dist/src/dbos-runtime/workflow_management.js +34 -14
- package/dist/src/dbos-runtime/workflow_management.js.map +1 -1
- package/dist/src/dbos.d.ts +23 -23
- package/dist/src/dbos.d.ts.map +1 -1
- package/dist/src/dbos.js +59 -59
- package/dist/src/dbos.js.map +1 -1
- package/dist/src/debugpoint.d.ts.map +1 -1
- package/dist/src/debugpoint.js +4 -4
- package/dist/src/debugpoint.js.map +1 -1
- package/dist/src/decorators.d.ts +8 -8
- package/dist/src/decorators.d.ts.map +1 -1
- package/dist/src/decorators.js +36 -33
- package/dist/src/decorators.js.map +1 -1
- package/dist/src/error.d.ts.map +1 -1
- package/dist/src/error.js +6 -5
- package/dist/src/error.js.map +1 -1
- package/dist/src/eventreceiver.d.ts +1 -1
- package/dist/src/eventreceiver.d.ts.map +1 -1
- package/dist/src/httpServer/handler.d.ts +8 -8
- package/dist/src/httpServer/handler.d.ts.map +1 -1
- package/dist/src/httpServer/handler.js.map +1 -1
- package/dist/src/httpServer/handlerTypes.d.ts.map +1 -1
- package/dist/src/httpServer/handlerTypes.js.map +1 -1
- package/dist/src/httpServer/middleware.d.ts +9 -9
- package/dist/src/httpServer/middleware.d.ts.map +1 -1
- package/dist/src/httpServer/middleware.js +6 -6
- package/dist/src/httpServer/middleware.js.map +1 -1
- package/dist/src/httpServer/server.d.ts +2 -2
- package/dist/src/httpServer/server.d.ts.map +1 -1
- package/dist/src/httpServer/server.js +27 -33
- package/dist/src/httpServer/server.js.map +1 -1
- package/dist/src/index.d.ts +16 -16
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/kafka/kafka.d.ts.map +1 -1
- package/dist/src/kafka/kafka.js +2 -2
- package/dist/src/kafka/kafka.js.map +1 -1
- package/dist/src/procedure.d.ts +6 -6
- package/dist/src/procedure.d.ts.map +1 -1
- package/dist/src/procedure.js.map +1 -1
- package/dist/src/scheduler/crontab.d.ts.map +1 -1
- package/dist/src/scheduler/crontab.js +54 -33
- package/dist/src/scheduler/crontab.js.map +1 -1
- package/dist/src/scheduler/scheduler.d.ts +3 -3
- package/dist/src/scheduler/scheduler.d.ts.map +1 -1
- package/dist/src/scheduler/scheduler.js +7 -7
- package/dist/src/scheduler/scheduler.js.map +1 -1
- package/dist/src/step.d.ts +4 -4
- package/dist/src/step.d.ts.map +1 -1
- package/dist/src/step.js.map +1 -1
- package/dist/src/system_database.d.ts +16 -11
- package/dist/src/system_database.d.ts.map +1 -1
- package/dist/src/system_database.js +136 -56
- package/dist/src/system_database.js.map +1 -1
- package/dist/src/telemetry/collector.d.ts +3 -3
- package/dist/src/telemetry/exporters.d.ts +1 -1
- package/dist/src/telemetry/exporters.js.map +1 -1
- package/dist/src/telemetry/index.d.ts +5 -5
- package/dist/src/telemetry/logs.d.ts +4 -4
- package/dist/src/telemetry/logs.d.ts.map +1 -1
- package/dist/src/telemetry/logs.js +18 -18
- package/dist/src/telemetry/logs.js.map +1 -1
- package/dist/src/telemetry/traces.d.ts +3 -3
- package/dist/src/telemetry/traces.js +7 -7
- package/dist/src/testing/testing_runtime.d.ts +11 -11
- package/dist/src/testing/testing_runtime.d.ts.map +1 -1
- package/dist/src/testing/testing_runtime.js +15 -8
- package/dist/src/testing/testing_runtime.js.map +1 -1
- package/dist/src/transaction.d.ts +6 -6
- package/dist/src/transaction.d.ts.map +1 -1
- package/dist/src/transaction.js +4 -4
- package/dist/src/transaction.js.map +1 -1
- package/dist/src/user_database.d.ts +4 -4
- package/dist/src/user_database.d.ts.map +1 -1
- package/dist/src/user_database.js +45 -45
- package/dist/src/user_database.js.map +1 -1
- package/dist/src/utils.d.ts.map +1 -1
- package/dist/src/utils.js +6 -12
- package/dist/src/utils.js.map +1 -1
- package/dist/src/wfqueue.d.ts +1 -1
- package/dist/src/wfqueue.d.ts.map +1 -1
- package/dist/src/wfqueue.js +5 -7
- package/dist/src/wfqueue.js.map +1 -1
- package/dist/src/workflow.d.ts +17 -10
- package/dist/src/workflow.d.ts.map +1 -1
- package/dist/src/workflow.js +19 -18
- package/dist/src/workflow.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/eslint.config.js +29 -27
- package/migrations/20240123182943_schema.js +7 -8
- package/migrations/20240123183021_tables.js +52 -48
- package/migrations/20240123183025_indexes.js +11 -14
- package/migrations/20240123183030_triggers.js +7 -8
- package/migrations/20240124015239_status_timestamp.js +12 -18
- package/migrations/20240201213211_replica_identity.js +8 -11
- package/migrations/20240205223925_foreign_keys.js +40 -18
- package/migrations/20240207192338_executor_id_index.js +8 -10
- package/migrations/20240430090000_tables.js +8 -10
- package/migrations/20240516004341_application_version.js +10 -12
- package/migrations/20240517000000_status_class_config.js +10 -14
- package/migrations/20240621000000_workflow_tries.js +8 -12
- package/migrations/20240924000000_workflowqueue.js +32 -23
- package/migrations/20241009150000_event_dispatch_kv.js +12 -14
- package/migrations/20252101000000_workflow_queues_executor_id.js +7 -9
- package/package.json +9 -2
- package/src/dbos-runtime/cloudutils/README.md +1 -1
@@ -7,11 +7,11 @@ exports.authenticate = void 0;
|
|
7
7
|
const axios_1 = __importDefault(require("axios"));
|
8
8
|
const jsonwebtoken_1 = __importDefault(require("jsonwebtoken"));
|
9
9
|
const jwks_rsa_1 = __importDefault(require("jwks-rsa"));
|
10
|
-
const DBOSCloudHost = process.env.DBOS_DOMAIN ||
|
11
|
-
const productionEnvironment = DBOSCloudHost ===
|
12
|
-
const Auth0Domain = productionEnvironment ?
|
13
|
-
const DBOSClientID = productionEnvironment ?
|
14
|
-
const DBOSCloudIdentifier =
|
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
15
|
const sleepms = (ms) => new Promise((r) => setTimeout(r, ms));
|
16
16
|
const client = (0, jwks_rsa_1.default)({
|
17
17
|
jwksUri: `https://${Auth0Domain}/.well-known/jwks.json`,
|
@@ -22,12 +22,12 @@ async function getSigningKey(kid) {
|
|
22
22
|
}
|
23
23
|
async function verifyToken(token) {
|
24
24
|
const decoded = jsonwebtoken_1.default.decode(token, { complete: true });
|
25
|
-
if (!decoded || typeof decoded ===
|
26
|
-
throw new Error(
|
25
|
+
if (!decoded || typeof decoded === 'string' || !decoded.header.kid) {
|
26
|
+
throw new Error('Invalid token');
|
27
27
|
}
|
28
28
|
const signingKey = await getSigningKey(decoded.header.kid);
|
29
29
|
return new Promise((resolve, reject) => {
|
30
|
-
jsonwebtoken_1.default.verify(token, signingKey, { algorithms: [
|
30
|
+
jsonwebtoken_1.default.verify(token, signingKey, { algorithms: ['RS256'] }, (err, verifiedToken) => {
|
31
31
|
if (err) {
|
32
32
|
reject(err);
|
33
33
|
}
|
@@ -41,12 +41,12 @@ async function verifyToken(token) {
|
|
41
41
|
async function authenticate(logger, getRefreshToken = false) {
|
42
42
|
logger.info(`Please authenticate with DBOS Cloud!`);
|
43
43
|
const deviceCodeRequest = {
|
44
|
-
method:
|
44
|
+
method: 'POST',
|
45
45
|
url: `https://${Auth0Domain}/oauth/device/code`,
|
46
|
-
headers: {
|
46
|
+
headers: { 'content-type': 'application/x-www-form-urlencoded' },
|
47
47
|
data: {
|
48
48
|
client_id: DBOSClientID,
|
49
|
-
scope: getRefreshToken ?
|
49
|
+
scope: getRefreshToken ? 'offline_access' : 'sub',
|
50
50
|
audience: DBOSCloudIdentifier,
|
51
51
|
},
|
52
52
|
};
|
@@ -65,11 +65,11 @@ async function authenticate(logger, getRefreshToken = false) {
|
|
65
65
|
const loginURL = deviceCodeResponse.verification_uri_complete;
|
66
66
|
console.log(`Login URL: ${loginURL}`);
|
67
67
|
const tokenRequest = {
|
68
|
-
method:
|
68
|
+
method: 'POST',
|
69
69
|
url: `https://${Auth0Domain}/oauth/token`,
|
70
|
-
headers: {
|
70
|
+
headers: { 'content-type': 'application/x-www-form-urlencoded' },
|
71
71
|
data: {
|
72
|
-
grant_type:
|
72
|
+
grant_type: 'urn:ietf:params:oauth:grant-type:device_code',
|
73
73
|
device_code: deviceCodeResponse.device_code,
|
74
74
|
client_id: DBOSClientID,
|
75
75
|
},
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"authentication.js","sourceRoot":"","sources":["../../../../src/dbos-runtime/cloudutils/authentication.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,gEAA+C;AAC/C,wDAAkC;AAGlC,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,gBAAgB,CAAC;AAClE,MAAM,qBAAqB,GAAG,aAAa,KAAK,gBAAgB,CAAC;AACjE,MAAM,WAAW,GAAG,qBAAqB,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,uBAAuB,CAAC;AACvF,MAAM,YAAY,GAAG,qBAAqB,CAAC,CAAC,CAAC,kCAAkC,CAAC,CAAC,CAAC,kCAAkC,CAAC;AACrH,MAAM,mBAAmB,GAAG,gBAAgB,CAAC;AAC7C,MAAM,OAAO,GAAG,CAAC,EAAU,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AAuBtE,MAAM,MAAM,GAAG,IAAA,kBAAU,EAAC;IACxB,OAAO,EAAE,WAAW,WAAW,wBAAwB;CACxD,CAAC,CAAC;AAEH,KAAK,UAAU,aAAa,CAAC,GAAW;IACtC,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IAC5C,OAAO,GAAG,CAAC,YAAY,EAAE,CAAC;AAC5B,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,KAAa;IACtC,MAAM,OAAO,GAAG,sBAAG,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IAEtD,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;QACnE,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;IACnC,CAAC;IAED,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAE3D,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,sBAAG,CAAC,MAAM,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,UAAU,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,aAAa,EAAE,EAAE;YAC9E,IAAI,GAAG,EAAE,CAAC;gBACR,MAAM,CAAC,GAAG,CAAC,CAAC;YACd,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,aAA2B,CAAC,CAAC;YACvC,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,0EAA0E;AACnE,KAAK,UAAU,YAAY,
|
1
|
+
{"version":3,"file":"authentication.js","sourceRoot":"","sources":["../../../../src/dbos-runtime/cloudutils/authentication.ts"],"names":[],"mappings":"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"}
|
@@ -1,6 +1,6 @@
|
|
1
1
|
/// <reference types="node" />
|
2
|
-
import { AxiosError } from
|
3
|
-
import { createLogger, Logger } from
|
2
|
+
import { AxiosError } from 'axios';
|
3
|
+
import { createLogger, Logger } from 'winston';
|
4
4
|
export interface DBOSCloudCredentials {
|
5
5
|
token: string;
|
6
6
|
refreshToken?: string;
|
@@ -1 +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;
|
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;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"}
|
@@ -17,8 +17,8 @@ var AppLanguages;
|
|
17
17
|
AppLanguages["Node"] = "node";
|
18
18
|
AppLanguages["Python"] = "python";
|
19
19
|
})(AppLanguages || (exports.AppLanguages = AppLanguages = {}));
|
20
|
-
exports.DBOSCloudHost = process.env.DBOS_DOMAIN ||
|
21
|
-
exports.dbosEnvPath =
|
20
|
+
exports.DBOSCloudHost = process.env.DBOS_DOMAIN || 'cloud.dbos.dev';
|
21
|
+
exports.dbosEnvPath = '.dbos';
|
22
22
|
let curLogger = undefined;
|
23
23
|
function getLogger(verbose) {
|
24
24
|
if (curLogger)
|
@@ -26,7 +26,7 @@ function getLogger(verbose) {
|
|
26
26
|
const winstonTransports = [];
|
27
27
|
winstonTransports.push(new winston_1.transports.Console({
|
28
28
|
format: consoleFormat,
|
29
|
-
level: verbose ?
|
29
|
+
level: verbose ? 'debug' : 'info',
|
30
30
|
}));
|
31
31
|
return (curLogger = (0, winston_1.createLogger)({ transports: winstonTransports }));
|
32
32
|
}
|
@@ -35,11 +35,11 @@ const consoleFormat = winston_1.format.combine(winston_1.format.errors({ stack:
|
|
35
35
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
36
36
|
const { timestamp, level, message, stack } = info;
|
37
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(
|
38
|
+
const ts = timestamp.slice(0, 19).replace('T', ' ');
|
39
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(
|
41
|
-
const messageString = typeof message ===
|
42
|
-
return `${ts} [${level}]: ${messageString} ${stack ?
|
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
43
|
}));
|
44
44
|
function isTokenExpired(token) {
|
45
45
|
try {
|
@@ -63,10 +63,10 @@ function deleteCredentials() {
|
|
63
63
|
exports.deleteCredentials = deleteCredentials;
|
64
64
|
function writeCredentials(credentials) {
|
65
65
|
fs_1.default.mkdirSync(exports.dbosEnvPath, { recursive: true });
|
66
|
-
fs_1.default.writeFileSync(node_path_1.default.join(exports.dbosEnvPath,
|
66
|
+
fs_1.default.writeFileSync(node_path_1.default.join(exports.dbosEnvPath, 'credentials'), JSON.stringify(credentials), 'utf-8');
|
67
67
|
}
|
68
68
|
exports.writeCredentials = writeCredentials;
|
69
|
-
function checkReadFile(path, encoding =
|
69
|
+
function checkReadFile(path, encoding = 'utf8') {
|
70
70
|
// First, check the file
|
71
71
|
fs_1.default.stat(path, (error, stats) => {
|
72
72
|
if (error) {
|
@@ -88,14 +88,14 @@ function createDirectory(path) {
|
|
88
88
|
}
|
89
89
|
exports.createDirectory = createDirectory;
|
90
90
|
function isCloudAPIErrorResponse(obj) {
|
91
|
-
return (typeof obj ===
|
91
|
+
return (typeof obj === 'object' &&
|
92
92
|
obj !== null &&
|
93
|
-
|
94
|
-
typeof obj[
|
95
|
-
|
96
|
-
typeof obj[
|
97
|
-
|
98
|
-
typeof obj[
|
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
99
|
}
|
100
100
|
exports.isCloudAPIErrorResponse = isCloudAPIErrorResponse;
|
101
101
|
function handleAPIErrors(label, e) {
|
@@ -117,10 +117,10 @@ async function getCloudCredentials(host, logger, userName, secret) {
|
|
117
117
|
// Check if credentials exist and are not expired
|
118
118
|
const credentials = await checkCredentials(logger);
|
119
119
|
// Log in the user.
|
120
|
-
if (credentials.token ===
|
120
|
+
if (credentials.token === '') {
|
121
121
|
const authResponse = await (0, authentication_1.authenticate)(logger, false);
|
122
122
|
if (authResponse === null) {
|
123
|
-
logger.error(
|
123
|
+
logger.error('Failed to login. Exiting...');
|
124
124
|
process.exit(1);
|
125
125
|
}
|
126
126
|
credentials.token = authResponse.token;
|
@@ -150,15 +150,15 @@ exports.getCloudCredentials = getCloudCredentials;
|
|
150
150
|
* @returns {DBOSCloudCredentials} - The user's DBOS Cloud credentials if exists, or an empty one.
|
151
151
|
*/
|
152
152
|
async function checkCredentials(logger) {
|
153
|
-
const emptyCredentials = { token:
|
153
|
+
const emptyCredentials = { token: '', userName: '', organization: '' };
|
154
154
|
if (!credentialsExist()) {
|
155
155
|
return Promise.resolve(emptyCredentials);
|
156
156
|
}
|
157
|
-
const credentials = JSON.parse(fs_1.default.readFileSync(`./${exports.dbosEnvPath}/credentials`).toString(
|
158
|
-
credentials.token = credentials.token.replace(/\r|\n/g,
|
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
159
|
logger.debug(`Loaded credentials from ${exports.dbosEnvPath}/credentials`);
|
160
160
|
if (isTokenExpired(credentials.token)) {
|
161
|
-
logger.warn(
|
161
|
+
logger.warn('Credentials expired. Logging in again...');
|
162
162
|
deleteCredentials();
|
163
163
|
return Promise.resolve(emptyCredentials);
|
164
164
|
}
|
@@ -172,11 +172,11 @@ async function checkCredentials(logger) {
|
|
172
172
|
* @returns {boolean} - True if the user profile exists, false otherwise.
|
173
173
|
*/
|
174
174
|
async function checkUserProfile(host, credentials, logger) {
|
175
|
-
const bearerToken =
|
175
|
+
const bearerToken = 'Bearer ' + credentials.token;
|
176
176
|
try {
|
177
177
|
const response = await axios_1.default.get(`https://${host}/v1alpha1/user/profile`, {
|
178
178
|
headers: {
|
179
|
-
|
179
|
+
'Content-Type': 'application/json',
|
180
180
|
Authorization: bearerToken,
|
181
181
|
},
|
182
182
|
});
|
@@ -190,7 +190,7 @@ async function checkUserProfile(host, credentials, logger) {
|
|
190
190
|
const errorLabel = `Failed to login`;
|
191
191
|
if (isCloudAPIErrorResponse(axiosError.response?.data)) {
|
192
192
|
const resp = axiosError.response?.data;
|
193
|
-
if (!resp.message.includes(
|
193
|
+
if (!resp.message.includes('user not found in DBOS Cloud')) {
|
194
194
|
handleAPIErrors(errorLabel, axiosError);
|
195
195
|
process.exit(1);
|
196
196
|
}
|
@@ -204,10 +204,10 @@ async function checkUserProfile(host, credentials, logger) {
|
|
204
204
|
}
|
205
205
|
function isValidUsername(value) {
|
206
206
|
if (value.length < 3 || value.length > 30) {
|
207
|
-
return
|
207
|
+
return 'Username must be 3~30 characters long';
|
208
208
|
}
|
209
|
-
if (!validator_1.default.matches(value,
|
210
|
-
return
|
209
|
+
if (!validator_1.default.matches(value, '^[a-z0-9_]+$')) {
|
210
|
+
return 'Username must contain only lowercase letters, numbers, and underscores.';
|
211
211
|
}
|
212
212
|
// TODO: Check if the username is already taken. Need a cloud endpoint for this.
|
213
213
|
return true;
|
@@ -224,7 +224,7 @@ async function registerUser(host, credentials, logger, userName, secret) {
|
|
224
224
|
logger.info(`Please register for DBOS Cloud`);
|
225
225
|
if (!userName) {
|
226
226
|
userName = await (0, prompts_1.input)({
|
227
|
-
message:
|
227
|
+
message: 'Choose your username:',
|
228
228
|
required: true,
|
229
229
|
validate: isValidUsername,
|
230
230
|
});
|
@@ -233,20 +233,20 @@ async function registerUser(host, credentials, logger, userName, secret) {
|
|
233
233
|
logger.error(`Invalid username: ${userName}. Usernames must be between 3 and 30 characters long and contain only lowercase letters, underscores, and numbers.`);
|
234
234
|
process.exit(1);
|
235
235
|
}
|
236
|
-
const bearerToken =
|
236
|
+
const bearerToken = 'Bearer ' + credentials.token;
|
237
237
|
try {
|
238
238
|
await axios_1.default.put(`https://${host}/v1alpha1/user`, {
|
239
239
|
name: userName,
|
240
240
|
secret: secret,
|
241
241
|
}, {
|
242
242
|
headers: {
|
243
|
-
|
243
|
+
'Content-Type': 'application/json',
|
244
244
|
Authorization: bearerToken,
|
245
245
|
},
|
246
246
|
});
|
247
247
|
const response = await axios_1.default.get(`https://${host}/v1alpha1/user/profile`, {
|
248
248
|
headers: {
|
249
|
-
|
249
|
+
'Content-Type': 'application/json',
|
250
250
|
Authorization: bearerToken,
|
251
251
|
},
|
252
252
|
});
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"cloudutils.js","sourceRoot":"","sources":["../../../../src/dbos-runtime/cloudutils/cloudutils.ts"],"names":[],"mappings":";;;;;;AAAA,4CAAoB;AACpB,kDAA0C;AAC1C,gEAA+B;AAC/B,0DAA6B;AAC7B,+CAA0C;AAC1C,0DAAkC;AAClC,
|
1
|
+
{"version":3,"file":"cloudutils.js","sourceRoot":"","sources":["../../../../src/dbos-runtime/cloudutils/cloudutils.ts"],"names":[],"mappings":"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"}
|
@@ -1,5 +1,5 @@
|
|
1
|
-
import { DBOSCloudCredentials } from
|
2
|
-
import { Logger } from
|
1
|
+
import { DBOSCloudCredentials } from './cloudutils';
|
2
|
+
import { Logger } from 'winston';
|
3
3
|
export interface UserDBInstance {
|
4
4
|
readonly PostgresInstanceName: string;
|
5
5
|
readonly Status: string;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"databases.d.ts","sourceRoot":"","sources":["../../../../src/dbos-runtime/cloudutils/databases.ts"],"names":[],"mappings":"AACA,OAAO,
|
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"}
|
@@ -9,11 +9,15 @@ const cloudutils_1 = require("./cloudutils");
|
|
9
9
|
const prompts_1 = require("@inquirer/prompts");
|
10
10
|
function isValidPassword(logger, password) {
|
11
11
|
if (password.length < 8 || password.length > 128) {
|
12
|
-
logger.error(
|
12
|
+
logger.error('Invalid database password. Passwords must be between 8 and 128 characters long');
|
13
13
|
return false;
|
14
14
|
}
|
15
|
-
if (password.includes(
|
16
|
-
|
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');
|
17
21
|
return false;
|
18
22
|
}
|
19
23
|
return true;
|
@@ -23,22 +27,22 @@ async function createUserDb(host, dbName, appDBUsername, appDBPassword, sync, us
|
|
23
27
|
if (!userCredentials) {
|
24
28
|
userCredentials = await (0, cloudutils_1.getCloudCredentials)(host, logger);
|
25
29
|
}
|
26
|
-
const bearerToken =
|
30
|
+
const bearerToken = 'Bearer ' + userCredentials.token;
|
27
31
|
if (!isValidPassword(logger, appDBPassword)) {
|
28
32
|
return 1;
|
29
33
|
}
|
30
34
|
try {
|
31
35
|
await axios_1.default.post(`https://${host}/v1alpha1/${userCredentials.organization}/databases/userdb`, { Name: dbName, AdminName: appDBUsername, AdminPassword: appDBPassword }, {
|
32
36
|
headers: {
|
33
|
-
|
37
|
+
'Content-Type': 'application/json',
|
34
38
|
Authorization: bearerToken,
|
35
39
|
},
|
36
40
|
});
|
37
41
|
logger.info(`Successfully started provisioning database: ${dbName}`);
|
38
42
|
if (sync) {
|
39
|
-
let status =
|
40
|
-
while (status !==
|
41
|
-
if (status ===
|
43
|
+
let status = '';
|
44
|
+
while (status !== 'available' && status !== 'backing-up') {
|
45
|
+
if (status === '') {
|
42
46
|
await (0, cloudutils_1.sleepms)(5000); // First time sleep 5 sec
|
43
47
|
}
|
44
48
|
else {
|
@@ -70,10 +74,10 @@ async function getUserDBInfo(host, dbName, userCredentials) {
|
|
70
74
|
if (!userCredentials) {
|
71
75
|
userCredentials = await (0, cloudutils_1.getCloudCredentials)(host, logger);
|
72
76
|
}
|
73
|
-
const bearerToken =
|
77
|
+
const bearerToken = 'Bearer ' + userCredentials.token;
|
74
78
|
const res = await axios_1.default.get(`https://${host}/v1alpha1/${userCredentials.organization}/databases/userdb/info/${dbName}`, {
|
75
79
|
headers: {
|
76
|
-
|
80
|
+
'Content-Type': 'application/json',
|
77
81
|
Authorization: bearerToken,
|
78
82
|
},
|
79
83
|
});
|
@@ -83,11 +87,11 @@ exports.getUserDBInfo = getUserDBInfo;
|
|
83
87
|
async function chooseAppDBServer(logger, host, userCredentials) {
|
84
88
|
// List existing database instances.
|
85
89
|
let userDBs = [];
|
86
|
-
const bearerToken =
|
90
|
+
const bearerToken = 'Bearer ' + userCredentials.token;
|
87
91
|
try {
|
88
92
|
const res = await axios_1.default.get(`https://${host}/v1alpha1/${userCredentials.organization}/databases`, {
|
89
93
|
headers: {
|
90
|
-
|
94
|
+
'Content-Type': 'application/json',
|
91
95
|
Authorization: bearerToken,
|
92
96
|
},
|
93
97
|
});
|
@@ -104,14 +108,14 @@ async function chooseAppDBServer(logger, host, userCredentials) {
|
|
104
108
|
}
|
105
109
|
process.exit(1);
|
106
110
|
}
|
107
|
-
let userDBName =
|
111
|
+
let userDBName = '';
|
108
112
|
if (userDBs.length === 0) {
|
109
113
|
// If not, prompt the user to provision one.
|
110
|
-
logger.info(
|
114
|
+
logger.info('Provisioning a cloud Postgres database server');
|
111
115
|
userDBName = `${userCredentials.userName}-db-server`;
|
112
116
|
// Use a default user name and auto generated password.
|
113
|
-
const appDBUserName =
|
114
|
-
const appDBPassword = Buffer.from(Math.random().toString()).toString(
|
117
|
+
const appDBUserName = 'dbos_user';
|
118
|
+
const appDBPassword = Buffer.from(Math.random().toString()).toString('base64');
|
115
119
|
const res = await createUserDb(host, userDBName, appDBUserName, appDBPassword, true);
|
116
120
|
if (res !== 0) {
|
117
121
|
process.exit(1);
|
@@ -120,7 +124,7 @@ async function chooseAppDBServer(logger, host, userCredentials) {
|
|
120
124
|
else if (userDBs.length > 1) {
|
121
125
|
// If there is more than one database instances, prompt the user to select one.
|
122
126
|
userDBName = await (0, prompts_1.select)({
|
123
|
-
message:
|
127
|
+
message: 'Choose a database instance for this app:',
|
124
128
|
choices: userDBs.map((db) => ({
|
125
129
|
name: db.PostgresInstanceName,
|
126
130
|
value: db.PostgresInstanceName,
|
@@ -136,11 +140,11 @@ async function chooseAppDBServer(logger, host, userCredentials) {
|
|
136
140
|
}
|
137
141
|
exports.chooseAppDBServer = chooseAppDBServer;
|
138
142
|
async function createUserRole(logger, host, userCredentials, dbName) {
|
139
|
-
const bearerToken =
|
143
|
+
const bearerToken = 'Bearer ' + userCredentials.token;
|
140
144
|
try {
|
141
145
|
await axios_1.default.post(`https://${host}/v1alpha1/${userCredentials.organization}/databases/userdb/${dbName}/createuserdbrole`, {}, {
|
142
146
|
headers: {
|
143
|
-
|
147
|
+
'Content-Type': 'application/json',
|
144
148
|
Authorization: bearerToken,
|
145
149
|
},
|
146
150
|
});
|
@@ -160,11 +164,11 @@ async function createUserRole(logger, host, userCredentials, dbName) {
|
|
160
164
|
exports.createUserRole = createUserRole;
|
161
165
|
async function getUserDBCredentials(logger, host, userCredentials, dbName) {
|
162
166
|
// List existing database instances.
|
163
|
-
const bearerToken =
|
167
|
+
const bearerToken = 'Bearer ' + userCredentials.token;
|
164
168
|
try {
|
165
169
|
const res = await axios_1.default.get(`https://${host}/v1alpha1/${userCredentials.organization}/databases/userdb/${dbName}/credentials`, {
|
166
170
|
headers: {
|
167
|
-
|
171
|
+
'Content-Type': 'application/json',
|
168
172
|
Authorization: bearerToken,
|
169
173
|
},
|
170
174
|
});
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"databases.js","sourceRoot":"","sources":["../../../../src/dbos-runtime/cloudutils/databases.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0C;AAC1C,
|
1
|
+
{"version":3,"file":"databases.js","sourceRoot":"","sources":["../../../../src/dbos-runtime/cloudutils/databases.ts"],"names":[],"mappings":"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"}
|
@@ -6,10 +6,10 @@ const child_process_1 = require("child_process");
|
|
6
6
|
function runCommand(command, logger, cwd) {
|
7
7
|
return new Promise((resolve, reject) => {
|
8
8
|
// Split the command into the executable and its arguments
|
9
|
-
const [executable, ...args] = command.split(
|
9
|
+
const [executable, ...args] = command.split(' ');
|
10
10
|
// Spawn a child process
|
11
11
|
const child = (0, child_process_1.spawn)(executable, args, {
|
12
|
-
stdio:
|
12
|
+
stdio: 'inherit', // Forward stdin, stdout, stderr
|
13
13
|
shell: true, // Use the shell to interpret the command
|
14
14
|
cwd,
|
15
15
|
});
|
@@ -20,23 +20,23 @@ function runCommand(command, logger, cwd) {
|
|
20
20
|
process.kill(child.pid, signal);
|
21
21
|
}
|
22
22
|
};
|
23
|
-
process.on(
|
24
|
-
process.on(
|
23
|
+
process.on('SIGTERM', () => handleSignal('SIGTERM'));
|
24
|
+
process.on('SIGINT', () => handleSignal('SIGINT'));
|
25
25
|
// Cleanup when child exits
|
26
|
-
child.on(
|
27
|
-
if (code === 0 || signal ===
|
28
|
-
logger.info(`Process exited successfully with code ${code ??
|
26
|
+
child.on('exit', (code, signal) => {
|
27
|
+
if (code === 0 || signal === 'SIGTERM' || signal === 'SIGINT') {
|
28
|
+
logger.info(`Process exited successfully with code ${code ?? 'unknown'} or signal ${signal ?? 'unknown'}`);
|
29
29
|
resolve(0);
|
30
30
|
}
|
31
31
|
else {
|
32
|
-
const errorMsg = `Process exited with code ${code ??
|
32
|
+
const errorMsg = `Process exited with code ${code ?? 'unknown'} or signal ${signal ?? 'unknown'}`;
|
33
33
|
logger.error(errorMsg);
|
34
34
|
// eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors
|
35
35
|
reject(code);
|
36
36
|
}
|
37
37
|
});
|
38
38
|
// Must be caught by the caller
|
39
|
-
child.on(
|
39
|
+
child.on('error', (error) => {
|
40
40
|
logger.error(`Failed to start process: ${error.message}`);
|
41
41
|
// eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors
|
42
42
|
reject(1);
|
@@ -1,9 +1,9 @@
|
|
1
|
-
import { DBOSConfig } from
|
2
|
-
import { PoolConfig } from
|
3
|
-
import YAML from
|
4
|
-
import { DBOSRuntimeConfig } from
|
5
|
-
import { UserDatabaseName } from
|
6
|
-
import { TelemetryConfig } from
|
1
|
+
import { DBOSConfig } from '../dbos-executor';
|
2
|
+
import { PoolConfig } from 'pg';
|
3
|
+
import YAML from 'yaml';
|
4
|
+
import { DBOSRuntimeConfig } from './runtime';
|
5
|
+
import { UserDatabaseName } from '../user_database';
|
6
|
+
import { TelemetryConfig } from '../telemetry';
|
7
7
|
export declare const dbosConfigFilePath = "dbos-config.yaml";
|
8
8
|
export interface ConfigFile {
|
9
9
|
name?: string;
|
@@ -54,7 +54,7 @@ export interface ParseOptions {
|
|
54
54
|
configfile?: string;
|
55
55
|
appDir?: string;
|
56
56
|
appVersion?: string | boolean;
|
57
|
-
|
57
|
+
silent?: boolean;
|
58
58
|
}
|
59
59
|
export declare function parseConfigFile(cliOptions?: ParseOptions): [DBOSConfig, DBOSRuntimeConfig];
|
60
60
|
//# sourceMappingURL=config.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/dbos-runtime/config.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAqB,MAAM,WAAW,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/dbos-runtime/config.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAqB,MAAM,WAAW,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAS/C,eAAO,MAAM,kBAAkB,qBAAqB,CAAC;AAKrD,MAAM,WAAW,UAAU;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE;QACR,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,uBAAuB,CAAC,EAAE,MAAM,CAAC;QACjC,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,GAAG,CAAC,EAAE,OAAO,CAAC;QACd,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,aAAa,CAAC,EAAE,gBAAgB,CAAC;QACjC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;QACpB,YAAY,CAAC,EAAE,OAAO,CAAC;KACxB,CAAC;IACF,IAAI,CAAC,EAAE;QACL,eAAe,CAAC,EAAE,OAAO,CAAC;QAC1B,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;KAC5B,CAAC;IACF,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5B,aAAa,CAAC,EAAE,iBAAiB,CAAC;CACnC;AAOD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAKzD;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,cAAc,EAAE,MAAM,GAAG,UAAU,CAajE;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,EAAE,cAAc,EAAE,MAAM,QAWhF;AAED,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CAetE;AAED,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,YAAY,cAiEpF;AAkBD,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAC9B,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAMD,wBAAgB,eAAe,CAAC,UAAU,CAAC,EAAE,YAAY,GAAG,CAAC,UAAU,EAAE,iBAAiB,CAAC,CA2F1F"}
|