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
21 changes: 20 additions & 1 deletion app/Services/Content/SiteFacts.php
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ public function __construct(
) {}

/**
* @return array{docs: string|null, changelog: string|null, github: string|null, issues: string|null, discussions: string|null, sponsorsProgram: string|null, license: string|null, appStore: string|null, portal: string|null, email: string|null}
* @return array{docs: string|null, changelog: string|null, github: string|null, webGithub: string|null, issues: string|null, discussions: string|null, sponsorsProgram: string|null, license: string|null, appStore: string|null, portal: string|null, email: string|null}
*/
public function links(): array
{
Expand All @@ -31,6 +31,7 @@ public function links(): array
'docs' => $this->url($links['docs'] ?? null),
'changelog' => $this->url($links['changelog'] ?? null),
'github' => $this->url($links['github'] ?? null),
'webGithub' => $this->url($links['webGithub'] ?? null),
'issues' => $this->url($links['issues'] ?? null),
'discussions' => $this->url($links['discussions'] ?? null),
'sponsorsProgram' => $this->url($links['sponsorsProgram'] ?? null),
Expand Down Expand Up @@ -64,6 +65,24 @@ public function publisher(string $locale): ?array
];
}

/**
* @return array<string, string>
*/
public function privacyPolicies(): array
{
$policies = [];

foreach ($this->json('facts.json')['privacyPolicies'] ?? [] as $name => $value) {
$url = $this->url($value);

if ($url !== null) {
$policies[$name] = $url;
}
}

return $policies;
}

