From 375d4c21462bbf2e89997c43bc9d051f750ab450 Mon Sep 17 00:00:00 2001 From: Nick Le Mouton Date: Fri, 17 Apr 2026 11:24:15 +1200 Subject: [PATCH] Clean up old files --- .gitbook/assets/dfd.png | Bin 51203 -> 0 bytes .gitbook/assets/sample.png | Bin 17098 -> 0 bytes .gitbook/assets/seq.png | Bin 29784 -> 0 bytes .gitignore | 1 + CHANGELOG.md | 105 ------------------------------------- CODEOWNERS | 2 - MANIFEST.in | 2 - ROADMAP.md | 27 ---------- SUMMARY.md | 4 -- pyproject.toml | 19 ++++++- requirements-dev.txt | 3 -- requirements.txt | 0 setup.py | 42 --------------- 13 files changed, 19 insertions(+), 186 deletions(-) delete mode 100644 .gitbook/assets/dfd.png delete mode 100644 .gitbook/assets/sample.png delete mode 100644 .gitbook/assets/seq.png delete mode 100644 CHANGELOG.md delete mode 100644 CODEOWNERS delete mode 100644 MANIFEST.in delete mode 100644 ROADMAP.md delete mode 100644 SUMMARY.md delete mode 100644 requirements-dev.txt delete mode 100644 requirements.txt delete mode 100644 setup.py diff --git a/.gitbook/assets/dfd.png b/.gitbook/assets/dfd.png deleted file mode 100644 index 6e5cc46933854b836a9311419b81be678662bfe3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51203 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 diff --git a/.gitbook/assets/sample.png b/.gitbook/assets/sample.png deleted file mode 100644 index 09a328e63b11334979e56cb39858a4bea56ec982..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17098 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 Sdf=Z^plGP*D%U95MEno+)Kho> diff --git a/.gitbook/assets/seq.png b/.gitbook/assets/seq.png deleted file mode 100644 index 6c7bfea8cd72a34d91da967076a355658b121a36..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29784 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 JfwYm|{{p$lHn;!) diff --git a/.gitignore b/.gitignore index 73f7be44..315b6559 100644 --- a/.gitignore +++ b/.gitignore @@ -51,6 +51,7 @@ coverage.xml *.cover .hypothesis/ .pytest_cache/ +.ruff_cache/ # Translations *.mo diff --git a/CHANGELOG.md b/CHANGELOG.md deleted file mode 100644 index 4f47e28f..00000000 --- a/CHANGELOG.md +++ /dev/null @@ -1,105 +0,0 @@ -# Unreleased - -## Breaking changes - -- Removed SQLite dump functionality (`--sqldump` option) and associated `pydal` dependency - -# 1.2.0 - -## Breaking changes - -- Replace `usesLatestTLSversion` with `minTLSVersion` in assets and `tlsVersion` in data flows [#123](https://github.com/izar/pytm/pull/123) -- When the `data` attribute of elements is initialied with a string, convert it to a `Data` object with `undefined` as name and the string as description; change the default classification from `PUBLIC` to `UNKNOWN` [#148](https://github.com/izar/pytm/pull/148) - -## New features - -- Separate actors and assets from elements when dumping the model to JSON [#150](https://github.com/izar/pytm/pull/150) -- Add unique Finding ids [#154](https://github.com/izar/pytm/pull/154) -- Allow to associate the threat model script with source code files and check their age difference [#145](https://github.com/izar/pytm/pull/145) -- Adapt [the DFD3 notation](https://github.com/adamshostack/DFD3) [#143](https://github.com/izar/pytm/pull/143) -- Allow to override findings (threats) attributes [#137](https://github.com/izar/pytm/pull/137) -- Allow to mark data as PII or credentials and check if it's protected [#127](https://github.com/izar/pytm/pull/127) -- Added '--levels' - every element now has a 'levels' attribute, a list of integers denoting different DFD levels for rendering -- Added HTML docs using pdoc [#110](https://github.com/izar/pytm/pull/110) -- Added `checksDestinationRevocation` attribute to account for certificate revocation checks [#109](https://github.com/izar/pytm/pull/109) - -## Bug fixes - -- Escape HTML entities in Threat attributes [#149](https://github.com/izar/pytm/pull/149) -- Fix generating reports for models with a `Datastore` that has `isEncryptedAtRest` set and a `Data` that has `isStored` set [#141](https://github.com/izar/pytm/pull/141) -- Fix condition on the `Data Leak` threat so it does not always match [#139](https://github.com/izar/pytm/pull/139) -- Fixed printing the data attribute in reports [#123](https://github.com/izar/pytm/pull/123) -- Added a markdown file with threats [#126](https://github.com/izar/pytm/pull/126) -- Fixed drawing nested boudnaries [#117](https://github.com/izar/pytm/pull/117) -- Add missing `provideIntegrity` attribute in `Actor` and `Asset` classes [#116](https://github.com/izar/pytm/pull/116) - -# 1.1.2 - -- Added Poetry [#108](https://github.com/izar/pytm/pull/108) -- Fix drawing DFDs for nested Boundaries [#107](https://github.com/izar/pytm/pull/107) - -# 1.1.1 - -- Fix pydal dependencies install on pip [#106](https://github.com/izar/pytm/pull/106) - -# 1.1.0 - -## Breaking changes - -- Removed `HandlesResources` attribute from the `Process` class, which duplicates `handlesResources` -- Change default `Dataflow.dstPort` attribute value from `10000` to `-1` - -## New features - - -- Add dump of elements and findings to sqlite database using "--sqldump " (with result in ./sqldump/) [#103](https://github.com/izar/pytm/pull/103) -- Add Data element and DataLeak finding to support creation of a data dictionary separate from the model [#104](https://github.com/izar/pytm/pull/104) -- Add JSON input [#105](https://github.com/izar/pytm/pull/105) -- Add JSON output [#102](https://github.com/izar/pytm/pull/102) -- Use numbered dataflow labels in sequence diagram [#94](https://github.com/izar/pytm/pull/94) -- Move authenticateDestination to base Element [#88](https://github.com/izar/pytm/pull/88) -- Assign inputs and outputs to all elements [#89](https://github.com/izar/pytm/pull/89) -- Allow detecting and/or hiding duplicate dataflows by setting `TM.onDuplicates` [#100](https://github.com/izar/pytm/pull/100) -- Ignore unused elements if `TM.ignoreUnused` is True [#84](https://github.com/izar/pytm/pull/84) -- Assign findings to elements [#86](https://github.com/izar/pytm/pull/86) -- Add description to class attributes [#91](https://github.com/izar/pytm/pull/91) -- New Element methods to be used in threat conditions [#82](https://github.com/izar/pytm/pull/82) -- Provide a Docker image and allow running make targets in a container [#87](https://github.com/izar/pytm/pull/87) -- Dataflow inherits source and/or sink attribute values [#79](https://github.com/izar/pytm/pull/79) -- Merge edges in DFD when `TM.mergeResponses` is True; allow marking `Dataflow` as responses [#76](https://github.com/izar/pytm/pull/76) -- Automatic ordering of dataflows when `TM.isOrdered` is True [#66](https://github.com/izar/pytm/pull/66) -- Loading a custom threats file by setting `TM.threatsFile` [#68](https://github.com/izar/pytm/pull/68) -- Setting properties on init [#67](https://github.com/izar/pytm/pull/67) -- Wrap long labels in DFDs [#65](https://github.com/izar/pytm/pull/65) - -## Bug fixes - -- Ensure all items have correct color, based on scope [#93](https://github.com/izar/pytm/pull/93) -- Add missing server isResilient property [#63](https://github.com/izar/pytm/issues/63) -- Advanced templates in repeat blocks [#81](https://github.com/izar/pytm/pull/81) -- Produce stable diagrams [#79](https://github.com/izar/pytm/pull/79) -- Allow overriding classes [#64](https://github.com/izar/pytm/pull/64) - -# 1.0.0 - -## New features - -- New threats [#61](https://github.com/izar/pytm/pull/61) - -## Bug fixes - -- UnicodeDecodeError: 'charmap' codec can't decode byte 0x9d [#57](https://github.com/izar/pytm/pull/57) -- `_uniq_name` missing 1 required positional argument [#60](https://github.com/izar/pytm/pull/60) -- Render objects with duplicate names [#45](https://github.com/izar/pytm/issues/45) - -# 0.8.1 - -## Bug fixes - -- Draw nested boundaries [#54](https://github.com/izar/pytm/pull/54), [#55](https://github.com/izar/pytm/pull/55) - -# 0.8.0 - -## New features - -- Draw nested boundaries [#52](https://github.com/izar/pytm/pull/52) diff --git a/CODEOWNERS b/CODEOWNERS deleted file mode 100644 index 7d2087a9..00000000 --- a/CODEOWNERS +++ /dev/null @@ -1,2 +0,0 @@ -# Default code owners for the entire repository -* @izar @colesmj diff --git a/MANIFEST.in b/MANIFEST.in deleted file mode 100644 index 247c40ad..00000000 --- a/MANIFEST.in +++ /dev/null @@ -1,2 +0,0 @@ -include images/lambda.png -include threatlib/threats.json diff --git a/ROADMAP.md b/ROADMAP.md deleted file mode 100644 index 360dcbc0..00000000 --- a/ROADMAP.md +++ /dev/null @@ -1,27 +0,0 @@ -# To the end of 2021 - -* add more threat rules -* add debugging capability to threat rules -* merge/close existing PRs - -# 1H2022 - -* add more rules -* move to a more complete rule evaluation engine -* export/import other popular TM tools data formats -* lower barrier of entry by adding a new, natural way of describing systems - -# 2H2022 - -* total world domination via threat modeling - -# 2H2025 - -* world domination was not reached - but we got a nice slice of it -* integration of TM-BOM format -* additional diagramming formats -* incorporation of AI capabilities - * prioritization of findings - * creation of threat scenarios - - diff --git a/SUMMARY.md b/SUMMARY.md deleted file mode 100644 index a5a4b34b..00000000 --- a/SUMMARY.md +++ /dev/null @@ -1,4 +0,0 @@ -# Table of contents - -* [pytm](README.md) - diff --git a/pyproject.toml b/pyproject.toml index 1fd3a275..f52a42b2 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -2,8 +2,25 @@ name = "pytm" version = "1.3.1" description = "A Pythonic framework for threat modeling" -authors = ["pytm Team"] +authors = ["pytm Team "] license = "MIT License" +readme = "README.md" +homepage = "https://github.com/OWASP/pytm" +packages = [{include = "pytm"}] +include = [ + "pytm/images/*.png", + "pytm/threatlib/threats.json", +] +classifiers = [ + "Programming Language :: Python :: 3", + "License :: OSI Approved :: MIT License", + "Operating System :: OS Independent", + "Development Status :: 5 - Production/Stable", + "Environment :: Console", + "Intended Audience :: Developers", + "Topic :: Security", + "Natural Language :: English", +] [tool.poetry.dependencies] python = "^3.9 || ^3.10 || ^3.11 || ^3.12 || ^3.13 || ^3.14" diff --git a/requirements-dev.txt b/requirements-dev.txt deleted file mode 100644 index 432090a0..00000000 --- a/requirements-dev.txt +++ /dev/null @@ -1,3 +0,0 @@ --r requirements.txt -pdoc3 -black diff --git a/requirements.txt b/requirements.txt deleted file mode 100644 index e69de29b..00000000 diff --git a/setup.py b/setup.py deleted file mode 100644 index 0ccf3fc2..00000000 --- a/setup.py +++ /dev/null @@ -1,42 +0,0 @@ -import setuptools - -with open("README.md", "r", encoding="utf-8") as f: - long_description = f.read() - -setuptools.setup( - name="pytm", - version="1.3.1", - packages=["pytm"], - description="A Python-based framework for threat modeling.", - long_description=long_description, - long_description_content_type="text/markdown", - author="pytm team", - author_email="please_use_github_issues@nowhere.com", - license="MIT License", - url="https://github.com/izar/pytm", - classifiers=[ - "Programming Language :: Python :: 3", - "License :: OSI Approved :: MIT License", - "Operating System :: OS Independent", - "Development Status :: 5 - Production/Stable", - "Environment :: Console", - "Intended Audience :: Developers", - "Topic :: Security", - "Natural Language :: English", - ], - python_requires=">=3", - install_requires=[], - package_data={ - "pytm": [ - "images/datastore.png", - "images/lambda.png", - "images/datastore_black.png", - "images/datastore_darkgreen.png", - "images/datastore_firebrick3.png", - "images/datastore_gold.png", - "threatlib/threats.json", - ], - }, - exclude_package_data={"": ["report.html"]}, - include_package_data=True, -)