guardlink 1.1.0 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +62 -0
- package/README.md +11 -2
- package/dist/agents/config.d.ts +17 -0
- package/dist/agents/config.d.ts.map +1 -1
- package/dist/agents/config.js +38 -4
- package/dist/agents/config.js.map +1 -1
- package/dist/agents/index.d.ts +5 -1
- package/dist/agents/index.d.ts.map +1 -1
- package/dist/agents/index.js +4 -1
- package/dist/agents/index.js.map +1 -1
- package/dist/agents/launcher.d.ts +25 -8
- package/dist/agents/launcher.d.ts.map +1 -1
- package/dist/agents/launcher.js +137 -9
- package/dist/agents/launcher.js.map +1 -1
- package/dist/agents/prompts.d.ts +9 -0
- package/dist/agents/prompts.d.ts.map +1 -1
- package/dist/agents/prompts.js +43 -6
- package/dist/agents/prompts.js.map +1 -1
- package/dist/analyze/index.d.ts +44 -8
- package/dist/analyze/index.d.ts.map +1 -1
- package/dist/analyze/index.js +291 -15
- package/dist/analyze/index.js.map +1 -1
- package/dist/analyze/llm.d.ts +65 -13
- package/dist/analyze/llm.d.ts.map +1 -1
- package/dist/analyze/llm.js +429 -107
- package/dist/analyze/llm.js.map +1 -1
- package/dist/analyze/prompts.d.ts +6 -2
- package/dist/analyze/prompts.d.ts.map +1 -1
- package/dist/analyze/prompts.js +230 -111
- package/dist/analyze/prompts.js.map +1 -1
- package/dist/analyze/tools.d.ts +28 -0
- package/dist/analyze/tools.d.ts.map +1 -0
- package/dist/analyze/tools.js +236 -0
- package/dist/analyze/tools.js.map +1 -0
- package/dist/analyzer/index.d.ts +3 -0
- package/dist/analyzer/index.d.ts.map +1 -1
- package/dist/analyzer/index.js +3 -0
- package/dist/analyzer/index.js.map +1 -1
- package/dist/analyzer/sarif.d.ts +5 -6
- package/dist/analyzer/sarif.d.ts.map +1 -1
- package/dist/analyzer/sarif.js +5 -6
- package/dist/analyzer/sarif.js.map +1 -1
- package/dist/cli/index.d.ts +27 -16
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +524 -105
- package/dist/cli/index.js.map +1 -1
- package/dist/dashboard/data.d.ts +5 -0
- package/dist/dashboard/data.d.ts.map +1 -1
- package/dist/dashboard/data.js +5 -0
- package/dist/dashboard/data.js.map +1 -1
- package/dist/dashboard/generate.d.ts +8 -5
- package/dist/dashboard/generate.d.ts.map +1 -1
- package/dist/dashboard/generate.js +206 -66
- package/dist/dashboard/generate.js.map +1 -1
- package/dist/dashboard/index.d.ts +5 -0
- package/dist/dashboard/index.d.ts.map +1 -1
- package/dist/dashboard/index.js +5 -0
- package/dist/dashboard/index.js.map +1 -1
- package/dist/diff/git.d.ts +10 -7
- package/dist/diff/git.d.ts.map +1 -1
- package/dist/diff/git.js +10 -7
- package/dist/diff/git.js.map +1 -1
- package/dist/diff/index.d.ts +4 -0
- package/dist/diff/index.d.ts.map +1 -1
- package/dist/diff/index.js +4 -0
- package/dist/diff/index.js.map +1 -1
- package/dist/init/detect.d.ts +5 -0
- package/dist/init/detect.d.ts.map +1 -1
- package/dist/init/detect.js +5 -0
- package/dist/init/detect.js.map +1 -1
- package/dist/init/index.d.ts +26 -6
- package/dist/init/index.d.ts.map +1 -1
- package/dist/init/index.js +91 -11
- package/dist/init/index.js.map +1 -1
- package/dist/init/picker.d.ts.map +1 -1
- package/dist/init/picker.js +17 -6
- package/dist/init/picker.js.map +1 -1
- package/dist/init/templates.d.ts +20 -0
- package/dist/init/templates.d.ts.map +1 -1
- package/dist/init/templates.js +167 -36
- package/dist/init/templates.js.map +1 -1
- package/dist/mcp/index.d.ts +5 -0
- package/dist/mcp/index.d.ts.map +1 -1
- package/dist/mcp/index.js +5 -0
- package/dist/mcp/index.js.map +1 -1
- package/dist/mcp/lookup.d.ts +5 -0
- package/dist/mcp/lookup.d.ts.map +1 -1
- package/dist/mcp/lookup.js +5 -0
- package/dist/mcp/lookup.js.map +1 -1
- package/dist/mcp/server.d.ts +16 -13
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +140 -17
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/suggest.d.ts +8 -6
- package/dist/mcp/suggest.d.ts.map +1 -1
- package/dist/mcp/suggest.js +8 -6
- package/dist/mcp/suggest.js.map +1 -1
- package/dist/parser/clear.d.ts +36 -0
- package/dist/parser/clear.d.ts.map +1 -0
- package/dist/parser/clear.js +148 -0
- package/dist/parser/clear.js.map +1 -0
- package/dist/parser/index.d.ts +3 -1
- package/dist/parser/index.d.ts.map +1 -1
- package/dist/parser/index.js +2 -1
- package/dist/parser/index.js.map +1 -1
- package/dist/parser/parse-file.d.ts +5 -2
- package/dist/parser/parse-file.d.ts.map +1 -1
- package/dist/parser/parse-file.js +29 -2
- package/dist/parser/parse-file.js.map +1 -1
- package/dist/parser/parse-line.d.ts +3 -3
- package/dist/parser/parse-line.js +3 -3
- package/dist/parser/parse-project.d.ts +7 -7
- package/dist/parser/parse-project.d.ts.map +1 -1
- package/dist/parser/parse-project.js +24 -11
- package/dist/parser/parse-project.js.map +1 -1
- package/dist/parser/validate.d.ts +12 -0
- package/dist/parser/validate.d.ts.map +1 -1
- package/dist/parser/validate.js +44 -0
- package/dist/parser/validate.js.map +1 -1
- package/dist/report/index.d.ts +3 -0
- package/dist/report/index.d.ts.map +1 -1
- package/dist/report/index.js +3 -0
- package/dist/report/index.js.map +1 -1
- package/dist/report/report.d.ts +4 -7
- package/dist/report/report.d.ts.map +1 -1
- package/dist/report/report.js +68 -7
- package/dist/report/report.js.map +1 -1
- package/dist/review/index.d.ts +62 -0
- package/dist/review/index.d.ts.map +1 -0
- package/dist/review/index.js +226 -0
- package/dist/review/index.js.map +1 -0
- package/dist/tui/commands.d.ts +26 -1
- package/dist/tui/commands.d.ts.map +1 -1
- package/dist/tui/commands.js +608 -101
- package/dist/tui/commands.js.map +1 -1
- package/dist/tui/config.d.ts +6 -0
- package/dist/tui/config.d.ts.map +1 -1
- package/dist/tui/config.js +6 -0
- package/dist/tui/config.js.map +1 -1
- package/dist/tui/format.d.ts +7 -0
- package/dist/tui/format.d.ts.map +1 -1
- package/dist/tui/format.js +59 -0
- package/dist/tui/format.js.map +1 -1
- package/dist/tui/index.d.ts +8 -8
- package/dist/tui/index.d.ts.map +1 -1
- package/dist/tui/index.js +47 -10
- package/dist/tui/index.js.map +1 -1
- package/dist/tui/input.d.ts +6 -0
- package/dist/tui/input.d.ts.map +1 -1
- package/dist/tui/input.js +6 -0
- package/dist/tui/input.js.map +1 -1
- package/dist/types/index.d.ts +2 -0
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -5,11 +5,14 @@
|
|
|
5
5
|
* 7 pages: Summary, AI Analysis, Threats, Diagrams, Code, Data, Assets.
|
|
6
6
|
* Mermaid.js via CDN for diagrams. Zero build step.
|
|
7
7
|
*
|
|
8
|
-
* @exposes #dashboard to #xss [high] cwe:CWE-79 -- "
|
|
9
|
-
* @mitigates #dashboard against #xss using #output-encoding -- "esc()
|
|
10
|
-
* @
|
|
11
|
-
* @
|
|
12
|
-
* @
|
|
8
|
+
* @exposes #dashboard to #xss [high] cwe:CWE-79 -- "Generates HTML with user-controlled threat model data"
|
|
9
|
+
* @mitigates #dashboard against #xss using #output-encoding -- "esc() HTML-encodes all interpolated values"
|
|
10
|
+
* @exposes #dashboard to #path-traversal [medium] cwe:CWE-22 -- "readFileSync reads code files for annotation context"
|
|
11
|
+
* @mitigates #dashboard against #path-traversal using #path-validation -- "resolve() with root constrains file access"
|
|
12
|
+
* @flows ThreatModel -> #dashboard via computeStats -- "Model statistics input"
|
|
13
|
+
* @flows SourceFiles -> #dashboard via readFileSync -- "Code snippet reads"
|
|
14
|
+
* @flows #dashboard -> HTML via return -- "Generated HTML output"
|
|
15
|
+
* @handles internal on #dashboard -- "Processes and displays threat model data"
|
|
13
16
|
*/
|
|
14
17
|
import { computeStats, computeSeverity, computeExposures, computeAssetHeatmap } from './data.js';
|
|
15
18
|
import { generateThreatGraph, generateDataFlowDiagram, generateAttackSurface } from './diagrams.js';
|
|
@@ -74,15 +77,21 @@ ${CSS_CONTENT}
|
|
|
74
77
|
<div class="layout">
|
|
75
78
|
|
|
76
79
|
<!-- ═══════════ SIDEBAR ═══════════ -->
|
|
77
|
-
<nav class="sidebar">
|
|
78
|
-
<
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
80
|
+
<nav class="sidebar" id="sidebar">
|
|
81
|
+
<div class="sidebar-nav">
|
|
82
|
+
<a class="active" onclick="showSection('summary',this)"><span class="nav-icon"><svg width="16" height="16" viewBox="0 0 16 16" fill="currentColor"><path d="M8 2l6 4v6l-6 4-6-4V6l6-4z"/></svg></span> <span class="nav-text">Executive Summary</span></a>
|
|
83
|
+
<a onclick="showSection('ai-analysis',this)"><span class="nav-icon"><svg width="16" height="16" viewBox="0 0 16 16" fill="currentColor"><path d="M8 1l2 5h5l-4 3 2 5-5-3-5 3 2-5-4-3h5l2-5z"/></svg></span> <span class="nav-text">Threat Reports</span></a>
|
|
84
|
+
<a onclick="showSection('threats',this)"><span class="nav-icon"><svg width="16" height="16" viewBox="0 0 16 16" fill="currentColor"><path d="M8 1L1 15h14L8 1zm0 4l3 8H5l3-8z"/></svg></span> <span class="nav-text">Threats & Exposures</span></a>
|
|
85
|
+
<a onclick="showSection('diagrams',this)"><span class="nav-icon"><svg width="16" height="16" viewBox="0 0 16 16" fill="currentColor"><circle cx="8" cy="8" r="6" stroke="currentColor" stroke-width="1.5" fill="none"/><circle cx="8" cy="8" r="2"/></svg></span> <span class="nav-text">Diagrams</span></a>
|
|
86
|
+
<a onclick="showSection('code',this)"><span class="nav-icon"><svg width="16" height="16" viewBox="0 0 16 16" fill="currentColor"><path d="M5 4L1 8l4 4v-2L3 8l2-2V4zm6 0v2l2 2-2 2v2l4-4-4-4z"/></svg></span> <span class="nav-text">Code & Annotations</span></a>
|
|
87
|
+
<div class="sep"></div>
|
|
88
|
+
<a onclick="showSection('data',this)"><span class="nav-icon"><svg width="16" height="16" viewBox="0 0 16 16" fill="currentColor"><path d="M4 2h8v2H4V2zm0 3h8v2H4V5zm0 3h8v2H4V8zm0 3h8v2H4v-2zm-2-9v12h12V2H2zm1 1h10v10H3V3z"/></svg></span> <span class="nav-text">Data & Boundaries</span></a>
|
|
89
|
+
<a onclick="showSection('assets',this)"><span class="nav-icon"><svg width="16" height="16" viewBox="0 0 16 16" fill="currentColor"><path d="M1 3h14v10H1V3zm1 1v8h12V4H2zm2 2h8v1H4V6zm0 2h6v1H4V8z"/></svg></span> <span class="nav-text">Asset Heatmap</span></a>
|
|
90
|
+
</div>
|
|
91
|
+
<button id="sidebarToggle" onclick="toggleSidebar()" title="Collapse sidebar">
|
|
92
|
+
<svg class="chevron-left" width="16" height="16" viewBox="0 0 16 16" fill="currentColor"><path d="M10 2L4 8l6 6V2z"/></svg>
|
|
93
|
+
<svg class="chevron-right" width="16" height="16" viewBox="0 0 16 16" fill="currentColor"><path d="M6 2v12l6-6-6-6z"/></svg>
|
|
94
|
+
</button>
|
|
86
95
|
</nav>
|
|
87
96
|
|
|
88
97
|
<!-- ═══════════ MAIN ═══════════ -->
|
|
@@ -92,7 +101,7 @@ ${renderSummaryPage(stats, severity, riskScore, unmitigated, exposures, model, m
|
|
|
92
101
|
${renderAIAnalysisPage(analyses || [])}
|
|
93
102
|
${renderThreatsPage(exposures, model)}
|
|
94
103
|
${renderDiagramsPage(threatGraph, dataFlow, attackSurface)}
|
|
95
|
-
${renderCodePage(fileAnnotations)}
|
|
104
|
+
${renderCodePage(fileAnnotations, model)}
|
|
96
105
|
${renderDataPage(model)}
|
|
97
106
|
${renderAssetsPage(heatmap)}
|
|
98
107
|
|
|
@@ -124,16 +133,28 @@ function showSection(id, el) {
|
|
|
124
133
|
const sec = document.getElementById('sec-' + id);
|
|
125
134
|
if (sec) sec.classList.add('active');
|
|
126
135
|
if (el) el.classList.add('active');
|
|
127
|
-
|
|
136
|
+
closeDrawer();
|
|
128
137
|
if (id === 'diagrams' && !window._mermaidRendered) {
|
|
129
138
|
setTimeout(() => { renderMermaid(); }, 100);
|
|
130
139
|
}
|
|
131
|
-
// Render AI analysis explorer on first visit
|
|
132
140
|
if (id === 'ai-analysis' && !window._aiAnalysisRendered) {
|
|
133
141
|
renderAIAnalysis();
|
|
134
142
|
}
|
|
135
143
|
}
|
|
136
144
|
|
|
145
|
+
/* ===== SIDEBAR TOGGLE ===== */
|
|
146
|
+
function toggleSidebar() {
|
|
147
|
+
const sidebar = document.getElementById('sidebar');
|
|
148
|
+
sidebar.classList.toggle('collapsed');
|
|
149
|
+
localStorage.setItem('sidebarCollapsed', sidebar.classList.contains('collapsed'));
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
// Restore sidebar state on load
|
|
153
|
+
window.addEventListener('DOMContentLoaded', () => {
|
|
154
|
+
const collapsed = localStorage.getItem('sidebarCollapsed') === 'true';
|
|
155
|
+
if (collapsed) document.getElementById('sidebar').classList.add('collapsed');
|
|
156
|
+
});
|
|
157
|
+
|
|
137
158
|
/* ===== FILE TOGGLE ===== */
|
|
138
159
|
function toggleFile(header) {
|
|
139
160
|
header.classList.toggle('open');
|
|
@@ -568,41 +589,37 @@ function formatAnalysisDate(ts) {
|
|
|
568
589
|
|
|
569
590
|
function renderAIAnalysis() {
|
|
570
591
|
window._aiAnalysisRendered = true;
|
|
571
|
-
const
|
|
572
|
-
const explorer = document.getElementById('ai-analyses-explorer');
|
|
592
|
+
const selector = document.getElementById('report-selector');
|
|
573
593
|
const container = document.getElementById('ai-content');
|
|
574
594
|
if (!container) return;
|
|
575
595
|
|
|
576
596
|
const list = savedAnalyses;
|
|
577
597
|
const hasList = Array.isArray(list) && list.length > 0;
|
|
578
598
|
|
|
579
|
-
if (hasList) {
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
});
|
|
601
|
-
}
|
|
599
|
+
if (hasList && selector) {
|
|
600
|
+
// Populate dropdown with reports
|
|
601
|
+
selector.innerHTML = list.map((a, i) => {
|
|
602
|
+
const label = esc(a.label || a.framework || 'Analysis');
|
|
603
|
+
const date = esc(formatAnalysisDate(a.timestamp || ''));
|
|
604
|
+
const model = a.model ? ' — ' + esc(a.model) : '';
|
|
605
|
+
return '<option value="' + i + '">' + label + ' (' + date + ')' + model + '</option>';
|
|
606
|
+
}).join('');
|
|
607
|
+
|
|
608
|
+
// Set initial selection
|
|
609
|
+
selector.value = String(_selectedAnalysisIdx);
|
|
610
|
+
|
|
611
|
+
// Handle dropdown change
|
|
612
|
+
selector.addEventListener('change', function() {
|
|
613
|
+
var idx = parseInt(this.value, 10);
|
|
614
|
+
if (isNaN(idx) || idx === _selectedAnalysisIdx) return;
|
|
615
|
+
_selectedAnalysisIdx = idx;
|
|
616
|
+
renderAIAnalysisContent(container, (list[idx] && list[idx].content) ? list[idx].content : '');
|
|
617
|
+
});
|
|
618
|
+
|
|
619
|
+
// Render initial content
|
|
602
620
|
renderAIAnalysisContent(container, (list[_selectedAnalysisIdx] && list[_selectedAnalysisIdx].content) ? list[_selectedAnalysisIdx].content : '');
|
|
603
621
|
} else {
|
|
604
|
-
if (
|
|
605
|
-
if (explorer) explorer.innerHTML = '';
|
|
622
|
+
if (selector) selector.style.display = 'none';
|
|
606
623
|
renderAIAnalysisContent(container, '');
|
|
607
624
|
}
|
|
608
625
|
}
|
|
@@ -635,7 +652,12 @@ function renderSummaryPage(stats, severity, risk, unmitigated, exposures, model,
|
|
|
635
652
|
${statCard(stats.flows, 'Data Flows')}
|
|
636
653
|
${statCard(stats.boundaries, 'Boundaries')}
|
|
637
654
|
${statCard(stats.transfers, 'Transfers')}
|
|
655
|
+
${statCard(stats.validations, 'Validations', 'success')}
|
|
656
|
+
${statCard(stats.audits, 'Audits')}
|
|
657
|
+
${statCard(stats.assumptions, 'Assumptions')}
|
|
658
|
+
${statCard(stats.ownership, 'Ownership')}
|
|
638
659
|
${statCard(stats.comments, 'Comments', 'muted')}
|
|
660
|
+
${stats.shields > 0 ? statCard(stats.shields, 'Shields', 'muted') : ''}
|
|
639
661
|
</div>
|
|
640
662
|
|
|
641
663
|
<!-- Coverage Bar -->
|
|
@@ -691,10 +713,11 @@ function renderAIAnalysisPage(analyses) {
|
|
|
691
713
|
return `
|
|
692
714
|
<div id="sec-ai-analysis" class="section-content">
|
|
693
715
|
<div class="sec-h"><span class="sec-icon">✨</span> Threat Reports</div>
|
|
694
|
-
<div class="ai-analysis-
|
|
695
|
-
<
|
|
696
|
-
<
|
|
716
|
+
<div class="ai-analysis-controls">
|
|
717
|
+
<label for="report-selector" class="report-selector-label">Select Report:</label>
|
|
718
|
+
<select id="report-selector" class="report-selector" aria-label="Select threat report"></select>
|
|
697
719
|
</div>
|
|
720
|
+
<div id="ai-content" class="md-content ai-analysis-main"></div>
|
|
698
721
|
</div>`;
|
|
699
722
|
}
|
|
700
723
|
function renderThreatsPage(exposures, model) {
|
|
@@ -819,7 +842,10 @@ function renderDiagramsPage(threatGraph, dataFlow, attackSurface) {
|
|
|
819
842
|
${panels.join('\n')}
|
|
820
843
|
</div>`;
|
|
821
844
|
}
|
|
822
|
-
function renderCodePage(fileAnnotations) {
|
|
845
|
+
function renderCodePage(fileAnnotations, model) {
|
|
846
|
+
const unannotated = model.unannotated_files || [];
|
|
847
|
+
const annotatedCount = model.annotated_files?.length || fileAnnotations.length;
|
|
848
|
+
const totalFiles = annotatedCount + unannotated.length;
|
|
823
849
|
return `
|
|
824
850
|
<div id="sec-code" class="section-content">
|
|
825
851
|
<div class="sec-h"><span class="sec-icon"></></span> Code & Annotations</div>
|
|
@@ -848,6 +874,23 @@ function renderCodePage(fileAnnotations) {
|
|
|
848
874
|
</div>`).join('')}
|
|
849
875
|
</div>
|
|
850
876
|
</div>`).join('') : '<p class="empty-state">No annotations found.</p>'}
|
|
877
|
+
|
|
878
|
+
<!-- File Coverage Summary -->
|
|
879
|
+
<div class="sub-h" style="margin-top:1.5rem">File Coverage</div>
|
|
880
|
+
<div style="display:flex;align-items:center;gap:.8rem;margin-bottom:.3rem">
|
|
881
|
+
<span style="font-size:.88rem;font-weight:600;color:${totalFiles > 0 && annotatedCount / totalFiles >= 0.7 ? 'var(--green)' : annotatedCount / totalFiles >= 0.4 ? 'var(--yellow)' : 'var(--red)'}">${annotatedCount} of ${totalFiles} files</span>
|
|
882
|
+
<span style="color:var(--muted);font-size:.82rem">have GuardLink annotations</span>
|
|
883
|
+
</div>
|
|
884
|
+
${totalFiles > 0 ? `<div class="posture-bar"><div class="posture-fill ${annotatedCount / totalFiles >= 0.7 ? 'good' : annotatedCount / totalFiles >= 0.4 ? 'warn' : 'bad'}" style="width:${Math.round(annotatedCount / totalFiles * 100)}%"></div></div>` : ''}
|
|
885
|
+
|
|
886
|
+
${unannotated.length > 0 ? `
|
|
887
|
+
<div class="sub-h" style="color:var(--yellow);margin-top:1rem">⚠ Unannotated Files (${unannotated.length})</div>
|
|
888
|
+
<p style="color:var(--muted);font-size:.78rem;margin-bottom:.5rem">
|
|
889
|
+
Source files with no GuardLink annotations. Not all files need annotations — only those touching security boundaries.
|
|
890
|
+
</p>
|
|
891
|
+
<div style="display:flex;flex-direction:column;gap:2px;margin-bottom:1rem">
|
|
892
|
+
${unannotated.map(f => `<div style="font-family:var(--font-mono);font-size:.78rem;padding:.3rem .6rem;background:var(--surface2);border-left:3px solid var(--yellow);border-radius:2px">${esc(f)}</div>`).join('')}
|
|
893
|
+
</div>` : `<p style="color:var(--green);font-size:.82rem;margin-top:.5rem">✓ All source files have annotations.</p>`}
|
|
851
894
|
</div>`;
|
|
852
895
|
}
|
|
853
896
|
function renderDataPage(model) {
|
|
@@ -886,6 +929,79 @@ function renderDataPage(model) {
|
|
|
886
929
|
</tbody>
|
|
887
930
|
</table>` : ''}
|
|
888
931
|
|
|
932
|
+
${model.validations.length > 0 ? `
|
|
933
|
+
<div class="sub-h">Validations (${model.validations.length})</div>
|
|
934
|
+
<table>
|
|
935
|
+
<thead><tr><th>Control</th><th>Asset</th><th>Description</th><th>Location</th></tr></thead>
|
|
936
|
+
<tbody>
|
|
937
|
+
${model.validations.map(v => `
|
|
938
|
+
<tr>
|
|
939
|
+
<td><code>${esc(v.control)}</code></td>
|
|
940
|
+
<td><code>${esc(v.asset)}</code></td>
|
|
941
|
+
<td>${esc(v.description || '—')}</td>
|
|
942
|
+
<td class="loc">${v.location ? `${esc(v.location.file)}:${v.location.line}` : ''}</td>
|
|
943
|
+
</tr>`).join('')}
|
|
944
|
+
</tbody>
|
|
945
|
+
</table>` : ''}
|
|
946
|
+
|
|
947
|
+
${model.ownership.length > 0 ? `
|
|
948
|
+
<div class="sub-h">Ownership (${model.ownership.length})</div>
|
|
949
|
+
<table>
|
|
950
|
+
<thead><tr><th>Asset</th><th>Owner</th><th>Description</th><th>Location</th></tr></thead>
|
|
951
|
+
<tbody>
|
|
952
|
+
${model.ownership.map(o => `
|
|
953
|
+
<tr>
|
|
954
|
+
<td><code>${esc(o.asset)}</code></td>
|
|
955
|
+
<td><strong>${esc(o.owner)}</strong></td>
|
|
956
|
+
<td>${esc(o.description || '—')}</td>
|
|
957
|
+
<td class="loc">${o.location ? `${esc(o.location.file)}:${o.location.line}` : ''}</td>
|
|
958
|
+
</tr>`).join('')}
|
|
959
|
+
</tbody>
|
|
960
|
+
</table>` : ''}
|
|
961
|
+
|
|
962
|
+
${model.audits.length > 0 ? `
|
|
963
|
+
<div class="sub-h">Audit Items (${model.audits.length})</div>
|
|
964
|
+
<table>
|
|
965
|
+
<thead><tr><th>Asset</th><th>Description</th><th>Location</th></tr></thead>
|
|
966
|
+
<tbody>
|
|
967
|
+
${model.audits.map(a => `
|
|
968
|
+
<tr>
|
|
969
|
+
<td><code>${esc(a.asset)}</code></td>
|
|
970
|
+
<td>${esc(a.description || 'Needs review')}</td>
|
|
971
|
+
<td class="loc">${a.location ? `${esc(a.location.file)}:${a.location.line}` : ''}</td>
|
|
972
|
+
</tr>`).join('')}
|
|
973
|
+
</tbody>
|
|
974
|
+
</table>` : ''}
|
|
975
|
+
|
|
976
|
+
${model.assumptions.length > 0 ? `
|
|
977
|
+
<div class="sub-h">Assumptions (${model.assumptions.length})</div>
|
|
978
|
+
<p style="color:var(--muted);font-size:.78rem;margin-bottom:.5rem">Unverified assumptions that should be periodically reviewed.</p>
|
|
979
|
+
<table>
|
|
980
|
+
<thead><tr><th>Asset</th><th>Assumption</th><th>Location</th></tr></thead>
|
|
981
|
+
<tbody>
|
|
982
|
+
${model.assumptions.map(a => `
|
|
983
|
+
<tr>
|
|
984
|
+
<td><code>${esc(a.asset)}</code></td>
|
|
985
|
+
<td>${esc(a.description || 'Unverified assumption')}</td>
|
|
986
|
+
<td class="loc">${a.location ? `${esc(a.location.file)}:${a.location.line}` : ''}</td>
|
|
987
|
+
</tr>`).join('')}
|
|
988
|
+
</tbody>
|
|
989
|
+
</table>` : ''}
|
|
990
|
+
|
|
991
|
+
${model.shields.length > 0 ? `
|
|
992
|
+
<div class="sub-h">Shielded Regions (${model.shields.length})</div>
|
|
993
|
+
<p style="color:var(--muted);font-size:.78rem;margin-bottom:.5rem">Code regions where annotations are intentionally suppressed via <code>@shield</code>.</p>
|
|
994
|
+
<table>
|
|
995
|
+
<thead><tr><th>Reason</th><th>Location</th></tr></thead>
|
|
996
|
+
<tbody>
|
|
997
|
+
${model.shields.map(s => `
|
|
998
|
+
<tr>
|
|
999
|
+
<td>${esc(s.reason || 'No reason provided')}</td>
|
|
1000
|
+
<td class="loc">${s.location ? `${esc(s.location.file)}:${s.location.line}` : ''}</td>
|
|
1001
|
+
</tr>`).join('')}
|
|
1002
|
+
</tbody>
|
|
1003
|
+
</table>` : ''}
|
|
1004
|
+
|
|
889
1005
|
${model.comments.length > 0 ? `
|
|
890
1006
|
<div class="sub-h">Developer Comments (${model.comments.length})</div>
|
|
891
1007
|
<table>
|
|
@@ -900,7 +1016,9 @@ function renderDataPage(model) {
|
|
|
900
1016
|
</table>` : ''}
|
|
901
1017
|
|
|
902
1018
|
${model.boundaries.length === 0 && model.data_handling.length === 0 && model.comments.length === 0
|
|
903
|
-
|
|
1019
|
+
&& model.validations.length === 0 && model.ownership.length === 0 && model.audits.length === 0
|
|
1020
|
+
&& model.assumptions.length === 0 && model.shields.length === 0
|
|
1021
|
+
? '<p class="empty-state">No data classifications, trust boundaries, or lifecycle annotations found.</p>' : ''}
|
|
904
1022
|
</div>`;
|
|
905
1023
|
}
|
|
906
1024
|
function renderAssetsPage(heatmap) {
|
|
@@ -978,6 +1096,18 @@ function buildFileAnnotations(model, root) {
|
|
|
978
1096
|
addEntry('flow', f, `${f.source} → ${f.target}`);
|
|
979
1097
|
for (const b of model.boundaries)
|
|
980
1098
|
addEntry('boundary', b, `${b.asset_a} ↔ ${b.asset_b}`);
|
|
1099
|
+
for (const h of model.data_handling)
|
|
1100
|
+
addEntry('handles', h, `${h.asset}: ${h.classification}`);
|
|
1101
|
+
for (const v of model.validations)
|
|
1102
|
+
addEntry('validates', v, `${v.control} validates ${v.asset}`);
|
|
1103
|
+
for (const o of model.ownership)
|
|
1104
|
+
addEntry('owns', o, `${o.owner} owns ${o.asset}`);
|
|
1105
|
+
for (const a of model.audits)
|
|
1106
|
+
addEntry('audit', a, `Audit: ${a.asset}`);
|
|
1107
|
+
for (const a of model.assumptions)
|
|
1108
|
+
addEntry('assumes', a, `Assumes: ${a.asset}`);
|
|
1109
|
+
for (const s of model.shields)
|
|
1110
|
+
addEntry('shield', s, s.reason || 'Shielded region');
|
|
981
1111
|
for (const c of model.comments)
|
|
982
1112
|
addEntry('comment', c, c.description || 'Developer note');
|
|
983
1113
|
const result = [];
|
|
@@ -1091,12 +1221,23 @@ code { background: var(--border); padding: 1px 4px; border-radius: 3px; font-siz
|
|
|
1091
1221
|
[data-theme="light"] .icon-moon { display: none; }
|
|
1092
1222
|
|
|
1093
1223
|
/* ── Layout ── */
|
|
1094
|
-
.layout { display: flex; height: calc(100vh - 48px); }
|
|
1095
|
-
.sidebar { width: var(--sidebar-w); min-width: var(--sidebar-w); background: var(--surface); border-right: 1px solid var(--border);
|
|
1224
|
+
.layout { display: flex; height: calc(100vh - 48px); position: relative; }
|
|
1225
|
+
.sidebar { width: var(--sidebar-w); min-width: var(--sidebar-w); background: var(--surface); border-right: 1px solid var(--border); display: flex; flex-direction: column; transition: all .25s ease; }
|
|
1226
|
+
.sidebar-nav { flex: 1; overflow-y: auto; padding: .6rem 0; }
|
|
1227
|
+
.sidebar.collapsed { width: 50px; min-width: 50px; }
|
|
1228
|
+
.sidebar.collapsed .nav-text { display: none; }
|
|
1229
|
+
.sidebar.collapsed .sep { margin: .5rem .5rem; }
|
|
1230
|
+
.sidebar.collapsed .chevron-left { display: none; }
|
|
1231
|
+
.sidebar.collapsed .chevron-right { display: block; }
|
|
1232
|
+
#sidebarToggle { background: var(--surface2); border: none; border-top: 1px solid var(--border); padding: .8rem; cursor: pointer; color: var(--muted); transition: all .2s; display: flex; align-items: center; justify-content: center; width: 100%; }
|
|
1233
|
+
#sidebarToggle:hover { background: var(--border); color: var(--accent); }
|
|
1234
|
+
#sidebarToggle svg { display: block; }
|
|
1235
|
+
#sidebarToggle .chevron-right { display: none; }
|
|
1096
1236
|
.sidebar a { display: flex; align-items: center; gap: .6rem; padding: .55rem 1rem; font-size: .8rem; color: var(--muted); cursor: pointer; border-left: 3px solid transparent; transition: all .12s; user-select: none; }
|
|
1097
1237
|
.sidebar a:hover { background: var(--surface2); color: var(--text); }
|
|
1098
1238
|
.sidebar a.active { color: var(--accent); border-left-color: var(--accent); background: rgba(45,212,167,.08); }
|
|
1099
|
-
.sidebar .nav-icon {
|
|
1239
|
+
.sidebar .nav-icon { width: 20px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
|
|
1240
|
+
.sidebar .nav-icon svg { display: block; }
|
|
1100
1241
|
.sidebar .sep { height: 1px; background: var(--border); margin: .5rem 1rem; }
|
|
1101
1242
|
.main { flex: 1; overflow-y: auto; padding: 0; }
|
|
1102
1243
|
.section-content { display: none; padding: 1.2rem 1.5rem; } .section-content.active { display: block; }
|
|
@@ -1188,6 +1329,9 @@ tr.clickable { cursor: pointer; } tr.clickable:hover { background: var(--table-h
|
|
|
1188
1329
|
.ann-mitigates { background: #1a3a1a; color: #3fb950; } .ann-accepts { background: #3a3a1a; color: #d29922; }
|
|
1189
1330
|
.ann-transfers { background: #2a1a3a; color: #bc8cff; } .ann-flow { background: #2a2a2a; color: #8b949e; }
|
|
1190
1331
|
.ann-boundary { background: #2a1a3a; color: #bc8cff; } .ann-data { background: #3a2a1a; color: #db6d28; }
|
|
1332
|
+
.ann-handles { background: #3a2a1a; color: #db6d28; } .ann-validates { background: #1a3a1a; color: #3fb950; }
|
|
1333
|
+
.ann-owns { background: #1c3a5e; color: #58a6ff; } .ann-audit { background: #3a3a1a; color: #d29922; }
|
|
1334
|
+
.ann-assumes { background: #3a3a1a; color: #d29922; } .ann-shield { background: #2a2a2a; color: #8b949e; }
|
|
1191
1335
|
.ann-comment { background: var(--surface2); color: var(--muted); border: 1px solid var(--border); }
|
|
1192
1336
|
|
|
1193
1337
|
/* ── File Cards (Code Browser) ── */
|
|
@@ -1237,18 +1381,14 @@ tr.clickable { cursor: pointer; } tr.clickable:hover { background: var(--table-h
|
|
|
1237
1381
|
.diagram-tab.active { color: var(--accent); border-bottom-color: var(--accent); }
|
|
1238
1382
|
.diagram-panel { display: none; } .diagram-panel.active { display: block; }
|
|
1239
1383
|
|
|
1240
|
-
/* ── AI Analysis
|
|
1241
|
-
.ai-analysis-
|
|
1242
|
-
.
|
|
1243
|
-
.
|
|
1244
|
-
.
|
|
1245
|
-
.
|
|
1246
|
-
.
|
|
1247
|
-
.ai-analysis-
|
|
1248
|
-
.ai-analysis-item.active { background: rgba(45,212,167,.12); border-color: var(--accent); }
|
|
1249
|
-
.ai-analysis-item .aai-type { font-weight: 600; color: var(--accent); text-transform: capitalize; }
|
|
1250
|
-
.ai-analysis-item .aai-date { color: var(--muted); font-size: 0.72rem; margin-top: 0.2rem; }
|
|
1251
|
-
.ai-analysis-item .aai-model { color: var(--text-dim); font-size: 0.68rem; margin-top: 0.15rem; font-family: var(--font-mono); }
|
|
1384
|
+
/* ── AI Analysis Controls ── */
|
|
1385
|
+
.ai-analysis-controls { display: flex; align-items: center; gap: 0.75rem; margin: 0.75rem 0 1.25rem; }
|
|
1386
|
+
.report-selector-label { font-weight: 600; font-size: 0.88rem; color: var(--text); }
|
|
1387
|
+
.report-selector { flex: 1; max-width: 600px; padding: 0.5rem 0.75rem; font-size: 0.88rem; font-family: var(--font-base); background: var(--surface2); color: var(--text); border: 1px solid var(--border); border-radius: 6px; cursor: pointer; transition: border-color 0.15s, background 0.15s; }
|
|
1388
|
+
.report-selector:hover { background: var(--surface3); border-color: var(--accent); }
|
|
1389
|
+
.report-selector:focus { outline: none; border-color: var(--accent); box-shadow: 0 0 0 3px rgba(45,212,167,0.1); }
|
|
1390
|
+
.report-selector option { background: var(--surface); color: var(--text); padding: 0.5rem; }
|
|
1391
|
+
.ai-analysis-main { margin-top: 0.5rem; }
|
|
1252
1392
|
.md-content h1 { font-size: 1.4rem; font-weight: 700; margin: 1.2rem 0 .6rem; color: var(--text); }
|
|
1253
1393
|
.md-content h2 { font-size: 1.15rem; font-weight: 600; margin: 1rem 0 .5rem; color: var(--text); border-bottom: 1px solid var(--border); padding-bottom: .3rem; }
|
|
1254
1394
|
.md-content h3 { font-size: 1rem; font-weight: 600; margin: .8rem 0 .4rem; color: var(--text); }
|
|
@@ -1266,9 +1406,9 @@ tr.clickable { cursor: pointer; } tr.clickable:hover { background: var(--table-h
|
|
|
1266
1406
|
|
|
1267
1407
|
/* ── Responsive ── */
|
|
1268
1408
|
@media (max-width: 768px) {
|
|
1269
|
-
.sidebar { width: 50px; min-width: 50px; } .sidebar
|
|
1409
|
+
.sidebar { width: 50px; min-width: 50px; } .sidebar .nav-text { display: none; }
|
|
1270
1410
|
.topnav .tn-stat { display: none; }
|
|
1271
1411
|
}
|
|
1272
|
-
@media print { .topnav, .sidebar { display: none; } .main { margin: 0; } .layout { display: block; } #themeToggle { display: none; } }
|
|
1412
|
+
@media print { .topnav, .sidebar, #sidebarToggle { display: none; } .main { margin: 0; } .layout { display: block; } #themeToggle { display: none; } }
|
|
1273
1413
|
`;
|
|
1274
1414
|
//# sourceMappingURL=generate.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../../src/dashboard/generate.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../../src/dashboard/generate.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* GuardLink Dashboard — Self-contained HTML threat model dashboard.
|
|
3
|
+
*
|
|
4
|
+
* @exposes #dashboard to #xss [high] cwe:CWE-79 -- "Generates HTML with threat model data"
|
|
5
|
+
* @mitigates #dashboard against #xss using #output-encoding -- "esc() function encodes all interpolated values"
|
|
6
|
+
* @flows ThreatModel -> #dashboard via generateDashboardHTML -- "Model to HTML transformation"
|
|
7
|
+
* @comment -- "Self-contained HTML; no external data injection after generation"
|
|
3
8
|
*/
|
|
4
9
|
export { generateDashboardHTML } from './generate.js';
|
|
5
10
|
export { computeStats, computeSeverity, computeExposures, computeAssetHeatmap } from './data.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/dashboard/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/dashboard/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AACjG,OAAO,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC"}
|
package/dist/dashboard/index.js
CHANGED
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* GuardLink Dashboard — Self-contained HTML threat model dashboard.
|
|
3
|
+
*
|
|
4
|
+
* @exposes #dashboard to #xss [high] cwe:CWE-79 -- "Generates HTML with threat model data"
|
|
5
|
+
* @mitigates #dashboard against #xss using #output-encoding -- "esc() function encodes all interpolated values"
|
|
6
|
+
* @flows ThreatModel -> #dashboard via generateDashboardHTML -- "Model to HTML transformation"
|
|
7
|
+
* @comment -- "Self-contained HTML; no external data injection after generation"
|
|
3
8
|
*/
|
|
4
9
|
export { generateDashboardHTML } from './generate.js';
|
|
5
10
|
export { computeStats, computeSeverity, computeExposures, computeAssetHeatmap } from './data.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/dashboard/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/dashboard/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AACjG,OAAO,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC"}
|
package/dist/diff/git.d.ts
CHANGED
|
@@ -3,13 +3,16 @@
|
|
|
3
3
|
* Resolves git refs to threat models by checking out files at a given commit
|
|
4
4
|
* and parsing them in a temp directory.
|
|
5
5
|
*
|
|
6
|
-
* @exposes #diff to #cmd-injection [
|
|
7
|
-
* @
|
|
8
|
-
* @
|
|
9
|
-
* @mitigates #diff against #
|
|
10
|
-
* @
|
|
11
|
-
* @
|
|
12
|
-
* @
|
|
6
|
+
* @exposes #diff to #cmd-injection [high] cwe:CWE-78 -- "execSync runs git commands with ref argument"
|
|
7
|
+
* @mitigates #diff against #cmd-injection using #input-sanitize -- "rev-parse validates ref exists before use in other commands"
|
|
8
|
+
* @exposes #diff to #arbitrary-write [medium] cwe:CWE-73 -- "writeFileSync creates files in temp directory"
|
|
9
|
+
* @mitigates #diff against #arbitrary-write using #path-validation -- "mkdtempSync creates isolated temp dir; rmSync cleans up"
|
|
10
|
+
* @exposes #diff to #path-traversal [medium] cwe:CWE-22 -- "git show extracts files based on ls-tree output"
|
|
11
|
+
* @mitigates #diff against #path-traversal using #glob-filtering -- "Files constrained to relevantFiles from git ls-tree"
|
|
12
|
+
* @flows GitRef -> #diff via execSync -- "Git command execution"
|
|
13
|
+
* @flows #diff -> TempDir via writeFileSync -- "Extracted file writes"
|
|
14
|
+
* @flows #diff -> ThreatModel via parseProject -- "Parsed model output"
|
|
15
|
+
* @boundary #diff and GitRepo (#git-boundary) -- "Trust boundary at git command execution"
|
|
13
16
|
*/
|
|
14
17
|
import type { ThreatModel } from '../types/index.js';
|
|
15
18
|
/**
|
package/dist/diff/git.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../src/diff/git.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../src/diff/git.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAOH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD;;;GAGG;AACH,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAoDjG;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAMlD"}
|
package/dist/diff/git.js
CHANGED
|
@@ -3,13 +3,16 @@
|
|
|
3
3
|
* Resolves git refs to threat models by checking out files at a given commit
|
|
4
4
|
* and parsing them in a temp directory.
|
|
5
5
|
*
|
|
6
|
-
* @exposes #diff to #cmd-injection [
|
|
7
|
-
* @
|
|
8
|
-
* @
|
|
9
|
-
* @mitigates #diff against #
|
|
10
|
-
* @
|
|
11
|
-
* @
|
|
12
|
-
* @
|
|
6
|
+
* @exposes #diff to #cmd-injection [high] cwe:CWE-78 -- "execSync runs git commands with ref argument"
|
|
7
|
+
* @mitigates #diff against #cmd-injection using #input-sanitize -- "rev-parse validates ref exists before use in other commands"
|
|
8
|
+
* @exposes #diff to #arbitrary-write [medium] cwe:CWE-73 -- "writeFileSync creates files in temp directory"
|
|
9
|
+
* @mitigates #diff against #arbitrary-write using #path-validation -- "mkdtempSync creates isolated temp dir; rmSync cleans up"
|
|
10
|
+
* @exposes #diff to #path-traversal [medium] cwe:CWE-22 -- "git show extracts files based on ls-tree output"
|
|
11
|
+
* @mitigates #diff against #path-traversal using #glob-filtering -- "Files constrained to relevantFiles from git ls-tree"
|
|
12
|
+
* @flows GitRef -> #diff via execSync -- "Git command execution"
|
|
13
|
+
* @flows #diff -> TempDir via writeFileSync -- "Extracted file writes"
|
|
14
|
+
* @flows #diff -> ThreatModel via parseProject -- "Parsed model output"
|
|
15
|
+
* @boundary #diff and GitRepo (#git-boundary) -- "Trust boundary at git command execution"
|
|
13
16
|
*/
|
|
14
17
|
import { execSync } from 'node:child_process';
|
|
15
18
|
import { mkdtempSync, writeFileSync, rmSync, mkdirSync } from 'node:fs';
|