mirror of
https://github.com/shankar0123/certctl.git
synced 2026-06-09 00:38:51 +00:00
Implement M5: hardening, input validation, and Vite+React+TS dashboard
Backend hardening: - Fix 6 nginx.go non-constant format string build errors - Add validation.go with hostname, PEM, and enum validators - Apply input validation to all POST/PUT handlers (certificates, agents, CSR, policies, teams, owners, targets, issuers) - Fix unchecked JSON decode in TriggerDeployment handler Frontend (Vite + React + TypeScript): - Migrate from single-file SPA to proper build pipeline - 7 pages: Dashboard, Certificates (list+detail), Agents, Jobs, Notifications, Policies, Audit Trail - TanStack Query for server state with auto-refetch intervals - Certificate detail with version history and renewal trigger - Job cancellation, status/type filtering, expiry countdowns - Reusable components: DataTable, StatusBadge, ErrorState, PageHeader - Dark theme with Tailwind CSS, sidebar nav via React Router Server integration: - Go server serves web/dist/ (Vite output) with SPA fallback - Falls back to web/index.html for legacy mode - .gitignore updated for web/node_modules/ and web/dist/ Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
@tailwind base;
|
||||
@tailwind components;
|
||||
@tailwind utilities;
|
||||
|
||||
@layer base {
|
||||
body {
|
||||
@apply bg-slate-900 text-slate-100 antialiased;
|
||||
}
|
||||
}
|
||||
|
||||
@layer components {
|
||||
.badge {
|
||||
@apply inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium;
|
||||
}
|
||||
.badge-success { @apply bg-emerald-500/10 text-emerald-400 border border-emerald-500/20; }
|
||||
.badge-warning { @apply bg-amber-500/10 text-amber-400 border border-amber-500/20; }
|
||||
.badge-danger { @apply bg-red-500/10 text-red-400 border border-red-500/20; }
|
||||
.badge-info { @apply bg-blue-500/10 text-blue-400 border border-blue-500/20; }
|
||||
.badge-neutral { @apply bg-slate-500/10 text-slate-400 border border-slate-500/20; }
|
||||
|
||||
.card {
|
||||
@apply bg-slate-800 border border-slate-700 rounded-lg;
|
||||
}
|
||||
|
||||
.btn {
|
||||
@apply inline-flex items-center justify-center gap-2 px-4 py-2 rounded-lg text-sm font-medium transition-colors;
|
||||
}
|
||||
.btn-primary { @apply bg-blue-600 hover:bg-blue-500 text-white; }
|
||||
.btn-ghost { @apply hover:bg-slate-700 text-slate-300; }
|
||||
}
|
||||
Reference in New Issue
Block a user