@@ -122,6 +122,7 @@ Find all threats categorized as "Spoofing":
122122``` graphql
123123query SpoofingThreats {
124124 threats (filter : { stride : ["Spoofing" ] }) {
125+ name
125126 description
126127 stride
127128 impacts
@@ -139,6 +140,25 @@ Find threats that impact confidentiality:
139140``` graphql
140141query ConfidentialityThreats {
141142 threats (filter : { impacts : ["Confidentiality" ] }) {
143+ name
144+ description
145+ impacts
146+ stride
147+ threatModel {
148+ name
149+ }
150+ }
151+ }
152+ ```
153+
154+ ### 9. Threats by Name
155+
156+ Search for threats by name (supports partial, case-insensitive matching):
157+
158+ ``` graphql
159+ query ThreatsByName {
160+ threats (filter : { name : " theft" }) {
161+ name
142162 description
143163 impacts
144164 stride
@@ -149,7 +169,7 @@ query ConfidentialityThreats {
149169}
150170```
151171
152- ### 9 . Confidential Information Assets
172+ ### 10 . Confidential Information Assets
153173
154174Find all assets classified as confidential:
155175
@@ -168,7 +188,7 @@ query ConfidentialAssets {
168188
169189## Detailed Queries
170190
171- ### 10 . Threat Model with All Details
191+ ### 11 . Threat Model with All Details
172192
173193Get complete information about a threat model:
174194
@@ -194,6 +214,7 @@ query CompleteThreatModel {
194214 }
195215
196216 threats {
217+ name
197218 description
198219 impacts
199220 stride
@@ -228,7 +249,7 @@ query CompleteThreatModel {
228249}
229250```
230251
231- ### 11 . All Threats with Controls
252+ ### 12 . All Threats with Controls
232253
233254Get all threats and their associated controls:
234255
@@ -237,6 +258,7 @@ query AllThreatsWithControls {
237258 threatModels {
238259 name
239260 threats {
261+ name
240262 description
241263 impacts
242264 stride
@@ -251,7 +273,7 @@ query AllThreatsWithControls {
251273}
252274```
253275
254- ### 12 . Threat Models with Data Flow Diagrams
276+ ### 13 . Threat Models with Data Flow Diagrams
255277
256278Find threat models that have DFDs:
257279
@@ -290,7 +312,7 @@ query ModelsWithDFDs {
290312
291313## Analysis Queries
292314
293- ### 13 . Security Control Coverage
315+ ### 14 . Security Control Coverage
294316
295317Analyze which threat models have the most controls:
296318
@@ -300,6 +322,7 @@ query ControlCoverage {
300322 name
301323 author
302324 threats {
325+ name
303326 description
304327 controls {
305328 name
@@ -310,7 +333,7 @@ query ControlCoverage {
310333}
311334```
312335
313- ### 14 . Implementation Status
336+ ### 15 . Implementation Status
314337
315338Find threats with unimplemented controls:
316339
@@ -319,6 +342,7 @@ query UnimplementedControls {
319342 threatModels {
320343 name
321344 threats {
345+ name
322346 description
323347 controls {
324348 name
@@ -332,7 +356,7 @@ query UnimplementedControls {
332356
333357Note: You'll need to filter client-side for ` implemented: false ` .
334358
335- ### 15 . Risk Reduction Analysis
359+ ### 16 . Risk Reduction Analysis
336360
337361Analyze risk reduction across all controls:
338362
@@ -341,6 +365,7 @@ query RiskReductionAnalysis {
341365 threatModels {
342366 name
343367 threats {
368+ name
344369 description
345370 controls {
346371 name
@@ -358,7 +383,7 @@ query RiskReductionAnalysis {
358383}
359384```
360385
361- ### 16 . Third-Party Dependency Audit
386+ ### 17 . Third-Party Dependency Audit
362387
363388Find all third-party dependencies and their criticality:
364389
@@ -380,7 +405,7 @@ query ThirdPartyAudit {
380405
381406## Multiple Queries in One Request
382407
383- ### 17 . Dashboard Data
408+ ### 18 . Dashboard Data
384409
385410Get all data needed for a dashboard in one query:
386411
@@ -413,6 +438,7 @@ query Dashboard {
413438 }
414439
415440 allThreats : threats {
441+ name
416442 description
417443 stride
418444 threatModel {
@@ -422,7 +448,7 @@ query Dashboard {
422448}
423449```
424450
425- ### 18 . Security Posture Report
451+ ### 19 . Security Posture Report
426452
427453Generate a comprehensive security posture report:
428454
@@ -439,6 +465,7 @@ query SecurityPostureReport {
439465 internetFacing : threatModels (filter : { internetFacing : true }) {
440466 name
441467 threats {
468+ name
442469 description
443470 impacts
444471 controls {
@@ -459,7 +486,7 @@ query SecurityPostureReport {
459486
460487## Advanced Queries
461488
462- ### 19 . Using Query Variables
489+ ### 20 . Using Query Variables
463490
464491Define reusable queries with variables:
465492
@@ -470,6 +497,7 @@ query GetModelByName($modelName: String!) {
470497 author
471498 description
472499 threats {
500+ name
473501 description
474502 impacts
475503 }
@@ -484,12 +512,13 @@ Variables:
484512}
485513```
486514
487- ### 20 . Fragments for Reusable Fields
515+ ### 21 . Fragments for Reusable Fields
488516
489517Use fragments to avoid repeating field selections:
490518
491519``` graphql
492520fragment ThreatDetails on Threat {
521+ name
493522 description
494523 impacts
495524 stride
@@ -522,7 +551,7 @@ query ModelsWithThreatDetails {
522551
523552While the API provides server-side filtering, sometimes you need client-side filtering. Here are some examples using JavaScript:
524553
525- ### 21 . Find Threats Without Implemented Controls
554+ ### 22 . Find Threats Without Implemented Controls
526555
527556``` javascript
528557const query = `
@@ -551,7 +580,7 @@ const threatsWithoutControls = data.threatModels.flatMap(tm =>
551580);
552581```
553582
554- ### 22 . Calculate Control Implementation Rate
583+ ### 23 . Calculate Control Implementation Rate
555584
556585``` javascript
557586const query = `
0 commit comments