Repository navigation
v5.15.1
·
35 commits
to main
since this release
Immutable
release. Only release title and notes can be modified.
A patch release carrying two fixes, plus doc/tooling cleanup.
Security
- #891: run-state file paths are now built from a validated id.
graph_id,snapshot_idand a workflowrun_idnamed a<id>.json/.pklfile under a run-state root with no validation, so a traversing id (../x) escaped the directory.graph_idreached this from guest.ndcode viaresume_workflow(id)— reading or deleting a.jsonoutside the state dir; the snapshot id arrived over the server's/restoreandDELETE /snapshot/{id}. A singlesafe_state_idinstate_paths.pynow gates every run-state path builder, and read/delete entry points treat an invalid id as "not found", so a traversing id is indistinguishable from an unknown one. Filesystem, network and subprocess access were already denied; this was confined to.json/.pklstate.
Fixes
- #893: nodus-lang works on its declared Python 3.10 floor.
project.pydid a bareimport tomllib(stdlib only from 3.11) while its siblinguser_config.pyhad thetomlifallback, andtomliwas not even a dependency — so importing nodus failed on 3.10 by either path, thoughrequires-pythonclaims>=3.10.project.pynow shares the guard,tomliis a dependency forpython_version < "3.11", and apy310-floorCI job imports and runs on 3.10 so the floor is tested. - The docs now agree on 36 companion packages, and name
PyJWT(notpython-jose) asnodus-auth's JWT dependency.
Tooling
- Plain
pytestnow runstests/closed_issues/. Two rotted tests were repaired, and the companion-count check now reads all ofdocs/.
PyPI: https://pypi.org/project/nodus-lang/5.15.1/
Full changelog entry: CHANGELOG.md.