- Add .gitignore to exclude node_modules, dist, logs, and system files - Add comprehensive project documentation including README, deployment guide, and development setup - Add .kiro project specifications for amazon-product-bar-extension, appwrite-cloud-storage, appwrite-userid-repair, blacklist-feature, and enhanced-item-management - Add .kiro steering documents for product, structure, styling, and tech guidelines - Add VSCode settings configuration for consistent development environment - Add manifest.json and babel/vite configuration for extension build setup - Add complete source code implementation including AppWrite integration, storage managers, UI components, and services - Add comprehensive test suite with Jest configuration and 30+ test files covering all major modules - Add test HTML files for integration testing and validation - Add coverage reports and build validation scripts - Add AppWrite setup and repair documentation for database schema management - Add migration guides and responsive accessibility implementation documentation - Establish foundation for Amazon product bar extension with full feature set including blacklist management, enhanced item workflows, and real-time synchronization
295 lines
10 KiB
Markdown
295 lines
10 KiB
Markdown
# AppWrite userId Attribut Reparatur-Tool - Benutzerhandbuch
|
|
|
|
## Übersicht
|
|
|
|
Das AppWrite userId Attribut Reparatur-Tool ist ein automatisiertes System zur Erkennung, Reparatur und Validierung von AppWrite-Sammlungen, denen das kritische `userId`-Attribut fehlt. Dieses Tool behebt den häufigen Fehler "Invalid query: Attribute not found in schema: userId" und stellt die ordnungsgemäße Benutzerdatenisolierung sicher.
|
|
|
|
## Funktionen
|
|
|
|
- **Automatische Erkennung**: Identifiziert Sammlungen ohne userId-Attribut
|
|
- **Sichere Reparatur**: Fügt userId-Attribute mit korrekten Spezifikationen hinzu
|
|
- **Berechtigungskonfiguration**: Stellt ordnungsgemäße Datenisolierung sicher
|
|
- **Validierung**: Überprüft, ob Reparaturen erfolgreich waren
|
|
- **Umfassende Berichte**: Detaillierte Ergebnisse und Empfehlungen
|
|
- **Nur-Analyse-Modus**: Überprüfung ohne Änderungen
|
|
|
|
## Voraussetzungen
|
|
|
|
### AppWrite-Konfiguration
|
|
- AppWrite-Server läuft und ist erreichbar
|
|
- Gültiger API-Schlüssel mit erforderlichen Berechtigungen
|
|
- Zugriff auf die AppWrite-Konsole für manuelle Korrekturen
|
|
|
|
### Erforderliche API-Schlüssel-Berechtigungen
|
|
```
|
|
- databases.read: Zum Analysieren von Sammlungen
|
|
- databases.write: Zum Erstellen von Attributen
|
|
- collections.read: Zum Lesen von Sammlungsschemas
|
|
- collections.write: Zum Aktualisieren von Berechtigungen
|
|
- documents.read: Für Validierungsabfragen (optional)
|
|
```
|
|
|
|
## Schnellstart
|
|
|
|
### 1. Tool öffnen
|
|
Öffnen Sie die Datei `test-appwrite-repair-tool.html` in Ihrem Browser.
|
|
|
|
### 2. Konfiguration eingeben
|
|
```javascript
|
|
// AppWrite-Konfiguration
|
|
const config = {
|
|
endpoint: 'https://ihre-appwrite-url.com/v1',
|
|
projectId: 'ihr-projekt-id',
|
|
apiKey: 'ihr-api-schlüssel',
|
|
databaseId: 'ihre-datenbank-id'
|
|
};
|
|
```
|
|
|
|
### 3. Reparatur starten
|
|
Klicken Sie auf "Reparatur starten" oder "Nur Analyse" für eine sichere Überprüfung.
|
|
|
|
## Detaillierte Anleitung
|
|
|
|
### Schritt 1: Vorbereitung
|
|
|
|
#### AppWrite-Verbindung testen
|
|
1. Öffnen Sie die AppWrite-Konsole in Ihrem Browser
|
|
2. Überprüfen Sie, ob alle Sammlungen sichtbar sind
|
|
3. Notieren Sie sich die Projekt-ID und Datenbank-ID
|
|
|
|
#### API-Schlüssel überprüfen
|
|
1. Navigieren Sie zu Projekteinstellungen → API-Schlüssel
|
|
2. Überprüfen Sie die Berechtigungen Ihres API-Schlüssels
|
|
3. Erstellen Sie bei Bedarf einen neuen Schlüssel mit allen erforderlichen Berechtigungen
|
|
|
|
### Schritt 2: Nur-Analyse-Modus (Empfohlen)
|
|
|
|
Führen Sie zuerst eine Analyse durch, um zu verstehen, welche Sammlungen betroffen sind:
|
|
|
|
1. **Tool öffnen**: Laden Sie `test-appwrite-repair-tool.html`
|
|
2. **Konfiguration eingeben**: Füllen Sie alle Felder aus
|
|
3. **"Nur Analyse" wählen**: Aktivieren Sie den Nur-Analyse-Modus
|
|
4. **Analyse starten**: Klicken Sie auf "Analyse starten"
|
|
|
|
#### Analyseergebnisse verstehen
|
|
- **Kritisch**: Sammlungen ohne userId-Attribut (sofortige Aufmerksamkeit erforderlich)
|
|
- **Warnung**: Sammlungen mit falsch konfigurierten Attributen
|
|
- **Info**: Sammlungen, die ordnungsgemäß konfiguriert sind
|
|
|
|
### Schritt 3: Reparatur durchführen
|
|
|
|
Nach erfolgreicher Analyse können Sie die Reparatur durchführen:
|
|
|
|
1. **Vollständige Reparatur wählen**: Deaktivieren Sie den Nur-Analyse-Modus
|
|
2. **Reparatur starten**: Klicken Sie auf "Reparatur starten"
|
|
3. **Fortschritt überwachen**: Beobachten Sie die Fortschrittsanzeige
|
|
4. **Ergebnisse überprüfen**: Lesen Sie den detaillierten Bericht
|
|
|
|
#### Was passiert während der Reparatur?
|
|
1. **Zustandsdokumentation**: Ursprüngliche Sammlungszustände werden gespeichert
|
|
2. **Attributerstellung**: userId-Attribute werden mit korrekten Spezifikationen hinzugefügt
|
|
3. **Berechtigungskonfiguration**: Datenisolierung wird eingerichtet
|
|
4. **Validierung**: Reparaturen werden getestet und verifiziert
|
|
5. **Berichterstattung**: Umfassender Bericht wird generiert
|
|
|
|
### Schritt 4: Ergebnisse interpretieren
|
|
|
|
#### Erfolgreiche Reparatur
|
|
```
|
|
✅ Sammlung "products" erfolgreich repariert
|
|
- userId-Attribut hinzugefügt (String, 255 Zeichen, erforderlich)
|
|
- Berechtigungen konfiguriert (create: users, read/update/delete: user:$userId)
|
|
- Validierung bestanden
|
|
```
|
|
|
|
#### Fehlgeschlagene Reparatur
|
|
```
|
|
❌ Sammlung "orders" Reparatur fehlgeschlagen
|
|
- Fehler: Unzureichende Berechtigungen
|
|
- Manuelle Korrektur erforderlich
|
|
- Siehe Anweisungen unten
|
|
```
|
|
|
|
## Fehlerbehebung
|
|
|
|
### Häufige Probleme
|
|
|
|
#### 1. Authentifizierungsfehler (401/403)
|
|
**Symptom**: "Unauthorized" oder "Forbidden" Fehler
|
|
|
|
**Lösung**:
|
|
1. Überprüfen Sie Ihren API-Schlüssel in der AppWrite-Konsole
|
|
2. Stellen Sie sicher, dass alle erforderlichen Berechtigungen vorhanden sind
|
|
3. Erstellen Sie bei Bedarf einen neuen API-Schlüssel
|
|
|
|
**Schritt-für-Schritt-Anleitung**:
|
|
```
|
|
1. AppWrite-Konsole öffnen
|
|
2. Projekteinstellungen → API-Schlüssel
|
|
3. Bestehenden Schlüssel bearbeiten oder neuen erstellen
|
|
4. Erforderliche Berechtigungen hinzufügen:
|
|
☑ databases.read
|
|
☑ databases.write
|
|
☑ collections.read
|
|
☑ collections.write
|
|
☑ documents.read
|
|
5. Schlüssel speichern und in der Konfiguration aktualisieren
|
|
```
|
|
|
|
#### 2. Netzwerkverbindungsfehler
|
|
**Symptom**: Zeitüberschreitungen oder Verbindungsfehler
|
|
|
|
**Lösung**:
|
|
1. Überprüfen Sie die AppWrite-Endpoint-URL
|
|
2. Testen Sie die Verbindung in einem separaten Browser-Tab
|
|
3. Überprüfen Sie Firewall- und Netzwerkeinstellungen
|
|
|
|
#### 3. Sammlung nicht gefunden (404)
|
|
**Symptom**: "Collection not found" Fehler
|
|
|
|
**Lösung**:
|
|
1. Überprüfen Sie die Datenbank-ID in der Konfiguration
|
|
2. Stellen Sie sicher, dass die Sammlung in der angegebenen Datenbank existiert
|
|
3. Überprüfen Sie die Schreibweise der Sammlungs-IDs
|
|
|
|
#### 4. Attribut bereits vorhanden (409)
|
|
**Symptom**: "Attribute already exists" Fehler
|
|
|
|
**Lösung**:
|
|
1. Dies ist normalerweise kein Problem - das Attribut existiert bereits
|
|
2. Führen Sie eine Validierung durch, um zu überprüfen, ob es korrekt konfiguriert ist
|
|
3. Bei falscher Konfiguration: Manuell in der AppWrite-Konsole korrigieren
|
|
|
|
### Manuelle Korrekturen
|
|
|
|
Wenn automatische Reparaturen fehlschlagen, können Sie manuelle Korrekturen durchführen:
|
|
|
|
#### userId-Attribut manuell hinzufügen
|
|
1. **AppWrite-Konsole öffnen**
|
|
2. **Zur Datenbank navigieren** → Ihre Datenbank auswählen
|
|
3. **Sammlung auswählen** → Betroffene Sammlung öffnen
|
|
4. **Attribute-Tab** → "Neues Attribut" klicken
|
|
5. **Attribut konfigurieren**:
|
|
- Schlüssel: `userId`
|
|
- Typ: `String`
|
|
- Größe: `255`
|
|
- Erforderlich: `Ja`
|
|
- Array: `Nein`
|
|
6. **Speichern** und auf Verarbeitung warten
|
|
|
|
#### Berechtigungen manuell konfigurieren
|
|
1. **Sammlung öffnen** → Settings-Tab
|
|
2. **Berechtigungen bearbeiten**:
|
|
- Create: `users`
|
|
- Read: `user:$userId`
|
|
- Update: `user:$userId`
|
|
- Delete: `user:$userId`
|
|
3. **Dokumentsicherheit aktivieren**: Ja
|
|
4. **Änderungen speichern**
|
|
|
|
### Erweiterte Fehlerbehebung
|
|
|
|
#### Protokolle überprüfen
|
|
Das Tool erstellt detaillierte Protokolle aller Operationen:
|
|
```javascript
|
|
// Protokolle in der Browser-Konsole anzeigen
|
|
console.log('Reparatur-Protokolle:', repairController.auditLog);
|
|
```
|
|
|
|
#### Ursprüngliche Zustände wiederherstellen
|
|
Bei kritischen Fehlern:
|
|
1. Überprüfen Sie die dokumentierten ursprünglichen Zustände
|
|
2. Verwenden Sie die bereitgestellten Rollback-Anweisungen
|
|
3. Kontaktieren Sie bei Bedarf den Support
|
|
|
|
## Sicherheitshinweise
|
|
|
|
### Datenschutz
|
|
- Das Tool löscht niemals bestehende Daten oder Attribute
|
|
- Alle Änderungen werden protokolliert und können nachverfolgt werden
|
|
- Ursprüngliche Sammlungszustände werden dokumentiert
|
|
|
|
### Backup-Empfehlungen
|
|
Vor der Durchführung von Reparaturen:
|
|
1. **AppWrite-Datenbank sichern** (falls verfügbar)
|
|
2. **Wichtige Daten exportieren**
|
|
3. **Reparaturen in Entwicklungsumgebung testen**
|
|
|
|
### Produktionsumgebung
|
|
- Führen Sie Reparaturen außerhalb der Hauptgeschäftszeiten durch
|
|
- Informieren Sie Benutzer über mögliche kurze Unterbrechungen
|
|
- Überwachen Sie die Anwendung nach Reparaturen
|
|
|
|
## Häufig gestellte Fragen (FAQ)
|
|
|
|
### F: Ist es sicher, das Tool in der Produktion zu verwenden?
|
|
**A**: Ja, das Tool ist darauf ausgelegt, sicher zu sein. Es löscht niemals bestehende Daten und dokumentiert alle Änderungen. Dennoch empfehlen wir, zuerst den Nur-Analyse-Modus zu verwenden und Reparaturen in einer Entwicklungsumgebung zu testen.
|
|
|
|
### F: Was passiert, wenn die Reparatur fehlschlägt?
|
|
**A**: Das Tool stoppt bei kritischen Fehlern sofort und stellt Rollback-Anweisungen bereit. Einzelne Sammlungsfehler stoppen nicht die Verarbeitung anderer Sammlungen.
|
|
|
|
### F: Kann ich bestimmte Sammlungen von der Reparatur ausschließen?
|
|
**A**: Ja, Sie können die Sammlungsliste in der Konfiguration anpassen, um nur bestimmte Sammlungen zu verarbeiten.
|
|
|
|
### F: Wie lange dauert eine Reparatur?
|
|
**A**: Die Dauer hängt von der Anzahl der Sammlungen ab. Typischerweise:
|
|
- Analyse: 1-5 Sekunden pro Sammlung
|
|
- Reparatur: 2-10 Sekunden pro Sammlung
|
|
- Validierung: 1-3 Sekunden pro Sammlung
|
|
|
|
### F: Was ist, wenn meine AppWrite-Version nicht unterstützt wird?
|
|
**A**: Das Tool ist für AppWrite 1.0+ entwickelt. Bei Problemen mit älteren Versionen kontaktieren Sie den Support.
|
|
|
|
## Support und Hilfe
|
|
|
|
### Dokumentation
|
|
- **AppWrite-Dokumentation**: https://appwrite.io/docs
|
|
- **Community-Forum**: https://github.com/appwrite/appwrite/discussions
|
|
|
|
### Fehlermeldung
|
|
Bei Problemen sammeln Sie bitte:
|
|
1. **Vollständige Fehlermeldung** aus der Browser-Konsole
|
|
2. **AppWrite-Version** und Konfiguration
|
|
3. **Schritte zur Reproduktion** des Problems
|
|
4. **Browser und Betriebssystem** Informationen
|
|
|
|
### Kontakt
|
|
- **GitHub Issues**: Für Bugs und Feature-Requests
|
|
- **Community-Forum**: Für allgemeine Fragen
|
|
- **System-Administrator**: Für unternehmensspezifische Probleme
|
|
|
|
## Anhang
|
|
|
|
### Technische Details
|
|
|
|
#### userId-Attribut-Spezifikationen
|
|
```javascript
|
|
{
|
|
key: 'userId',
|
|
type: 'string',
|
|
size: 255,
|
|
required: true,
|
|
array: false,
|
|
default: null
|
|
}
|
|
```
|
|
|
|
#### Standard-Berechtigungskonfiguration
|
|
```javascript
|
|
{
|
|
create: ['users'],
|
|
read: ['user:$userId'],
|
|
update: ['user:$userId'],
|
|
delete: ['user:$userId'],
|
|
documentSecurity: true
|
|
}
|
|
```
|
|
|
|
### Versionsverlauf
|
|
- **v1.0**: Erste Veröffentlichung mit grundlegenden Reparaturfunktionen
|
|
- **v1.1**: Hinzugefügt: Nur-Analyse-Modus und verbesserte Fehlerbehandlung
|
|
- **v1.2**: Hinzugefügt: Deutsche Lokalisierung und erweiterte Validierung
|
|
|
|
---
|
|
|
|
*Dieses Handbuch wurde für die AppWrite userId Attribut Reparatur-Tool Version 1.2 erstellt. Für die neueste Version besuchen Sie die Projekt-Repository.* |