@dbos-inc/dbos-sdk 0.8.44-preview.g80a6eaab9e → 0.8.45-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 (51) hide show
  1. package/dist/packages/dbos-cloud/cli.js +0 -12
  2. package/dist/packages/dbos-cloud/cli.js.map +1 -1
  3. package/dist/packages/dbos-cloud/userdb.d.ts +0 -2
  4. package/dist/packages/dbos-cloud/userdb.d.ts.map +1 -1
  5. package/dist/packages/dbos-cloud/userdb.js +1 -173
  6. package/dist/packages/dbos-cloud/userdb.js.map +1 -1
  7. package/dist/src/dbos-runtime/cli.d.ts.map +1 -1
  8. package/dist/src/dbos-runtime/cli.js +14 -0
  9. package/dist/src/dbos-runtime/cli.js.map +1 -1
  10. package/dist/src/dbos-runtime/migrate.d.ts +3 -0
  11. package/dist/src/dbos-runtime/migrate.d.ts.map +1 -0
  12. package/dist/src/dbos-runtime/migrate.js +175 -0
  13. package/dist/src/dbos-runtime/migrate.js.map +1 -0
  14. package/dist/src/system_database.d.ts +2 -0
  15. package/dist/src/system_database.d.ts.map +1 -1
  16. package/dist/src/system_database.js +26 -11
  17. package/dist/src/system_database.js.map +1 -1
  18. package/dist/src/utils.d.ts +1 -0
  19. package/dist/src/utils.d.ts.map +1 -1
  20. package/dist/src/utils.js +26 -1
  21. package/dist/src/utils.js.map +1 -1
  22. package/dist/tsconfig.build.tsbuildinfo +1 -1
  23. package/examples/hello/start_postgres_docker.sh +1 -1
  24. package/migrations/20240123182943_schema.js +8 -0
  25. package/migrations/20240123183021_tables.js +48 -0
  26. package/migrations/20240123183025_indexes.js +14 -0
  27. package/migrations/20240123183030_triggers.js +39 -0
  28. package/package.json +1 -1
  29. package/packages/dbos-cloud/dist/packages/dbos-cloud/cli.js +0 -12
  30. package/packages/dbos-cloud/dist/packages/dbos-cloud/cli.js.map +1 -1
  31. package/packages/dbos-cloud/dist/packages/dbos-cloud/userdb.d.ts +0 -2
  32. package/packages/dbos-cloud/dist/packages/dbos-cloud/userdb.d.ts.map +1 -1
  33. package/packages/dbos-cloud/dist/packages/dbos-cloud/userdb.js +1 -173
  34. package/packages/dbos-cloud/dist/packages/dbos-cloud/userdb.js.map +1 -1
  35. package/packages/dbos-cloud/dist/src/dbos-runtime/cli.d.ts.map +1 -1
  36. package/packages/dbos-cloud/dist/src/dbos-runtime/cli.js +14 -0
  37. package/packages/dbos-cloud/dist/src/dbos-runtime/cli.js.map +1 -1
  38. package/packages/dbos-cloud/dist/src/dbos-runtime/migrate.d.ts +3 -0
  39. package/packages/dbos-cloud/dist/src/dbos-runtime/migrate.d.ts.map +1 -0
  40. package/packages/dbos-cloud/dist/src/dbos-runtime/migrate.js +175 -0
  41. package/packages/dbos-cloud/dist/src/dbos-runtime/migrate.js.map +1 -0
  42. package/packages/dbos-cloud/dist/src/system_database.d.ts +2 -0
  43. package/packages/dbos-cloud/dist/src/system_database.d.ts.map +1 -1
  44. package/packages/dbos-cloud/dist/src/system_database.js +26 -11
  45. package/packages/dbos-cloud/dist/src/system_database.js.map +1 -1
  46. package/packages/dbos-cloud/dist/src/utils.d.ts +1 -0
  47. package/packages/dbos-cloud/dist/src/utils.d.ts.map +1 -1
  48. package/packages/dbos-cloud/dist/src/utils.js +26 -1
  49. package/packages/dbos-cloud/dist/src/utils.js.map +1 -1
  50. package/packages/dbos-cloud/package.json +1 -1
  51. package/packages/dbos-openapi/package.json +1 -1
@@ -7,7 +7,7 @@ if [[ -z "${PGPASSWORD}" ]]; then
7
7
  fi
8
8
 
9
9
  # Start Postgres in a local Docker container
