mirror of
https://github.com/Terranom674/Piwigo_Bratonien_Tools.git
synced 2026-09-19 19:54:31 +00:00
Refresh current development status for 0.9.4.2
This commit is contained in:
@@ -1,122 +1,121 @@
|
||||
# Aktueller Entwicklungsstand
|
||||
|
||||
Stand: 17.08.2026
|
||||
Stand: 18.08.2026
|
||||
|
||||
## Plugin
|
||||
|
||||
- Aktuelle Plugin-Version: **0.9.3.17**
|
||||
- Aktueller Entwicklungsblock: **NC Connector – Verbindungsverwaltung / laufende Optimierung**
|
||||
- NC Connector ist Feature 10 und noch nicht vollständig abgeschlossen.
|
||||
- Solange dieser Optimierungsblock läuft, bleibt die Version im Bereich `0.9.3.x`.
|
||||
- Aktuelle Plugin-Version: **0.9.4.2**
|
||||
- Aktueller Entwicklungsblock: **NC Connector – Endnutzer-Assistent und Konsolidierung**
|
||||
- `0.9.3.43` markiert den abgeschlossenen vorherigen Meilenstein.
|
||||
- `0.9.4.x` ist der neue Entwicklungsblock.
|
||||
|
||||
## Aktueller GitHub-Stand
|
||||
## Produktiver Stand
|
||||
|
||||
Der lokale NC Connector ist für den aktuellen Bratonien-Einsatz im bisherigen Login-Weg End-to-End funktionsfähig. Mit `0.9.3.17` beginnt der Umbau auf API-first für die Piwigo-Synchronisierung.
|
||||
Der lokale NC Connector ist im aktuellen Bratonien-Einsatz End-to-End funktionsfähig:
|
||||
|
||||
Bereits erfolgreich umgesetzt und getestet:
|
||||
- Nextcloud-Freigaben `folder` und `file` werden verarbeitet.
|
||||
- Ordnerfreigaben werden als physische Piwigo-Alben synchronisiert.
|
||||
- Einzeldateifreigaben werden als echte Piwigo-Orphans ohne Albumzuordnung registriert.
|
||||
- Entfernte Freigaben werden aus Piwigo entfernt, Originaldateien bleiben erhalten.
|
||||
- Neue physische Connector-Alben werden privat angelegt.
|
||||
- API-first-Synchronisierung ist produktiv für Piwigo **16.4.0** freigegeben.
|
||||
- Piwigo-Album- und Fotoinformationen werden nach dem direkten Sync aktualisiert.
|
||||
- Der gemeinsame systemd-Timer verarbeitet aktive Verbindungen regelmäßig.
|
||||
|
||||
- Nextcloud-Freigaben vom Typ `folder` und `file` werden aus der Source-View gelesen.
|
||||
- Ordnerfreigaben werden als Verzeichnisbaum im Shadow Tree gespiegelt.
|
||||
- Einzeldateifreigaben werden als Symlink direkt im Galerie-Root angelegt und als echte Piwigo-Orphans ohne Albumzuordnung registriert.
|
||||
- Entfernte Einzeldateifreigaben werden beim normalen Connector-Lauf aus Shadow Tree und Piwigo entfernt.
|
||||
- Das Nextcloud-Original bleibt bei Löschvorgängen unangetastet.
|
||||
- Connector-getriggerte neue physische Alben werden standardmäßig privat angelegt.
|
||||
- Der gemeinsame systemd-Timer `bratonien-nc-connector.timer` läuft produktiv.
|
||||
## 0.9.4.1
|
||||
|
||||
Neu in `0.9.3.17`:
|
||||
Die Statusaktualisierung im Admin-UI wurde von Seiten-Reload auf gezielte DOM-Aktualisierung umgestellt. Der Poller aktualisiert nur noch **Letzter Lauf** und **Nächster Lauf**. Offene Dialoge, Details und der Assistent bleiben dadurch erhalten.
|
||||
|
||||
- die Piwigo-API ist als bevorzugter Synchronisierungsweg vorgesehen;
|
||||
- ein erfolgreich geprüfter API-Key wird verschlüsselt in der Piwigo-Konfiguration gespeichert;
|
||||
- produktive API-Synchronisierung ist ausdrücklich an die freigegebene Piwigo-Version **16.4.0** gebunden;
|
||||
- neuer Webservice `bratonien.nc.syncProductive` delegiert den freigegebenen produktiven Dateisync an Piwigos Core-Synchronisierung;
|
||||
- `runtime/lib/piwigo-sync.php` versucht zuerst die API und fällt nur bei nicht nutzbarer API auf Benutzername/Passwort zurück;
|
||||
- der bisherige Benutzername/Passwort-Zugang kann als verschlüsselter Fallback gespeichert oder gelöscht werden;
|
||||
- ein Benutzername/Passwort-Fallback kann außerdem einmalig manuell ausgeführt werden, ohne die Zugangsdaten zu speichern;
|
||||
- neue lokale Verbindungen werden intern als `api-first` angelegt; ein dauerhaft gespeicherter Login-Fallback ist technisch nicht mehr zwingend, sofern ein API-Zugang vorhanden ist.
|
||||
## 0.9.4.2
|
||||
|
||||
### Verbindungsassistent
|
||||
|
||||
Der Assistent wurde erneut aus Endnutzersicht konsolidiert:
|
||||
|
||||
1. Nextcloud-Adresse + Benutzer + Passwort.
|
||||
2. Automatischer Web-Scan über HTTP/HTTPS und OCS.
|
||||
3. Der Nutzer sieht zunächst keine komplette Datenbank-Technikmaske.
|
||||
4. Für den Datenzugriff werden zuerst nur Lese-Benutzer und Passwort abgefragt.
|
||||
5. Host = Nextcloud-Host, Port 5432 und Datenbank `nextcloud` werden nur als automatischer Prüfversuch verwendet und nicht als sicher erkannt dargestellt.
|
||||
6. Scheitert dieser Versuch, fragt der Assistent gezielt die abweichende Datenbank-Adresse, Port und Datenbank ab.
|
||||
7. Storage-Mounts werden nur abgefragt, wenn sie nicht sicher aus vorhandenen Zuordnungen übernommen werden können.
|
||||
8. Danach folgen Showcase-Benutzer, Piwigo-API-Test/Skip und Fallback.
|
||||
9. Erst der letzte Schritt legt die Verbindung dauerhaft an.
|
||||
|
||||
Fehler leeren die Wizard-Eingaben nicht. Geheimnisse bleiben während des Wizards serverseitig in der PHP-Sitzung und werden nicht im Browser-Web-Storage persistiert.
|
||||
|
||||
### Storage-Mappings
|
||||
|
||||
Das Storage-Format erlaubt jetzt einen leeren `source_prefix`. Damit kann ein kompletter Storage direkt auf einen lokalen Mount zeigen. Die frühere Fehlermeldung
|
||||
|
||||
`Storage-Zeilen muessen das Format storage_id | source_prefix | local_mount verwenden.`
|
||||
|
||||
tritt bei einem legitimen Root-Mapping nicht mehr auf.
|
||||
|
||||
### Native Aktivierung
|
||||
|
||||
`nc-connector-install.php` unterstützt jetzt auch API-only-Verbindungen ohne dauerhaft gespeicherten Login-Fallback. Ein Fallback ist nur nötig, wenn keine nutzbare API gespeichert ist.
|
||||
|
||||
### Dokumentation
|
||||
|
||||
README und CURRENT_STATUS wurden auf den aktuellen `0.9.4.x`-Stand gebracht und beschreiben jetzt den realen API-first-Sync, den Wizard, die Statusaktualisierung ohne Reload und die aktuelle Runtime-Architektur.
|
||||
|
||||
## Architektur NC Connector
|
||||
|
||||
- Nextcloud bleibt die einzige dauerhafte Quelle der Originalbilder.
|
||||
- Piwigo erhält nur die benötigte Verzeichnis-/Symlink-Struktur und erzeugt daraus seine Derivate und Cache-Dateien.
|
||||
- Der Connector arbeitet mit einem PostgreSQL-Leser und den Views `piwigo_showcase_sources` und `piwigo_showcase_activity`.
|
||||
- Laufzeitdaten liegen unter `/var/lib/bratonien-tools/nc-connector/...`.
|
||||
- Verbindungs-Konfigurationen liegen unter `/etc/bratonien-tools/nc-connector/connection-*.conf`.
|
||||
- Der Shadow Tree enthält Verzeichnisse und Symlinks, keine Kopien der Originaldateien.
|
||||
- Alle aktivierten Verbindungen werden über `runtime/run-all.sh` gemeinsam verarbeitet.
|
||||
- Nextcloud ist Quelle der Originalbilder.
|
||||
- Piwigo erhält einen Shadow Tree aus Verzeichnissen und Symlinks.
|
||||
- PostgreSQL-Reader und die Views `piwigo_showcase_sources` / `piwigo_showcase_activity` liefern Quellen und Aktivität.
|
||||
- Runtime-Konfigurationen: `/etc/bratonien-tools/nc-connector/connection-*.conf`
|
||||
- State: `/var/lib/bratonien-tools/nc-connector/connection-ID`
|
||||
- Öffentlicher Admin-Status: Piwigo `_data/bratonien-tools/nc-connector-status/`
|
||||
- Runner: `runtime/run-all.sh`
|
||||
- Einzelverbindung: `runtime/sync.sh`
|
||||
|
||||
## Nextcloud-Freigabemodell
|
||||
## Piwigo-Synchronisierung
|
||||
|
||||
Der Connector unterstützt komplette Ordner und einzelne Bilder.
|
||||
|
||||
- `folder` -> Verzeichnisstruktur spiegeln und über Piwigos Dateisynchronisierung als physische Albumstruktur einlesen;
|
||||
- `file` -> Symlink direkt im Galerie-Root und anschließende Registrierung als Piwigo-Orphan.
|
||||
|
||||
Für einzelne Dateien wird kein künstlicher Unterordner erzeugt.
|
||||
|
||||
## Activity-Gate
|
||||
|
||||
Das Activity-Gate berücksichtigt neben dem Nextcloud-Aktivitätsstand auch die Signatur der aktuell sichtbaren Freigaben. Weiterhin vorhanden sind Quiet-Time, maximale Wartezeit, periodischer Full-Sync und verbindungsspezifischer State.
|
||||
|
||||
## Piwigo-Synchronisation
|
||||
|
||||
### API-first
|
||||
|
||||
Der normale Runtime-Lauf verwendet ab `0.9.3.17` folgende Priorität:
|
||||
Priorität:
|
||||
|
||||
1. gespeicherter Piwigo-API-Key;
|
||||
2. bei API-Fehler, fehlender Freigabe für die installierte Piwigo-Version oder nicht vorhandener API: gespeicherter Benutzername/Passwort-Fallback;
|
||||
3. ohne nutzbaren API- und Fallback-Zugang wird der Piwigo-Sync mit einer klaren Fehlermeldung abgebrochen.
|
||||
2. bei nicht nutzbarer API gespeicherter Benutzername/Passwort-Fallback;
|
||||
3. ohne beide Wege Abbruch mit Fehlerstatus.
|
||||
|
||||
Nach einem Piwigo-Update wird die produktive API nicht automatisch für die neue Version freigeschaltet. Erst nach einem Kompatibilitätstest wird die Versionsfreigabe im Plugin angehoben. Bis dahin bleibt nur der Login-Fallback zulässig.
|
||||
Produktive API-Methoden:
|
||||
|
||||
### Physische Alben
|
||||
- `bratonien.nc.syncProductive`
|
||||
- `bratonien.nc.syncOrphans`
|
||||
|
||||
`bratonien.nc.syncProductive` ist aktuell nur für Piwigo **16.4.0** freigegeben. Der Endpoint läuft als Administrator-Webservice und verwendet für den eigentlichen Dateisync Piwigos Core-Synchronisierung. Neue Connector-Alben werden dabei privat angelegt.
|
||||
`bratonien.nc.syncProductive` ist auf Piwigo 16.4.0 versionsgebunden. Der direkte Sync verwendet Bratonien-eigene Logik auf Basis der Piwigo-Core-Funktionen, nicht das Rendern oder Fernsteuern einer Admin-Seite.
|
||||
|
||||
### Root-Dateien / Orphans
|
||||
## Activity Gate und Shadow Tree
|
||||
|
||||
`bratonien.nc.syncOrphans` verarbeitet direkte Dateien im Galerie-Root separat. Neue Root-Dateien werden als Piwigo-Orphans ohne Albumzuordnung registriert. Entfernte Root-Dateien werden nur aus Piwigo entfernt; das Nextcloud-Original bleibt unberührt.
|
||||
Das Activity Gate berücksichtigt:
|
||||
|
||||
## Erfolgreiche Live-Tests bis 0.9.3.16
|
||||
- Aktivitätsstand;
|
||||
- Share-Fingerprint;
|
||||
- Quiet-Time;
|
||||
- Max-Wartezeit;
|
||||
- periodischen Full-Sync;
|
||||
- Reparaturbedarf bei beschädigter lokaler Struktur.
|
||||
|
||||
Bestätigt wurden:
|
||||
Der Shadow-Tree-Wechsel besitzt einen Rollback auf den vorherigen Baum, falls das Umschalten fehlschlägt.
|
||||
|
||||
- Ordnerfreigaben werden korrekt eingelesen;
|
||||
- Einzeldateifreigaben werden als `file` erkannt und im Galerie-Root verlinkt;
|
||||
- Orphan-Anlage und Orphan-Löschung funktionieren;
|
||||
- physische neue Connector-Alben werden privat angelegt;
|
||||
- der automatische Timer kann regulär laufen.
|
||||
## Sicherheit
|
||||
|
||||
## Offener Test für 0.9.3.17
|
||||
- Nextcloud-Originale werden nicht gelöscht.
|
||||
- Connector-Zugangsdaten werden verschlüsselt gespeichert.
|
||||
- Wizard-Secrets bleiben serverseitig.
|
||||
- Storage-Pfade werden validiert.
|
||||
- SQL-View-Namen werden validiert.
|
||||
- Piwigo-API ist versionsgebunden.
|
||||
- Mutierende Admin-Aktionen verwenden Post/Redirect/Get, sodass Browser-Reloads sie nicht erneut ausführen.
|
||||
- Self-Updates sind an einen konkreten Commit und SHA-256 gebunden.
|
||||
|
||||
Vor Abschluss des API-first-Blocks muss noch live geprüft werden:
|
||||
## Noch offen
|
||||
|
||||
1. Plugin-Update auf `0.9.3.17`;
|
||||
2. API-Key im NC Connector prüfen und speichern;
|
||||
3. produktiver Lauf verwendet `bratonien.nc.syncProductive` erfolgreich;
|
||||
4. Ordner- und Orphan-Sync bleiben unverändert korrekt;
|
||||
5. gespeicherter Login-Fallback übernimmt bei absichtlich nicht nutzbarer API;
|
||||
6. einmaliger Fallback funktioniert ohne Speicherung;
|
||||
7. gelöschter Fallback wird vom Runtime-Lauf nicht mehr verwendet.
|
||||
|
||||
## Sicherheit / Betriebsmodell
|
||||
|
||||
- Nextcloud bleibt Eigentümer der Originaldateien.
|
||||
- Der Connector löscht keine Originaldateien aus den Storage-Mounts.
|
||||
- API- und Login-Zugangsdaten werden verschlüsselt gespeichert und nicht in das Repository geschrieben.
|
||||
- Die API hat Vorrang, ist aber streng versionsgebunden.
|
||||
- Benutzername/Passwort ist nur Fallback und kann dauerhaft, einmalig oder gar nicht verwendet werden.
|
||||
- Neue Connector-Alben werden privat angelegt.
|
||||
|
||||
## Bekannte offene Punkte
|
||||
|
||||
Der NC Connector bleibt im Entwicklungsblock `0.9.3.x`. Nach erfolgreichem API-first-Livetest folgen insbesondere:
|
||||
|
||||
- Bereinigung und Vereinfachung der Verbindungsverwaltung im Admin-UI;
|
||||
- Remote-Nextcloud-Adapter;
|
||||
- Entscheidung über verbleibende Legacy-/Migrationshilfen;
|
||||
- weitere Komfortfunktionen für Status, Diagnose und Administration.
|
||||
- vollständiger Remote-Nextcloud-Adapter ohne direkten PostgreSQL-/Storage-Zugriff;
|
||||
- weitere Bereinigung alter Legacy-Migrationshelfer, sobald sie nicht mehr benötigt werden;
|
||||
- weitere Endnutzer-Optimierung des Assistenten auf Basis realer Fehler- und Installationspfade.
|
||||
|
||||
## Repository-Fallback
|
||||
|
||||
Während der Entwicklung bleibt GitHub das führende Repository. Zusätzlich existiert auf dem privaten Gitea-System ein Pull-Mirror als Ausfall-/Fallback-Ebene.
|
||||
GitHub bleibt das führende Repository. Das private Gitea-System dient weiterhin als Mirror/Fallback.
|
||||
|
||||
Reference in New Issue
Block a user