Releases: littlehorse-enterprises/littlehorse
Releases · littlehorse-enterprises/littlehorse
v0.14.1
[0.14.1] - 2025-07-02
Bug Fixes
- (sdk-dotnet) Removes openid scope from token request so that the kernel knows it's a machine (#1699)
- (sdk-dotnet) Add validations to handle cases when new nodes are added after a complete. (#1559)
- (sdk-go) Fix struct and interface structure of nodeoput (#1690)
- (canary) Remove server version (#1657)
- (lhctl) Throw error if
search wfRun
called with no args (#1619) - (server,test-utils) Output topic handler input variables and e2e tenant creation (#1614)
- (server) Fix search principal when tenant id and admin not set (#1698)
Features
- (sdk-dotnet) Adds native support for async Tasks in .NET (#1678)
- (server) Add delete correlated event request (#1612)
- (server) Add delete correlated event request (#1612)
- (server) Support masked correlation keys (#1660)
- (server) Allow using direct io for rocksdb (#1604)
- (server) Rocksdb compaction optimizations (#1656)
- (sdk-java) Allow registration of workfloweventdef in dsl (#1628)
- (sdk-dotnet) Support for masked correlation id in C# (#1694)
Miscellaneous Tasks
- (security) Upgrade dependencies (#1622)
- (server) Fix capitalization on updatecorrelationmarkerpb (#1611)
- (server) Clean up correlation marker when wfrun deleted (#1629)
- (server) Make correlated event native to e2e (#1625)
Testing
- Fix canary flaky tests (#1601)
v0.14.0
[0.14.0] - 2025-06-09
Bug Fixes
- (sdk-python) Windows compatible (#1474)
- (sdk-python) Add validation to throws an error when do_else is called multiple times (#1480)
- (README) Update Slack URL (#1481)
- (dashboard) Better edge handling (#1489)
- (sdk-python) Ensure user id or user group is not empty in user task (#1477)
- (lhctl) Fix build issues from External Event typing PR (#1493)
- (sdk-go) Ensure user id or user group is not empty in user task (#1486)
- (sdk-dotnet) Ensure user id or user group is not empty in user task (#1479)
- (sdk-python) Implement
VariableDef.type_def
, bundletype
andmasked
(#1498) - (dashboard) Restore TaskDetails modal (#1504)
- (dashboard) Implement missing
TypeDefinition
functionality (#1503) - (sdk-dotnet) Fix do else if implementation when it is called between other LH statements (#1505)
- (sdk-python) Validate that do_if_else is working between other lh statements (#1506)
- (lhctl) Update outdated
VariableDef
s to useTypeDefinition
for typing - (server) Ensure userId or userGroup is not empty in user task (#1473)
- (sdk-java) Fixed null value from workerContext log (#1517)
- (sdk-java) Fix get credentials method (#1522)
- (lhctl) Update
go
dependency files based on Dependabot fixes (#1523) - (sdk-dotnet) Replace threadvar type by typedef and fix unit tests (#1524)
- (sdk-go) Replace type in variable def (#1525)
- (sdk-go) Jsonpath return pointer and return correct varType (#1530)
- (lhctl) Remove required flag
taskDefName
onsearch taskrun
(#1497) - (dashboard) Don't enforce
JSON_ARR
to include objects (#1539) - (lhctl) Properly infer vartype from vardef (#1541)
- (server) Handle API exception at request authorizer level (#1538)
- (server) Fixes ineffective external event e2e test (#1552)
- (server) Halted state should be considered as resolved when handling halt reasons on child threads (#1409)
Documentation
- (arc) Add struct and structdef proposal (#1471)
- (README) Update Learn URL (#1485)
- (proposals) Adds output topic proposal (#1484)
- (README) Update
Learn
badge URL (#1537) - (proposals) Revise
Proposal #000
(#1529) - (proposal) Add proposal for UserTaskRunComment (#1561)
Features
- Add getClientConfig to test utils lib (#1487)
- (sdk-dotnet) Add implementation for doelseif and doelse statements in thread (#1475)
- Enable strong typing on external events (#1412)
- (server) Adds output topic proto (#1495)
- (server) Implements output topic metadata management (#1500)
- (sdk-java) Add
WorkflowIfStatement
,doElseIf
anddoElse
methods (#1492) - (sdk-go) Add implementation for doelseif and doelse statements in thread (#1491)
- (sdk-dotnet) Mark old doIf method as obsolete (#1501)
- (sdk-go) Throw error when
WorkerContext
used as param without ptr (#1536) - (sdk-java) Utility for registering externaleventdefs (#1542)
- (server) Send records to output topic (#1509)
- (proposals) Strong typing deprecations proposal (#1550)
- (sdk-dotnet) Evaluate conditions within WfRunVariables (#1535)
- (sdk-python) Add
WorkflowThread#complete()
(#1557) - (server) Add
StructDef
s (#1508) - (server) Add experimental feature flag config for
StructDef
s (#1595) - (server) Support correlation id on external events (#1594)
Fix
- (docs) Removed e2e links from local-dev readme (#1515)
Miscellaneous Tasks
- (github) Update issue templates (#1478)
- (github) Revise new issue templates for improved clarity and less bloat (#1488)
- (sdk-dotnet) Remove obsolete tag from DoIf method (#1513)
- (sdk-java) Remove deprecate tag from doIfElse method (#1512)
- (server) Update kafka to 4.0.0 (#1421)
- (server) Upgrade micrometer-registry dep (#1510)
- (project) Adds project lifecycle document (#1549)
- Update commit message snippet for skipping tests (#1560)
- (littlehorse) Import nexus plugin and migrate to the new Central Publishing portal (#1556)
Performance
- (server) Avoid sending extra writes to rocksdb (#1490)
Refactor
- (server) Introducing InMemory getable managers for test (#1511)
- (sdk-go) Split node output timeout method functionality (#1528)
- (sdk-dotnet) Split node output timeout method functionality (#1527)
Testing
- (sdk-python) Add test validating lambda support (#1472)
- (server) Simplify unit testing for OneTaskQueue class (#1532)
- (server) Allow 500 ms between task run retry and retry in flaky test (#1555)
Build
v0.13.2
[0.13.2] - 2025-04-25
Bug Fixes
- (dashboard) Revalidate cache with proper keys (#1416)
- (lhctl) Update WfRun related commands to use proper arg rules (#1417)
- (sdk-dotnet) Fix parent variable mutation from child thread (#1424)
- (sdk-java) Set active thread to mutate a parent variable from child nested threads (#1434)
- (sdk-python) Set active thread to mutate parent variable from child nested threads (#1440)
- (dashboard) Handle large thread spec lists in tool tip (#1450)
- (dashboard) Quotes around raw string values (#1449)
- (dashboard) Scrollable thread panels (#1448)
- (dashboard) '.' replacement & conversions in form (#1452)
- (sdk-go) Set active thread to mutate parent variable from child nested threads (#1443)
- (dashboard) Disallow negative durations (#1464)
- (server) Fixes a security issue with the experimental WorkflowEvents feature(#1467)
- (server) Send an empty response for DeleteExternalEventDefRequestModel (#1469)
Features
- (sdk-python) Load configs form dictionary (#1410)
- (dashboard) Post external event (#1419)
- (dashboard) Child threads diagraming (#1422)
- (sdk-dotnet) Enable documentation in dotnet missing code (#1418)
- (server) Gracefully handle deserialization errors on ReportTaskRuns (#1286)
- (sdk-python) Add chainable If Statements with
do_else_if()
method (#1463) - (sdk-python) Add lambdas support for
ThreadInitializer
s (#1470)
Miscellaneous Tasks
- (libs) Improve java lib descriptions (#1408)
- Re-license to agplv3 to become open-source certified (#1425)
- (sdk-js) License to agplv3 (#1426)
- (lhctl) Bump Go version in
lhctl
Dockerfile (#1438)
Refactor
- (sdk-java) Move
NodeOutput#timeout
method to TaskNode and ExtEvtNode Outputs (#1430) - (sdk-java) Rename exception classes. (#1429)
- (server) Increase default task timeout 15s -> 60s (#1427)
Build
v0.13.1
[0.13.1] - 2025-03-27
Bug Fixes
- (sdk-dotnet) Add jsopath in nodeoutput (#1343)
- (canary) Change wf status retryable conditions (#1347)
- (dashboard) Correct input validation (#1355)
- (dashboard) Sign in if accessToken invalid (#1348)
- (server) Make standby on instance tracker synchronized for multiple threads (#1323)
- (server) Validate null on UserTaskRun arrival for userId and userGroup (#1333)
- (server) Removes kafka streams state metrics for metric info level (#1351)
- (server) Handles idempotency for external events (#1363)
- (sdk-java) Improve Array mapping from TaskDef input types to LH VariableTypes (#1370)
- (server) Support null assignments for workflow variables (#1374)
- (dashboard) Fix sign out (#1405)
Features
- (sdk-dotnet) Add child threads implementation (#1339)
- (dashboard) Metrics (#1345)
- (sdk-dotnet) Implement child threads foreach in workflow thread (#1349)
- (sdk-dotnet) Add interrupt handler and sleep node in workflow thread (#1352)
- (sdk-dotnet) Add advanced features in workflow thread (#1357)
- (dotnet) Support multitenancy (#1350)
- (sdk-dotnet) Implement methods to manage user tasks from the wf thread (#1367)
- (sdk-java) Add config builder (#1377)
- (local-dev) Add additional scripts (#1380)
- (sdk-dotnet) Add features to set retention policy and execute tasks dinamically (#1381)
- (canary) Healthy checks (#1346)
- (test-utils) Change LittleHorseContainer visibility (#1402)
- (sdk-dotnet) Support for SleepUntil methods and Update policies in WfSpecs (#1398)
- (dashboard) Identifiable data on wfrunid (#1406)
Miscellaneous Tasks
Refactor
- (examples) Readme clarification (#1382)
- (dashboard) Most recent selection (#1386)
- (dashboard) Use latest noderun (#1393)
- (dashboard) Double equals comparator
- (sdk-dotnet) Remove unnecessary integer converter class (#1389)
- (server) Remove mentions of LHW_SERVER_CONNECT_LISTENER config (#1399)
Build
v0.13.0
[0.13.0] - 2025-02-25
Bug Fixes
- (server) NodeRun status set to failure status (#1282)
- (examples) Typo
tha
->the
(#1281) - (sdk-java, server) Serde Java Objects into proper VariableValue types using Gson (#1275)
- (security) Update python version and cryptography, python >=3.10 required (#1285)
- (dashboard) Retrieve parent wf variables (#1288)
- Trim space (#1290)
- (examples) Fix typo on User Tasks example (#1302)
- (dashboard) Wfrun blank page (#1316)
- (server) External-event timeout (#1313)
- (dashboard) Nested parents (#1317)
- (lhctl) Support completing
UserTaskRun
s on Windows by trimming return characters (#1299) - (sdk-dotnet) Register external event before registering workflow (#1322)
- (dashboard) Swr rerendering & noderun display (#1320)
- Conditionally render sign out (#1327)
- (dashboard) Explicitly state none found (#1328)
- (canary) Add grpc code status to canary metrics (#1324)
- (server) Reject invalid arguments in
RunWfRequest
(#1321)
Features
- (tests-util) Add get network to lh test container (#1274)
- (dashboard) State no vars / muts
- (dashboard) Stop, resume, rescue (#1277)
- (sdk-dotnet) Implement do while conditional in wfspec (#1280)
- (dashboard) Restyle wfspecs usage display (#1284)
- (sdk-dotnet) Add mutation expression in the workflow thread (#1283)
- (sdk-dotnet) Add external events in workflow thread (#1292)
- (sdk-dotnet) Implement retries in task nodes and timeouts in external events (#1300)
- (sdk-dotnet) Add error handler to workflow thread (#1314)
- (dashboard) Use selectionlink (#1329)
- (sdk-dotnet) Add exception hablers in wf thread (#1325)
Miscellaneous Tasks
- (dashboard) Pins nginx-nodejs image to version v1 (#1301)
Refactor
v0.12.5
[0.12.5] - 2025-01-29
Bug Fixes
- (sdk-go) Use
int32
onWithRetries
, TestWithExponentialBackoff
(#1263) - (sdk-go) Change
int
args to match proto (#1264) - (sdk-java) Adds missing configs to sdk java (#1265)
- (sdk-go) Move variable default logic to
WithDefault
method (#1268) - (sdk-python) Add optional
default_value
parameter todeclare
var methods (#1269) - (sdk-go) Catch
nil
value early when converting interface to var val (#1271)
Features
- (sdk-dotnet) Add execute task feature to workflow spec (#1262)
- (sdk-dotnet) Add declare variables to wfspec (#1267)
Refactor
- (sdk-dotnet) Change tests to avoid using mocks at the maximum (#1270)
v0.12.4
[0.12.4] - 2025-01-21
Bug Fixes
- (dashboard) Moves authenticated pages to (authenticated) directory (#1250)
- (dashboard) Doesn't set next auth url internal if oauth callback url internal is not set
- (standalone) Update docker standalone image versions (#1261)
Features
- (dashboard) Swr polling for data updates (#1254)
- (sdk-go) Port
LHExpression
s and addTaskNodeOutput
functionality (#1253) - (sdk-dotnet) Add first basic workflow spec definition and registration (#1249)
Miscellaneous Tasks
- Add security.md (#1258)
Performance
- (server) Avoid rocksdb range scan on deletewfrun (#1259)
Refactor
- (test-utils) Adds support for all variable types in node output (#1252)
Build
- (ci) Test multiple go sdk versions (#1256)
v0.12.3
v0.12.2
[0.12.2] - 2025-01-10
Bug Fixes
- Prometheus metrics exporter, add new mandatory field server.id to metronome (#1200)
- (sdk-dotnet) Fix task worker connection manager (#1191)
- (lhctl) Add revisionNumber argument to
wfSpec delete
example (#1193) - (canary) Sort dataplaneId parameter on BeatProducer (#1206)
- (sdk-dotnet) Solve mapping dictionary as input in task method (#1207)
- Remove server id and data plane id from canary (#1209)
- (sdk-java) Fix getFutureStub credentials (#1227)
- (sdk-go, sdk-python) Remove dangling exit node (#1231)
- (server) Taskqueue ordering (#1229)
- (dependencies) Update poetry, authlib and grpcio (#1242)
- (build) Fix package builds (#1243)
- (build) Java publish pipeline (#1244)
- (build) Upgrade gpg import
- (build) Upgrade gpg import 2
- (build) Using env for importing gpg
Documentation
- (sdk-dotnet) Modify readmes to avoid duplicated info (#1225)
- (README) Update badges to reflect new logo and URLs (#1228)
Features
- (canary) Add mandatory config metronome.server.dataplane.id (#1205)
- (sdk-go) Handle LHTaskExceptions, Errors, and Panics (#1210)
- (dashboard) Display scheduledWfRuns (#1202)
- (sdk-go) Accept any interface for content in LHTaskException (#1216)
- (dashboard) Large variable display (#1213)
- (server) Adds a config that sets a rate limit to statestores in the core topology (#1230)
- (dashboard) Wait_for_condition implementation (#1235)
- (dashboard) Display taskdef usage by wfspecs (#1238)
- (test-utils) Publish test utils (#1078)
Miscellaneous Tasks
- Move from littlehorse.dev to littlehorse.io/docs/server (#1224)
- Fix images on readme (#1226)
- (server) Drop core repartition processor and stores (#1233)
- (readme) Fixes dashboard url in readme (#1240)
- (server) Sets jemalloc as default in lh server (#1236)
Refactor
- (sdk-dotnet) Change csharp proto namespace (#1218)
- (dashboard) New logo (#1220)
- (dashboard) Show logOutput (#1217)
- (lhctl) Standardize
lhctl
command formatting and parsing (#1219) - (sdk-dotnet) Rename methods and class from helpers (#1232)
Build
- (sdk-dotnet) Add dotnet job to release pipeline (#1214)
v0.12.1
[0.12.1] - 2024-12-16
Bug Fixes
- (docs) Replace deprecated scheduled task after method in user tasks doc (#1180)
- (server) Pass UserTask UserId and UserGroup details to WorkerContext (#1178)
- (sdk-go) Fixes input vars for reminder tasks (#1184)
- (python-sdk) Fix args in schedule reminder method (#1185)
- (docs) Replace java comment by python one in LH doc (#1186)
- (lhctl) Fix lhctl pipeline crashing by running go mod tidy
- (lhctl) Fix argument indexes on
schedule run
command (#1198)
Features
- (dotnet-sdk) Create worker context method to access from task execution (#1173)
- (server) Add source NodeRunId field to WorkflowEvent object (#1175)
- (dashboard) User task audit log (#1183)
- Add extra tags to metronome beats (#1195)
Miscellaneous Tasks
- (sdk-js) Include scheduled_wf_run export (#1197)