From c458cae91c5d16007abec7b081d3172187797380 Mon Sep 17 00:00:00 2001 From: Per Oestergaard Date: Mon, 7 Feb 2022 15:38:15 +0100 Subject: [PATCH 01/12] Adding includeOrder property to Element and adds order to name when true --- .dccache | 1 + pytm/pytm.py | 10 +++++++--- 2 files changed, 8 insertions(+), 3 deletions(-) create mode 100644 .dccache diff --git a/.dccache b/.dccache new file mode 100644 index 00000000..8bd35b77 --- /dev/null +++ b/.dccache @@ -0,0 +1 @@ +{"c:/Users/dkperoes/dev/gitwork/per-oestergaard/pytm/setup.py":[1172,1642158280939.523,"ed23abe5acf72c844572cae218fe2005ab2045a7de53b83df6f207d3ff89eb0b"],"c:/Users/dkperoes/dev/gitwork/per-oestergaard/pytm/tm.py":[3960,1642158280947.5244,"5ef8255031b9ef8a2d2d6517e92cd82cce81189673ec6afaba24a8f29b0e48b7"],"c:/Users/dkperoes/dev/gitwork/per-oestergaard/pytm/pytm/json.py":[3232,1642158280931.5227,"128047d952b09de0e8e31efaa751054dbd2d5fcb6d79bb73b0b56594443e4fef"],"c:/Users/dkperoes/dev/gitwork/per-oestergaard/pytm/pytm/pytm.py":[62996,1643904520252.11,"5d461c8dc13dbb52a5f3ef5fb072563f599451796adda0442bfbaab999f03027"],"c:/Users/dkperoes/dev/gitwork/per-oestergaard/pytm/pytm/report_util.py":[1337,1642158280931.5227,"af164d1c43a9b2688cb87bf5687d1954febf356024e434fdc0a15776e0961bba"],"c:/Users/dkperoes/dev/gitwork/per-oestergaard/pytm/pytm/template_engine.py":[3586,1642158280931.5227,"fe30652114e4570a2a3540137217794f80dcbfc102c5d467e5342c0b953ba3dc"],"c:/Users/dkperoes/dev/gitwork/per-oestergaard/pytm/pytm/__init__.py":[1234,1642158280931.5227,"2bb0a1dade8cf6f6ff1c197f152cda8cf0370e25e159ef331133613b902402d2"],"c:/Users/dkperoes/dev/gitwork/per-oestergaard/pytm/tests/test_private_func.py":[9475,1642158280947.5244,"a69468e11fb41bc7f56eb7d96e502e523773f94bee62ce457a16ace9bdb1f8bc"],"c:/Users/dkperoes/dev/gitwork/per-oestergaard/pytm/tests/test_pytmfunc.py":[49082,1643904266318.3647,"6356c8a31767ecf651738dde9bba8e7c859ad048c0fc6803ca3e2b613b045390"],"c:/Users/dkperoes/dev/gitwork/per-oestergaard/pytm/tests/__init__.py":[0,1642158280939.523,"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"],"c:/Users/dkperoes/dev/gitwork/per-oestergaard/pytm/docs/pytm/index.html":[173903,1642158280923.5234,"105996e3243916849444da7a3df813ae162779005ffe994a2f55d84e503b7cce"],"c:\\Users\\dkperoes\\dev\\gitwork\\per-oestergaard\\pytm\\setup.py":[1172,1642158280939.523,"ed23abe5acf72c844572cae218fe2005ab2045a7de53b83df6f207d3ff89eb0b"],"c:\\Users\\dkperoes\\dev\\gitwork\\per-oestergaard\\pytm\\tm.py":[3960,1642158280947.5244,"5ef8255031b9ef8a2d2d6517e92cd82cce81189673ec6afaba24a8f29b0e48b7"],"c:\\Users\\dkperoes\\dev\\gitwork\\per-oestergaard\\pytm\\pytm\\json.py":[3232,1642158280931.5227,"128047d952b09de0e8e31efaa751054dbd2d5fcb6d79bb73b0b56594443e4fef"],"c:\\Users\\dkperoes\\dev\\gitwork\\per-oestergaard\\pytm\\pytm\\pytm.py":[62996,1643904520252.11,"5d461c8dc13dbb52a5f3ef5fb072563f599451796adda0442bfbaab999f03027"],"c:\\Users\\dkperoes\\dev\\gitwork\\per-oestergaard\\pytm\\pytm\\report_util.py":[1337,1642158280931.5227,"af164d1c43a9b2688cb87bf5687d1954febf356024e434fdc0a15776e0961bba"],"c:\\Users\\dkperoes\\dev\\gitwork\\per-oestergaard\\pytm\\pytm\\template_engine.py":[3586,1642158280931.5227,"fe30652114e4570a2a3540137217794f80dcbfc102c5d467e5342c0b953ba3dc"],"c:\\Users\\dkperoes\\dev\\gitwork\\per-oestergaard\\pytm\\tests\\test_private_func.py":[9475,1642158280947.5244,"a69468e11fb41bc7f56eb7d96e502e523773f94bee62ce457a16ace9bdb1f8bc"],"c:\\Users\\dkperoes\\dev\\gitwork\\per-oestergaard\\pytm\\pytm\\__init__.py":[1234,1642158280931.5227,"2bb0a1dade8cf6f6ff1c197f152cda8cf0370e25e159ef331133613b902402d2"],"c:\\Users\\dkperoes\\dev\\gitwork\\per-oestergaard\\pytm\\tests\\test_pytmfunc.py":[49082,1643904266318.3647,"6356c8a31767ecf651738dde9bba8e7c859ad048c0fc6803ca3e2b613b045390"]} \ No newline at end of file diff --git a/pytm/pytm.py b/pytm/pytm.py index b18a197c..5128d732 100644 --- a/pytm/pytm.py +++ b/pytm/pytm.py @@ -1295,11 +1295,15 @@ class Element: doc="Location of the source code that describes this element relative to the directory of the model script.", ) controls = varControls(None) + includeOrder = varBool( + False, doc="If True and Order is set, the displayed name will be formatted as 'order:name'. If you make Order unique, this will give you a stable reference you can use for synchronization etc.") + order = varInt(-1, doc="Number of this element in the threat model") def __init__(self, name, **kwargs): for key, value in kwargs.items(): setattr(self, key, value) - self.name = name + if self.includeOrder is True: + self.name = "{}:{}".format(self.order, name) self.controls = Controls() self.uuid = uuid.UUID(int=random.getrandbits(128)) self._is_drawn = False @@ -1890,8 +1894,8 @@ def encode_element_threat_data(obj): v = getattr(o, a) if (type(v) is not list or (type(v) is list and len(v) != 0)): c._safeset(a, v) - - encoded_elements.append(c) + + encoded_elements.append(c) return encoded_elements From d416824bc91232c8a768f57c7761182c38e6a629 Mon Sep 17 00:00:00 2001 From: Per Oestergaard Date: Mon, 7 Feb 2022 16:15:14 +0100 Subject: [PATCH 02/12] Adding uniqueId to Finding --- .dccache | 2 +- pytm/pytm.py | 9 ++++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/.dccache b/.dccache index 8bd35b77..c03cf4e2 100644 --- a/.dccache +++ b/.dccache @@ -1 +1 @@ -{"c:/Users/dkperoes/dev/gitwork/per-oestergaard/pytm/setup.py":[1172,1642158280939.523,"ed23abe5acf72c844572cae218fe2005ab2045a7de53b83df6f207d3ff89eb0b"],"c:/Users/dkperoes/dev/gitwork/per-oestergaard/pytm/tm.py":[3960,1642158280947.5244,"5ef8255031b9ef8a2d2d6517e92cd82cce81189673ec6afaba24a8f29b0e48b7"],"c:/Users/dkperoes/dev/gitwork/per-oestergaard/pytm/pytm/json.py":[3232,1642158280931.5227,"128047d952b09de0e8e31efaa751054dbd2d5fcb6d79bb73b0b56594443e4fef"],"c:/Users/dkperoes/dev/gitwork/per-oestergaard/pytm/pytm/pytm.py":[62996,1643904520252.11,"5d461c8dc13dbb52a5f3ef5fb072563f599451796adda0442bfbaab999f03027"],"c:/Users/dkperoes/dev/gitwork/per-oestergaard/pytm/pytm/report_util.py":[1337,1642158280931.5227,"af164d1c43a9b2688cb87bf5687d1954febf356024e434fdc0a15776e0961bba"],"c:/Users/dkperoes/dev/gitwork/per-oestergaard/pytm/pytm/template_engine.py":[3586,1642158280931.5227,"fe30652114e4570a2a3540137217794f80dcbfc102c5d467e5342c0b953ba3dc"],"c:/Users/dkperoes/dev/gitwork/per-oestergaard/pytm/pytm/__init__.py":[1234,1642158280931.5227,"2bb0a1dade8cf6f6ff1c197f152cda8cf0370e25e159ef331133613b902402d2"],"c:/Users/dkperoes/dev/gitwork/per-oestergaard/pytm/tests/test_private_func.py":[9475,1642158280947.5244,"a69468e11fb41bc7f56eb7d96e502e523773f94bee62ce457a16ace9bdb1f8bc"],"c:/Users/dkperoes/dev/gitwork/per-oestergaard/pytm/tests/test_pytmfunc.py":[49082,1643904266318.3647,"6356c8a31767ecf651738dde9bba8e7c859ad048c0fc6803ca3e2b613b045390"],"c:/Users/dkperoes/dev/gitwork/per-oestergaard/pytm/tests/__init__.py":[0,1642158280939.523,"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"],"c:/Users/dkperoes/dev/gitwork/per-oestergaard/pytm/docs/pytm/index.html":[173903,1642158280923.5234,"105996e3243916849444da7a3df813ae162779005ffe994a2f55d84e503b7cce"],"c:\\Users\\dkperoes\\dev\\gitwork\\per-oestergaard\\pytm\\setup.py":[1172,1642158280939.523,"ed23abe5acf72c844572cae218fe2005ab2045a7de53b83df6f207d3ff89eb0b"],"c:\\Users\\dkperoes\\dev\\gitwork\\per-oestergaard\\pytm\\tm.py":[3960,1642158280947.5244,"5ef8255031b9ef8a2d2d6517e92cd82cce81189673ec6afaba24a8f29b0e48b7"],"c:\\Users\\dkperoes\\dev\\gitwork\\per-oestergaard\\pytm\\pytm\\json.py":[3232,1642158280931.5227,"128047d952b09de0e8e31efaa751054dbd2d5fcb6d79bb73b0b56594443e4fef"],"c:\\Users\\dkperoes\\dev\\gitwork\\per-oestergaard\\pytm\\pytm\\pytm.py":[62996,1643904520252.11,"5d461c8dc13dbb52a5f3ef5fb072563f599451796adda0442bfbaab999f03027"],"c:\\Users\\dkperoes\\dev\\gitwork\\per-oestergaard\\pytm\\pytm\\report_util.py":[1337,1642158280931.5227,"af164d1c43a9b2688cb87bf5687d1954febf356024e434fdc0a15776e0961bba"],"c:\\Users\\dkperoes\\dev\\gitwork\\per-oestergaard\\pytm\\pytm\\template_engine.py":[3586,1642158280931.5227,"fe30652114e4570a2a3540137217794f80dcbfc102c5d467e5342c0b953ba3dc"],"c:\\Users\\dkperoes\\dev\\gitwork\\per-oestergaard\\pytm\\tests\\test_private_func.py":[9475,1642158280947.5244,"a69468e11fb41bc7f56eb7d96e502e523773f94bee62ce457a16ace9bdb1f8bc"],"c:\\Users\\dkperoes\\dev\\gitwork\\per-oestergaard\\pytm\\pytm\\__init__.py":[1234,1642158280931.5227,"2bb0a1dade8cf6f6ff1c197f152cda8cf0370e25e159ef331133613b902402d2"],"c:\\Users\\dkperoes\\dev\\gitwork\\per-oestergaard\\pytm\\tests\\test_pytmfunc.py":[49082,1643904266318.3647,"6356c8a31767ecf651738dde9bba8e7c859ad048c0fc6803ca3e2b613b045390"]} \ No newline at end of file +{"c:/Users/dkperoes/dev/gitwork/per-oestergaard/pytm/setup.py":[1172,1642158280939.523,"ed23abe5acf72c844572cae218fe2005ab2045a7de53b83df6f207d3ff89eb0b"],"c:/Users/dkperoes/dev/gitwork/per-oestergaard/pytm/tm.py":[3960,1642158280947.5244,"5ef8255031b9ef8a2d2d6517e92cd82cce81189673ec6afaba24a8f29b0e48b7"],"c:/Users/dkperoes/dev/gitwork/per-oestergaard/pytm/pytm/json.py":[3232,1642158280931.5227,"128047d952b09de0e8e31efaa751054dbd2d5fcb6d79bb73b0b56594443e4fef"],"c:/Users/dkperoes/dev/gitwork/per-oestergaard/pytm/pytm/pytm.py":[63261,1644245760750.3005,"7e34d5318a9949db43bdeaddcbf796f1704cc9a883c4058dd6d841348a745dfc"],"c:/Users/dkperoes/dev/gitwork/per-oestergaard/pytm/pytm/report_util.py":[1337,1642158280931.5227,"af164d1c43a9b2688cb87bf5687d1954febf356024e434fdc0a15776e0961bba"],"c:/Users/dkperoes/dev/gitwork/per-oestergaard/pytm/pytm/template_engine.py":[3586,1642158280931.5227,"fe30652114e4570a2a3540137217794f80dcbfc102c5d467e5342c0b953ba3dc"],"c:/Users/dkperoes/dev/gitwork/per-oestergaard/pytm/pytm/__init__.py":[1234,1642158280931.5227,"2bb0a1dade8cf6f6ff1c197f152cda8cf0370e25e159ef331133613b902402d2"],"c:/Users/dkperoes/dev/gitwork/per-oestergaard/pytm/tests/test_private_func.py":[9475,1642158280947.5244,"a69468e11fb41bc7f56eb7d96e502e523773f94bee62ce457a16ace9bdb1f8bc"],"c:/Users/dkperoes/dev/gitwork/per-oestergaard/pytm/tests/test_pytmfunc.py":[49082,1643904266318.3647,"6356c8a31767ecf651738dde9bba8e7c859ad048c0fc6803ca3e2b613b045390"],"c:/Users/dkperoes/dev/gitwork/per-oestergaard/pytm/tests/__init__.py":[0,1642158280939.523,"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"],"c:/Users/dkperoes/dev/gitwork/per-oestergaard/pytm/docs/pytm/index.html":[173903,1642158280923.5234,"105996e3243916849444da7a3df813ae162779005ffe994a2f55d84e503b7cce"],"c:\\Users\\dkperoes\\dev\\gitwork\\per-oestergaard\\pytm\\pytm\\pytm.py":[63261,1644245760750.3005,"7e34d5318a9949db43bdeaddcbf796f1704cc9a883c4058dd6d841348a745dfc"]} \ No newline at end of file diff --git a/pytm/pytm.py b/pytm/pytm.py index 5128d732..7b134238 100644 --- a/pytm/pytm.py +++ b/pytm/pytm.py @@ -652,6 +652,8 @@ class Finding: """, ) cvss = varString("", required=False, doc="The CVSS score and/or vector") + uniqueId = varString( + "", doc="When order is present and includeOrder is true on the object, this will be formatted as findingId:order. E.g. if finding is INP01 and order is 123, the value becomes INP01:123.") def __init__( self, @@ -809,7 +811,12 @@ def resolve(self): continue finding_count += 1 - f = Finding(e, id=str(finding_count), threat=t) + if e.includeOrder is True and e.order != -1: + uniqueId="{}:{}".format(t.id,e.order) + else: + uniqueId=str(finding_count) + + f = Finding(e, id=str(finding_count), threat=t, uniqueId=uniqueId) logger.debug(f"new finding: {f}") findings.append(f) elements[e].append(f) From 1531a89ee12bc70580c6d823c020a18e16b32996 Mon Sep 17 00:00:00 2001 From: Per Oestergaard Date: Mon, 7 Feb 2022 16:32:18 +0100 Subject: [PATCH 03/12] expose uniqueId to html rendering --- .dccache | 2 +- pytm/pytm.py | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.dccache b/.dccache index c03cf4e2..8761d5a2 100644 --- a/.dccache +++ b/.dccache @@ -1 +1 @@ -{"c:/Users/dkperoes/dev/gitwork/per-oestergaard/pytm/setup.py":[1172,1642158280939.523,"ed23abe5acf72c844572cae218fe2005ab2045a7de53b83df6f207d3ff89eb0b"],"c:/Users/dkperoes/dev/gitwork/per-oestergaard/pytm/tm.py":[3960,1642158280947.5244,"5ef8255031b9ef8a2d2d6517e92cd82cce81189673ec6afaba24a8f29b0e48b7"],"c:/Users/dkperoes/dev/gitwork/per-oestergaard/pytm/pytm/json.py":[3232,1642158280931.5227,"128047d952b09de0e8e31efaa751054dbd2d5fcb6d79bb73b0b56594443e4fef"],"c:/Users/dkperoes/dev/gitwork/per-oestergaard/pytm/pytm/pytm.py":[63261,1644245760750.3005,"7e34d5318a9949db43bdeaddcbf796f1704cc9a883c4058dd6d841348a745dfc"],"c:/Users/dkperoes/dev/gitwork/per-oestergaard/pytm/pytm/report_util.py":[1337,1642158280931.5227,"af164d1c43a9b2688cb87bf5687d1954febf356024e434fdc0a15776e0961bba"],"c:/Users/dkperoes/dev/gitwork/per-oestergaard/pytm/pytm/template_engine.py":[3586,1642158280931.5227,"fe30652114e4570a2a3540137217794f80dcbfc102c5d467e5342c0b953ba3dc"],"c:/Users/dkperoes/dev/gitwork/per-oestergaard/pytm/pytm/__init__.py":[1234,1642158280931.5227,"2bb0a1dade8cf6f6ff1c197f152cda8cf0370e25e159ef331133613b902402d2"],"c:/Users/dkperoes/dev/gitwork/per-oestergaard/pytm/tests/test_private_func.py":[9475,1642158280947.5244,"a69468e11fb41bc7f56eb7d96e502e523773f94bee62ce457a16ace9bdb1f8bc"],"c:/Users/dkperoes/dev/gitwork/per-oestergaard/pytm/tests/test_pytmfunc.py":[49082,1643904266318.3647,"6356c8a31767ecf651738dde9bba8e7c859ad048c0fc6803ca3e2b613b045390"],"c:/Users/dkperoes/dev/gitwork/per-oestergaard/pytm/tests/__init__.py":[0,1642158280939.523,"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"],"c:/Users/dkperoes/dev/gitwork/per-oestergaard/pytm/docs/pytm/index.html":[173903,1642158280923.5234,"105996e3243916849444da7a3df813ae162779005ffe994a2f55d84e503b7cce"],"c:\\Users\\dkperoes\\dev\\gitwork\\per-oestergaard\\pytm\\pytm\\pytm.py":[63261,1644245760750.3005,"7e34d5318a9949db43bdeaddcbf796f1704cc9a883c4058dd6d841348a745dfc"]} \ No newline at end of file +{"c:/Users/dkperoes/dev/gitwork/per-oestergaard/pytm/setup.py":[1172,1642158280939.523,"ed23abe5acf72c844572cae218fe2005ab2045a7de53b83df6f207d3ff89eb0b"],"c:/Users/dkperoes/dev/gitwork/per-oestergaard/pytm/tm.py":[3960,1642158280947.5244,"5ef8255031b9ef8a2d2d6517e92cd82cce81189673ec6afaba24a8f29b0e48b7"],"c:/Users/dkperoes/dev/gitwork/per-oestergaard/pytm/pytm/json.py":[3232,1642158280931.5227,"128047d952b09de0e8e31efaa751054dbd2d5fcb6d79bb73b0b56594443e4fef"],"c:/Users/dkperoes/dev/gitwork/per-oestergaard/pytm/pytm/pytm.py":[63427,1644247688953.1438,"20a25c63f7866ea2a9ba43ba86968cc66d7e11a63e3cb421c73ba7b7847557c4"],"c:/Users/dkperoes/dev/gitwork/per-oestergaard/pytm/pytm/report_util.py":[1337,1642158280931.5227,"af164d1c43a9b2688cb87bf5687d1954febf356024e434fdc0a15776e0961bba"],"c:/Users/dkperoes/dev/gitwork/per-oestergaard/pytm/pytm/template_engine.py":[3586,1642158280931.5227,"fe30652114e4570a2a3540137217794f80dcbfc102c5d467e5342c0b953ba3dc"],"c:/Users/dkperoes/dev/gitwork/per-oestergaard/pytm/pytm/__init__.py":[1234,1642158280931.5227,"2bb0a1dade8cf6f6ff1c197f152cda8cf0370e25e159ef331133613b902402d2"],"c:/Users/dkperoes/dev/gitwork/per-oestergaard/pytm/tests/test_private_func.py":[9475,1642158280947.5244,"a69468e11fb41bc7f56eb7d96e502e523773f94bee62ce457a16ace9bdb1f8bc"],"c:/Users/dkperoes/dev/gitwork/per-oestergaard/pytm/tests/test_pytmfunc.py":[49082,1644247688954.1438,"6356c8a31767ecf651738dde9bba8e7c859ad048c0fc6803ca3e2b613b045390"],"c:/Users/dkperoes/dev/gitwork/per-oestergaard/pytm/tests/__init__.py":[0,1642158280939.523,"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"],"c:/Users/dkperoes/dev/gitwork/per-oestergaard/pytm/docs/pytm/index.html":[173903,1642158280923.5234,"105996e3243916849444da7a3df813ae162779005ffe994a2f55d84e503b7cce"],"c:\\Users\\dkperoes\\dev\\gitwork\\per-oestergaard\\pytm\\pytm\\pytm.py":[63427,1644247688953.1438,"20a25c63f7866ea2a9ba43ba86968cc66d7e11a63e3cb421c73ba7b7847557c4"]} \ No newline at end of file diff --git a/pytm/pytm.py b/pytm/pytm.py index 7b134238..a84b5bcd 100644 --- a/pytm/pytm.py +++ b/pytm/pytm.py @@ -1920,6 +1920,7 @@ def encode_threat_data(obj): "threat_id", "references", "condition", + "uniqueId" ] if type(obj) is Finding or (len(obj) != 0 and type(obj[0]) is Finding): From bf51d1ff5fc5cf333cfd4e7d3c82035a1a054933 Mon Sep 17 00:00:00 2001 From: Per Oestergaard Date: Mon, 7 Feb 2022 19:39:52 +0100 Subject: [PATCH 04/12] Let dataflow arrows use includeOrder syntax --- pytm/pytm.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pytm/pytm.py b/pytm/pytm.py index a84b5bcd..c1736183 100644 --- a/pytm/pytm.py +++ b/pytm/pytm.py @@ -1728,7 +1728,10 @@ def __init__(self, source, sink, name, **kwargs): def display_name(self): if self.order == -1: return self.name - return "({}) {}".format(self.order, self.name) + elif self.includeOrder is True: # order is already included in name + return self.name + else: + return "({}) {}".format(self.order, self.name) def _dfd_template(self): return """{source} -> {sink} [ From 429b82f7aececafa52e68569fde4493b34219d95 Mon Sep 17 00:00:00 2001 From: Per Oestergaard Date: Sun, 13 Mar 2022 17:26:58 +0100 Subject: [PATCH 05/12] Ignore .dccache and not-in-git --- .gitignore | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.gitignore b/.gitignore index f67268c8..4292367a 100644 --- a/.gitignore +++ b/.gitignore @@ -130,3 +130,9 @@ tm/ /tests/1.txt /tests/0.txt /tests/.config.pytm + +# local files +not-in-git/ + +# Snyk cache +.dccache From f6c1cd124cdf7cdb97ea48674736772e57ed5575 Mon Sep 17 00:00:00 2001 From: Per Oestergaard Date: Sun, 13 Mar 2022 17:27:59 +0100 Subject: [PATCH 06/12] Make datastore a rounded rectangle --- pytm/pytm.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pytm/pytm.py b/pytm/pytm.py index c1736183..4a39b0ea 100644 --- a/pytm/pytm.py +++ b/pytm/pytm.py @@ -1638,7 +1638,7 @@ def _dfd_template(self): """ def _shape(self): - return "none" + return "rectangle; style=rounded" def dfd(self, **kwargs): self._is_drawn = True From 790bfbe7ddec4159fdfa5fed7bb41112f71ee51b Mon Sep 17 00:00:00 2001 From: Per Oestergaard Date: Wed, 23 Mar 2022 14:25:16 +0100 Subject: [PATCH 07/12] Remove not-in-git again --- .gitignore | 3 --- 1 file changed, 3 deletions(-) diff --git a/.gitignore b/.gitignore index 4292367a..997e21cb 100644 --- a/.gitignore +++ b/.gitignore @@ -131,8 +131,5 @@ tm/ /tests/0.txt /tests/.config.pytm -# local files -not-in-git/ - # Snyk cache .dccache From 42b64c0e5fa73cbd9b8b95fe3c44af77d3fb9fe1 Mon Sep 17 00:00:00 2001 From: Per Oestergaard Date: Mon, 28 Mar 2022 14:53:14 +0200 Subject: [PATCH 08/12] Delete .dccache --- .dccache | 1 - 1 file changed, 1 deletion(-) delete mode 100644 .dccache diff --git a/.dccache b/.dccache deleted file mode 100644 index 8761d5a2..00000000 --- a/.dccache +++ /dev/null @@ -1 +0,0 @@ -{"c:/Users/dkperoes/dev/gitwork/per-oestergaard/pytm/setup.py":[1172,1642158280939.523,"ed23abe5acf72c844572cae218fe2005ab2045a7de53b83df6f207d3ff89eb0b"],"c:/Users/dkperoes/dev/gitwork/per-oestergaard/pytm/tm.py":[3960,1642158280947.5244,"5ef8255031b9ef8a2d2d6517e92cd82cce81189673ec6afaba24a8f29b0e48b7"],"c:/Users/dkperoes/dev/gitwork/per-oestergaard/pytm/pytm/json.py":[3232,1642158280931.5227,"128047d952b09de0e8e31efaa751054dbd2d5fcb6d79bb73b0b56594443e4fef"],"c:/Users/dkperoes/dev/gitwork/per-oestergaard/pytm/pytm/pytm.py":[63427,1644247688953.1438,"20a25c63f7866ea2a9ba43ba86968cc66d7e11a63e3cb421c73ba7b7847557c4"],"c:/Users/dkperoes/dev/gitwork/per-oestergaard/pytm/pytm/report_util.py":[1337,1642158280931.5227,"af164d1c43a9b2688cb87bf5687d1954febf356024e434fdc0a15776e0961bba"],"c:/Users/dkperoes/dev/gitwork/per-oestergaard/pytm/pytm/template_engine.py":[3586,1642158280931.5227,"fe30652114e4570a2a3540137217794f80dcbfc102c5d467e5342c0b953ba3dc"],"c:/Users/dkperoes/dev/gitwork/per-oestergaard/pytm/pytm/__init__.py":[1234,1642158280931.5227,"2bb0a1dade8cf6f6ff1c197f152cda8cf0370e25e159ef331133613b902402d2"],"c:/Users/dkperoes/dev/gitwork/per-oestergaard/pytm/tests/test_private_func.py":[9475,1642158280947.5244,"a69468e11fb41bc7f56eb7d96e502e523773f94bee62ce457a16ace9bdb1f8bc"],"c:/Users/dkperoes/dev/gitwork/per-oestergaard/pytm/tests/test_pytmfunc.py":[49082,1644247688954.1438,"6356c8a31767ecf651738dde9bba8e7c859ad048c0fc6803ca3e2b613b045390"],"c:/Users/dkperoes/dev/gitwork/per-oestergaard/pytm/tests/__init__.py":[0,1642158280939.523,"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"],"c:/Users/dkperoes/dev/gitwork/per-oestergaard/pytm/docs/pytm/index.html":[173903,1642158280923.5234,"105996e3243916849444da7a3df813ae162779005ffe994a2f55d84e503b7cce"],"c:\\Users\\dkperoes\\dev\\gitwork\\per-oestergaard\\pytm\\pytm\\pytm.py":[63427,1644247688953.1438,"20a25c63f7866ea2a9ba43ba86968cc66d7e11a63e3cb421c73ba7b7847557c4"]} \ No newline at end of file From 5da9f1017bb102cb7e782d2e353d3db6cf5d0c55 Mon Sep 17 00:00:00 2001 From: Per Oestergaard Date: Mon, 28 Mar 2022 14:54:31 +0200 Subject: [PATCH 09/12] Reset shape to none --- pytm/pytm.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pytm/pytm.py b/pytm/pytm.py index 4a39b0ea..c1736183 100644 --- a/pytm/pytm.py +++ b/pytm/pytm.py @@ -1638,7 +1638,7 @@ def _dfd_template(self): """ def _shape(self): - return "rectangle; style=rounded" + return "none" def dfd(self, **kwargs): self._is_drawn = True From d2be2601cb19d5e6fba07d274986e0d9d16e997f Mon Sep 17 00:00:00 2001 From: Per Oestergaard Date: Mon, 28 Mar 2022 15:11:51 +0200 Subject: [PATCH 10/12] Add not -1 to help text --- pytm/pytm.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pytm/pytm.py b/pytm/pytm.py index c1736183..9d0e5875 100644 --- a/pytm/pytm.py +++ b/pytm/pytm.py @@ -1303,7 +1303,7 @@ class Element: ) controls = varControls(None) includeOrder = varBool( - False, doc="If True and Order is set, the displayed name will be formatted as 'order:name'. If you make Order unique, this will give you a stable reference you can use for synchronization etc.") + False, doc="If True and Order is set (not -1), the displayed name will be formatted as 'order:name'. If you make Order unique, this will give you a stable reference you can use for synchronization etc.") order = varInt(-1, doc="Number of this element in the threat model") def __init__(self, name, **kwargs): From 400255a5e6fb5b58203e05f4387889528fcc40d0 Mon Sep 17 00:00:00 2001 From: Per Oestergaard Date: Mon, 28 Mar 2022 16:38:35 +0200 Subject: [PATCH 11/12] Adding test cases --- tests/test_pytmfunc.py | 35 +++++++++++++++++++++++++++++++++++ x | 3 +++ 2 files changed, 38 insertions(+) create mode 100644 x diff --git a/tests/test_pytmfunc.py b/tests/test_pytmfunc.py index 029aefbd..5ee10fde 100644 --- a/tests/test_pytmfunc.py +++ b/tests/test_pytmfunc.py @@ -186,6 +186,41 @@ def test_dfd_duplicates_raise(self): with self.assertRaisesRegex(ValueError, e): tm.check() + def test_order_in_finding(self): + random.seed(0) + + TM.reset() + order=1234 + threat_name = "INP03" + formatted_name="{0}:{1}".format(threat_name,order) + + tm = TM("my test tm", description="aaa") + web = Server("Web") + web.includeOrder= True + web.order=order + + tm.resolve() + + self.assertIn(formatted_name, [t.uniqueId for t in tm.findings]) + + def test_order_not_in_finding_no_includeorder(self): + random.seed(0) + + TM.reset() + order=1234 + threat_name = "INP03" + formatted_name="{0}:{1}".format(threat_name,order) + + tm = TM("my test tm", description="aaa") + web = Server("Web") + web.includeOrder= False + web.order=order + + tm.resolve() + + self.assertIn(("1","INP03"), [(t.uniqueId,t.threat_id) for t in tm.findings]) + self.assertNotIn((formatted_name,"INP03"), [(t.uniqueId,t.threat_id) for t in tm.findings]) + def test_exclude_threats_ignore(self): random.seed(0) diff --git a/x b/x new file mode 100644 index 00000000..04b6bfa1 --- /dev/null +++ b/x @@ -0,0 +1,3 @@ +cd /pwd +pip install --force-reinstall pydal > /dev/null +python -m unittest -f -k order \ No newline at end of file From 13598a203052bff531a9f7299cc682ea1125bb58 Mon Sep 17 00:00:00 2001 From: Per Oestergaard Date: Mon, 28 Mar 2022 16:39:17 +0200 Subject: [PATCH 12/12] Remove test file x --- x | 3 --- 1 file changed, 3 deletions(-) delete mode 100644 x diff --git a/x b/x deleted file mode 100644 index 04b6bfa1..00000000 --- a/x +++ /dev/null @@ -1,3 +0,0 @@ -cd /pwd -pip install --force-reinstall pydal > /dev/null -python -m unittest -f -k order \ No newline at end of file