@dbos-inc/dbos-sdk 0.8.45-preview.g56ba028de5 → 0.8.46-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/dist/packages/dbos-cloud/applications/delete-app.d.ts.map +1 -1
- package/dist/packages/dbos-cloud/applications/delete-app.js +1 -2
- package/dist/packages/dbos-cloud/applications/delete-app.js.map +1 -1
- package/dist/packages/dbos-cloud/applications/deploy-app-code.d.ts.map +1 -1
- package/dist/packages/dbos-cloud/applications/deploy-app-code.js +5 -7
- package/dist/packages/dbos-cloud/applications/deploy-app-code.js.map +1 -1
- package/dist/packages/dbos-cloud/applications/get-app-logs.d.ts.map +1 -1
- package/dist/packages/dbos-cloud/applications/get-app-logs.js +1 -2
- package/dist/packages/dbos-cloud/applications/get-app-logs.js.map +1 -1
- package/dist/packages/dbos-cloud/applications/list-apps.d.ts.map +1 -1
- package/dist/packages/dbos-cloud/applications/list-apps.js +1 -2
- package/dist/packages/dbos-cloud/applications/list-apps.js.map +1 -1
- package/dist/packages/dbos-cloud/applications/register-app.d.ts.map +1 -1
- package/dist/packages/dbos-cloud/applications/register-app.js +1 -2
- package/dist/packages/dbos-cloud/applications/register-app.js.map +1 -1
- package/dist/packages/dbos-cloud/applications/update-app.d.ts.map +1 -1
- package/dist/packages/dbos-cloud/applications/update-app.js +1 -2
- package/dist/packages/dbos-cloud/applications/update-app.js.map +1 -1
- package/dist/packages/dbos-cloud/cli.js +0 -12
- package/dist/packages/dbos-cloud/cli.js.map +1 -1
- package/dist/packages/dbos-cloud/cloudutils.d.ts +7 -0
- package/dist/packages/dbos-cloud/cloudutils.d.ts.map +1 -1
- package/dist/packages/dbos-cloud/cloudutils.js +44 -3
- package/dist/packages/dbos-cloud/cloudutils.js.map +1 -1
- package/dist/packages/dbos-cloud/login.d.ts.map +1 -1
- package/dist/packages/dbos-cloud/login.js +3 -4
- package/dist/packages/dbos-cloud/login.js.map +1 -1
- package/dist/packages/dbos-cloud/register.d.ts.map +1 -1
- package/dist/packages/dbos-cloud/register.js +1 -2
- package/dist/packages/dbos-cloud/register.js.map +1 -1
- package/dist/packages/dbos-cloud/userdb.d.ts +0 -2
- package/dist/packages/dbos-cloud/userdb.d.ts.map +1 -1
- package/dist/packages/dbos-cloud/userdb.js +4 -177
- package/dist/packages/dbos-cloud/userdb.js.map +1 -1
- package/dist/src/context.d.ts +1 -0
- package/dist/src/context.d.ts.map +1 -1
- package/dist/src/dbos-runtime/cli.d.ts.map +1 -1
- package/dist/src/dbos-runtime/cli.js +14 -0
- package/dist/src/dbos-runtime/cli.js.map +1 -1
- package/dist/src/dbos-runtime/migrate.d.ts +3 -0
- package/dist/src/dbos-runtime/migrate.d.ts.map +1 -0
- package/dist/src/dbos-runtime/migrate.js +175 -0
- package/dist/src/dbos-runtime/migrate.js.map +1 -0
- package/dist/src/httpServer/server.d.ts +2 -1
- package/dist/src/httpServer/server.d.ts.map +1 -1
- package/dist/src/system_database.d.ts +2 -0
- package/dist/src/system_database.d.ts.map +1 -1
- package/dist/src/system_database.js +26 -11
- package/dist/src/system_database.js.map +1 -1
- package/dist/src/testing/testing_runtime.d.ts +2 -1
- package/dist/src/testing/testing_runtime.d.ts.map +1 -1
- package/dist/src/utils.d.ts +1 -1
- package/dist/src/utils.d.ts.map +1 -1
- package/dist/src/utils.js +20 -4
- package/dist/src/utils.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/examples/hello/start_postgres_docker.sh +1 -1
- package/migrations/20240123182943_schema.js +8 -0
- package/migrations/20240123183021_tables.js +48 -0
- package/migrations/20240123183025_indexes.js +14 -0
- package/migrations/20240123183030_triggers.js +39 -0
- package/package.json +1 -1
- package/packages/dbos-cloud/dist/packages/dbos-cloud/applications/delete-app.d.ts.map +1 -1
- package/packages/dbos-cloud/dist/packages/dbos-cloud/applications/delete-app.js +1 -2
- package/packages/dbos-cloud/dist/packages/dbos-cloud/applications/delete-app.js.map +1 -1
- package/packages/dbos-cloud/dist/packages/dbos-cloud/applications/deploy-app-code.d.ts.map +1 -1
- package/packages/dbos-cloud/dist/packages/dbos-cloud/applications/deploy-app-code.js +5 -7
- package/packages/dbos-cloud/dist/packages/dbos-cloud/applications/deploy-app-code.js.map +1 -1
- package/packages/dbos-cloud/dist/packages/dbos-cloud/applications/get-app-logs.d.ts.map +1 -1
- package/packages/dbos-cloud/dist/packages/dbos-cloud/applications/get-app-logs.js +1 -2
- package/packages/dbos-cloud/dist/packages/dbos-cloud/applications/get-app-logs.js.map +1 -1
- package/packages/dbos-cloud/dist/packages/dbos-cloud/applications/list-apps.d.ts.map +1 -1
- package/packages/dbos-cloud/dist/packages/dbos-cloud/applications/list-apps.js +1 -2
- package/packages/dbos-cloud/dist/packages/dbos-cloud/applications/list-apps.js.map +1 -1
- package/packages/dbos-cloud/dist/packages/dbos-cloud/applications/register-app.d.ts.map +1 -1
- package/packages/dbos-cloud/dist/packages/dbos-cloud/applications/register-app.js +1 -2
- package/packages/dbos-cloud/dist/packages/dbos-cloud/applications/register-app.js.map +1 -1
- package/packages/dbos-cloud/dist/packages/dbos-cloud/applications/update-app.d.ts.map +1 -1
- package/packages/dbos-cloud/dist/packages/dbos-cloud/applications/update-app.js +1 -2
- package/packages/dbos-cloud/dist/packages/dbos-cloud/applications/update-app.js.map +1 -1
- package/packages/dbos-cloud/dist/packages/dbos-cloud/cli.js +0 -12
- package/packages/dbos-cloud/dist/packages/dbos-cloud/cli.js.map +1 -1
- package/packages/dbos-cloud/dist/packages/dbos-cloud/cloudutils.d.ts +7 -0
- package/packages/dbos-cloud/dist/packages/dbos-cloud/cloudutils.d.ts.map +1 -1
- package/packages/dbos-cloud/dist/packages/dbos-cloud/cloudutils.js +44 -3
- package/packages/dbos-cloud/dist/packages/dbos-cloud/cloudutils.js.map +1 -1
- package/packages/dbos-cloud/dist/packages/dbos-cloud/login.d.ts.map +1 -1
- package/packages/dbos-cloud/dist/packages/dbos-cloud/login.js +3 -4
- package/packages/dbos-cloud/dist/packages/dbos-cloud/login.js.map +1 -1
- package/packages/dbos-cloud/dist/packages/dbos-cloud/register.d.ts.map +1 -1
- package/packages/dbos-cloud/dist/packages/dbos-cloud/register.js +1 -2
- package/packages/dbos-cloud/dist/packages/dbos-cloud/register.js.map +1 -1
- package/packages/dbos-cloud/dist/packages/dbos-cloud/userdb.d.ts +0 -2
- package/packages/dbos-cloud/dist/packages/dbos-cloud/userdb.d.ts.map +1 -1
- package/packages/dbos-cloud/dist/packages/dbos-cloud/userdb.js +4 -177
- package/packages/dbos-cloud/dist/packages/dbos-cloud/userdb.js.map +1 -1
- package/packages/dbos-cloud/dist/src/utils.d.ts +1 -1
- package/packages/dbos-cloud/dist/src/utils.d.ts.map +1 -1
- package/packages/dbos-cloud/dist/src/utils.js +20 -4
- package/packages/dbos-cloud/dist/src/utils.js.map +1 -1
- package/packages/dbos-cloud/package.json +1 -1
- package/packages/dbos-openapi/package.json +1 -1
- package/packages/dbos-cloud/dist/schemas/system_db_schema.d.ts +0 -34
- package/packages/dbos-cloud/dist/schemas/system_db_schema.d.ts.map +0 -1
- package/packages/dbos-cloud/dist/schemas/system_db_schema.js +0 -77
- package/packages/dbos-cloud/dist/schemas/system_db_schema.js.map +0 -1
- package/packages/dbos-cloud/dist/schemas/user_db_schema.d.ts +0 -11
- package/packages/dbos-cloud/dist/schemas/user_db_schema.d.ts.map +0 -1
- package/packages/dbos-cloud/dist/schemas/user_db_schema.js +0 -16
- package/packages/dbos-cloud/dist/schemas/user_db_schema.js.map +0 -1
- package/packages/dbos-cloud/dist/src/communicator.d.ts +0 -25
- package/packages/dbos-cloud/dist/src/communicator.d.ts.map +0 -1
- package/packages/dbos-cloud/dist/src/communicator.js +0 -26
- package/packages/dbos-cloud/dist/src/communicator.js.map +0 -1
- package/packages/dbos-cloud/dist/src/context.d.ts +0 -64
- package/packages/dbos-cloud/dist/src/context.d.ts.map +0 -1
- package/packages/dbos-cloud/dist/src/context.js +0 -96
- package/packages/dbos-cloud/dist/src/context.js.map +0 -1
- package/packages/dbos-cloud/dist/src/data_validation.d.ts +0 -3
- package/packages/dbos-cloud/dist/src/data_validation.d.ts.map +0 -1
- package/packages/dbos-cloud/dist/src/data_validation.js +0 -168
- package/packages/dbos-cloud/dist/src/data_validation.js.map +0 -1
- package/packages/dbos-cloud/dist/src/dbos-executor.d.ts +0 -102
- package/packages/dbos-cloud/dist/src/dbos-executor.d.ts.map +0 -1
- package/packages/dbos-cloud/dist/src/dbos-executor.js +0 -631
- package/packages/dbos-cloud/dist/src/dbos-executor.js.map +0 -1
- package/packages/dbos-cloud/dist/src/dbos-runtime/applicationVersion.d.ts +0 -3
- package/packages/dbos-cloud/dist/src/dbos-runtime/applicationVersion.d.ts.map +0 -1
- package/packages/dbos-cloud/dist/src/dbos-runtime/applicationVersion.js +0 -13
- package/packages/dbos-cloud/dist/src/dbos-runtime/applicationVersion.js.map +0 -1
- package/packages/dbos-cloud/dist/src/dbos-runtime/cli.d.ts +0 -8
- package/packages/dbos-cloud/dist/src/dbos-runtime/cli.d.ts.map +0 -1
- package/packages/dbos-cloud/dist/src/dbos-runtime/cli.js +0 -47
- package/packages/dbos-cloud/dist/src/dbos-runtime/cli.js.map +0 -1
- package/packages/dbos-cloud/dist/src/dbos-runtime/config.d.ts +0 -29
- package/packages/dbos-cloud/dist/src/dbos-runtime/config.d.ts.map +0 -1
- package/packages/dbos-cloud/dist/src/dbos-runtime/config.js +0 -111
- package/packages/dbos-cloud/dist/src/dbos-runtime/config.js.map +0 -1
- package/packages/dbos-cloud/dist/src/dbos-runtime/debug.d.ts +0 -4
- package/packages/dbos-cloud/dist/src/dbos-runtime/debug.d.ts.map +0 -1
- package/packages/dbos-cloud/dist/src/dbos-runtime/debug.js +0 -21
- package/packages/dbos-cloud/dist/src/dbos-runtime/debug.js.map +0 -1
- package/packages/dbos-cloud/dist/src/dbos-runtime/init.d.ts +0 -7
- package/packages/dbos-cloud/dist/src/dbos-runtime/init.d.ts.map +0 -1
- package/packages/dbos-cloud/dist/src/dbos-runtime/init.js +0 -51
- package/packages/dbos-cloud/dist/src/dbos-runtime/init.js.map +0 -1
- package/packages/dbos-cloud/dist/src/dbos-runtime/runtime.d.ts +0 -28
- package/packages/dbos-cloud/dist/src/dbos-runtime/runtime.d.ts.map +0 -1
- package/packages/dbos-cloud/dist/src/dbos-runtime/runtime.js +0 -95
- package/packages/dbos-cloud/dist/src/dbos-runtime/runtime.js.map +0 -1
- package/packages/dbos-cloud/dist/src/debugger/debug_workflow.d.ts +0 -38
- package/packages/dbos-cloud/dist/src/debugger/debug_workflow.d.ts.map +0 -1
- package/packages/dbos-cloud/dist/src/debugger/debug_workflow.js +0 -211
- package/packages/dbos-cloud/dist/src/debugger/debug_workflow.js.map +0 -1
- package/packages/dbos-cloud/dist/src/decorators.d.ts +0 -118
- package/packages/dbos-cloud/dist/src/decorators.d.ts.map +0 -1
- package/packages/dbos-cloud/dist/src/decorators.js +0 -467
- package/packages/dbos-cloud/dist/src/decorators.js.map +0 -1
- package/packages/dbos-cloud/dist/src/error.d.ts +0 -47
- package/packages/dbos-cloud/dist/src/error.d.ts.map +0 -1
- package/packages/dbos-cloud/dist/src/error.js +0 -171
- package/packages/dbos-cloud/dist/src/error.js.map +0 -1
- package/packages/dbos-cloud/dist/src/httpServer/handler.d.ts +0 -54
- package/packages/dbos-cloud/dist/src/httpServer/handler.d.ts.map +0 -1
- package/packages/dbos-cloud/dist/src/httpServer/handler.js +0 -175
- package/packages/dbos-cloud/dist/src/httpServer/handler.js.map +0 -1
- package/packages/dbos-cloud/dist/src/httpServer/handlerTypes.d.ts +0 -11
- package/packages/dbos-cloud/dist/src/httpServer/handlerTypes.d.ts.map +0 -1
- package/packages/dbos-cloud/dist/src/httpServer/handlerTypes.js +0 -19
- package/packages/dbos-cloud/dist/src/httpServer/handlerTypes.js.map +0 -1
- package/packages/dbos-cloud/dist/src/httpServer/middleware.d.ts +0 -56
- package/packages/dbos-cloud/dist/src/httpServer/middleware.d.ts.map +0 -1
- package/packages/dbos-cloud/dist/src/httpServer/middleware.js +0 -57
- package/packages/dbos-cloud/dist/src/httpServer/middleware.js.map +0 -1
- package/packages/dbos-cloud/dist/src/httpServer/server.d.ts +0 -45
- package/packages/dbos-cloud/dist/src/httpServer/server.d.ts.map +0 -1
- package/packages/dbos-cloud/dist/src/httpServer/server.js +0 -253
- package/packages/dbos-cloud/dist/src/httpServer/server.js.map +0 -1
- package/packages/dbos-cloud/dist/src/system_database.d.ts +0 -89
- package/packages/dbos-cloud/dist/src/system_database.d.ts.map +0 -1
- package/packages/dbos-cloud/dist/src/system_database.js +0 -447
- package/packages/dbos-cloud/dist/src/system_database.js.map +0 -1
- package/packages/dbos-cloud/dist/src/telemetry/collector.d.ts +0 -16
- package/packages/dbos-cloud/dist/src/telemetry/collector.d.ts.map +0 -1
- package/packages/dbos-cloud/dist/src/telemetry/collector.js +0 -65
- package/packages/dbos-cloud/dist/src/telemetry/collector.js.map +0 -1
- package/packages/dbos-cloud/dist/src/telemetry/exporters.d.ts +0 -15
- package/packages/dbos-cloud/dist/src/telemetry/exporters.d.ts.map +0 -1
- package/packages/dbos-cloud/dist/src/telemetry/exporters.js +0 -59
- package/packages/dbos-cloud/dist/src/telemetry/exporters.js.map +0 -1
- package/packages/dbos-cloud/dist/src/telemetry/index.d.ts +0 -11
- package/packages/dbos-cloud/dist/src/telemetry/index.d.ts.map +0 -1
- package/packages/dbos-cloud/dist/src/telemetry/index.js +0 -19
- package/packages/dbos-cloud/dist/src/telemetry/index.js.map +0 -1
- package/packages/dbos-cloud/dist/src/telemetry/logs.d.ts +0 -47
- package/packages/dbos-cloud/dist/src/telemetry/logs.d.ts.map +0 -1
- package/packages/dbos-cloud/dist/src/telemetry/logs.js +0 -195
- package/packages/dbos-cloud/dist/src/telemetry/logs.js.map +0 -1
- package/packages/dbos-cloud/dist/src/telemetry/traces.d.ts +0 -14
- package/packages/dbos-cloud/dist/src/telemetry/traces.d.ts.map +0 -1
- package/packages/dbos-cloud/dist/src/telemetry/traces.js +0 -52
- package/packages/dbos-cloud/dist/src/telemetry/traces.js.map +0 -1
- package/packages/dbos-cloud/dist/src/transaction.d.ts +0 -29
- package/packages/dbos-cloud/dist/src/transaction.d.ts.map +0 -1
- package/packages/dbos-cloud/dist/src/transaction.js +0 -27
- package/packages/dbos-cloud/dist/src/transaction.js.map +0 -1
- package/packages/dbos-cloud/dist/src/user_database.d.ts +0 -132
- package/packages/dbos-cloud/dist/src/user_database.d.ts.map +0 -1
- package/packages/dbos-cloud/dist/src/user_database.js +0 -332
- package/packages/dbos-cloud/dist/src/user_database.js.map +0 -1
- package/packages/dbos-cloud/dist/src/workflow.d.ts +0 -195
- package/packages/dbos-cloud/dist/src/workflow.d.ts.map +0 -1
- package/packages/dbos-cloud/dist/src/workflow.js +0 -498
- package/packages/dbos-cloud/dist/src/workflow.js.map +0 -1
@@ -3,19 +3,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
4
|
};
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
6
|
-
exports.getUserDBInfo = exports.
|
6
|
+
exports.getUserDBInfo = exports.getUserDb = exports.deleteUserDb = exports.createUserDb = void 0;
|
7
7
|
const axios_1 = __importDefault(require("axios"));
|
8
|
-
const logs_1 = require("../../src/telemetry/logs");
|
9
8
|
const cloudutils_1 = require("./cloudutils");
|
10
9
|
const utils_1 = require("../../src/utils");
|
11
|
-
const config_1 = require("../../src/dbos-runtime/config");
|
12
|
-
const child_process_1 = require("child_process");
|
13
|
-
const user_database_1 = require("../../src/user_database");
|
14
|
-
const pg_1 = require("pg");
|
15
|
-
const system_db_schema_1 = require("../../schemas/system_db_schema");
|
16
|
-
const user_db_schema_1 = require("../../schemas/user_db_schema");
|
17
10
|
async function createUserDb(host, dbName, adminName, adminPassword, sync) {
|
18
|
-
const logger =
|
11
|
+
const logger = (0, cloudutils_1.getLogger)();
|
19
12
|
const userCredentials = (0, cloudutils_1.getCloudCredentials)();
|
20
13
|
const bearerToken = "Bearer " + userCredentials.token;
|
21
14
|
try {
|
@@ -47,7 +40,7 @@ async function createUserDb(host, dbName, adminName, adminPassword, sync) {
|
|
47
40
|
}
|
48
41
|
exports.createUserDb = createUserDb;
|
49
42
|
async function deleteUserDb(host, dbName) {
|
50
|
-
const logger =
|
43
|
+
const logger = (0, cloudutils_1.getLogger)();
|
51
44
|
const userCredentials = (0, cloudutils_1.getCloudCredentials)();
|
52
45
|
const bearerToken = "Bearer " + userCredentials.token;
|
53
46
|
try {
|
@@ -70,7 +63,7 @@ async function deleteUserDb(host, dbName) {
|
|
70
63
|
}
|
71
64
|
exports.deleteUserDb = deleteUserDb;
|
72
65
|
async function getUserDb(host, dbName) {
|
73
|
-
const logger =
|
66
|
+
const logger = (0, cloudutils_1.getLogger)();
|
74
67
|
try {
|
75
68
|
const userDBInfo = await getUserDBInfo(host, dbName);
|
76
69
|
logger.info(userDBInfo);
|
@@ -85,118 +78,6 @@ async function getUserDb(host, dbName) {
|
|
85
78
|
}
|
86
79
|
}
|
87
80
|
exports.getUserDb = getUserDb;
|
88
|
-
async function migrate() {
|
89
|
-
const logger = new logs_1.GlobalLogger();
|
90
|
-
// Read the configuration YAML file
|
91
|
-
const configFile = (0, config_1.loadConfigFile)(config_1.dbosConfigFilePath);
|
92
|
-
if (!configFile) {
|
93
|
-
logger.error(`Failed to parse ${config_1.dbosConfigFilePath}`);
|
94
|
-
return 1;
|
95
|
-
}
|
96
|
-
const userDBName = configFile.database.user_database;
|
97
|
-
logger.info(`Creating database ${userDBName} if it does not already exist`);
|
98
|
-
const createDB = `createdb -h ${configFile.database.hostname} -p ${configFile.database.port} ${userDBName} -U ${configFile.database.username} -ew ${userDBName}`;
|
99
|
-
try {
|
100
|
-
process.env.PGPASSWORD = configFile.database.password;
|
101
|
-
const createDBOutput = (0, child_process_1.execSync)(createDB, { env: process.env }).toString();
|
102
|
-
if (createDBOutput.includes(`database "${userDBName}" already exists`)) {
|
103
|
-
logger.info(`Database ${userDBName} already exists`);
|
104
|
-
}
|
105
|
-
else {
|
106
|
-
logger.info(createDBOutput);
|
107
|
-
}
|
108
|
-
}
|
109
|
-
catch (e) {
|
110
|
-
if (e instanceof Error) {
|
111
|
-
if (e.message.includes(`database "${userDBName}" already exists`)) {
|
112
|
-
logger.info(`Database ${userDBName} already exists`);
|
113
|
-
}
|
114
|
-
else {
|
115
|
-
logger.error(`Error creating database: ${e.message}`);
|
116
|
-
return 1;
|
117
|
-
}
|
118
|
-
}
|
119
|
-
else {
|
120
|
-
logger.error(e);
|
121
|
-
return 1;
|
122
|
-
}
|
123
|
-
}
|
124
|
-
const dbType = configFile.database.user_dbclient || user_database_1.UserDatabaseName.KNEX;
|
125
|
-
const migrationScript = `node_modules/.bin/${dbType}`;
|
126
|
-
const migrationCommands = configFile.database.migrate;
|
127
|
-
try {
|
128
|
-
migrationCommands?.forEach((cmd) => {
|
129
|
-
const command = `node ${migrationScript} ${cmd}`;
|
130
|
-
logger.info(`Executing migration command: ${command}`);
|
131
|
-
const migrateCommandOutput = (0, child_process_1.execSync)(command).toString();
|
132
|
-
logger.info(migrateCommandOutput);
|
133
|
-
});
|
134
|
-
}
|
135
|
-
catch (e) {
|
136
|
-
logger.error("Error running migration");
|
137
|
-
if (e instanceof Error) {
|
138
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-explicit-any
|
139
|
-
const stderr = e.stderr;
|
140
|
-
if (stderr && Buffer.isBuffer(stderr) && stderr.length > 0) {
|
141
|
-
logger.error(`Standard Error: ${stderr.toString().trim()}`);
|
142
|
-
}
|
143
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-explicit-any
|
144
|
-
const stdout = e.stdout;
|
145
|
-
if (stdout && Buffer.isBuffer(stdout) && stdout.length > 0) {
|
146
|
-
logger.error(`Standard Output: ${stdout.toString().trim()}`);
|
147
|
-
}
|
148
|
-
if (e.message) {
|
149
|
-
logger.error(e.message);
|
150
|
-
}
|
151
|
-
}
|
152
|
-
else {
|
153
|
-
logger.error(e);
|
154
|
-
}
|
155
|
-
return 1;
|
156
|
-
}
|
157
|
-
logger.info("Creating DBOS tables and system database.");
|
158
|
-
try {
|
159
|
-
await createDBOSTables(configFile);
|
160
|
-
}
|
161
|
-
catch (e) {
|
162
|
-
if (e instanceof Error) {
|
163
|
-
logger.error(`Error creating DBOS system database: ${e.message}`);
|
164
|
-
}
|
165
|
-
else {
|
166
|
-
logger.error(e);
|
167
|
-
}
|
168
|
-
return 1;
|
169
|
-
}
|
170
|
-
return 0;
|
171
|
-
}
|
172
|
-
exports.migrate = migrate;
|
173
|
-
function rollbackMigration() {
|
174
|
-
const logger = new logs_1.GlobalLogger();
|
175
|
-
// read the yaml file
|
176
|
-
const configFile = (0, config_1.loadConfigFile)(config_1.dbosConfigFilePath);
|
177
|
-
if (!configFile) {
|
178
|
-
logger.error(`failed to parse ${config_1.dbosConfigFilePath}`);
|
179
|
-
return 1;
|
180
|
-
}
|
181
|
-
let dbType = configFile.database.user_dbclient;
|
182
|
-
if (dbType == undefined) {
|
183
|
-
dbType = "knex";
|
184
|
-
}
|
185
|
-
const rollbackcommands = configFile.database.rollback;
|
186
|
-
try {
|
187
|
-
rollbackcommands?.forEach((cmd) => {
|
188
|
-
const command = "npx " + dbType + " " + cmd;
|
189
|
-
logger.info("Executing " + command);
|
190
|
-
(0, child_process_1.execSync)(command);
|
191
|
-
});
|
192
|
-
}
|
193
|
-
catch (e) {
|
194
|
-
logger.error("Error rolling back migration. ");
|
195
|
-
return 1;
|
196
|
-
}
|
197
|
-
return 0;
|
198
|
-
}
|
199
|
-
exports.rollbackMigration = rollbackMigration;
|
200
81
|
async function getUserDBInfo(host, dbName) {
|
201
82
|
const userCredentials = (0, cloudutils_1.getCloudCredentials)();
|
202
83
|
const bearerToken = "Bearer " + userCredentials.token;
|
@@ -209,58 +90,4 @@ async function getUserDBInfo(host, dbName) {
|
|
209
90
|
return res.data;
|
210
91
|
}
|
211
92
|
exports.getUserDBInfo = getUserDBInfo;
|
212
|
-
// Create DBOS system DB and tables.
|
213
|
-
// TODO: replace this with knex to manage schema.
|
214
|
-
async function createDBOSTables(configFile) {
|
215
|
-
const logger = new logs_1.GlobalLogger();
|
216
|
-
const userPoolConfig = {
|
217
|
-
host: configFile.database.hostname,
|
218
|
-
port: configFile.database.port,
|
219
|
-
user: configFile.database.username,
|
220
|
-
password: configFile.database.password,
|
221
|
-
connectionTimeoutMillis: configFile.database.connectionTimeoutMillis || 3000,
|
222
|
-
database: configFile.database.user_database,
|
223
|
-
};
|
224
|
-
if (configFile.database.ssl_ca) {
|
225
|
-
userPoolConfig.ssl = { ca: [(0, utils_1.readFileSync)(configFile.database.ssl_ca)], rejectUnauthorized: true };
|
226
|
-
}
|
227
|
-
const systemPoolConfig = { ...userPoolConfig };
|
228
|
-
systemPoolConfig.database = `${userPoolConfig.database}_dbos_sys`;
|
229
|
-
const pgUserClient = new pg_1.Client(userPoolConfig);
|
230
|
-
await pgUserClient.connect();
|
231
|
-
// Create DBOS table/schema in user DB.
|
232
|
-
const schemaExists = await pgUserClient.query(`SELECT EXISTS (SELECT FROM information_schema.schemata WHERE schema_name = 'dbos')`);
|
233
|
-
if (!schemaExists.rows[0].exists) {
|
234
|
-
await pgUserClient.query(user_db_schema_1.createUserDBSchema);
|
235
|
-
await pgUserClient.query(user_db_schema_1.userDBSchema);
|
236
|
-
}
|
237
|
-
// Create the DBOS system database.
|
238
|
-
const dbExists = await pgUserClient.query(`SELECT EXISTS (SELECT FROM pg_database WHERE datname = '${systemPoolConfig.database}')`);
|
239
|
-
if (!dbExists.rows[0].exists) {
|
240
|
-
await pgUserClient.query(`CREATE DATABASE ${systemPoolConfig.database}`);
|
241
|
-
}
|
242
|
-
// Load the DBOS system schema.
|
243
|
-
const pgSystemClient = new pg_1.Client(systemPoolConfig);
|
244
|
-
await pgSystemClient.connect();
|
245
|
-
try {
|
246
|
-
const tableExists = await pgSystemClient.query(`SELECT EXISTS (SELECT FROM information_schema.schemata WHERE schema_name = 'dbos')`);
|
247
|
-
if (!tableExists.rows[0].exists) {
|
248
|
-
await pgSystemClient.query(system_db_schema_1.systemDBSchema);
|
249
|
-
}
|
250
|
-
}
|
251
|
-
catch (e) {
|
252
|
-
const tableExists = await pgSystemClient.query(`SELECT EXISTS (SELECT FROM information_schema.tables WHERE table_schema = 'dbos' AND table_name = 'operation_outputs')`);
|
253
|
-
if (tableExists.rows[0].exists) {
|
254
|
-
// If the table has been created by someone else. Ignore the error.
|
255
|
-
logger.warn(`System tables creation failed, may conflict with concurrent tasks: ${e.message}`);
|
256
|
-
}
|
257
|
-
else {
|
258
|
-
throw e;
|
259
|
-
}
|
260
|
-
}
|
261
|
-
finally {
|
262
|
-
await pgSystemClient.end();
|
263
|
-
await pgUserClient.end();
|
264
|
-
}
|
265
|
-
}
|
266
93
|
//# sourceMappingURL=userdb.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"userdb.js","sourceRoot":"","sources":["../../../packages/dbos-cloud/userdb.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,
|
1
|
+
{"version":3,"file":"userdb.js","sourceRoot":"","sources":["../../../packages/dbos-cloud/userdb.ts"],"names":[],"mappings":"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"}
|
package/dist/src/context.d.ts
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
/// <reference types="node" />
|
2
2
|
/// <reference types="node" />
|
3
|
+
/// <reference types="node/http" />
|
3
4
|
/// <reference types="@koa/bodyparser/dist/body-parser" />
|
4
5
|
import { Span } from "@opentelemetry/sdk-trace-base";
|
5
6
|
import { GlobalLogger as Logger, Logger as DBOSLogger } from "./telemetry/logs";
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/context.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/context.ts"],"names":[],"mappings":"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"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../../src/dbos-runtime/cli.ts"],"names":[],"mappings":";
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../../src/dbos-runtime/cli.ts"],"names":[],"mappings":";AAiBA,MAAM,WAAW,mBAAmB;IAClC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB"}
|
@@ -6,6 +6,7 @@ const runtime_1 = require("./runtime");
|
|
6
6
|
const commander_1 = require("commander");
|
7
7
|
const init_1 = require("./init");
|
8
8
|
const debug_1 = require("./debug");
|
9
|
+
const migrate_1 = require("./migrate");
|
9
10
|
const program = new commander_1.Command();
|
10
11
|
program
|
11
12
|
.command('start')
|
@@ -39,6 +40,19 @@ program
|
|
39
40
|
.action(async (options) => {
|
40
41
|
await (0, init_1.init)(options.appName);
|
41
42
|
});
|
43
|
+
program
|
44
|
+
.command('migrate')
|
45
|
+
.description("Perform a database migration")
|
46
|
+
.action((async () => {
|
47
|
+
const exitCode = await (0, migrate_1.migrate)();
|
48
|
+
process.exit(exitCode);
|
49
|
+
}));
|
50
|
+
program
|
51
|
+
.command('rollback')
|
52
|
+
.action((() => {
|
53
|
+
const exitCode = (0, migrate_1.rollbackMigration)();
|
54
|
+
process.exit(exitCode);
|
55
|
+
}));
|
42
56
|
program.parse(process.argv);
|
43
57
|
// If no arguments provided, display help by default
|
44
58
|
if (!process.argv.slice(2).length) {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../src/dbos-runtime/cli.ts"],"names":[],"mappings":";;;AAEA,qCAA+D;AAC/D,uCAA2D;AAE3D,yCAAoC;AAEpC,iCAA8B;AAC9B,mCAAwC;
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../src/dbos-runtime/cli.ts"],"names":[],"mappings":";;;AAEA,qCAA+D;AAC/D,uCAA2D;AAE3D,yCAAoC;AAEpC,iCAA8B;AAC9B,mCAAwC;AACxC,uCAAuD;AAEvD,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAkB9B,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,kBAAkB,CAAC;KAC/B,MAAM,CAAC,qBAAqB,EAAE,yBAAyB,CAAC;KACxD,MAAM,CAAC,yBAAyB,EAAE,mBAAmB,CAAC;KACtD,MAAM,CAAC,2BAA2B,EAAE,8BAA8B,EAAE,2BAAkB,CAAC;KACvF,MAAM,CAAC,2BAA2B,EAAE,kCAAkC,CAAC;KACvE,MAAM,CAAC,KAAK,EAAE,OAA4B,EAAE,EAAE;IAC7C,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAoC,IAAA,wBAAe,EAAC,OAAO,CAAC,CAAC;IAC9F,MAAM,OAAO,GAAG,IAAI,qBAAW,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;IAC3D,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;IACrB,OAAO,CAAC,WAAW,EAAE,CAAC;AACxB,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,kBAAkB,CAAC;KAC/B,cAAc,CAAC,sBAAsB,EAAE,gCAAgC,CAAC;KACxE,cAAc,CAAC,qBAAqB,EAAE,oCAAoC,CAAC;KAC3E,MAAM,CAAC,yBAAyB,EAAE,mBAAmB,CAAC;KACtD,MAAM,CAAC,2BAA2B,EAAE,8BAA8B,EAAE,2BAAkB,CAAC;KACvF,MAAM,CAAC,2BAA2B,EAAE,kCAAkC,CAAC;KACvE,MAAM,CAAC,KAAK,EAAE,OAAyB,EAAE,EAAE;IAC1C,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAoC,IAAA,wBAAe,EAAC,OAAO,CAAC,CAAC;IAC9F,MAAM,IAAA,qBAAa,EAAC,UAAU,EAAE,aAAa,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;AAC9E,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,yBAAyB,CAAC;KACtC,MAAM,CAAC,kCAAkC,EAAE,kBAAkB,EAAE,gBAAgB,CAAC;KAChF,MAAM,CAAC,KAAK,EAAE,OAA4B,EAAE,EAAE;IAC7C,MAAM,IAAA,WAAI,EAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AAC9B,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,SAAS,CAAC;KAClB,WAAW,CAAC,8BAA8B,CAAC;KAC3C,MAAM,CAAC,CAAC,KAAK,IAAI,EAAE;IAClB,MAAM,QAAQ,GAAG,MAAM,IAAA,iBAAO,GAAE,CAAC;IACjC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACzB,CAAC,CAAC,CAAC,CAAA;AAEL,OAAO;KACJ,OAAO,CAAC,UAAU,CAAC;KACnB,MAAM,CAAC,CAAC,GAAG,EAAE;IACZ,MAAM,QAAQ,GAAG,IAAA,2BAAiB,GAAE,CAAC;IACrC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACzB,CAAC,CAAC,CAAC,CAAA;AAEL,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAE5B,oDAAoD;AACpD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAClC,OAAO,CAAC,UAAU,EAAE,CAAC;AACvB,CAAC"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"migrate.d.ts","sourceRoot":"","sources":["../../../src/dbos-runtime/migrate.ts"],"names":[],"mappings":"AASA,wBAAsB,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC,CAiF/C;AAED,wBAAgB,iBAAiB,IAAI,MAAM,CA4B1C"}
|
@@ -0,0 +1,175 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.rollbackMigration = exports.migrate = void 0;
|
4
|
+
const child_process_1 = require("child_process");
|
5
|
+
const logs_1 = require("../telemetry/logs");
|
6
|
+
const user_database_1 = require("../user_database");
|
7
|
+
const config_1 = require("./config");
|
8
|
+
const utils_1 = require("../utils");
|
9
|
+
const pg_1 = require("pg");
|
10
|
+
const user_db_schema_1 = require("../../schemas/user_db_schema");
|
11
|
+
const system_database_1 = require("../system_database");
|
12
|
+
async function migrate() {
|
13
|
+
const logger = new logs_1.GlobalLogger();
|
14
|
+
// Read the configuration YAML file
|
15
|
+
const configFile = (0, config_1.loadConfigFile)(config_1.dbosConfigFilePath);
|
16
|
+
if (!configFile) {
|
17
|
+
logger.error(`Failed to parse ${config_1.dbosConfigFilePath}`);
|
18
|
+
return 1;
|
19
|
+
}
|
20
|
+
const userDBName = configFile.database.user_database;
|
21
|
+
logger.info(`Creating database ${userDBName} if it does not already exist`);
|
22
|
+
const createDB = `createdb -h ${configFile.database.hostname} -p ${configFile.database.port} ${userDBName} -U ${configFile.database.username} -ew ${userDBName}`;
|
23
|
+
try {
|
24
|
+
process.env.PGPASSWORD = configFile.database.password;
|
25
|
+
const createDBOutput = (0, child_process_1.execSync)(createDB, { env: process.env }).toString();
|
26
|
+
if (createDBOutput.includes(`database "${userDBName}" already exists`)) {
|
27
|
+
logger.info(`Database ${userDBName} already exists`);
|
28
|
+
}
|
29
|
+
else {
|
30
|
+
logger.info(createDBOutput);
|
31
|
+
}
|
32
|
+
}
|
33
|
+
catch (e) {
|
34
|
+
if (e instanceof Error) {
|
35
|
+
if (e.message.includes(`database "${userDBName}" already exists`)) {
|
36
|
+
logger.info(`Database ${userDBName} already exists`);
|
37
|
+
}
|
38
|
+
else {
|
39
|
+
logger.error(`Error creating database: ${e.message}`);
|
40
|
+
return 1;
|
41
|
+
}
|
42
|
+
}
|
43
|
+
else {
|
44
|
+
logger.error(e);
|
45
|
+
return 1;
|
46
|
+
}
|
47
|
+
}
|
48
|
+
const dbType = configFile.database.user_dbclient || user_database_1.UserDatabaseName.KNEX;
|
49
|
+
const migrationScript = `node_modules/.bin/${dbType}`;
|
50
|
+
const migrationCommands = configFile.database.migrate;
|
51
|
+
try {
|
52
|
+
migrationCommands?.forEach((cmd) => {
|
53
|
+
const command = `node ${migrationScript} ${cmd}`;
|
54
|
+
logger.info(`Executing migration command: ${command}`);
|
55
|
+
const migrateCommandOutput = (0, child_process_1.execSync)(command).toString();
|
56
|
+
logger.info(migrateCommandOutput);
|
57
|
+
});
|
58
|
+
}
|
59
|
+
catch (e) {
|
60
|
+
logger.error("Error running migration");
|
61
|
+
if (e instanceof Error) {
|
62
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-explicit-any
|
63
|
+
const stderr = e.stderr;
|
64
|
+
if (stderr && Buffer.isBuffer(stderr) && stderr.length > 0) {
|
65
|
+
logger.error(`Standard Error: ${stderr.toString().trim()}`);
|
66
|
+
}
|
67
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-explicit-any
|
68
|
+
const stdout = e.stdout;
|
69
|
+
if (stdout && Buffer.isBuffer(stdout) && stdout.length > 0) {
|
70
|
+
logger.error(`Standard Output: ${stdout.toString().trim()}`);
|
71
|
+
}
|
72
|
+
if (e.message) {
|
73
|
+
logger.error(e.message);
|
74
|
+
}
|
75
|
+
}
|
76
|
+
else {
|
77
|
+
logger.error(e);
|
78
|
+
}
|
79
|
+
return 1;
|
80
|
+
}
|
81
|
+
logger.info("Creating DBOS tables and system database.");
|
82
|
+
try {
|
83
|
+
await createDBOSTables(configFile);
|
84
|
+
}
|
85
|
+
catch (e) {
|
86
|
+
if (e instanceof Error) {
|
87
|
+
logger.error(`Error creating DBOS system database: ${e.message}`);
|
88
|
+
}
|
89
|
+
else {
|
90
|
+
logger.error(e);
|
91
|
+
}
|
92
|
+
return 1;
|
93
|
+
}
|
94
|
+
return 0;
|
95
|
+
}
|
96
|
+
exports.migrate = migrate;
|
97
|
+
function rollbackMigration() {
|
98
|
+
const logger = new logs_1.GlobalLogger();
|
99
|
+
// read the yaml file
|
100
|
+
const configFile = (0, config_1.loadConfigFile)(config_1.dbosConfigFilePath);
|
101
|
+
if (!configFile) {
|
102
|
+
logger.error(`failed to parse ${config_1.dbosConfigFilePath}`);
|
103
|
+
return 1;
|
104
|
+
}
|
105
|
+
let dbType = configFile.database.user_dbclient;
|
106
|
+
if (dbType == undefined) {
|
107
|
+
dbType = "knex";
|
108
|
+
}
|
109
|
+
const rollbackcommands = configFile.database.rollback;
|
110
|
+
try {
|
111
|
+
rollbackcommands?.forEach((cmd) => {
|
112
|
+
const command = "npx " + dbType + " " + cmd;
|
113
|
+
logger.info("Executing " + command);
|
114
|
+
(0, child_process_1.execSync)(command);
|
115
|
+
});
|
116
|
+
}
|
117
|
+
catch (e) {
|
118
|
+
logger.error("Error rolling back migration. ");
|
119
|
+
return 1;
|
120
|
+
}
|
121
|
+
return 0;
|
122
|
+
}
|
123
|
+
exports.rollbackMigration = rollbackMigration;
|
124
|
+
// Create DBOS system DB and tables.
|
125
|
+
// TODO: replace this with knex to manage schema.
|
126
|
+
async function createDBOSTables(configFile) {
|
127
|
+
const logger = new logs_1.GlobalLogger();
|
128
|
+
const userPoolConfig = {
|
129
|
+
host: configFile.database.hostname,
|
130
|
+
port: configFile.database.port,
|
131
|
+
user: configFile.database.username,
|
132
|
+
password: configFile.database.password,
|
133
|
+
connectionTimeoutMillis: configFile.database.connectionTimeoutMillis || 3000,
|
134
|
+
database: configFile.database.user_database,
|
135
|
+
};
|
136
|
+
if (configFile.database.ssl_ca) {
|
137
|
+
userPoolConfig.ssl = { ca: [(0, utils_1.readFileSync)(configFile.database.ssl_ca)], rejectUnauthorized: true };
|
138
|
+
}
|
139
|
+
const systemPoolConfig = { ...userPoolConfig };
|
140
|
+
systemPoolConfig.database = `${userPoolConfig.database}_dbos_sys`;
|
141
|
+
const pgUserClient = new pg_1.Client(userPoolConfig);
|
142
|
+
await pgUserClient.connect();
|
143
|
+
// Create DBOS table/schema in user DB.
|
144
|
+
const schemaExists = await pgUserClient.query(`SELECT EXISTS (SELECT FROM information_schema.schemata WHERE schema_name = 'dbos')`);
|
145
|
+
if (!schemaExists.rows[0].exists) {
|
146
|
+
await pgUserClient.query(user_db_schema_1.createUserDBSchema);
|
147
|
+
await pgUserClient.query(user_db_schema_1.userDBSchema);
|
148
|
+
}
|
149
|
+
// Create the DBOS system database.
|
150
|
+
const dbExists = await pgUserClient.query(`SELECT EXISTS (SELECT FROM pg_database WHERE datname = '${systemPoolConfig.database}')`);
|
151
|
+
if (!dbExists.rows[0].exists) {
|
152
|
+
await pgUserClient.query(`CREATE DATABASE ${systemPoolConfig.database}`);
|
153
|
+
}
|
154
|
+
// Load the DBOS system schema.
|
155
|
+
const pgSystemClient = new pg_1.Client(systemPoolConfig);
|
156
|
+
await pgSystemClient.connect();
|
157
|
+
try {
|
158
|
+
await (0, system_database_1.migrateSystemDatabase)(systemPoolConfig);
|
159
|
+
}
|
160
|
+
catch (e) {
|
161
|
+
const tableExists = await pgSystemClient.query(`SELECT EXISTS (SELECT FROM information_schema.tables WHERE table_schema = 'dbos' AND table_name = 'operation_outputs')`);
|
162
|
+
if (tableExists.rows[0].exists) {
|
163
|
+
// If the table has been created by someone else. Ignore the error.
|
164
|
+
logger.warn(`System tables creation failed, may conflict with concurrent tasks: ${e.message}`);
|
165
|
+
}
|
166
|
+
else {
|
167
|
+
throw e;
|
168
|
+
}
|
169
|
+
}
|
170
|
+
finally {
|
171
|
+
await pgSystemClient.end();
|
172
|
+
await pgUserClient.end();
|
173
|
+
}
|
174
|
+
}
|
175
|
+
//# sourceMappingURL=migrate.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"migrate.js","sourceRoot":"","sources":["../../../src/dbos-runtime/migrate.ts"],"names":[],"mappings":";;;AAAA,iDAAyC;AACzC,4CAAiD;AACjD,oDAAoD;AACpD,qCAA0E;AAC1E,oCAAwC;AACxC,2BAAwC;AACxC,iEAAgF;AAChF,wDAA2E;AAEpE,KAAK,UAAU,OAAO;IAC3B,MAAM,MAAM,GAAG,IAAI,mBAAY,EAAE,CAAC;IAElC,mCAAmC;IACnC,MAAM,UAAU,GAA2B,IAAA,uBAAc,EAAC,2BAAkB,CAAC,CAAC;IAC9E,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,CAAC,KAAK,CAAC,mBAAmB,2BAAkB,EAAE,CAAC,CAAC;QACtD,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,UAAU,GAAG,UAAU,CAAC,QAAQ,CAAC,aAAa,CAAC;IAErD,MAAM,CAAC,IAAI,CAAC,qBAAqB,UAAU,+BAA+B,CAAC,CAAC;IAC5E,MAAM,QAAQ,GAAG,eAAe,UAAU,CAAC,QAAQ,CAAC,QAAQ,OAAO,UAAU,CAAC,QAAQ,CAAC,IAAI,IAAI,UAAU,OAAO,UAAU,CAAC,QAAQ,CAAC,QAAQ,QAAQ,UAAU,EAAE,CAAC;IACjK,IAAI,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,UAAU,GAAG,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC;QACtD,MAAM,cAAc,GAAG,IAAA,wBAAQ,EAAC,QAAQ,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC3E,IAAI,cAAc,CAAC,QAAQ,CAAC,aAAa,UAAU,kBAAkB,CAAC,EAAE,CAAC;YACvE,MAAM,CAAC,IAAI,CAAC,YAAY,UAAU,iBAAiB,CAAC,CAAC;QACvD,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IAAI,CAAC,YAAY,KAAK,EAAE,CAAC;YACvB,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,UAAU,kBAAkB,CAAC,EAAE,CAAC;gBAClE,MAAM,CAAC,IAAI,CAAC,YAAY,UAAU,iBAAiB,CAAC,CAAC;YACvD,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;gBACtD,OAAO,CAAC,CAAC;YACX,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAChB,OAAO,CAAC,CAAC;QACX,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,aAAa,IAAI,gCAAgB,CAAC,IAAI,CAAC;IAC1E,MAAM,eAAe,GAAG,qBAAqB,MAAM,EAAE,CAAC;IACtD,MAAM,iBAAiB,GAAG,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC;IAEtD,IAAI,CAAC;QACH,iBAAiB,EAAE,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACjC,MAAM,OAAO,GAAG,QAAQ,eAAe,IAAI,GAAG,EAAE,CAAC;YACjD,MAAM,CAAC,IAAI,CAAC,gCAAgC,OAAO,EAAE,CAAC,CAAC;YACvD,MAAM,oBAAoB,GAAG,IAAA,wBAAQ,EAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC;YAC1D,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;QACxC,IAAI,CAAC,YAAY,KAAK,EAAE,CAAC;YACvB,mJAAmJ;YACnJ,MAAM,MAAM,GAAI,CAAS,CAAC,MAAM,CAAC;YACjC,IAAI,MAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC3D,MAAM,CAAC,KAAK,CAAC,mBAAmB,MAAM,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAC9D,CAAC;YACD,mJAAmJ;YACnJ,MAAM,MAAM,GAAI,CAAS,CAAC,MAAM,CAAC;YACjC,IAAI,MAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC3D,MAAM,CAAC,KAAK,CAAC,oBAAoB,MAAM,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAC/D,CAAC;YACD,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;gBACd,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;IACzD,IAAI,CAAC;QACH,MAAM,gBAAgB,CAAC,UAAU,CAAC,CAAC;IACrC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IAAI,CAAC,YAAY,KAAK,EAAE,CAAC;YACvB,MAAM,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QACpE,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAjFD,0BAiFC;AAED,SAAgB,iBAAiB;IAC/B,MAAM,MAAM,GAAG,IAAI,mBAAY,EAAE,CAAC;IAElC,qBAAqB;IACrB,MAAM,UAAU,GAA2B,IAAA,uBAAc,EAAC,2BAAkB,CAAC,CAAC;IAC9E,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,CAAC,KAAK,CAAC,mBAAmB,2BAAkB,EAAE,CAAC,CAAC;QACtD,OAAO,CAAC,CAAC;IACX,CAAC;IAED,IAAI,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,aAAa,CAAC;IAC/C,IAAI,MAAM,IAAI,SAAS,EAAE,CAAC;QACxB,MAAM,GAAG,MAAM,CAAC;IAClB,CAAC;IAED,MAAM,gBAAgB,GAAG,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC;IAEtD,IAAI,CAAC;QACH,gBAAgB,EAAE,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YAChC,MAAM,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,GAAG,GAAG,GAAG,CAAC;YAC5C,MAAM,CAAC,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,CAAC;YACpC,IAAA,wBAAQ,EAAC,OAAO,CAAC,CAAC;QACpB,CAAC,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;QAC/C,OAAO,CAAC,CAAC;IACX,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AA5BD,8CA4BC;AAED,oCAAoC;AACpC,iDAAiD;AACjD,KAAK,UAAU,gBAAgB,CAAC,UAAsB;IACpD,MAAM,MAAM,GAAG,IAAI,mBAAY,EAAE,CAAC;IAElC,MAAM,cAAc,GAAe;QACjC,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,QAAQ;QAClC,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,IAAI;QAC9B,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,QAAQ;QAClC,QAAQ,EAAE,UAAU,CAAC,QAAQ,CAAC,QAAQ;QACtC,uBAAuB,EAAE,UAAU,CAAC,QAAQ,CAAC,uBAAuB,IAAI,IAAI;QAC5E,QAAQ,EAAE,UAAU,CAAC,QAAQ,CAAC,aAAa;KAC5C,CAAC;IAEF,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QAC/B,cAAc,CAAC,GAAG,GAAG,EAAE,EAAE,EAAE,CAAC,IAAA,oBAAY,EAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC;IACpG,CAAC;IAED,MAAM,gBAAgB,GAAG,EAAE,GAAG,cAAc,EAAE,CAAC;IAC/C,gBAAgB,CAAC,QAAQ,GAAG,GAAG,cAAc,CAAC,QAAQ,WAAW,CAAC;IAElE,MAAM,YAAY,GAAG,IAAI,WAAM,CAAC,cAAc,CAAC,CAAC;IAChD,MAAM,YAAY,CAAC,OAAO,EAAE,CAAC;IAE7B,uCAAuC;IACvC,MAAM,YAAY,GAAG,MAAM,YAAY,CAAC,KAAK,CAAiB,oFAAoF,CAAC,CAAC;IACpJ,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;QACjC,MAAM,YAAY,CAAC,KAAK,CAAC,mCAAkB,CAAC,CAAC;QAC7C,MAAM,YAAY,CAAC,KAAK,CAAC,6BAAY,CAAC,CAAC;IACzC,CAAC;IAED,mCAAmC;IACnC,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,KAAK,CAAiB,2DAA2D,gBAAgB,CAAC,QAAQ,IAAI,CAAC,CAAC;IACpJ,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;QAC7B,MAAM,YAAY,CAAC,KAAK,CAAC,mBAAmB,gBAAgB,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC3E,CAAC;IAED,+BAA+B;IAC/B,MAAM,cAAc,GAAG,IAAI,WAAM,CAAC,gBAAgB,CAAC,CAAC;IACpD,MAAM,cAAc,CAAC,OAAO,EAAE,CAAC;IAE/B,IAAI,CAAC;QACH,MAAM,IAAA,uCAAqB,EAAC,gBAAgB,CAAC,CAAA;IAC/C,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,WAAW,GAAG,MAAM,cAAc,CAAC,KAAK,CAAiB,wHAAwH,CAAC,CAAC;QACzL,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;YAC/B,mEAAmE;YACnE,MAAM,CAAC,IAAI,CAAC,sEAAuE,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;QAC5G,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,CAAC;QACV,CAAC;IACH,CAAC;YAAS,CAAC;QACT,MAAM,cAAc,CAAC,GAAG,EAAE,CAAC;QAC3B,MAAM,YAAY,CAAC,GAAG,EAAE,CAAC;IAC3B,CAAC;AACH,CAAC"}
|
@@ -1,6 +1,7 @@
|
|
1
|
-
/// <reference types="@koa/bodyparser/dist/body-parser" />
|
2
1
|
/// <reference types="koa__router" />
|
3
2
|
/// <reference types="node" />
|
3
|
+
/// <reference types="node/http" />
|
4
|
+
/// <reference types="@koa/bodyparser/dist/body-parser" />
|
4
5
|
import Koa from 'koa';
|
5
6
|
import Router from '@koa/router';
|
6
7
|
import { DBOSExecutor } from "../dbos-executor";
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/httpServer/server.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/httpServer/server.ts"],"names":[],"mappings":";;;;AAAA,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,MAAM,MAAM,aAAa,CAAC;AAiBjC,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,YAAY,IAAI,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAK3D,eAAO,MAAM,kBAAkB,sBAAsB,CAAC;AACtD,eAAO,MAAM,mBAAmB,4BAA4B,CAAA;AAC5D,eAAO,MAAM,SAAS,kBAAkB,CAAA;AAExC,qBAAa,cAAc;IAUb,QAAQ,CAAC,QAAQ,EAAE,YAAY;IAT3C,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC;IAClB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAExB;;;;OAIG;gBACkB,QAAQ,EAAE,YAAY,EAAE,MAAM,GAAE;QAAE,GAAG,CAAC,EAAE,GAAG,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAO;IAwBxF;;;OAGG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM;IAOnB;;OAEG;IACD,MAAM,CAAC,sBAAsB,CAAC,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM;IAWtE;;;OAGG;IACH,MAAM,CAAC,wBAAwB,CAAC,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM;IAmBtE;;OAEG;IACH,MAAM,CAAC,0BAA0B,CAAC,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM;CA8KzE"}
|
@@ -40,11 +40,13 @@ export interface WorkflowStatusInternal {
|
|
40
40
|
export interface ExistenceCheck {
|
41
41
|
exists: boolean;
|
42
42
|
}
|
43
|
+
export declare function migrateSystemDatabase(systemPoolConfig: PoolConfig): Promise<void>;
|
43
44
|
export declare class PostgresSystemDatabase implements SystemDatabase {
|
44
45
|
readonly pgPoolConfig: PoolConfig;
|
45
46
|
readonly systemDatabaseName: string;
|
46
47
|
readonly logger: Logger;
|
47
48
|
readonly pool: Pool;
|
49
|
+
readonly systemPoolConfig: PoolConfig;
|
48
50
|
notificationsClient: PoolClient | null;
|
49
51
|
readonly notificationsMap: Record<string, () => void>;
|
50
52
|
readonly workflowEventsMap: Record<string, () => void>;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"system_database.d.ts","sourceRoot":"","sources":["../../src/system_database.ts"],"names":[],"mappings":"AAGA,OAAO,EAA0B,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAiB,IAAI,EAAE,UAAU,EAAgB,UAAU,EAAU,MAAM,IAAI,CAAC;AAEvF,OAAO,EAAgB,cAAc,EAAE,MAAM,YAAY,CAAC;AAG1D,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,YAAY,IAAI,MAAM,EAAE,MAAM,kBAAkB,CAAC;
|
1
|
+
{"version":3,"file":"system_database.d.ts","sourceRoot":"","sources":["../../src/system_database.ts"],"names":[],"mappings":"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"}
|
@@ -1,19 +1,39 @@
|
|
1
1
|
"use strict";
|
2
2
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
3
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
4
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
5
|
+
};
|
3
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
4
|
-
exports.PostgresSystemDatabase = void 0;
|
7
|
+
exports.PostgresSystemDatabase = exports.migrateSystemDatabase = void 0;
|
5
8
|
const serialize_error_1 = require("serialize-error");
|
6
9
|
const dbos_executor_1 = require("./dbos-executor");
|
7
10
|
const pg_1 = require("pg");
|
8
11
|
const error_1 = require("./error");
|
9
12
|
const workflow_1 = require("./workflow");
|
10
|
-
const system_db_schema_1 = require("../schemas/system_db_schema");
|
11
13
|
const utils_1 = require("./utils");
|
14
|
+
const knex_1 = __importDefault(require("knex"));
|
15
|
+
const path_1 = __importDefault(require("path"));
|
16
|
+
async function migrateSystemDatabase(systemPoolConfig) {
|
17
|
+
const migrationsDirectory = path_1.default.join((0, utils_1.findPackageRoot)(__dirname), 'migrations');
|
18
|
+
const knexConfig = {
|
19
|
+
client: 'pg',
|
20
|
+
connection: systemPoolConfig,
|
21
|
+
migrations: {
|
22
|
+
directory: migrationsDirectory,
|
23
|
+
tableName: 'knex_migrations'
|
24
|
+
}
|
25
|
+
};
|
26
|
+
const knexDB = (0, knex_1.default)(knexConfig);
|
27
|
+
await knexDB.migrate.latest();
|
28
|
+
await knexDB.destroy();
|
29
|
+
}
|
30
|
+
exports.migrateSystemDatabase = migrateSystemDatabase;
|
12
31
|
class PostgresSystemDatabase {
|
13
32
|
pgPoolConfig;
|
14
33
|
systemDatabaseName;
|
15
34
|
logger;
|
16
35
|
pool;
|
36
|
+
systemPoolConfig;
|
17
37
|
notificationsClient = null;
|
18
38
|
notificationsMap = {};
|
19
39
|
workflowEventsMap = {};
|
@@ -24,9 +44,9 @@ class PostgresSystemDatabase {
|
|
24
44
|
this.pgPoolConfig = pgPoolConfig;
|
25
45
|
this.systemDatabaseName = systemDatabaseName;
|
26
46
|
this.logger = logger;
|
27
|
-
|
28
|
-
|
29
|
-
this.pool = new pg_1.Pool(
|
47
|
+
this.systemPoolConfig = { ...pgPoolConfig };
|
48
|
+
this.systemPoolConfig.database = systemDatabaseName;
|
49
|
+
this.pool = new pg_1.Pool(this.systemPoolConfig);
|
30
50
|
}
|
31
51
|
async init() {
|
32
52
|
const pgSystemClient = new pg_1.Client(this.pgPoolConfig);
|
@@ -37,12 +57,7 @@ class PostgresSystemDatabase {
|
|
37
57
|
// Create the DBOS system database.
|
38
58
|
await pgSystemClient.query(`CREATE DATABASE "${this.systemDatabaseName}"`);
|
39
59
|
}
|
40
|
-
|
41
|
-
const schemaExists = await this.pool.query(`SELECT EXISTS (SELECT FROM information_schema.schemata WHERE schema_name = '${dbos_executor_1.DBOSExecutor.systemDBSchemaName}')`);
|
42
|
-
if (!schemaExists.rows[0].exists) {
|
43
|
-
// Load the DBOS system schemas.
|
44
|
-
await this.pool.query(system_db_schema_1.systemDBSchema);
|
45
|
-
}
|
60
|
+
await migrateSystemDatabase(this.systemPoolConfig);
|
46
61
|
await this.listenForNotifications();
|
47
62
|
await pgSystemClient.end();
|
48
63
|
}
|