Releases: dbos-inc/dbos-transact-ts
v3.0
This is a major release of DBOS TypeScript! The most important changes include:
- Decorators are now optional! You can use any TypeScript function as a workflow or step. This makes it easier to add DBOS to code bases that don’t enable TS decorators. See the workflows and steps docs for examples.
- DBOS is now JavaScript compatible! You can add DBOS (using the new decoratorless API) to any JS application, no TS required.
- A new DataSource API makes it easy to write steps that access your Postgres database (using raw SQL or any ORM) and run them transactionally with exactly-once semantics. See the docs.
- Big overhaul of the docs, with multiple new demo applications (including a new AI research agent demo)
This release includes breaking changes. For a full documentation and an upgrade guide, see: https://docs.dbos.dev/typescript/upgrading
What's Changed
- First part of TSv3 infrastructure - Event Receivers by @chuck-dbos in #939
- Workflow Retention by @kraftp in #940
- Retention policy in Conductor by @qianl15 in #944
- Add workflow get list admin enpoints by @maxdml in #943
- Koa serving external package by @chuck-dbos in #942
- Devhawk/decorator-free by @devhawk in #946
- Data sources TSv3 by @chuck-dbos in #951
- fix: missing period in README.md by @joebowbeer in #952
- add deprecated JSDoc to both DBOS.invoke overloads by @devhawk in #954
- startWorkflowFunction by @devhawk in #949
- use Proxy/Reflect in startWorkflow by @devhawk in #957
- update startWorkflow to handle free function registered workflows by @devhawk in #959
- update version.json to 3.0-preview by @devhawk in #962
- Change what happens to step/tx outside wf by @chuck-dbos in #958
- Handle attributes safely when ending spans by @maxdml in #963
- record error when pg ds function throws by @devhawk in #964
- Remove tests for old API by @chuck-dbos in #966
- Remove small utility libs by @chuck-dbos in #967
- Adjustments from demo apps by @chuck-dbos in #968
- DataSource Updates by @devhawk in #970
- update knex db schema init/uninit functions by @devhawk in #971
- SQS Library redo by @chuck-dbos in #969
- v3 cleanup pt2 by @chuck-dbos in #973
- Remove TestingRuntime by @chuck-dbos in #972
- Removing deprecated API and HandlerContext implementation by @chuck-dbos in #974
- exclude tsconfig.build.tsbuildinfo from DS packages by @devhawk in #978
- Devhawk/kafka-v3 by @devhawk in #975
- DS v3 Adjustments by @chuck-dbos in #979
- List workflows admin endpoints by @qianl15 in #980
- Kafka Improvements by @devhawk in #983
- WF registration + JS test by @chuck-dbos in #981
- GetWorkflow admin endpoint returns WorkflowsOutput by @qianl15 in #984
- Remove v1 API support from dbos-compiler by @devhawk in #985
- replace deprecated husky install command by @devhawk in #986
- List workflows/queues support skipping input/output by @qianl15 in #987
- More context removal by @chuck-dbos in #977
- Lifecycle Callback class -> interface by @devhawk in #988
- Remove time travel by @qianl15 in #956
- Add span to logger again, +test by @chuck-dbos in #992
- Clean up and fix registrations; remove event receivers by @chuck-dbos in #989
- S3 v3, cleanup by @chuck-dbos in #994
- Scheduler for TSv3 by @devhawk in #993
- Bundler Support by @kraftp in #997
- Make registrations consistent by @chuck-dbos in #999
- Prisma Data Source (v3) by @chuck-dbos in #1003
- Chuck/dbnotifiers v3 by @chuck-dbos in #996
- Config Cleanup by @devhawk in #1000
- Cleanup Unused Dependencies by @kraftp in #1001
- Add Node 24 to the test matrix by @devhawk in #1004
- fix OTLPExporterConfig interface by @devhawk in #1005
- Max Recovery Attempts by @kraftp in #1007
- Move create templates to external data source packages by @chuck-dbos in #1006
- Deprecations for v3 by @chuck-dbos in #1009
- accept go apps and check for a main file by @maxdml in #1011
- Drop Node 23 from test matrix by @devhawk in #1013
- ConfigFile processing Breaking Changes by @devhawk in #1008
- Install correct dependencies by @qianl15 in #1014
- address 2 high, 1 critical vulnerability via npm audit fix by @devhawk in #1015
- use knex user db client in chaos test by @devhawk in #1018
- Tracing approach for v3 by @chuck-dbos in #1010
- Optional User DB by @devhawk in #1016
- fix chaos test iterations by @devhawk in #1019
- Handle config.name correctly by @devhawk in #1020
- create pg alias for postgres cli command by @devhawk in #1021
- update koa router dependency by @devhawk in #1022
- Fix Child Workflow Recovery by @kraftp in #1023
- Remove dbos start with entrypoints by @qianl15 in #1024
- More Deprecations by @devhawk in #1025
- Update client.create to make db url optional by @devhawk in #1026
- Devhawk/config-changes-v3 by @devhawk in #1028
- Use systemDatabaseUrl in setConfig for templates by @qianl15 in #1027
- call overwriteConfigForDBOSCloud in dbos migrate cli by @devhawk in #1030
- README Update by @kraftp in #1029
- Install latest version of DBOS dependencies by @qianl15 in #1031
New Contributors
- @joebowbeer made their first contribution in #952
Full Changelog: v2.10...v3.0
v2.10.24
v2.10
What's Changed
- Handle Database Disconnections by @kraftp in #930
- Print DBOS version and executor ID upon startup by @qianl15 in #938
- Faster Queues by @qianl15 in #929
- Dependency Upgrade by @kraftp in #901
- Update READMEs by @qianl15 in #899
- remove undocumented parts of DBOS public surface area by @devhawk in #902
- Fix recovery deadlines by @maxdml in #903
- add a queue ctor with only the name parameter by @maxdml in #905
- Clean up and clarify errors by @chuck-dbos in #906
- Consolidate (and await) with ... context functions by @chuck-dbos in #909
- Improve Drizzle Test by @chuck-dbos in #912
- Fix warning message for recovery by @qianl15 in #914
- Remove config consistency check by @maxdml in #916
- Correctly parse timeout deadlines and remove special tmp wf case for name by @maxdml in #917
- HTTP Tests to v2 by @chuck-dbos in #919
- Consolidate Inputs by @kraftp in #921
- Trivial changes (taken from TSv3 branch) by @chuck-dbos in #931
- don't re-record tx error result by @devhawk in #933
- Password not required in database_url by @qianl15 in #936
Full Changelog: v2.9...v2.10
v2.9
What's Changed
- bump default sys db pool size to 20 by @maxdml in #869
- Internal queue by @manojdbos in #865
- Fix is initialized by @maxdml in #870
- randomUUID by @devhawk in #875
- Update SysDB.listWorkflows / listQueuedWorkflows by @devhawk in #864
- silence logs when parsing config during workflow get and workflow steps by @maxdml in #876
- Fork workflow from a step by @manojdbos in #874
- SysDB Cleanup + Preemptive Cancel Groundwork by @chuck-dbos in #871
- Fork id version by @manojdbos in #879
- return workflow_id by @manojdbos in #881
- Refactor PG sysdb by @devhawk in #880
- Suggest .workflowID instead of .getWorkflowUUID() by @chuck-dbos in #882
- WF Inspection & Management Refactoring by @devhawk in #877
- add DBOS.listWorkflowSteps by @devhawk in #883
- Support fork in Conductor by @qianl15 in #884
- Fix Deactivate by @kraftp in #886
- add comments regarding migration misnaming issue by @devhawk in #887
- DRY sysdb.getWorkflowStatus by @devhawk in #888
- Worker Concurrency Fix by @kraftp in #889
- Remove test that does weird stuff by @chuck-dbos in #894
- CLI support for setting min-executors in app update by @apoliakov in #892
- Custom Config Path In Deploy by @kraftp in #895
- Deduplication by @manojdbos in #885
- Workflow Timeout by @devhawk in #891
- Priority queue by @manojdbos in #896
- Rename migration file by @qianl15 in #898
- app version in admin api by @manojdbos in #900
Full Changelog: v2.8...v2.9
v2.8
What's Changed
New Features
-
Use connection strings to configure user DB clients by @maxdml in #849
-
Cloud CLI environment variables/secrets deletion command by @maxdml in #845
-
Add dbos postgres start/stop CLI command to manage Docker-based Postgres servers by @maxdml in #847
Deprecation Notice
We are moving away from dbos-config.yaml file and deprecating separate database config fields. Instead, we recommend setting DBOSConfig through DBOS.setConfig() and databaseUrl.
Bug Fixes/Improvements
- improve Cloud CLI DB url description by @maxdml in #839
- Remove buffers by @qianl15 in #837
- TS JSDocs round 2 by @chuck-dbos in #840
- Better Lifecycle Logging by @kraftp in #842
- Delete unused file by @qianl15 in #843
- Clean Up EventRec API by @chuck-dbos in #846
- Add transactions to list steps by @manojdbos in #844
- Update DBOS Compiler by @devhawk in #848
- Better Conductor Error Message by @qianl15 in #851
- Fix DB Connect by @kraftp in #853
- Cleanup for SysDB: Operation outputs record by @chuck-dbos in #850
- Upgrade Dependencies by @kraftp in #857
- Prevent Koa middleware from being invoked multiple times by @lnrdgmz in #854
- Backward compatibility for templates by @maxdml in #860
- bump connect timeout to 10s by @maxdml in #861
- remove warning by @maxdml in #866
New Contributors
Full Changelog: v2.7...v2.8
v2.7
What's Changed
- Configify: Offer a new public interface for DBOSConfig by @maxdml in #800
- Check that DB Setting matches client request by @chuck-dbos in #806
- Configify typed by @maxdml in #807
- DBOS Client by @devhawk in #805
- static async ctor for DBOS Client by @devhawk in #809
- rename EnqueueOptions maxRetries -> maxRecoveryAttempts to match naming in WF Config by @devhawk in #812
- Config poolsize and appdbconnecttimeout by @maxdml in #811
- Step adminapi by @manojdbos in #813
- Introspection by @kraftp in #818
- Update tsconfig by @devhawk in #821
- add jsdoc comments to DBOSClient by @devhawk in #823
- Record get_result as a step by @kraftp in #826
- List Steps Conductor by @kraftp in #827
- InitContext becomes optional by @chuck-dbos in #824
- Arg optional is entirely opt-in by @chuck-dbos in #828
- update dbos client enqueue to return a wf handle and not include maxRecoveryAttempts in enqueue options by @devhawk in #829
- Merge OTLP endpoints during overwrite + accept logs list by @maxdml in #833
- First installment of JSDocs by @chuck-dbos in #835
- db connect returns dbString + remove rollback and local commands by @maxdml in #836
Bug fixes and improvements
- Don't warn when DBOS_DATABASE_URL is not defined on deploy by @apoliakov in #808
- Remove TestingRuntime from debugger tests by @chuck-dbos in #803
- remove sysdb checkWorkflowOutput by @devhawk in #810
- add a tsconfig file to tests folder to share compiler settings with the rest of the code base by @devhawk in #816
- Revert "add a tsconfig file to tests folder to share compiler settings with the rest of the code base" by @devhawk in #817
- Implement ping pong with Conductor by @qianl15 in #814
- Do not crash when unable to start the admin server by @maxdml in #820
- Fix CLI handling of configuration + telemetry overwrite by @maxdml in #822
- handle spaces in app name when building app db name by @maxdml in #825
- Consolidate sysdb reset code by @maxdml in #831
- Fix for handling error and output field for steps by @manojdbos in #830
- warn users when a queue is constructed post DBOS launch by @maxdml in #832
Full Changelog: v2.6...v2.7
v2.6
What's Changed
- handle chooseAppDBServer errors and return a 1 exit code if it threw by @maxdml in #785
- Fix TT Debug Mode by @devhawk in #786
- Clearer errors when function registration is not done correctly. by @chuck-dbos in #787
- Make configureInstance optional by @chuck-dbos in #790
- Support sort order, offset, and workflow IDs in listWorkflows by @qianl15 in #792
- Stabilize kafka test for local dev by @chuck-dbos in #793
- cancellable sleepms by @maxdml in #789
- allow 2ms of slack time vs 2 us by @maxdml in #795
- Conductor support by @qianl15 in #794
- Save function name and List workflow steps by @manojdbos in #791
- Support error message in conductor by @qianl15 in #797
- Enqueue transactions and steps by @chuck-dbos in #796
- Move off TestingRuntime by @chuck-dbos in #798
- child workflows as steps by @manojdbos in #799
- Conductor Tweaks by @kraftp in #801
- Switch telemetry test to v2 by @chuck-dbos in #804
Full Changelog: v2.5...v2.6
v2.5
What's Changed
- JSON schema for yaml file is compiled in by @chuck-dbos in #769
- Use global params for executor ID by @qianl15 in #774
- Workflow cmd cli fix by @manojdbos in #773
- Remove node 18 from test matrix by @qianl15 in #775
- Capture all stdout with dbos logger by @maxdml in #771
- Better Workflows List by @kraftp in #776
- remove lockfile constraint during node app deploys by @maxdml in #777
- Cloud cli actually compress and monitor by @maxdml in #778
- Only clear queue assignment if wf is still in the queue by @maxdml in #779
- Relax reflect-metadata requirement by @chuck-dbos in #780
- No duplicate executor id column by @maxdml in #781
- Shared TS Config by @devhawk in #782
- Fix 'high' issue w/ axios by @chuck-dbos in #783
Full Changelog: v2.4...v2.5
v2.4
What's Changed
- Fix the error messages for running workflow from within step/tx by @chuck-dbos in #752
- Catch Exceptions During System Database Migration by @kraftp in #753
- Fix the wrong error message by @qianl15 in #756
- Fix q global concurrency by @maxdml in #754
- Update Koa dependency to 2.15.4 by @devhawk in #758
- Handle empty database field in DBOS Config by @qianl15 in #761
- Workflow Management Cloud CLI by @kraftp in #760
- update compiler dependencies by @devhawk in #762
- Enable setting winston forceConsole in debug scenarios by @devhawk in #759
- Real cancel by @manojdbos in #755
- Fix db_wizard behavior and add a test by @qianl15 in #763
- add an admin endpoint to query workflow queues metadata by @maxdml in #742
- remove obsolete debug proxy config field by @devhawk in #766
- Detect double decoration by @chuck-dbos in #767
- Added tracing for Hono apps by @GarrisonBates in #768
- Application Versioning by @kraftp in #765
- do not rely on sleep by @maxdml in #770
Full Changelog: v2.3...v2.4
v2.3
What's Changed
- remove explicit notion of recovery by @maxdml in #743
- Prettier by @kraftp in #745
- rename urls for wf admin apis by @manojdbos in #746
- Test & Improve Queue Semantics by @kraftp in #747
- List Queues by @kraftp in #749
- Fix queue recovery by @maxdml in #739
- Env vars to override DB connection by @devhawk in #748
Full Changelog: v2.2...v2.3