Skip to content

Releases: littlehorse-enterprises/littlehorse

v0.14.1

02 Jul 21:44
Compare
Choose a tag to compare

[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

09 Jun 23:26
1c24c52
Compare
Choose a tag to compare

[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, bundle type and masked (#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 VariableDefs to use TypeDefinition 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 on search 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 and doElse 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 StructDefs (#1508)
  • (server) Add experimental feature flag config for StructDefs (#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

  • (deps) Bump github.com/go-jose/go-jose/v4 from 4.0.4 to 4.0.5 (#1519)
  • (deps) Bump golang.org/x/net from 0.28.0 to 0.38.0 (#1520)
  • (deps) Bump github.com/go-jose/go-jose/v4 in /lhctl (#1521)

v0.13.2

25 Apr 21:58
146593e
Compare
Choose a tag to compare

[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 ThreadInitializers (#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

  • (deps) Bump golang.org/x/crypto from 0.31.0 to 0.35.0 in /lhctl (#1435)
  • (deps) Bump golang.org/x/crypto from 0.31.0 to 0.35.0 (#1439)

v0.13.1

27 Mar 23:13
31016fb
Compare
Choose a tag to compare

[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

  • (sdk-java) Remove awaitility dependency (#1365)
  • (server) Remove junit assertions (#1400)

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

  • (server) Publish server and canary (#1401)
  • (pipeline) Fix release java pipeline (#1407)

v0.13.0

25 Feb 17:52
f4c0850
Compare
Choose a tag to compare

[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 UserTaskRuns 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

  • (dashboard) More accurate task & noderun related data display (#1276)
  • (dashboard) Code font (#1326)

v0.12.5

29 Jan 16:23
6a6e8b7
Compare
Choose a tag to compare

[0.12.5] - 2025-01-29

Bug Fixes

  • (sdk-go) Use int32 on WithRetries, Test WithExponentialBackoff (#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 to declare 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

21 Jan 22:49
5b37303
Compare
Choose a tag to compare

[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 LHExpressions and add TaskNodeOutput 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

16 Jan 17:21
fdcdb35
Compare
Choose a tag to compare

[0.12.3] - 2025-01-16

Bug Fixes

  • (canary) Default topic replication factor (#1247)
  • (canary) Add new aggregator to ensure consistency (#1248)

Miscellaneous Tasks

  • (server) Changes level compaction to universal (#1234)

Performance

  • (server) Async processing for command producer callbacks (#1245)
  • (server) Task claim events (#1246)

v0.12.2

10 Jan 22:42
v0.12.2
b292e62
Compare
Choose a tag to compare

[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

16 Dec 17:56
0a13936
Compare
Choose a tag to compare

[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)

Refactor

  • (dashboard) Professional all time display (#1181)
  • (dashboard) Headlessui -> shadcn (#1182)

Build

  • (deps) Bump golang.org/x/crypto from 0.26.0 to 0.31.0 (#1192)
  • (deps) Bump nanoid from 3.3.7 to 3.3.8 in /docs (#1190)