mirror of
https://github.com/prompt-security/clawsec.git
synced 2026-06-13 13:38:03 +03:00
b37162a33d
* feat(i18n): add multilingual wiki scaffolding, language switcher, and translation QA pipeline * docs(readme): adopt picoclaw-style multilingual link bar * fix(i18n): repair localized index links and tighten partial-pair QA * ci(i18n): fail on broken markdown links in README/wiki * ci(i18n): add changed-files mode for markdown link checks * i18n(de): use local Argos MT to fill untranslated German sections * i18n(es,fr): fill untranslated sections via local Argos workflow * i18n(ja): fill untranslated sections with scoped local Argos pass * i18n(ko): fill untranslated sections with scoped local Argos pass * fix(i18n): address review feedback --------- Co-authored-by: David Abutbul <David.a@prompt.security>
7.1 KiB
7.1 KiB
Architektur
• Systemkontext
- Ja. Diese Seite erscheint unter dem
Start HereAbschnitt inINDEX.md. - ClawSec sitzt zwischen vorgelagerten Nachrichtenquellen (NVD + Community-Probleme), GitHub Automation und Laufzeit Agent-Umgebungen.
- Ja. Das Repository veröffentlicht sowohl statische Website-Inhalte als auch unterzeichnete Artefakte, die Laufzeitfähigkeiten vor der Verwendung überprüfen.
- Externe Schauspielergruppen:
- GitHub Actions Läufer, die CI-, Release- und Feed-Workflows ausführen.
- OpenClaw/NanoClaw Agenten verbrauchen Fähigkeiten, Berater und Verifikationsskripte.
- Repository-Betreuer, die beratende Fragen und die Verschmelzung von Release/Tag-Änderungen anerkennen.
Komponenten
| Komponente | Standort | Verantwortung |
|---|---|---|
| Web UI | App.tsx, pages/, components/ |
Renders-Katalog und Beratungs-Detail-Erfahrungen. |
| Advisory Feed Core | advisories/feed.json*, skills/clawsec-suite/.../feed.mjs |
Stores, überprüft und parses Advisories mit abgelösten Signaturen/Checksums. |
| Skill Packages | skills/*/ |
Verteilt installierbare Sicherheitsfunktionen mit SBOM-Metadaten. |
| Local Automation Scripts | scripts/*.sh |
Lokale Spiegel, Pre-Push-Checks und manuelle Release-Helfer erstellen. |
| CI/CD Workflows | .github/workflows/*.yml |
Linting, Tests, NVD-Verschmutzung, Release-Verpackung und Pages bereitstellen. |
| Python Utility Layer | utils/*.py |
Skill Metadatenvalidierung und Prüfsummengenerierung. |
oder Schlüsselflüsse
- Skill Katalogfluss:
- Release/tag Workflows veröffentlichen Fähigkeiten Assets.
- Deploy Workflow entdeckt Freigabevermögen und baut
public/skills/index.json. - UI fetches
public/skills/index.jsonund Skill-Docs für/skillsSeiten.
- Beratender Förderstrom:
poll-nvd-cves.ymlundcommunity-advisory.ymlupdateadvisories/feed.json.- Fütterung wird unterschrieben und auf öffentliche Wege gespiegelt.
- Runtime Haken / Schriften laden Remote Feed und Rückfall auf lokale signierte Kopien.
- Bewachter Installationsfluss:
- Installer fordert Zielfähigkeit + Version.
- Beitragsüberprüfungen betroffener Spektifizierer und Schwere-/Risikohinweise.
- Exit-Code 42 erzwingt die zweite Bestätigung, wenn Berater übereinstimmen.
(Diagramme)
flowchart TD
A["NVD + Community Inputs"] --> B["Feed Workflows\n(poll/community)"]
B --> C["advisories/feed.json + signatures"]
C --> D["Deploy Workflow Mirrors to public/"]
D --> E["React UI (catalog/feed pages)"]
C --> F["clawsec-suite hook + installers"]
F --> G["Agent advisory alerts / gated install"]
Schnittstellen und Verträge
| Schnittstelle | Vertragsformular | Validierung |
|---|---|---|
| Skill metadata | skills/*/skill.json |
Gültig durch Python Dienstprogramm + CI-Versionsparitätsprüfungen. |
| Beratender Feed | JSON + Ed25519 abgelöste Signatur | Verifiziert durch feed.mjs und NanoClaw Signaturenprogramme. |
| Checksums manifest | checksums.json (+ optional .sig) |
Parsed and hash-matched before trusting payloads. |
| Hook event interface | HookEvent (type, action, messages) |
Runtime-Handler verarbeitet nur ausgewählte Ereignisnamen. |
| Workflow Release Benennung | Tag-Muster <skill>-vX.Y.Z |
Parsed in Release/Deploy Workflows, um Fähigkeiten zu entdecken. |
oder Schlüsselparameter
| Parameter | Default | Effekt |
|---|---|---|
CLAWSEC_FEED_URL |
https://clawsec.prompt.security/advisories/feed.json |
Remote Advisory source for suite scripts/hooks. |
CLAWSEC_ALLOW_UNSIGNED_FEED |
0 |
Ermöglicht temporäre unsignierte Fallback-Kompatibilität. |
CLAWSEC_VERIFY_CHECKSUM_MANIFEST |
1 |
Erfordert die Überprüfung der Prüfsumme, wo verfügbar. |
CLAWSEC_HOOK_INTERVAL_SECONDS |
300 |
Das Drosselfenster für den Beratenden Haken scannen. |
CLAWSEC_SKILLS_INDEX_TIMEOUT_MS |
5000 |
Remote Skill Index fetch timeout for Catalog Discovery. |
PROMPTSEC_GIT_PULL |
0 |
Optionales Autopull, bevor das Watchdog Audit läuft. |
Fehlerbehandlung und Zuverlässigkeit
- Fütterung wird für ungültige Unterschriften und fehlerhafte Manifeste nicht geschlossen.
- Remote-Fetch-Ausfälle fallen anmutig zurück zu lokalen signierten Feeds.
- Hook state verwendet Atomdatei schreibt mit strengem Modus, wo unterstützt.
- UI-Seiten erkennen HTML-Rückschläge als JSON und vermeiden, beschädigte Daten zu machen.
- Workflow-Schritte durchsetzen Key-Fingerprint-Konsistenz, um Split-key Drift zu vermeiden.
Beispiel Snippets
// Route topology in the web app
<Routes>
<Route path="/" element={<Home />} />
<Route path="/skills" element={<SkillsCatalog />} />
<Route path="/skills/:skillId" element={<SkillDetail />} />
<Route path="/feed" element={<FeedSetup />} />
<Route path="/feed/:advisoryId" element={<AdvisoryDetail />} />
<Route path="/wiki/*" element={<WikiBrowser />} />
</Routes>
// Guarded feed loading contract in advisory hook
const remoteFeed = await loadRemoteFeed(feedUrl, {
signatureUrl: feedSignatureUrl,
checksumsUrl: feedChecksumsUrl,
checksumsSignatureUrl: feedChecksumsSignatureUrl,
publicKeyPem,
checksumsPublicKeyPem: publicKeyPem,
allowUnsigned,
verifyChecksumManifest,
});
Laufzeit und Bereitstellung
| Laufzeit Oberfläche | Ausführungsmodell | Ausgabe |
|---|---|---|
Vite App (npm run dev) |
Lokaler Frontendserver | Interaktive Web-App für Feed/Skills. |
| GitHub CI | Multi-OS-Matrix + dedizierte Jobs | Lint/Typ/Bau/Sicherheit und Testvertrauen. |
| Skill release workflow | Tag-getriebene veröffentlichen + PR-Trocken-run-Checks | Freigabevermögen, unterzeichnete Prüfsummen, optional ClawHub veröffentlichen. |
| Seiten bereitstellen Workflow | Ausgelöst von CI/Release Erfolg | Statische Website + gespiegelte Berater/Releases. |
| Runtime Haken | OpenClaw Event Haken / NanoClaw IPC | Beratende Alarme, Gating Entscheidungen, Integritätskontrollen. |
Skalierungshinweise
- Beratende Volumenwaagen mit Schlüsselwort in NVD-Abfrage; Dedupe und Nachfilterung Steuergeräusche.
- Bereitstellung von Workflow-Prozessen Release-Listen und hält neueste Qualifikationsversionen in Indexausgabe.
- Modulgrenzen nach Fachordner ermöglichen es, neue Sicherheitsfunktionen hinzuzufügen, ohne Frontendstruktur zu ändern.
- Unterschriftsverifikationspfade bleiben leicht, da die Nutzlastgrößen (Feed/Manifests) klein sind.
Quellenangaben
- App.tsx
- Seiten/SkillsCatalog.tsx
- Seiten/FeedSetup.tsx
- Seiten/AdvisoryDetail.tsx
- Seiten/WikiBrowser.tsx
- Fertigkeiten/Clawsec-suite/hooks/clawsec-advisory-guardian/handler.ts
- Fertigkeiten/Clawsec-suite/hooks/clawsec-advisory-guardian/lib/feed.mjs
- Fertigkeiten/Clawsec-suite/scripts/guarded_skill_install.mjs
- Fertigkeiten/Clawsec-suite/scripts/discover_skill_catalog.mjs
- Fertigkeiten/Clawsec-nanoclaw/lib/advisories.ts
- Fertigkeiten/Clawsec-nanoclaw/lib/signatures.ts
- .github/workflows/poll-nvd-cves.yml
- .github/workflows/community-advisory.yml
- .github/workflows/deploy-pages.yml
- .github/workflows/skill-release.yml