diff --git a/README.md b/README.md index 671fb8f..246c15a 100644 --- a/README.md +++ b/README.md @@ -1,32 +1,50 @@ -# JSON Studio & MariaDB Workbench +# JSON Studio & MariaDB Workbench Zwei JSON-Editoren nebeneinander, die komplett im Browser laufen. Gedacht für den Alltag mit Daten aus Shops, Schnittstellen und Tabellen: importieren, vergleichen, umformen, wieder ausgeben. -**Live nutzen:** [https://software.obraasch.de/](https://software.obraasch.de/json-workbench/json-workbench.html) +**Live nutzen:** https://software.obraasch.de/json-workbench/ --- ## Funktionen **Import** -JSON · CSV · Excel (xlsx/xls) · YAML (auch mehrere Dokumente) · XML · -SQL-Dump (liest `INSERT`-Anweisungen zurück) · direkt von einer URL · -aus einer Datenbank über eine HTTP-Brücke +JSON · CSV · Excel (xlsx/xls, auch mehrere Blätter) · YAML (auch mehrere +Dokumente) · XML · SQL-Dump (liest `INSERT`-Anweisungen zurück, auch mit +mehreren Tabellen) · direkt von einer URL · aus einer Datenbank über eine +HTTP-Brücke **Export** -JSON · CSV · Excel · YAML · XML · MariaDB-Skript (`CREATE TABLE` + `INSERT`) · -JSON-Schema (Draft 2020-12) · an einen Webhook senden · in eine Datenbank schreiben +JSON · CSV · Excel · YAML · XML · JSON-Schema (Draft 2020-12) · an einen +Webhook senden · in eine Datenbank schreiben (anhängen, ersetzen oder +aktualisieren) + +**MariaDB-Skript-Generator** +`CREATE TABLE` + `INSERT` aus den vorhandenen Daten, mit: +- automatischer Typerkennung inklusive Unterscheidung zwischen `INT` und dem + größeren `BIGINT` bei sehr großen Zahlen +- manueller Korrektur jedes Spaltentyps (mit Längenangabe und Erklärung, wofür + welcher Typ gedacht ist) +- wählbarem Primärschlüssel: automatische `id`-Spalte, eine vorhandene Spalte, + oder mehrere zusammen als zusammengesetzter Schlüssel +- Umbenennung einzelner Spalten für den SQL-Namen, unabhängig vom JSON-Feldnamen +- Einstellungen werden pro Dokument gemerkt, bis der Editor geleert wird **Arbeiten mit zwei Dokumenten** Inhalt hin- und herkopieren · Verschachtelungen auflösen („Flatten“, nötig für -CSV/Excel/Datenbank) · Feld-für-Feld-Vergleich mit Bericht als Markdown oder CSV +CSV/Excel/Datenbank) · Feld-für-Feld-Vergleich mit Bericht als Markdown oder +CSV · Pfad eines Feldes kopieren (z. B. für n8n-Ausdrücke) -**Sonstiges** -Hell- und Dunkelmodus · Snippet-Bibliothek · Tastaturkürzel · integrierte -Anleitung · Sicherung aller Einstellungen als JSON-Datei für den Umzug auf -einen anderen Rechner +**Komfort** +Hell- und Dunkelmodus · Dateiname wird beim Öffnen automatisch zum +Dokumentnamen · Liste der letzten 5 geöffneten Dateien pro Editor · +Snippet-Bibliothek für wiederkehrende Vorlagen · optionale automatische +Sicherung als Download in festem Abstand (standardmäßig aus) · +Tastaturkürzel · integrierte Anleitung mit Tooltips · Sicherung aller +Einstellungen, Snippets und Datenbank-Profile als JSON-Datei für den Umzug +auf einen anderen Rechner --- @@ -97,46 +115,25 @@ entgegennimmt und an die Datenbank weiterreicht. --- -## Die Übersichtsseite +## Datenschutz & Datenhaltung -`index.php` gehört ins Wurzelverzeichnis der Domain und listet automatisch -alle Unterordner auf, die eine Datei `tool.json` enthalten. Ein Ordner ohne -diese Datei taucht nicht auf. - -```json -{ - "name": "JSON Studio & MariaDB Workbench", - "beschreibung": "Kurzbeschreibung in einem Satz.", - "einstieg": "json-workbench.html", - "repository": "https://gitea.obraasch.de/oliver/json-studio", - "repositoryName": "Quellcode (Gitea)", - "version": "3.0", - "lizenz": "MIT", - "stand": "2026-09-16", - "tags": ["JSON", "CSV", "Excel"], - "sichtbar": true -} -``` - -Nur `name` und `einstieg` sind wirklich nötig, alles andere ist optional. -`sichtbar: false` blendet einen Ordner aus, ohne die Datei zu löschen. - -Die Seite verarbeitet bewusst **keinerlei Nutzereingaben** — weder `$_GET` -noch `$_POST` noch Cookies. Damit entfällt die übliche Angriffsfläche. Inhalte -aus `tool.json` werden trotzdem geprüft und beim Ausgeben vollständig maskiert; -Pfade dürfen den Tool-Ordner nicht verlassen, externe Links nur `http`/`https` -sein. Die Seite kommt ohne JavaScript aus, entsprechend verbietet die -Content-Security-Policy Skripte komplett. +Alles, was hier bearbeitet wird, bleibt im Browser. Es wird nichts an den +Server übertragen, von dem die Seite geladen wurde — außer bewusst über +URL-Import, Webhook-Versand oder Datenbankanbindung, jeweils an eine selbst +angegebene Adresse. Inhalte, Namen, Einstellungen, Snippets und +Datenbank-Profile liegen im lokalen Speicher (`localStorage`) des jeweiligen +Browsers. --- -## Rechtliches beim öffentlichen Betrieb +## Auf der eigenen Domain veröffentlichen -In Deutschland brauchst du für ein öffentlich erreichbares Angebot ein -Impressum (§ 5 DDG) und eine Datenschutzerklärung. Vorlagen liegen als -`impressum.html` und `datenschutz.html` bei — mit Platzhaltern, die vor der -Veröffentlichung ausgefüllt werden müssen. Die Vorlagen sind nach bestem -Wissen erstellt, ersetzen aber keine Rechtsberatung. +Eine kleine Übersichtsseite, die dieses und weitere Werkzeuge automatisch +auflistet, liegt in einem eigenen Repository: +https://git.obraasch.de/olli1986/software-obraasch-de-overview + +Dort finden sich außerdem Vorlagen für Impressum und Datenschutzerklärung +sowie Hinweise zur Absicherung des Webservers. --- @@ -157,3 +154,10 @@ SheetJS steht unter Apache-2.0. Bei Weitergabe muss der Lizenztext beiliegen und es müssen Änderungen an den Dateien kenntlich gemacht werden — am einfachsten, indem du die unveränderte Datei samt ihrer `LICENSE` in `lib/` ablegst. + +--- + +## Hinweis + +Entstanden als Projekt von Oliver Braasch, mit Unterstützung von Claude +(Anthropic) bei Entwurf, Umsetzung und Dokumentation.