50 lines
2.4 KiB
Markdown
50 lines
2.4 KiB
Markdown
# Kosmos Storage Audit
|
|
|
|
Dieses Verzeichnis enthaelt einen ersten Modul-Prototypen fuer die Analyse von Medienreferenzen und riskanten Ablageorten in FoundryVTT.
|
|
|
|
## Foundry Manifest
|
|
|
|
- Manifest-URL:
|
|
- `https://gitea.kosmos.ac/kosmos/kosmos-storage-audit/raw/branch/main/module.json`
|
|
- Download-URL:
|
|
- `https://gitea.kosmos.ac/kosmos/kosmos-storage-audit/archive/main.zip`
|
|
|
|
## Ausrichtung
|
|
|
|
- Das Zielprodukt ist ein online nutzbares Foundry-Modul.
|
|
- Die Kernlogik unter `scripts/core/` ist bewusst runtime-neutral gehalten.
|
|
- `scripts/adapters/foundry-runtime.js` bindet die Kernlogik an die laufende Foundry-Instanz.
|
|
- `tools/offline-analyze.mjs` ist nur ein Entwicklungs-Harness, um Parser und Matching lokal gegen eine gestoppte Instanz zu pruefen.
|
|
|
|
## Erste Kernbausteine
|
|
|
|
- `path-utils.js`
|
|
- Normalisierung auf `data:` und `public:` inklusive URL-Decoding und Unicode-Normalisierung
|
|
- `reference-extractor.js`
|
|
- rekursive String- und Attribut-Extraktion aus JSON/Objekten inklusive Wildcard-Erkennung
|
|
- `finding-engine.js`
|
|
- Klassifizierung von Broken References, Orphans und Fremdverweisen mit Wildcard-Matching
|
|
- `analyzer.js`
|
|
- Orchestrierung von Dateien, Quellen und Findings
|
|
- `audit-report-app.js`
|
|
- Foundry-UI mit Fortschrittsanzeige, gruppierter Arbeitsansicht und JSON-Export
|
|
|
|
## Wichtige Heuristik
|
|
|
|
- Bei mehreren Welten versucht das Tool nicht, globale "echte Orphans" im gesamten `data`-Root zu behaupten.
|
|
- Orphans werden nur in klar eingrenzbaren Bereichen gemeldet:
|
|
- weltlokale Bereiche
|
|
- explizit riskante Paket-`storage`-Ordner
|
|
- nicht offensichtliche `public`-Bereiche
|
|
- Weltverweise auf Modul- oder Systemassets gelten nicht pauschal als Problem.
|
|
- Sie werden erst dann hochgezogen, wenn das Zielasset im owning Paket selbst nicht sichtbar referenziert ist.
|
|
- Wildcard-Pfade wie `Ork*_Token.webp` werden nicht als kaputt markiert, solange mindestens eine passende Datei im gescannten Root existiert.
|
|
- Dieselben Wildcard-Referenzen zaehlen auch als eingehende Referenz fuer passende Dateien und verhindern damit false-positive `orphan-file`-Treffer.
|
|
- URL-encodierte oder unterschiedlich normalisierte Umlaute sollen auf dieselbe kanonische Pfadform zusammengefuehrt werden.
|
|
|
|
## Noch offen
|
|
|
|
- bessere Laufzeitabdeckung fuer Welteinstellungen und weitere Referenzquellen
|
|
- optional zusaetzliche Exportformate neben JSON
|
|
- Aktionen zum sicheren Verschieben oder Migrieren
|