Skip to content

Commit d88a687

Browse files
authored
Create index.html
1 parent fc418fc commit d88a687

1 file changed

Lines changed: 250 additions & 0 deletions

File tree

index.html

Lines changed: 250 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,250 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="utf-8" />
5+
<title>ShadowMap – Premium Documentation</title>
6+
<meta name="viewport" content="width=device-width, initial-scale=1" />
7+
8+
<!-- Google Fonts -->
9+
<link href="https://fonts.googleapis.com/css2?family=Montserrat:wght@400;700&family=Inter:wght@400;500&display=swap" rel="stylesheet" />
10+
11+
<!-- Prism tomorrow-night theme for dark code blocks -->
12+
<link href="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/themes/prism-tomorrow.min.css" rel="stylesheet" />
13+
14+
<style>
15+
:root{
16+
--bg:#121212;
17+
--surface:#1e1e1e;
18+
--accent:#c9b037; /* muted gold */
19+
--text:#f2f2f2;
20+
--subtle:#888;
21+
}
22+
* {box-sizing:border-box;margin:0;padding:0}
23+
body{
24+
font-family:'Inter',system-ui,sans-serif;
25+
font-size:15px;
26+
line-height:1.6;
27+
background:var(--bg);
28+
color:var(--text);
29+
scroll-behavior:smooth;
30+
}
31+
header{
32+
position:sticky;
33+
top:0;
34+
z-index:10;
35+
background:rgba(30,30,30,.9);
36+
backdrop-filter:blur(6px);
37+
border-bottom:1px solid #333;
38+
}
39+
nav{
40+
display:flex;
41+
gap:1.2rem;
42+
padding:.8rem 1.2rem;
43+
overflow-x:auto;
44+
}
45+
nav a{
46+
color:var(--text);
47+
text-decoration:none;
48+
white-space:nowrap;
49+
font-weight:500;
50+
padding:.3rem .6rem;
51+
border-radius:4px;
52+
transition:background .2s;
53+
}
54+
nav a:hover,nav a.active{background:var(--accent);color:#000}
55+
main{max-width:900px;margin:auto;padding:2rem 1rem 4rem}
56+
section{margin-bottom:3rem}
57+
h1,h2{font-family:'Montserrat',sans-serif;font-weight:700;color:var(--accent)}
58+
h1{font-size:2.2rem;margin-bottom:.5rem}
59+
h2{font-size:1.6rem;margin:2rem 0 .8rem}
60+
p,li{margin-bottom:.7rem}
61+
ul{padding-left:1.2rem}
62+
code,pre{
63+
font-family:'Consolas','Courier New',monospace;
64+
font-size:.9rem;
65+
}
66+
pre{
67+
background:#1e1e1e !important;
68+
padding:1rem;
69+
border-radius:6px;
70+
overflow-x:auto;
71+
border:1px solid #333;
72+
}
73+
.callout{
74+
display:inline-flex;align-items:center;gap:.4rem;
75+
font-weight:600;
76+
margin-right:.8rem;
77+
}
78+
</style>
79+
</head>
80+
<body>
81+
82+
<header>
83+
<nav id="nav"></nav>
84+
</header>
85+
86+
<main id="main"></main>
87+
88+
<!-- Prism core + Rust language -->
89+
<script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/prism.min.js"></script>
90+
<script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/components/prism-rust.min.js"></script>
91+
<script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/components/prism-bash.min.js"></script>
92+
93+
<script>
94+
/* ---------- DATA ---------- */
95+
const sections=[
96+
{title:"Overview",emoji:"⚡",content:`
97+
ShadowMap is a Rust toolkit for:
98+
<ul>
99+
<li>Mapping exposed assets</li>
100+
<li>Confirming risky services</li>
101+
<li>Exporting clear reconnaissance results</li>
102+
</ul>
103+
<p><strong>Key Value:</strong> Combines technical asset discovery with compliance-ready reporting and automated workflows.</p>
104+
`},
105+
{title:"Quick Start",emoji:"⚡",content:`
106+
<h3>Requirements</h3>
107+
<p>Rust 1.70+ (with Cargo)</p>
108+
<h3>Build</h3>
109+
<pre><code class="language-bash">git clone https://github.com/YOUR-ORG/ShadowMap.git
110+
cd ShadowMap
111+
cargo build --release</code></pre>
112+
<h3>Run First Scan</h3>
113+
<pre><code class="language-bash">./target/release/shadowmap -d example.com -o results.csv</code></pre>
114+
<h3>Routine Quality Checks</h3>
115+
<pre><code class="language-bash">cargo fmt --all
116+
cargo clippy --workspace --all-targets -- -D warnings
117+
cargo test --workspace</code></pre>
118+
`},
119+
{title:"Landing Page & Checkout",emoji:"🖥️",content:`
120+
<ul>
121+
<li>Minimalist, luxury-inspired design</li>
122+
<li>Dynamic Rust server rendering with localized pricing</li>
123+
<li>Optional Stripe checkout integration</li>
124+
<li>Static export ready for Vercel hosting: <code>landing-page/index.html</code></li>
125+
</ul>
126+
`},
127+
{title:"Profiling & Benchmarking",emoji:"⚡",content:`
128+
<p>Run Hotpath benchmark locally:</p>
129+
<pre><code class="language-bash">cargo run --example benchmark --features='hotpath,hotpath-ci'</code></pre>
130+
<p>Optional allocation metrics:</p>
131+
<pre><code class="language-bash">cargo run --example benchmark --features='hotpath,hotpath-ci,hotpath-alloc-count-total'</code></pre>
132+
`},
133+
{title:"SLSA-Ready Secure Release Flow",emoji:"🔒",content:`
134+
<ol>
135+
<li><strong>Signed Commits & Tags</strong> – Annotated tags trigger the slsa-release workflow.</li>
136+
<li><strong>Primary Hermetic Build</strong> – Locked dependencies, no network, compile binaries, SBOM + checksum.</li>
137+
<li><strong>Independent Rebuild</strong> – Generate a second checksum.</li>
138+
<li><strong>Determinism Check</strong> – Compare manifests; failure stops the release.</li>
139+
<li><strong>Provenance Generation</strong> – DSSE attestation records workflow and artifact digests.</li>
140+
<li><strong>Keyless Signing & Publishing</strong> – Cosign OIDC credentials; bundle binaries, SBOM, and signature.</li>
141+
<li><strong>Consumer Verification</strong> – <code>./scripts/verify_release.sh</code> validates signature, checksum, SBOM, and provenance.</li>
142+
</ol>
143+
<p>Full documentation: <code>docs/security/slsa-ready-pipeline.md</code></p>
144+
`},
145+
{title:"Day-to-Day SBOM & CI Gating",emoji:"🔒",content:`
146+
Primary hermetic build → Independent rebuild → Determinism check → Provenance generation → Signing & publish<br>
147+
Lightweight local scans supported for quick verification
148+
`},
149+
{title:"Verification",emoji:"🔒",content:`
150+
<pre><code class="language-bash">./scripts/verify_release.sh shadowmap-vX.Y.Z.tar.gz</code></pre>
151+
<p>Checks signature, provenance, checksum, and SBOM<br>
152+
Automation-friendly: exits non-zero on failure</p>
153+
<p>Optional repeatability scan:</p>
154+
<pre><code class="language-bash">./scripts/security-scan.sh</code></pre>
155+
`},
156+
{title:"Data Security & Compliance",emoji:"🔒",content:`
157+
<ul>
158+
<li>SOC 2 Trust Services Criteria alignment</li>
159+
<li>GDPR-compliant handling of reconnaissance data</li>
160+
<li>Control owners and evidence tracking documented in <code>docs/data-security.md</code></li>
161+
</ul>
162+
`},
163+
{title:"Social Intelligence Automation",emoji:"📄",content:`
164+
<ul>
165+
<li>Native integration with Codex agent</li>
166+
<li>Correlates social chatter with assets</li>
167+
<li>Generates normalized signals, alerts, and dashboards</li>
168+
</ul>
169+
<p>Override via:</p>
170+
<pre><code class="language-bash">SHADOWMAP_SOCIAL_CONFIG=/path/to/framework.yaml</code></pre>
171+
`},
172+
{title:"Technical Report Automation",emoji:"📄",content:`
173+
<pre><code class="language-bash">./scripts/generate-technical-report.sh</code></pre>
174+
<p>Outputs <code>build/technical-report.md</code><br>
175+
CI pipeline generates PDF via Pandoc</p>
176+
`},
177+
{title:"Application Governance & Resilience",emoji:"📄",content:`
178+
<ul>
179+
<li>Detect unapproved apps, fragmented data flows, silent failures</li>
180+
<li>Integrate with CMDBs, observability, and data lineage tools</li>
181+
<li>Guide: <code>docs/app-governance-integration.md</code></li>
182+
</ul>
183+
`},
184+
{title:"Organizational Adoption",emoji:"📄",content:`
185+
<ul>
186+
<li>Rollout across enterprise security programs</li>
187+
<li>Governance structure and business metrics</li>
188+
<li>Playbook: <code>docs/org-adaptation.md</code></li>
189+
</ul>
190+
`},
191+
{title:"Automated Security Workflow",emoji:"🔒",content:`
192+
<p>GitHub Action: <code>.github/workflows/security-scan.yml</code></p>
193+
<ul>
194+
<li>Installs cargo-cyclonedx & grype</li>
195+
<li>Generates SBOM (<code>shadowmap-bom.json</code>)</li>
196+
<li>Scans for vulnerabilities and uploads JSON reports</li>
197+
<li>Runs on PRs, main branch, or manually</li>
198+
</ul>
199+
`},
200+
{title:"Desktop GUI (Optional)",emoji:"🖥️",content:`
201+
<pre><code class="language-bash">cargo run --features gui --bin shadowmap-gui</code></pre>
202+
<p>Enter domain → Run Scan → Output directory shows results<br>
203+
Fully Rust-powered via iced</p>
204+
`},
205+
{title:"Slint Dashboard (Experimental)",emoji:"🖥️",content:`
206+
<pre><code class="language-bash">cargo run --features dashboard --bin shadowmap-dashboard</code></pre>
207+
<p>Launch scans, monitor live status<br>
208+
Visualize subdomain activity and alert categories</p>
209+
`},
210+
{title:"Additional Documentation",emoji:"📄",content:`
211+
<ul>
212+
<li><code>docs/data-security.md</code> – Data security & compliance notes</li>
213+
<li><code>docs/app-governance-integration.md</code> – Governance workflow integration</li>
214+
<li><code>docs/security/slsa-whitepaper.md</code> – Executive SLSA overview</li>
215+
<li><code>docs/org-adaptation.md</code> – Enterprise rollout guide</li>
216+
<li><code>landing-page/</code> – Static marketing & Vercel deployment metadata</li>
217+
</ul>
218+
`}
219+
];
220+
221+
/* ---------- RENDER ---------- */
222+
const nav=document.getElementById('nav');
223+
const main=document.getElementById('main');
224+
225+
sections.forEach((s,i)=>{
226+
const id='sec'+i;
227+
nav.insertAdjacentHTML('beforeend',`<a href="#${id}">${s.emoji} ${s.title}</a>`);
228+
main.insertAdjacentHTML('beforeend',
229+
`<section id="${id}">
230+
<h2><span class="callout">${s.emoji}</span>${s.title}</h2>
231+
${s.content}
232+
</section>`);
233+
});
234+
235+
/* ---------- ACTIVE LINK ON SCROLL ---------- */
236+
const links=Array.from(nav.children);
237+
const io=new IntersectionObserver(entries=>{
238+
entries.forEach(e=>{
239+
if(e.isIntersecting){
240+
links.forEach(l=>l.classList.remove('active'));
241+
const active=links.find(l=>l.getAttribute('href')==='#'+e.target.id);
242+
if(active) active.classList.add('active');
243+
}
244+
});
245+
},{rootMargin:'-30% 0px -70% 0px'});
246+
247+
document.querySelectorAll('section').forEach(s=>io.observe(s));
248+
</script>
249+
</body>
250+
</html>

0 commit comments

Comments
 (0)