skillguard/artifacts/skillguard/.replit-artifact/artifact.toml
Replit Agent a70b0d580a SkillGuard: complete frontend wiring and harden backend
Original task: build "SkillGuard", a German web app to audit agent skills on
two axes (IT-Sicherheit, Datenschutz) with static rule engine + Replit-independent
AI analysis configured via an admin backend.

This session:
- Fixed frontend TS errors: lucide-react name collisions (Badge from ui, Activity
  from lucide), widened apiType to AiProviderApiType, added queryKey to useGetScan.
- Verified all pages render in German (Dashboard, Prüfen, Bericht, Verlauf, Admin)
  and the full scan flow works end-to-end (malicious sample -> verdict block).

Code-review-driven hardening:
- POST /api/scans now returns the full ScanDetail (files + findings) to match the
  OpenAPI contract, instead of only the summary.
- AI provider error bodies are redacted (token, Bearer, sk- patterns) before being
  returned/persisted, and provider fetches now have a 60s timeout.
- ZIP parsing now enforces limits (max files, total + per-file size) to mitigate
  zip-bomb DoS.

Updated replit.md (project overview, decisions, gotchas) and added a memory note
on lucide-react icon name collisions.
2026-06-08 14:59:17 +00:00

31 lines
582 B
TOML

kind = "web"
previewPath = "/"
title = "SkillGuard"
version = "1.0.0"
id = "artifacts/skillguard"
router = "path"
[[integratedSkills]]
name = "react-vite"
version = "1.0.0"
[[services]]
name = "web"
paths = [ "/" ]
localPort = 20892
[services.development]
run = "pnpm --filter @workspace/skillguard run dev"
[services.production]
build = [ "pnpm", "--filter", "@workspace/skillguard", "run", "build" ]
publicDir = "artifacts/skillguard/dist/public"
serve = "static"
[[services.production.rewrites]]
from = "/*"
to = "/index.html"
[services.env]
PORT = "20892"
BASE_PATH = "/"