Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions docs/rebuild/design/architecture.md
Original file line number Diff line number Diff line change
Expand Up @@ -526,9 +526,9 @@ the fields the IA and positioning read.
},
"versionFloor": { "text": "…", "enforced": false, "evidence": "…" }, // or null
"bundledVersion": null, // the embedded library version (SQLite, DuckDB), else null
"limits": [{ "id": "…", "value": null, "evidence": "file:line" }],
"limits": [{ "id": "…", "value": null, "evidence": "file:line" }], // an app path at macTag, or "TableProApp/docs:page.mdx:line" at docsCommit
"ios": { "inPicker": false, "openable": false, "appearsAfterSync": false },
"verified": { "macTag": "v0.77.0", "iosCommit": "…", "date": "2026-10-02" }
"verified": { "macTag": "v0.82.0", "iosCommit": "…", "docsCommit": "…", "date": "2026-10-19" }
}]
```

Expand Down
4 changes: 1 addition & 3 deletions resources/data/content/de/databases/duckdb-client.json
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,7 @@
"backup": "/features/import-export#backup",
"explain": "/features/querying#performance",
"editing": "/features/data-editing#edit",
"structure": "/features/schema#structure",
"dashboard": "/features/schema#server-dashboard"
"structure": "/features/schema#structure"
},
"sections": [
{
Expand Down Expand Up @@ -56,7 +55,6 @@
"title": "Die Datei teilen und sichern",
"paragraphs": [
"Solange TablePro eine Datei hält, können die <code>duckdb</code>-CLI, ein Notebook oder ein dbt-Lauf sie nicht öffnen. Setze <ui>Release the File Lock After</ui>, um die Datei nach einigen inaktiven Minuten freizugeben und bei der nächsten Abfrage wieder zu übernehmen, oder <ui>Open the File Read-Only</ui>, damit mehrere Leser sie teilen können. <ui>Database > Release File Lock</ui> gibt sie sofort frei und behält deine Tabs. Die Freigabe wird mit Begründung abgelehnt, wenn die Sitzung eine offene Transaktion, temporäre Tabelle, eingebundene Datenbank oder geänderte Einstellung hält.",
"Das <dashboard>Server-Dashboard</dashboard> zeigt Datenbankgröße, Blockgröße, Gesamtzahl der Blöcke, Speicherlimit und Threads.",
"<backup>Backup Dump</backup> braucht keine Installation, da {dumpTool} den Dump über die offene Verbindung schreibt. Wähle eine <code>.duckdb</code>-Datei zum späteren Wiederherstellen in TablePro oder einen Ordner mit <code>schema.sql</code>, <code>load.sql</code> und einer Parquet-Datei pro Tabelle, die pandas, Spark und BigQuery direkt lesen. Restore Dump stoppt beim ersten Objekt, dessen Name bereits vergeben ist."
]
},
Expand Down
2 changes: 1 addition & 1 deletion resources/data/content/de/databases/etcd-gui.json
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@
"Setze <ui>Key Prefix Root</ui>, etwa <code>/app</code>, um eine Verbindung auf einen Teilbaum zu begrenzen. Die Seitenleiste gruppiert Schlüssel nach ihrem ersten Pfadsegment darunter; jeder Schlüssel ist eine Zeile mit Wert, Version, Änderungs- und Erstellungsrevision sowie Lease.",
"Das Speichern einer Änderung sendet Befehle. Ein neuer Wert oder Lease schreibt den Schlüssel erneut; ein NULL-Lease entfernt den Lease, und beim Umbenennen wird der neue Name geschrieben und der alte gelöscht. Revisionsspalten gehören etcd; ihre Bearbeitung stoppt daher das Speichern und nennt die Spalte.",
"Nutze Befehle im etcdctl-Stil für Schlüssel, Watches, Leases, Mitglieder, Endpunkte, Kompaktierung und Zugriffsrechte, mit Flag-Vervollständigung. Nicht unterstützte Befehle werden vor dem Senden abgelehnt.",
"Der etcd-Treiber kann keine schreibgeschützte Sitzung öffnen, daher behandelt <safeMode>Safe Mode</safeMode> jeden Befehl als Schreibzugriff: Auf den Stufen Alert und Safe Mode fragt jeder Befehl zuerst nach; Read-Only blockiert alle."
"<safeMode>Safe Mode</safeMode> führt <code>get</code>, <code>watch</code> und die Befehle, die nur auflisten oder berichten, als Lesezugriffe aus und zählt jeden anderen Befehl als Schreibzugriff."
]
},
{
Expand Down
2 changes: 1 addition & 1 deletion resources/data/content/de/databases/mongodb-client.json
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@
"Sieh Felder der obersten Ebene als Spalten und verschachtelte Objekte als Extended JSON. Zellenänderungen erhalten Typen wie Datumswerte und ObjectIds. Verschachtelte Änderungen aktualisieren nur den geänderten Pfad, etwa <code>address.city</code>.",
"<editing>Insert Document und Edit Document</editing> nutzen Extended JSON. Edit Document liest das Serverdokument erneut und verhindert das Speichern, wenn es inzwischen geändert wurde oder verschwunden ist. <ui>Remove Field</ui> sendet <code>$unset</code>.",
"Die <filters>Filterleiste</filters> reicht bis in verschachtelte Objekte und Arrays von Objekten, sodass du direkt nach <code>customer.country</code> und <code>items.sku</code> filtern kannst. Ein Feld mit GeoJSON öffnet sich in der <map>Kartenansicht</map>.",
"<safeMode>Safe Mode</safeMode> behandelt jede MongoDB-Anweisung als Schreibzugriff, da der Treiber keine schreibgeschützte Sitzung öffnen kann. Die Stufen Alert und Safe Mode fragen bei jeder Anweisung nach; Read-Only blockiert alle."
"<safeMode>Safe Mode</safeMode> führt eine Anweisung als Lesezugriff aus, wenn sie ein einzelner lesender Aufruf ist, etwa <code>find</code>, <code>countDocuments</code> oder ein <code>aggregate</code> ohne <code>$out</code> oder <code>$merge</code>. Jedes andere JavaScript zählt als Schreibzugriff."
]
},
{
Expand Down
2 changes: 1 addition & 1 deletion resources/data/content/de/databases/mysql-client.json
Original file line number Diff line number Diff line change
Expand Up @@ -154,7 +154,7 @@
{
"id": "socket",
"question": "Kann TablePro über einen lokalen MySQL-Socket verbinden?",
"answer": "Nein. Verbindungen nutzen TCP, daher muss auf dem Server der Netzwerkzugriff aktiviert sein. Um einen Socket auf einem entfernten Server zu erreichen, leite ihn über einen SSH-Tunnel weiter."
"answer": "Ja, für einen Server auf diesem Mac. Stelle <ui>Connect Using</ui> auf <ui>Socket</ui> und gib den Pfad seiner Socket-Datei ein. Host und Port verschwinden aus dem Formular, und ein SSH-Tunnel erreicht keine Socket-Datei."
},
{
"id": "mysqldump",
Expand Down
2 changes: 1 addition & 1 deletion resources/data/content/de/databases/redis-gui.json
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@
"Durchsuche Schlüssel in durch Doppelpunkte getrennten Ordnern oder wähle ein anderes Trennzeichen. Jede Zeile zeigt Typ, TTL, Länge und Wert. Collections zeigen ihre ersten Einträge; Nicht-UTF-8-Werte öffnen sich im Hex-Editor.",
"<editing>Bearbeite Schlüsselnamen, TTLs und String-Werte</editing> im Raster. Add Row erstellt Hashes, Listen, Sets, Sorted Sets oder Strings. Filtere Namen und Typen serverseitig mit <code>SCAN MATCH</code> und <code>SCAN TYPE</code>.",
"Führe Befehle mit Anführungszeichen im redis-cli-Stil aus. Unbekannte Befehle werden unverändert gesendet. <code>DB 3 GET key</code> adressiert eine andere Datenbank, ohne die Sitzung zu ändern. In <code>MULTI</code> bleiben Antworten bis <code>EXEC</code> in der Warteschlange.",
"<safeMode>Safe Mode</safeMode> zählt jeden Redis-Befehl einschließlich <code>GET</code> als Schreibzugriff; die Stufen Alert und Safe Mode fragen bei jedem nach, Read-Only blockiert alle. <code>FLUSHDB</code> und <code>FLUSHALL</code> fragen auch bei Silent nach."
"<safeMode>Safe Mode</safeMode> führt Befehle aus seiner Liste der Lesebefehle, etwa <code>GET</code>, als Lesezugriff aus und zählt jeden anderen Befehl als Schreibzugriff. <code>FLUSHDB</code> und <code>FLUSHALL</code> fragen auch bei Silent nach."
]
},
{
Expand Down
2 changes: 1 addition & 1 deletion resources/data/content/de/databases/sqlite-client.json
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@
"id": "operate",
"title": "Warten und sichern",
"paragraphs": [
"Die Tabellenwartung führt VACUUM, ANALYZE, REINDEX und eine Integritätsprüfung aus und zeigt jede davon vorher als SQL. Das Server-Dashboard zeigt Dateigröße, Seitenzahl, Seitengröße, Journal-Modus und Cachegröße.",
"Die Tabellenwartung führt VACUUM, ANALYZE, REINDEX und eine Integritätsprüfung aus und zeigt jede davon vorher als SQL.",
"<backup>Backup Dump</backup> schreibt die Datenbank mit {dumpTool} in eine .sql-Datei; Restore Dump führt eine solche Datei auf einer Datenbank aus."
]
},
Expand Down
4 changes: 1 addition & 3 deletions resources/data/content/de/engines.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@
"mysql": {
"tagline": "EXPLAIN-Diagramme, Benutzer und Sitzungen; Backups mit mysqldump.",
"limits": {
"tcp-only": "Verbindungen verwenden Host und Port über TCP. Lokale Unix-Sockets werden nicht unterstützt.",
"load-data-local-refused": "Der Treiber verweigert LOAD DATA LOCAL INFILE. Lade Dateien stattdessen über „Importieren“."
}
},
Expand Down Expand Up @@ -188,8 +187,7 @@
"tagline": "Query-DSL-Konsole; Dokumentbearbeitung anhand von _id.",
"limits": {
"no-opensearch": "OpenSearch wird nicht unterstützt.",
"aliases-not-listed": "Aliasse und Datenstreams werden nicht in der Seitenleiste angezeigt. Sprich sie in der Konsole mit ihrem Namen an.",
"no-ssh": "SSH-Tunnel werden nicht unterstützt."
"aliases-not-listed": "Aliasse und Datenstreams werden nicht in der Seitenleiste angezeigt. Sprich sie in der Konsole mit ihrem Namen an."
}
},
"etcd": {
Expand Down
1 change: 0 additions & 1 deletion resources/data/content/de/features/data-editing.json
Original file line number Diff line number Diff line change
Expand Up @@ -164,7 +164,6 @@
"limits": [
"Data Rewind ist kein Backup. Es macht weder Trigger noch Kaskaden noch Änderungen außerhalb von TablePro rückgängig und stellt keine Zeilen ohne Primärschlüssel, Werte über {rewindMaxValue} MB oder serverberechnete Werte wieder her.",
"Ein UPDATE ohne WHERE ist ein gewöhnlicher Schreibvorgang: Nachgefragt wird nur auf Alert oder einer strengeren Stufe.",
"Auf {everyStatementWrites} zählt der Safe Mode jede Anweisung als Schreibvorgang; Alert fragt daher auch vor Lesevorgängen und Read-Only blockiert sie.",
"Das Ergebnis eines Joins, einer CTE oder UNION ist in der Datentabelle schreibgeschützt; öffne zum Bearbeiten die Tabelle."
],
"docs": [
Expand Down
2 changes: 1 addition & 1 deletion resources/data/content/de/features/schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@
"id": "server-dashboard",
"title": "Server-Dashboard",
"paragraphs": [
"Das Server-Dashboard zeigt laufende Sitzungen, Servermetriken und langsame Abfragen im gewählten Aktualisierungsintervall. Sofern das System es zulässt, kannst du über ihre Zeile eine laufende Abfrage abbrechen oder eine Sitzung beenden; beides durchläuft den Safe Mode der Verbindung. Auf SQLite, DuckDB und Typesense zeigt es nur Metriken."
"Das Server-Dashboard zeigt laufende Sitzungen, Servermetriken und langsame Abfragen im gewählten Aktualisierungsintervall. Sofern das System es zulässt, kannst du über ihre Zeile eine laufende Abfrage abbrechen oder eine Sitzung beenden; beides durchläuft den Safe Mode der Verbindung. Auf Typesense zeigt es nur Metriken."
],
"engines": [
{
Expand Down
4 changes: 1 addition & 3 deletions resources/data/content/en/databases/duckdb-client.json
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,7 @@
"backup": "/features/import-export#backup",
"explain": "/features/querying#performance",
"editing": "/features/data-editing#edit",
"structure": "/features/schema#structure",
"dashboard": "/features/schema#server-dashboard"
"structure": "/features/schema#structure"
},
"sections": [
{
Expand Down Expand Up @@ -56,7 +55,6 @@
"title": "Share the file and back it up",
"paragraphs": [
"While TablePro holds a file, the <code>duckdb</code> CLI, a notebook or a dbt run cannot open it. Set <ui>Release the File Lock After</ui> to hand the file back after some idle minutes and take it again on the next query, or <ui>Open the File Read-Only</ui> so several readers can share it. <ui>Database > Release File Lock</ui> hands it back at once and keeps your tabs. A release is refused, with the reason, while the session holds an open transaction, a temporary table, an attached database or a changed setting.",
"The <dashboard>Server Dashboard</dashboard> shows the database’s size, block size, total blocks, memory limit and threads.",
"<backup>Backup Dump</backup> needs nothing installed, because {dumpTool} writes it over the open connection. Choose a <code>.duckdb</code> file to restore into TablePro later, or a folder holding <code>schema.sql</code>, <code>load.sql</code> and one Parquet file per table, which pandas, Spark and BigQuery read directly. Restore Dump stops at the first object whose name is already taken."
]
},
Expand Down
2 changes: 1 addition & 1 deletion resources/data/content/en/databases/etcd-gui.json
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@
"Set <ui>Key Prefix Root</ui>, such as <code>/app</code>, to scope a connection to one subtree. The sidebar groups keys by their first path segment under it, and each key is a row with its value, version, mod and create revisions, and lease.",
"Saving an edit sends commands. A new value or lease puts the key again, a NULL lease removes the lease, and renaming a key puts the new name and deletes the old one. The revision columns belong to etcd, so an edit to one stops the save and names the column.",
"Run etcdctl-style key, watch, lease, member, endpoint, compaction and access-control commands with command and flag completion. Unsupported commands are rejected before reaching the server.",
"The etcd driver cannot open a read-only session, so <safeMode>Safe Mode</safeMode> treats every command as a write: at the Alert and Safe Mode levels each one asks first, and Read-Only blocks them all."
"<safeMode>Safe Mode</safeMode> runs <code>get</code>, <code>watch</code> and the commands that only list or report as reads, and counts every other command as a write."
]
},
{
Expand Down
2 changes: 1 addition & 1 deletion resources/data/content/en/databases/mongodb-client.json
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@
"Browse top-level fields as columns and nested objects as Extended JSON. Cell edits preserve types such as dates and ObjectIds. Nested edits update only the changed path, such as <code>address.city</code>.",
"<editing>Insert Document and Edit Document</editing> use Extended JSON. Edit Document re-reads the server document and refuses to save if it changed or disappeared while open. <ui>Remove Field</ui> sends <code>$unset</code>.",
"The <filters>filter bar</filters> reaches into nested objects and arrays of objects, so <code>customer.country</code> and <code>items.sku</code> filter directly. A field holding GeoJSON opens on the <map>Map view</map>.",
"<safeMode>Safe Mode</safeMode> treats every statement on a MongoDB connection as a write, because the driver cannot open a read-only session. The Alert and Safe Mode levels confirm each one, and Read-Only blocks them all."
"<safeMode>Safe Mode</safeMode> runs a statement as a read when it is one call that only reads, such as <code>find</code>, <code>countDocuments</code> or an <code>aggregate</code> without <code>$out</code> or <code>$merge</code>. Any other JavaScript counts as a write."
]
},
{
Expand Down
2 changes: 1 addition & 1 deletion resources/data/content/en/databases/mysql-client.json
Original file line number Diff line number Diff line change
Expand Up @@ -154,7 +154,7 @@
{
"id": "socket",
"question": "Can TablePro connect through a local MySQL socket?",
"answer": "No. Connections use TCP, so the server needs networking turned on. To reach a socket on a remote server, forward it through an SSH tunnel."
"answer": "Yes, for a server on this Mac. Set <ui>Connect Using</ui> to <ui>Socket</ui> and enter the path of its socket file. Host and port leave the form, and an SSH tunnel cannot reach a socket file."
},
{
"id": "mysqldump",
Expand Down
2 changes: 1 addition & 1 deletion resources/data/content/en/databases/redis-gui.json
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@
"Browse keys by colon-separated folders, or choose another separator. Each row shows the key’s type, TTL, length and value. Collections show their first entries; non-UTF-8 values open in the hex editor.",
"<editing>Edit key names, TTLs and string values</editing> in the grid. Add Row creates hashes, lists, sets, sorted sets or strings. Filter key names and types using server-side <code>SCAN MATCH</code> and <code>SCAN TYPE</code>.",
"Run commands with redis-cli-style quoting. Unknown commands are sent as written. <code>DB 3 GET key</code> targets another database without changing the session. In <code>MULTI</code>, replies stay queued until <code>EXEC</code>.",
"<safeMode>Safe Mode</safeMode> counts every Redis command as a write, <code>GET</code> included, so the Alert and Safe Mode levels confirm each one and Read-Only blocks them all. <code>FLUSHDB</code> and <code>FLUSHALL</code> ask before they run, even at Silent."
"<safeMode>Safe Mode</safeMode> runs a command on its list of read commands, such as <code>GET</code>, as a read, and counts any other command as a write. <code>FLUSHDB</code> and <code>FLUSHALL</code> ask before they run, even at Silent."
]
},
{
Expand Down
2 changes: 1 addition & 1 deletion resources/data/content/en/databases/sqlite-client.json
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@
"id": "operate",
"title": "Maintain and back up",
"paragraphs": [
"Table maintenance runs VACUUM, ANALYZE, REINDEX and an integrity check, each shown as SQL before it runs. The Server Dashboard shows the file’s size, page count, page size, journal mode and cache size.",
"Table maintenance runs VACUUM, ANALYZE, REINDEX and an integrity check, each shown as SQL before it runs.",
"<backup>Backup Dump</backup> writes the database to a .sql file with {dumpTool}, and Restore Dump runs such a file against a database."
]
},
Expand Down
4 changes: 1 addition & 3 deletions resources/data/content/en/engines.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@
"mysql": {
"tagline": "EXPLAIN diagrams, users and sessions; mysqldump backups.",
"limits": {
"tcp-only": "Connections use a host and port over TCP. A local Unix socket is not supported.",
"load-data-local-refused": "The driver refuses LOAD DATA LOCAL INFILE. Load a file with Import instead."
}
},
Expand Down Expand Up @@ -188,8 +187,7 @@
"tagline": "Query DSL console; document edits by _id.",
"limits": {
"no-opensearch": "OpenSearch is not supported.",
"aliases-not-listed": "Aliases and data streams are not listed in the sidebar. Address them by name in the console.",
"no-ssh": "SSH tunnels are not supported."
"aliases-not-listed": "Aliases and data streams are not listed in the sidebar. Address them by name in the console."
}
},
"etcd": {
Expand Down
1 change: 0 additions & 1 deletion resources/data/content/en/features/data-editing.json
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,6 @@
"limits": [
"Data Rewind is not a backup. It does not undo triggers, cascades or changes made outside TablePro, and it cannot restore rows without a primary key, values over {rewindMaxValue} MB or values the server computed.",
"An UPDATE without WHERE is an ordinary write: it asks first only at Alert or a stricter level.",
"On {everyStatementWrites}, Safe Mode counts every statement as a write, so Alert asks before reads too and Read-Only blocks them.",
"The result of a join, a CTE or a UNION is read-only in the grid; open the table to edit it."
],
"docs": [
Expand Down
2 changes: 1 addition & 1 deletion resources/data/content/en/features/schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@
"id": "server-dashboard",
"title": "Server Dashboard",
"paragraphs": [
"The Server Dashboard shows live sessions, server metrics and slow queries, refreshed at the interval you pick. Where the engine allows it, cancel a running query or terminate a session from its row; both go through the connection’s Safe Mode. On SQLite, DuckDB and Typesense it shows metrics only."
"The Server Dashboard shows live sessions, server metrics and slow queries, refreshed at the interval you pick. Where the engine allows it, cancel a running query or terminate a session from its row; both go through the connection’s Safe Mode. On Typesense it shows metrics only."
],
"engines": [{ "label": "Server Dashboard", "list": "dashboard" }],
"asset": "mac-server-dashboard-postgresql"
Expand Down
Loading