Repository navigation
We are so back! And we couldn't be back without these people (In alphabetical order):
- Arpit Jain
- Daniel Ostertag
- Eirini Michelakaki
- Florian Kromer
- Konstantinos Xynos
- Marios Levogiannis
- Nick Le Mouton
- niklasbo
- Raphael Ahrens
- Shiva Chetan Reddy
- Volk Thienpreecha
- Zoe Braiterman
Thank you so much for making OWASP pytm a valuable tool!
BREAKING
- Removed
tm.sqlDump()and the--sqldumpCLI flag (#295, #301). Calls to
tm.sqlDump(...)will raiseAttributeErrorat runtime. There is no
drop-in replacement; use--jsonfor machine-readable output. This breakage
is shipped in a minor release on the assumption of no real-world users; if
this is wrong, please open an issue and we will publish a stub release.
Added
- New
LLMelement class with eight associated threat definitions covering
common LLM-specific attack patterns (#316). - New LLM threat for untrusted tool launch configuration (#329).
likelihoodfield onFinding, propagated from the originatingThreatand
overridable per-finding (#318).flowsmodule providing helpers for declarativeDataflowconstruction
(#259).Dataobject decoding in the JSON decoder, enabling round-trip serialization
ofDatainstances (#330).- Devcontainer configuration for VS Code / GitHub Codespaces (#307).
- Devbox setup with Poetry integration (#274, #282, #283, #289).
- Ruff linter configuration alongside Black (#325).
- Google-style docstrings on the
Actormodel entity (#311). - ROADMAP entries for 2025 and beyond.
Changed
- Internal element model refactored to Pydantic v2 (#320). The user-facing
construction API intm.py-style scripts is preserved:Element(name),
attribute assignment, andcontrols.*access continue to work as before.
Pydantic v2 (>=2.10) is now a hard runtime dependency. Users with
environments pinned to Pydantic v1 must upgrade. - Minimum supported Python is now 3.11. Tested against 3.11, 3.12, 3.13, and
3.14. Python 3.10 and earlier are no longer supported. Python 3.9 reached
end-of-life in October 2025; 3.10 reaches end-of-life in October 2026. - Migrated the test suite from
unittesttopytest(#276). Existing
invocations viapython -m unittestare replaced bypytest; CI scripts
updated accordingly. - Upgraded the Docker base image to
python:3.14.4-alpine3.23(#309). - Updated Makefile and Dockerfile build pipeline (#321).
- Cleaned up legacy and unused files in the repository (#326).
- CODEOWNERS now defaults a maintainer set on all paths.
Fixed
getInScopeFindings()regression introduced by the Pydantic refactor (#323).likelihoodregression on resolved findings, with regression tests added
(#324).- Findings on assets with
inScope=Falseare now correctly suppressed (#312). - CVSS and response overrides on
Findingare no longer overwritten during
threat resolution (#248). - Various type annotation fixes and minor cleanups (#322).