- Updated dependencies [749b7a3]
- @openfn/runtime@1.9.4
- @openfn/engine-multi@1.12.1
- 8ebc086: Add support for state memory limit via worker
- reduce default size of state objects
- Updated dependencies [8ebc086]
- @openfn/engine-multi@1.12.0
- @openfn/lexicon@2.3.0
- 8b912fa: Add the ability to ignore and override errors messsages before reporting to sentry
- Updated dependencies [25e01c9]
- @openfn/lexicon@2.2.1
- ff1b1b6:
OPENFN_ADAPTORS_REPOnow supports multiple comma-separated paths.
- Add workaround for rare event duplication
- e453f6a: Support webhook_response in step:complete event when data available in results
- Updated dependencies [e453f6a]
- @openfn/lexicon@2.1.0
- Update type interfaces to match new portability spec.
- Updated dependencies [728e6cb]
- Updated dependencies [380bccd]
- @openfn/lexicon@2.0.0
- @openfn/runtime@1.9.3
- @openfn/engine-multi@1.11.4
- 7f93ddb: Fix an issue in batch events
- Updated dependencies [944ed19]
- Updated dependencies [4a25473]
- Updated dependencies [8d2954d]
- @openfn/runtime@1.9.2
- @openfn/engine-multi@1.11.3
- Accept project id on workflow (for use with collections)
- Updated dependencies
- @openfn/lexicon@1.5.0
- 9f65093: Revert min-release-age constraint on adaptor installation
- Updated dependencies [9f65093]
- @openfn/runtime@1.9.1
- @openfn/engine-multi@1.11.2
- 27ec317: Add debug logging to step-complete payloads
- Harden empty state detection in final_state processing
- aa833d6: Enforce run memory limits at the child_process level
- 69a7e0e: When processing final state for a run with multiple leaf nodes, don't send empty leaf results. This prevents state recursively growing in cron tasks
- Updated dependencies [aa833d6]
- @openfn/engine-multi@1.11.1
- 1cd60b8: Fix a critical issue when processing batch events that could cause runs to be lost
- b724db5: Update docket image to use node 24
- Updated dependencies [b0261ef]
- Updated dependencies [d97be13]
- @openfn/engine-multi@1.11.0
- @openfn/runtime@1.9.0
- 945437c: When installing adaptors, only install versions that have been released for 24hours
- Updated dependencies [945437c]
- @openfn/runtime@1.8.7
- @openfn/engine-multi@1.10.8
- Even when sending final_dataclip_id, send finalState because it may be used by other consumers
- 01a05ff: on send complete, only send final_state for multi-leaf output state. For single-leaf runs, reutrn final_dataclip_id
- 5981876: Security updates
- Updated dependencies [5981876]
- @openfn/engine-multi@1.10.7
- @openfn/lexicon@1.4.2
- @openfn/runtime@1.8.6
- @openfn/logger@1.1.2
- 0ed97be: Improve error reporting to resolve the dreaded "fn is not a function" error that occurs when writing
console.log()at the top of job code - Updated dependencies [0ed97be]
- @openfn/runtime@1.8.5
- @openfn/engine-multi@1.10.6
- 6fd3942: Fix an issue where unhandled errors could trigger a worker crash after a compilation error.
- 32b43cb: When reporting compilation errors, prefer the step name to the id
- Updated dependencies [6fd3942]
- Updated dependencies [32b43cb]
- @openfn/engine-multi@1.10.5
-
07457d7: Fastlane support: multiple concurrent workloops, each with its own isolated capacity and backoff.
Claims also include a
queueskey, which specifies a prioritised list of Lightning work queues to claim from.Configure workloops with the
--workloopsCLI option or env. By default the worker usersmanual>*5, which provides parity behaviour to prior production.
-
b6c1456: Update the batch logs API.
Previously if running with
--batch-logsenabled, the Worker would restructure therun:logevent to send a { logs: [] } array on the payload. This functionality was never released to lightning so should be unused.Batch logs are now configured to send a separate
run:batch_logsevent, preserving therun:logpayload.Batch logs will remain disabled by default until the next major release.
- Updated dependencies [dd88099]
- @openfn/runtime@1.8.4
- @openfn/engine-multi@1.10.4
- Updated dependencies [f2856c5]
- @openfn/runtime@1.8.3
- @openfn/engine-multi@1.10.3
- Updated dependencies [61d9418]
- @openfn/runtime@1.8.2
- @openfn/engine-multi@1.10.2
- Updated dependencies [b262d10]
- Updated dependencies [147a431]
- @openfn/runtime@1.8.1
- @openfn/engine-multi@1.10.1
-
064933d: Measure the size of state objects at the end of each step, and throw if they exceed a limit
In the Worker, this limit is set to 25% of the available runtime memory.
- f089f8d: Remove special edge condition mapping (this is now handled by the runtime)
- Updated dependencies [f089f8d]
- Updated dependencies [064933d]
- @openfn/runtime@1.8.0
- @openfn/engine-multi@1.10.0
- Add internal fallback timeout to events. Also adjust error handling to try and catch an uncaught error
- q
- Updated dependencies [a1bfdc1]
- Updated dependencies [c70369b]
- @openfn/runtime@1.7.7
- @openfn/logger@1.1.1
- @openfn/engine-multi@1.9.1
- 3a7038b: Allow logs to be sent to Lightning in batches. This behavior is disabled by default for back-compatibility: set
WORKER_BATCH_LOGS=trueto enable. - 5417e97: Reduce the payload size of log events sent out to Lightning. This defaults to 1mb but can be configured with
WORKER_MAX_LOG_PAYLOAD_MB
- Updated dependencies [5417e97]
- @openfn/lexicon@1.3.0
- @openfn/engine-multi@1.9.0
- Updated dependencies [72f18b1]
- Updated dependencies [2cc28a6]
- @openfn/lexicon@1.2.7
- @openfn/logger@1.1.0
- @openfn/engine-multi@1.8.5
- @openfn/runtime@1.7.6
- @openfn/engine-multi@1.8.4
- b42b0b0: Force disable message retries
- 3e0aac7: Retry events if they are timed out. Will retry WORKER_TIMEOUT_RETRY_COUNT times and wait for WORKER_TIMEOUT_RETRY_DELAY_MS or WORKER_MESSAGE_TIMEOUT_SECONDS between retries
- 62f24b0: Fix an edge case where the server can shut down in-between claim and start (lost runs edge case)
- Updated dependencies [fe06f44]
- @openfn/runtime@1.7.5
- @openfn/engine-multi@1.8.3
- Updated dependencies [8632629]
- Updated dependencies [0e5b7d4]
- Updated dependencies [7e12e4b]
- @openfn/engine-multi@1.8.2
- Updated dependencies
- @openfn/engine-multi@1.8.1
- 475f8cf: Add options to profile memory usage in workflows. This should give a more accurate reading of the memory used by a run, but may have a small impact on performance
- 34edb8b: Improved logging of available memory on claim
- Updated dependencies [3cd3cd5]
- Updated dependencies [475f8cf]
- @openfn/runtime@1.7.4
- @openfn/engine-multi@1.8.0
- b61bf9b: Fix an issue where memory may not be released after runs
- Updated dependencies [b61bf9b]
- @openfn/engine-multi@1.7.1
- cf8d3c2: Add retry with backoff to worker validation
- Updated dependencies [cf8d3c2]
- @openfn/engine-multi@1.7.0
- 09dd4b2: - Add
final_stateobject toworkflow:completeevent- Remove unused
final_dataclip_idfromworkflow:completepayload
- Remove unused
- Updated dependencies [09dd4b2]
- @openfn/lexicon@1.2.4
- cb97744: Improve compiler performance for large files
- @openfn/engine-multi@1.6.14
- 64176c6: Report on configured capacity when connecting to the worker channel
- Updated dependencies [84bebf4]
- @openfn/runtime@1.7.3
- @openfn/engine-multi@1.6.13
- 5688813: Allow the worker to shutdown gracefully while claims are still in-flight. Runs will be completed before the server closes
- Updated dependencies [362d6bf]
- @openfn/engine-multi@1.6.12
- 569f405: Improve compiler logging output
- @openfn/engine-multi@1.6.11
Move expression compilation down into the run thread, isolating its memory from the main worker thread. This should work around a memory leak in long-running workers and improve the robustness of the worker generally.
Note that workflows with large expressions and low run memory limits may be OOM killed as a result of these changes,
- @openfn/engine-multi@1.6.10
- Update dependencies
- Updated dependencies
- @openfn/engine-multi@1.6.9
- @openfn/lexicon@1.2.3
- @openfn/runtime@1.7.2
- @openfn/logger@1.0.6
- 5a613e7: Adjust logging
- 3a33557: Count outstanding claim requests as capacity. This fixes an issue where
work-availablemessages can cause a worker to over-claim, particularly during periods of high load on the Lightning database.
- 032430f: Increase timeout on claim events
- 0957412: Stop trying to claim after the queue has been closed
- Updated dependencies [f04acef]
- @openfn/runtime@1.7.1
- @openfn/engine-multi@1.6.8
- d765843: Fix an issue where the server can attempt to claim even while it's waiting to shut down
- 667e3bf: Improve logging of errors returned by lightning
- d765843: Fix an issue where the --backoff server argument only accepts integer values
- 9d4ece3: Add support for global functions in execution plan
- Updated dependencies [9d4ece3]
- @openfn/runtime@1.7.0
- @openfn/engine-multi@1.6.7
- 284d10a: Add 5s of clock tolerance to run token validation
- Updated dependencies
- @openfn/lexicon@1.2.2
- @openfn/engine-multi@1.6.4
- @openfn/runtime@1.6.4
- Fix a memory leak, affecting log-running worker instances
- Updated dependencies
- @openfn/engine-multi@1.6.5
- d79c828: Publish memory limit and timeout to info logs, not debug
- Updated dependencies [d79c828]
- @openfn/engine-multi@1.6.4
- On claim, rename pod_name to worker_name
- Updated dependencies
- @openfn/lexicon@1.2.1
- @openfn/engine-multi@1.6.3
- @openfn/runtime@1.6.4
- b83d13c: Add DEFAULT_MESSAGE_TIMEOUT_SECONDS env var and tweaked some error handling around lightning messaging
- 0bd4adf: Include pod name in logs when claiming
- ce5022a: Added sentry notifications for server and websocket errors
- 0a176aa: Ignore empty log lines (don't send them to lightning)
- Updated dependencies [0a176aa]
- @openfn/logger@1.0.5
- @openfn/engine-multi@1.6.2
- @openfn/lexicon@1.2.0
- @openfn/runtime@1.6.4
- e2f1197: Better logging on credential errors
- Updated dependencies [e2f1197]
- @openfn/engine-multi@1.6.1
- d50c05d: Fix an issue where large payloads can cause the worker to OOM crash
- Updated dependencies [deb7293]
- Updated dependencies [d50c05d]
- @openfn/engine-multi@1.6.0
- d430258: Fix an issue where Lightning log level options don't get fed to the engine properly
- 2667710: Fix an issue where step completion time is logged with double units (ie,
2msms) - Updated dependencies [d430258]
- Updated dependencies [2667710]
- @openfn/engine-multi@1.5.1
- @openfn/runtime@1.6.3
-
87f10f7: Respond to
work:availableevents.When the worker receives
work:availablein the worker queue, it'll instantly trigger a claim event.This claim is independent of the workloop and does not affect backoff in any way.
- 1857b46: Allow configuration of job log level
- Updated dependencies [1857b46]
- @openfn/engine-multi@1.5.0
- @openfn/lexicon@1.2.0
- @openfn/runtime@1.6.2
- beb4617: Fix an issue where a DataCloneError can occur after an exception is thrown
- Updated dependencies [beb4617]
- @openfn/runtime@1.6.2
- @openfn/engine-multi@1.4.9
- 70e3d7a: Fix error reporting when loading adaptors from the monorepo
- Updated dependencies [70e3d7a]
- @openfn/runtime@1.6.1
- @openfn/engine-multi@1.4.8
- 4ddd4d6: Update errors to include a source-mapped position and more dignostic information
- Updated dependencies [4ddd4d6]
- Updated dependencies [6e87156]
- Updated dependencies [aaa7e7b]
- @openfn/runtime@1.6.0
- @openfn/logger@1.0.4
- @openfn/engine-multi@1.4.7
- @openfn/lexicon@1.1.0
- Fix version loading paths
- Fix version number readout
-
Ensure support for node 18,20 and 22.
This update ensures compatibility with node 18 LTS, 20 LTS, and 22.12.
Most of the changes are in the build and test suites and have only minor impact on production code. No issues are anticipated as as result of this change.
Prior releases may fail on node version >=20.
Support for node 18 will be removed in late 2025.
-
Updated dependencies
-
Updated dependencies [8904af2]
- @openfn/engine-multi@1.4.6
- @openfn/runtime@1.5.4
- @openfn/logger@1.0.3
- @openfn/lexicon@1.1.0
- When using lazy state in job code, allow functions to be called directly on the state object, ie,
$.generateUUID()- @openfn/engine-multi@1.4.5
- @openfn/engine-multi@1.4.4
- Warn when an expression doesn't return state
- Updated dependencies [1cbbba0]
- @openfn/runtime@1.5.3
- @openfn/engine-multi@1.4.3
- Updated dependencies [f6bd593]
- @openfn/runtime@1.5.2
- @openfn/engine-multi@1.4.2
- ef1fb63: Fix an issue running collections from an auto-loaded version
- 606f23b: Allow steps to specify their own adaptor version
- eeb660d: Fix an issue from previous patch where initial state.configuration could be lost at the start of a step
- Updated dependencies [eeb660d]
- @openfn/runtime@1.5.1
- @openfn/engine-multi@1.4.1
- fd0e499: Support collections
- bcd82e9: Accept collection version at startup (as arg or auto-looked-up from npm)
- Support @local adaptor versions (which map to the monorepo)
- 1c79dc1: Append the collections adaptor to steps that need it
- b15f151: Update worker to use adaptors as an array on xplans. Internal only change.
- Updated dependencies [3463ff9]
- Updated dependencies [7245bf7]
- @openfn/runtime@1.5.0
- @openfn/engine-multi@1.4.0
- 1c79dc1: Append the collections adaptor to steps that need it
- b15f151: Update worker to use adaptors as an array on xplans. Internal only change.
- Updated dependencies [3463ff9]
- Updated dependencies [7245bf7]
- @openfn/runtime@2.0.0
- @openfn/engine-multi@1.4.0
- ae55a6a: Include timestamp on step complete even if the step failed
- Updated dependencies [ae55a6a]
- @openfn/engine-multi@1.3.0
- 42883f8: Better handliung of claim backoffs when at capacity
- Log claim event duration
- 5db5862: Dont log compiled job code
- f581c6b: log duration of runs and server capacity
- 3e6eba2: Trap errors coming out of the websocket
- @openfn/engine-multi@1.2.5
- 0cf7198: Do not send the input_dataclip_id in step:start if the dataclip was witheld
Security update
- @openfn/engine-multi@1.2.4
security updates
- ca07db4: Fix an issue where a run with a missing start node caused the server to crash
- eaa3859: Include timestamps in key events
- Updated dependencies [870a836]
- Updated dependencies [44f7f57]
- @openfn/engine-multi@1.2.2
- @openfn/lexicon@1.1.0
- @openfn/runtime@1.4.1
- a08fb47: Update CLI docs Add WORKER_MAX_SOCKET_TIMEOUT_SECONDS
- f363254: Allow a payload limit to be set for large dataclips and logs (payload_limit_mb)
- 2f5dc51: Update the compiler to treat method calls (http.get()) like operations
- @openfn/engine-multi@1.2.1
- Allow operations to behave like promises (ie, support fn().then())
- Updated dependencies [40fd45b]
- Updated dependencies
- @openfn/runtime@1.4.1
- @openfn/engine-multi@1.2.0
- afcd041: Better error reporting in logs and on final state
- Updated dependencies [afcd041]
- Updated dependencies [afcd041]
- Updated dependencies [afcd041]
- @openfn/runtime@1.4.0
- @openfn/lexicon@1.0.2
- @openfn/engine-multi@1.1.13
- @openfn/engine-multi@1.1.12
- @openfn/engine-multi@1.1.11
- e8fc192: Add support for @next and @latest tags in adaptor versions
- Updated dependencies [e8fc192]
- Updated dependencies [e8fc192]
- Updated dependencies [e8fc192]
- @openfn/runtime@1.3.0
- @openfn/engine-multi@1.1.10
- Enable a step to have multiple inputs
- Updated dependencies
- @openfn/runtime@1.2.0
- @openfn/engine-multi@1.1.9
- bc45b3d: Restructure handling of env vars
- Better error reporting for bad credentials
- Updated dependencies
- @openfn/engine-multi@1.1.8
- Updated dependencies
- @openfn/runtime@1.1.3
- @openfn/engine-multi@1.1.7
- bdff4b2: Fix an issue where workers may not be returned to the pool if run:complete throws
- 2216720: Update lightning plan options to use snake case
- Updated dependencies [2216720]
- @openfn/lexicon@1.0.1
- @openfn/engine-multi@1.1.6
- @openfn/runtime@1.1.2
- Updated dependencies
- @openfn/engine-multi@1.1.5
- 7ddc5d8: Support expressions in lazy state operators
- 4deb5d4: Recognise import aliases in job code
- Updated dependencies [cecdb60]
- @openfn/runtime@1.1.2
- @openfn/engine-multi@1.1.4
- @openfn/engine-multi@1.1.3
- @openfn/engine-multi@1.1.2
- Updated dependencies [2fde0ad]
- Updated dependencies [2fde0ad]
- @openfn/logger@1.0.1
- @openfn/engine-multi@1.0.1
- @openfn/lexicon@1.0.0
- @openfn/runtime@1.0.1
- 86dd668: The 1.0 release updates the language and input of the Worker to match the nomenclature of Lightning.
- 29bff41: Validate the run token
- a97eb26: Better error handling for invalid dataclips
- 823b471: Update handling of logs to accept stringified messages
- Updated dependencies
- @openfn/engine-multi@1.0.0
- @openfn/logger@1.0.0
- @openfn/runtime@1.0.0
- @openfn/lexicon@1.0.0
- 823b471: Update handling of logs to accept stringified messages
- Updated dependencies [649ca43]
- Updated dependencies [823b471]
- @openfn/logger@0.0.20
- @openfn/engine-multi@0.4.1
- @openfn/runtime@0.2.6
- 7e4c159: Rename attempts to runs
- Updated dependencies [7e4c159]
- @openfn/engine-multi@0.4.0
- 39af8e1: Ensure that we refer to the child of a 'run' (aka attempt) as a 'step'
- eb10b1f: Updated start env vars and arguments
- 281391b: Support attemptTimeoutMs in attempt options Better server logging at startup Support start arguments from the environment (but prefer CLI)
- 2857fe6: Send the exit reason to the attempt logs
- Updated dependencies [281391b]
- @openfn/engine-multi@0.3.0
- 9b9ca0c: New worker pool engine
- Updated dependencies [0f22694]
- Updated dependencies [9b9ca0c]
- @openfn/runtime@0.2.5
- @openfn/engine-multi@0.3.0
- Add state-props-to-remove option
- Updated dependencies [56b6e44]
- @openfn/engine-multi@0.2.6
- @openfn/runtime@0.2.4
- f228fd5: Add support for initial edge conditions in worker
- Updated dependencies [f228fd5]
- @openfn/runtime@0.2.3
- @openfn/engine-multi@0.2.5
- Add git to worker image
- Don't log compiler and runtime version logs
- 419d310: Throttle attempt events to better preserve their sequencing
- 598c669: Make edge conditions more stable if state is not passed
- 6e906a7: Better handling of job-error
- Updated dependencies [02ab459]
- @openfn/runtime@0.2.2
- @openfn/engine-multi@0.2.4
- 6c3e9e42: Ensure capacity is also set on the engine
- Updated dependencies [05ccc10b]
- Updated dependencies [7235bf5e]
- @openfn/engine-multi@0.2.3
- 22339c6: Add MAX_RUN_MEMORY env var and option to limit the memory available to each run
- 04ac3cc: Include duration and threadid in run-complete
- 340b96e: Send memory usage to lightning on run:complete
- Updated dependencies
- @openfn/engine-multi@0.2.2
- @openfn/runtime@0.2.1
- 30da946: Better conversion of edge conditions to only take the upstream job into account
- c1aa9b3: Leave attempt queue channel on disconnect Allow outstanding work to finish before closing down on SIGTERM
- 60b6fba: Add a healthcheck at /livez and respond with 200 at root
- Updated dependencies [a6dd44b]
- @openfn/engine-multi@0.2.1
- 54d0017: Start ws-worker using node (not pnpm) by default
- 6f78b7a: Add env var for WORKER_REPO_DIR
- Updated dependencies [4a17048]
- @openfn/engine-multi@0.2.0
- @openfn/runtime@0.2.0
- Tweak typings
- d542aa9: worker: leave attempt channel when finished working
- Updated dependencies [793d523]
- Updated dependencies [857c42b]
- Updated dependencies [f17fb4a]
- @openfn/engine-multi@0.1.11
- @openfn/runtime@0.1.4
- 0fb2d58: correctly handle input_dataclip_id for runs
- Updated dependencies [c8e9d51]
- Updated dependencies [7f352d2]
- @openfn/engine-multi@0.1.10
- @openfn/runtime@0.1.3
- 36337d7: When calculating exit reasons, exclude non-executed downstream nodes in leaf calculation. (i.e., look at the final executed node in each branch when determining the attempt exit reason.)
- Updated dependencies [419f276]
- Updated dependencies [0e66f5a]
- @openfn/runtime@0.1.2
- @openfn/engine-multi@0.1.9
- 7d350d9: Only consider leaf nodes when calculating attempt fail reasons
- ead672a: Fix credential mapping from Lightning
- Updated dependencies [c448a23]
- @openfn/runtime@0.1.1
- @openfn/engine-multi@0.1.8
- ad8f6e9: Improve robustness of server connectivity
- Updated dependencies [704e7b6]
- @openfn/engine-multi@0.1.7
- 0e8e20c: BREAKING: Updated exit reasons to
{ reason: "success", error_type, error_message }Add exit reasons to job and attempt complete
- Updated dependencies [a540888]
- Updated dependencies [0e8e20c]
- @openfn/runtime@0.1.0
- @openfn/engine-multi@0.1.6
- b8fd13d: Fix undefined log output
- 8f7f57b: Send timestamps as strings in microsecond precision
- Updated dependencies [ca701e8]
- @openfn/logger@0.0.19
- @openfn/engine-multi@0.1.5
- @openfn/runtime@0.0.33
- 5037c68: Support maxWorkers flag Enforce minBackoff before claiming the next job
- Updated dependencies [ac7b0ca]
- @openfn/engine-multi@0.1.4
- Test release
- Accept backoff as startup command
- Fix log event mapping
- Updated dependencies
- @openfn/engine-multi@0.1.3
- f241348: Make destroy async
- Updated dependencies [d255f32]
- Updated dependencies [f241348]
- @openfn/engine-multi@0.1.2
- Added docker image and bin stub
- Destroy workers on close
- Updated dependencies
- @openfn/engine-multi@0.1.1
First release of the websocket worker, which handles comm between Lightning and the multi-threaded engine.
Features:
- Websocket integration with JWT auth
- Eventing between Lightning and the Worker
- Eventing between the Worker and the Engine
- Placeholder exit reasons