Sure! Pl
This commit is contained in:
53
setup/API_KEY_SETUP.md
Normal file
53
setup/API_KEY_SETUP.md
Normal file
@@ -0,0 +1,53 @@
|
||||
# Appwrite API Key Setup
|
||||
|
||||
## API Key erstellen
|
||||
|
||||
1. **Appwrite Console oeffnen**: https://cloud.appwrite.io
|
||||
2. **Projekt auswaehlen**: Waehle dein Projekt (ID: `696b82bb0036d2e547ad`)
|
||||
3. **Settings > API Keys** navigieren
|
||||
4. **"Create API Key"** klicken
|
||||
5. **Konfiguration**:
|
||||
- **Name**: `EShip Extension Key` (oder beliebiger Name)
|
||||
- **Scopes**:
|
||||
- `users.read` - Benutzer lesen
|
||||
- `users.write` - Benutzer erstellen/bearbeiten
|
||||
- `sessions.write` - Sessions erstellen
|
||||
- Optional: Weitere Scopes je nach Bedarf
|
||||
- **Expiration**: Optional (leer lassen fuer unbegrenzt)
|
||||
6. **"Create"** klicken
|
||||
7. **API Key kopieren** - WICHTIG: Der Key wird nur einmal angezeigt!
|
||||
|
||||
## API Key in Extension konfigurieren
|
||||
|
||||
1. Oeffne `Extension/config.js`
|
||||
2. Fuege den API Key hinzu:
|
||||
|
||||
```javascript
|
||||
var APPWRITE_CONFIG = {
|
||||
endpoint: 'https://cloud.appwrite.io/v1',
|
||||
projectId: '696b82bb0036d2e547ad',
|
||||
apiKey: 'DEIN_API_KEY_HIER' // Hier den kopierten Key einfuegen
|
||||
};
|
||||
```
|
||||
|
||||
3. Extension neu laden in `chrome://extensions`
|
||||
|
||||
## Sicherheit
|
||||
|
||||
- **NIEMALS** den API Key in Git committen
|
||||
- Der API Key sollte nur in der Extension verwendet werden
|
||||
- Bei Verlust: Alten Key loeschen und neuen erstellen
|
||||
- Verwende unterschiedliche Keys fuer Development und Production
|
||||
|
||||
## Alternative: Environment-basierte Konfiguration
|
||||
|
||||
Fuer Production kannst du den API Key auch ueber Chrome Storage setzen:
|
||||
|
||||
1. In der Extension: `chrome.storage.local.set({ apiKey: 'DEIN_KEY' })`
|
||||
2. Im Service Worker: Key aus Storage laden
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
- **"Invalid API Key"**: Pruefe, ob der Key korrekt kopiert wurde (keine Leerzeichen)
|
||||
- **"Insufficient permissions"**: Pruefe die Scopes des API Keys
|
||||
- **"Key expired"**: Erstelle einen neuen API Key
|
||||
58
setup/API_SERVER_SETUP.md
Normal file
58
setup/API_SERVER_SETUP.md
Normal file
@@ -0,0 +1,58 @@
|
||||
# API Server Setup
|
||||
|
||||
## Problem
|
||||
|
||||
Chrome Extensions haben unterschiedliche IDs bei jeder Installation. Appwrite erfordert Platform-Registrierung, was nicht praktikabel ist.
|
||||
|
||||
## Lösung
|
||||
|
||||
Ein Express API-Server fungiert als Proxy zwischen Extension und Appwrite. Der Server verwendet den API Key (server-seitig, keine Platform-Registrierung nötig) und erstellt Sessions fuer die Extension.
|
||||
|
||||
## Installation
|
||||
|
||||
1. Dependencies installieren:
|
||||
```bash
|
||||
cd Server
|
||||
npm install
|
||||
```
|
||||
|
||||
2. API Server starten:
|
||||
```bash
|
||||
npm run dev:api
|
||||
```
|
||||
|
||||
Der Server laeuft auf `http://localhost:3001`
|
||||
|
||||
## Beide Server gleichzeitig starten
|
||||
|
||||
```bash
|
||||
npm run dev:all
|
||||
```
|
||||
|
||||
Startet sowohl Vite (Port 5173) als auch API Server (Port 3001).
|
||||
|
||||
## Umgebungsvariablen (optional)
|
||||
|
||||
Erstelle eine `.env` Datei im `Server/` Ordner:
|
||||
|
||||
```
|
||||
APPWRITE_ENDPOINT=https://appwrite.webklar.com/v1
|
||||
APPWRITE_PROJECT_ID=696b82bb0036d2e547ad
|
||||
APPWRITE_API_KEY=dein_api_key_hier
|
||||
```
|
||||
|
||||
Falls nicht gesetzt, werden die Default-Werte aus `api-server.js` verwendet.
|
||||
|
||||
## API Endpoints
|
||||
|
||||
- `POST /api/extension/login` - Login mit Email/Password
|
||||
- `GET /api/extension/auth` - Prueft Auth-Status
|
||||
- `POST /api/extension/logout` - Logout
|
||||
- `GET /api/health` - Health Check
|
||||
|
||||
## Vorteile
|
||||
|
||||
- Keine Platform-Registrierung in Appwrite noetig
|
||||
- Funktioniert fuer alle Extension-Installationen
|
||||
- API Key bleibt sicher auf dem Server
|
||||
- Einfache Skalierung
|
||||
57
setup/CLI_CONNECTION.md
Normal file
57
setup/CLI_CONNECTION.md
Normal file
@@ -0,0 +1,57 @@
|
||||
# Appwrite CLI Verbindung
|
||||
|
||||
## Aktueller Status
|
||||
|
||||
- **Endpoint**: `https://appwrite.webklar.com/v1`
|
||||
- **Project ID**: `696b82bb0036d2e547ad`
|
||||
- **Client konfiguriert**: ✓
|
||||
|
||||
## Einloggen bei Appwrite
|
||||
|
||||
Um dich bei Appwrite einzuloggen, führe diesen Befehl in deinem Terminal aus:
|
||||
|
||||
```bash
|
||||
cd Server
|
||||
appwrite login
|
||||
```
|
||||
|
||||
Folge den Anweisungen im Terminal. Du wirst zu einem Browser-Fenster weitergeleitet, um dich anzumelden.
|
||||
|
||||
## Verbindung überprüfen
|
||||
|
||||
Nach dem Login kannst du deine Verbindung testen:
|
||||
|
||||
```bash
|
||||
# Liste alle Datenbanken auf
|
||||
appwrite databases list
|
||||
|
||||
# Zeige Projekt-Informationen
|
||||
appwrite projects get --project-id 696b82bb0036d2e547ad
|
||||
|
||||
# Liste alle Collections (wenn Datenbank existiert)
|
||||
appwrite databases list-collections --database-id eship-db
|
||||
```
|
||||
|
||||
## Weitere nützliche Befehle
|
||||
|
||||
```bash
|
||||
# Client-Einstellungen anzeigen
|
||||
appwrite client --help
|
||||
|
||||
# Alle verfügbaren Datenbank-Befehle anzeigen
|
||||
appwrite databases --help
|
||||
|
||||
# Alle verfügbaren Collections anzeigen
|
||||
appwrite databases list-collections --database-id YOUR_DATABASE_ID
|
||||
|
||||
# Collection-Informationen abrufen
|
||||
appwrite databases get-collection --database-id YOUR_DATABASE_ID --collection-id YOUR_COLLECTION_ID
|
||||
```
|
||||
|
||||
## Wichtige Hinweise
|
||||
|
||||
1. **Login ist interaktiv**: Der `appwrite login` Befehl muss manuell im Terminal ausgeführt werden, da er einen Browser öffnet.
|
||||
|
||||
2. **Projekt muss initialisiert sein**: Wenn du in einem bestimmten Verzeichnis arbeitest, führe `appwrite init project` aus, um das Projekt zu initialisieren.
|
||||
|
||||
3. **Session**: Nach dem Login bleibt deine Session aktiv, bis du dich ausloggst oder die Session abläuft.
|
||||
81
setup/DATABASE_SETUP.md
Normal file
81
setup/DATABASE_SETUP.md
Normal file
@@ -0,0 +1,81 @@
|
||||
# Datenbank-Schema Setup Anleitung
|
||||
|
||||
Diese Anleitung führt dich durch das Setup der Appwrite-Datenbank mit dem Schema-Skript.
|
||||
|
||||
## Voraussetzungen
|
||||
|
||||
1. **Appwrite CLI installiert** ✓ (bereits erledigt)
|
||||
2. **Projekt konfiguriert** ✓ (bereits erledigt)
|
||||
3. **Bei Appwrite eingeloggt sein**
|
||||
|
||||
## Schritt 1: Bei Appwrite einloggen
|
||||
|
||||
```bash
|
||||
appwrite login
|
||||
```
|
||||
|
||||
Folge den Anweisungen im Terminal. Du wirst zu einem Browser-Fenster weitergeleitet, um dich anzumelden.
|
||||
|
||||
## Schritt 2: Datenbank erstellen oder ID ermitteln
|
||||
|
||||
### Option A: Neue Datenbank erstellen
|
||||
|
||||
```bash
|
||||
appwrite databases create --name "eship-database" --database-id "eship-db"
|
||||
```
|
||||
|
||||
Die Ausgabe zeigt dir die `$id` der erstellten Datenbank. Kopiere diese ID.
|
||||
|
||||
### Option B: Bestehende Datenbank auflisten
|
||||
|
||||
```bash
|
||||
appwrite databases list
|
||||
```
|
||||
|
||||
Suche die `$id` deiner Datenbank in der Ausgabe.
|
||||
|
||||
## Schritt 3: DATABASE_ID im Skript setzen
|
||||
|
||||
Öffne die Datei `appwrite_schema.sh` und ersetze `YOUR_DATABASE_ID` mit deiner tatsächlichen Datenbank-ID:
|
||||
|
||||
```bash
|
||||
DATABASE_ID="deine-datenbank-id-hier"
|
||||
```
|
||||
|
||||
## Schritt 4: Skript ausführen
|
||||
|
||||
### Windows (Git Bash oder WSL)
|
||||
|
||||
```bash
|
||||
chmod +x appwrite_schema.sh
|
||||
./appwrite_schema.sh
|
||||
```
|
||||
|
||||
### Windows PowerShell
|
||||
|
||||
Da das Skript Bash-Befehle verwendet, benötigst du entweder:
|
||||
- **Git Bash**: Öffne Git Bash im Server-Ordner und führe das Skript aus
|
||||
- **WSL**: Führe das Skript in WSL aus
|
||||
|
||||
Alternativ kannst du die Befehle manuell in PowerShell ausführen (nicht empfohlen).
|
||||
|
||||
## Was wird erstellt?
|
||||
|
||||
Das Skript erstellt 4 Tabellen:
|
||||
|
||||
1. **users** - Benutzerinformationen
|
||||
2. **accounts** - Plattform-Accounts (Amazon, eBay)
|
||||
3. **products** - Produktinformationen
|
||||
4. **product_details** - Detaillierte Produktinformationen
|
||||
|
||||
## Fehlerbehandlung
|
||||
|
||||
Wenn ein Fehler auftritt, zeigt das Skript `(ignored error, rc=X)`. Das bedeutet, dass die Ressource möglicherweise bereits existiert. Das ist normal, wenn du das Skript mehrfach ausführst (idempotent).
|
||||
|
||||
## Hilfe
|
||||
|
||||
Bei Problemen:
|
||||
```bash
|
||||
appwrite databases --help
|
||||
appwrite databases create-table --help
|
||||
```
|
||||
31
setup/README.md
Normal file
31
setup/README.md
Normal file
@@ -0,0 +1,31 @@
|
||||
# Setup & Konfiguration
|
||||
|
||||
Dieser Ordner enthält alle Setup-Skripte, Konfigurationsdateien und temporäre Dateien, die nicht direkt zum Code gehören.
|
||||
|
||||
## Inhalt
|
||||
|
||||
- **db.txt** - Ursprüngliches Datenbank-Schema-Skript (für ältere Appwrite CLI)
|
||||
- **setup-database.ps1** - PowerShell-Setup-Skript für die Datenbank
|
||||
- **appwrite.config.json** - Appwrite-Konfigurationsdatei
|
||||
- **CLI_CONNECTION.md** - Anleitung zur Appwrite CLI-Verbindung
|
||||
- **DATABASE_SETUP.md** - Anleitung zum Datenbank-Setup
|
||||
- **SCHEMA_UPDATE_NOTE.md** - Hinweise zur Schema-Aktualisierung
|
||||
|
||||
## Warum dieser Ordner?
|
||||
|
||||
Diese Dateien sind:
|
||||
- **Temporäre/Setup-Dateien**: Werden nur einmalig für das Initial-Setup benötigt
|
||||
- **Konfigurationsdateien**: Enthalten Projekt-spezifische Einstellungen
|
||||
- **Dokumentation**: Setup-Anleitungen und Notizen
|
||||
|
||||
Sie gehören nicht zum eigentlichen Code in `Extension/` oder `Server/` und halten das Projekt sauber organisiert.
|
||||
|
||||
## Projektstruktur
|
||||
|
||||
```
|
||||
eship/
|
||||
├── Extension/ # Browser-Extension (Code)
|
||||
├── Server/ # React Server-App (Code)
|
||||
├── setup/ # Setup & Konfiguration (dieser Ordner)
|
||||
└── README.md # Haupt-Projekt-README
|
||||
```
|
||||
28
setup/SCHEMA_UPDATE_NOTE.md
Normal file
28
setup/SCHEMA_UPDATE_NOTE.md
Normal file
@@ -0,0 +1,28 @@
|
||||
# WICHTIG: Schema-Skript Aktualisierung erforderlich
|
||||
|
||||
Das ursprüngliche Schema-Skript (`appwrite_schema.sh`) wurde für eine ältere Appwrite CLI-Version geschrieben, die "Tables" und "Columns" verwendete.
|
||||
|
||||
Die aktuelle Appwrite CLI verwendet "Collections" und "Attributes".
|
||||
|
||||
## Benötigte Änderungen:
|
||||
|
||||
1. **`create-table` → `create-collection`**
|
||||
2. **`--table-id` → `--collection-id`**
|
||||
3. **`--row-security` → `--document-security`**
|
||||
4. **`create-*-column` → `create-*-attribute`**
|
||||
- `create-string-column` → `create-string-attribute`
|
||||
- `create-boolean-column` → `create-boolean-attribute`
|
||||
- `create-enum-column` → `create-enum-attribute`
|
||||
- `create-float-column` → `create-float-attribute`
|
||||
- `create-integer-column` → `create-integer-attribute`
|
||||
- `create-url-column` → `create-url-attribute`
|
||||
5. **`create-index` benötigt `--collection-id` statt `--table-id`**
|
||||
|
||||
## Lösung:
|
||||
|
||||
Das Skript muss vollständig auf die neue API-Struktur aktualisiert werden.
|
||||
Dies kann entweder:
|
||||
- Manuell über die Appwrite-Konsole erfolgen
|
||||
- Oder über ein aktualisiertes Skript mit den neuen Befehlen
|
||||
|
||||
**Hinweis:** Wenn du eine ältere Appwrite-Server-Version verwendest, die noch "Tables" unterstützt, funktioniert das ursprüngliche Skript möglicherweise.
|
||||
3
setup/appwrite.config.json
Normal file
3
setup/appwrite.config.json
Normal file
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"projectId": "696b82bb0036d2e547ad"
|
||||
}
|
||||
0
setup/db.txt
Normal file
0
setup/db.txt
Normal file
119
setup/setup-database.ps1
Normal file
119
setup/setup-database.ps1
Normal file
@@ -0,0 +1,119 @@
|
||||
# PowerShell Script zum Setup der Appwrite-Datenbank
|
||||
# Dieses Skript erstellt die Datenbank und führt das Schema-Setup aus
|
||||
|
||||
$ErrorActionPreference = "Continue"
|
||||
|
||||
Write-Host "=== Appwrite Datenbank Setup ===" -ForegroundColor Cyan
|
||||
Write-Host ""
|
||||
|
||||
# 1. Prüfe Login-Status
|
||||
Write-Host "1. Prüfe Appwrite Login-Status..." -ForegroundColor Yellow
|
||||
$loginCheck = appwrite databases list 2>&1
|
||||
|
||||
if ($LASTEXITCODE -ne 0 -and $loginCheck -like "*Session not found*") {
|
||||
Write-Host " [WARNUNG] Nicht eingeloggt. Bitte zuerst einloggen:" -ForegroundColor Red
|
||||
Write-Host " appwrite login" -ForegroundColor White
|
||||
Write-Host ""
|
||||
Write-Host " Führe diesen Befehl jetzt aus..." -ForegroundColor Yellow
|
||||
appwrite login
|
||||
Write-Host ""
|
||||
}
|
||||
|
||||
# 2. Erstelle oder verwende vorhandene Datenbank
|
||||
$DATABASE_ID = "eship-db"
|
||||
$DATABASE_NAME = "eship-database"
|
||||
|
||||
Write-Host "2. Prüfe ob Datenbank '$DATABASE_ID' existiert..." -ForegroundColor Yellow
|
||||
|
||||
# Versuche die Datenbank zu finden
|
||||
$dbList = appwrite databases list 2>&1
|
||||
$dbExists = $dbList -like "*$DATABASE_ID*"
|
||||
|
||||
if (-not $dbExists) {
|
||||
Write-Host " Datenbank nicht gefunden. Erstelle neue Datenbank..." -ForegroundColor Yellow
|
||||
$createResult = appwrite databases create --name $DATABASE_NAME --database-id $DATABASE_ID 2>&1
|
||||
|
||||
if ($LASTEXITCODE -eq 0) {
|
||||
Write-Host " [OK] Datenbank '$DATABASE_ID' erfolgreich erstellt!" -ForegroundColor Green
|
||||
} else {
|
||||
Write-Host " [WARNUNG] Fehler beim Erstellen der Datenbank." -ForegroundColor Yellow
|
||||
Write-Host " Verwende ID: $DATABASE_ID" -ForegroundColor Gray
|
||||
Write-Host " Stelle sicher, dass die Datenbank-ID korrekt ist." -ForegroundColor Yellow
|
||||
}
|
||||
} else {
|
||||
Write-Host " [OK] Datenbank '$DATABASE_ID' existiert bereits!" -ForegroundColor Green
|
||||
}
|
||||
|
||||
Write-Host ""
|
||||
Write-Host "3. Erstelle Datenbank-Schema..." -ForegroundColor Yellow
|
||||
Write-Host " Dies kann einige Minuten dauern..." -ForegroundColor Gray
|
||||
Write-Host ""
|
||||
|
||||
# Aktualisiere DATABASE_ID im Bash-Skript
|
||||
$schemaScriptContent = Get-Content "appwrite_schema.sh" -Raw -Encoding UTF8
|
||||
$oldDatabaseIdPattern = 'DATABASE_ID="YOUR_DATABASE_ID"'
|
||||
$newDatabaseIdValue = "DATABASE_ID=`"$DATABASE_ID`""
|
||||
$schemaScriptContent = $schemaScriptContent -replace [regex]::Escape($oldDatabaseIdPattern), $newDatabaseIdValue
|
||||
Set-Content -Path "appwrite_schema.sh" -Value $schemaScriptContent -NoNewline -Encoding UTF8
|
||||
|
||||
Write-Host " DATABASE_ID im Schema-Skript auf '$DATABASE_ID' gesetzt" -ForegroundColor Green
|
||||
Write-Host ""
|
||||
|
||||
# Prüfe ob Git Bash oder WSL verfügbar ist
|
||||
$bashPath = $null
|
||||
$useBash = $false
|
||||
|
||||
# Versuche Git Bash zu finden
|
||||
if (Test-Path "C:\Program Files\Git\bin\bash.exe") {
|
||||
$bashPath = "C:\Program Files\Git\bin\bash.exe"
|
||||
$useBash = $true
|
||||
} elseif (Test-Path "C:\Program Files (x86)\Git\bin\bash.exe") {
|
||||
$bashPath = "C:\Program Files (x86)\Git\bin\bash.exe"
|
||||
$useBash = $true
|
||||
} else {
|
||||
# Prüfe ob WSL verfügbar ist
|
||||
$wslCheck = wsl --list 2>&1
|
||||
if ($LASTEXITCODE -eq 0) {
|
||||
$useBash = $true
|
||||
$bashPath = "wsl"
|
||||
}
|
||||
}
|
||||
|
||||
if ($useBash) {
|
||||
Write-Host "4. Führe Schema-Skript aus (über Bash)..." -ForegroundColor Yellow
|
||||
Write-Host ""
|
||||
|
||||
$scriptPath = (Resolve-Path "appwrite_schema.sh").Path
|
||||
|
||||
if ($bashPath -eq "wsl") {
|
||||
# Konvertiere Windows-Pfad zu WSL-Pfad
|
||||
$driveLetter = $scriptPath.Substring(0, 1).ToLower()
|
||||
$remainingPath = $scriptPath.Substring(3) -replace '\\', '/'
|
||||
$wslPath = "/mnt/$driveLetter$remainingPath"
|
||||
wsl bash $wslPath
|
||||
} else {
|
||||
& $bashPath $scriptPath
|
||||
}
|
||||
|
||||
if ($LASTEXITCODE -eq 0) {
|
||||
Write-Host ""
|
||||
Write-Host "[OK] Schema-Setup erfolgreich abgeschlossen!" -ForegroundColor Green
|
||||
} else {
|
||||
Write-Host ""
|
||||
Write-Host "[WARNUNG] Schema-Setup abgeschlossen (einige Fehler wurden ignoriert)" -ForegroundColor Yellow
|
||||
}
|
||||
} else {
|
||||
Write-Host "4. Bash nicht gefunden." -ForegroundColor Yellow
|
||||
Write-Host ""
|
||||
Write-Host " Option 1: Installiere Git Bash und führe dann aus:" -ForegroundColor White
|
||||
Write-Host " bash appwrite_schema.sh" -ForegroundColor Cyan
|
||||
Write-Host ""
|
||||
Write-Host " Option 2: Siehe DATABASE_SETUP.md für manuelle Anweisungen" -ForegroundColor White
|
||||
Write-Host ""
|
||||
}
|
||||
|
||||
Write-Host ""
|
||||
Write-Host "=== Setup abgeschlossen ===" -ForegroundColor Cyan
|
||||
Write-Host ""
|
||||
Write-Host "Datenbank-ID: $DATABASE_ID" -ForegroundColor White
|
||||
Write-Host "Du kannst die Datenbank in der Appwrite-Konsole überprüfen." -ForegroundColor Gray
|
||||
Reference in New Issue
Block a user