fix: D3FEND ontology-based import, template management UX, and branding

- Rewrite D3FEND import to use tactic-level APIs for reliable technique
  fetching with proper ontology IRIs, descriptions, and tactic assignments
- Fix D3FEND technique URLs to use canonical IRI (no more 404s)
- All 255 D3FEND techniques now have descriptions from the official API
- Change Deactivate button color to red in template management table
- Add custom Aegis logo and favicon replacing default Vite assets
- Remove unused old API parsing code and clean up fallback list
This commit is contained in:
2026-02-10 15:53:24 +01:00
parent c2e9c687f4
commit a3f83c316a
8 changed files with 257 additions and 378 deletions

View File

@@ -2,7 +2,6 @@ import { NavLink } from "react-router-dom";
import { useState } from "react";
import {
LayoutDashboard,
Shield,
FlaskConical,
BookOpen,
BarChart3,
@@ -132,8 +131,8 @@ export default function Sidebar() {
return (
<aside className="flex h-screen w-60 flex-col border-r border-gray-800 bg-gray-900">
{/* Logo */}
<div className="flex h-16 items-center gap-2 px-5">
<Shield className="h-7 w-7 text-cyan-400" />
<div className="flex h-16 items-center gap-3 px-5">
<img src="/aegis-logo.svg" alt="Aegis" className="h-8 w-8" />
<span className="text-lg font-bold tracking-wide text-white">
Aegis
</span>

View File

@@ -1,6 +1,5 @@
import { useState, type FormEvent } from "react";
import { useNavigate } from "react-router-dom";
import { Shield } from "lucide-react";
import { useAuth } from "../context/AuthContext";
export default function LoginPage() {
@@ -37,8 +36,8 @@ export default function LoginPage() {
<div className="flex min-h-screen items-center justify-center bg-gray-950 px-4">
<div className="w-full max-w-sm space-y-8">
{/* Logo */}
<div className="flex flex-col items-center gap-2">
<Shield className="h-12 w-12 text-cyan-400" />
<div className="flex flex-col items-center gap-3">
<img src="/aegis-logo.svg" alt="Aegis" className="h-16 w-16" />
<h1 className="text-2xl font-bold tracking-wide text-white">
Aegis
</h1>

View File

@@ -516,7 +516,7 @@ export default function SystemPage() {
disabled={toggleActiveMutation.isPending}
className={`flex items-center gap-1 text-xs font-medium transition-colors ${
tpl.is_active
? "text-yellow-400 hover:text-yellow-300"
? "text-red-400 hover:text-red-300"
: "text-green-400 hover:text-green-300"
}`}
title={tpl.is_active ? "Deactivate" : "Activate"}