public function repositoryCreatedAt(): ?CarbonImmutable
{
$date = $this->json('facts.json')['openSource']['repositoryCreatedAt'] ?? null;
Expand Down
2 changes: 2 additions & 0 deletions app/Services/Legal/LegalDocuments.php
Original file line number Diff line number Diff line change
Expand Up @@ -103,8 +103,10 @@ public function tokens(string $locale): array
$publisher = $this->facts->publisher($locale);

$values = [
...$this->facts->privacyPolicies(),
'email' => $links['email'],
'github' => $links['github'],
'webGithub' => $links['webGithub'],
'issues' => $links['issues'],
'license' => $links['license'],
'docs' => $links['docs'],
Expand Down
14 changes: 12 additions & 2 deletions resources/css/app.css
Original file line number Diff line number Diff line change
Expand Up @@ -329,7 +329,7 @@ html {
* is the width of "0" (10.1px) and cannot set it. Figures, tables and code
* keep the column.
*/
.blog-article > :is(p, ul, ol, blockquote, h2, h3) {
.blog-article > :is(p, ul, ol, blockquote, h2, h3, h4) {
max-width: 36rem;
}

Expand Down Expand Up @@ -365,8 +365,18 @@ html {
}
}

.blog-article h4 {
font-size: 1rem;
line-height: var(--lh-h3);
font-weight: 600;
text-wrap: balance;
margin-top: 1.5rem;
margin-bottom: 0.5rem;
}

.blog-article h2 + *,
.blog-article h3 + * {
.blog-article h3 + *,
.blog-article h4 + * {
margin-top: 0;
}

Expand Down
4 changes: 2 additions & 2 deletions resources/data/content/de/features/ai-mcp.json
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,7 @@
"links": [
{
"label": "Was die Mac-App sendet",
"href": "/privacy#mac-app"
"href": "/privacy#ai-tools"
}
]
},
Expand Down Expand Up @@ -213,7 +213,7 @@
},
{
"label": "Was die Mac-App sendet",
"href": "/privacy#mac-app"
"href": "/privacy#ai-tools"
},
{
"label": "TablePro mit anderen Clients vergleichen",
Expand Down
4 changes: 2 additions & 2 deletions resources/data/content/de/security.json
Original file line number Diff line number Diff line change
Expand Up @@ -68,11 +68,11 @@
{
"id": "to-tablepro",
"title": "An TablePro",
"text": "Bis du dich anmeldest oder eine Lizenz aktivierst, sendet die Mac-App an TablePro nur Nutzungsdaten, standardmäßig aktiv und in den Einstellungen abschaltbar. Ab der Version, die TablePro-Konten einführt, gehen sie direkt an PostHog, unseren Analysedienst in der EU, statt über den Server von TablePro. Auf iPhone und iPad geht nichts an TablePro, solange du Share Usage Data nicht aktivierst. Nutzungsdaten enthalten niemals Hostnamen, Benutzernamen, Passwörter, Abfragen oder Zeilen."
"text": "Mac 0.86.0 (ab 0.86.0-beta.1) sendet Nutzungsdaten direkt an PostHog EU. Sie sind standardmäßig an und in Settings abschaltbar. Das veröffentlichte iPhone/iPad sendet erst nach Share Usage Data. Apple-Diagnosen sind getrennt. Nutzungsdaten enthalten keine Hosts, Benutzernamen, Passwörter, Abfragen oder Zeilen."
}
],
"limits": [
"Die Mac-App beginnt ohne Nachfrage, Nutzungsdaten zu senden. Ab der Version, die TablePro-Konten einführt, erhält PostHog mit jedem Ereignis die IP-Adresse deines Macs und leitet daraus einen ungefähren Standort ab, und das Audit-Log deines Kontos speichert die IP-Adresse jeder Anmeldung und jedes neuen Geräts."
"Mac sendet ohne Nachfrage. PostHog erhält IP und schätzt den Ort. Angemeldete Nutzung kann Konto und Käufe verknüpfen. Kontoänderungen behalten ebenfalls Audit-IP-Adressen. Abschalten der App-Daten stoppt keine Serveranalyse."
],
"links": [
{
Expand Down
4 changes: 2 additions & 2 deletions resources/data/content/en/features/ai-mcp.json
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@
"Prompts, schema and attachments go directly to your provider under its terms. Local models keep them on your machine when served locally. TablePro receives none of this content. External MCP clients handle accessed data under their own settings and terms.",
"When you add GitHub Copilot, its option to send telemetry to GitHub starts switched on; turn it off where you set Copilot up."
],
"links": [{ "label": "What the Mac app sends", "href": "/privacy#mac-app" }]
"links": [{ "label": "What the Mac app sends", "href": "/privacy#ai-tools" }]
},
{
"id": "iphone",
Expand Down Expand Up @@ -135,7 +135,7 @@
"related": [
{ "label": "Safe Mode", "href": "/features/data-editing#safe-mode" },
{ "label": "Connection policies", "href": "/features/connections#policies" },
{ "label": "What the Mac app sends", "href": "/privacy#mac-app" },
{ "label": "What the Mac app sends", "href": "/privacy#ai-tools" },
{ "label": "Compare TablePro with other clients", "href": "/compare" }
]
}
4 changes: 2 additions & 2 deletions resources/data/content/en/security.json
Original file line number Diff line number Diff line change
Expand Up @@ -68,11 +68,11 @@
{
"id": "to-tablepro",
"title": "To TablePro",
"text": "Until you sign in or activate a license, the only data the Mac app sends TablePro is usage data, on by default and switchable in Settings. From the version that adds TablePro accounts, it goes straight to PostHog, our analytics service in the EU, instead of through TablePro’s server. On iPhone and iPad, nothing goes to TablePro unless you turn on Share Usage Data. Usage data never carries hostnames, usernames, passwords, queries or rows."
"text": "Mac 0.86.0 (starting with 0.86.0-beta.1) sends usage data directly to PostHog EU. It is on by default and can be turned off in Settings. The shipped iPhone and iPad app sends a usage report only after you enable Share Usage Data. Apple diagnostics are separate. Usage data never carries hostnames, usernames, passwords, queries or rows."
}
],
"limits": [
"The Mac app starts sending usage data without asking. From the version that adds TablePro accounts, PostHog receives your Mac’s IP address with each event and works out an approximate location from it, and your account’s audit log keeps the IP address of each sign-in and new device."
"The Mac app starts sending usage data without asking. PostHog receives its IP address and derives an approximate location. Signed-in usage can link to your account and purchases. Account changes also keep audit IP addresses. Turning off app usage data does not stop server analytics."
],
"links": [
{
Expand Down
4 changes: 2 additions & 2 deletions resources/data/content/es/features/ai-mcp.json
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,7 @@
"links": [
{
"label": "Qué envía la app para Mac",
"href": "/privacy#mac-app"
"href": "/privacy#ai-tools"
}
]
},
Expand Down Expand Up @@ -213,7 +213,7 @@
},
{
"label": "Qué envía la app para Mac",
"href": "/privacy#mac-app"
"href": "/privacy#ai-tools"
},
{
"label": "Compara TablePro con otros clientes",
Expand Down
4 changes: 2 additions & 2 deletions resources/data/content/es/security.json
Original file line number Diff line number Diff line change
Expand Up @@ -68,11 +68,11 @@
{
"id": "to-tablepro",
"title": "A TablePro",
"text": "Hasta que inicias sesión o activas una licencia, lo único que la app para Mac envía a TablePro son datos de uso, activados por defecto y configurables en los ajustes. A partir de la versión que añade las cuentas de TablePro, van directamente a PostHog, nuestro servicio de analítica en la UE, en lugar de pasar por el servidor de TablePro. En iPhone y iPad no se envía nada a TablePro salvo que actives Share Usage Data. Los datos de uso nunca incluyen nombres de host, nombres de usuario, contraseñas, consultas ni filas."
"text": "Mac 0.86.0 (desde 0.86.0-beta.1) envía datos directamente a PostHog EU. Están activados y se desactivan en Settings. El iPhone/iPad publicado solo informa tras activar Share Usage Data. Los diagnósticos Apple son separados. Los datos de uso no contienen hosts, usuarios, contraseñas, consultas ni filas."
}
],
"limits": [
"La app para Mac empieza a enviar datos de uso sin preguntar. A partir de la versión que añade las cuentas de TablePro, PostHog recibe la dirección IP de tu Mac con cada evento y deduce de ella una ubicación aproximada, y el registro de auditoría de tu cuenta guarda la dirección IP de cada inicio de sesión y de cada dispositivo nuevo."
"Mac envía sin preguntar. PostHog recibe IP y deduce ubicación aproximada. El uso conectado puede vincularse a cuenta y compras. Los cambios de cuenta también guardan IP de auditoría. Desactivar datos de la app no detiene la analítica del servidor."
],
"links": [
{
Expand Down
4 changes: 2 additions & 2 deletions resources/data/content/fr/features/ai-mcp.json
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,7 @@
"links": [
{
"label": "Ce qu’envoie l’application Mac",
"href": "/privacy#mac-app"
"href": "/privacy#ai-tools"
}
]
},
Expand Down Expand Up @@ -213,7 +213,7 @@
},
{
"label": "Ce qu’envoie l’application Mac",
"href": "/privacy#mac-app"
"href": "/privacy#ai-tools"
},
{
"label": "Comparer TablePro à d’autres clients",
Expand Down
4 changes: 2 additions & 2 deletions resources/data/content/fr/security.json
Original file line number Diff line number Diff line change
Expand Up @@ -68,11 +68,11 @@
{
"id": "to-tablepro",
"title": "Vers TablePro",
"text": "Tant que vous ne vous connectez pas et n’activez pas de licence, les seules données envoyées à TablePro par l’application Mac sont des données d’utilisation, activées par défaut et désactivables dans les réglages. À partir de la version qui ajoute les comptes TablePro, elles vont directement à PostHog, notre service d’analyse dans l’UE, au lieu de passer par le serveur de TablePro. Sur iPhone et iPad, rien n’est envoyé à TablePro sauf si vous activez Share Usage Data. Les données d’utilisation ne contiennent jamais de noms d’hôtes, noms d’utilisateurs, mots de passe, requêtes ou lignes."
"text": "Mac 0.86.0 (dès 0.86.0-beta.1) envoie directement à PostHog EU. Activé par défaut, cet envoi se désactive dans les réglages. L’app iPhone/iPad publiée attend Share Usage Data. Les diagnostics Apple sont séparés. Les données d’utilisation ne contiennent ni hôtes, utilisateurs, mots de passe, requêtes ou lignes."
}
],
"limits": [
"L’application Mac commence à envoyer des données d’utilisation sans demander. À partir de la version qui ajoute les comptes TablePro, PostHog reçoit l’adresse IP de votre Mac avec chaque événement et en déduit une localisation approximative, et le journal d’audit de votre compte conserve l’adresse IP de chaque connexion et de chaque nouvel appareil."
"Mac envoie sans demander. PostHog reçoit l’IP et déduit une position approximative. L’usage connecté peut être lié au compte et aux achats. Les changements de compte gardent aussi des IP d’audit. Désactiver l’app n’arrête pas l’analyse serveur."
],
"links": [
{
Expand Down
4 changes: 2 additions & 2 deletions resources/data/content/id/features/ai-mcp.json
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,7 @@
"links": [
{
"label": "Yang dikirim aplikasi Mac",
"href": "/privacy#mac-app"
"href": "/privacy#ai-tools"
}
]
},
Expand Down Expand Up @@ -213,7 +213,7 @@
},
{
"label": "Yang dikirim aplikasi Mac",
"href": "/privacy#mac-app"
"href": "/privacy#ai-tools"
},
{
"label": "Bandingkan TablePro dengan klien lain",
Expand Down
4 changes: 2 additions & 2 deletions resources/data/content/id/security.json
Original file line number Diff line number Diff line change
Expand Up @@ -68,11 +68,11 @@
{
"id": "to-tablepro",
"title": "Ke TablePro",
"text": "Sebelum Anda masuk atau mengaktifkan lisensi, satu-satunya data yang dikirim aplikasi Mac ke TablePro adalah data penggunaan, aktif secara bawaan dan dapat dinonaktifkan di pengaturan. Mulai versi yang menghadirkan akun TablePro, data itu langsung dikirim ke PostHog, layanan analitik kami di UE, tanpa melalui server TablePro. Di iPhone dan iPad, tidak ada yang dikirim ke TablePro kecuali Anda mengaktifkan Share Usage Data. Data penggunaan tidak pernah berisi nama host, nama pengguna, kata sandi, kueri, atau baris."
"text": "Mac 0.86.0 (mulai 0.86.0-beta.1) mengirim langsung ke PostHog EU. Aktif secara bawaan dan bisa dimatikan di Settings. iPhone/iPad yang dirilis hanya melapor setelah Share Usage Data. Diagnostik Apple terpisah. Data penggunaan tanpa host, pengguna, kata sandi, kueri atau baris."
}
],
"limits": [
"Aplikasi Mac mulai mengirim data penggunaan tanpa bertanya. Mulai versi yang menghadirkan akun TablePro, PostHog menerima alamat IP Mac Anda bersama setiap peristiwa dan memperkirakan lokasi kasar darinya, dan log audit akun Anda menyimpan alamat IP setiap proses masuk dan setiap perangkat baru."
"Mac mengirim tanpa bertanya. PostHog menerima IP dan memperkirakan lokasi. Penggunaan setelah masuk bisa terhubung ke akun/pembelian. Perubahan akun juga menyimpan IP audit. Mematikan data aplikasi tidak menghentikan analitik server."
],
"links": [
{
Expand Down
4 changes: 2 additions & 2 deletions resources/data/content/it/features/ai-mcp.json
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,7 @@
"links": [
{
"label": "Cosa invia l’app per Mac",
"href": "/privacy#mac-app"
"href": "/privacy#ai-tools"
}
]
},
Expand Down Expand Up @@ -213,7 +213,7 @@
},
{
"label": "Cosa invia l’app per Mac",
"href": "/privacy#mac-app"
"href": "/privacy#ai-tools"
},
{
"label": "Confronta TablePro con altri client",
Expand Down
4 changes: 2 additions & 2 deletions resources/data/content/it/security.json
Original file line number Diff line number Diff line change
Expand Up @@ -68,11 +68,11 @@
{
"id": "to-tablepro",
"title": "Verso TablePro",
"text": "Finché non accedi o attivi una licenza, gli unici dati che l’app per Mac invia a TablePro sono dati d’uso, attivi per impostazione predefinita e disattivabili nelle impostazioni. Dalla versione che introduce gli account TablePro, vanno direttamente a PostHog, il nostro servizio di analisi nell’UE, invece di passare dal server di TablePro. Su iPhone e iPad nulla va a TablePro finché non attivi Share Usage Data. I dati d’uso non contengono mai nomi host, nomi utente, password, query o righe."
"text": "Mac 0.86.0 (da 0.86.0-beta.1) invia dati direttamente a PostHog EU. Sono attivi e disattivabili in Settings. L’app iPhone/iPad distribuita invia solo dopo Share Usage Data. La diagnostica Apple è separata. I dati d’uso non contengono host, utenti, password, query o righe."
}
],
"limits": [
"L’app per Mac inizia a inviare dati d’uso senza chiedere. Dalla versione che introduce gli account TablePro, PostHog riceve l’indirizzo IP del tuo Mac con ogni evento e ne ricava una posizione approssimativa, e il registro di audit del tuo account conserva l’indirizzo IP di ogni accesso e di ogni nuovo dispositivo."
"Mac invia senza chiedere. PostHog riceve IP e deduce posizione approssimativa. L’uso autenticato può collegarsi ad account e acquisti. Le modifiche account conservano IP di audit. Disattivare i dati dell’app non ferma l’analisi server."
],
"links": [
{
Expand Down
4 changes: 2 additions & 2 deletions resources/data/content/ja/features/ai-mcp.json
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@
"links": [
{
"label": "Mac アプリが送信する情報",
"href": "/privacy#mac-app"
"href": "/privacy#ai-tools"
}
]
},
Expand Down Expand Up @@ -208,7 +208,7 @@
},
{
"label": "Mac アプリが送信する情報",
"href": "/privacy#mac-app"
"href": "/privacy#ai-tools"
},
{
"label": "TablePro と他のクライアントを比較",
Expand Down
4 changes: 2 additions & 2 deletions resources/data/content/ja/security.json
Original file line number Diff line number Diff line change
Expand Up @@ -68,11 +68,11 @@
{
"id": "to-tablepro",
"title": "TablePro へ",
"text": "サインインもライセンスの有効化もしていない間、Mac アプリが TablePro に送るのは利用状況データだけです。初期設定でオンですが、設定で切り替えられます。TablePro アカウントに対応したバージョン以降は、TablePro のサーバーを経由せず、EU にある分析サービス PostHog へ直接送ります。iPhone・iPad は Share Usage Data をオンにしない限り、TablePro へ何も送信しません。利用状況データにホスト名、ユーザー名、パスワード、クエリ、行データは含まれません。"
"text": "Mac 0.86.0(0.86.0-beta.1 から)は PostHog EU に直接送信します。既定で有効、Settings で無効化できます。公開済み iPhone/iPad は Share Usage Data 後だけ報告します。Apple 診断は別です。利用データにホスト名、ユーザー名、パスワード、SQL、行はありません。"
}
],
"limits": [
"Mac アプリは確認なしで利用状況データの送信を始めます。TablePro アカウントに対応したバージョン以降は、PostHog がイベントごとに Mac の IP アドレスを受け取って、そこからおおよその位置を割り出し、アカウントの監査ログにはサインインと新しいデバイスごとの IP アドレスが記録されます。"
"Mac は確認なしで送ります。PostHog は IP から概略位置を求めます。ログイン後の使用はアカウント/購入に結び付きます。変更には監査 IP も残ります。アプリの無効化はサーバー分析を止めません。"
],
"links": [
{
Expand Down
4 changes: 2 additions & 2 deletions resources/data/content/ko/features/ai-mcp.json
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@
"links": [
{
"label": "Mac 앱이 보내는 정보",
"href": "/privacy#mac-app"
"href": "/privacy#ai-tools"
}
]
},
Expand Down Expand Up @@ -208,7 +208,7 @@
},
{
"label": "Mac 앱이 보내는 정보",
"href": "/privacy#mac-app"
"href": "/privacy#ai-tools"
},
{
"label": "TablePro와 다른 클라이언트 비교",
Expand Down
Loading