Diff -- /var/www/vhosts/3dshawn.com/site1/TEMPLATES/export.html

O Operator
Diff

/var/www/vhosts/3dshawn.com/site1/TEMPLATES/export.html

added on local at 2026-07-11 18:27:48

Added
+91
lines
Removed
-0
lines
Context
0
unchanged
Blobs
from
to a061399f5860
Restore this content →
Unified diff
Naive LCS-based line diff. Additions in emerald, deletions in rose. Both sides decompressed live from BLOB_STORE.
1<div class="page-head">
2 <span class="page-eyebrow"><span class="dot"></span> Compliance</span>
3 <h1 class="page-title">Compliance export</h1>
4 <p class="page-subtitle">Dump every captured file + schema change to CSV over a window you pick. One row per change, with a diff URL and blob SHA so an auditor can independently verify the "before / after" content lives in BLOB_STORE.</p>
5</div>
6
7<div class="dash-grid" style="grid-template-columns:1fr 1fr;margin-bottom:16px">
8 <div class="module glow-teal">
9 <div class="module-head"><div class="left">
10 <div class="module-title">File changes in window</div>
11 <span class="module-subtitle">Every FILE_CHANGES row inside your selected date range.</span>
12 </div></div>
13 <div class="module-body kpi kpi-teal">
14 <div class="num">$file_ct</div>
15 <div class="lbl">Rows in export</div>
16 <div class="sub">Excludes ts-only unless you tick the box</div>
17 </div>
18 </div>
19 <div class="module glow-amber">
20 <div class="module-head"><div class="left">
21 <div class="module-title">Schema changes in window</div>
22 <span class="module-subtitle">Every SCHEMA_CHANGE row inside your selected date range.</span>
23 </div></div>
24 <div class="module-body kpi kpi-amber">
25 <div class="num">$schema_ct</div>
26 <div class="lbl">Rows in export</div>
27 <div class="sub">DDL diffs across all monitored DBs</div>
28 </div>
29 </div>
30</div>
31
32<div class="module glow-emerald">
33 <div class="module-head"><div class="left">
34 <div class="module-icon"><svg viewBox="0 0 24 24" width="14" height="14" fill="none" stroke="currentColor" stroke-width="2"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"/><polyline points="7 10 12 15 17 10"/><line x1="12" y1="15" x2="12" y2="3"/></svg></div>
35 <div class="module-title">Download CSV</div>
36 <span class="module-subtitle">Streamed straight from the DB in 5000-row chunks -- safe on multi-million-row histories.</span>
37 </div></div>
38 <div class="module-body">
39 <form method="get" action="/export.cgi" style="display:flex;flex-direction:column;gap:14px;max-width:640px">
40 <input type="hidden" name="fmt" value="csv">
41
42 <div style="display:flex;gap:12px">
43 <label style="flex:1;display:flex;flex-direction:column;gap:4px">
44 <span class="rb-label">From</span>
45 <input type="date" name="from" value="$from_h"
46 style="background:var(--bg-1);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:8px 12px;font-family:inherit">
47 </label>
48 <label style="flex:1;display:flex;flex-direction:column;gap:4px">
49 <span class="rb-label">To</span>
50 <input type="date" name="to" value="$to_h"
51 style="background:var(--bg-1);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:8px 12px;font-family:inherit">
52 </label>
53 </div>
54
55 <div style="display:flex;gap:12px">
56 <label style="flex:1;display:flex;flex-direction:column;gap:4px">
57 <span class="rb-label">Kind</span>
58 <select name="kind" style="background:var(--bg-1);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:8px 12px">
59 <option value="both" $kind_both_sel>Both</option>
60 <option value="file" $kind_file_sel>File changes only</option>
61 <option value="schema" $kind_schema_sel>Schema changes only</option>
62 </select>
63 </label>
64 <label style="flex:1;display:flex;flex-direction:column;gap:4px">
65 <span class="rb-label">Server</span>
66 <select name="server_id" style="background:var(--bg-1);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:8px 12px">
67 <option value="0">All servers</option>
68 [loop:@servers]
69 <option value="$server_id" $selected>$server_name</option>
70 [/loop]
71 </select>
72 </label>
73 </div>
74
75 <label style="display:flex;align-items:center;gap:8px">
76 <input type="checkbox" name="include_ts_only" value="1" $incl_ts_checked>
77 <span style="font-size:12.5px;color:var(--text-dim)">Include timestamp-only file changes (usually noise -- default excluded)</span>
78 </label>
79
80 <div style="display:flex;gap:8px;justify-content:flex-start;margin-top:6px">
81 <button type="submit" class="tr-chip is-active" style="border:none;padding:8px 20px">Download CSV</button>
82 </div>
83 </form>
84
85 <div style="margin-top:20px;padding-top:16px;border-top:1px solid var(--border);font-size:12px;color:var(--text-dim);line-height:1.7">
86 <strong style="color:var(--text);text-transform:uppercase;letter-spacing:1.2px;font-size:11px">CSV columns</strong><br>
87 <code>change_id, kind, captured_at, server_name, target, status, blob_sha, is_ts_only, diff_url, change_summary</code><br>
88 Auditors can hit <code>diff_url</code> for the full before/after content; <code>blob_sha</code> is the content-addressable pointer into BLOB_STORE for independent verification.
89 </div>
90 </div>
91</div>