Normalize VG-Core architecture document locations
Dieser Commit ist enthalten in:
@@ -0,0 +1,68 @@
|
||||
# VG-Core Load Order
|
||||
|
||||
## Manifest-Ladereihenfolge
|
||||
|
||||
Die Background-Scripts werden laut `manifest.json` in dieser Reihenfolge geladen:
|
||||
|
||||
| Reihenfolge | Script | Einordnung |
|
||||
| --- | --- | --- |
|
||||
| 1 | `src/core/module-registry.js` | Core |
|
||||
| 2 | `src/modules/vg-observe/module.js` | Fachmodul |
|
||||
| 3 | `src/background/db/db-constants.js` | Core-Kandidat |
|
||||
| 4 | `src/background/db/db-core.js` | Core-Kandidat |
|
||||
| 5 | `src/background/gvl/gvl-vendor-normalizer.js` | Core-Kandidat |
|
||||
| 6 | `src/background/gvl/gvl-vendor-relationship-normalizer.js` | Core-Kandidat |
|
||||
| 7 | `src/background/gvl/gvl-catalog-normalizer.js` | Core-Kandidat |
|
||||
| 8 | `src/background/db/db-retention.js` | Core-Kandidat |
|
||||
| 9 | `src/background/db/db-record-locks.js` | Core-Kandidat |
|
||||
| 10 | `src/background/utils.js` | Core-Kandidat |
|
||||
| 11 | `src/background/settings.js` | Core-Kandidat |
|
||||
| 12 | `src/background/maintenance-guard.js` | Core-Kandidat |
|
||||
| 13 | `src/background/consent-memory.js` | Fachmodul |
|
||||
| 14 | `src/background/request-fingerprint.js` | Fachmodul |
|
||||
| 15 | `src/background/request-observer.js` | Fachmodul |
|
||||
| 16 | `src/background/gvl-service.js` | Fachmodul |
|
||||
| 17 | `src/background.js` | Fachmodul |
|
||||
|
||||
## Globale Abhängigkeiten
|
||||
|
||||
- `globalThis.VGCoreModuleRegistry`: wird in `src/core/module-registry.js` gesetzt und in `src/modules/vg-observe/module.js` zur Registrierung von `VGObserveModule` verwendet.
|
||||
- `globalThis.VGObserveModule`: wird in `src/modules/vg-observe/module.js` gesetzt.
|
||||
- `globalThis.VendorGetGvlService`: wird in `src/background/gvl-service.js` gesetzt und in `src/background.js` für `ingestGvlSnapshot` verwendet.
|
||||
- `globalThis.normalizeGvlVendorsFromSnapshot` und `globalThis.normalizeLatestGvlSnapshotVendors`: werden in `src/background/gvl/gvl-vendor-normalizer.js` gesetzt.
|
||||
- `globalThis.normalizeGvlVendorRelationshipsFromSnapshot` und `globalThis.normalizeLatestGvlVendorRelationships`: werden in `src/background/gvl/gvl-vendor-relationship-normalizer.js` gesetzt.
|
||||
- `globalThis.normalizeGvlCatalogsFromSnapshot` und `globalThis.normalizeLatestGvlCatalogs`: werden in `src/background/gvl/gvl-catalog-normalizer.js` gesetzt.
|
||||
- `browser.runtime.onMessage` und `browser.webRequest.onBeforeRequest`: werden in `src/background.js` registriert.
|
||||
- `browser.storage.local.get` und `browser.storage.local.set`: werden in `src/background/settings.js` verwendet.
|
||||
- `indexedDB.open` und `indexedDB.deleteDatabase`: werden in `src/background/db/db-core.js` verwendet.
|
||||
- `crypto.subtle.digest` und `TextEncoder`: werden in `src/background/utils.js` und `src/background/gvl-service.js` verwendet.
|
||||
- `fetch`: wird in `src/background.js` für den offiziellen IAB-GVL-Abruf verwendet.
|
||||
- `URL`: wird in `src/background/request-fingerprint.js` und `src/background/request-observer.js` zur Request-Auswertung verwendet.
|
||||
- `atob`: wird in `src/background.js` beim Decoding von TC-String-Core-Metadaten verwendet.
|
||||
|
||||
Weitere implizite globale Funktionsabhängigkeiten entstehen durch nicht-modulare Script-Ladung:
|
||||
|
||||
- `src/background/db/db-core.js` erwartet `VENDORGET_DB_NAME` und `VENDORGET_DB_VERSION` aus `src/background/db/db-constants.js`.
|
||||
- `src/background/db/db-retention.js` und `src/background/db/db-record-locks.js` erwarten `VENDORGET_EVIDENCE_STORE_NAMES` aus `src/background/db/db-constants.js`.
|
||||
- `src/background/request-fingerprint.js` erwartet `sha256Hex` und `stableStringify` aus `src/background/utils.js`.
|
||||
- `src/background/request-observer.js` erwartet `isRequestMonitoringEnabled`, `isEvidenceWriteSuspended`, `buildObservedRequestFingerprint`, `buildObservedRequestFingerprintSource`, `getLatestConsentStateForRequest` und `persistObservedRequest`.
|
||||
- `src/background.js` erwartet unter anderem `handleObservedRequest`, `isConsentCaptureEnabled`, `rememberLatestTcfPing`, `getLatestTcfPing`, `sha256Hex`, `stableStringify`, `rememberLatestConsentState`, `openVendorGetDb`, Retention-/Lock-Funktionen und `VendorGetGvlService`.
|
||||
|
||||
## Core-relevante Risiken
|
||||
|
||||
- Ladeordnungsrisiko: `src/modules/vg-observe/module.js` registriert sich nur, wenn `globalThis.VGCoreModuleRegistry` bereits existiert. Die aktuelle Reihenfolge erfüllt das, ist aber empfindlich gegen Manifest-Änderungen.
|
||||
- Implizite globale Abhängigkeiten: Viele Background-Scripts exportieren keine Module, sondern stellen Funktionen durch gemeinsame Script-Ausführung bereit. Verschiebungen können dadurch Laufzeitfehler erzeugen, ohne dass Imports brechen.
|
||||
- DB-Konstanten / DB-Version: `src/background/db/db-constants.js` definiert `VENDORGET_DB_VERSION = 5` und die Store-Namen. `src/background/db/db-core.js` nutzt diese Werte direkt für `indexedDB.open` und Store-Anlage.
|
||||
- Kopplung zwischen Core-Kandidaten und VG-Observe: DB-, Retention-, Record-Lock-, Settings- und GVL-Normalizer-Dateien wirken infrastrukturell, enthalten aber Namen, Stores oder Datenflüsse aus Consent, Request, Evidence und GVL-Snapshot-Logik.
|
||||
- GVL-Kopplung: Normalizer können später Teil einer gemeinsamen Wissensbasis sein, sind aktuell aber an Snapshot-Stores und Background-DB-Zugriffe gekoppelt.
|
||||
|
||||
## Nicht ändern
|
||||
|
||||
- keine Script-Reihenfolge ändern
|
||||
- keine `manifest.json` ändern
|
||||
- keine DB-Version ändern
|
||||
- keine Dateien verschieben
|
||||
|
||||
## Nächster risikoarmer Schritt
|
||||
|
||||
Als nächsten kleinen Schritt eine reine Dokumentations-Tabelle ergänzen, die je Background-Script die erwarteten vorausgehenden globalen Funktionen und die bereitgestellten globalen Funktionen beschreibt. Kein Refactor, keine Migration, keine Umbenennung.
|
||||
In neuem Issue referenzieren
Einen Benutzer sperren