iri-shield 1.2.4 → 1.2.5
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/package.json +1 -1
- package/src/dashboard.js +83 -21
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "iri-shield",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.5",
|
|
4
4
|
"description": "Enterprise Express.js security middleware — explainable risk scoring, multi-signal identity profiling, behavioural anomaly detection, attack correlation, sensitive-data redaction, and dashboard monitoring.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"iri-shield",
|
package/src/dashboard.js
CHANGED
|
@@ -1479,31 +1479,93 @@ function renderLogin(config, failed) {
|
|
|
1479
1479
|
<head>
|
|
1480
1480
|
<meta charset="utf-8" />
|
|
1481
1481
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
1482
|
-
<title>iri-shield
|
|
1482
|
+
<title>iri-shield - Dashboard Login</title>
|
|
1483
1483
|
<script src="https://cdn.tailwindcss.com"></script>
|
|
1484
|
+
<script>
|
|
1485
|
+
tailwind.config = {
|
|
1486
|
+
theme: {
|
|
1487
|
+
extend: {
|
|
1488
|
+
fontFamily: {
|
|
1489
|
+
sans: ['Inter', 'ui-sans-serif', 'system-ui', 'sans-serif'],
|
|
1490
|
+
display: ['Syne', 'Inter', 'ui-sans-serif', 'system-ui', 'sans-serif'],
|
|
1491
|
+
mono: ['JetBrains Mono', 'ui-monospace', 'SFMono-Regular', 'monospace']
|
|
1492
|
+
},
|
|
1493
|
+
colors: {
|
|
1494
|
+
paper: '#fbfbf8',
|
|
1495
|
+
line: '#e5e7eb',
|
|
1496
|
+
cobalt: '#d81d87',
|
|
1497
|
+
rose: '#be123c',
|
|
1498
|
+
pine: '#047857'
|
|
1499
|
+
}
|
|
1500
|
+
}
|
|
1501
|
+
}
|
|
1502
|
+
};
|
|
1503
|
+
</script>
|
|
1504
|
+
<link rel="preconnect" href="https://fonts.googleapis.com">
|
|
1505
|
+
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
|
1506
|
+
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500;600&family=Syne:wght@600;700;800&display=swap" rel="stylesheet">
|
|
1484
1507
|
</head>
|
|
1485
|
-
<body class="min-h-screen bg-
|
|
1486
|
-
<main class="
|
|
1487
|
-
<
|
|
1488
|
-
<div class="
|
|
1489
|
-
<div class="
|
|
1490
|
-
<
|
|
1491
|
-
|
|
1492
|
-
|
|
1508
|
+
<body class="min-h-screen bg-paper text-slate-950 antialiased">
|
|
1509
|
+
<main class="grid min-h-screen grid-cols-1 lg:grid-cols-[0.58fr_0.42fr]">
|
|
1510
|
+
<section class="flex items-center border-b border-line bg-white px-6 py-12 lg:border-b-0 lg:border-r lg:px-12">
|
|
1511
|
+
<div class="mx-auto w-full max-w-3xl">
|
|
1512
|
+
<div class="mb-8 flex items-center gap-3">
|
|
1513
|
+
<div class="grid h-11 w-11 place-items-center rounded-md bg-cobalt text-sm font-black text-white shadow-sm">IS</div>
|
|
1514
|
+
<div>
|
|
1515
|
+
<p class="text-sm font-extrabold">iri-shield</p>
|
|
1516
|
+
<p class="text-[11px] font-bold uppercase tracking-[0.18em] text-slate-500">Security dashboard</p>
|
|
1517
|
+
</div>
|
|
1518
|
+
</div>
|
|
1519
|
+
<!-- <p class="mb-5 inline-flex rounded-full border border-blue-200 bg-blue-50 px-3 py-1 text-xs font-bold uppercase tracking-[0.18em] text-cobalt">Research telemetry console</p> -->
|
|
1520
|
+
<h1 class="font-display text-5xl font-extrabold leading-[0.98] tracking-normal md:text-6xl">Monitor API threats with explainable decisions.</h1>
|
|
1521
|
+
<p class="mt-6 max-w-2xl text-lg leading-8 text-slate-600">Sign in to inspect alerts, event traces, identity drift, blocked IPs, storage health, and redaction activity generated by the Iri-Shield middleware.</p>
|
|
1522
|
+
<div class="mt-8 grid grid-cols-1 gap-3 sm:grid-cols-3">
|
|
1523
|
+
<div class="rounded-lg border border-line bg-slate-50 p-4">
|
|
1524
|
+
<p class="font-mono text-xs font-bold text-cobalt">01</p>
|
|
1525
|
+
<p class="mt-2 text-sm font-extrabold">Detect</p>
|
|
1526
|
+
<p class="mt-1 text-xs leading-5 text-slate-500">Rules, anomalies, and attack sequences.</p>
|
|
1527
|
+
</div>
|
|
1528
|
+
<div class="rounded-lg border border-line bg-slate-50 p-4">
|
|
1529
|
+
<p class="font-mono text-xs font-bold text-cobalt">02</p>
|
|
1530
|
+
<p class="mt-2 text-sm font-extrabold">Explain</p>
|
|
1531
|
+
<p class="mt-1 text-xs leading-5 text-slate-500">Risk scores with evidence breakdowns.</p>
|
|
1532
|
+
</div>
|
|
1533
|
+
<div class="rounded-lg border border-line bg-slate-50 p-4">
|
|
1534
|
+
<p class="font-mono text-xs font-bold text-cobalt">03</p>
|
|
1535
|
+
<p class="mt-2 text-sm font-extrabold">Mitigate</p>
|
|
1536
|
+
<p class="mt-1 text-xs leading-5 text-slate-500">Alerts, blocking, and redaction.</p>
|
|
1537
|
+
</div>
|
|
1493
1538
|
</div>
|
|
1494
|
-
<h1 class="text-2xl font-bold text-gray-900">iri-shield</h1>
|
|
1495
|
-
<p class="text-sm text-gray-500 mt-1">Enterprise Security Dashboard</p>
|
|
1496
1539
|
</div>
|
|
1497
|
-
|
|
1498
|
-
|
|
1499
|
-
|
|
1500
|
-
|
|
1501
|
-
<
|
|
1502
|
-
|
|
1503
|
-
|
|
1504
|
-
|
|
1505
|
-
|
|
1506
|
-
|
|
1540
|
+
</section>
|
|
1541
|
+
|
|
1542
|
+
<section class="flex items-center px-6 py-12 lg:px-12">
|
|
1543
|
+
<div class="mx-auto w-full max-w-md">
|
|
1544
|
+
<div class="rounded-lg border border-line bg-white p-6 shadow-xl shadow-slate-200/60">
|
|
1545
|
+
<div class="mb-6">
|
|
1546
|
+
<p class="text-xs font-bold uppercase tracking-[0.18em] text-slate-500">Authenticated access</p>
|
|
1547
|
+
<h2 class="mt-2 font-display text-3xl font-bold tracking-normal">Dashboard sign in</h2>
|
|
1548
|
+
<p class="mt-2 text-sm leading-6 text-slate-600">Use the configured administrator credentials for ${escapeHtml(config.appName || 'iri-shield')}.</p>
|
|
1549
|
+
</div>
|
|
1550
|
+
${failed ? '<div class="mb-4 rounded-md border border-red-200 bg-red-50 px-3 py-2 text-sm font-semibold text-red-700">Invalid username or password.</div>' : ''}
|
|
1551
|
+
<form method="post" action="${escapeHtml(config.dashboard?.path || '/iri-shield')}/login" class="space-y-4">
|
|
1552
|
+
<label class="block">
|
|
1553
|
+
<span class="mb-1 block text-sm font-bold text-slate-700">Username</span>
|
|
1554
|
+
<input class="w-full rounded-md border border-line bg-white px-3 py-2.5 text-sm outline-none transition focus:border-cobalt focus:ring-4 focus:ring-blue-100" id="username" name="username" autocomplete="username" required />
|
|
1555
|
+
</label>
|
|
1556
|
+
<label class="block">
|
|
1557
|
+
<span class="mb-1 block text-sm font-bold text-slate-700">Password</span>
|
|
1558
|
+
<input class="w-full rounded-md border border-line bg-white px-3 py-2.5 text-sm outline-none transition focus:border-cobalt focus:ring-4 focus:ring-blue-100" id="password" name="password" type="password" autocomplete="current-password" required />
|
|
1559
|
+
</label>
|
|
1560
|
+
<button class="w-full rounded-md bg-cobalt px-4 py-3 text-sm font-extrabold text-white shadow-sm transition hover:bg-blue-700" type="submit">Sign in to dashboard</button>
|
|
1561
|
+
</form>
|
|
1562
|
+
</div>
|
|
1563
|
+
<div class="mt-4 rounded-lg border border-dashed border-slate-300 bg-slate-50 p-4">
|
|
1564
|
+
<p class="text-xs font-bold uppercase tracking-[0.18em] text-slate-500">Media slot</p>
|
|
1565
|
+
<p class="mt-2 text-sm leading-6 text-slate-600">Optional future visual: a compact looping animation of alert cards entering the dashboard, risk scores rising, and sensitive fields being masked.</p>
|
|
1566
|
+
</div>
|
|
1567
|
+
</div>
|
|
1568
|
+
</section>
|
|
1507
1569
|
</main>
|
|
1508
1570
|
</body>
|
|
1509
1571
|
</html>`;
|