Add dotenv package for environment variable management and refactor SMTP credential handling in email services. Enhance error handling for missing SMTP credentials across various API endpoints to improve reliability and maintainability.
This commit is contained in:
66
scripts/README-re-encrypt.md
Normal file
66
scripts/README-re-encrypt.md
Normal file
@@ -0,0 +1,66 @@
|
||||
# Daten-Neuverschlüsselung
|
||||
|
||||
Dieses Script verschlüsselt alle verschlüsselten Daten mit einem neuen Schlüssel neu.
|
||||
|
||||
## Verwendung
|
||||
|
||||
### Voraussetzungen
|
||||
|
||||
1. Stelle sicher, dass `ENCRYPTION_KEY` in der `.env` Datei gesetzt ist:
|
||||
```bash
|
||||
ENCRYPTION_KEY=dein-neuer-sicherer-schlüssel-hier
|
||||
```
|
||||
|
||||
2. Optional: Wenn du einen spezifischen alten Schlüssel verwendest (nicht den Standard), kannst du ihn angeben:
|
||||
```bash
|
||||
node scripts/re-encrypt-data.js --old-key="dein-alter-schlüssel"
|
||||
```
|
||||
|
||||
### Ausführung
|
||||
|
||||
```bash
|
||||
node scripts/re-encrypt-data.js
|
||||
```
|
||||
|
||||
## Was wird neu verschlüsselt?
|
||||
|
||||
Das Script verarbeitet folgende Dateien:
|
||||
|
||||
1. **`server/data/users.json`** - Benutzerdaten
|
||||
2. **`server/data/members.json`** - Mitgliederdaten
|
||||
3. **`server/data/membership-applications/*.json`** - Mitgliedschaftsanträge (wenn sie ein `encryptedData` Feld enthalten)
|
||||
4. **`server/data/membership-applications/*.data`** - Verschlüsselte Antragsdaten
|
||||
|
||||
## Sicherheit
|
||||
|
||||
- **Automatische Backups**: Vor jeder Änderung werden Backups im Verzeichnis `backups/re-encrypt-<timestamp>/` erstellt
|
||||
- **Mehrere Schlüssel**: Das Script versucht automatisch verschiedene alte Standard-Schlüssel:
|
||||
- `default-key-change-in-production`
|
||||
- `local_development_encryption_key_change_in_production`
|
||||
- Ein optional angegebener `--old-key` Parameter
|
||||
|
||||
## Beispiel
|
||||
|
||||
```bash
|
||||
# Standard-Ausführung (verwendet Standard-Entwicklungsschlüssel)
|
||||
node scripts/re-encrypt-data.js
|
||||
|
||||
# Mit spezifischem altem Schlüssel
|
||||
node scripts/re-encrypt-data.js --old-key="mein-alter-produktions-schlüssel"
|
||||
```
|
||||
|
||||
## Fehlerbehandlung
|
||||
|
||||
Falls die Entschlüsselung mit allen verfügbaren Schlüsseln fehlschlägt:
|
||||
- Das Script bricht ab
|
||||
- Alle Backups bleiben erhalten
|
||||
- Du kannst die Dateien manuell aus den Backups wiederherstellen
|
||||
|
||||
## Wichtig
|
||||
|
||||
⚠️ **WICHTIG**: Stelle sicher, dass:
|
||||
- Die `.env` Datei den neuen `ENCRYPTION_KEY` enthält
|
||||
- Du ein Backup der Daten hast (wird automatisch erstellt)
|
||||
- Der Server während der Ausführung nicht läuft
|
||||
- Du nach der Ausführung testest, ob alles funktioniert
|
||||
|
||||
Reference in New Issue
Block a user