10
- docker run --rm --name=dbos-db --env=POSTGRES_PASSWORD=${PGPASSWORD} --env=PGDATA=/var/lib/postgresql/data --volume=/var/lib/postgresql/data -p 5432:5432 -d postgres:15.4
10
+ docker run --rm --name=dbos-db --env=POSTGRES_PASSWORD=${PGPASSWORD} --env=PGDATA=/var/lib/postgresql/data --volume=/var/lib/postgresql/data -p 5432:5432 -d postgres:16.1
11
11
 
12
12
  # Wait for PostgreSQL to start
13
13
  echo "Waiting for PostgreSQL to start..."
@@ -0,0 +1,8 @@
1
+ exports.up = function(knex) {
2
+ return knex.raw('CREATE SCHEMA IF NOT EXISTS dbos');
3
+ };
4
+
5
+ exports.down = function(knex) {
6
+ return knex.raw('DROP SCHEMA IF EXISTS dbos');
7
+ };
8
+
@@ -0,0 +1,48 @@
1
+ exports.up = function(knex) {
2
+ return knex.schema.withSchema('dbos')
3
+ .createTable('operation_outputs', function(table) {
4
+ table.text('workflow_uuid').notNullable();
5
+ table.integer('function_id').notNullable();
6
+ table.text('output');
7
+ table.text('error');
8
+ table.primary(['workflow_uuid', 'function_id']);
9
+ })
10
+ .createTable('workflow_inputs', function(table) {
11
+ table.text('workflow_uuid').primary().notNullable();
12
+ table.text('inputs').notNullable();
13
+ })
14
+ .createTable('workflow_status', function(table) {
15
+ table.text('workflow_uuid').primary();
16
+ table.text('status');
17
+ table.text('name');
18
+ table.text('authenticated_user');
19
+ table.text('assumed_role');
20
+ table.text('authenticated_roles');
21
+ table.text('request');
22
+ table.text('output');
23
+ table.text('error');
24
+ table.text('executor_id');
25
+ })
26
+ .createTable('notifications', function(table) {
27
+ table.text('destination_uuid').notNullable();
28
+ table.text('topic');
29
+ table.text('message').notNullable();
30
+ table.bigInteger('created_at_epoch_ms').notNullable().defaultTo(knex.raw('(EXTRACT(EPOCH FROM now())*1000)::bigint'));
31
+ })
32
+ .createTable('workflow_events', function(table) {
33
+ table.text('workflow_uuid').notNullable();
34
+ table.text('key').notNullable();
35
+ table.text('value').notNullable();
36
+ table.primary(['workflow_uuid', 'key']);
37
+ });
38
+ };
39
+
40
+ exports.down = function(knex) {
41
+ return knex.schema.withSchema('dbos')
42
+ .dropTableIfExists('operation_outputs')
43
+ .dropTableIfExists('workflow_inputs')
44
+ .dropTableIfExists('workflow_status')
45
+ .dropTableIfExists('notifications')
46
+ .dropTableIfExists('workflow_events');
47
+ };
48
+
@@ -0,0 +1,14 @@
1
+ exports.up = function(knex) {
2
+ return knex.schema.withSchema('dbos')
3
+ .table('notifications', function(table) {
4
+ table.index(['destination_uuid', 'topic'], 'idx_workflow_topic');
5
+ });
6
+ };
7
+
8
+ exports.down = function(knex) {
9
+ return knex.schema.withSchema('dbos')
10
+ .table('notifications', function(table) {
11
+ table.dropIndex(['destination_uuid', 'topic'], 'idx_workflow_topic');
12
+ });
13
+ };
14
+
@@ -0,0 +1,39 @@
1
+ exports.up = function(knex) {
2
+ return knex.raw(`
3
+ CREATE OR REPLACE FUNCTION dbos.notifications_function() RETURNS TRIGGER AS $$
4
+ DECLARE
5
+ payload text := NEW.destination_uuid || '::' || NEW.topic;
6
+ BEGIN
7
+ PERFORM pg_notify('dbos_notifications_channel', payload);
8
+ RETURN NEW;
9
+ END;
10
+ $$ LANGUAGE plpgsql;
11
+
12
+ CREATE TRIGGER dbos_notifications_trigger
13
+ AFTER INSERT ON dbos.notifications
14
+ FOR EACH ROW EXECUTE FUNCTION dbos.notifications_function();
15
+
16
+ CREATE OR REPLACE FUNCTION dbos.workflow_events_function() RETURNS TRIGGER AS $$
17
+ DECLARE
18
+ payload text := NEW.workflow_uuid || '::' || NEW.key;
19
+ BEGIN
20
+ PERFORM pg_notify('dbos_workflow_events_channel', payload);
21
+ RETURN NEW;
22
+ END;
23
+ $$ LANGUAGE plpgsql;
24
+
25
+ CREATE TRIGGER dbos_workflow_events_trigger
26
+ AFTER INSERT ON dbos.workflow_events
27
+ FOR EACH ROW EXECUTE FUNCTION dbos.workflow_events_function();
28
+ `);
29
+ };
30
+
31
+ exports.down = function(knex) {
32
+ return knex.raw(`
33
+ DROP TRIGGER IF EXISTS dbos_notifications_trigger ON dbos.notifications;
34
+ DROP FUNCTION IF EXISTS dbos.notifications_function;
35
+ DROP TRIGGER IF EXISTS dbos_workflow_events_trigger ON dbos.workflow_events;
36
+ DROP FUNCTION IF EXISTS dbos.workflow_events_function;
37
+ `);
38
+ };
39
+
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dbos-inc/dbos-sdk",
3
- "version": "0.8.44-preview.g80a6eaab9e",
3
+ "version": "0.8.45-preview",
4
4
  "description": "A Typescript framework built on the database",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -129,18 +129,6 @@ userdbCommands
129
129
  const { host } = userdbCommands.opts();
130
130
  await (0, userdb_1.deleteUserDb)(host, dbname);
131
131
  }));
132
- userdbCommands
133
- .command('migrate')
134
- .action((async () => {
135
- const exitCode = await (0, userdb_1.migrate)();
136
- process.exit(exitCode);
137
- }));
138
- userdbCommands
139
- .command('rollbackmigration')
140
- .action((() => {
141
- const exitCode = (0, userdb_1.rollbackMigration)();
142
- process.exit(exitCode);
143
- }));
144
132
  program.parse(process.argv);
145
133
  // If no arguments provided, display help by default
146
134
  if (!process.argv.slice(2).length) {
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../cli.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,5 @@ export interface UserDBInstance {
7
7
  export declare function createUserDb(host: string, dbName: string, adminName: string, adminPassword: string, sync: boolean): Promise<void>;
8
8
  export declare function deleteUserDb(host: string, dbName: string): Promise<void>;
9
9
  export declare function getUserDb(host: string, dbName: string): Promise<void>;
10
- export declare function migrate(): Promise<number>;
11
- export declare function rollbackMigration(): number;
12
10
  export declare function getUserDBInfo(host: string, dbName: string): Promise<UserDBInstance>;
13
11
  //# sourceMappingURL=userdb.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"userdb.d.ts","sourceRoot":"","sources":["../../../userdb.ts"],"names":[],"mappings":"AAYA,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,iBAmCvH;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,iBAoB9D;AAED,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,iBAa3D;AAED,wBAAsB,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC,CAiF/C;AAED,wBAAgB,iBAAiB,IAAI,MAAM,CA4B1C;AAED,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAYzF"}
1
+ {"version":3,"file":"userdb.d.ts","sourceRoot":"","sources":["../../../userdb.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,iBAmCvH;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,iBAoB9D;AAED,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,iBAa3D;AAED,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAYzF"}
@@ -3,17 +3,11 @@ 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.rollbackMigration = exports.migrate = exports.getUserDb = exports.deleteUserDb = exports.createUserDb = void 0;
6
+ exports.getUserDBInfo = exports.getUserDb = exports.deleteUserDb = exports.createUserDb = void 0;
7
7
  const axios_1 = __importDefault(require("axios"));
8
8
  const logs_1 = require("../../src/telemetry/logs");
9
9
  const cloudutils_1 = require("./cloudutils");
10
10
  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
11
  async function createUserDb(host, dbName, adminName, adminPassword, sync) {
18
12
  const logger = new logs_1.GlobalLogger();
19
13
  const userCredentials = (0, cloudutils_1.getCloudCredentials)();
@@ -85,118 +79,6 @@ async function getUserDb(host, dbName) {
85
79
  }
86
80
  }
87
81
  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
82
  async function getUserDBInfo(host, dbName) {
201
83
  const userCredentials = (0, cloudutils_1.getCloudCredentials)();
202
84
  const bearerToken = "Bearer " + userCredentials.token;
@@ -209,58 +91,4 @@ async function getUserDBInfo(host, dbName) {
209
91
  return res.data;
210
92
  }
211
93
  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
94
  //# sourceMappingURL=userdb.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"userdb.js","sourceRoot":"","sources":["../../../userdb.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"userdb.js","sourceRoot":"","sources":["../../../userdb.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":";AAgBA,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"}
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;AAExC,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,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"}
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,3 @@
1
+ export declare function migrate(): Promise<number>;
2
+ export declare function rollbackMigration(): number;
3
+ //# sourceMappingURL=migrate.d.ts.map
@@ -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