diff --git a/app/Services/Content/SiteFacts.php b/app/Services/Content/SiteFacts.php index 7322d028..a698a913 100644 --- a/app/Services/Content/SiteFacts.php +++ b/app/Services/Content/SiteFacts.php @@ -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 { @@ -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), @@ -64,6 +65,24 @@ public function publisher(string $locale): ?array ]; } + /** + * @return array + */ + 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; diff --git a/app/Services/Legal/LegalDocuments.php b/app/Services/Legal/LegalDocuments.php index 4316ce3a..130b1f10 100644 --- a/app/Services/Legal/LegalDocuments.php +++ b/app/Services/Legal/LegalDocuments.php @@ -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'], diff --git a/resources/css/app.css b/resources/css/app.css index adf3de48..aabcf729 100644 --- a/resources/css/app.css +++ b/resources/css/app.css @@ -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; } @@ -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; } diff --git a/resources/data/content/de/features/ai-mcp.json b/resources/data/content/de/features/ai-mcp.json index fe3203e5..1d431fd7 100644 --- a/resources/data/content/de/features/ai-mcp.json +++ b/resources/data/content/de/features/ai-mcp.json @@ -109,7 +109,7 @@ "links": [ { "label": "Was die Mac-App sendet", - "href": "/privacy#mac-app" + "href": "/privacy#ai-tools" } ] }, @@ -213,7 +213,7 @@ }, { "label": "Was die Mac-App sendet", - "href": "/privacy#mac-app" + "href": "/privacy#ai-tools" }, { "label": "TablePro mit anderen Clients vergleichen", diff --git a/resources/data/content/de/security.json b/resources/data/content/de/security.json index d916f949..80d3c8ac 100644 --- a/resources/data/content/de/security.json +++ b/resources/data/content/de/security.json @@ -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": [ { diff --git a/resources/data/content/en/features/ai-mcp.json b/resources/data/content/en/features/ai-mcp.json index 71bf6a75..a2e2a57c 100644 --- a/resources/data/content/en/features/ai-mcp.json +++ b/resources/data/content/en/features/ai-mcp.json @@ -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", @@ -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" } ] } diff --git a/resources/data/content/en/security.json b/resources/data/content/en/security.json index 8117fa10..efa2fcca 100644 --- a/resources/data/content/en/security.json +++ b/resources/data/content/en/security.json @@ -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": [ { diff --git a/resources/data/content/es/features/ai-mcp.json b/resources/data/content/es/features/ai-mcp.json index 3462d974..4026f04a 100644 --- a/resources/data/content/es/features/ai-mcp.json +++ b/resources/data/content/es/features/ai-mcp.json @@ -109,7 +109,7 @@ "links": [ { "label": "Qué envía la app para Mac", - "href": "/privacy#mac-app" + "href": "/privacy#ai-tools" } ] }, @@ -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", diff --git a/resources/data/content/es/security.json b/resources/data/content/es/security.json index 2ff2fc66..c628eb92 100644 --- a/resources/data/content/es/security.json +++ b/resources/data/content/es/security.json @@ -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": [ { diff --git a/resources/data/content/fr/features/ai-mcp.json b/resources/data/content/fr/features/ai-mcp.json index 7f645867..efabf1c1 100644 --- a/resources/data/content/fr/features/ai-mcp.json +++ b/resources/data/content/fr/features/ai-mcp.json @@ -109,7 +109,7 @@ "links": [ { "label": "Ce qu’envoie l’application Mac", - "href": "/privacy#mac-app" + "href": "/privacy#ai-tools" } ] }, @@ -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", diff --git a/resources/data/content/fr/security.json b/resources/data/content/fr/security.json index 5aff994c..7b163fe8 100644 --- a/resources/data/content/fr/security.json +++ b/resources/data/content/fr/security.json @@ -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": [ { diff --git a/resources/data/content/id/features/ai-mcp.json b/resources/data/content/id/features/ai-mcp.json index 1dfc9e71..7b070a70 100644 --- a/resources/data/content/id/features/ai-mcp.json +++ b/resources/data/content/id/features/ai-mcp.json @@ -109,7 +109,7 @@ "links": [ { "label": "Yang dikirim aplikasi Mac", - "href": "/privacy#mac-app" + "href": "/privacy#ai-tools" } ] }, @@ -213,7 +213,7 @@ }, { "label": "Yang dikirim aplikasi Mac", - "href": "/privacy#mac-app" + "href": "/privacy#ai-tools" }, { "label": "Bandingkan TablePro dengan klien lain", diff --git a/resources/data/content/id/security.json b/resources/data/content/id/security.json index 8453da1c..9e6a511c 100644 --- a/resources/data/content/id/security.json +++ b/resources/data/content/id/security.json @@ -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": [ { diff --git a/resources/data/content/it/features/ai-mcp.json b/resources/data/content/it/features/ai-mcp.json index 695e3037..75a31b67 100644 --- a/resources/data/content/it/features/ai-mcp.json +++ b/resources/data/content/it/features/ai-mcp.json @@ -109,7 +109,7 @@ "links": [ { "label": "Cosa invia l’app per Mac", - "href": "/privacy#mac-app" + "href": "/privacy#ai-tools" } ] }, @@ -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", diff --git a/resources/data/content/it/security.json b/resources/data/content/it/security.json index 4ad6f327..21b8d3d7 100644 --- a/resources/data/content/it/security.json +++ b/resources/data/content/it/security.json @@ -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": [ { diff --git a/resources/data/content/ja/features/ai-mcp.json b/resources/data/content/ja/features/ai-mcp.json index 9ea75634..2a61c2fe 100644 --- a/resources/data/content/ja/features/ai-mcp.json +++ b/resources/data/content/ja/features/ai-mcp.json @@ -104,7 +104,7 @@ "links": [ { "label": "Mac アプリが送信する情報", - "href": "/privacy#mac-app" + "href": "/privacy#ai-tools" } ] }, @@ -208,7 +208,7 @@ }, { "label": "Mac アプリが送信する情報", - "href": "/privacy#mac-app" + "href": "/privacy#ai-tools" }, { "label": "TablePro と他のクライアントを比較", diff --git a/resources/data/content/ja/security.json b/resources/data/content/ja/security.json index f5aa6d66..9e25a63b 100644 --- a/resources/data/content/ja/security.json +++ b/resources/data/content/ja/security.json @@ -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": [ { diff --git a/resources/data/content/ko/features/ai-mcp.json b/resources/data/content/ko/features/ai-mcp.json index 6c07b095..4bd44b23 100644 --- a/resources/data/content/ko/features/ai-mcp.json +++ b/resources/data/content/ko/features/ai-mcp.json @@ -104,7 +104,7 @@ "links": [ { "label": "Mac 앱이 보내는 정보", - "href": "/privacy#mac-app" + "href": "/privacy#ai-tools" } ] }, @@ -208,7 +208,7 @@ }, { "label": "Mac 앱이 보내는 정보", - "href": "/privacy#mac-app" + "href": "/privacy#ai-tools" }, { "label": "TablePro와 다른 클라이언트 비교", diff --git a/resources/data/content/ko/security.json b/resources/data/content/ko/security.json index ded2aaee..32316998 100644 --- a/resources/data/content/ko/security.json +++ b/resources/data/content/ko/security.json @@ -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에 직접 보냅니다. 기본 켜짐이며 설정에서 끕니다. 출시 iPhone/iPad는 Share Usage Data 후에만 보고합니다. Apple 진단은 별도입니다. 사용 데이터에 호스트명, 사용자명, 암호, 쿼리, 행은 없습니다." } ], "limits": [ - "Mac 앱은 묻지 않고 사용 데이터를 보내기 시작합니다. TablePro 계정을 지원하는 버전부터는 PostHog가 이벤트마다 Mac의 IP 주소를 받아 대략적인 위치를 추정하며, 계정의 감사 로그에는 로그인과 새 기기마다 IP 주소가 기록됩니다." + "Mac은 묻지 않고 보냅니다. PostHog는 IP로 대략적 위치를 구합니다. 로그인 사용은 계정/구매와 연결될 수 있습니다. 계정 변경에는 감사 IP도 남습니다. 앱 사용 데이터를 꺼도 서버 분석은 멈추지 않습니다." ], "links": [ { diff --git a/resources/data/content/pt-BR/features/ai-mcp.json b/resources/data/content/pt-BR/features/ai-mcp.json index 021760f3..c1953dc5 100644 --- a/resources/data/content/pt-BR/features/ai-mcp.json +++ b/resources/data/content/pt-BR/features/ai-mcp.json @@ -109,7 +109,7 @@ "links": [ { "label": "O que o app para Mac envia", - "href": "/privacy#mac-app" + "href": "/privacy#ai-tools" } ] }, @@ -213,7 +213,7 @@ }, { "label": "O que o app para Mac envia", - "href": "/privacy#mac-app" + "href": "/privacy#ai-tools" }, { "label": "Comparar TablePro com outros clientes", diff --git a/resources/data/content/pt-BR/security.json b/resources/data/content/pt-BR/security.json index ff7ceff1..8ed02cf0 100644 --- a/resources/data/content/pt-BR/security.json +++ b/resources/data/content/pt-BR/security.json @@ -68,11 +68,11 @@ { "id": "to-tablepro", "title": "Para o TablePro", - "text": "Até você entrar em uma conta ou ativar uma licença, os únicos dados que o app para Mac envia ao TablePro são dados de uso, ativados por padrão e que podem ser desativados nos ajustes. A partir da versão que traz as contas TablePro, eles vão direto ao PostHog, nosso serviço de análise na UE, em vez de passar pelo servidor do TablePro. No iPhone e iPad, nada vai ao TablePro a menos que você ative Share Usage Data. Os dados de uso nunca contêm nomes de host, nomes de usuário, senhas, consultas nem linhas." + "text": "Mac 0.86.0 (desde 0.86.0-beta.1) envia dados direto ao PostHog EU. Vêm ativados e podem ser desligados em Settings. O iPhone/iPad publicado só relata após Share Usage Data. Diagnósticos Apple são separados. Dados de uso não contêm hosts, usuários, senhas, consultas ou linhas." } ], "limits": [ - "O app para Mac começa a enviar dados de uso sem perguntar. A partir da versão que traz as contas TablePro, o PostHog recebe o endereço IP do seu Mac a cada evento e deduz dele uma localização aproximada, e o registro de auditoria da sua conta guarda o endereço IP de cada acesso e de cada dispositivo novo." + "Mac envia sem perguntar. PostHog recebe IP e deriva localização aproximada. Uso autenticado pode ligar conta e compras. Mudanças da conta também guardam IP de auditoria. Desligar dados do app não para a análise servidor." ], "links": [ { diff --git a/resources/data/content/vi/features/ai-mcp.json b/resources/data/content/vi/features/ai-mcp.json index d8b2e02b..b45bf3cb 100644 --- a/resources/data/content/vi/features/ai-mcp.json +++ b/resources/data/content/vi/features/ai-mcp.json @@ -109,7 +109,7 @@ "links": [ { "label": "Ứng dụng Mac gửi đi những gì", - "href": "/privacy#mac-app" + "href": "/privacy#ai-tools" } ] }, @@ -213,7 +213,7 @@ }, { "label": "Ứng dụng Mac gửi đi những gì", - "href": "/privacy#mac-app" + "href": "/privacy#ai-tools" }, { "label": "So sánh TablePro với các client khác", diff --git a/resources/data/content/vi/security.json b/resources/data/content/vi/security.json index cf584aad..7acb6dea 100644 --- a/resources/data/content/vi/security.json +++ b/resources/data/content/vi/security.json @@ -68,11 +68,11 @@ { "id": "to-tablepro", "title": "Tới TablePro", - "text": "Cho tới khi bạn đăng nhập hoặc kích hoạt license, dữ liệu duy nhất mà ứng dụng cho Mac gửi tới TablePro là dữ liệu sử dụng, bật sẵn và có thể tắt trong Cài đặt. Từ phiên bản có tài khoản TablePro, dữ liệu này đi thẳng tới PostHog, dịch vụ phân tích của chúng tôi đặt tại EU, thay vì qua máy chủ của TablePro. Trên iPhone và iPad, không có gì được gửi tới TablePro trừ khi bạn bật Chia sẻ dữ liệu sử dụng (Share Usage Data). Dữ liệu sử dụng không bao giờ có hostname, username, mật khẩu, query hay dữ liệu trong các dòng." + "text": "Mac 0.86.0 (từ 0.86.0-beta.1) gửi dữ liệu sử dụng trực tiếp đến PostHog EU, bật mặc định và tắt được trong Cài đặt. Ứng dụng iPhone và iPad đã phát hành chỉ gửi báo cáo khi bật Chia sẻ dữ liệu sử dụng (Share Usage Data). Chẩn đoán Apple là luồng riêng. Dữ liệu sử dụng không chứa hostname, username, mật khẩu, query hay hàng dữ liệu." } ], "limits": [ - "Ứng dụng cho Mac bắt đầu gửi dữ liệu sử dụng mà không hỏi trước. Từ phiên bản có tài khoản TablePro, PostHog nhận địa chỉ IP của máy Mac cùng mỗi sự kiện và suy ra vị trí gần đúng từ địa chỉ đó, còn nhật ký kiểm tra (audit log) của tài khoản lưu địa chỉ IP của mỗi lần đăng nhập và mỗi thiết bị mới." + "Mac gửi dữ liệu sử dụng mà không hỏi trước. PostHog nhận IP và suy ra vị trí gần đúng. Khi đăng nhập, sử dụng có thể liên kết với tài khoản và mua hàng. Thay đổi tài khoản cũng giữ IP trong audit log. Tắt dữ liệu ứng dụng không dừng analytics máy chủ." ], "links": [ { diff --git a/resources/data/content/zh-Hans/features/ai-mcp.json b/resources/data/content/zh-Hans/features/ai-mcp.json index 6434e3e6..6b684375 100644 --- a/resources/data/content/zh-Hans/features/ai-mcp.json +++ b/resources/data/content/zh-Hans/features/ai-mcp.json @@ -104,7 +104,7 @@ "links": [ { "label": "Mac 应用发送的内容", - "href": "/privacy#mac-app" + "href": "/privacy#ai-tools" } ] }, @@ -208,7 +208,7 @@ }, { "label": "Mac 应用发送的内容", - "href": "/privacy#mac-app" + "href": "/privacy#ai-tools" }, { "label": "对比 TablePro 和其他客户端", diff --git a/resources/data/content/zh-Hans/security.json b/resources/data/content/zh-Hans/security.json index ef5ad9f3..9f7d771e 100644 --- a/resources/data/content/zh-Hans/security.json +++ b/resources/data/content/zh-Hans/security.json @@ -68,11 +68,11 @@ { "id": "to-tablepro", "title": "发往 TablePro", - "text": "在您登录或激活许可证之前,Mac 应用向 TablePro 发送的唯一数据是使用数据,默认开启,可在设置中关闭。从支持 TablePro 账户的版本起,这些数据不再经过 TablePro 的服务器,而是直接发送给我们位于欧盟的分析服务 PostHog。iPhone 和 iPad 除非开启 Share Usage Data,否则不向 TablePro 发送信息。使用数据从不包含主机名、用户名、密码、查询或行数据。" + "text": "Mac 0.86.0(从 0.86.0-beta.1 起)直接向 PostHog EU 发送使用数据。默认开启,可在设置关闭。已发布的 iPhone/iPad 仅在启用 Share Usage Data 后报告。Apple 诊断另计。使用数据不含主机名、用户名、密码、查询或行。" } ], "limits": [ - "Mac 应用开始发送使用数据前不会询问。从支持 TablePro 账户的版本起,PostHog 会随每个事件收到您的 Mac 的 IP 地址并据此推算大致位置,账户的审计日志会保存每次登录和每台新设备的 IP 地址。" + "Mac 发送前不询问。PostHog 接收 IP 并推算大致位置。登录使用可关联账户和购买。账户变更也保留审计 IP。关闭应用使用数据不会停止服务器分析。" ], "links": [ { diff --git a/resources/data/content/zh-Hant/features/ai-mcp.json b/resources/data/content/zh-Hant/features/ai-mcp.json index a2399348..ba05d831 100644 --- a/resources/data/content/zh-Hant/features/ai-mcp.json +++ b/resources/data/content/zh-Hant/features/ai-mcp.json @@ -104,7 +104,7 @@ "links": [ { "label": "Mac App 傳送的內容", - "href": "/privacy#mac-app" + "href": "/privacy#ai-tools" } ] }, @@ -208,7 +208,7 @@ }, { "label": "Mac App 傳送的內容", - "href": "/privacy#mac-app" + "href": "/privacy#ai-tools" }, { "label": "比較 TablePro 與其他用戶端", diff --git a/resources/data/content/zh-Hant/security.json b/resources/data/content/zh-Hant/security.json index 116d6b05..bd8e8dce 100644 --- a/resources/data/content/zh-Hant/security.json +++ b/resources/data/content/zh-Hant/security.json @@ -68,11 +68,11 @@ { "id": "to-tablepro", "title": "傳到 TablePro", - "text": "在您登入或啟用授權之前,Mac App 向 TablePro 傳送的唯一資料是使用資料,預設開啟,可在設定中關閉。從支援 TablePro 帳戶的版本起,這些資料不再經過 TablePro 的伺服器,而是直接傳送給我們位於歐盟的分析服務 PostHog。iPhone 與 iPad 除非開啟 Share Usage Data,否則不向 TablePro 傳送資訊。使用資料從不包含主機名稱、使用者名稱、密碼、查詢或列資料。" + "text": "Mac 0.86.0(從 0.86.0-beta.1 起)直接向 PostHog EU 傳送使用資料。預設開啟,可在設定關閉。已發布的 iPhone/iPad 僅在啟用 Share Usage Data 後報告。Apple 診斷另計。使用資料不含主機名、使用者名稱、密碼、查詢或資料列。" } ], "limits": [ - "Mac App 開始傳送使用資料前不會詢問。從支援 TablePro 帳戶的版本起,PostHog 會隨每個事件收到您的 Mac 的 IP 位址並據此推算大致位置,帳戶的稽核記錄會保存每次登入和每台新裝置的 IP 位址。" + "Mac 傳送前不詢問。PostHog 接收 IP 並推算大致位置。登入使用可關聯帳戶和購買。帳戶變更也保留稽核 IP。關閉 App 使用資料不會停止伺服器分析。" ], "links": [ { diff --git a/resources/data/facts.json b/resources/data/facts.json index 687e88d9..32627f16 100644 --- a/resources/data/facts.json +++ b/resources/data/facts.json @@ -3,6 +3,7 @@ "links": { "github": "https://github.com/TableProApp/TablePro", "issues": "https://github.com/TableProApp/TablePro/issues", + "webGithub": "https://github.com/TableProApp/web", "discussions": "https://github.com/TableProApp/TablePro/discussions", "license": "https://github.com/TableProApp/TablePro/blob/main/LICENSE", "integrations": "https://github.com/TableProApp/integrations", @@ -18,6 +19,19 @@ "raycast": "https://www.raycast.com/ngoquocdat/tablepro", "productHunt": "https://www.producthunt.com/products/tablepro" }, + "privacyPolicies": { + "ovhPrivacy": "https://www.ovhcloud.com/en/terms-and-conditions/privacy-policy/", + "cloudflarePrivacy": "https://www.cloudflare.com/privacypolicy/", + "awsPrivacy": "https://aws.amazon.com/privacy/", + "posthogPrivacy": "https://posthog.com/privacy", + "merchantPrivacy": "https://polar.sh/legal/privacy-policy", + "crispPrivacy": "https://crisp.chat/en/privacy/", + "googlePrivacy": "https://policies.google.com/privacy", + "mintlifyPrivacy": "https://www.mintlify.com/legal/privacy", + "githubPrivacy": "https://docs.github.com/en/site-policy/privacy-policies/github-general-privacy-statement", + "applePrivacy": "https://www.apple.com/legal/privacy/", + "jsdelivrPrivacy": "https://www.jsdelivr.com/terms/privacy-policy" + }, "support": { "email": "hello@tablepro.app" }, "publisher": { "name": "Ngo Quoc Dat", diff --git a/resources/data/legal/de/privacy.md b/resources/data/legal/de/privacy.md index 2cf21bb1..2a5e273b 100644 --- a/resources/data/legal/de/privacy.md +++ b/resources/data/legal/de/privacy.md @@ -1,281 +1,228 @@ --- title: Datenschutzerklärung -description: Welche Daten die TablePro-Apps, die Website und das Kontoportal erfassen, wohin sie gehen, wie lange sie bleiben und wie du sie änderst oder löschst. -updatedAt: "2026-11-04" +description: Welche Daten TablePro erhebt, wofür, wer sie erhält, wie lange sie bleiben und welche Rechte du hast. +updatedAt: "2026-11-05" --- -Diese Erklärung gilt für TablePro für Mac, TablePro für iPhone und iPad, die Website tablepro.app, die Dokumentation unter docs.tablepro.app und das Kontoportal account.tablepro.app. Sie beschreibt, was diese heute tatsächlich senden und speichern. Beide Apps sind quelloffen unter der AGPLv3. Den Code, der die unten genannten Daten sendet, kannst du im [TablePro-Repository]({github}) lesen. +Diese Erklärung gilt für TablePro auf Mac, Linux, iPhone und iPad; tablepro.app; docs.tablepro.app; sowie Konto, Käufe, Support und Newsletter. Das [technische Verzeichnis](https://docs.tablepro.app/security/privacy) nennt Felder, Ziele und Einstellungen. Der Code steht im [öffentlichen Repository]({github}). -## Überblick {#summary} +## Kurz erklärt {#summary} -- Die Mac-App sendet Nutzungsdaten. Dies ist standardmäßig aktiv und kann deaktiviert werden. Die iPhone- und iPad-App sendet einen Nutzungsbericht nur, wenn du es aktivierst. -- Wenn du dich bei einem TablePro-Konto anmeldest oder einen Lizenzschlüssel aktivierst, registriert die Mac-App deinen Mac samt Namen auf unserem Server und prüft dort regelmäßig deinen Tarif. -- Deine Abfragen, Ergebnisse und Passwörter werden nicht an TablePro gesendet. Ausgenommen ist, was du in der Team Library veröffentlichst: Verbindungseinstellungen (niemals Passwörter) und gespeicherte Abfragen. -- KI-Anfragen gehen von der Mac-App direkt an den von dir eingerichteten KI-Anbieter, nicht an uns. -- Ab der Version, die TablePro-Konten einführt, sendet die Mac-App ihre Nutzungsdaten direkt an PostHog, unseren Dienst für Produktanalysen in der EU, das dann die IP-Adresse deines Macs erhält und daraus einen ungefähren Standort ableitet. Frühere Versionen und die iPhone- und iPad-App senden Nutzungsberichte an unseren Server, der sie ohne IP-Adresse an PostHog weiterleitet. Dein Konto führt ein Protokoll der Änderungen daran, etwa Anmeldungen und neue Geräte, mit IP-Adresse und Browser der jeweiligen Anfrage. -- Die Website zählt Seitenaufrufe mit Cloudflare Web Analytics, das keine Cookies setzt. Sie lädt auch Google Analytics, das nur mit deiner Erlaubnis Cookies setzt. Jede Seite lädt außerdem unseren Live-Chat Crisp, der eigene Cookies setzt. -- Das Kontoportal unter account.tablepro.app lädt kein Analyse-Skript. Es setzt ein Cookie, das dich angemeldet hält, und in seinen Einstellungen kannst du die Daten deines Kontos herunterladen oder das Konto löschen. -- Amazon SES, ein Dienst von Amazon Web Services, versendet unsere E-Mails. Der Newsletter erfasst, wann jeder Empfänger ihn öffnet und welche seiner Links er anklickt. -- Käufe werden von {merchant}, unserem Merchant of Record, abgewickelt. +Normale Abfragen und Ergebnisse gehen zwischen deinem Gerät und deiner Datenbank hin und her. Nutzungsdaten enthalten weder SQL noch Zeilen oder Zugangsdaten. Was du in Team Library veröffentlichst, dem Support sendest oder mit KI und externen Werkzeugen teilst, erreicht diese Empfänger. -## Wer verantwortlich ist {#controller} +Nutzungsdaten sind auf Mac und Linux standardmäßig eingeschaltet und abschaltbar. Die veröffentlichte iPhone/iPad-App sendet erst nach Zustimmung. Direkte Analysen können mit Konto und Käufen verknüpft werden. Abschalten stoppt weder Kontoanfragen noch Serveranalysen. -{publisherName}, ein Einzelentwickler in {publisherCity}, {publisherCountry}, veröffentlicht die TablePro-Apps und diese Website und ist für die hier beschriebenen personenbezogenen Daten verantwortlich (Verantwortlicher für die Datenverarbeitung). Bei Fragen zu dieser Erklärung oder deinen Daten schreibe an [{email}](mailto:{email}). +Die Website misst Besuche und lädt Crisp auf jeder Seite. Google-Analytics-Cookies erfordern deine Wahl. Newsletter messen Öffnungen und Klicks. Beim Löschen des Kontos bleiben Daten zurück, auch bei PostHog und Crisp. Lies [Aufbewahrung](#retention) und [Rechte](#rights). Der [Verantwortliche](#controller) bearbeitet Anfragen auch ohne Konto. -## TablePro für Mac {#mac-app} + -### Nutzungsdaten {#mac-usage-report} +## Verantwortlicher {#controller} -Ab der Version, die TablePro-Konten einführt, sendet die Mac-App Nutzungsdaten direkt an PostHog, unseren Dienst für Produktanalysen, unter `eu.i.posthog.com` in der EU. **Dies ist standardmäßig aktiv, und die App fragt vor dem ersten Ereignis nicht nach.** Zum Deaktivieren öffne **Settings > General > Privacy** und deaktiviere **Share usage data**. Solange die Einstellung aus ist, sendet die App nichts an PostHog, und startet die App mit ausgeschalteter Einstellung, startet sie die Bibliothek von PostHog gar nicht erst. +{publisherName}, selbstständiger Entwickler in {publisherCity}, {publisherCountry}, ist für die beschriebenen personenbezogenen Daten verantwortlich. Kontakt: [{email}](mailto:{email}). Wir haben keinen Datenschutzbeauftragten. Für Teams verwalten wir Konto-, Einladungs- und Dienstdaten als Verantwortlicher. Veröffentlichte Team Library-Inhalte verarbeiten wir nach Weisung des Teams. Es bestimmt Inhalt und Zugriff. -Die App sendet ein Ereignis: + -- einmal täglich während des Betriebs, mit den Namen der Datenbanktypen deiner geöffneten Verbindungen (zum Beispiel „PostgreSQL“) und der Anzahl geöffneter Verbindungen; -- bei deinem ersten Verbindungsversuch, deiner ersten erfolgreichen Verbindung und deiner ersten Abfrage, jeweils mit dem Datenbanktyp; -- wenn sie dir zeigt, dass eine kostenpflichtige Funktion nicht verfügbar ist, einmal pro Funktion und App-Start, mit der Funktion und dem Grund, etwa dass du nicht angemeldet bist; -- wenn du auf ein Upgrade klickst, mit der Stelle in der App, an der du geklickt hast; -- wenn du dich anmeldest, mit der Art (in der App, mit einem Lizenzschlüssel oder durch Einlösen des Schlüssels, der schon auf deinem Mac war), und wenn du dich abmeldest. +## Daten und Zwecke {#data-use} -Die Bibliothek von PostHog fügt jedem Ereignis das Modell deines Macs, Bildschirmgröße, Zeitzone und Sprache hinzu, ob er über WLAN verbunden ist, Version, Build und Bundle-ID der App, die macOS-Version, die Version der Bibliothek und eine zufällige Sitzungs-ID. PostHog erhält mit jeder Anfrage die IP-Adresse deines Macs und leitet daraus einen ungefähren Standort ab, etwa Land und Stadt. Solange die Einstellung aktiv ist, lädt die Bibliothek außerdem ihre Einstellungen und Feature-Flags von PostHog (`/config` von `eu-assets.i.posthog.com` und `/flags` von `eu.i.posthog.com`). +Für EWR und Vereinigtes Königreich nennen wir je Zweck die Rechtsgrundlage: Vertrag (Artikel 6(1)(b)), berechtigtes Interesse (6(1)(f)), Einwilligung (6(1)(a)) oder gesetzliche Pflicht (6(1)(c)). Es gibt keine automatisierten Entscheidungen mit rechtlichen oder ähnlich erheblichen Folgen. -Bevor du dich anmeldest, tragen die Ereignisse eine zufällige ID, die die Bibliothek auf deinem Mac erzeugt, und PostHog legt dafür kein Personenprofil an. Sobald du dich anmeldest, tragen sie deine Konto-ID, und das Profil dieses Kontos bei PostHog enthält App- und macOS-Version, Prozessorarchitektur, die Sprache der App und den ungefähren Standort, den PostHog aus der IP-Adresse ableitet. So werden deine Installationen mit deinen Anmeldungen und Käufen verbunden. Beim Abmelden beginnt eine neue zufällige ID. Die Nutzungsdaten der App enthalten keine Rechner-ID, keinen Lizenzstatus und keine Update-Einstellungen mehr. + -Versionen vor den TablePro-Konten senden stattdessen einen Nutzungsbericht an `api.tablepro.app`, unter derselben Einstellung, etwa zehn Sekunden nach dem Start und danach einmal täglich während des Betriebs. Ein Bericht enthält: +### Konten und Geräte {#account} -- eine Rechner-ID: einen SHA-256-Hash der Hardware-UUID deines Macs (die UUID selbst wird nie gesendet); -- die Plattform, die App-Version, die macOS-Version, die Prozessorarchitektur und die Sprache der App; -- die Namen der Datenbanktypen deiner geöffneten Verbindungen (zum Beispiel „PostgreSQL“) und wie viele Verbindungen geöffnet sind; -- ob eine Lizenz aktiviert ist; -- Datum und Uhrzeit deines ersten Verbindungsversuchs und deiner ersten erfolgreichen Verbindung; -- deine Update-Einstellungen (Installation und Häufigkeit der Prüfungen). Unser Server verwirft diese beim Eingang des Berichts. +Kostenlose lokale Nutzung braucht kein Konto. Kontodienste benötigen deine E-Mail-Adresse. Wir speichern Name, Sprache, Anmeldearten, Lizenzen, Bestellungen, Geräte, Teamrollen und Arbeitsplätze. Mac/Linux-Geräteregistrierung sendet Maschinenkennung, Gerätename, Plattform und App-/Systemversionen. Der Gerätename kann deinen Namen enthalten. Das ist von Nutzungsdaten getrennt. Zweck und Grundlage sind Konto und Tarif nach Vertrag. -Weder die Ereignisse noch die Berichte enthalten Hostnamen, Benutzernamen, Passwörter, Abfragen oder Zeilen. +Die Anmeldung nutzt E-Mail-Links und Codes, Passkeys, Apple, GitHub oder Google. Passkey-Daten umfassen öffentlichen Schlüssel, Name, Synchronisierungsstatus und Nutzungsdaten. Identitätsanbieter liefern ID und bestätigte E-Mail, Apple gegebenenfalls den Namen. Apples Token wird verschlüsselt und beim Trennen oder Kontolöschen widerrufen. Kontoänderungen werden mit IP und User-Agent protokolliert. Unser berechtigtes Interesse ist Kontoschutz und Aufklärung von Missbrauch. -Unser Server speichert weder den Bericht noch die IP-Adresse, von der er kam. Er leitet den Bericht als Ereignis zur Rechner-ID an PostHog weiter, mit dem Land, das Cloudflare für deine Verbindung angibt, ohne deinen Lizenzschlüssel und ohne deine IP-Adresse; PostHog legt daraus kein Personenprofil an. Da dein Konto seine Geräte unter derselben Rechner-ID führt, lassen sich Berichte eines Macs, auf dem du dich angemeldet oder eine Lizenz aktiviert hast, deinem Konto zuordnen. +Im [Kontoportal]({account}) bearbeitest du Profil und Anmeldung, verwaltest Geräte, exportierst JSON und löschst das Konto. Löschen geht nicht, solange dir ein Team mit weiteren Mitgliedern gehört. Es beendet Abos ohne Erstattung. [Aufbewahrung](#retention) erklärt die verbleibenden Daten. -### Lizenzprüfungen {#mac-license} +### Käufe {#purchases} -Versionen vor den TablePro-Konten kontaktieren unseren Lizenzserver erst, nachdem du einen Lizenzschlüssel eingegeben hast. Dies geschieht bei der Aktivierung, beim Start, wenn seit der letzten Prüfung mindestens {revalidateDays} Tage vergangen sind, und danach alle {revalidateDays} Tage. Jede Prüfung sendet: +{merchant} (Polar Software, Inc.) ist Merchant of Record und Wiederverkäufer. Er erhebt Name, E-Mail, Rechnungsadresse und Zahlungsdaten nach eigenen Bedingungen. Er bearbeitet Zahlungen, Steuern, Belege und Streitfälle. Vollständige Kartendaten erreichen uns nie. -- deinen Lizenzschlüssel; -- die unter [Nutzungsdaten](#mac-usage-report) beschriebene Rechner-ID; -- den in macOS festgelegten Namen deines Macs (er enthält oft deinen eigenen Namen); -- die App-Version und die macOS-Version. +Wir senden Kauf, Sprache, Besuchsquelle und IP für Zahlung, Steuer und Währung. Wir erhalten Käufer-/Rechnungsdaten, Beträge, Bestell-/Abo-IDs, Verlängerungen, Kündigungen und Erstattungen. Bestellungen behalten E-Mail, Land, Beträge und Herkunft. Gastkäufe erzeugen bei Bedarf ein unbestätigtes Konto für die Adresse. Kündigungsgründe und Kommentare gehen an {merchant} und bleiben beim Abo. Die Verarbeitung erfüllt den Kaufvertrag; Steuer-/Buchhaltungsdaten dienen gesetzlichen Pflichten. Ohne erforderliche Angaben kann der Kauf nicht abgeschlossen werden. Rechnungen verwaltest du im [{merchant}-Portal]({portal}); siehe [Bedingungen](/de/terms) und [Erstattungen](/de/refund-policy). -Die Deaktivierung eines Macs sendet nur den Lizenzschlüssel und die Rechner-ID. +### Teams und geteilte Inhalte {#library} -Unser Server führt jeden aktivierten Mac als Gerät des Kontos, zu dem die Lizenz gehört: mit Rechner-ID und Namen, App- und macOS-Version und dem Zeitpunkt seiner letzten Meldung. Aktivieren und Deaktivieren eines Macs werden im Audit-Log dieses Kontos mit IP-Adresse und User-Agent der Anfrage erfasst, die regelmäßigen Prüfungen nicht. Das Kontoportal zeigt deine Geräte nach Namen an. Ist unser Server nicht erreichbar, funktionieren die Bezahlfunktionen noch {graceDays} Tage nach der letzten erfolgreichen Prüfung. +Einladende geben E-Mail, Rolle und Arbeitsplatzwahl an. Eigentümer und Admins sehen Namen, E-Mails, Einladungen und Teamänderungen samt eingeladener Adressen, aber keine Audit-IP oder Browser. Mitglieder sehen Team, Tarif, Arbeitsplätze und eigene Rolle. Diese Daten dienen dem vertraglichen Teamdienst. -### TablePro-Konto {#mac-account} +Auf Mac sendet Veröffentlichen in Team Library Verbindungseinstellungen und gespeicherte Abfragen an unseren Server für berechtigte Mitglieder. Dazu gehören Host, Port, Datenbank, Benutzer, SSH/SSL, Startbefehle, Tunnel Command und KI-Einstellungen. Abfragen enthalten Namen, SQL, Schlüsselwörter und Ordner. Passwortfelder werden ausgeschlossen; Geheimnisse in SQL oder Freitext werden nicht entfernt. Der letzte Bearbeiter wird angezeigt. Ein Teamaustritt löscht gemeinsame Inhalte nicht. Siehe [Löschfristen](#retention). Team Catalog schreibt stattdessen Dateien in einen gewählten gemeinsamen Ordner. -Ab der Version, die TablePro-Konten einführt, meldest du dich in der Mac-App mit einem [TablePro-Konto](#account) statt mit einem Lizenzschlüssel an. Die App öffnet die Anmeldeseite in einem Browserfenster, in das du auch den Code aus der Anmelde-E-Mail eingeben kannst. Nach der Anmeldung registriert sie deinen Mac als Gerät deines Kontos: die oben beschriebene Rechner-ID, den Namen deines Macs, die Plattform sowie App- und macOS-Version. Danach ruft sie deinen Tarif einmal täglich, solange sie läuft, als signierte Datei von unserem Server ab; diese Datei hält die Bezahlfunktionen bis zu {offlineDays} Tage ohne unseren Server in Betrieb. Das Token, das die App angemeldet hält, liegt nur im macOS-Schlüsselbund dieses Macs und wird nie über den iCloud-Schlüsselbund synchronisiert, auch nicht bei aktivierter Passwortsynchronisierung. +### Nutzungs- und Dienstanalysen {#analytics} -Ein bereits auf deinem Mac gespeicherter Lizenzschlüssel wird einmalig gegen eine Anmeldung bei dem Konto eingetauscht, zu dem er gehört, und dann vom Mac gelöscht. Geräte kannst du in der App oder im Kontoportal entfernen, und wenn ein Mac deine Lizenz zum ersten Mal nutzt, schicken wir dir eine E-Mail. +Unser berechtigtes Interesse ist, Nutzung zu verstehen, Fehler zu beheben und Käufe zu messen. Mac und Linux senden die unter [Apps](#apps) genannten Daten. Der Server sendet PostHog Ereignisse zu Anmeldungen, Käufen, Geräten und Teams mit Konto-IDs, ohne Namen/E-Mails. IDs verbinden App- und Dienstnutzung. Der Schalter stoppt App-Ereignisse, nicht erforderliche Kontoanfragen oder Serverereignisse. Nutze [deine Rechte](#rights) für Widerspruch oder Löschung. -### Team Library {#library} +### Newsletter und E-Mail {#newsletter} -Die Team Library ist Bestandteil einer Team-Lizenz. Wenn du bei einer Verbindung **Share > Publish to Team Library…** oder in der Favorites-Seitenleiste **Publish Saved Queries to Team…** wählst, lädt die Mac-App die veröffentlichten Inhalte auf unseren Server: +Amazon SES versendet Codes, Einladungen, Kontohinweise und Newsletter. Dienstmails erfüllen den angeforderten Dienst. Neue Newsletter-Abos brauchen Bestätigung und Einwilligung. Wir speichern Adresse, Sprache, Anmelde-/Bestätigungszeiten, IPs, User-Agents, Anmeldeseite und Einwilligungsversion. -- Verbindungseinstellungen: Host, Port, Datenbankname, Benutzername, SSH- und SSL-Einstellungen, Treiberoptionen, Startbefehle, Tunnel-Command-Einstellungen, Safe-Mode-Stufe und KI-Einstellungen, aber niemals Passwörter; -- gespeicherte Abfragen: ihre Namen, SQL-Texte, Schlüsselwörter und Ordner. +Jeder Newsletter misst Öffnungen und Klicks aller Empfänger per Bild und `links.news.tablepro.app`. Amazon SES erhält Zeit, Link, IP und User-Agent und gibt sie zur Zählung an den Server. Bilderblockierung verhindert Öffnungs-, nicht Klickmessung. Abmelde- und E-Mail-Links werden nicht verfolgt. Es gibt keinen eigenen Messschalter. Melde dich im Newsletter oder per Ein-Klick-Funktion des Mailprogramms ab; danach kommt keine Bestätigungsmail. Erneute Anmeldung braucht Bestätigung. Dauerhafte Rückläufer und Spammeldungen stoppen den Versand. Löschung der Adresse über [Kontakt](#controller). -Ab der Version, die TablePro-Konten einführt, lädt die Mac-App jedes Mitglieds mit Arbeitsplatz die Änderungen der Bibliothek beim Start, alle 15 Minuten und nach jeder Veröffentlichung herunter. Eine Veröffentlichung sendet nur, was sich geändert hat, und entfernt nur Einträge, die dieser Mac veröffentlicht hat und nicht mehr enthält. Hat jemand anderes einen Eintrag zuerst geändert, fragt die App, welche Fassung behalten werden soll, und sie zeigt, wer jede Team-Abfrage zuletzt geändert hat. Versionen vor den TablePro-Konten laden die Bibliothek beim Start herunter, höchstens einmal pro Woche. Der veröffentlichende Mac lädt sie unmittelbar danach erneut herunter. Eine erneute Veröffentlichung aus diesen Versionen ersetzt die zuvor veröffentlichten Inhalte. Die Library im Kontoportal zeigt jeden Eintrag mit dem Namen der Person, die ihn zuletzt geändert hat, allen Mitgliedern, die die Bibliothek lesen dürfen; Inhaber und Admins können dort Einträge löschen. Ein gelöschter Eintrag bleibt mit seiner letzten Version auf unserem Server, damit jeder Mac die Löschung übernehmen kann. Endet die Lizenz, bleibt die Bibliothek auf unserem Server, bis der Inhaber des Teams das Team löscht, womit auch die Bibliothek gelöscht wird. +Die alte Liste übernahm alle nicht abgemeldeten Adressen, bestätigt oder nicht, einschließlich Käufer, Lizenzinhaber und Beta-Anmeldungen. Abmeldungen blieben erhalten; Rückläufer/Beschwerden kamen auf die Sperrliste. Siehe [Aufbewahrung](#retention). -Der Team Catalog, die andere Team-Funktion, schreibt Verbindungsdateien ohne Passwörter in einen von dir gewählten freigegebenen Ordner. Er nutzt unseren Server nicht. +### Support {#support} -### Updates und Plugins {#mac-updates} +Nachrichten, Anhänge und Diagnosen erreichen uns und den gewählten Supportdienst. Sie können von dir beigefügte Daten oder Geheimnisse enthalten. Crisp erhält beim Laden IP, Browser und besuchte Seiten auf Website und Portal. Bei Gesprächsbeginn behält es die IP. Wir geben Sprache und im angemeldeten Portal Konto-E-Mail und ID weiter. Das Laden auf jeder Seite dient unserem berechtigten Supportinteresse. Begonnene Gespräche beruhen auf Einwilligung. -- **Update-Prüfungen.** Die Mac-App lädt einmal täglich den Update-Feed von GitHub (`raw.githubusercontent.com`) herunter. Die Anfrage sendet über die üblichen Angaben einer Webanfrage hinaus keine Informationen über deinen Mac: deine IP-Adresse und einen User-Agent mit der App-Version. Zum Deaktivieren öffne **Settings > General > Software Update** und deaktiviere **Automatically check for updates**. Die Updates selbst werden von GitHub heruntergeladen. -- **Plugin-Katalog.** Beim Start der App und beim Öffnen der Plugin-Einstellungen lädt sie die Liste verfügbarer Treiber und Themes von GitHub herunter. Dies lässt sich nicht deaktivieren. Installierte Treiber und Themes werden von GitHub heruntergeladen; der Plugin-Browser liest Downloadzahlen über die GitHub-API. +## Deine Apps {#apps} -GitHub erhält bei diesen Anfragen deine IP-Adresse. Für sie gilt die Datenschutzerklärung von GitHub. +| App und Version | Nutzungsdaten | Einstellung | +| --- | --- | --- | +| Mac 0.86.0, ab 0.86.0-beta.1 | Direkt an PostHog; eingeschaltet | Settings > General > Privacy | +| Linux ab 0.1.0-beta.1 | Direkt an PostHog; eingeschaltet | Preferences > General > Privacy | +| Veröffentlichtes iPhone/iPad | Bericht über unseren Server; bis Zustimmung aus | Settings > Privacy | -### Dienste, die du selbst auswählst {#mac-third-parties} + -Die Mac-App sendet Daten an diese Dienste nur, wenn du sie einrichtest, und direkt, niemals über TablePro: +### Daten auf dem Gerät {#local-data} -- **Deine Datenbanken, SSH-Server und Proxys**, die das erhalten, was deine Verbindungen ihnen senden. -- **KI-Anbieter.** Wenn du einen Anbieter hinzufügst und den KI-Assistenten oder Inline-Vorschläge nutzt, gehen Anfragen an diesen Anbieter oder an ein Modell auf deinem Mac. Standardmäßig enthält eine Anfrage den Datenbanktyp und -namen, Tabellen- und Spaltendefinitionen aus dem Schema sowie die aktuelle Abfrage. Ergebniszeilen werden nur gesendet, wenn du dies aktivierst. Es gelten die Bedingungen des Anbieters. Das Hinzufügen von GitHub Copilot lädt dessen Sprachserver von npm herunter; seine Einstellung „Send telemetry to GitHub“ ist anfangs aktiv. -- **Anmeldedienste**: Microsoft Entra ID, Google, Amazon Web Services und Cloudflare Access, wenn eine Verbindung sie verwendet. -- **Apple Maps**, das Kartenkacheln liefert, wenn du Ergebnisse auf einer Karte anzeigst. -- **DuckDB**, das DuckDB-Erweiterungen liefert, wenn eine Abfrage sie erstmals verwendet. -- **MCP-Clients.** Der MCP-Server ist standardmäßig aus. Er startet, wenn du ihn aktivierst oder wenn ein eingerichteter MCP-Client die TablePro-Bridge startet oder sich damit koppelt. Er lauscht nur auf deinem Mac (127.0.0.1). Ein verbundener KI-Client wie Claude oder Cursor erhält die angeforderten Ergebnisse und sendet sie nach seinen eigenen Bedingungen an seinen Dienst. -- **MCP-Server, die du hinzufügst.** Eine KI-Sitzung sendet die von dir genehmigten Werkzeugaufrufe mit ihren Argumenten an diesen Server. +Verbindungen, Abfrageverlauf, lokale Protokolle und Tabs bleiben auf dem Gerät, außer bei gewählter Freigabe. Datenbankverkehr geht an deine Server. Passwörter nutzen den Anmeldedatenspeicher der Plattform. Mac verweist auf SSH-Schlüssel an ihrem Speicherort. Analysen enthalten keine Hosts, Benutzernamen, SQL, Zeilen oder Zugangsdaten. [Integrationen](#integrations), Team Library und Support haben die beschriebenen Ausnahmen. -### Daten, die auf deinem Mac bleiben {#mac-local} +### Mac {#mac-app} -Passwörter werden im macOS-Schlüsselbund aufbewahrt. Deine Verbindungsliste, dein Abfrageverlauf, Query Insights, Data-Rewind-Snapshots, Einstellungen und offene Tabs werden auf deinem Mac gespeichert. Die App verweist auf SSH-Schlüssel an ihrem Speicherort und kopiert sie nicht. Versionen vor den TablePro-Konten enthalten weder einen Absturzmelder noch eine Analysebibliothek eines Drittanbieters. Ab der Version, die TablePro-Konten einführt, enthält die App die Bibliothek von PostHog, die die oben beschriebenen Nutzungsdaten sendet. Die Bibliothek enthält den Absturzmelder von PostHog, den die App ausgeschaltet lässt, sodass keine Absturzberichte gesendet werden. Sie speichert ihre zufällige ID, ihre Einstellungen und noch nicht gesendete Ereignisse in Dateien unter `~/Library/Application Support/com.TablePro`. +Direkte Analyse und Kontoverhalten gelten ab 0.86.0 einschließlich 0.86.0-beta.1. Anmeldung registriert den Mac und lädt den Tarif. Der Kontotoken bleibt im lokalen Keychain und synchronisiert nie über iCloud Keychain. Eine vorhandene Lizenz wird gegen Anmeldung getauscht und lokal gelöscht. -## TablePro für iPhone und iPad {#ios-app} +#### Mac-Nutzungsdaten {#mac-usage-report} -**Nichts geht an TablePro, solange du „Share Usage Data“ nicht aktivierst**, beim ersten Start oder später unter **Settings > Privacy**. Wenn du es aktivierst, sendet die App einmal täglich einen Bericht an denselben Server wie die Versionen der Mac-App vor den TablePro-Konten. Unser Server leitet ihn auf dieselbe Weise an PostHog weiter, ohne seine IP-Adresse. Der Bericht enthält einen SHA-256-Hash der Kennung, die Apple der App auf deinem Gerät zuweist, Plattform, App- und iOS-Version, Prozessorarchitektur, App-Sprache, Namen der Datenbanktypen deiner geöffneten Verbindungen, deren Anzahl sowie Datum und Uhrzeit deines ersten Verbindungsversuchs, deiner ersten erfolgreichen Verbindung und deiner ersten Abfrage. Er enthält keine Update-Einstellungen und meldet immer, dass keine Lizenz aktiviert ist, da die App beides nicht hat. +Standardmäßig an, ohne Frage vor dem ersten Ereignis. Schalte **Share usage data** unter **Settings > General > Privacy** aus. Start mit ausgeschalteter Option startet die PostHog-Bibliothek nicht. Keine automatischen Absturzberichte; PostHogs Absturzerfassung ist deaktiviert. -Die App führt weder Lizenz- noch Update-Prüfungen oder Plugin-Anfragen aus. Abgesehen vom optionalen Bericht verbindet sie sich nur mit deinen Datenbanken und SSH-Servern, mit Apples iCloud bei aktiviertem iCloud Sync und mit Microsoft, wenn sich eine SQL-Server-Verbindung über Microsoft Entra ID anmeldet. +Ereignisse umfassen tägliche Nutzung mit Typen/Anzahl offener Verbindungen, ersten Versuch, Erfolg und erste Abfrage nach Datenbanktyp, gesperrte Bezahlfunktionen und Gründe, Upgrade-Klicks, Anmeldeart/Abmeldung sowie Lizenzkauffragen und Antworten. PostHog ergänzt Geräte-, Bildschirm-, Netzwerk-, Sitzungs-, App- und Systemkontext. Es erhält IP und schätzt den Ort. Vor Anmeldung: zufällige Installations-ID ohne Personenprofil. Danach: Konto-ID mit Versionen, Architektur, Sprache und Ort im Profil. Abmeldung erzeugt neue Zufalls-ID. Siehe [Felder und Ziele](https://docs.tablepro.app/security/privacy#usage-data). -Auf dem Gerät werden Passwörter und eingefügte SSH-Schlüssel im Schlüsselbund aufbewahrt; Zertifikate werden nie synchronisiert. Der Abfrageverlauf bleibt auf dem Gerät. Deine Verbindungen werden dem lokalen Spotlight-Index hinzugefügt, damit du sie suchen kannst. Während einer Abfrage zeigt ihre Live-Aktivität das SQL auf dem Sperrbildschirm und in der erweiterten Dynamic Island, sofern du nicht **Settings > Live Activities > Hide Query** aktivierst. +#### Updates und Plugins {#mac-updates} -Wenn du in den Einstellungen deines iPhones oder iPads Analysedaten mit App-Entwicklern teilst, kann Apple uns Absturzberichte und Nutzungsstatistiken über App Store Connect übermitteln. Die App selbst enthält weder einen eigenen Absturzmelder noch eine Analysebibliothek eines Drittanbieters. +Updatefeed und Pluginkatalog kommen von GitHub über updates.tablepro.app. Downloads und Downloadzahlen erreichen ebenfalls GitHub. Anfragen tragen IP und User-Agent. Schalte **Automatically check for updates** unter **Settings > General > Software Update** aus, um automatische Prüfungen zu stoppen. Für den Katalog gibt es keinen Ausschalter. [Technische Details](https://docs.tablepro.app/security/privacy#update-checks) nennen auch den alten Feed. -## iCloud Sync und Handoff {#icloud} +#### Ältere Mac-Versionen {#mac-license} -iCloud Sync ist auf dem Mac sowie auf iPhone und iPad aus, bis du es aktivierst. Wenn es aktiv ist, gelangen die Datensätze in eine private Datenbank in deinem eigenen iCloud-Konto (Container `iCloud.com.TablePro`). TablePro kann sie nicht lesen. +Vor 0.86.0 steuert derselbe eingeschaltete Schalter einen Serverbericht. Er enthält gehashte Maschinen-ID, System-/App-Daten, Verbindungstypen/-anzahl, Lizenzstatus und erste Versuch-/Erfolgsdaten. Gesendete Updateeinstellungen werden verworfen. Der aktuelle Server leitet an PostHog mit Cloudflare-Land weiter, ohne IP oder Lizenzschlüssel und ohne Personenprofil. Die Maschinen-ID kann Kontogeräte verknüpfen. Heute gibt es keinen eigenen Heartbeatverlauf, aber Jobs, Logs, Backups und Altarchiv können Daten behalten. Siehe [Aufbewahrung](#retention). -- Auf dem Mac wählst du, was synchronisiert wird: Verbindungen, Gruppen und Tags, Einstellungen, SSH-Profile, Zugangsdatenprofile (Name und Benutzername, niemals das Passwort), Tabellen- und Datenbankfavoriten, gespeicherte Abfragen (einschließlich SQL-Text) und Tabellenordner. Ein Verbindungsdatensatz enthält Host, Port, Benutzername, Datenbankname, SSH- und SSL-Einstellungen, Startbefehle, das Skript vor dem Verbinden und KI-Regeln. Abfrageverlauf, Data-Rewind-Snapshots und Passwortquellen werden nie synchronisiert. -- iPhone und iPad synchronisieren Verbindungen, Gruppen und Tags. -- Passwörter werden nur synchronisiert, wenn du auf dem Mac unter Sync Categories zusätzlich **Passwords** oder auf iPhone und iPad **Sync Passwords** aktivierst. Dies verwendet den iCloud-Schlüsselbund. Auf dem Mac werden dabei auch andere im Schlüsselbund gespeicherte Geheimnisse synchronisiert, etwa KI-Anbieterschlüssel und der Lizenzschlüssel. Ab der Version, die TablePro-Konten einführt, wird der Lizenzschlüssel gelöscht, sobald er gegen eine Anmeldung eingelöst ist, und das Token, das die App angemeldet hält, wird nie synchronisiert. +Alte Versionen kontaktieren den Lizenzdienst erst nach Schlüsseleingabe. Prüfungen senden Schlüssel, ID, Mac-Name und Versionen. Geräte gehören zum Konto; Aktivierung/Deaktivierung wird mit IP und User-Agent protokolliert. Das [Verzeichnis](https://docs.tablepro.app/security/privacy#older-mac-reports) nennt Felder und Zeiten. -Auf dem Mac ist iCloud Sync Bestandteil einer Pro- oder Team-Lizenz. Auf iPhone und iPad ist es kostenlos. +### iPhone und iPad {#ios-app} -Handoff übermittelt über Apple die ID der offenen Verbindung und den Namen der offenen Tabelle zwischen deinen eigenen Geräten. Ohne offene Tabelle übermittelt es stattdessen den Verbindungsnamen oder bei einer unbenannten Verbindung deren Host. Es sendet keine Einstellungen oder Zugangsdaten. +Die veröffentlichte App sendet erst nach **Share Usage Data** beim ersten Start oder unter **Settings > Privacy**. Grundlage ist Einwilligung. Ein täglicher Bericht geht über den Server ohne IP, mit Cloudflare-Land und ohne Personenprofil an PostHog. Er enthält gehashte Apple-Gerätekennung, Plattform, Versionen, Architektur, Sprache, Verbindungstypen/-anzahl und Zeitpunkte von erstem Versuch, Erfolg und erste Abfrage. Er meldet stets keine Lizenz und enthält keine Updateeinstellungen. Konto-, Lizenz-, Update- oder Pluginprüfungen fehlen. -## Website {#website} +Datenbank/SSH, optionales iCloud und Microsoft-Entra-Anmeldung für SQL Server senden an diese Dienste. Passwörter/eingefügte SSH-Schlüssel bleiben im Keychain; Zertifikate und Verlauf lokal. Verbindungen kommen in den lokalen Spotlight-Index. Live Activity kann SQL am Sperrbildschirm anzeigen, außer mit Hide Query. Apples separate Einstellung Share With App Developers kann Abstürze und Statistiken über App Store Connect an uns geben. Die App hat keinen Absturzmelder und keine externe Analysebibliothek. Siehe [iOS](https://docs.tablepro.app/ios#privacy). -**Hosting.** Die Website und das Kontoportal laufen auf unserem Server hinter Cloudflare. Wie jeder Webserver erhalten sie deine IP-Adresse, den User-Agent deines Browsers und die Adresse jeder angeforderten Seite. +### Linux {#linux-app} -**Cloudflare Web Analytics.** Cloudflare fügt den Seiten der Website sein Web-Analytics-Skript hinzu; das Kontoportal führt es nicht aus. Dein Browser lädt es von `static.cloudflareinsights.com`; es meldet jeden Seitenaufruf an Cloudflare: die Seite, die verweisende Website, die Ladezeit sowie Browser, Betriebssystem und Gerätetyp. Cloudflare ergänzt das Herkunftsland deiner Verbindung. Das Skript setzt keine Cookies und speichert nichts im Browser. Cloudflare erklärt, IP-Adresse und Browserangaben nicht zur Erstellung eines Fingerabdrucks zu verwenden. Cloudflare zeigt uns Summen wie Aufrufe pro Seite oder Land, keine Datensätze einzelner Besucher. Rechtsgrundlage: berechtigtes Interesse. +Ab 0.1.0-beta.1 registriert Anmeldung das Gerät laut [Konten](#account). Geheimnisse liegen im Desktop-Schlüsselbund. Paketupdates folgen deinem Distributor. Die App sendet keine automatischen Absturzberichte. -**Google Analytics.** Die Website lädt Google Analytics auf jeder Seite im Einwilligungsmodus. Bis du in der Cookie-Frage **Zulassen** wählst, setzt es keine Cookies und sendet Google pro Seite nur ein cookieloses Signal, ohne Kennung auf deinem Gerät. Mit deiner Erlaubnis setzt Google Analytics die Cookies `_ga` und `_ga_` und misst deine Besuche, etwa Seitenaufrufe, Downloadklicks und den Beginn eines Kaufs. Werbespeicherung, Anzeigenpersonalisierung und Nutzerdaten für Werbung bleiben immer abgelehnt. Google erklärt, dass Google Analytics 4 keine IP-Adressen protokolliert oder speichert. Unsere Google-Analytics-Property verwendet Googles standardmäßige Aufbewahrungsfrist: Google löscht erfasste Nutzer- und Ereignisdaten nach 2 Monaten. Googles Standardberichte, die Summen statt Kennungen enthalten, sind davon nicht betroffen. Rechtsgrundlage: deine Einwilligung für die Cookies. +#### Linux-Nutzungsdaten {#linux-usage-data} -**Live-Chat.** Jede Seite der Website und des Kontoportals zeigt eine Chat-Schaltfläche unseres Anbieters Crisp. Nach dem Laden einer Seite lädt dein Browser das Crisp-Skript von `client.crisp.chat`; Crisp setzt die unter [Cookies und Browserspeicher](#cookies) beschriebenen Cookies. Crisp erhält deine IP-Adresse, Browserangaben, die Adressen besuchter Seiten und deine Nachrichten und speichert deine IP-Adresse, wenn du ein Gespräch beginnst. Wir teilen Crisp die Seitensprache mit. Wenn du im Kontoportal angemeldet bist, geben wir Crisp außerdem die E-Mail-Adresse und die ID deines Kontos, die das Gespräch mit deinem Konto verknüpfen. Weitere Angaben über dich erhält Crisp nicht. Crisp hat seinen Sitz in Frankreich. +Ab 0.1.0-beta.1 standardmäßig an. Share usage data unter Preferences > General > Privacy ausschalten. Direkt an PostHog EU gehen tägliche Nutzung mit Verbindungstypen/-anzahl, erster Versuch/Erfolg und Abfrage nach Typ, Anmeldung/Abmeldung, Upgrade-Klicks und Lizenzfragen/Buy-Antworten. Sie tragen Installations-/Konto-ID, Versionen, Architektur, Sprache und SDK-Metadaten. PostHog erhält IP und schätzt den Ort. Vor Anmeldung Zufalls-ID ohne Profil, danach Konto-Profil mit Verbindung zu Käufen. Abmeldung setzt die ID zurück. Keine Hosts, SQL, Zeilen oder Zugangsdaten. Geräteregistrierung enthält den Hostnamen separat. -**Checkout-Skript.** Wenn du auf eine Kaufen-Schaltfläche zeigst oder sie mit der Tabulatortaste erreichst, lädt dein Browser das Checkout-Skript von {merchant} über jsDelivr (`cdn.jsdelivr.net`). jsDelivr erhält deine IP-Adresse und Browserangaben. Der Checkout selbst öffnet sich bei {merchant} erst nach deinem Klick. +Ausschalten stoppt neue Sendungen. Laufende Anfragen können enden. Frühere Ereignisse bleiben; Kontoanfragen und Serveranalyse laufen weiter. Siehe [Aufbewahrung](#retention), [Rechte](#rights) und [Verzeichnis](https://docs.tablepro.app/security/privacy#linux-usage-data). -**Newsletter-Prüfung.** Wenn du mit dem Newsletter-Formular beginnst, lädt dein Browser Cloudflare Turnstile von `challenges.cloudflare.com`, um zu prüfen, dass sich ein Mensch anmeldet; Cloudflare erhält deine IP-Adresse und Browserangaben. + -**Kaufzuordnung.** Bei deiner Ankunft auf der Website speichert dein Browser 90 Tage lang einen Erstbesuchsdatensatz namens `tablepro:attribution` im lokalen Speicher: die Herkunft des Besuchs (die `ref`- oder `utm_*`-Parameter des gefolgten Links oder die verweisende Website), die Einstiegsseite und den Zeitpunkt. Wenn du einen Kauf beginnst, wird der Datensatz mit der Checkout-Anfrage gesendet. Unser Server übergibt die Herkunft des Besuchs als Metadaten des Checkouts an {merchant}, bewahrt sie nach der Zahlung bei der Bestellung auf und sendet sie mit Checkout und Zahlung an PostHog. Einstiegsseite und Zeitpunkt werden nicht aufbewahrt. +## Gewählte Dienste {#integrations} -**Dokumentation.** Die Dokumentation unter docs.tablepro.app wird von Mintlify gehostet. Mintlify erhält mit jeder Seite deine IP-Adresse und Angaben zu deinem Browser, und die Seiten laden ihre Schriften von Google Fonts. Die Navigationsleiste zeigt die Anzahl der Sterne des Repositorys, die dein Browser von der API von GitHub abruft; daher erhält auch GitHub deine IP-Adresse und Angaben zu deinem Browser. Diese Anfrage setzt keine Cookies. Die Dokumentation stellt ihre eigene Cookie-Frage, weil sie deine Antwort auf dieser Website nicht lesen kann. Bis du dort **Allow** wählst, setzt sie keine Cookies und speichert keine Besucher-ID. Mit deiner Erlaubnis setzt Google Analytics die Cookies `_ga` und `_ga_` und misst deine Besuche der Dokumentation, und Mintlify speichert eine zufällige Besucher-ID, `mintlify_anonymous_id`, im lokalen Speicher, um sie zu zählen. Mit **Cookie settings** in der Fußzeile der Dokumentation änderst du deine Antwort; lehnst du ab, wird beides gelöscht. Rechtsgrundlage: deine Einwilligung. +Datenbank-, SSH- und Proxyanbieter erhalten angeforderten Verkehr direkt aus der App. Anmeldedienste erhalten Authentifizierung, wenn eingerichtet. Apple Maps liefert Karten, DuckDB genutzte Erweiterungen. Heruntergeladene Verbindungs-/KI-Helfer kontaktieren ihre Anbieter. Deren Bedingungen gelten. -**Sprache und regionaler Rabatt.** Um dir die Seite in deiner Sprache vorzuschlagen, wenn dein Browser keine der angebotenen Sprachen nennt, und um den regionalen Rabatt zu zeigen, der beim Kauf abgezogen würde, fragt die Website Cloudflare (`/cdn-cgi/trace`) und unseren Server, aus welchem Land deine Verbindung kommt, und liest gegebenenfalls die Zeitzone deines Geräts. Keine der beiden Anfragen enthält Cookies, und die Seite behält nichts von den Antworten. Rechtsgrundlage: berechtigtes Interesse. +### iCloud und Handoff {#icloud} -Das Lesen der Website setzt keine eigenen Cookies. Anfragen zur Newsletter-Anmeldung, zum Checkout und zur Rabattcodeprüfung von der öffentlichen Website lassen Zugangsdaten aus: Sie senden weder Kontoportal-Cookies noch übernehmen sie Cookies aus der Antwort. Das Öffnen von Kontoportalseiten ist davon getrennt: Die Anmeldung dort setzt das unten genannte Portal-Cookie. Alles, was die Website in deinem Browser aufbewahrt, steht unter [Cookies und Browserspeicher](#cookies). +Optionales iCloud Sync speichert Verbindungen, Gruppen, Tags, Einstellungen, Abfragen und SSH-Profile in deinem privaten CloudKit. Auf dem Mac werden auch Tabellen- und Datenbankfavoriten, Ordner sowie Namen, Benutzernamen und Passwortmodi von Anmeldedatenprofilen synchronisiert, niemals deren Passwort. Apple hostet es; wir können es nicht lesen. Passwortsync ist separat und standardmäßig aus, über Ende-zu-Ende-verschlüsseltes iCloud Keychain. Auf Mac betrifft es weitere dort geschriebene Geheimnisse wie KI- und alte Lizenzschlüssel. Kontotokens synchronisieren nie. Mac braucht Pro oder Team, iOS ist kostenlos. Handoff übergibt Verbindungs-ID und Tabellenname oder ohne Tabelle Verbindungsname/Host zwischen Apple-Geräten, ohne Zugangsdaten. Siehe [Einstellungen](https://docs.tablepro.app/features/icloud-sync). -## Käufe {#purchases} +### KI und externe Werkzeuge {#ai-tools} -Lizenzen werden von {merchant} (Polar Software, Inc.), unserem Merchant of Record und Wiederverkäufer, verkauft. Du kaufst bei {merchant} nach dessen Käuferbedingungen und Datenschutzerklärung. {merchant} nimmt Zahlungen entgegen, berechnet und entrichtet anfallende Verkaufs- oder Mehrwertsteuer, sendet Belege und Rechnungen und bearbeitet Zahlungsprobleme und Streitigkeiten. Dabei werden Name, E-Mail-Adresse, Rechnungsadresse und Zahlungsdaten erfasst. Wir sehen niemals deine vollständigen Kartendaten. +KI-Anfragen gehen direkt an deinen Anbieter oder ein lokales Modell. Prompts, Schema, SQL und Gespräch können übertragen werden. Rasterzeilen anzuhängen ist standardmäßig aus. Ergebnisse eines erlaubten KI-Abfragewerkzeugs gelangen unabhängig davon ins Gespräch und zum Anbieter. GitHub Copilot lädt einen Helfer von npm; Send telemetry to GitHub ist zunächst an. -Wenn du einen Checkout beginnst, teilt unser Server {merchant} mit, was du kaufst, die Sprache deiner Kaufseite, die Herkunft deines Besuchs (siehe [Website](#website)) und deine IP-Adresse, mit der {merchant} Steuern und Währung bestimmt. Von {merchant} erhalten wir deine E-Mail-Adresse, Name und Rechnungsadresse wie von dir eingegeben, deinen Kauf, die Beträge, Bestell- und Abonnement-IDs sowie spätere Änderungen wie Verlängerungen, Kündigungen und Erstattungen. Bei jeder Bestellung bewahren wir E-Mail-Adresse, Rechnungsland und Beträge auf. +MCP ist standardmäßig aus und kann so nicht starten, auch nicht per Bridge oder Kopplung. Eingeschaltet dürfen authentifizierte Clients nach deinen Berechtigungen Daten anfordern. Ein KI-Client kann Ergebnisse an seinen Dienst weitergeben. Externe MCP-Server erhalten freigegebene Argumente. Siehe [KI-/MCP-Kontrollen](https://docs.tablepro.app/security/privacy#ai-providers). -Ein Kauf ohne Anmeldung geht an das TablePro-Konto der beim Kauf verwendeten E-Mail-Adresse; gibt es keines, wird es angelegt und bleibt unbestätigt, bis du dich zum ersten Mal anmeldest. Im [Kontoportal]({account}) kannst du Abrechnungszeitraum oder Arbeitsplätze eines Abonnements ändern, es kündigen oder fortsetzen und eine Erstattung anfordern. Bei einer Kündigung gehen der gewählte Grund und ein etwaiger Kommentar an {merchant} und werden beim Abonnement aufbewahrt. Karte, Rechnungen, Steuerangaben und Rechnungsadresse findest du im [Kundenportal von {merchant}]({portal}), das das Kontoportal für dich öffnet. Erstattungen sind in der [Erstattungsrichtlinie](/de/refund-policy) beschrieben, der Umfang einer Lizenz in den [Nutzungsbedingungen](/de/terms). +## Websites und Browserspeicher {#website} -## Kontoportal {#account} +Server und Cloudflare erhalten IP, User-Agent und Seiten. Cloudflare Web Analytics zählt Aufrufe, Quellen, Ladezeiten, Browser-/System-/Gerätetypen und Länder ohne Browserspeicher oder Fingerprinting. Das berechtigte Interesse ist Verständnis und Betrieb der Website. -Im [Kontoportal]({account}) unter account.tablepro.app verwaltest du dein TablePro-Konto: Lizenzen, Geräte, Abrechnung und Teams. Es läuft wie die Website auf unserem Server hinter Cloudflare. +Google Analytics lädt im Consent Mode. Vor Allow sendet es ein Signal ohne Cookie oder gespeicherte Geräte-ID. Einwilligung aktiviert Cookies und Besuchs-, Download- und Kaufmessung. Werbespeicher, Personalisierung und Werbenutzerdaten bleiben verweigert. Laut Google speichert GA4 keine IPs. -**Dein Konto.** Ein Konto gehört einer Person und wird über eine E-Mail-Adresse identifiziert. Es enthält diese Adresse, den Namen und die Sprache, die du festlegst, deine Anmeldemethoden, die darauf angemeldeten Geräte, deine Lizenzen und Bestellungen, die Teams, zu denen du gehörst, mit deiner Rolle und deinem Arbeitsplatz, sowie ein Audit-Log der Änderungen daran, etwa Anmeldungen, neue Geräte und Teamänderungen, mit IP-Adresse und Browser der jeweiligen Anfrage. Unsere E-Mails erreichen dich in der Sprache deines Kontos. +Crisp lädt überall auf Website und Portal laut [Support](#support). Zeigen oder Tab auf Buy lädt das {merchant}-Skript von jsDelivr mit IP/Browser; Klicken öffnet Checkout. Formularbeginn lädt Turnstile gegen Missbrauch, berechtigtes Interesse. Länderabfragen/Zeitzone dienen Sprach- und Rabattvorschlägen unter berechtigtem Interesse; Anfragen ohne Cookies, Antworten nicht auf der Seite gespeichert. -**Anmeldung.** Wir senden dir einen Link und einen 6-stelligen Code per E-Mail: Der Link funktioniert einmal, für den Code hast du 5 Versuche, und beide laufen nach 15 Minuten ab. Du kannst auch Passkeys hinzufügen; wir speichern zu jedem den öffentlichen Schlüssel, den Namen, den du vergibst, ob er zwischen deinen Geräten synchronisiert wird, und wann er hinzugefügt und zuletzt verwendet wurde. Oder du meldest dich mit Apple, GitHub oder Google an: Der Anbieter teilt uns eine ID für dich und deine bestätigte E-Mail-Adresse mit, Apple beim ersten Mal auch deinen Namen. Wir speichern ID und Adresse bei deinem Konto, bei Apple außerdem ein Token, das wir verschlüsselt aufbewahren und bei Apple widerrufen, wenn du Apple trennst oder dein Konto löschst. Gehört die Adresse eines Anbieters zu einem bestehenden Konto, senden wir diesem Konto vor der Verknüpfung einen Link und einen Code zur Bestätigung, es sei denn, Google verwaltet die Adresse (Gmail oder Google Workspace). +Der erste Besuch erzeugt `tablepro:attribution` für 90 Tage: Tags/Quelle, Einstiegsseite und Datum. Beim Kauf übergibt der Server die Quelle als Metadaten an {merchant}, behält sie bei der Bestellung und sendet sie mit Checkout/Zahlung an PostHog. Einstiegsseite und Datum bleiben nicht. Grundlage ist berechtigtes Interesse an Kaufquellen. Öffentliche Newsletter-, Checkout- und Rabattanfragen lassen Zugangsdaten aus und setzen kein Portalcookie. Das Portal führt kein Analyseskript aus, der Server sendet Dienstereignisse. -**Deine Teams.** Wenn du jemanden in ein Team einlädst, speichern wir E-Mail-Adresse und Rolle dieser Person und ob die Einladung einen Arbeitsplatz enthält, und senden ihr einen Link, der 7 Tage gilt. Inhaber und Admins sehen die Mitglieder des Teams mit Namen und E-Mail-Adressen, seine Einladungen und sein Audit-Log, das zeigt, wer im Team was geändert hat, eingeladene Adressen eingeschlossen, aber nie eine IP-Adresse oder einen Browser. Mitglieder sehen das Team, seinen Tarif, die Zahl seiner Arbeitsplätze und ihre eigene Rolle. +### Dokumentation {#docs} -**Deine Daten.** In den Einstellungen kannst du Namen, E-Mail-Adresse und Sprache ändern, Anmeldemethoden hinzufügen und entfernen, die Daten deines Kontos als JSON-Datei herunterladen und dein Konto löschen. Solange dir ein Team mit weiteren Mitgliedern gehört, lässt es sich nicht löschen. Das Löschen entfernt deine Anmeldemethoden, Geräte, Lizenzen, Teammitgliedschaften und die Teams, die nur aus dir bestehen, löscht die Newsletter-Anmeldung deiner E-Mail-Adresse und beendet deine Abonnements ohne Erstattung. Was wir danach aufbewahren, steht unter [Wie lange wir Daten aufbewahren](#retention). +Mintlify hostet docs.tablepro.app. Seiten-, Google Fonts und GitHub-Sterneanfragen geben den Anbietern IP/Browser. Docs fragt separat nach Analysezustimmung. Vor Allow keine Analysecookies oder Besucher-ID. Allow aktiviert Google Analytics und Mintlify-ID. Cookie settings im Docs-Fußbereich widerruft und entfernt sie. Die Websitewahl gilt dort nicht. -**Was das Portal lädt.** Das Portal lädt weder Google Analytics noch Cloudflare Web Analytics noch ein anderes Analyse-Skript und stellt keine Cookie-Frage. Es zeigt den unter [Website](#website) beschriebenen Live-Chat von Crisp, und ein Kauf dort öffnet den Checkout von {merchant} über der Seite. +### Cookies und Speicher {#cookies} -## Newsletter {#newsletter} +Cloudflare Web Analytics speichert nichts im Browser. Öffentliche Seiten setzen keine eigenen Cookies. Diese Fristen unterscheiden sich von Anbieteraufbewahrung. Notwendiger Speicher erhält Anmeldung oder Wahl; Einwilligung und berechtigte Interessen sind hier beschrieben. -Wenn du Versionshinweise abonnierst, senden wir dir zuerst einen Bestätigungslink in der Sprache der Anmeldeseite. Der Link gilt 7 Tage, und eine Adresse erhält höchstens 3 pro Tag. Nach deiner Bestätigung kommt deine Adresse in unsere Newsletter-Liste, die wir mit dieser Sprache auf unserem Server führen. Für die Anmeldung und die Bestätigung erfassen wir jeweils den Zeitpunkt, die IP-Adresse und den Browser, von denen sie kam, die Seite, auf der du dich angemeldet hast, und die Version des Einwilligungstexts, dem du zugestimmt hast. Cloudflare Turnstile prüft das Formular, wie unter [Website](#website) beschrieben. +| Name/Dienst | Zweck und Auslöser | Dauer und Kontrolle | +| --- | --- | --- | +| `_ga`, `_ga_` | Google Analytics nach Einwilligung | Bis 2 Jahre; Ablehnen löscht | +| `tablepro:analytics-consent` | Notwendige Wahl, separat Website/Docs | Bis gelöscht | +| `tablepro:attribution` | Erstquelle beim Checkout; berechtigtes Interesse | 90 Tage | +| `theme`, `tablepro:language`, `tablepro:campaign-closed` | Aussehen, gewählte/verworfene Sprachen, geschlossener Angebotshinweis; berechtigtes Interesse | Bis gelöscht; Portaldesign separat | +| `mintlify_anonymous_id` | Docs-ID nach dortiger Einwilligung | Bis gelöscht oder abgelehnt | +| `crisp-client/`-Cookies | Chatfortsetzung nach Laden auf jeder Seite; berechtigtes Interesse | 6 Monate, bei Rückkehr erneuert | +| `__Host-tp_session` | Notwendige Portalanmeldung | 30 Tage angemeldet; beim Anmelden höchstens 10 Minuten; Abmeldung löscht | +| `locale`, `context`, `sign-in-return-to` | Sprache, Personal/Team-Ansicht, Rückkehrseite; berechtigtes Interesse | Erste zwei bis gelöscht; Rückkehr 15 Minuten | -Jeder Newsletter erfasst Öffnungen und Klicks bei allen Empfängern. Er enthält ein kleines Bild, und seine Links laufen über `links.news.tablepro.app`. Wenn dein E-Mail-Programm das Bild lädt oder du einem Link folgst, erfasst Amazon SES den Zeitpunkt der Öffnung oder des Klicks und den angeklickten Link, mit der IP-Adresse und dem User-Agent, die dein E-Mail-Programm sendet, und gibt sie an unseren Server weiter, der die Öffnungen und Klicks jedes Newsletters zählt. Ein E-Mail-Programm, das keine Bilder lädt, meldet keine Öffnungen. Der Abmeldelink und Links, die eine neue E-Mail öffnen, werden nicht erfasst. - -Jeder Newsletter enthält einen Abmeldelink, der eine Seite mit einer Schaltfläche zum Abmelden öffnet, und Header, mit denen dein E-Mail-Programm dich mit einem Klick abmelden kann. Nach der Abmeldung senden wir keine weiteren Newsletter und keine E-Mail, die sie bestätigt; für ein erneutes Abonnement ist eine neue Bestätigung nötig. Wenn du einen Newsletter als Spam markierst, meldet dich das ebenfalls ab, und sobald eine E-Mail an deine Adresse endgültig unzustellbar ist, senden wir nicht mehr an sie. Wenn auch die Adresse gelöscht werden soll, schreibe uns oder lösche dein TablePro-Konto, falls es diese Adresse verwendet. - -Beim Umzug von unserem früheren Server kam jede Adresse seiner Mailingliste, die sich nicht abgemeldet hatte, als abonniert in diese Liste, ob bestätigt oder nicht: Dieser Server hatte auch die Adressen von Käufern, Lizenzinhabern und Beta-Anmeldungen aufgenommen und ihnen E-Mails gesendet. Abgemeldete Adressen kamen als abgemeldet herüber, und Adressen, deren E-Mails unzustellbar waren oder als Spam markiert wurden, kamen stattdessen auf unsere Sperrliste, sodass sie kein Newsletter erreicht. - -## Cookies und Browserspeicher {#cookies} - -Das Lesen der öffentlichen Website und ihre Anfragen zu Newsletter, Checkout und Rabattcodes setzen keine eigenen Cookies. Die Anmeldung im Kontoportal, auch eine erst begonnene, setzt das eine unten genannte unbedingt erforderliche Portal-Cookie. Cloudflare Web Analytics setzt keine Cookies und speichert nichts im Browser. Google-Analytics-Cookies werden erst mit deiner Erlaubnis gesetzt. Crisp setzt seine Cookies auf jeder Seite, sobald der Chat geladen ist. Nichts davon wird für Werbung verwendet oder verkauft. - -- **`_ga` und `_ga_`** (Google-Analytics-Cookies, bis zu 2 Jahre, nur mit deiner Erlaubnis): eine zufällige Browserkennung und der Status deines aktuellen Besuchs. Ablehnen oder späteres Ändern deiner Antwort löscht sie. Rechtsgrundlage: Einwilligung. -- **`tablepro:analytics-consent`** (lokaler Speicher, bis du ihn löschst): deine Antwort auf die Analysefrage, damit sie nicht auf jeder Seite erscheint. Das Kontoportal lädt keine Analyse, stellt diese Frage also nicht und liest die Antwort nicht. Rechtsgrundlage: unbedingt erforderlich, um deine Wahl zu beachten. -- **`tablepro:attribution`** (lokaler Speicher, 90 Tage): der unter [Website](#website) beschriebene Erstbesuchsdatensatz. Er enthält keine persönliche Kennung und wird nur mit einer Checkout-Anfrage gesendet, die die Herkunft des Besuchs an {merchant} übergibt. Rechtsgrundlage: berechtigtes Interesse. -- **`theme`** (lokaler Speicher, bis du ihn löschst): deine Wahl zwischen heller, dunkler oder Systemdarstellung. Das Kontoportal speichert seine eigene. Rechtsgrundlage: berechtigtes Interesse. -- **`tablepro:language`** (lokaler Speicher, bis du ihn löschst): die Sprache, die du im Sprachmenü oder in der Sprachleiste gewählt hast, und jede Sprache, deren Vorschlag du geschlossen hast, damit sie nicht erneut angeboten wird. Rechtsgrundlage: berechtigtes Interesse. -- **`tablepro:campaign-closed`** (lokaler Speicher, bis du ihn löschst): die Aktion, deren Hinweis über der Kopfzeile du geschlossen hast, damit er auf allen Seiten geschlossen bleibt, bis diese Aktion endet. Rechtsgrundlage: berechtigtes Interesse. -- **`mintlify_anonymous_id`** (lokaler Speicher auf docs.tablepro.app, von Mintlify gesetzt, nur wenn du dort Google Analytics zulässt): die unter [Website](#website) beschriebene Besucher-ID. Beim Ablehnen wird sie gelöscht. Die Dokumentation speichert ihre eigene Antwort `tablepro:analytics-consent`. Rechtsgrundlage: Einwilligung. -- **Cookies beginnend mit `crisp-client/`** (Crisp, etwa `crisp-client/session/…`; 6 Monate, bei Rückkehr erneuert; auf jeder Seite nach dem Laden des Chats gesetzt): halten Chat und Gespräch über Seiten und Besuche hinweg verfügbar. Rechtsgrundlage: berechtigtes Interesse, um auf jeder Seite Support anzubieten. -- **`__Host-tp_session`** (Kontoportal-Cookie, 30 Tage ab der Anmeldung): hält dich angemeldet. Vor der Anmeldung wird es nur gesetzt, während eine Anmeldung per Passkey, Apple, GitHub, Google oder aus einer App läuft, für höchstens 10 Minuten. Die Abmeldung löscht es. Anfragen zu Newsletter, Checkout und Rabattcodes von der öffentlichen Website lassen Zugangsdaten aus und erhalten es nie. Rechtsgrundlage: unbedingt erforderlich. -- **`locale`, `context` und `sign-in-return-to`** (lokaler Speicher des Kontoportals): die Sprache, die du dort vor der Anmeldung gewählt hast, und ob du zuletzt Persönlich oder ein Team geöffnet hast, beides bis du es löschst, sowie für 15 Minuten die Seite, zu der du nach dem Öffnen eines Anmeldelinks aus einer E-Mail zurückkehrst. Rechtsgrundlage: berechtigtes Interesse. - -Du kannst deine Analyseantwort jederzeit über **Cookie-Einstellungen** im Fußbereich jeder Seite ändern oder widerrufen, oder hier: +Ändere die Analysewahl mit Cookie settings im Fußbereich oder hier: -## Rechtsgrundlagen {#lawful-basis} +## Empfänger {#sharing} -Für Leser im Europäischen Wirtschaftsraum und im Vereinigten Königreich sind die Rechtsgrundlagen nach DSGVO und UK GDPR: +| Empfänger | Daten und Zweck | +| --- | --- | +| [OVH]({ovhPrivacy}) | Server und Dienstdaten | +| [Cloudflare]({cloudflarePrivacy}) | DNS/Proxy, R2 und Backups, Turnstile, Cloudflare Web Analytics | +| [Amazon Web Services]({awsPrivacy}) | Amazon SES Mail, Zustellung und Newsletterinteraktion; CloudFront-Links, SNS/SQS-Ereignisse | +| [PostHog EU]({posthogPrivacy}) | App-/Serveranalyse; IDs ohne Namen/E-Mail; direkte Anfragen mit IP | +| [{merchant}]({merchantPrivacy}) | Unabhängiger Merchant of Record; Checkout, Abrechnung, Käufe | +| [Crisp]({crispPrivacy}) | Chat, Browser/Seiten und angemeldete Kontoidentität | +| [Google]({googlePrivacy}) | Website-/Docsanalyse und Schriften; gewählte Anmeldung | +| [Mintlify]({mintlifyPrivacy}) | Docshosting und erlaubte Besuchsmessung | +| [GitHub]({githubPrivacy}) | Downloads, Updates, Plugins, Sterne, öffentliche Issues, optionale Anmeldung | +| [Apple]({applePrivacy}) | Optionale Anmeldung; Dienste/Diagnosen laut Apps/Integrationen | +| [jsDelivr]({jsdelivrPrivacy}) | Checkoutskript mit IP/Browser | -- **Vertrag** (Art. 6 Abs. 1 lit. b): Verkauf und Bereitstellung einer Lizenz, dein Konto mit Anmeldemethoden und Geräten, Lizenzprüfungen, Kontoportal und Team Library. -- **Berechtigtes Interesse** (Art. 6 Abs. 1 lit. f): Nutzungsdaten der Mac-App und ihre Auswertung in PostHog, die Ereignisse zu Anmeldungen, Käufen, Geräten und Teams, die unser Server an PostHog sendet, Audit-Log des Kontos, Sicherheit und Missbrauchsprävention einschließlich Cloudflare Turnstile im Newsletter-Formular, Serverprotokolle, Cloudflare Web Analytics, Kaufzuordnungsdatensatz, Länderabfrage für Sprache und regionalen Rabatt sowie Live-Chat auf jeder Seite. -- **Einwilligung** (Art. 6 Abs. 1 lit. a): Google-Analytics-Cookies, Nutzungsbericht der iPhone- und iPad-App, Newsletter und von dir begonnene Live-Chat-Gespräche. -- **Gesetzliche Verpflichtung** (Art. 6 Abs. 1 lit. c): Steuer- und Buchhaltungsunterlagen sowie Antworten auf rechtmäßige Anfragen. +Teammitglieder erhalten Inhalte und Kontodetails nach Rolle. Integrationen erhalten, was du ihnen sendest. Wir verkaufen keine Daten und teilen sie nicht für Werbung. Andere Offenlegung nur bei gesetzlicher Pflicht. Anbieterregeln gelten ebenfalls. -## Wer Daten erhält {#sharing} +## Verarbeitungsorte {#transfers} -Wir teilen personenbezogene Daten nur mit den Diensten, die für den Betrieb von TablePro erforderlich sind: +OVH und Amazon SES liegen in Singapur (`ap-southeast-1` für SES). PostHog liegt in der EU, Crisp sitzt in Frankreich. {publisherName} arbeitet aus Vietnam. US-Anbieter, darunter {merchant}, Google, GitHub, Cloudflare, Amazon Web Services und Mintlify, verarbeiten in den USA. Speicher und Backups können andere Länder betreffen. Erforderliche EWR/UK-Garantien nutzen Standardvertragsklauseln oder andere genehmigte Mechanismen der Anbieter; Google auch EU-US Data Privacy Framework. Informationen über [Kontakt](#controller). -- **{merchant}**, dem Merchant of Record für Käufe. -- **Amazon Web Services**, dessen Dienst Amazon SES unsere E-Mails aus der Region Asien-Pazifik (Singapur) versendet: Anmeldelinks und -codes, Teameinladungen, Konto- und Sicherheitshinweise sowie Newsletter. Es meldet uns, wenn eine E-Mail zugestellt, nicht zugestellt oder als Spam markiert wird, und wir erfassen Unzustellbarkeit und Spam-Meldungen, um an diese Adressen nicht mehr zu senden. Bei Newslettern meldet es zudem jede Öffnung und jeden Klick, wie unter [Newsletter](#newsletter) beschrieben. -- **Unserem Hostinganbieter und Cloudflare**, für Website, Kontoportal und den Server, mit dem die Apps kommunizieren. Cloudflare zählt auch Seitenaufrufe mit Cloudflare Web Analytics und prüft das Newsletter-Formular mit Turnstile. -- **Google**, für Google Analytics auf Website und Dokumentation. -- **Crisp**, für den Live-Chat auf jeder Seite von Website und Kontoportal. -- **PostHog** (EU Cloud), unserem Dienst für Produktanalysen, der die Nutzungsberichte der Apps und die Ereignisse unseres Servers zu Anmeldungen, Käufen, Geräten und Teams erhält, mit deiner Konto-ID, aber nie mit deiner E-Mail-Adresse oder deinem Namen. Nutzungsdaten, die die Mac-App direkt sendet, erreichen PostHog mit der IP-Adresse deines Macs. -- **Apple, GitHub und Google**, wenn du dich mit ihnen bei deinem Konto anmeldest. -- **jsDelivr**, das deinem Browser das Checkout-Skript von {merchant} liefert, wenn du auf eine Kaufen-Schaltfläche zeigst. -- **Mintlify**, das die Dokumentation unter docs.tablepro.app hostet. -- **GitHub**, das Update-Feed, Plugin-Katalog und Downloads hostet und die Anzahl der Sterne liefert, die die Dokumentation zeigt. +## Aufbewahrung {#retention} -Wir verkaufen keine personenbezogenen Daten und teilen sie nicht mit Werbetreibenden. +Wo angegeben, haben wir keine Zeitgrenze festgelegt. Kontolöschung löscht nichts bei PostHog oder Crisp. Schreibe über [Kontakt](#controller), damit wir die Daten dort auf Wunsch löschen. -## Internationale Übermittlungen {#transfers} +| Daten | Aufbewahrung und Löschung | +| --- | --- | +| PostHog-Analyse | Keine festgelegte Grenze. Abschalten lässt alte Ereignisse bestehen. Löschung anfragen. | +| Jobs und Serverlogs | Jobs halten Berichte während Sendung/Wiederholung. Logs dienen Sicherheit/Fehlersuche. Keine Gesamtfrist; keine Zusage ohne Serverkopien. | +| Geräte | Auch entfernte, bis Kontolöschung | +| Konto und Audit | Konto, Anmeldung, Geräte, Lizenzen und Mitgliedschaften werden gelöscht. Audits bleiben ohne Grenze; E-Mail-Felder und Akteur-IP/User-Agent verschwinden, Adressen im Freitext können bleiben. | +| Bestellungen und Anbieterhinweise | Steuer-/Buchhaltungsbestellungen ohne feste Grenze. Konto-/E-Mail-Verknüpfung wird entfernt. {merchant}-, Amazon-SES- und Apple-Ereignisse bleiben; persönliche Kauf- und Mail-Empfänger/Interaktionsdaten werden für das gelöschte Konto bereinigt. | +| Team Library | Gelöschtes Element behält letzte Version für Sync. Normale Teamlöschung entfernt Bibliothek nach 30 Tagen, davor wiederherstellbar. Konto des einzigen Eigentümers löschen entfernt beides sofort. Lizenzende löscht nicht. | +| Authentifizierung | Links/Codes verfallen nach 15 Minuten, Löschung 7 Tage später. Portalsitzung 30 Tage. Apptokens verfallen 90 Tage nach Nutzung, Löschung 30 Tage danach. Mailjobs behalten Klartext bis Bereinigung: einen Tag nach Versand oder 7 nach Aufgabe. | +| Newsletter | Neue unbestätigte Adressen nach 30 Tagen gelöscht. Bestätigte/migrierte bis Anfrage oder Löschung des zugehörigen Kontos. Abmeldung behält Adresse als abgemeldet. | +| Sperrliste | Rückläufer-/Beschwerdeadressen und erste/letzte Daten bleiben nach Konto-/Abolöschung gegen weitere Mail. Keine Grenze. | +| Google Analytics | Nutzer-/Ereignisdaten 2 Monate; Standard-Gesamtberichte separat | +| Cloudflare Web Analytics | Aufrufzahlen der letzten sechs Monate verfügbar | +| Support | Crisp und Mail bis Löschung, auch auf Anfrage. Keine feste Grenze. | +| Backups und Migrationsarchiv | Keine Grenze. Kontolöschung entfernt diese Kopien nicht. Altes Gesamtarchiv enthält Namen/E-Mails, Lizenzen, Bestellungen, Teams, Gerätenamen, Abonnenten, Beta-Anmeldungen, Mails, Nutzungsberichte und Lizenzlogs mit IP. | -Die genannten Dienste sind in mehreren Ländern tätig; deine Daten können daher außerhalb deines Landes verarbeitet werden. {merchant}, Google, GitHub, Cloudflare und Mintlify verarbeiten Daten in den USA. Google tut dies auf Grundlage des EU-US Data Privacy Framework und der Standardvertragsklauseln. PostHog verarbeitet sie in der Europäischen Union. Amazon Web Services versendet unsere E-Mails aus Singapur. Soweit gesetzlich erforderlich, stützen sich Übermittlungen aus dem EWR und dem Vereinigten Königreich auf Standardvertragsklauseln oder einen anderen genehmigten Mechanismus. +## Wahl und Rechte {#rights} -## Wie lange wir Daten aufbewahren {#retention} +Nutze Appschalter, Cookie settings auf Website/Docs und Newsletterabmeldung. Widerruf wirkt künftig, ohne frühere Verarbeitung ungültig zu machen. Schalter löschen keine Altdaten und stoppen keine Serveranalyse. In [Portal-Settings]({account}) exportierst oder löschst du das Konto; das deckt nicht alle aufbewahrten Daten ab. -- **Nutzungsberichte und Analyseereignisse**: Unser Server bewahrt keine Kopie auf, sobald er sie an PostHog weitergegeben hat. Für PostHog haben wir keine Frist festgelegt. -- **Datensätze unseres früheren Servers**: Eine Kopie seiner gesamten Datenbank wird unbefristet in einem Archiv aufbewahrt. Sie enthält Lizenzen, Bestellungen und Teammitglieder mit E-Mail-Adressen und Namen; die mit einer Lizenz aktivierten Macs mit ihren Namen; Newsletter-Abonnenten und Beta-Anmeldungen; Aufzeichnungen über die versendeten E-Mails; sowie die dort gespeicherten Nutzungsberichte und Protokolle der Lizenzanfragen mit ihren IP-Adressen. -- **Geräte**: werden aufbewahrt, auch die von dir entfernten, bis du dein Konto löschst. -- **Audit-Log deines Kontos**: wird aufbewahrt, solange das Konto besteht, mit IP-Adresse und Browser jeder Änderung, die du vorgenommen hast. Das Löschen des Kontos entfernt daraus deine E-Mail-Adressen sowie IP-Adresse und Browser deiner Aktionen; der Eintrag jeder Änderung bleibt. -- **Bestellungen**: werden für Steuern und Buchhaltung aufbewahrt. Das Löschen deines Kontos entfernt daraus deine E-Mail-Adresse und dein Konto. -- **Benachrichtigungen von {merchant}, Amazon SES und Apple**: werden aufbewahrt. Die von {merchant} enthalten Name, E-Mail-Adresse und Rechnungsadresse; das Löschen deines Kontos entfernt sie aus denen zu deinen Käufen. Die von Amazon SES enthalten die Adresse, an die jede E-Mail ging, und bei einem Newsletter die IP-Adresse und den User-Agent jeder Öffnung und jedes Klicks; das Löschen deines Kontos entfernt diese aus denen zu E-Mails an deine Adresse und aus unseren Aufzeichnungen über jede gesendete E-Mail. -- **Team Library**: bis ein Eintrag geändert wird; ein gelöschter Eintrag behält seine letzte Version. Die Bibliothek wird mit ihrem Team gelöscht, 30 Tage nachdem der Inhaber das Team gelöscht hat; bis dahin kann der Inhaber es wiederherstellen. Nach dem Ende einer Lizenz bleibt sie bestehen. -- **Anmeldelinks und -codes**: laufen nach 15 Minuten ab und werden 7 Tage später gelöscht. Portalsitzungen dauern 30 Tage. Das Token, das eine App angemeldet hält, läuft 90 Tage nach ihrer letzten Nutzung ab und wird 30 Tage danach gelöscht. -- **Gelöschte Konten**: Konto, Anmeldemethoden, Geräte, Lizenzen und Teammitgliedschaften werden sofort gelöscht. Bestellungen und Audit-Log bleiben wie oben beschrieben. Was unser früherer Server über dich gespeichert hat, bleibt in seinem oben beschriebenen Archiv. -- **Newsletter**: Eine Adresse, die nicht innerhalb von 30 Tagen bestätigt wird, wird mit ihrem Bestätigungslink gelöscht. Eine bestätigte oder von unserem früheren Server übernommene Adresse bleibt mit dem Nachweis, wie sie in die Liste kam, in unserer Liste, bis wir sie auf deine Anfrage löschen oder du das TablePro-Konto löschst, das sie verwendet; nach der Abmeldung bleibt sie als abgemeldet gespeichert, damit sie keinen Newsletter mehr erhält. -- **Sperrliste**: Eine Adresse, an die eine E-Mail endgültig nicht zugestellt werden konnte oder deren Inhaber eine unserer E-Mails als Spam markiert hat, bleibt mit dem Zeitpunkt des ersten und des letzten Vorfalls auf unserer Sperrliste, auch nachdem das Konto oder das Newsletter-Abonnement mit dieser Adresse gelöscht wurde. So senden wir ihr keine E-Mail mehr. -- **Google Analytics**: Nutzer- und Ereignisdaten für 2 Monate, Googles Standardfrist, die unsere Property verwendet. Cookies bleiben bis zu 2 Jahre oder werden beim Ablehnen gelöscht. -- **Cloudflare Web Analytics**: Cloudflare zeigt uns die Seitenaufrufsummen der letzten sechs Monate. Im Browser wird nichts gespeichert. -- **Live-Chat und Support-E-Mails**: werden bei Crisp und in unserem Postfach bis zur Löschung aufbewahrt. Bitte uns, deine Gespräche und E-Mails zu löschen. -- **Serverprotokolle**: die Protokolle unseres Webservers und unseres Servers, die wir für Sicherheit und Fehlerbehebung auf unserem Server aufbewahren. Wir haben dafür noch keine feste Frist bestimmt. +Je nach Wohnort kannst du Auskunft, Berichtigung, Löschung, Einschränkung, Übertragung oder Widerspruch gegen berechtigtes Interesse verlangen. Kein Konto nötig: schreibe über [Kontakt](#controller). Wir können zum Auffinden nötige Angaben wie Installations-ID erfragen. Sende nie einen Lizenzschlüssel unverschlüsselt per E-Mail. Wir antworten binnen eines Monats. Du kannst dich bei deiner Datenschutzbehörde beschweren. Gesetzliche Pflichten können Löschung begrenzen. -## Deine Rechte {#rights} - -Je nach Wohnort kannst du uns bitten: - -- dir eine Kopie deiner bei uns gespeicherten personenbezogenen Daten zu geben (Auskunft); -- sie zu korrigieren (Berichtigung); -- sie zu löschen, außer gesetzlich aufzubewahrenden Daten (Löschung); -- ihre Nutzung einzuschränken (Einschränkung); -- sie dir in strukturierter, maschinenlesbarer Form zu senden (Datenübertragbarkeit); -- ihre Nutzung auf Grundlage berechtigten Interesses einzustellen (Widerspruch). - -Du kannst deine Einwilligung jederzeit widerrufen und dich bei deiner Datenschutzbehörde beschweren. Für die Ausübung dieser Rechte schreibe an [{email}](mailto:{email}). Wir antworten innerhalb von 30 Tagen. Im [Kontoportal]({account}) erhältst du in den Einstellungen außerdem eine Kopie der Daten deines Kontos und kannst das Konto löschen. Für alles andere, etwa eine Newsletter-Adresse oder einen Mac ohne Konto, nenne die betroffene E-Mail-Adresse, den Lizenzschlüssel oder das Gerät. Für Daten bei {merchant}, Google, Crisp oder GitHub gelten zusätzlich deren eigene Richtlinien. +### Regionale Rechte {#regional-rights} **Einwohner Kaliforniens.** Der California Consumer Privacy Act gibt dir das Recht zu erfahren, welche personenbezogenen Informationen wir erfassen, ihre Löschung zu verlangen, dem Verkauf zu widersprechen und für die Ausübung dieser Rechte nicht anders behandelt zu werden. Wir verkaufen keine personenbezogenen Informationen. ## Kinder {#children} -TablePro richtet sich nicht an Kinder unter 16 Jahren. Wir erfassen ihre personenbezogenen Daten nicht wissentlich. Wenn du glaubst, dass ein Kind uns personenbezogene Daten gegeben hat, kontaktiere uns; wir löschen sie. +TablePro richtet sich nicht an Kinder unter 16, und wir erheben ihre Daten nicht wissentlich. Wenn ein Kind uns Daten gegeben haben könnte, kontaktiere uns zur Löschung. ## Sicherheit {#security} -Der Datenverkehr zwischen Apps, Website, Kontoportal und unserem Server nutzt HTTPS. TablePro-Konten haben keine Passwörter. Anmeldelinks und -codes, die Tokens, die die Apps angemeldet halten, und Team-API-Tokens werden als Hashes gespeichert. Der Auftrag, der einen Anmeldelink und -code per E-Mail versendet, hält beide im Klartext, bis er gelöscht wird: einen Tag nach dem Versand der E-Mail oder 7 Tage, nachdem wir den Versand aufgegeben haben. Beide funktionieren 15 Minuten nach deiner Anfrage nicht mehr. Zugang zu unseren Systemen haben nur {publisherName} und die unter [Wer Daten erhält](#sharing) genannten Dienstleister. Kein System ist vollkommen sicher. Sicherheitslücken meldest du wie auf der [Sicherheitsseite](/de/security#report) beschrieben oder per E-Mail an [{email}](mailto:{email}). - -## Änderungen dieser Erklärung {#changes} - -Wenn sich diese Erklärung ändert, aktualisieren wir sie hier mit einem neuen Datum „Zuletzt aktualisiert“ und informieren dich direkt, soweit dies gesetzlich erforderlich ist. +Unsere Dienste nutzen HTTPS. Konten haben keine Passwörter. Anmeldedaten und Team-API-Tokens werden gehasht gespeichert, außer dem zeitweiligen Mailjob laut [Aufbewahrung](#retention). Zugriff haben nur {publisherName} und die [Empfänger](#sharing). Kein System ist vollkommen sicher. Melde Schwachstellen auf der [Sicherheitsseite](/de/security#report). -## Kontakt {#contact} +## Änderungen {#changes} -Bei Fragen zum Datenschutz oder zu dieser Erklärung schreibe an [{email}](mailto:{email}). +Die Seite zeigt ihr Aktualisierungsdatum. Ältere Versionen bleiben im [öffentlichen Web-Repositoryverlauf]({webGithub}/commits/main/resources/data/legal/en/privacy.md). Wir aktualisieren vor neuen Zwecken, informieren direkt, wenn gesetzlich nötig, und holen erforderliche neue Einwilligung ein. diff --git a/resources/data/legal/en/privacy.md b/resources/data/legal/en/privacy.md index adadad63..eeaeb461 100644 --- a/resources/data/legal/en/privacy.md +++ b/resources/data/legal/en/privacy.md @@ -1,266 +1,217 @@ --- title: Privacy policy -description: What TablePro's apps, website and account portal collect, where it goes, how long it is kept, and how to change or delete it. -updatedAt: "2026-11-04" +description: What TablePro collects, why it is used, who receives it, how long it stays, and your choices and rights. +updatedAt: "2026-11-05" --- -This policy covers TablePro for Mac, TablePro for iPhone and iPad, the website at tablepro.app, the documentation at docs.tablepro.app, and the account portal at account.tablepro.app. It describes what each of them actually sends and stores today. Both apps are open source under the AGPLv3, so you can read the code that sends any of the data below in the [TablePro repository]({github}). +This policy covers TablePro for Mac, Linux, iPhone and iPad; tablepro.app; docs.tablepro.app; and our account, purchase, support and newsletter services. The [technical inventory](https://docs.tablepro.app/security/privacy) lists app fields, endpoints and controls. The apps' source is in the [public repository]({github}). -## Summary {#summary} +## In brief {#summary} -- The Mac app sends usage data. It is on by default and you can turn it off. The iPhone and iPad app sends a usage report only if you turn it on. -- If you sign in to a TablePro account or activate a license key, the Mac app registers your Mac with our server, including its name, and checks your plan with it regularly. -- The queries you run, your results and your passwords are not sent to TablePro. The exception is what you choose to publish to a Team Library: connection settings (never passwords) and saved queries. -- AI requests go from the Mac app directly to the AI provider you set up, not to us. -- From the version that adds TablePro accounts, the Mac app sends its usage data straight to PostHog, our product analytics service in the EU, which then receives your Mac's IP address and works out an approximate location from it. Earlier versions and the iPhone and iPad app send usage reports to our server, which passes them on to PostHog without their IP addresses. Your account keeps a log of the changes made to it, such as sign-ins and new devices, with the IP address and browser each came from. -- The website counts page views with Cloudflare Web Analytics, which sets no cookies. It also loads Google Analytics, which sets cookies only if you allow them. Every page also loads our live chat, Crisp, which sets cookies of its own. -- The account portal at account.tablepro.app runs no analytics script. It sets one cookie to keep you signed in, and in its Settings you can download your account's data or delete the account. -- Amazon SES, a service of Amazon Web Services, sends our emails. The newsletter records when each recipient opens it and which of its links they click. -- Purchases are sold by {merchant}, our merchant of record. +Ordinary database queries and results travel between your device and your database. Usage data contains no SQL, rows or credentials. Content you choose to publish to Team Library, send to support, or share with AI and external tools is different: those recipients receive it. -## Who is responsible {#controller} - -{publisherName}, an individual developer based in {publisherCity}, {publisherCountry}, publishes the TablePro apps and this website, and is responsible for the personal data described here (the data controller). For any question about this policy or your data, email [{email}](mailto:{email}). - -## TablePro for Mac {#mac-app} - -### Usage data {#mac-usage-report} - -From the version that adds TablePro accounts, the Mac app sends usage data straight to PostHog, our product analytics service, at `eu.i.posthog.com` in the EU. **It is on by default, and the app does not ask before sending the first event.** To turn it off, open **Settings > General > Privacy** and clear **Share usage data**. While it is off, the app sends PostHog nothing, and if the app starts with it off, it does not start PostHog's library at all. - -The app sends an event: - -- once a day while it runs, with the names of the database types of your open connections (for example "PostgreSQL") and how many connections are open; -- for your first connection attempt, your first successful connection and your first query, each with its database type; -- when it shows you that a paid feature is not available, once per feature each time the app runs, with the feature and the reason, such as not being signed in; -- when you click to upgrade, with where in the app you clicked; -- when you sign in, with how (in the app, with a license key, or by exchanging the key already on your Mac), and when you sign out. +Mac and Linux usage data is on by default, with an off switch. The shipped iPhone and iPad app sends its usage report only after you opt in. Direct app analytics can link to your account and purchases. Turning it off does not stop account traffic or server analytics. -PostHog's library adds to every event your Mac's model, screen size, time zone and language, whether it is on Wi-Fi, the app's version, build and bundle ID, the macOS version, the library's version and a random session ID. PostHog receives your Mac's IP address with each request and works out an approximate location from it, such as the country and city. While the setting is on, the library also fetches its settings and feature flags from PostHog (`/config` from `eu-assets.i.posthog.com` and `/flags` from `eu.i.posthog.com`). +The website uses page analytics and loads Crisp chat on every page. Google Analytics cookies need your choice. Newsletters measure opens and clicks. Account deletion leaves some records, including data at PostHog and Crisp. Read [retention](#retention) and [your rights](#rights) before choosing. The [controller](#controller) handles privacy requests, including requests without an account. -Before you sign in, the events carry a random ID that the library makes on your Mac, and PostHog makes no profile of a person for it. Once you sign in, they carry your account ID instead, and PostHog's profile of that account holds the app and macOS versions, the processor architecture, the app's language and the approximate location PostHog works out from the IP address. This links your installs with your sign-ins and purchases. Signing out starts a new random ID. The app's usage data no longer carries a machine ID, whether a license is activated, or your update settings. + -Versions before TablePro accounts send a usage report to `api.tablepro.app` instead, under the same setting, about ten seconds after they start and then once a day while they run. A report contains: +## Who is responsible {#controller} -- a machine ID: a SHA-256 hash of your Mac's hardware UUID (the UUID itself is never sent); -- the platform, the app version, the macOS version, the processor architecture and the app's language; -- the names of the database types of your open connections (for example "PostgreSQL") and how many connections are open; -- whether a license is activated; -- the date and time of your first connection attempt and of your first successful connection; -- your update settings (how updates install and how often the app checks). Our server discards these when the report arrives. +{publisherName}, an individual developer in {publisherCity}, {publisherCountry}, is the controller for the personal data described here. Contact [{email}](mailto:{email}). We have no data protection officer. For teams, we manage account, invitation and service records as controller. We process published Team Library content on the team's instructions; the team decides what to publish and who has access. -Neither the events nor the reports contain hostnames, usernames, passwords, queries or rows. + -Our server does not store the report or the IP address it came from. It passes the report on to PostHog as an event about the machine ID, with the country Cloudflare gives for your connection and without your license key or IP address, and PostHog makes no profile of a person from it. Because your account lists its devices by the same machine ID, reports from a Mac you signed in on, or activated a license on, can be linked to your account. +## What we collect and why {#data-use} -### License checks {#mac-license} +For the EEA and UK, the lawful basis is stated with each purpose: contract (Article 6(1)(b)), legitimate interest (6(1)(f)), consent (6(1)(a)) or legal obligation (6(1)(c)). We make no automated decisions with legal or similarly significant effects. -Versions before TablePro accounts contact our license server only after you enter a license key. They do so when you activate the license, when they start if {revalidateDays} days or more have passed since the last check, and every {revalidateDays} days after that. Each check sends: + -- your license key; -- the machine ID described under [Usage data](#mac-usage-report); -- your Mac's name, as set in macOS (it often includes your own name); -- the app version and the macOS version. +### Accounts and devices {#account} -Deactivating a Mac sends only the license key and the machine ID. +Free local use works without an account. Account services need your email address. We keep your name and language, sign-in methods, licenses, orders, devices, team roles and seats. Mac and Linux device registration sends a machine identifier, device name, platform and app/OS versions. A device name can contain your name. This is separate from usage data. The purpose and basis are providing your account and plan under contract. -Our server keeps each activated Mac as a device of the account that holds the license: its machine ID and name, the app and macOS versions, and when it last checked in. Activating and deactivating a Mac are recorded in that account's audit log with the IP address and user agent of the request; routine checks are not. The account portal lists your devices by name. If our server cannot be reached, the paid features keep working for {graceDays} days after the last successful check. +Sign-in uses emailed links and codes, passkeys, or Apple, GitHub or Google. Passkey records include a public key, name, sync status and use dates. Identity providers supply an ID and verified email; Apple can also supply your name. An Apple token is encrypted and revoked when you unlink it or delete the account. We record account changes with the request's IP address and user agent. Our legitimate interest is securing accounts and investigating abuse. -### TablePro account {#mac-account} +The [account portal]({account}) lets you edit your profile and sign-in methods, manage devices, export account data as JSON, and delete your account. Deletion is unavailable while you own a team with other members. It ends subscriptions without a refund. [Retention](#retention) explains what remains. -From the version that adds TablePro accounts, you sign in to the Mac app with a [TablePro account](#account) instead of a license key. The app opens the sign-in page in a browser sheet, where you can type the code from the sign-in email. After you sign in, it registers your Mac as a device of your account: the machine ID described above, your Mac's name, the platform, and the app and macOS versions. It then fetches your plan from our server as a signed file once a day while it runs, and that file keeps the paid features working for up to {offlineDays} days without our server. The token that keeps the app signed in is kept in the macOS Keychain of that Mac only and never syncs through iCloud Keychain, even with password sync on. +### Purchases {#purchases} -A license key already on your Mac is exchanged once for a sign-in to the account that holds it, then deleted from the Mac. You can remove devices in the app or in the account portal, and the first time a Mac uses your license, we email you about it. +{merchant} (Polar Software, Inc.) is the merchant of record and reseller. It collects your name, email, billing address and payment details under its own terms. It handles payment, tax, receipts and disputes. We never receive full card details. -### Team Library {#library} +We send the purchase, language, visit source and IP address for checkout, tax and currency. We receive buyer and billing details, amounts, order/subscription IDs, renewals, cancellations and refunds. Orders keep email, billing country, amounts and visit attribution. A guest purchase creates an unverified account for its email if none exists. Cancellation reasons and comments go to {merchant} and stay with the subscription. Processing fulfils the purchase contract; tax and accounting records meet legal obligations. Without the required details, checkout cannot complete. Manage billing in [{merchant}'s portal]({portal}); see [terms](/terms) and [refunds](/refund-policy). -Team Library is part of a Team license. When you choose **Share > Publish to Team Library…** on a connection, or **Publish Saved Queries to Team…** in the Favorites sidebar, the Mac app uploads what you publish to our server: +### Teams and shared content {#library} -- connection settings: host, port, database name, username, SSH and SSL settings, driver options, startup commands, the Tunnel Command settings, the Safe Mode level and AI settings, but never passwords; -- saved queries: their names, SQL text, keywords and folders. +An inviter supplies an email, role and seat choice. Owners and admins see member names and emails, invitations and team changes, including invited addresses, but no audit IP addresses or browsers. Members see the team, plan, seat counts and their own role. We use these records to provide the team service under contract. -From the version that adds TablePro accounts, the Mac app of each member with a seat downloads the library's changes when it starts, every 15 minutes and after each publish. Publishing sends only what changed and removes only the items that Mac published and no longer has. When someone else changed an item first, the app asks which copy to keep, and it shows who last changed each team query. Versions before TablePro accounts download the library when they start, at most once a week, and the Mac that publishes downloads it again right after. Publishing from them replaces what you published before. The account portal's Library shows each item, with the name of whoever last changed it, to the members who can read the library, and lets owners and admins delete items. A deleted item stays on our server with its last version, so every Mac can sync the deletion. If the license ends, the library stays on our server until the team's owner deletes the team, which deletes the library with it. +On Mac, publishing to Team Library sends connection settings and saved queries to our server for members with access. Settings include host, port, database, username, SSH/SSL options, startup commands, Tunnel Command and AI settings. Queries include names, SQL text, keywords and folders. Structured password fields are excluded; secrets typed into SQL or other free text are not removed. The library shows who last changed an item. Leaving a team does not by itself erase its shared content. See [deletion timing](#retention). Team Catalog instead writes files to a shared folder you choose. -Team Catalog, the other Team feature, writes connection files without passwords to a shared folder you choose. It does not go through our server. +### Usage and service analytics {#analytics} -### Updates and plugins {#mac-updates} +Our legitimate interest is understanding use, fixing problems and measuring purchases. Mac and Linux send the usage data described under [Your apps](#apps). Our server also sends PostHog events about sign-ins, purchases, devices and teams, with account IDs but no names or email addresses. These IDs link app use to service activity. The app switch stops app usage events; it does not stop required account requests or these server events. Use [your rights](#rights) to object or request erasure. -- **Update checks.** Once a day the Mac app downloads the update feed from GitHub (`raw.githubusercontent.com`). The request sends no information about your Mac beyond what every web request carries: your IP address and a user agent with the app's version. To turn it off, open **Settings > General > Software Update** and clear **Automatically check for updates**. Updates themselves download from GitHub. -- **Plugin catalog.** When the app starts, and when you open the plugin settings, it downloads the list of available drivers and themes from GitHub. There is no setting to turn this off. Drivers and themes you install download from GitHub, and the plugin browser reads download counts from GitHub's API. +### Newsletter and email {#newsletter} -GitHub receives your IP address with these requests. GitHub's own privacy statement applies to them. +Amazon SES sends sign-in codes, invitations, account notices and newsletters. Service emails fulfil your requested service. New newsletter subscriptions need confirmation and rely on consent. We keep the address, language, signup and confirmation dates, IP addresses, user agents, signup page and consent wording version. -### Services you choose to use {#mac-third-parties} +Every newsletter measures every recipient's opens and clicks through an image and `links.news.tablepro.app`. Amazon SES receives the time, link clicked, IP address and user agent, then sends them to our server for counts. Blocking images stops open measurement, not click measurement. Unsubscribe and email links are not tracked. There is no separate switch for measurement. Unsubscribe in the newsletter or through your mail app's one-click control to stop newsletters; no confirmation email follows. Subscribing again needs confirmation. Permanent bounces and spam reports stop further mail. Request address deletion through [contact](#controller). -The Mac app sends data to these services only when you set them up, and directly, never through TablePro: +The previous server's list carried over every address that had not unsubscribed, confirmed or not, including buyers, license holders and beta signups. Unsubscribed addresses stayed unsubscribed; bounced and complained addresses entered the suppression list. [Retention](#retention) covers these records. -- **Your databases, SSH servers and proxies**, which receive whatever your connections send them. -- **AI providers.** When you add a provider and use the AI assistant or inline suggestions, requests go to that provider, or to a model running on your Mac. By default a request includes the database type and name, table and column definitions from the schema, and the current query. Result rows are sent only if you turn that on. The provider's own terms apply. Adding GitHub Copilot downloads its language server from npm, and its "Send telemetry to GitHub" setting starts out on. -- **Sign-in services**: Microsoft Entra ID, Google, Amazon Web Services and Cloudflare Access, when a connection uses them. -- **Apple Maps**, which supplies the map tiles when you show results on a map. -- **DuckDB**, which supplies DuckDB extensions the first time a query uses one. -- **MCP clients.** The MCP server is off by default. It starts when you turn it on, or when an MCP client you have set up launches TablePro's bridge or pairs with it, and it listens only on your Mac (127.0.0.1). An AI client you connect to it, such as Claude or Cursor, receives the results it asks for and sends them to its own service under its own terms. -- **MCP servers you add.** An AI session sends the tool calls you approve, with their arguments, to that server. +### Support {#support} -### Data that stays on your Mac {#mac-local} +Messages, attachments and diagnostics you send reach us and the support service you use. They can contain database content or secrets you include. Crisp receives IP addresses, browser details and pages viewed when chat loads on the website and portal. It keeps the IP if you start a conversation. We supply the page language and, in the signed-in portal, your account email and ID. Loading chat on every page serves our legitimate interest in providing support. Conversations you start rely on consent. -Passwords are kept in the macOS Keychain. Your connection list, query history, Query Insights, Data Rewind snapshots, settings and open tabs are stored on your Mac. The app references SSH keys where they are on disk and does not copy them. Versions before TablePro accounts contain no crash reporter and no third-party analytics library. From the version that adds TablePro accounts, the app includes PostHog's library, which sends the usage data described above. The library contains PostHog's crash reporter, which the app leaves turned off, so it sends no crash reports. The library keeps its random ID, its settings and any events not sent yet in files under `~/Library/Application Support/com.TablePro`. +## Your apps {#apps} -## TablePro for iPhone and iPad {#ios-app} +| App and version | Usage data | Control | +| --- | --- | --- | +| Mac 0.86.0, starting with 0.86.0-beta.1 | Direct to PostHog; on by default | Settings > General > Privacy | +| Linux from 0.1.0-beta.1 | Direct to PostHog; on by default | Preferences > General > Privacy | +| Shipped iPhone and iPad app | Report through our server; off until you opt in | Settings > Privacy | -**Nothing goes to TablePro unless you turn on Share Usage Data**, when the app first starts or later in **Settings > Privacy**. If you do, the app sends a report once a day to the same server as Mac versions before TablePro accounts, which passes it on to PostHog in the same way, without its IP address. The report contains a SHA-256 hash of the identifier Apple gives the app on your device, the platform, the app and iOS versions, the processor architecture, the app's language, the names of the database types of your open connections, how many are open, and the date and time of your first connection attempt, your first successful connection and your first query. It carries no update settings and always reports that no license is activated, because the app has neither. + -The app makes no license check, no update check and no plugin request. Apart from the optional report, it connects only to your databases and SSH servers, to Apple's iCloud if you turn on iCloud Sync, and to Microsoft when a SQL Server connection signs in with Microsoft Entra ID. +### Data on your device {#local-data} -On the device, passwords and pasted SSH keys are kept in the Keychain, and certificates are never synced. Query history stays on the device. Your connections are added to the on-device Spotlight index so you can search for them. While a query runs, its Live Activity shows the SQL on the Lock Screen and in the expanded Dynamic Island unless you turn on **Settings > Live Activities > Hide Query**. +Connection lists, query history, local logs and open tabs stay on the device unless you choose a sharing feature. Database traffic goes to your chosen servers. Passwords use the platform's credential store. On Mac, SSH keys are referenced where they are on disk. Usage analytics never includes hostnames, usernames, SQL, rows or credentials. Sharing through [integrations](#integrations), Team Library or support has the exceptions described here. -If you share analytics with app developers in your iPhone or iPad settings, Apple may pass crash reports and usage statistics to us through App Store Connect. The app contains no crash reporter and no third-party analytics library of its own. +### Mac {#mac-app} -## iCloud Sync and Handoff {#icloud} +The following direct analytics and account behavior starts with 0.86.0, including 0.86.0-beta.1. Signing in registers the Mac and fetches your plan. Its account token stays in that Mac's Keychain and never syncs through iCloud Keychain. An existing license key is exchanged for a sign-in and then deleted locally. -iCloud Sync is off until you turn it on, on the Mac and on iPhone and iPad. When it is on, the records go to a private database in your own iCloud account (container `iCloud.com.TablePro`). TablePro cannot read them. +#### Mac usage data {#mac-usage-report} -- On the Mac you choose what syncs: connections, groups and tags, settings, SSH profiles, credential profiles (their name and username, never the password), table and database favorites, saved queries (including their SQL text) and table folders. A connection record includes the host, port, username, database name, SSH and SSL settings, startup commands, the pre-connect script and AI rules. Query history, Data Rewind snapshots and password sources never sync. -- iPhone and iPad sync connections, groups and tags. -- Passwords sync only if you also turn on **Passwords** under Sync Categories on the Mac, or **Sync Passwords** on iPhone and iPad, which uses iCloud Keychain. On the Mac this also syncs the other secrets TablePro keeps in the Keychain, such as AI provider keys and the license key. From the version that adds TablePro accounts, the license key is deleted once it is exchanged for a sign-in, and the token that keeps the app signed in never syncs. +It is on by default, and the app does not ask before sending the first event. Turn off **Share usage data** in **Settings > General > Privacy**. Starting with it off does not start PostHog's library. No automatic crash reports are sent; PostHog's crash reporter is disabled. -On the Mac, iCloud Sync is part of a Pro or Team license. On iPhone and iPad it is free. +Events cover daily use with open connection types/count, your first connection attempt, successful connection and first query by database type, paid-feature gates and their reasons, upgrade clicks, sign-in method/sign-out, and license-ask displays and answers. PostHog adds device, screen, network, session, app and system context. It receives your IP address and derives rough location. Before sign-in, events use a random installation ID without a person profile. After sign-in they use your account ID, with a profile holding app/OS versions, architecture, language and derived location. Sign-out starts a new random ID. See the [field and endpoint inventory](https://docs.tablepro.app/security/privacy#usage-data). -Handoff passes the ID of the open connection and the name of the open table between your own devices, through Apple. With no table open, it passes the connection's name instead, or its host when the connection has no name. It sends no settings or credentials. +#### Updates and plugins {#mac-updates} -## Website {#website} +The app fetches its update feed and plugin catalog from GitHub through updates.tablepro.app. Downloads and plugin download counts also reach GitHub. Requests carry an IP address and user agent. Turn off **Automatically check for updates** in **Settings > General > Software Update** to stop automatic update checks. The plugin catalog has no off switch. [Technical details](https://docs.tablepro.app/security/privacy#update-checks) include the old feed used by earlier builds. -**Hosting.** The website and the account portal run on our server, behind Cloudflare. Like any web server, they receive your IP address, your browser's user agent and the address of each page you request. +#### Older Mac versions {#mac-license} -**Cloudflare Web Analytics.** Cloudflare adds its Web Analytics script to the pages of the website; the account portal does not run it. Your browser loads it from `static.cloudflareinsights.com`, and it reports each page view to Cloudflare: the page, the site that linked to it, how long the page took to load, and your browser, operating system and type of device. Cloudflare adds the country your connection comes from. The script sets no cookies and stores nothing in your browser, and Cloudflare states that it does not use your IP address or browser details to fingerprint you. Cloudflare shows us totals, such as page views per page or per country, not a record of each visitor. Lawful basis: legitimate interest. +Before 0.86.0, usage data uses a report to our server under the same default-on switch. It contains a hashed machine ID, system/app details, open connection types/count, license status and first connection attempt/success dates. Update settings are sent but discarded by the server. The current server relays it to PostHog with Cloudflare's country, without an IP address or license key, and without a person profile. The machine ID can link it to account devices. No dedicated heartbeat history is kept now, but processing jobs, logs, backups and the old archive can retain data. See [retention](#retention). -**Google Analytics.** The site loads Google Analytics on every page in Consent Mode. Until you choose **Allow** in the cookie question, it sets no cookies and sends Google only a cookieless signal for each page, with no identifier stored on your device. If you allow it, Google Analytics sets the `_ga` and `_ga_` cookies and measures your visits, such as the pages you view, download clicks and the start of a checkout. Advertising storage, ad personalization and ad user data are always denied. Google states that Google Analytics 4 does not log or store IP addresses. Our Google Analytics property uses Google's default retention period: Google deletes the user-level and event-level data it collected after 2 months. Google's standard reports, which hold totals rather than identifiers, are not affected. Lawful basis: your consent for the cookies. +Older builds contact the license service only after you enter a key. Checks send that key, machine ID, Mac name and app/OS versions. Device records belong to the account; activation and deactivation are audited with IP and user agent. [The technical inventory](https://docs.tablepro.app/security/privacy#older-mac-reports) keeps fields and timing. -**Live chat.** Every page of the website and the account portal shows a chat button from our chat provider, Crisp. Once a page has loaded, your browser loads Crisp's script from `client.crisp.chat`, and Crisp sets the cookies described under [Cookies and browser storage](#cookies). Crisp receives your IP address, your browser's details, the addresses of the pages you view and the messages you write, and it keeps your IP address if you start a conversation. We tell Crisp the language of the page. When you are signed in to the account portal, we also give Crisp your account's email address and account ID, which link a conversation to your account. We tell Crisp nothing else about you. Crisp is based in France. +### iPhone and iPad {#ios-app} -**Checkout script.** When you point at or tab to a Buy button, your browser loads {merchant}'s checkout script from jsDelivr (`cdn.jsdelivr.net`), which receives your IP address and your browser's details. The checkout itself opens from {merchant} only when you click. +The shipped app sends no usage report until you enable **Share Usage Data** at first launch or in **Settings > Privacy**. Consent is the basis. A daily report goes through our server, which relays it without its IP to PostHog, with Cloudflare's country and no person profile. It contains a hashed Apple device identifier, platform, app/iOS versions, architecture, language, open connection types/count and first attempt, successful connection and first query dates. It always reports no license; it has no update settings. It checks neither accounts nor licenses, updates or plugins. -**Newsletter check.** When you start on the newsletter form, your browser loads Cloudflare Turnstile from `challenges.cloudflare.com` to check that a person is signing up; Cloudflare receives your IP address and browser details. +Database and SSH connections, optional iCloud sync and Microsoft Entra sign-in for SQL Server send data to those services. Passwords and pasted SSH keys stay in Keychain; certificates and query history stay on the device. Connections enter its local Spotlight index. A running query's Live Activity can show SQL on the Lock Screen unless Hide Query is enabled. Separately, Apple's Share With App Developers setting can send us crash reports and usage statistics through App Store Connect. The app itself has no crash reporter or third-party analytics library. See [iOS details](https://docs.tablepro.app/ios#privacy). -**Purchase attribution.** When you arrive at the site, your browser keeps a first-visit record called `tablepro:attribution` in its local storage for 90 days: the source of the visit (the `ref` or `utm_*` tags on the link you followed, or the site that linked to you), the page you landed on and when. If you start a purchase, the record is sent with the checkout request. Our server passes the source of the visit to {merchant} as metadata of the checkout, keeps it with the order once you pay, and sends it to PostHog with the checkout and the payment. The landing page and the date are not kept. +### Linux {#linux-app} -**Documentation.** The documentation at docs.tablepro.app is hosted by Mintlify, which receives your IP address and your browser's details with each page, and the pages load their fonts from Google Fonts. The navigation bar shows the repository's star count, which your browser fetches from GitHub's API, so GitHub receives your IP address and your browser's details too. That request sets no cookies. The documentation asks its own cookie question, because it cannot read the answer you gave on this site. Until you choose **Allow** there, it sets no cookies and keeps no visitor ID. If you allow it, Google Analytics sets the `_ga` and `_ga_` cookies and measures your visits to the documentation, and Mintlify keeps a random visitor ID, `mintlify_anonymous_id`, in local storage to count them. **Cookie settings** in the documentation's footer changes your answer, and declining removes both. Lawful basis: your consent. +From 0.1.0-beta.1, signing in registers the device as described under [accounts](#account). Secrets use the desktop keyring. Package-manager updates follow your chosen distributor's settings. The app sends no automatic crash reports. -**Language and regional discount.** To suggest the page in your language when your browser names none the site offers, and to show the regional discount checkout would apply, the site asks Cloudflare (`/cdn-cgi/trace`) and our server for the country your connection comes from, and may read your device's time zone. Neither request carries cookies, and the page keeps nothing from the answers. Lawful basis: legitimate interest. +#### Linux usage data {#linux-usage-data} -Reading the site sets no cookies of its own. Newsletter signup, checkout and discount-code requests from the public site omit credentials: they neither send account-portal cookies nor accept cookies from the response. Opening account-portal pages is separate: signing in there sets the portal cookie below. Everything the site keeps in your browser is listed under [Cookies and browser storage](#cookies). +Usage data is on by default from 0.1.0-beta.1. Turn off Share usage data in Preferences > General > Privacy. Events go directly to PostHog EU: daily use with open connection types/count, first connection attempt/success and first query by type, sign-in/out, upgrade clicks, and license-ask displays/Buy responses. They carry installation or account IDs, app/system versions, architecture, interface language and SDK metadata. PostHog receives the IP address and derives rough location. Before sign-in there is a random installation ID and no person profile; after sign-in, the account profile links use to purchases. Sign-out resets the ID. No hostname, SQL, rows or credentials enter these events. Device registration separately includes the hostname. -## Purchases {#purchases} +Turning it off stops new usage sends. A request already in flight can finish. It does not erase earlier events or stop account requests and server analytics. See [retention](#retention), [rights](#rights) and the [technical inventory](https://docs.tablepro.app/security/privacy#linux-usage-data). -Licenses are sold by {merchant} (Polar Software, Inc.), our merchant of record and reseller. You buy from {merchant} under its own buyer terms and privacy policy. {merchant} takes the payment, calculates and pays any sales tax or VAT, sends receipts and invoices, and handles payment problems and disputes. It collects your name, email address, billing address and payment details. We never see your full card details. + -When you start a checkout, our server tells {merchant} what you are buying, the language of the page you bought from, the source of your visit (see [Website](#website)) and your IP address, which {merchant} uses to work out tax and currency. From {merchant} we receive your email address, your name and billing address as you entered them, what you bought, the amounts, the order and subscription IDs, and later changes such as renewals, cancellations and refunds. We keep the email address, the billing country and the amounts with each order. +## Services you choose {#integrations} -A purchase made without signing in goes to the TablePro account of the email address you bought with, which is created if there is none and stays unverified until you first sign in. In the [account portal]({account}) you can change a subscription's billing cycle or seats, cancel or resume it, and ask for a refund. When you cancel, the reason you choose and any comment you write go to {merchant} and are kept with the subscription. Your card, invoices, tax details and billing address are in [{merchant}'s customer portal]({portal}), which the account portal opens for you. Refunds are described in the [refund policy](/refund-policy), and what a license allows in the [terms of service](/terms). +Your database, SSH and proxy providers receive the traffic you request, directly from the app. Connection sign-in services receive authentication requests when configured. Apple Maps supplies map tiles; DuckDB supplies extensions used by queries. Downloaded connection and AI helpers contact their providers. These services operate under their own terms. -## Account portal {#account} +### iCloud and Handoff {#icloud} -The [account portal]({account}) at account.tablepro.app is where you manage your TablePro account: its licenses, devices, billing and teams. It runs on our server, behind Cloudflare, like the website. +Optional iCloud Sync stores connections, groups, tags, settings, saved queries and SSH profiles in your private CloudKit database. On Mac, it also syncs table/database favorites and folders, and credential profile names, usernames and password modes, never the profile password. Apple hosts it; we cannot read it. Password sync is a separate, default-off choice using end-to-end encrypted iCloud Keychain. On Mac it also applies to other secrets written through that store, such as AI keys and older license keys. Account tokens never sync. Mac sync needs Pro or Team; iOS sync is free. Handoff passes a connection ID and table name, or the connection name/host when no table is open, between your Apple devices. It sends no credentials. See [sync controls](https://docs.tablepro.app/features/icloud-sync). -**Your account.** An account belongs to one person and is identified by an email address. It holds that address, the name and language you set, your sign-in methods, the devices signed in to it, your licenses and orders, the teams you belong to with your role and seat, and an audit log of the changes made to it, such as sign-ins, new devices and team changes, with the IP address and browser of the request that made each one. Our emails reach you in your account's language. +### AI and external tools {#ai-tools} -**Signing in.** We email you a link and a 6-digit code: the link works once, the code allows 5 attempts, and both expire after 15 minutes. You can also add passkeys; we keep each one's public key, the name you give it, whether it syncs between your devices, and when it was added and last used. Or you can sign in with Apple, GitHub or Google: the provider tells us an ID for you and your verified email address, and Apple also your name the first time. We keep the ID and the address with your account, and for Apple a token we keep encrypted and revoke with Apple when you unlink Apple or delete your account. When a provider's address belongs to an existing account, we email that account a link and a code to confirm before linking them, unless Google manages the address (Gmail or Google Workspace). +AI requests go directly to your chosen provider or local model. Prompts, schema, current SQL and conversation content can be sent. Attaching grid result rows is off by default. Results returned by an authorized AI query tool also enter the conversation and reach the provider, independently of that attachment switch. GitHub Copilot downloads a helper from npm and its Send telemetry to GitHub choice starts on. -**Your teams.** When you invite someone to a team, we store their email address, their role and whether the invitation includes a seat, and email them a link that works for 7 days. Owners and admins see the team's members with their names and email addresses, its invitations, and its audit log, which shows who changed what in the team, invited addresses included, but never an IP address or browser. Members see the team, its plan, its seat counts and their own role. +MCP is off by default and cannot start while disabled, even through a bridge or pairing request. When enabled, authenticated clients can request data under the permissions you grant. A connected AI client can send results to its own service. External MCP servers receive approved tool arguments. See [AI and MCP controls](https://docs.tablepro.app/security/privacy#ai-providers). -**Your data.** In Settings you can change your name, email address and language, add and remove sign-in methods, download your account's data as a JSON file, and delete your account. You cannot delete it while you own a team that has other members. Deleting it removes your sign-in methods, devices, licenses, team memberships and the teams you own alone, deletes the newsletter subscription of your email address, and ends your subscriptions without a refund. What we keep afterwards is under [How long we keep data](#retention). +## Websites and browser storage {#website} -**What the portal loads.** The portal runs no Google Analytics, no Cloudflare Web Analytics and no other analytics script, and asks no cookie question. It shows the live chat from Crisp described under [Website](#website), and a purchase made there opens {merchant}'s checkout over the page. +Our server and Cloudflare receive IP addresses, user agents and requested pages. Cloudflare Web Analytics counts page views, referrers, load times, browser/OS/device categories and countries without browser storage or fingerprinting. Our legitimate interest is understanding site use and maintaining it. -## Newsletter {#newsletter} +Google Analytics loads in Consent Mode. Before Allow, it sends a cookieless page signal without a stored device ID. Consent enables cookies and visit, download and checkout measurement. Advertising storage, personalization and ad user data are always denied. Google states GA4 does not store IP addresses. -If you subscribe to release notes, we email you a confirmation link first, in the language of the page you subscribed from. The link works for 7 days, and one address gets at most 3 a day. Once you confirm, your address joins our newsletter list, which we keep on our server with that language. For the signup and the confirmation we record when each happened, the IP address and browser it came from, the page you subscribed on and the version of the wording you agreed to. Cloudflare Turnstile checks the form, as described under [Website](#website). +Crisp loads on every website and portal page, as described under [support](#support). Pointing at or tabbing to Buy loads {merchant}'s script from jsDelivr, which receives IP and browser details; clicking opens checkout. Starting the newsletter form loads Cloudflare Turnstile for abuse prevention, our legitimate interest. Country lookups and the device time zone help suggest language and regional discounts under legitimate interest; lookup requests omit cookies and their answers are not stored on the page. -Every newsletter records opens and clicks for every recipient. It contains a small image, and its links pass through `links.news.tablepro.app`. When your email client loads the image or you follow a link, Amazon SES records the time of the open or click and the link clicked, with the IP address and user agent your email client sends, and passes them to our server, which counts each newsletter's opens and clicks. An email client that does not load images records no opens. The unsubscribe link and links that start an email are not tracked. +The first visit creates `tablepro:attribution` for 90 days: link tags/referrer, landing page and date. At checkout, our server passes the source of the visit to {merchant} as metadata of the checkout, keeps it with the order and sends it to PostHog with checkout/payment events. The landing page and date are not kept. The basis is legitimate interest in measuring purchase sources. Public newsletter, checkout and discount requests omit credentials and set no portal cookie. The portal runs no analytics script, but its server sends service events. -Every newsletter has an unsubscribe link, which opens a page with an Unsubscribe button, and headers that let your email app unsubscribe you in one click. After you unsubscribe we send no more newsletters and no email to confirm it, and subscribing again needs a new confirmation. Marking a newsletter as spam unsubscribes you too, and once an email to your address bounces for good, we stop sending to it. To have the address deleted as well, email us, or delete your TablePro account if it uses that address. +### Documentation site {#docs} -When we moved from our previous server, every address on its mailing list that had not unsubscribed joined this list as subscribed, confirmed or not: that server had also added the addresses of buyers, license holders and beta signups, and emailed them. Addresses that had unsubscribed moved over as unsubscribed, and those whose emails had bounced or been marked as spam went onto our suppression list instead, so no newsletter reaches them. +Mintlify hosts docs.tablepro.app. Page, Google Fonts and GitHub star-count requests disclose IP and browser details to those providers. The docs ask separately for analytics consent. Before Allow, no analytics cookies or visitor ID are stored there. Allow enables Google Analytics and Mintlify's visitor ID. Cookie settings in the docs footer withdraws that choice and removes them. The website's choice does not cross to that origin. -## Cookies and browser storage {#cookies} +### Cookies and storage {#cookies} -Reading the public website and its newsletter, checkout and discount-code requests set no cookies of their own. Signing in to the account portal, or starting to, sets the one strictly necessary portal cookie listed below. Cloudflare Web Analytics sets no cookies and stores nothing in your browser. The Google Analytics cookies are not set until you allow them. Crisp sets its cookies on every page once the chat has loaded. Nothing here is used for advertising or sold. +Cloudflare Web Analytics stores nothing in the browser. Public-site pages set no first-party cookies. The following storage has its own lifetime, separate from provider retention. Storage marked necessary keeps sign-in or your choice working; consent and legitimate-interest purposes are as described here. -- **`_ga` and `_ga_`** (Google Analytics cookies, up to 2 years, only if you allow analytics): a random identifier for your browser and the state of your current visit. Declining, or changing your answer later, deletes them. Lawful basis: consent. -- **`tablepro:analytics-consent`** (local storage, until you clear it): your answer to the analytics question, so you are not asked on every page. The account portal runs no analytics, so it neither asks this question nor reads the answer. Lawful basis: strictly necessary to honor your choice. -- **`tablepro:attribution`** (local storage, 90 days): the first-visit record described under [Website](#website). It holds no identifier of you and is sent only with a checkout request, which passes the source of the visit to {merchant}. Lawful basis: legitimate interest. -- **`theme`** (local storage, until you clear it): whether you chose a light, dark or system appearance. The account portal keeps its own. Lawful basis: legitimate interest. -- **`tablepro:language`** (local storage, until you clear it): the language you picked in the language menu or the language bar, and each language whose suggestion you closed, so it is not offered again. Lawful basis: legitimate interest. -- **`tablepro:campaign-closed`** (local storage, until you clear it): the sale whose notice above the header you closed, so it stays closed on every page until that sale ends. Lawful basis: legitimate interest. -- **`mintlify_anonymous_id`** (local storage on docs.tablepro.app, set by Mintlify, only if you allow analytics there): the visitor ID described under [Website](#website). Declining removes it. The documentation keeps its own `tablepro:analytics-consent` answer. Lawful basis: consent. -- **Cookies starting with `crisp-client/`** (Crisp, for example `crisp-client/session/…`; 6 months, renewed when you return; set on every page once the chat has loaded): keep the chat and your conversation across pages and visits. Lawful basis: legitimate interest, to offer support on every page. -- **`__Host-tp_session`** (account portal cookie, 30 days from when you sign in): keeps you signed in. Before you sign in it is set only while a passkey, Apple, GitHub, Google or app sign-in is under way, for at most 10 minutes. Signing out deletes it. Public-site newsletter, checkout and discount-code requests omit credentials and never receive it. Lawful basis: strictly necessary. -- **`locale`, `context` and `sign-in-return-to`** (account portal local storage): the language you picked there before signing in and whether you last opened Personal or a team, both until you clear them, and for 15 minutes the page to go back to after you open an emailed sign-in link. Lawful basis: legitimate interest. +| Name/service | Purpose and trigger | Lifetime and control | +| --- | --- | --- | +| `_ga`, `_ga_` | Google Analytics, only after analytics consent | Up to 2 years; declining deletes them | +| `tablepro:analytics-consent` | Necessary record of your choice; separate on website and docs | Until cleared | +| `tablepro:attribution` | First-visit source sent with checkout; legitimate interest | 90 days | +| `theme`, `tablepro:language`, `tablepro:campaign-closed` | Appearance, chosen/dismissed languages and closed sale notice; legitimate interest | Until cleared; portal theme is separate | +| `mintlify_anonymous_id` | Docs visitor ID, only after consent there | Until cleared or consent declined | +| `crisp-client/` cookies | Chat continuity on every page after chat loads; legitimate interest | 6 months, renewed on return | +| `__Host-tp_session` | Necessary portal sign-in | 30 days signed in; at most 10 minutes during sign-in; sign-out deletes it | +| `locale`, `context`, `sign-in-return-to` | Portal language, Personal/team view, return page; legitimate interest | First two until cleared; return page 15 minutes | -You can change or withdraw your analytics answer at any time with **Cookie settings** in the footer of every page, or here: +Change analytics consent with Cookie settings in the footer or here: -## Lawful basis {#lawful-basis} - -For readers in the European Economic Area and the United Kingdom, the lawful bases under the GDPR and the UK GDPR are: - -- **Contract** (Art. 6(1)(b)): selling and providing a license, your account with its sign-in methods and devices, license checks, the account portal and the Team Library. -- **Legitimate interest** (Art. 6(1)(f)): the Mac app's usage data and its analysis in PostHog, the events about sign-ins, purchases, devices and teams our server sends to PostHog, the account's audit log, security and abuse prevention, including Cloudflare Turnstile on the newsletter form, server logs, Cloudflare Web Analytics, the purchase attribution record, the country lookups for the language bar and the regional discount, and the live chat on every page. -- **Consent** (Art. 6(1)(a)): Google Analytics cookies, the iPhone and iPad app's usage report, the newsletter and the conversations you start in live chat. -- **Legal obligation** (Art. 6(1)(c)): tax and accounting records, and answers to lawful requests. - ## Who receives data {#sharing} -We share personal data only with the services needed to run TablePro: +| Recipient | Data and purpose | +| --- | --- | +| [OVH]({ovhPrivacy}) | Hosts our server and service records | +| [Cloudflare]({cloudflarePrivacy}) | DNS/proxy traffic, R2 storage and backups, Turnstile, Web Analytics | +| [Amazon Web Services]({awsPrivacy}) | Amazon SES emails, delivery and newsletter engagement; CloudFront tracking links, SNS/SQS delivery events | +| [PostHog EU]({posthogPrivacy}) | App and server analytics; account IDs, no names/emails; direct requests include IP addresses | +| [{merchant}]({merchantPrivacy}) | Independent merchant of record; checkout, billing and purchase records | +| [Crisp]({crispPrivacy}) | Chat, browser/page data and signed-in account identity | +| [Google]({googlePrivacy}) | Website/docs analytics and docs fonts; account sign-in when selected | +| [Mintlify]({mintlifyPrivacy}) | Docs hosting and consented visitor measurement | +| [GitHub]({githubPrivacy}) | Downloads, updates, plugins, docs star count, public issues and optional account sign-in | +| [Apple]({applePrivacy}) | Optional account sign-in; Apple services and diagnostics described under apps/integrations | +| [jsDelivr]({jsdelivrPrivacy}) | Checkout script requests with IP and browser details | -- **{merchant}**, the merchant of record for purchases. -- **Amazon Web Services**, whose Amazon SES service sends our emails from its Asia Pacific (Singapore) region: sign-in links and codes, team invitations, account and security notices, and newsletters. It tells us when an email is delivered, bounces or is marked as spam, and we record bounces and spam reports to stop sending to those addresses. For newsletters it also reports each open and click, as described under [Newsletter](#newsletter). -- **Our hosting provider and Cloudflare**, for the website, the account portal and the server the apps talk to. Cloudflare also counts page views with Cloudflare Web Analytics and checks the newsletter form with Turnstile. -- **Google**, for Google Analytics on the website and the documentation. -- **Crisp**, for the live chat on every page of the website and the account portal. -- **PostHog** (EU Cloud), our product analytics service, which receives the apps' usage reports and our server's events about sign-ins, purchases, devices and teams, with your account ID but never your email address or name. Usage data the Mac app sends directly reaches PostHog with your Mac's IP address. -- **Apple, GitHub and Google**, when you sign in to your account with them. -- **jsDelivr**, which serves {merchant}'s checkout script to your browser when you point at a Buy button. -- **Mintlify**, which hosts the documentation at docs.tablepro.app. -- **GitHub**, which hosts the update feed, the plugin catalog and the downloads, and serves the star count the documentation shows. +Members of a team receive shared content and the account details their role permits. Chosen integrations receive the data you direct to them. We do not sell personal data or share it for advertising. Other disclosure occurs only where law requires it. Providers' own privacy policies also apply to their services. -We do not sell personal data and do not share it with advertisers. +## Where data is processed {#transfers} -## International transfers {#transfers} +Our OVH server and Amazon SES are in Singapore (`ap-southeast-1` for SES). PostHog is in the EU. Crisp is based in France. {publisherName} operates from Vietnam. US providers, including {merchant}, Google, GitHub, Cloudflare, Amazon Web Services and Mintlify, process data in the US. Provider storage and backups can involve countries outside yours. Required EEA/UK safeguards rely on each provider's Standard Contractual Clauses or other approved mechanisms; Google also uses the EU-US Data Privacy Framework. Ask through [contact](#controller) for information about the applicable safeguards. -The services above operate in several countries, so your data may be processed outside your own. {merchant}, Google, GitHub, Cloudflare and Mintlify process data in the United States; Google does so under the EU-US Data Privacy Framework and Standard Contractual Clauses. PostHog processes it in the European Union. Amazon Web Services sends our emails from Singapore. Where the law requires it, transfers from the EEA and the UK rely on Standard Contractual Clauses or another approved mechanism. +## How long data is kept {#retention} -## How long we keep data {#retention} +We have not set a time limit where the table says so. Deleting an account does not delete data at PostHog or Crisp. Email [contact](#controller) to have that data deleted at those providers on request. -- **Usage reports and analytics events**: our server keeps no copy once it has passed them to PostHog. We have not set a time limit for them in PostHog. -- **Records from our previous server**: a copy of its whole database is kept indefinitely in an archive. It includes licenses, orders and team members with their email addresses and names; the Macs activated on a license, with their names; newsletter subscribers and beta signups; records of the emails it sent; and the usage reports and license request logs it kept, with their IP addresses. -- **Devices**: kept, with those you removed, until you delete your account. -- **Your account's audit log**: kept while the account exists, with the IP address and browser of each change you made. Deleting the account removes your email addresses from it and the IP address and browser of what you did; the record of each change stays. -- **Orders**: kept for tax and accounting. Deleting your account removes your email address and your account from them. -- **Notifications from {merchant}, Amazon SES and Apple**: kept. {merchant}'s hold your name, email address and billing address; deleting your account removes them from those about your purchases. Amazon SES's hold the address each email went to and, for a newsletter, the IP address and user agent of each open and click; deleting your account removes these from the ones about emails to your address, and from our record of each email we send. -- **Team Library**: until an item is changed; a deleted item keeps its last version. The library is deleted with its team, 30 days after the owner deletes the team; until then the owner can restore it. It stays after a license ends. -- **Sign-in links and codes**: they expire after 15 minutes and are deleted 7 days later. Portal sessions last 30 days. The token that keeps an app signed in expires 90 days after the app last used it, and is deleted 30 days after that. -- **Deleted accounts**: the account, its sign-in methods, devices, licenses and team memberships are deleted at once. Orders and the audit log stay as described above. What our previous server held about you stays in its archive, described above. -- **Newsletter**: an address that is not confirmed within 30 days is deleted with its confirmation link. A confirmed address, or one carried over from our previous server, stays in our list with the record of how it joined until we delete it at your request or you delete the TablePro account that uses it; after you unsubscribe it is kept as unsubscribed, so no newsletter reaches it. -- **Suppression list**: an address that an email bounced from for good, or whose owner marked one of our emails as spam, stays on our suppression list with when that first and last happened, also after the account or newsletter subscription that used it is deleted. This keeps us from emailing it again. -- **Google Analytics**: user-level and event-level data for 2 months, Google's default retention period, which our property uses. Its cookies last up to 2 years, or are deleted when you decline. -- **Cloudflare Web Analytics**: Cloudflare shows us the last six months of page-view totals. Nothing is stored in your browser. -- **Live chat and support emails**: kept by Crisp and in our mailbox until deleted. Ask us to delete your conversations and emails. -- **Server logs**: our web server's and our server's logs, kept on our server for security and troubleshooting. We have not set a fixed period for them yet. +| Records | Retention and deletion | +| --- | --- | +| PostHog analytics | No time limit set. Turning usage data off leaves earlier events. Request deletion. | +| Processing jobs and server logs | Jobs can hold relayed reports while sending/retrying. Logs support security and troubleshooting. No overall time limit set; no promise of zero server copies. | +| Devices | Including removed devices, until account deletion | +| Account and audit records | Account, sign-in methods, devices, licenses and memberships are removed on deletion. Audit events remain without a time limit; email fields and the actor's IP/user agent are removed, but addresses embedded in free text can remain. | +| Orders and provider notifications | Orders stay for tax/accounting, without a set time limit. Deletion removes account/email links. {merchant}, Amazon SES and Apple event records remain; personal purchase details and email recipient/engagement details are scrubbed for the deleted account. | +| Team Library | A deleted item keeps its last version for sync. Ordinary team deletion removes its library after 30 days, during which it is restorable. Deleting its sole owner's account removes the team and library at once. A license ending does not delete the library. | +| Authentication | Sign-in links/codes expire after 15 minutes and are deleted 7 days later. Portal sessions last 30 days. App tokens expire 90 days after last use and are deleted 30 days later. Email jobs retain plain-text codes/links until cleanup: a day after sending, or 7 days after giving up. | +| Newsletter | Unconfirmed new addresses are deleted after 30 days. Confirmed and migrated addresses stay until deletion on request or deletion of the account using that address. Unsubscribe keeps the address marked unsubscribed. | +| Suppression list | Bounced/complained addresses and first/last occurrence dates stay after account or subscription deletion to prevent further mail. No time limit set. | +| Google Analytics | User/event data: 2 months; aggregate standard reports are separate | +| Cloudflare Web Analytics | Last six months of page-view totals available to us | +| Support | Crisp conversations and mailbox messages stay until deleted, including on request. No time limit set. | +| Backups and migration archive | No time limit set. Account deletion does not remove these copies. The previous server's whole-database archive includes names/emails, licenses, orders, teams, device names, subscribers, beta signups, email records, usage reports and license logs with IP addresses. | -## Your rights {#rights} +## Your choices and rights {#rights} -Depending on where you live, you can ask us to: +Use app privacy switches, website/docs Cookie settings and newsletter unsubscribe to change optional processing. Consent withdrawal applies going forward and does not invalidate earlier processing. App switches do not erase prior data or stop server analytics. In [portal Settings]({account}), export account data or delete the account; these controls do not cover every record in the retention table. -- give you a copy of the personal data we hold about you (access); -- correct it (rectification); -- delete it (erasure), except what we must keep by law; -- limit how we use it (restriction); -- send it to you in a structured, machine-readable form (portability); -- stop using it on the basis of legitimate interest (objection). +Depending on where you live, request access, correction, erasure, restriction, portability or object to legitimate-interest processing. Requests are accepted without an account: email [contact](#controller). We may ask for details needed to locate records, such as an installation ID. Never send a license key in plain text by email. We answer within one month. You may complain to your data protection authority. Legal retention duties can limit erasure. -You can withdraw consent at any time, and you can complain to your data protection authority. To use any of these rights, email [{email}](mailto:{email}). We answer within 30 days. In the [account portal]({account}), Settings also gives you a copy of your account's data and deletes the account. For anything else, such as a newsletter address or a Mac without an account, tell us which email address, license key or device it concerns. Data held by {merchant}, Google, Crisp or GitHub is also covered by their own policies. +### Regional rights {#regional-rights} **California residents.** The California Consumer Privacy Act gives you the right to know what personal information we collect, to ask us to delete it, to opt out of its sale, and not to be treated differently for using these rights. We do not sell personal information. @@ -270,12 +221,8 @@ TablePro is not directed at children under 16, and we do not knowingly collect t ## Security {#security} -Traffic between the apps, the website, the account portal and our server uses HTTPS. TablePro accounts have no passwords. Sign-in links and codes, the tokens that keep the apps signed in, and team API tokens are stored as hashes. The job that emails a sign-in link and code keeps them in plain text until it is deleted: a day after the email is sent, or 7 days after we give up sending it. Both stop working 15 minutes after you ask for them. Access to our systems is limited to {publisherName} and the service providers listed under [Who receives data](#sharing). No system is perfectly secure. To report a vulnerability, see the [security page](/security#report) or email [{email}](mailto:{email}). - -## Changes to this policy {#changes} - -When this policy changes, we update it here with a new "Last updated" date, and where the law requires it, we tell you directly. +Traffic to our services uses HTTPS. Accounts have no passwords. Sign-in credentials and team API tokens are stored as hashes, with the temporary email-job exception in [retention](#retention). Access to our systems is limited to {publisherName} and the providers under [Who receives data](#sharing). No system is perfectly secure. Report vulnerabilities through the [security page](/security#report). -## Contact {#contact} +## Changes {#changes} -For questions about privacy or this policy, email [{email}](mailto:{email}). +The page shows its last-updated date. Earlier versions remain in the [public web repository history]({webGithub}/commits/main/resources/data/legal/en/privacy.md). We update this notice before using data for a new purpose, tell you directly where law requires, and seek fresh consent where required. diff --git a/resources/data/legal/es/privacy.md b/resources/data/legal/es/privacy.md index df347381..3a7e5ee7 100644 --- a/resources/data/legal/es/privacy.md +++ b/resources/data/legal/es/privacy.md @@ -1,281 +1,228 @@ --- title: Política de privacidad -description: Qué recopilan las apps, el sitio web y el portal de cuentas de TablePro, adónde se envía, cuánto tiempo se conserva y cómo modificarlo o eliminarlo. -updatedAt: "2026-11-04" +description: Qué recoge TablePro, para qué, quién lo recibe, cuánto se conserva y tus opciones y derechos. +updatedAt: "2026-11-05" --- -Esta política cubre TablePro para Mac, TablePro para iPhone y iPad, el sitio web tablepro.app, la documentación en docs.tablepro.app y el portal de cuentas account.tablepro.app. Describe qué envía y almacena realmente cada uno de ellos en la actualidad. Ambas apps son de código abierto bajo AGPLv3, por lo que puedes consultar el código que envía cualquiera de los datos siguientes en el [repositorio de TablePro]({github}). +Esta política cubre TablePro para Mac, Linux, iPhone y iPad; tablepro.app; docs.tablepro.app; y los servicios de cuentas, compras, soporte y boletines. El [inventario técnico](https://docs.tablepro.app/security/privacy) enumera campos, destinos y controles. El código está en el [repositorio público]({github}). ## Resumen {#summary} -- La app para Mac envía datos de uso. Está activado por defecto y puedes desactivarlo. La app para iPhone y iPad solo envía un informe de uso si lo activas. -- Si inicias sesión en una cuenta de TablePro o activas una clave de licencia, la app para Mac registra tu Mac en nuestro servidor, con su nombre, y comprueba tu plan con él periódicamente. -- Las consultas que ejecutas, tus resultados y tus contraseñas no se envían a TablePro. La excepción es lo que decidas publicar en Team Library: ajustes de conexión (nunca contraseñas) y consultas guardadas. -- Las solicitudes de IA van directamente desde la app para Mac al proveedor de IA que configures, no a nosotros. -- A partir de la versión que añade las cuentas de TablePro, la app para Mac envía sus datos de uso directamente a PostHog, nuestro servicio de analítica de producto en la UE, que entonces recibe la dirección IP de tu Mac y deduce de ella una ubicación aproximada. Las versiones anteriores y la app para iPhone y iPad envían informes de uso a nuestro servidor, que los reenvía a PostHog sin sus direcciones IP. Tu cuenta guarda un registro de los cambios hechos en ella, como inicios de sesión y dispositivos nuevos, con la dirección IP y el navegador de la solicitud que hizo cada uno. -- El sitio web cuenta las visitas a páginas con Cloudflare Web Analytics, que no establece cookies. También carga Google Analytics, que solo establece cookies si las permites. Todas las páginas cargan además nuestro chat en directo, Crisp, que establece sus propias cookies. -- El portal de cuentas en account.tablepro.app no carga ningún script de análisis. Establece una cookie para mantener tu sesión iniciada, y en sus ajustes puedes descargar los datos de tu cuenta o eliminarla. -- Amazon SES, un servicio de Amazon Web Services, envía nuestros correos. El boletín registra cuándo lo abre cada destinatario y en qué enlaces hace clic. -- Las compras las vende {merchant}, nuestro merchant of record. +Las consultas y resultados habituales viajan entre tu dispositivo y tu base de datos. Los datos de uso no contienen SQL, filas ni credenciales. El contenido que publiques en Team Library, envíes a soporte o compartas con IA y herramientas externas sí llega a esos destinatarios. -## Quién es responsable {#controller} +Los datos de uso de Mac y Linux están activados por defecto y tienen un interruptor. La aplicación publicada para iPhone y iPad solo envía informes si aceptas. La analítica directa puede vincularse a tu cuenta y compras. Desactivarla no detiene las solicitudes de cuenta ni la analítica del servidor. -{publisherName}, un desarrollador independiente en {publisherCity}, {publisherCountry}, publica las apps de TablePro y este sitio web, y es responsable de los datos personales descritos aquí (el responsable del tratamiento). Si tienes preguntas sobre esta política o tus datos, escribe a [{email}](mailto:{email}). +La web mide visitas y carga Crisp en cada página. Las cookies de Google Analytics requieren tu elección. Los boletines miden aperturas y clics. Borrar la cuenta deja algunos registros, incluidos los de PostHog y Crisp. Consulta la [conservación](#retention) y [tus derechos](#rights). El [responsable](#controller) atiende solicitudes también sin cuenta. -## TablePro para Mac {#mac-app} + -### Datos de uso {#mac-usage-report} +## Responsable {#controller} -A partir de la versión que añade las cuentas de TablePro, la app para Mac envía datos de uso directamente a PostHog, nuestro servicio de analítica de producto, en `eu.i.posthog.com`, en la UE. **Está activado por defecto y la app no pregunta antes de enviar el primer evento.** Para desactivarlo, abre **Settings > General > Privacy** y desmarca **Share usage data**. Mientras está desactivado, la app no envía nada a PostHog, y si la app se inicia con el ajuste desactivado, ni siquiera pone en marcha la biblioteca de PostHog. +{publisherName}, desarrollador independiente en {publisherCity}, {publisherCountry}, es el responsable de estos datos personales. Contacta en [{email}](mailto:{email}). No tenemos delegado de protección de datos. Para equipos, somos responsables de los registros de cuenta, invitaciones y servicio. Tratamos el contenido publicado en Team Library según las instrucciones del equipo, que decide qué publicar y quién accede. -La app envía un evento: + -- una vez al día mientras está en ejecución, con los nombres de los tipos de bases de datos de tus conexiones abiertas (por ejemplo, «PostgreSQL») y cuántas conexiones hay abiertas; -- en tu primer intento de conexión, en tu primera conexión correcta y en tu primera consulta, cada uno con su tipo de base de datos; -- cuando te muestra que una función de pago no está disponible, una vez por función cada vez que se ejecuta la app, con la función y el motivo, como no haber iniciado sesión; -- cuando haces clic para mejorar tu plan, con el lugar de la app donde lo hiciste; -- cuando inicias sesión, con la forma (en la app, con una clave de licencia o canjeando la clave que ya estaba en tu Mac), y cuando cierras sesión. +## Qué recogemos y por qué {#data-use} -La biblioteca de PostHog añade a cada evento el modelo de tu Mac, el tamaño de pantalla, la zona horaria y el idioma, si está conectado por Wi-Fi, la versión, la compilación y el bundle ID de la app, la versión de macOS, la versión de la biblioteca y un identificador de sesión aleatorio. PostHog recibe la dirección IP de tu Mac con cada solicitud y deduce de ella una ubicación aproximada, como el país y la ciudad. Mientras el ajuste está activado, la biblioteca también obtiene de PostHog su configuración y sus feature flags (`/config` desde `eu-assets.i.posthog.com` y `/flags` desde `eu.i.posthog.com`). +Para el EEE y Reino Unido indicamos la base jurídica de cada fin: contrato (artículo 6(1)(b)), interés legítimo (6(1)(f)), consentimiento (6(1)(a)) u obligación legal (6(1)(c)). No tomamos decisiones automatizadas con efectos jurídicos o de importancia similar. -Antes de que inicies sesión, los eventos llevan un identificador aleatorio que la biblioteca crea en tu Mac, y PostHog no crea un perfil de persona para él. En cuanto inicias sesión, llevan el identificador de tu cuenta, y el perfil de esa cuenta en PostHog guarda las versiones de la app y de macOS, la arquitectura del procesador, el idioma de la app y la ubicación aproximada que PostHog deduce de la dirección IP. Así se relacionan tus instalaciones con tus inicios de sesión y tus compras. Al cerrar sesión empieza un nuevo identificador aleatorio. Los datos de uso de la app ya no incluyen un identificador de máquina, si hay una licencia activada ni tus ajustes de actualización. + -Las versiones anteriores a las cuentas de TablePro envían en su lugar un informe de uso a `api.tablepro.app`, con el mismo ajuste, unos diez segundos después de iniciarse y, después, una vez al día mientras están en ejecución. El informe contiene: +### Cuentas y dispositivos {#account} -- un identificador de máquina: un hash SHA-256 del UUID de hardware de tu Mac (el UUID en sí nunca se envía); -- la plataforma, la versión de la app, la versión de macOS, la arquitectura del procesador y el idioma de la app; -- los nombres de los tipos de bases de datos de tus conexiones abiertas (por ejemplo, «PostgreSQL») y cuántas conexiones hay abiertas; -- si hay una licencia activada; -- la fecha y la hora del primer intento de conexión y de la primera conexión correcta; -- tus ajustes de actualización (cómo se instalan y con qué frecuencia se comprueban). Nuestro servidor los descarta al recibir el informe. +El uso local gratuito no requiere cuenta. Los servicios de cuenta necesitan tu correo. Guardamos nombre, idioma, métodos de acceso, licencias, pedidos, dispositivos, roles y plazas de equipo. El registro de Mac y Linux envía identificador de máquina, nombre del dispositivo, plataforma y versiones de aplicación/sistema. El nombre puede contener el tuyo. Es independiente de los datos de uso. El fin y la base son ofrecer tu cuenta y plan mediante contrato. -Ni los eventos ni los informes contienen nombres de host, nombres de usuario, contraseñas, consultas ni filas. +El acceso usa enlaces y códigos por correo, passkeys, Apple, GitHub o Google. Las passkeys incluyen clave pública, nombre, estado de sincronización y fechas de uso. Los proveedores de identidad envían un ID y correo verificado; Apple también puede enviar el nombre. Su token se cifra y revoca al desvincular Apple o borrar la cuenta. Registramos cambios con IP y agente de usuario. El interés legítimo es proteger cuentas e investigar abusos. -Nuestro servidor no almacena el informe ni la dirección IP de la que llegó. Lo reenvía a PostHog como un evento sobre el identificador de máquina, con el país que Cloudflare indica para tu conexión y sin tu clave de licencia ni tu dirección IP, y PostHog no crea con él un perfil de persona. Como tu cuenta registra sus dispositivos con el mismo identificador de máquina, los informes de un Mac en el que iniciaste sesión o activaste una licencia pueden vincularse con tu cuenta. +El [portal]({account}) permite editar perfil y acceso, gestionar dispositivos, exportar datos en JSON y borrar la cuenta. No puedes borrarla si eres propietario de un equipo con otros miembros. Borrarla termina las suscripciones sin reembolso. La [conservación](#retention) explica qué queda. -### Comprobaciones de licencia {#mac-license} +### Compras {#purchases} -Las versiones anteriores a las cuentas de TablePro solo contactan con nuestro servidor de licencias después de que introduzcas una clave de licencia. Lo hacen al activar la licencia, al iniciarse si han pasado {revalidateDays} días o más desde la última comprobación y cada {revalidateDays} días a partir de entonces. Cada comprobación envía: +{merchant} (Polar Software, Inc.) es el merchant of record y revendedor. Recoge nombre, correo, dirección de facturación y datos de pago según sus condiciones. Gestiona pagos, impuestos, recibos y disputas. Nunca recibimos los datos completos de la tarjeta. -- tu clave de licencia; -- el identificador de máquina descrito en [Datos de uso](#mac-usage-report); -- el nombre de tu Mac configurado en macOS (a menudo incluye tu propio nombre); -- la versión de la app y la de macOS. +Enviamos compra, idioma, origen de visita e IP para el pago, impuestos y moneda. Recibimos datos del comprador y facturación, importes, IDs de pedido/suscripción, renovaciones, cancelaciones y reembolsos. El pedido conserva correo, país, importes y atribución. Comprar sin acceder crea una cuenta no verificada para ese correo si no existe. Motivos y comentarios de cancelación llegan a {merchant} y quedan con la suscripción. El tratamiento cumple el contrato; los registros fiscales y contables cumplen obligaciones legales. Sin los datos necesarios no se completa el pago. Gestiona la facturación en [el portal de {merchant}]({portal}); consulta [condiciones](/es/terms) y [reembolsos](/es/refund-policy). -Al desactivar un Mac, solo se envían la clave de licencia y el identificador de máquina. +### Equipos y contenido compartido {#library} -Nuestro servidor guarda cada Mac activado como un dispositivo de la cuenta titular de la licencia: su identificador de máquina y su nombre, las versiones de la app y de macOS, y cuándo se comunicó por última vez. La activación y la desactivación de un Mac quedan en el registro de auditoría de esa cuenta con la dirección IP y el agente de usuario de la solicitud; las comprobaciones periódicas no. El portal de cuentas muestra tus dispositivos por nombre. Si no se puede acceder a nuestro servidor, las funciones de pago siguen funcionando durante {graceDays} días desde la última comprobación correcta. +Quien invita aporta correo, rol y plaza. Propietarios y administradores ven nombres y correos, invitaciones y cambios del equipo, incluidas las direcciones invitadas, pero no IP ni navegadores del registro. Los miembros ven equipo, plan, plazas y su rol. Usamos estos registros para prestar el servicio bajo contrato. -### Cuenta de TablePro {#mac-account} +En Mac, publicar en Team Library envía ajustes de conexión y consultas guardadas al servidor para miembros autorizados. Incluye host, puerto, base, usuario, SSH/SSL, comandos iniciales, Tunnel Command y ajustes de IA. Las consultas incluyen nombres, SQL, palabras clave y carpetas. Se excluyen campos de contraseña; los secretos escritos en SQL u otro texto libre no se eliminan. Se muestra quién cambió cada elemento por última vez. Salir del equipo no borra su contenido. Consulta los [plazos de borrado](#retention). Team Catalog escribe archivos en la carpeta compartida que elijas. -A partir de la versión que añade las cuentas de TablePro, inicias sesión en la app para Mac con una [cuenta de TablePro](#account) en lugar de una clave de licencia. La app abre la página de inicio de sesión en una ventana del navegador, donde puedes escribir el código del correo de inicio de sesión. Después registra tu Mac como dispositivo de tu cuenta: el identificador de máquina descrito arriba, el nombre de tu Mac, la plataforma y las versiones de la app y de macOS. A continuación obtiene tu plan de nuestro servidor como un archivo firmado una vez al día mientras se ejecuta, y ese archivo mantiene las funciones de pago hasta {offlineDays} días sin nuestro servidor. El token que mantiene la sesión de la app se guarda solo en el Llavero de macOS de ese Mac y nunca se sincroniza mediante el Llavero de iCloud, ni siquiera con la sincronización de contraseñas activada. +### Analítica de uso y servicio {#analytics} -Una clave de licencia que ya esté en tu Mac se canjea una sola vez por un inicio de sesión en la cuenta titular y después se elimina del Mac. Puedes quitar dispositivos en la app o en el portal de cuentas, y la primera vez que un Mac usa tu licencia te avisamos por correo. +Nuestro interés legítimo es conocer el uso, corregir problemas y medir compras. Mac y Linux envían los datos de [Tus aplicaciones](#apps). El servidor envía a PostHog eventos de acceso, compras, dispositivos y equipos con IDs de cuenta, sin nombres ni correos. Estos IDs vinculan uso y servicio. El interruptor detiene eventos de la aplicación, no solicitudes necesarias ni eventos del servidor. Ejerce [tus derechos](#rights) para oponerte o pedir borrado. -### Team Library {#library} +### Boletines y correo {#newsletter} -Team Library forma parte de una licencia Team. Al seleccionar **Share > Publish to Team Library…** en una conexión o **Publish Saved Queries to Team…** en la barra lateral Favorites, la app para Mac sube al servidor lo que publicas: +Amazon SES envía códigos, invitaciones, avisos de cuenta y boletines. Los correos de servicio cumplen lo solicitado. Las nuevas suscripciones al boletín requieren confirmación y consentimiento. Guardamos dirección, idioma, fechas de alta/confirmación, IP, agentes de usuario, página y versión del consentimiento. -- ajustes de conexión: host, puerto, nombre de base de datos, nombre de usuario, ajustes SSH y SSL, opciones del controlador, comandos de inicio, ajustes de Tunnel Command, nivel de Safe Mode y ajustes de IA, pero nunca contraseñas; -- consultas guardadas: sus nombres, texto SQL, palabras clave y carpetas. +Cada boletín mide aperturas y clics de todos los destinatarios mediante una imagen y `links.news.tablepro.app`. Amazon SES recibe hora, enlace, IP y agente de usuario y los pasa al servidor para contar. Bloquear imágenes impide medir aperturas, no clics. No se siguen enlaces de baja ni de correo. No hay control separado para la medición. Date de baja en el boletín o con el control de un clic de tu aplicación de correo; no enviamos confirmación posterior. Volver a suscribirse requiere confirmar. Rebotes permanentes y avisos de spam detienen el envío. Pide borrar la dirección mediante [contacto](#controller). -A partir de la versión que añade las cuentas de TablePro, la app para Mac de cada miembro con puesto descarga los cambios de la biblioteca al iniciarse, cada 15 minutos y después de cada publicación. Publicar envía solo lo que cambió y quita solo los elementos que ese Mac publicó y ya no tiene. Si otra persona cambió antes un elemento, la app pregunta qué copia conservar, y muestra quién cambió por última vez cada consulta del equipo. Las versiones anteriores a las cuentas de TablePro descargan la biblioteca al iniciarse, como máximo una vez por semana, y el Mac que publica vuelve a descargarla justo después. Publicar de nuevo desde ellas sustituye lo que habías publicado. La sección Library del portal de cuentas muestra cada elemento, con el nombre de quien lo cambió por última vez, a los miembros que pueden leer la biblioteca, y permite a propietarios y administradores eliminar elementos. Un elemento eliminado permanece en nuestro servidor con su última versión para que todos los Mac puedan sincronizar la eliminación. Si la licencia termina, la biblioteca permanece en nuestro servidor hasta que el propietario del equipo elimina el equipo, lo que también elimina la biblioteca. +La lista anterior migró todas las direcciones que no se habían dado de baja, confirmadas o no, incluidos compradores, titulares de licencias y registros beta. Las bajas se conservaron; rebotes y quejas pasaron a la lista de supresión. Consulta la [conservación](#retention). -Team Catalog, la otra función Team, escribe archivos de conexión sin contraseñas en una carpeta compartida que eliges. No pasa por nuestro servidor. +### Soporte {#support} -### Actualizaciones y plugins {#mac-updates} +Tus mensajes, adjuntos y diagnósticos llegan a nosotros y al servicio de soporte elegido. Pueden incluir datos o secretos que tú aportes. Al cargarse el chat, Crisp recibe IP, navegador y páginas visitadas en web y portal. Conserva la IP si inicias conversación. Le damos idioma y, en el portal con sesión, correo e ID de cuenta. Cargar chat en cada página responde al interés legítimo de ofrecer soporte. Las conversaciones que inicias se basan en consentimiento. -- **Comprobaciones de actualización.** Una vez al día, la app para Mac descarga el canal de actualizaciones desde GitHub (`raw.githubusercontent.com`). La solicitud no envía información de tu Mac aparte de lo que lleva cualquier solicitud web: tu dirección IP y un agente de usuario con la versión de la app. Para desactivarlo, abre **Settings > General > Software Update** y desmarca **Automatically check for updates**. Las actualizaciones se descargan desde GitHub. -- **Catálogo de plugins.** Al iniciarse la app y al abrir los ajustes de plugins, se descarga la lista de controladores y temas disponibles desde GitHub. No hay un ajuste para desactivarlo. Los controladores y temas que instalas se descargan desde GitHub, y el explorador de plugins consulta los recuentos de descargas en la API de GitHub. +## Tus aplicaciones {#apps} -GitHub recibe tu dirección IP con estas solicitudes. Se les aplica la declaración de privacidad de GitHub. +| Aplicación y versión | Datos de uso | Control | +| --- | --- | --- | +| Mac 0.86.0, desde 0.86.0-beta.1 | Directos a PostHog; activados | Settings > General > Privacy | +| Linux desde 0.1.0-beta.1 | Directos a PostHog; activados | Preferences > General > Privacy | +| iPhone y iPad publicados | Informe por nuestro servidor; desactivado hasta aceptar | Settings > Privacy | -### Servicios que decides usar {#mac-third-parties} + -La app para Mac solo envía datos a estos servicios cuando los configuras, directamente y nunca a través de TablePro: +### Datos en tu dispositivo {#local-data} -- **Tus bases de datos, servidores SSH y proxies**, que reciben lo que les envían tus conexiones. -- **Proveedores de IA.** Al añadir un proveedor y usar el asistente de IA o las sugerencias en línea, las solicitudes van a ese proveedor o a un modelo que se ejecuta en tu Mac. Por defecto, la solicitud incluye el tipo y nombre de la base de datos, las definiciones de tablas y columnas del esquema y la consulta actual. Solo se envían filas de resultados si activas esa opción. Se aplican las condiciones del proveedor. Al añadir GitHub Copilot, se descarga su servidor de lenguaje desde npm y su ajuste «Send telemetry to GitHub» está activado inicialmente. -- **Servicios de inicio de sesión**: Microsoft Entra ID, Google, Amazon Web Services y Cloudflare Access, cuando una conexión los usa. -- **Apple Maps**, que proporciona las teselas al mostrar resultados en un mapa. -- **DuckDB**, que proporciona extensiones de DuckDB la primera vez que una consulta usa una de ellas. -- **Clientes MCP.** El servidor MCP está desactivado por defecto. Se inicia cuando lo activas o cuando un cliente MCP configurado inicia el puente de TablePro o se empareja con él, y solo escucha en tu Mac (127.0.0.1). Un cliente de IA conectado a él, como Claude o Cursor, recibe los resultados que solicita y los envía a su propio servicio según sus condiciones. -- **Servidores MCP que añadas.** Una sesión de IA envía a ese servidor las llamadas a herramientas que apruebes, junto con sus argumentos. +Conexiones, historial, registros locales y pestañas quedan en el dispositivo salvo que elijas compartir. El tráfico de base de datos va a tus servidores. Las contraseñas usan el almacén de credenciales de la plataforma. Mac referencia las claves SSH donde están en disco. La analítica nunca incluye hosts, usuarios, SQL, filas ni credenciales. Las [integraciones](#integrations), Team Library y soporte tienen las excepciones descritas. -### Datos que permanecen en tu Mac {#mac-local} +### Mac {#mac-app} -Las contraseñas se guardan en el Llavero de macOS. La lista de conexiones, el historial de consultas, Query Insights, las instantáneas de Data Rewind, los ajustes y las pestañas abiertas se almacenan en tu Mac. La app referencia las claves SSH donde están en el disco y no las copia. Las versiones anteriores a las cuentas de TablePro no contienen un sistema de informes de fallos ni una biblioteca de análisis de terceros. A partir de la versión que añade las cuentas de TablePro, la app incluye la biblioteca de PostHog, que envía los datos de uso descritos arriba. La biblioteca contiene el sistema de informes de fallos de PostHog, que la app deja desactivado, así que no envía informes de fallos. La biblioteca guarda su identificador aleatorio, su configuración y los eventos aún no enviados en archivos dentro de `~/Library/Application Support/com.TablePro`. +Este comportamiento de cuenta y analítica directa empieza en 0.86.0, incluido 0.86.0-beta.1. Acceder registra el Mac y obtiene el plan. El token queda en el Keychain de ese Mac y no sincroniza por iCloud Keychain. Una clave de licencia existente se intercambia por una sesión y se borra localmente. -## TablePro para iPhone y iPad {#ios-app} +#### Datos de uso de Mac {#mac-usage-report} -**No se envía nada a TablePro a menos que actives Share Usage Data**, al iniciar la app por primera vez o después en **Settings > Privacy**. Si lo haces, la app envía un informe una vez al día al mismo servidor que las versiones de la app para Mac anteriores a las cuentas de TablePro, y nuestro servidor lo reenvía a PostHog de la misma forma, sin su dirección IP. El informe contiene un hash SHA-256 del identificador que Apple asigna a la app en tu dispositivo, la plataforma, las versiones de la app y de iOS, la arquitectura del procesador, el idioma de la app, los nombres de los tipos de bases de datos de tus conexiones abiertas, cuántas hay abiertas, y la fecha y la hora del primer intento de conexión, de la primera conexión correcta y de la primera consulta. No incluye ajustes de actualización y siempre indica que no hay ninguna licencia activada, porque la app no tiene ni lo uno ni lo otro. +Están activados por defecto y no se pregunta antes del primer evento. Desactiva **Share usage data** en **Settings > General > Privacy**. Si arrancas con la opción desactivada, no se inicia la biblioteca PostHog. No se envían fallos automáticamente; su capturador de fallos está desactivado. -La app no realiza comprobaciones de licencia, comprobaciones de actualización ni solicitudes de plugins. Aparte del informe opcional, solo se conecta a tus bases de datos y servidores SSH, a iCloud de Apple si activas iCloud Sync y a Microsoft cuando una conexión SQL Server inicia sesión con Microsoft Entra ID. +Los eventos cubren uso diario con tipos/cantidad de conexiones abiertas, primer intento, conexión correcta y primera consulta por tipo, bloqueos de funciones de pago y motivos, clics de mejora, método de acceso/salida y preguntas de compra de licencia con respuestas. PostHog añade contexto de dispositivo, pantalla, red, sesión, aplicación y sistema. Recibe IP y deduce ubicación aproximada. Antes de acceder usa ID aleatorio de instalación sin perfil personal. Después usa ID de cuenta y un perfil con versiones, arquitectura, idioma y ubicación. Salir crea otro ID aleatorio. Consulta [campos y destinos](https://docs.tablepro.app/security/privacy#usage-data). -En el dispositivo, las contraseñas y las claves SSH pegadas se guardan en el Llavero, y los certificados nunca se sincronizan. El historial de consultas permanece en el dispositivo. Tus conexiones se añaden al índice Spotlight del dispositivo para que puedas buscarlas. Mientras se ejecuta una consulta, su Actividad en directo muestra el SQL en la pantalla de bloqueo y en la Dynamic Island expandida, a menos que actives **Settings > Live Activities > Hide Query**. +#### Actualizaciones y plugins {#mac-updates} -Si compartes análisis con desarrolladores de apps en los ajustes de tu iPhone o iPad, Apple puede enviarnos informes de fallos y estadísticas de uso mediante App Store Connect. La app no contiene un sistema propio de informes de fallos ni una biblioteca propia de análisis de terceros. +La aplicación obtiene el feed y catálogo desde GitHub mediante updates.tablepro.app. Las descargas y sus recuentos también llegan a GitHub. Las solicitudes llevan IP y agente de usuario. Desactiva **Automatically check for updates** en **Settings > General > Software Update** para detener comprobaciones automáticas. El catálogo no tiene interruptor. Los [detalles técnicos](https://docs.tablepro.app/security/privacy#update-checks) incluyen el feed antiguo. -## iCloud Sync y Handoff {#icloud} +#### Versiones anteriores de Mac {#mac-license} -iCloud Sync está desactivado hasta que lo actives, tanto en el Mac como en iPhone y iPad. Cuando está activado, los registros se envían a una base de datos privada en tu propia cuenta de iCloud (contenedor `iCloud.com.TablePro`). TablePro no puede leerlos. +Antes de 0.86.0, el mismo interruptor activado controla un informe al servidor. Contiene ID de máquina con hash, datos de sistema/aplicación, tipos/cantidad de conexiones, estado de licencia y fechas de primer intento/éxito. El servidor descarta los ajustes de actualización enviados. Actualmente reenvía el informe a PostHog con el país de Cloudflare, sin IP ni clave, sin perfil personal. El ID puede vincularlo a dispositivos de cuenta. Ya no se guarda un historial específico, pero tareas, registros, copias y archivo antiguo pueden conservar datos. Consulta la [conservación](#retention). -- En el Mac eliges qué sincronizar: conexiones, grupos y etiquetas, ajustes, perfiles SSH, perfiles de credenciales (su nombre y nombre de usuario, nunca la contraseña), tablas y bases de datos favoritas, consultas guardadas (incluido su texto SQL) y carpetas de tablas. Un registro de conexión incluye host, puerto, nombre de usuario, nombre de base de datos, ajustes SSH y SSL, comandos de inicio, script previo a la conexión y reglas de IA. El historial de consultas, las instantáneas de Data Rewind y las fuentes de contraseñas nunca se sincronizan. -- iPhone y iPad sincronizan conexiones, grupos y etiquetas. -- Las contraseñas solo se sincronizan si también activas **Passwords** en Sync Categories en el Mac, o **Sync Passwords** en iPhone y iPad, que usa el Llavero de iCloud. En el Mac también se sincronizan los demás secretos que TablePro guarda en el Llavero, como las claves de proveedores de IA y la clave de licencia. A partir de la versión que añade las cuentas de TablePro, la clave de licencia se elimina en cuanto se canjea por un inicio de sesión, y el token que mantiene la sesión de la app nunca se sincroniza. +Las versiones antiguas contactan la licencia solo al introducir una clave. Envían clave, ID, nombre del Mac y versiones. Los dispositivos pertenecen a la cuenta; activación y desactivación quedan auditadas con IP y agente. El [inventario técnico](https://docs.tablepro.app/security/privacy#older-mac-reports) conserva campos y frecuencia. -En el Mac, iCloud Sync forma parte de una licencia Pro o Team. En iPhone y iPad es gratis. +### iPhone y iPad {#ios-app} -Handoff transmite el identificador de la conexión abierta y el nombre de la tabla abierta entre tus propios dispositivos a través de Apple. Si no hay una tabla abierta, transmite el nombre de la conexión o su host si no tiene nombre. No envía ajustes ni credenciales. +La aplicación publicada no envía informes hasta activar **Share Usage Data** al inicio o en **Settings > Privacy**. La base es consentimiento. El informe diario pasa por el servidor a PostHog sin IP, con país de Cloudflare y sin perfil personal. Contiene identificador Apple con hash, plataforma, versiones, arquitectura, idioma, tipos/cantidad de conexiones y fechas de primer intento, éxito y primera consulta. Siempre indica que no hay licencia; no lleva ajustes de actualización. No comprueba cuentas, licencias, actualizaciones ni plugins. -## Sitio web {#website} +Conexiones de base/SSH, iCloud opcional y acceso Microsoft Entra para SQL Server envían datos a esos servicios. Contraseñas y claves pegadas quedan en Keychain; certificados e historial, en el dispositivo. Las conexiones entran en Spotlight local. Live Activity puede mostrar SQL en la pantalla bloqueada salvo con Hide Query. Por separado, Share With App Developers de Apple puede enviarnos fallos y estadísticas por App Store Connect. La aplicación no contiene capturador de fallos ni biblioteca de analítica externa. Consulta [iOS](https://docs.tablepro.app/ios#privacy). -**Alojamiento.** El sitio web y el portal de cuentas se ejecutan en nuestro servidor, detrás de Cloudflare. Como cualquier servidor web, reciben tu dirección IP, el agente de usuario de tu navegador y la dirección de cada página que solicitas. +### Linux {#linux-app} -**Cloudflare Web Analytics.** Cloudflare añade su script de Web Analytics a las páginas del sitio web; el portal de cuentas no lo ejecuta. Tu navegador lo carga desde `static.cloudflareinsights.com` e informa de cada visita a Cloudflare: la página, el sitio que la enlazó, cuánto tardó en cargar y tu navegador, sistema operativo y tipo de dispositivo. Cloudflare añade el país de origen de tu conexión. El script no establece cookies ni almacena nada en tu navegador, y Cloudflare afirma que no usa tu dirección IP ni los detalles del navegador para identificarte mediante huella digital. Cloudflare nos muestra totales, como visitas por página o país, no un registro de cada visitante. Base jurídica: interés legítimo. +Desde 0.1.0-beta.1, acceder registra el dispositivo según [cuentas](#account). Los secretos usan el llavero del escritorio. Las actualizaciones del gestor de paquetes siguen a tu distribuidor. No se envían informes automáticos de fallos. -**Google Analytics.** El sitio carga Google Analytics en todas las páginas en modo de consentimiento. Hasta que selecciones **Permitir** en la pregunta sobre cookies, no establece cookies y solo envía a Google una señal sin cookies por página, sin almacenar un identificador en tu dispositivo. Si lo permites, Google Analytics establece las cookies `_ga` y `_ga_` y mide tus visitas, como páginas vistas, clics de descarga e inicio de compras. El almacenamiento publicitario, la personalización de anuncios y los datos de usuario para anuncios están siempre denegados. Google afirma que Google Analytics 4 no registra ni almacena direcciones IP. Nuestra propiedad de Google Analytics usa el periodo de conservación predeterminado de Google: Google elimina los datos de usuarios y eventos recopilados al cabo de 2 meses. Los informes estándar de Google, que contienen totales en lugar de identificadores, no se ven afectados. Base jurídica: tu consentimiento para las cookies. +#### Datos de uso de Linux {#linux-usage-data} -**Chat en directo.** Todas las páginas del sitio web y del portal de cuentas muestran un botón de chat de nuestro proveedor, Crisp. Una vez cargada una página, tu navegador carga el script de Crisp desde `client.crisp.chat`, y Crisp establece las cookies descritas en [Cookies y almacenamiento del navegador](#cookies). Crisp recibe tu dirección IP, los detalles del navegador, las direcciones de las páginas que visitas y los mensajes que escribes, y conserva tu dirección IP si inicias una conversación. Comunicamos a Crisp el idioma de la página. Cuando has iniciado sesión en el portal de cuentas, también le damos la dirección de correo electrónico y el ID de tu cuenta, que vinculan la conversación con tu cuenta. No le comunicamos ningún otro dato sobre ti. Crisp tiene su sede en Francia. +Activados por defecto desde 0.1.0-beta.1. Desactiva Share usage data en Preferences > General > Privacy. Van directamente a PostHog EU: uso diario con tipos/cantidad de conexiones, primer intento/éxito y consulta por tipo, accesos/salidas, clics de mejora y preguntas de compra con respuesta Buy. Llevan IDs de instalación/cuenta, versiones, arquitectura, idioma y metadatos SDK. PostHog recibe IP y deduce ubicación. Antes de acceder hay ID aleatorio sin perfil; después el perfil vincula uso y compras. Salir restablece el ID. No contienen hosts, SQL, filas ni credenciales. El registro de dispositivo sí incluye el nombre del host, por separado. -**Script de compra.** Cuando apuntas a un botón Comprar o llegas a él con el tabulador, tu navegador carga el script de compra de {merchant} desde jsDelivr (`cdn.jsdelivr.net`), que recibe tu dirección IP y los detalles del navegador. El proceso de compra solo se abre desde {merchant} cuando haces clic. +Desactivar detiene nuevos envíos. Una solicitud en curso puede acabar. No borra eventos previos ni detiene cuenta o analítica del servidor. Consulta [conservación](#retention), [derechos](#rights) e [inventario](https://docs.tablepro.app/security/privacy#linux-usage-data). -**Comprobación del boletín.** Cuando empiezas a usar el formulario del boletín, tu navegador carga Cloudflare Turnstile desde `challenges.cloudflare.com` para comprobar que se suscribe una persona; Cloudflare recibe tu dirección IP y los detalles de tu navegador. + -**Atribución de compras.** Al llegar al sitio, tu navegador conserva durante 90 días un registro de primera visita llamado `tablepro:attribution` en su almacenamiento local: el origen de la visita (las etiquetas `ref` o `utm_*` del enlace seguido, o el sitio que te enlazó), la página de llegada y la fecha. Si inicias una compra, el registro se envía con la solicitud de compra. Nuestro servidor transmite el origen de la visita a {merchant} como metadatos de la compra, lo guarda con el pedido cuando pagas y lo envía a PostHog con la compra y el pago. La página de llegada y la fecha no se guardan. +## Servicios que eliges {#integrations} -**Documentación.** La documentación en docs.tablepro.app está alojada en Mintlify, que recibe tu dirección IP y los datos de tu navegador con cada página, y las páginas cargan sus fuentes desde Google Fonts. La barra de navegación muestra el número de estrellas del repositorio, que tu navegador obtiene de la API de GitHub, por lo que GitHub también recibe tu dirección IP y los datos de tu navegador. Esa solicitud no establece cookies. La documentación hace su propia pregunta sobre cookies, porque no puede leer la respuesta que diste en este sitio. Hasta que selecciones **Allow** allí, no establece cookies ni guarda ningún ID de visitante. Si lo permites, Google Analytics establece las cookies `_ga` y `_ga_` y mide tus visitas a la documentación, y Mintlify guarda un ID de visitante aleatorio, `mintlify_anonymous_id`, en el almacenamiento local para contarlas. **Cookie settings**, en el pie de la documentación, cambia tu respuesta, y al rechazar se eliminan ambos. Base jurídica: tu consentimiento. +Tus proveedores de base de datos, SSH y proxy reciben el tráfico solicitado directamente. Los servicios de identidad reciben autenticación cuando los configuras. Apple Maps aporta mapas; DuckDB, extensiones para consultas. Los programas auxiliares de conexión e IA contactan con sus proveedores. Rigen sus propias condiciones. -**Idioma y descuento regional.** Para sugerirte la página en tu idioma cuando tu navegador no indica ninguno de los que ofrece el sitio, y para mostrar el descuento regional que aplicaría la compra, el sitio pregunta a Cloudflare (`/cdn-cgi/trace`) y a nuestro servidor de qué país procede tu conexión, y puede leer la zona horaria de tu dispositivo. Ninguna de las dos solicitudes lleva cookies, y la página no guarda nada de las respuestas. Base jurídica: interés legítimo. +### iCloud y Handoff {#icloud} -Leer el sitio no establece cookies propias. Las solicitudes de suscripción al boletín, compra y comprobación de códigos de descuento desde el sitio público omiten las credenciales: no envían cookies del portal de cuentas ni aceptan cookies de la respuesta. Abrir páginas del portal es una acción separada: iniciar sesión allí establece la cookie del portal indicada abajo. Todo lo que el sitio conserva en tu navegador aparece en [Cookies y almacenamiento del navegador](#cookies). +iCloud Sync opcional guarda conexiones, grupos, etiquetas, ajustes, consultas y perfiles SSH en tu CloudKit privado. En Mac también sincroniza favoritos y carpetas de tablas y bases de datos, y nombres, usuarios y modos de contraseña de los perfiles de credenciales, nunca su contraseña. Apple lo aloja; no podemos leerlo. Sincronizar contraseñas es una opción aparte, desactivada, con cifrado de extremo a extremo mediante iCloud Keychain. En Mac afecta a otros secretos de ese almacén, como claves IA y licencias antiguas. Los tokens de cuenta no sincronizan. Mac necesita Pro o Team; iOS es gratuito. Handoff pasa ID de conexión y tabla, o nombre/host sin tabla abierta, entre tus dispositivos Apple, sin credenciales. Consulta [controles](https://docs.tablepro.app/features/icloud-sync). -## Compras {#purchases} +### IA y herramientas externas {#ai-tools} -Las licencias las vende {merchant} (Polar Software, Inc.), nuestro merchant of record y revendedor. Compras a {merchant} según sus propias condiciones para compradores y su política de privacidad. {merchant} recibe el pago, calcula y paga los impuestos sobre ventas o el IVA, envía recibos y facturas y gestiona problemas y disputas de pago. Recopila tu nombre, correo, dirección de facturación y datos de pago. Nunca vemos los datos completos de tu tarjeta. +La IA envía directamente a tu proveedor o modelo local. Puede enviar instrucciones, esquema, SQL y conversación. Adjuntar filas de la cuadrícula está desactivado por defecto. Los resultados de una herramienta de consulta autorizada también pasan a la conversación y proveedor, al margen de ese interruptor. GitHub Copilot descarga un auxiliar desde npm y empieza con Send telemetry to GitHub activado. -Cuando inicias una compra, nuestro servidor comunica a {merchant} lo que compras, el idioma de la página donde compras, el origen de tu visita (consulta [Sitio web](#website)) y tu dirección IP, que {merchant} usa para calcular impuestos y moneda. De {merchant} recibimos tu correo, tu nombre y dirección de facturación tal como los introdujiste, lo que compraste, los importes, los identificadores de pedido y suscripción y los cambios posteriores, como renovaciones, cancelaciones y reembolsos. Con cada pedido guardamos el correo, el país de facturación y los importes. +MCP está desactivado por defecto y no arranca así, ni mediante puente o emparejamiento. Al activarlo, clientes autenticados pueden pedir datos dentro de tus permisos. Un cliente IA puede enviarlos a su servicio. Servidores MCP externos reciben argumentos autorizados. Consulta [controles IA y MCP](https://docs.tablepro.app/security/privacy#ai-providers). -Una compra hecha sin iniciar sesión va a la cuenta de TablePro del correo con el que compraste, que se crea si no existe y queda sin verificar hasta que inicias sesión por primera vez. En el [portal de cuentas]({account}) puedes cambiar el ciclo de facturación o los puestos de una suscripción, cancelarla o reanudarla y pedir un reembolso. Cuando cancelas, el motivo que eliges y el comentario que escribas van a {merchant} y se guardan con la suscripción. La tarjeta, las facturas, los datos fiscales y la dirección de facturación están en el [portal de clientes de {merchant}]({portal}), que el portal de cuentas abre por ti. Los reembolsos se describen en la [política de reembolso](/es/refund-policy), y lo que permite una licencia, en las [condiciones del servicio](/es/terms). +## Web y almacenamiento del navegador {#website} -## Portal de cuentas {#account} +El servidor y Cloudflare reciben IP, agente y páginas. Cloudflare Web Analytics cuenta visitas, referencias, tiempos de carga, categorías de navegador/sistema/dispositivo y países sin almacenamiento ni huellas del navegador. El interés legítimo es entender y mantener la web. -El [portal de cuentas]({account}) en account.tablepro.app es donde gestionas tu cuenta de TablePro: sus licencias, dispositivos, facturación y equipos. Funciona en nuestro servidor, detrás de Cloudflare, como el sitio web. +Google Analytics carga en Consent Mode. Antes de Allow envía una señal sin cookie ni ID almacenado. El consentimiento activa cookies y medición de visitas, descargas y compras. Almacenamiento publicitario, personalización y datos publicitarios siempre se deniegan. Google afirma que GA4 no guarda IP. -**Tu cuenta.** Una cuenta pertenece a una persona y se identifica por una dirección de correo. Contiene esa dirección, el nombre y el idioma que elijas, tus métodos de inicio de sesión, los dispositivos conectados a ella, tus licencias y pedidos, los equipos a los que perteneces con tu rol y tu puesto, y un registro de auditoría de los cambios hechos en ella, como inicios de sesión, dispositivos nuevos y cambios de equipo, con la dirección IP y el navegador de la solicitud que hizo cada uno. Nuestros correos te llegan en el idioma de tu cuenta. +Crisp carga en toda web y portal según [soporte](#support). Apuntar o tabular a Buy carga el script de {merchant} desde jsDelivr, que recibe IP y navegador; el clic abre el pago. Iniciar el formulario carga Turnstile para prevenir abuso, interés legítimo. Consultas de país y zona horaria sugieren idioma y descuento regional bajo interés legítimo; omiten cookies y no guardan respuestas en la página. -**Inicio de sesión.** Te enviamos por correo un enlace y un código de 6 dígitos: el enlace funciona una vez, el código admite 5 intentos y ambos caducan a los 15 minutos. También puedes añadir llaves de acceso; de cada una guardamos su clave pública, el nombre que le das, si se sincroniza entre tus dispositivos y cuándo se añadió y se usó por última vez. O puedes iniciar sesión con Apple, GitHub o Google: el proveedor nos indica un identificador tuyo y tu dirección de correo verificada, y Apple también tu nombre la primera vez. Guardamos el identificador y la dirección con tu cuenta y, para Apple, un token que conservamos cifrado y revocamos ante Apple cuando desvinculas Apple o eliminas tu cuenta. Si la dirección de un proveedor pertenece a una cuenta existente, enviamos a esa cuenta un enlace y un código para confirmar antes de vincularlas, salvo que Google gestione la dirección (Gmail o Google Workspace). +La primera visita crea `tablepro:attribution` durante 90 días: etiquetas/referencia, página de entrada y fecha. Al pagar, nuestro servidor pasa el origen a {merchant} como metadatos, lo guarda en el pedido y lo manda a PostHog con compra/pago. No conserva página de entrada ni fecha. La base es interés legítimo en medir fuentes de compra. Solicitudes públicas de boletín, compra y descuento omiten credenciales y no fijan cookie del portal. El portal no ejecuta scripts analíticos, pero el servidor envía eventos. -**Tus equipos.** Cuando invitas a alguien a un equipo, guardamos su correo, su rol y si la invitación incluye un puesto, y le enviamos un enlace válido durante 7 días. Los propietarios y administradores ven los miembros del equipo con sus nombres y correos, sus invitaciones y su registro de auditoría, que muestra quién cambió qué en el equipo, incluidas las direcciones invitadas, pero nunca una dirección IP ni un navegador. Los miembros ven el equipo, su plan, sus puestos y su propio rol. +### Documentación {#docs} -**Tus datos.** En los ajustes puedes cambiar tu nombre, tu correo y tu idioma, añadir y quitar métodos de inicio de sesión, descargar los datos de tu cuenta como archivo JSON y eliminar tu cuenta. No puedes eliminarla mientras seas propietario de un equipo con otros miembros. Eliminarla quita tus métodos de inicio de sesión, dispositivos, licencias, membresías de equipo y los equipos que solo te tienen a ti, elimina la suscripción al boletín de tu dirección de correo y termina tus suscripciones sin reembolso. Lo que conservamos después se indica en [Cuánto tiempo conservamos los datos](#retention). +Mintlify aloja docs.tablepro.app. Solicitudes de páginas, Google Fonts y estrellas GitHub revelan IP y navegador a esos proveedores. Docs pide consentimiento independiente. Antes de Allow no guarda cookies analíticas ni ID. Allow activa Google Analytics e ID de Mintlify. Cookie settings del pie revoca y elimina ambos. La elección de la web no cruza a ese origen. -**Lo que carga el portal.** El portal no carga Google Analytics, Cloudflare Web Analytics ni ningún otro script de análisis, y no hace ninguna pregunta sobre cookies. Muestra el chat en directo de Crisp descrito en [Sitio web](#website), y una compra hecha allí abre la página de pago de {merchant} sobre la página. +### Cookies y almacenamiento {#cookies} -## Boletín {#newsletter} +Cloudflare Web Analytics no guarda nada en el navegador. Las páginas públicas no fijan cookies propias. Estos plazos son distintos de la conservación del proveedor. El almacenamiento necesario mantiene acceso o elección; los fines de consentimiento e interés legítimo se describen aquí. -Si te suscribes a las notas de versión, primero te enviamos un enlace de confirmación en el idioma de la página desde la que te suscribiste. El enlace es válido durante 7 días y una dirección recibe como máximo 3 al día. Cuando confirmas, tu dirección entra en nuestra lista del boletín, que guardamos en nuestro servidor con ese idioma. De la suscripción y de la confirmación registramos cuándo ocurrió cada una, la dirección IP y el navegador desde los que llegó, la página en la que te suscribiste y la versión del texto de consentimiento que aceptaste. Cloudflare Turnstile comprueba el formulario, como se describe en [Sitio web](#website). +| Nombre/servicio | Fin e inicio | Duración y control | +| --- | --- | --- | +| `_ga`, `_ga_` | Google Analytics tras consentir | Hasta 2 años; rechazar las borra | +| `tablepro:analytics-consent` | Registro necesario de elección, separado en web/docs | Hasta borrarlo | +| `tablepro:attribution` | Origen inicial enviado al pagar; interés legítimo | 90 días | +| `theme`, `tablepro:language`, `tablepro:campaign-closed` | Aspecto, idiomas elegidos/descartados, aviso de oferta cerrado; interés legítimo | Hasta borrar; tema del portal separado | +| `mintlify_anonymous_id` | ID de docs tras consentir allí | Hasta borrar o rechazar | +| Cookies `crisp-client/` | Continuidad de chat tras cargar en cada página; interés legítimo | 6 meses, renovados al volver | +| `__Host-tp_session` | Acceso necesario al portal | 30 días con sesión; hasta 10 minutos durante el acceso; salir la borra | +| `locale`, `context`, `sign-in-return-to` | Idioma, vista Personal/equipo y retorno; interés legítimo | Dos primeros hasta borrar; retorno 15 minutos | -Cada boletín registra las aperturas y los clics de todos sus destinatarios. Contiene una pequeña imagen, y sus enlaces pasan por `links.news.tablepro.app`. Cuando tu cliente de correo carga la imagen o sigues un enlace, Amazon SES registra la hora de la apertura o del clic y el enlace pulsado, con la dirección IP y el agente de usuario que envía tu cliente de correo, y los pasa a nuestro servidor, que cuenta las aperturas y los clics de cada boletín. Un cliente de correo que no carga imágenes no registra aperturas. El enlace para darse de baja y los enlaces que abren un correo nuevo no se rastrean. - -Todos los boletines incluyen un enlace para darse de baja, que abre una página con un botón para hacerlo, y cabeceras que permiten a tu app de correo darte de baja con un clic. Tras darte de baja no enviamos más boletines ni ningún correo para confirmarlo, y volver a suscribirte requiere una nueva confirmación. Marcar un boletín como spam también te da de baja, y en cuanto un correo a tu dirección rebota de forma permanente, dejamos de enviarle. Para que eliminemos también la dirección, escríbenos o elimina tu cuenta de TablePro si usa esa dirección. - -Al pasar de nuestro servidor anterior, todas las direcciones de su lista de correo que no se habían dado de baja entraron en esta lista como suscritas, confirmadas o no: ese servidor también había añadido las direcciones de compradores, titulares de licencias e inscritos en la beta, y les enviaba correos. Las direcciones que se habían dado de baja pasaron como dadas de baja, y aquellas cuyos correos habían rebotado o se habían marcado como spam pasaron en su lugar a nuestra lista de supresión, así que ningún boletín les llega. - -## Cookies y almacenamiento del navegador {#cookies} - -Leer el sitio público y sus solicitudes de boletín, compra y códigos de descuento no establecen cookies propias. Iniciar sesión en el portal de cuentas, o empezar a hacerlo, establece la única cookie estrictamente necesaria indicada abajo. Cloudflare Web Analytics no establece cookies ni almacena nada en tu navegador. Las cookies de Google Analytics no se establecen hasta que las permites. Crisp establece sus cookies en todas las páginas una vez cargado el chat. Nada de esto se usa para publicidad ni se vende. - -- **`_ga` y `_ga_`** (cookies de Google Analytics, hasta 2 años, solo si permites el análisis): un identificador aleatorio del navegador y el estado de tu visita actual. Rechazarlas, o cambiar tu respuesta después, las elimina. Base jurídica: consentimiento. -- **`tablepro:analytics-consent`** (almacenamiento local, hasta que lo borres): tu respuesta a la pregunta sobre análisis, para no preguntarte en todas las páginas. El portal de cuentas no carga análisis, así que no hace esta pregunta ni lee la respuesta. Base jurídica: estrictamente necesario para respetar tu elección. -- **`tablepro:attribution`** (almacenamiento local, 90 días): el registro de primera visita descrito en [Sitio web](#website). No contiene un identificador tuyo y solo se envía con una solicitud de compra, que transmite el origen de la visita a {merchant}. Base jurídica: interés legítimo. -- **`theme`** (almacenamiento local, hasta que lo borres): si elegiste apariencia clara, oscura o del sistema. El portal de cuentas guarda la suya. Base jurídica: interés legítimo. -- **`tablepro:language`** (almacenamiento local, hasta que lo borres): el idioma que elegiste en el menú de idiomas o en la barra de idioma, y cada idioma cuya sugerencia cerraste, para no volver a ofrecerlo. Base jurídica: interés legítimo. -- **`tablepro:campaign-closed`** (almacenamiento local, hasta que lo borres): la oferta cuyo aviso cerraste en la parte superior de la página, para que siga cerrado en todas las páginas hasta que esa oferta termine. Base jurídica: interés legítimo. -- **`mintlify_anonymous_id`** (almacenamiento local en docs.tablepro.app, lo guarda Mintlify, solo si permites Google Analytics allí): el ID de visitante descrito en [Sitio web](#website). Al rechazar se elimina. La documentación guarda su propia respuesta `tablepro:analytics-consent`. Base jurídica: consentimiento. -- **Cookies que comienzan por `crisp-client/`** (Crisp, por ejemplo `crisp-client/session/…`; 6 meses, renovados cuando vuelves; establecidas en todas las páginas al cargar el chat): mantienen el chat y tu conversación entre páginas y visitas. Base jurídica: interés legítimo, para ofrecer soporte en todas las páginas. -- **`__Host-tp_session`** (cookie del portal de cuentas, 30 días desde que inicias sesión): mantiene tu sesión iniciada. Antes de iniciar sesión solo se establece mientras está en curso un inicio de sesión con llave de acceso, Apple, GitHub, Google o desde una app, durante 10 minutos como máximo. Cerrar sesión la elimina. Las solicitudes de boletín, compra y códigos de descuento desde el sitio público omiten las credenciales y nunca la reciben. Base jurídica: estrictamente necesaria. -- **`locale`, `context` y `sign-in-return-to`** (almacenamiento local del portal de cuentas): el idioma que elegiste allí antes de iniciar sesión y si abriste por última vez Personal o un equipo, ambos hasta que los borres, y durante 15 minutos la página a la que volver tras abrir un enlace de inicio de sesión recibido por correo. Base jurídica: interés legítimo. - -Puedes cambiar o retirar tu respuesta sobre análisis en cualquier momento desde **Configuración de cookies** en el pie de todas las páginas, o aquí: +Cambia el consentimiento con Cookie settings en el pie o aquí: -## Base jurídica {#lawful-basis} +## Destinatarios {#sharing} -Para lectores del Espacio Económico Europeo y del Reino Unido, las bases jurídicas según el RGPD y el RGPD del Reino Unido son: +| Destinatario | Datos y fin | +| --- | --- | +| [OVH]({ovhPrivacy}) | Servidor y registros del servicio | +| [Cloudflare]({cloudflarePrivacy}) | DNS/proxy, almacenamiento R2/copias, Turnstile, Cloudflare Web Analytics | +| [Amazon Web Services]({awsPrivacy}) | Amazon SES: correo, entrega e interacción; enlaces CloudFront, eventos SNS/SQS | +| [PostHog EU]({posthogPrivacy}) | Analítica de aplicación/servidor; IDs sin nombres/correos; solicitudes directas con IP | +| [{merchant}]({merchantPrivacy}) | Merchant of record independiente; pago, facturación y compras | +| [Crisp]({crispPrivacy}) | Chat, navegador/páginas e identidad de cuenta conectada | +| [Google]({googlePrivacy}) | Analítica web/docs y fuentes; acceso opcional | +| [Mintlify]({mintlifyPrivacy}) | Alojamiento docs y medición consentida | +| [GitHub]({githubPrivacy}) | Descargas, actualizaciones, plugins, estrellas, incidencias públicas y acceso opcional | +| [Apple]({applePrivacy}) | Acceso opcional; servicios y diagnósticos descritos en aplicaciones/integraciones | +| [jsDelivr]({jsdelivrPrivacy}) | Script de pago con IP y navegador | -- **Contrato** (art. 6.1.b): venta y provisión de licencias, tu cuenta con sus métodos de inicio de sesión y dispositivos, comprobaciones de licencia, portal de cuentas y Team Library. -- **Interés legítimo** (art. 6.1.f): datos de uso de la app para Mac y su análisis en PostHog, eventos sobre inicios de sesión, compras, dispositivos y equipos que nuestro servidor envía a PostHog, registro de auditoría de la cuenta, seguridad y prevención de abusos, incluido Cloudflare Turnstile en el formulario del boletín, registros del servidor, Cloudflare Web Analytics, registro de atribución de compras, consulta de país para el idioma y el descuento regional, y chat en directo en todas las páginas. -- **Consentimiento** (art. 6.1.a): cookies de Google Analytics, informe de uso de la app para iPhone y iPad, boletín y conversaciones que inicias en el chat en directo. -- **Obligación legal** (art. 6.1.c): registros fiscales y contables y respuestas a solicitudes legítimas. +Los miembros reciben contenido y datos según su rol. Las integraciones reciben lo que les diriges. No vendemos datos ni los compartimos para publicidad. Otras revelaciones solo se hacen por exigencia legal. También rigen las políticas de los proveedores. -## Quién recibe datos {#sharing} +## Lugar del tratamiento {#transfers} -Solo compartimos datos personales con los servicios necesarios para operar TablePro: +OVH y Amazon SES están en Singapur (`ap-southeast-1` para SES). PostHog está en la UE; Crisp tiene sede en Francia. {publisherName} opera desde Vietnam. Proveedores estadounidenses, incluidos {merchant}, Google, GitHub, Cloudflare, Amazon Web Services y Mintlify, tratan datos en EE. UU. Almacenamiento y copias pueden implicar otros países. Las garantías exigidas en EEE/Reino Unido usan cláusulas contractuales tipo u otros mecanismos aprobados de cada proveedor; Google también usa EU-US Data Privacy Framework. Pide información mediante [contacto](#controller). -- **{merchant}**, el merchant of record de las compras. -- **Amazon Web Services**, cuyo servicio Amazon SES envía nuestros correos desde su región Asia Pacífico (Singapur): enlaces y códigos de inicio de sesión, invitaciones de equipo, avisos de cuenta y de seguridad, y boletines. Nos avisa cuando un correo se entrega, rebota o se marca como spam, y registramos los rebotes y las denuncias de spam para dejar de enviar a esas direcciones. En los boletines también informa de cada apertura y cada clic, como se describe en [Boletín](#newsletter). -- **Nuestro proveedor de alojamiento y Cloudflare**, para el sitio web, el portal de cuentas y el servidor con el que se comunican las apps. Cloudflare también cuenta las visitas mediante Cloudflare Web Analytics y comprueba el formulario del boletín con Turnstile. -- **Google**, para Google Analytics en el sitio web y la documentación. -- **Crisp**, para el chat en directo en todas las páginas del sitio web y del portal de cuentas. -- **PostHog** (EU Cloud), nuestro servicio de analítica de producto, que recibe los informes de uso de las apps y los eventos de nuestro servidor sobre inicios de sesión, compras, dispositivos y equipos, con el identificador de tu cuenta pero nunca tu correo ni tu nombre. Los datos de uso que la app para Mac envía directamente llegan a PostHog con la dirección IP de tu Mac. -- **Apple, GitHub y Google**, cuando inicias sesión en tu cuenta con ellos. -- **jsDelivr**, que proporciona al navegador el script de compra de {merchant} cuando apuntas a un botón Comprar. -- **Mintlify**, que aloja la documentación en docs.tablepro.app. -- **GitHub**, que aloja el canal de actualizaciones, el catálogo de plugins y las descargas, y sirve el número de estrellas que muestra la documentación. +## Conservación {#retention} -No vendemos datos personales ni los compartimos con anunciantes. +No hemos fijado límite donde así se indica. Borrar la cuenta no borra PostHog ni Crisp. Escribe mediante [contacto](#controller) para que borremos allí tus datos a petición. -## Transferencias internacionales {#transfers} +| Registros | Conservación y borrado | +| --- | --- | +| Analítica PostHog | Sin límite fijado. Desactivar deja eventos anteriores. Solicita borrado. | +| Tareas y registros del servidor | Las tareas retienen informes al enviar/reintentar. Los registros sirven para seguridad y diagnóstico. Sin límite global; no prometemos ausencia de copias. | +| Dispositivos | Incluidos los retirados, hasta borrar la cuenta | +| Cuenta y auditoría | Se borran cuenta, acceso, dispositivos, licencias y pertenencias. La auditoría queda sin límite; se quitan campos de correo e IP/agente del actor, pero pueden quedar direcciones en texto libre. | +| Pedidos y avisos de proveedores | Pedidos por impuestos/contabilidad sin límite fijado. Se quitan enlaces de cuenta/correo. Quedan eventos de {merchant}, Amazon SES y Apple; se limpian datos personales de compra y destinatario/interacción de correo de la cuenta borrada. | +| Team Library | Elementos borrados conservan última versión para sincronizar. Borrado normal de equipo elimina biblioteca a los 30 días, restaurable antes. Borrar cuenta del único propietario elimina ambos al momento. Fin de licencia no la borra. | +| Autenticación | Enlaces/códigos caducan en 15 minutos, se borran 7 días después. Sesión: 30 días. Tokens: caducan 90 días tras uso, se borran 30 días después. Tareas de correo guardan texto claro hasta limpieza: un día tras enviar o 7 tras abandonar. | +| Boletín | Direcciones nuevas no confirmadas: 30 días. Confirmadas/migradas hasta petición o borrado de cuenta con ese correo. La baja conserva dirección como dada de baja. | +| Supresión | Direcciones con rebotes/quejas y fechas primera/última quedan tras borrar cuenta/suscripción para impedir más envíos. Sin límite. | +| Google Analytics | Datos de usuario/evento: 2 meses; informes estándar totales aparte | +| Cloudflare Web Analytics | Totales de visitas de los últimos seis meses disponibles | +| Soporte | Crisp y correo hasta borrado, también a petición. Sin límite fijado. | +| Copias y archivo de migración | Sin límite. Borrar cuenta no borra copias. El archivo completo anterior incluye nombres/correos, licencias, pedidos, equipos, nombres de dispositivos, suscriptores, registros beta, correos, informes de uso y logs de licencia con IP. | -Los servicios anteriores operan en varios países, por lo que tus datos pueden tratarse fuera del tuyo. {merchant}, Google, GitHub, Cloudflare y Mintlify tratan datos en Estados Unidos; Google lo hace según el Marco de Privacidad de Datos UE-EE. UU. y las Cláusulas Contractuales Tipo. PostHog los trata en la Unión Europea. Amazon Web Services envía nuestros correos desde Singapur. Cuando la ley lo exige, las transferencias desde el EEE y el Reino Unido se basan en Cláusulas Contractuales Tipo u otro mecanismo aprobado. +## Opciones y derechos {#rights} -## Cuánto tiempo conservamos los datos {#retention} +Usa interruptores, Cookie settings de web/docs y baja del boletín. Retirar consentimiento afecta al futuro, sin invalidar el tratamiento previo. Los interruptores no borran datos ni detienen analítica del servidor. En [Settings del portal]({account}) exportas o borras cuenta; no cubre todos los registros de conservación. -- **Informes de uso y eventos de análisis**: nuestro servidor no guarda ninguna copia una vez que los ha reenviado a PostHog. No hemos fijado un plazo para ellos en PostHog. -- **Registros de nuestro servidor anterior**: una copia de toda su base de datos se conserva indefinidamente en un archivo. Incluye licencias, pedidos y miembros de equipo con sus correos y nombres; los Mac activados con una licencia, con sus nombres; suscriptores del boletín e inscripciones a la beta; constancia de los correos que envió; y los informes de uso y los registros de solicitudes de licencia que guardaba, con sus direcciones IP. -- **Dispositivos**: se conservan, incluidos los que quitaste, hasta que elimines tu cuenta. -- **Registro de auditoría de tu cuenta**: se conserva mientras exista la cuenta, con la dirección IP y el navegador de cada cambio que hiciste. Al eliminar la cuenta se quitan de él tus direcciones de correo y la dirección IP y el navegador de lo que hiciste; queda el registro de cada cambio. -- **Pedidos**: se conservan para fines fiscales y contables. Al eliminar tu cuenta se quitan de ellos tu correo y tu cuenta. -- **Notificaciones de {merchant}, Amazon SES y Apple**: se conservan. Las de {merchant} contienen tu nombre, correo y dirección de facturación; al eliminar tu cuenta, esos datos se quitan de las que tratan de tus compras. Las de Amazon SES contienen la dirección a la que fue cada correo y, en un boletín, la dirección IP y el agente de usuario de cada apertura y cada clic; al eliminar tu cuenta, esos datos se quitan de las que tratan de correos a tu dirección y de nuestro registro de cada correo enviado. -- **Team Library**: hasta que un elemento se cambia; un elemento eliminado conserva su última versión. La biblioteca se elimina con su equipo, 30 días después de que el propietario elimine el equipo; hasta entonces, el propietario puede restaurarlo. Permanece cuando termina una licencia. -- **Enlaces y códigos de inicio de sesión**: caducan a los 15 minutos y se eliminan 7 días después. Las sesiones del portal duran 30 días. El token que mantiene la sesión de una app caduca 90 días después de que la app lo usara por última vez y se elimina 30 días más tarde. -- **Cuentas eliminadas**: la cuenta, sus métodos de inicio de sesión, dispositivos, licencias y membresías de equipo se eliminan de inmediato. Los pedidos y el registro de auditoría se conservan como se indica arriba. Lo que nuestro servidor anterior guardaba sobre ti sigue en su archivo, descrito arriba. -- **Boletín**: una dirección que no se confirma en 30 días se elimina junto con su enlace de confirmación. Una dirección confirmada, o traída de nuestro servidor anterior, permanece en nuestra lista con el registro de cómo entró hasta que la eliminemos a petición tuya o elimines la cuenta de TablePro que la usa; tras darte de baja se conserva como dada de baja, para que no le llegue ningún boletín. -- **Lista de supresión**: una dirección de la que rebotó un correo de forma definitiva, o cuyo titular marcó uno de nuestros correos como spam, permanece en nuestra lista de supresión con la fecha de la primera y la última vez, también después de eliminarse la cuenta o la suscripción al boletín que la usaba. Así no volvemos a enviarle ningún correo. -- **Google Analytics**: datos de usuarios y eventos durante 2 meses, el plazo predeterminado de Google que usa nuestra propiedad. Sus cookies duran hasta 2 años o se eliminan al rechazarlas. -- **Cloudflare Web Analytics**: Cloudflare nos muestra los totales de visitas de los últimos seis meses. No se almacena nada en tu navegador. -- **Chat en directo y correos de soporte**: se conservan en Crisp y en nuestra bandeja hasta su eliminación. Solicita que eliminemos tus conversaciones y correos. -- **Registros del servidor**: los registros de nuestro servidor web y de nuestro servidor, que se conservan en nuestro servidor para seguridad y resolución de problemas. Todavía no hemos fijado un plazo. +Según tu residencia, pide acceso, corrección, borrado, restricción, portabilidad u oposición al interés legítimo. No necesitas cuenta: escribe mediante [contacto](#controller). Podemos pedir detalles para localizar registros, como ID de instalación. Nunca envíes una clave de licencia en texto claro por correo. Respondemos en un mes. Puedes reclamar ante tu autoridad de protección de datos. Obligaciones legales pueden limitar el borrado. -## Tus derechos {#rights} - -Según dónde residas, puedes pedirnos que: - -- te demos una copia de los datos personales que tenemos sobre ti (acceso); -- los corrijamos (rectificación); -- los eliminemos (supresión), salvo los que debamos conservar por ley; -- limitemos su uso (limitación); -- te los enviemos en un formato estructurado y legible por máquina (portabilidad); -- dejemos de usarlos según el interés legítimo (oposición). - -Puedes retirar tu consentimiento en cualquier momento y reclamar ante tu autoridad de protección de datos. Para ejercer estos derechos, escribe a [{email}](mailto:{email}). Respondemos en 30 días. En el [portal de cuentas]({account}), los ajustes también te dan una copia de los datos de tu cuenta y la eliminan. Para todo lo demás, como una dirección del boletín o un Mac sin cuenta, indica el correo, la clave de licencia o el dispositivo correspondiente. Los datos que conservan {merchant}, Google, Crisp o GitHub también están cubiertos por sus propias políticas. +### Derechos regionales {#regional-rights} **Residentes de California.** La Ley de Privacidad del Consumidor de California te otorga el derecho a saber qué información personal recopilamos, pedirnos su eliminación, excluirte de su venta y no recibir un trato distinto por ejercer estos derechos. No vendemos información personal. ## Menores {#children} -TablePro no está dirigido a menores de 16 años y no recopilamos sus datos personales a sabiendas. Si crees que un menor nos ha proporcionado datos personales, contacta con nosotros y los eliminaremos. +TablePro no se dirige a menores de 16 años y no recogemos sus datos a sabiendas. Si crees que un menor nos dio datos, contacta y los borraremos. ## Seguridad {#security} -El tráfico entre las apps, el sitio web, el portal de cuentas y nuestro servidor usa HTTPS. Las cuentas de TablePro no tienen contraseñas. Los enlaces y códigos de inicio de sesión, los tokens que mantienen la sesión de las apps y los tokens de API de equipo se almacenan como hashes. La tarea que envía por correo un enlace y un código de inicio de sesión los guarda en texto plano hasta que se elimina: un día después de enviar el correo, o 7 días después de que dejemos de intentar enviarlo. Ambos dejan de funcionar 15 minutos después de que los pidas. El acceso a nuestros sistemas se limita a {publisherName} y a los proveedores de servicios indicados en [Quién recibe datos](#sharing). Ningún sistema es perfectamente seguro. Para informar de una vulnerabilidad, consulta la [página de seguridad](/es/security#report) o escribe a [{email}](mailto:{email}). - -## Cambios en esta política {#changes} - -Cuando cambia esta política, la actualizamos aquí con una nueva fecha de «Última actualización» y, cuando la ley lo exige, te lo comunicamos directamente. +El tráfico a nuestros servicios usa HTTPS. Las cuentas no tienen contraseñas. Credenciales y tokens API de equipo se guardan con hash, salvo la tarea temporal de correo en [conservación](#retention). Solo {publisherName} y los [destinatarios](#sharing) acceden a los sistemas. Ningún sistema es perfectamente seguro. Informa vulnerabilidades en [seguridad](/es/security#report). -## Contacto {#contact} +## Cambios {#changes} -Si tienes preguntas sobre privacidad o esta política, escribe a [{email}](mailto:{email}). +La página muestra su última actualización. Las versiones anteriores están en el [historial público de la web]({webGithub}/commits/main/resources/data/legal/en/privacy.md). Actualizamos antes de usar datos para otro fin, avisamos directamente cuando lo exige la ley y pedimos nuevo consentimiento cuando corresponda. diff --git a/resources/data/legal/fr/privacy.md b/resources/data/legal/fr/privacy.md index 50b64373..6a419c31 100644 --- a/resources/data/legal/fr/privacy.md +++ b/resources/data/legal/fr/privacy.md @@ -1,281 +1,228 @@ --- title: Politique de confidentialité -description: Ce que collectent les apps, le site et le portail de comptes TablePro, où vont ces données, leur durée de conservation, comment les modifier ou supprimer. -updatedAt: "2026-11-04" +description: Les données recueillies par TablePro, leurs usages, destinataires et durées de conservation, vos choix et droits. +updatedAt: "2026-11-05" --- -Cette politique couvre TablePro pour Mac, TablePro pour iPhone et iPad, le site web tablepro.app, la documentation sur docs.tablepro.app et le portail de comptes account.tablepro.app. Elle décrit ce que chacun envoie et stocke réellement aujourd’hui. Les deux applications sont open source sous AGPLv3 ; vous pouvez donc lire le code qui envoie les données ci-dessous dans le [dépôt TablePro]({github}). +Cette politique couvre TablePro sur Mac, Linux, iPhone et iPad ; tablepro.app ; docs.tablepro.app ; et nos services de compte, achats, assistance et newsletter. L'[inventaire technique](https://docs.tablepro.app/security/privacy) précise champs, destinations et réglages. Le code figure dans le [dépôt public]({github}). -## Résumé {#summary} +## En bref {#summary} -- L’application Mac envoie des données d’utilisation. Cet envoi est activé par défaut et vous pouvez le désactiver. L’application iPhone et iPad n’envoie de rapport d’utilisation que si vous l’activez. -- Si vous vous connectez à un compte TablePro ou activez une clé de licence, l’application Mac enregistre votre Mac sur notre serveur, avec son nom, et y vérifie régulièrement votre offre. -- Vos requêtes, résultats et mots de passe ne sont pas envoyés à TablePro. L’exception concerne ce que vous choisissez de publier dans Team Library : paramètres de connexion (jamais les mots de passe) et requêtes enregistrées. -- Les demandes IA vont directement de l’application Mac au fournisseur IA que vous avez configuré, pas à nous. -- À partir de la version qui ajoute les comptes TablePro, l’application Mac envoie ses données d’utilisation directement à PostHog, notre service d’analyse produit dans l’UE, qui reçoit alors l’adresse IP de votre Mac et en déduit une localisation approximative. Les versions antérieures et l’application iPhone et iPad envoient des rapports d’utilisation à notre serveur, qui les transmet à PostHog sans leurs adresses IP. Votre compte conserve un journal des modifications qui y sont faites, comme les connexions et les nouveaux appareils, avec l’adresse IP et le navigateur de la requête à l’origine de chacune. -- Le site compte les pages vues avec Cloudflare Web Analytics, qui ne dépose aucun cookie. Il charge aussi Google Analytics, qui ne dépose des cookies que si vous l’autorisez. Chaque page charge également notre chat en direct Crisp, qui dépose ses propres cookies. -- Le portail de comptes sur account.tablepro.app ne charge aucun script d’analyse. Il dépose un cookie pour maintenir votre connexion, et ses réglages vous permettent de télécharger les données de votre compte ou de supprimer le compte. -- Amazon SES, un service d’Amazon Web Services, envoie nos e-mails. La newsletter enregistre quand chaque destinataire l’ouvre et sur quels liens il clique. -- Les achats sont vendus par {merchant}, notre merchant of record. +Les requêtes et résultats ordinaires passent entre votre appareil et votre base. Les données d'utilisation ne contiennent ni SQL, ni lignes, ni identifiants secrets. Le contenu publié dans Team Library, envoyé à l'assistance ou partagé avec l'IA et des outils externes parvient à ces destinataires. -## Qui est responsable {#controller} +Les données d'utilisation sont activées par défaut sur Mac et Linux, avec un interrupteur. L'app iPhone et iPad publiée attend votre accord. L'analyse directe peut être liée à votre compte et vos achats. La désactiver n'arrête pas les requêtes du compte ni l'analyse du serveur. -{publisherName}, développeur indépendant installé à {publisherCity}, au {publisherCountry}, publie les applications TablePro et ce site, et est responsable des données personnelles décrites ici (responsable du traitement). Pour toute question sur cette politique ou vos données, écrivez à [{email}](mailto:{email}). +Le site mesure les visites et charge Crisp sur chaque page. Les cookies Google Analytics nécessitent votre choix. Les newsletters mesurent ouvertures et clics. Supprimer le compte laisse certains dossiers, dont ceux chez PostHog et Crisp. Consultez la [conservation](#retention) et [vos droits](#rights). Le [responsable](#controller) traite aussi les demandes sans compte. -## TablePro pour Mac {#mac-app} + -### Données d’utilisation {#mac-usage-report} +## Responsable {#controller} -À partir de la version qui ajoute les comptes TablePro, l’application Mac envoie des données d’utilisation directement à PostHog, notre service d’analyse produit, à `eu.i.posthog.com` dans l’UE. **L’envoi est activé par défaut et l’application ne demande pas votre accord avant le premier événement.** Pour le désactiver, ouvrez **Réglages > Général > Confidentialité** (Settings > General > Privacy) et décochez **Partager des données d’utilisation** (Share usage data). Tant que le réglage est désactivé, l’application n’envoie rien à PostHog, et si elle démarre avec le réglage désactivé, elle ne lance pas du tout la bibliothèque de PostHog. +{publisherName}, développeur indépendant à {publisherCity}, {publisherCountry}, est responsable des données personnelles décrites ici. Contact : [{email}](mailto:{email}). Nous n'avons pas de délégué à la protection des données. Pour les équipes, nous contrôlons les dossiers de compte, d'invitation et de service. Le contenu Team Library est traité sur instruction de l'équipe, qui choisit ce qu'elle publie et qui y accède. -L’application envoie un événement : + -- une fois par jour tant qu’elle fonctionne, avec les noms des types de bases de données de vos connexions ouvertes (par exemple « PostgreSQL ») et le nombre de connexions ouvertes ; -- lors de votre première tentative de connexion, de votre première connexion réussie et de votre première requête, chacune avec son type de base de données ; -- quand elle vous montre qu’une fonction payante n’est pas disponible, une fois par fonction à chaque lancement de l’application, avec la fonction et la raison, par exemple que vous n’êtes pas connecté ; -- quand vous cliquez pour passer à une offre supérieure, avec l’endroit de l’application où vous avez cliqué ; -- quand vous vous connectez, avec la manière (dans l’application, avec une clé de licence, ou par l’échange de la clé déjà présente sur votre Mac), et quand vous vous déconnectez. +## Données et usages {#data-use} -La bibliothèque de PostHog ajoute à chaque événement le modèle de votre Mac, la taille de l’écran, le fuseau horaire et la langue, si le Mac est connecté en Wi-Fi, la version, le build et l’identifiant de bundle de l’application, la version de macOS, la version de la bibliothèque et un identifiant de session aléatoire. PostHog reçoit l’adresse IP de votre Mac avec chaque requête et en déduit une localisation approximative, comme le pays et la ville. Tant que le réglage est activé, la bibliothèque récupère aussi ses paramètres et ses feature flags auprès de PostHog (`/config` depuis `eu-assets.i.posthog.com` et `/flags` depuis `eu.i.posthog.com`). +Pour l'EEE et le Royaume-Uni, chaque fin indique sa base juridique : contrat (article 6(1)(b)), intérêt légitime (6(1)(f)), consentement (6(1)(a)) ou obligation légale (6(1)(c)). Nous ne prenons aucune décision automatisée produisant des effets juridiques ou aussi importants. -Avant que vous vous connectiez, les événements portent un identifiant aléatoire que la bibliothèque crée sur votre Mac, et PostHog n’en tire aucun profil de personne. Dès que vous vous connectez, ils portent l’identifiant de votre compte, et le profil de ce compte dans PostHog contient les versions de l’application et de macOS, l’architecture du processeur, la langue de l’application et la localisation approximative que PostHog déduit de l’adresse IP. Cela rapproche vos installations de vos connexions et de vos achats. Se déconnecter fait démarrer un nouvel identifiant aléatoire. Les données d’utilisation de l’application ne contiennent plus d’identifiant de machine, ni l’état d’activation d’une licence, ni vos réglages de mise à jour. + -Les versions antérieures aux comptes TablePro envoient à la place un rapport d’utilisation à `api.tablepro.app`, avec le même réglage, environ dix secondes après leur démarrage, puis une fois par jour tant qu’elles fonctionnent. Un rapport contient : +### Comptes et appareils {#account} -- un identifiant de machine : un hachage SHA-256 de l’UUID matériel de votre Mac (l’UUID lui-même n’est jamais envoyé) ; -- la plateforme, la version de l’application, la version de macOS, l’architecture du processeur et la langue de l’application ; -- les noms des types de bases de données de vos connexions ouvertes (par exemple « PostgreSQL ») et le nombre de connexions ouvertes ; -- l’état d’activation d’une licence ; -- la date et l’heure de votre première tentative de connexion et de votre première connexion réussie ; -- vos réglages de mise à jour (mode d’installation et fréquence des vérifications). Notre serveur les écarte à la réception du rapport. +L'usage local gratuit ne nécessite pas de compte. Les services de compte exigent votre adresse e-mail. Nous conservons nom, langue, méthodes de connexion, licences, commandes, appareils, rôles et places dans les équipes. L'enregistrement Mac/Linux transmet identifiant de machine, nom, plateforme et versions de l'app/système. Le nom de l'appareil peut contenir le vôtre. Ce flux est distinct des données d'utilisation. Le but et la base sont de fournir compte et formule au titre du contrat. -Ni les événements ni les rapports ne contiennent de noms d’hôtes, noms d’utilisateurs, mots de passe, requêtes ou lignes. +La connexion utilise liens et codes par e-mail, passkeys, Apple, GitHub ou Google. Les passkeys ont une clé publique, un nom, un état de synchronisation et des dates d'usage. Les fournisseurs d'identité transmettent un ID et une adresse vérifiée ; Apple peut aussi donner le nom. Son jeton est chiffré et révoqué si vous dissociez Apple ou supprimez le compte. Les changements sont journalisés avec IP et agent utilisateur. L'intérêt légitime est la sécurité et l'enquête sur les abus. -Notre serveur ne stocke ni le rapport ni l’adresse IP d’où il provient. Il transmet le rapport à PostHog comme un événement lié à l’identifiant de machine, avec le pays que Cloudflare indique pour votre connexion, sans votre clé de licence ni votre adresse IP, et PostHog n’en tire aucun profil de personne. Comme votre compte répertorie ses appareils sous le même identifiant de machine, les rapports d’un Mac sur lequel vous vous êtes connecté ou avez activé une licence peuvent être reliés à votre compte. +Le [portail]({account}) sert à modifier profil et méthodes de connexion, gérer les appareils, exporter en JSON et supprimer le compte. La suppression est indisponible si vous possédez une équipe avec d'autres membres. Elle termine les abonnements sans remboursement. La [conservation](#retention) précise ce qui reste. -### Vérifications de licence {#mac-license} +### Achats {#purchases} -Les versions antérieures aux comptes TablePro ne contactent notre serveur de licences qu’après la saisie d’une clé de licence. Elles le font lors de l’activation, au démarrage si au moins {revalidateDays} jours se sont écoulés depuis la dernière vérification, puis tous les {revalidateDays} jours. Chaque vérification envoie : +{merchant} (Polar Software, Inc.) est le merchant of record et revendeur. Il recueille nom, e-mail, adresse de facturation et données de paiement selon ses conditions. Il gère paiement, taxes, reçus et litiges. Nous ne recevons jamais les données complètes de carte. -- votre clé de licence ; -- l’identifiant de machine décrit dans [Données d’utilisation](#mac-usage-report) ; -- le nom de votre Mac défini dans macOS (il inclut souvent votre propre nom) ; -- la version de l’application et celle de macOS. +Nous transmettons achat, langue, origine de visite et IP pour le paiement, les taxes et la devise. Nous recevons données de l'acheteur/facturation, montants, IDs de commande/abonnement, renouvellements, annulations et remboursements. Les commandes gardent e-mail, pays, montants et attribution. Un achat sans connexion crée si nécessaire un compte non vérifié pour cette adresse. Motifs et commentaires d'annulation vont à {merchant} et restent avec l'abonnement. Le traitement exécute le contrat ; les dossiers fiscaux et comptables répondent aux obligations légales. Sans les données nécessaires, l'achat ne peut aboutir. Gérez la facturation sur le [portail {merchant}]({portal}) ; consultez [conditions](/fr/terms) et [remboursements](/fr/refund-policy). -La désactivation d’un Mac n’envoie que la clé de licence et l’identifiant de machine. +### Équipes et contenu partagé {#library} -Notre serveur conserve chaque Mac activé comme appareil du compte titulaire de la licence : son identifiant de machine et son nom, les versions de l’application et de macOS, et la date de son dernier contact. L’activation et la désactivation d’un Mac sont consignées dans le journal d’audit de ce compte avec l’adresse IP et l’agent utilisateur de la requête ; les vérifications périodiques ne le sont pas. Le portail de comptes liste vos appareils par nom. Si notre serveur est inaccessible, les fonctionnalités payantes continuent de fonctionner pendant {graceDays} jours après la dernière vérification réussie. +L'auteur d'une invitation fournit e-mail, rôle et place. Propriétaires et administrateurs voient noms, e-mails, invitations et changements d'équipe, adresses invitées comprises, mais pas les IP ou navigateurs du journal. Les membres voient équipe, formule, nombre de places et leur rôle. Ces dossiers servent à exécuter le contrat d'équipe. -### Compte TablePro {#mac-account} +Sur Mac, publier dans Team Library envoie réglages de connexion et requêtes enregistrées au serveur pour les membres autorisés. Sont inclus hôte, port, base, utilisateur, SSH/SSL, commandes de démarrage, Tunnel Command et réglages IA. Les requêtes comprennent nom, SQL, mots-clés et dossiers. Les champs de mot de passe sont exclus ; les secrets écrits en SQL ou texte libre ne sont pas retirés. La bibliothèque affiche le dernier auteur. Quitter l'équipe n'efface pas son contenu. Voir les [délais](#retention). Team Catalog écrit plutôt dans un dossier partagé choisi. -À partir de la version qui ajoute les comptes TablePro, vous vous connectez à l’application Mac avec un [compte TablePro](#account) au lieu d’une clé de licence. L’application ouvre la page de connexion dans une fenêtre de navigateur, où vous pouvez saisir le code de l’e-mail de connexion. Une fois connecté, elle enregistre votre Mac comme appareil de votre compte : l’identifiant de machine décrit ci-dessus, le nom de votre Mac, la plateforme et les versions de l’application et de macOS. Elle récupère ensuite votre offre auprès de notre serveur sous forme de fichier signé une fois par jour tant qu’elle tourne, et ce fichier maintient les fonctionnalités payantes jusqu’à {offlineDays} jours sans notre serveur. Le jeton qui maintient la connexion de l’application est conservé uniquement dans le Trousseau macOS de ce Mac et n’est jamais synchronisé par le Trousseau iCloud, même avec la synchronisation des mots de passe activée. +### Analyse d'utilisation et du service {#analytics} -Une clé de licence déjà présente sur votre Mac est échangée une seule fois contre une connexion au compte titulaire, puis supprimée du Mac. Vous pouvez retirer des appareils dans l’application ou dans le portail de comptes, et la première fois qu’un Mac utilise votre licence, nous vous prévenons par e-mail. +Notre intérêt légitime est de comprendre l'usage, corriger les problèmes et mesurer les achats. Mac et Linux envoient les données de [Vos apps](#apps). Le serveur transmet à PostHog connexions, achats, appareils et équipes, avec IDs de compte, sans noms ni e-mails. Ces IDs relient usage et service. L'interrupteur arrête les événements de l'app, pas les requêtes nécessaires ni les événements serveur. Exercez [vos droits](#rights) pour vous opposer ou demander l'effacement. -### Team Library {#library} +### Newsletter et e-mails {#newsletter} -Team Library fait partie d’une licence Team. Lorsque vous choisissez **Partager > Publier dans la bibliothèque d’équipe…** (Share > Publish to Team Library…) sur une connexion ou **Publier les requêtes enregistrées pour l’équipe…** (Publish Saved Queries to Team…) dans la barre latérale Favorites, l’application Mac envoie ce que vous publiez à notre serveur : +Amazon SES envoie codes, invitations, avis de compte et newsletters. Les messages de service exécutent votre demande. Les nouvelles inscriptions à la newsletter nécessitent confirmation et consentement. Nous gardons adresse, langue, dates, IP, agents utilisateurs, page d'inscription et version du texte accepté. -- paramètres de connexion : hôte, port, nom de base de données, nom d’utilisateur, paramètres SSH et SSL, options du pilote, commandes de démarrage, paramètres de Tunnel Command, niveau de Safe Mode et paramètres IA, mais jamais les mots de passe ; -- requêtes enregistrées : noms, texte SQL, mots-clés et dossiers. +Chaque newsletter mesure ouvertures et clics de chaque destinataire avec une image et `links.news.tablepro.app`. Amazon SES reçoit heure, lien, IP et agent utilisateur, puis les transmet au serveur pour comptage. Bloquer les images arrête la mesure d'ouverture, pas celle des clics. Liens de désinscription et d'e-mail ne sont pas suivis. Aucun interrupteur séparé n'existe pour la mesure. Désinscrivez-vous dans la newsletter ou en un clic dans votre logiciel ; aucun e-mail de confirmation ne suit. Une nouvelle inscription exige confirmation. Rejets définitifs et signalements de spam arrêtent l'envoi. Demandez l'effacement via [contact](#controller). -À partir de la version qui ajoute les comptes TablePro, l’application Mac de chaque membre qui a un poste télécharge les modifications de la bibliothèque au démarrage, toutes les 15 minutes et après chaque publication. Une publication n’envoie que ce qui a changé et ne retire que les éléments que ce Mac a publiés et n’a plus. Si quelqu’un d’autre a modifié un élément avant vous, l’application demande quelle copie garder, et elle indique qui a modifié en dernier chaque requête de l’équipe. Les versions antérieures aux comptes TablePro téléchargent la bibliothèque au démarrage, au maximum une fois par semaine, et le Mac qui publie la télécharge de nouveau juste après. Depuis ces versions, une nouvelle publication remplace la précédente. La section Library du portail de comptes montre chaque élément, avec le nom de la personne qui l’a modifié en dernier, aux membres qui peuvent lire la bibliothèque, et permet aux propriétaires et aux administrateurs de supprimer des éléments. Un élément supprimé reste sur notre serveur avec sa dernière version pour que chaque Mac puisse synchroniser la suppression. Si la licence prend fin, la bibliothèque reste sur notre serveur jusqu’à ce que le propriétaire de l’équipe supprime l’équipe, ce qui supprime aussi la bibliothèque. +L'ancienne liste a transféré toute adresse non désinscrite, confirmée ou non, dont acheteurs, titulaires de licences et inscriptions bêta. Les désinscriptions ont été conservées ; rejets et plaintes ont rejoint la liste de suppression. Voir la [conservation](#retention). -Team Catalog, l’autre fonctionnalité Team, écrit des fichiers de connexion sans mots de passe dans un dossier partagé de votre choix. Il ne passe pas par notre serveur. +### Assistance {#support} -### Mises à jour et plugins {#mac-updates} +Messages, pièces jointes et diagnostics parviennent à nous et au service choisi. Ils peuvent contenir les données ou secrets que vous incluez. Au chargement du chat, Crisp reçoit IP, navigateur et pages vues sur site et portail. Il conserve l'IP si vous engagez une conversation. Nous donnons la langue et, connecté au portail, votre e-mail et ID de compte. Charger le chat partout répond à notre intérêt légitime d'assistance. Les conversations engagées reposent sur le consentement. -- **Vérifications de mise à jour.** Une fois par jour, l’application Mac télécharge le flux de mises à jour depuis GitHub (`raw.githubusercontent.com`). La demande n’envoie aucune information sur votre Mac au-delà de ce que transporte toute requête web : votre adresse IP et un agent utilisateur avec la version de l’application. Pour la désactiver, ouvrez **Réglages > Général > Mise à jour de logiciels** (Settings > General > Software Update) et décochez **Rechercher automatiquement les mises à jour** (Automatically check for updates). Les mises à jour elles-mêmes se téléchargent depuis GitHub. -- **Catalogue de plugins.** Au démarrage et à l’ouverture des réglages des plugins, l’application télécharge la liste des pilotes et thèmes disponibles depuis GitHub. Aucun réglage ne permet de désactiver cela. Les pilotes et thèmes installés se téléchargent depuis GitHub, et le navigateur de plugins consulte les nombres de téléchargements via l’API GitHub. +## Vos apps {#apps} -GitHub reçoit votre adresse IP avec ces demandes. Sa propre déclaration de confidentialité s’y applique. +| App et version | Données d'utilisation | Réglage | +| --- | --- | --- | +| Mac 0.86.0, dès 0.86.0-beta.1 | Directement à PostHog ; activées | Settings > General > Privacy | +| Linux dès 0.1.0-beta.1 | Directement à PostHog ; activées | Preferences > General > Privacy | +| iPhone et iPad publiés | Rapport par notre serveur ; désactivé avant accord | Settings > Privacy | -### Services que vous choisissez d’utiliser {#mac-third-parties} + -L’application Mac n’envoie des données à ces services que lorsque vous les configurez, directement, sans passer par TablePro : +### Données sur l'appareil {#local-data} -- **Vos bases de données, serveurs SSH et proxys**, qui reçoivent ce que vos connexions leur envoient. -- **Fournisseurs IA.** Lorsque vous ajoutez un fournisseur et utilisez l’assistant IA ou les suggestions en ligne, les demandes vont à ce fournisseur ou à un modèle exécuté sur votre Mac. Par défaut, une demande inclut le type et le nom de la base, les définitions de tables et colonnes du schéma et la requête courante. Les lignes de résultats ne sont envoyées que si vous activez cette option. Les conditions du fournisseur s’appliquent. L’ajout de GitHub Copilot télécharge son serveur de langage depuis npm, et son réglage « Envoyer la télémétrie à GitHub » (Send telemetry to GitHub) est activé au départ. -- **Services d’authentification** : Microsoft Entra ID, Google, Amazon Web Services et Cloudflare Access, lorsqu’une connexion les utilise. -- **Apple Maps**, qui fournit les tuiles de carte lorsque vous affichez des résultats sur une carte. -- **DuckDB**, qui fournit les extensions DuckDB la première fois qu’une requête en utilise une. -- **Clients MCP.** Le serveur MCP est désactivé par défaut. Il démarre lorsque vous l’activez ou lorsqu’un client MCP configuré lance le pont TablePro ou s’y associe, et il écoute uniquement sur votre Mac (127.0.0.1). Un client IA connecté, comme Claude ou Cursor, reçoit les résultats demandés et les envoie à son propre service selon ses propres conditions. -- **Serveurs MCP ajoutés.** Une session IA envoie à ce serveur les appels d’outils que vous approuvez, avec leurs arguments. +Connexions, historique, journaux locaux et onglets restent sur l'appareil sauf partage choisi. Le trafic des bases va à vos serveurs. Les mots de passe utilisent le stockage d'identifiants de la plateforme. Mac référence les clés SSH à leur emplacement. L'analyse exclut hôtes, utilisateurs, SQL, lignes et secrets. Les [intégrations](#integrations), Team Library et l'assistance ont les exceptions décrites ici. -### Données qui restent sur votre Mac {#mac-local} +### Mac {#mac-app} -Les mots de passe sont conservés dans le Trousseau macOS. Votre liste de connexions, l’historique des requêtes, Query Insights, les instantanés Data Rewind, les réglages et les onglets ouverts sont stockés sur votre Mac. L’application référence les clés SSH à leur emplacement sur le disque sans les copier. Les versions antérieures aux comptes TablePro ne contiennent aucun outil de rapport de plantage ni bibliothèque d’analyse tierce. À partir de la version qui ajoute les comptes TablePro, l’application inclut la bibliothèque de PostHog, qui envoie les données d’utilisation décrites ci-dessus. La bibliothèque contient l’outil de rapport de plantage de PostHog, que l’application laisse désactivé, si bien qu’aucun rapport de plantage n’est envoyé. Elle conserve son identifiant aléatoire, ses paramètres et les événements pas encore envoyés dans des fichiers sous `~/Library/Application Support/com.TablePro`. +L'analyse directe et le compte décrits commencent à 0.86.0, y compris 0.86.0-beta.1. La connexion enregistre le Mac et récupère la formule. Le jeton reste dans son Keychain et ne passe jamais par iCloud Keychain. Une ancienne clé de licence est échangée contre une connexion puis effacée localement. -## TablePro pour iPhone et iPad {#ios-app} +#### Données d'utilisation Mac {#mac-usage-report} -**Rien n’est envoyé à TablePro tant que vous n’activez pas Share Usage Data**, au premier démarrage ou plus tard dans **Settings > Privacy**. Si vous le faites, l’application envoie un rapport une fois par jour au même serveur que les versions de l’application Mac antérieures aux comptes TablePro, et notre serveur le transmet à PostHog de la même manière, sans son adresse IP. Le rapport contient un hachage SHA-256 de l’identifiant donné par Apple à l’application sur votre appareil, la plateforme, les versions de l’application et d’iOS, l’architecture du processeur, la langue de l’application, les noms des types de bases de vos connexions ouvertes, le nombre de connexions ouvertes, ainsi que la date et l’heure de votre première tentative de connexion, de votre première connexion réussie et de votre première requête. Il ne contient aucun réglage de mise à jour et indique toujours qu’aucune licence n’est activée, car l’application n’a ni l’un ni l’autre. +Elles sont activées par défaut, sans question avant le premier événement. Désactivez **Partager des données d’utilisation (Share usage data)** dans **Réglages > Général > Confidentialité (Settings > General > Privacy)**. Un démarrage avec le réglage désactivé ne lance pas PostHog. Aucun rapport automatique de plantage n'est envoyé ; son collecteur est désactivé. -L’application n’effectue aucune vérification de licence, de mise à jour ou demande de plugin. Hormis le rapport facultatif, elle se connecte uniquement à vos bases de données et serveurs SSH, à iCloud d’Apple si vous activez iCloud Sync, et à Microsoft lorsqu’une connexion SQL Server s’authentifie avec Microsoft Entra ID. +Les événements couvrent usage quotidien avec types/nombre de connexions ouvertes, premier essai, première réussite et première requête par type, blocages de fonctions payantes et motifs, clics de mise à niveau, méthode de connexion/déconnexion et demandes d'achat de licence avec réponses. PostHog ajoute contexte d'appareil, écran, réseau, session, app et système. Il reçoit l'IP et déduit une position approximative. Avant connexion, ID aléatoire d'installation sans profil personnel. Après, ID de compte et profil avec versions, architecture, langue et position. La déconnexion crée un nouvel ID. Voir [champs et destinations](https://docs.tablepro.app/security/privacy#usage-data). -Sur l’appareil, les mots de passe et les clés SSH collées sont conservés dans le Trousseau ; les certificats ne sont jamais synchronisés. L’historique des requêtes reste sur l’appareil. Vos connexions sont ajoutées à l’index Spotlight local pour permettre leur recherche. Pendant l’exécution d’une requête, son Activité en direct affiche le SQL sur l’écran verrouillé et dans la Dynamic Island développée, sauf si vous activez **Settings > Live Activities > Hide Query**. +#### Mises à jour et plugins {#mac-updates} -Si vous partagez des données d’analyse avec les développeurs dans les réglages de votre iPhone ou iPad, Apple peut nous transmettre des rapports de plantage et statistiques d’utilisation via App Store Connect. L’application ne contient aucun outil propre de rapport de plantage ni bibliothèque d’analyse tierce. +Flux de mises à jour et catalogue viennent de GitHub via updates.tablepro.app. Téléchargements et compteurs atteignent aussi GitHub. Les requêtes portent IP et agent utilisateur. Désactivez **Rechercher automatiquement les mises à jour (Automatically check for updates)** dans **Réglages > Général > Mise à jour de logiciels (Settings > General > Software Update)** pour arrêter les vérifications automatiques. Le catalogue n'a pas d'interrupteur. Les [détails](https://docs.tablepro.app/security/privacy#update-checks) incluent l'ancien flux. -## iCloud Sync et Handoff {#icloud} +#### Anciennes versions Mac {#mac-license} -iCloud Sync est désactivé jusqu’à votre activation, sur Mac comme sur iPhone et iPad. Lorsqu’il est activé, les enregistrements vont dans une base privée de votre propre compte iCloud (conteneur `iCloud.com.TablePro`). TablePro ne peut pas les lire. +Avant 0.86.0, le même réglage activé commande un rapport au serveur. Il contient ID de machine haché, versions, types/nombre de connexions, état de licence et dates de premier essai/réussite. Les réglages de mise à jour envoyés sont écartés. Le serveur actuel relaie vers PostHog avec le pays Cloudflare, sans IP ni clé, sans profil personnel. L'ID peut relier les appareils du compte. Aucun historique dédié n'est conservé aujourd'hui, mais tâches, journaux, sauvegardes et archive peuvent garder des données. Voir [conservation](#retention). -- Sur Mac, vous choisissez les éléments synchronisés : connexions, groupes et tags, réglages, profils SSH, profils d’identifiants (nom et nom d’utilisateur, jamais le mot de passe), favoris de tables et de bases, requêtes enregistrées (texte SQL compris) et dossiers de tables. Un enregistrement de connexion inclut hôte, port, nom d’utilisateur, nom de base, paramètres SSH et SSL, commandes de démarrage, script avant connexion et règles IA. L’historique des requêtes, les instantanés Data Rewind et les sources de mots de passe ne sont jamais synchronisés. -- iPhone et iPad synchronisent les connexions, groupes et tags. -- Les mots de passe ne sont synchronisés que si vous activez aussi **Mots de passe** (Passwords) dans Catégories synchronisées (Sync Categories) sur Mac, ou **Sync Passwords** sur iPhone et iPad, ce qui utilise le Trousseau iCloud. Sur Mac, cela synchronise aussi les autres secrets conservés par TablePro dans le Trousseau, comme les clés des fournisseurs IA et la clé de licence. À partir de la version qui ajoute les comptes TablePro, la clé de licence est supprimée dès qu’elle est échangée contre une connexion, et le jeton qui maintient la connexion de l’application n’est jamais synchronisé. +Les anciennes versions appellent le service de licence après saisie d'une clé seulement. Elles envoient clé, ID, nom du Mac et versions. Les appareils appartiennent au compte ; activation/désactivation sont auditées avec IP et agent utilisateur. L'[inventaire](https://docs.tablepro.app/security/privacy#older-mac-reports) conserve champs et fréquence. -Sur Mac, iCloud Sync fait partie d’une licence Pro ou Team. Sur iPhone et iPad, il est gratuit. +### iPhone et iPad {#ios-app} -Handoff transmet l’identifiant de la connexion ouverte et le nom de la table ouverte entre vos appareils, via Apple. Si aucune table n’est ouverte, il transmet le nom de la connexion ou son hôte si elle n’a pas de nom. Il n’envoie aucun réglage ni identifiant de connexion. +L'app publiée ne rapporte rien sur l'usage avant **Share Usage Data**, au premier lancement ou dans **Settings > Privacy**. La base est le consentement. Un rapport quotidien passe par le serveur vers PostHog sans IP, avec pays Cloudflare et sans profil personnel. Il contient identifiant Apple haché, plateforme, versions, architecture, langue, types/nombre de connexions et dates de premier essai, réussite et première requête. Il indique toujours aucune licence, sans réglage de mise à jour. Aucun contrôle de compte, licence, mise à jour ou plugin n'est fait. -## Site web {#website} +Bases/SSH, iCloud facultatif et connexion Microsoft Entra pour SQL Server envoient aux services concernés. Mots de passe et clés collées restent dans Keychain ; certificats et historique sur l'appareil. Les connexions entrent dans Spotlight local. Live Activity peut afficher le SQL sur écran verrouillé sauf avec Hide Query. Séparément, Share With App Developers d'Apple peut nous transmettre plantages et statistiques par App Store Connect. L'app n'a ni collecteur de plantage ni bibliothèque d'analyse tierce. Voir [iOS](https://docs.tablepro.app/ios#privacy). -**Hébergement.** Le site et le portail de comptes fonctionnent sur notre serveur, derrière Cloudflare. Comme tout serveur web, ils reçoivent votre adresse IP, l’agent utilisateur de votre navigateur et l’adresse de chaque page demandée. +### Linux {#linux-app} -**Cloudflare Web Analytics.** Cloudflare ajoute son script Web Analytics aux pages du site ; le portail de comptes ne l’exécute pas. Votre navigateur le charge depuis `static.cloudflareinsights.com` et signale chaque page vue à Cloudflare : la page, le site qui y mène, le temps de chargement, ainsi que votre navigateur, système d’exploitation et type d’appareil. Cloudflare ajoute le pays d’origine de votre connexion. Le script ne dépose aucun cookie et ne stocke rien dans votre navigateur ; Cloudflare indique ne pas utiliser votre adresse IP ou les détails du navigateur pour créer une empreinte numérique. Cloudflare nous montre des totaux, comme les pages vues par page ou par pays, pas un enregistrement de chaque visiteur. Base légale : intérêt légitime. +Dès 0.1.0-beta.1, se connecter enregistre l'appareil selon [comptes](#account). Les secrets utilisent le trousseau du bureau. Les mises à jour du gestionnaire de paquets suivent votre distributeur. Aucun rapport automatique de plantage n'est envoyé. -**Google Analytics.** Le site charge Google Analytics sur chaque page en mode Consentement. Tant que vous ne choisissez pas **Autoriser** à la question sur les cookies, il ne dépose aucun cookie et n’envoie à Google qu’un signal sans cookie par page, sans identifiant stocké sur votre appareil. Si vous l’autorisez, Google Analytics dépose les cookies `_ga` et `_ga_` et mesure vos visites, notamment pages consultées, clics de téléchargement et début de règlement. Le stockage publicitaire, la personnalisation des annonces et les données utilisateur publicitaires sont toujours refusés. Google indique que Google Analytics 4 ne journalise ni ne stocke les adresses IP. Notre propriété Google Analytics utilise la durée de conservation par défaut de Google : les données d’utilisateurs et d’événements collectées sont supprimées après 2 mois. Les rapports standards de Google, contenant des totaux plutôt que des identifiants, ne sont pas affectés. Base légale : votre consentement pour les cookies. +#### Données d'utilisation Linux {#linux-usage-data} -**Chat en direct.** Chaque page du site et du portail de comptes affiche un bouton de chat de notre fournisseur Crisp. Une fois la page chargée, votre navigateur charge le script Crisp depuis `client.crisp.chat`, et Crisp dépose les cookies décrits dans [Cookies et stockage du navigateur](#cookies). Crisp reçoit votre adresse IP, les détails du navigateur, les adresses des pages consultées et les messages écrits, et conserve votre adresse IP si vous commencez une conversation. Nous lui communiquons la langue de la page. Lorsque vous êtes connecté au portail de comptes, nous lui transmettons aussi l’adresse e-mail et l’identifiant de votre compte, qui relient la conversation à votre compte. Nous ne lui communiquons rien d’autre sur vous. Crisp est établi en France. +Activées par défaut dès 0.1.0-beta.1. Désactivez Share usage data dans Preferences > General > Privacy. Envoi direct à PostHog EU : usage quotidien avec types/nombre de connexions, premier essai/réussite et requête par type, connexions/déconnexions, clics de mise à niveau et affichages de demande de licence/réponses Buy. Sont inclus IDs, versions, architecture, langue et métadonnées SDK. PostHog reçoit IP et position déduite. Avant connexion, ID aléatoire sans profil ; après, profil reliant usage et achats. La déconnexion réinitialise l'ID. Aucun hôte, SQL, ligne ou secret. L'enregistrement d'appareil inclut séparément le nom d'hôte. -**Script de règlement.** Lorsque vous pointez un bouton Acheter ou y accédez avec Tab, votre navigateur charge le script de règlement de {merchant} depuis jsDelivr (`cdn.jsdelivr.net`), qui reçoit votre adresse IP et les détails du navigateur. Le règlement lui-même ne s’ouvre depuis {merchant} qu’au clic. +Désactiver arrête les nouveaux envois. Une requête en cours peut finir. Les anciens événements restent, tout comme les requêtes de compte et l'analyse serveur. Voir [conservation](#retention), [droits](#rights) et [inventaire](https://docs.tablepro.app/security/privacy#linux-usage-data). -**Vérification de la newsletter.** Lorsque vous commencez à remplir le formulaire de la newsletter, votre navigateur charge Cloudflare Turnstile depuis `challenges.cloudflare.com` pour vérifier qu’une personne s’inscrit ; Cloudflare reçoit votre adresse IP et les détails de votre navigateur. + -**Attribution des achats.** À votre arrivée sur le site, votre navigateur conserve pendant 90 jours un enregistrement de première visite nommé `tablepro:attribution` dans son stockage local : source de la visite (paramètres `ref` ou `utm_*` du lien suivi, ou site référent), page d’arrivée et date. Si vous commencez un achat, l’enregistrement accompagne la demande de règlement. Notre serveur transmet la source de la visite à {merchant} comme métadonnée du règlement, la conserve avec la commande une fois le paiement fait et l’envoie à PostHog avec le règlement et le paiement. La page d’arrivée et la date ne sont pas conservées. +## Services choisis {#integrations} -**Documentation.** La documentation sur docs.tablepro.app est hébergée par Mintlify, qui reçoit votre adresse IP et les informations de votre navigateur à chaque page, et les pages chargent leurs polices depuis Google Fonts. La barre de navigation affiche le nombre d’étoiles du dépôt, que votre navigateur récupère auprès de l’API de GitHub ; GitHub reçoit donc aussi votre adresse IP et les informations de votre navigateur. Cette requête ne dépose aucun cookie. La documentation pose sa propre question sur les cookies, car elle ne peut pas lire la réponse que vous avez donnée sur ce site. Tant que vous n’y choisissez pas **Allow**, elle ne dépose aucun cookie et ne conserve aucun identifiant de visiteur. Si vous l’autorisez, Google Analytics dépose les cookies `_ga` et `_ga_` et mesure vos visites de la documentation, et Mintlify conserve un identifiant de visiteur aléatoire, `mintlify_anonymous_id`, dans le stockage local pour les compter. **Cookie settings**, dans le pied de page de la documentation, modifie votre réponse, et un refus supprime les deux. Base légale : votre consentement. +Vos bases, SSH et proxies reçoivent directement le trafic demandé. Les services de connexion reçoivent l'authentification quand ils sont configurés. Apple Maps fournit les cartes ; DuckDB, les extensions utilisées. Les auxiliaires de connexion et IA téléchargés contactent leurs fournisseurs. Leurs conditions s'appliquent. -**Langue et réduction régionale.** Pour vous proposer la page dans votre langue lorsque votre navigateur n’en indique aucune de celles du site, et pour afficher la réduction régionale que le règlement appliquerait, le site demande à Cloudflare (`/cdn-cgi/trace`) et à notre serveur de quel pays provient votre connexion, et peut lire le fuseau horaire de votre appareil. Aucune de ces deux requêtes ne transporte de cookie, et la page ne conserve rien des réponses. Base légale : intérêt légitime. +### iCloud et Handoff {#icloud} -Consulter le site ne dépose aucun cookie propre. Les demandes d’abonnement à la newsletter, de règlement et de vérification de code de réduction depuis le site public omettent les identifiants : elles n’envoient pas les cookies du portail et n’acceptent pas les cookies de la réponse. L’ouverture des pages du portail est distincte : s’y connecter dépose le cookie du portail ci-dessous. Tout ce que le site conserve dans votre navigateur figure dans [Cookies et stockage du navigateur](#cookies). +iCloud Sync facultatif garde connexions, groupes, tags, réglages, requêtes et profils SSH dans votre CloudKit privé. Sur Mac, la synchronisation inclut aussi les favoris et dossiers de tables et bases de données, ainsi que les noms, identifiants et modes de mot de passe des profils de connexion, jamais leur mot de passe. Apple l'héberge ; nous ne pouvons le lire. La synchronisation de mots de passe est séparée et désactivée, via iCloud Keychain chiffré de bout en bout. Sur Mac elle couvre aussi les autres secrets de ce magasin, comme clés IA et anciennes licences. Les jetons de compte ne synchronisent jamais. Mac exige Pro ou Team ; iOS est gratuit. Handoff transmet ID de connexion et table, ou nom/hôte sans table ouverte, entre appareils Apple, sans secrets. Voir [réglages](https://docs.tablepro.app/features/icloud-sync). -## Achats {#purchases} +### IA et outils externes {#ai-tools} -Les licences sont vendues par {merchant} (Polar Software, Inc.), notre merchant of record et revendeur. Vous achetez auprès de {merchant} selon ses propres conditions d’achat et sa politique de confidentialité. {merchant} encaisse les paiements, calcule et reverse la taxe sur les ventes ou la TVA, envoie reçus et factures et gère problèmes et litiges de paiement. Il collecte nom, adresse e-mail, adresse de facturation et données de paiement. Nous ne voyons jamais les coordonnées complètes de votre carte. +L'IA contacte directement le fournisseur choisi ou modèle local. Instructions, schéma, SQL et conversation peuvent être envoyés. Joindre les lignes de la grille est désactivé par défaut. Les résultats d'un outil de requête autorisé rejoignent aussi la conversation et le fournisseur, indépendamment de ce réglage. GitHub Copilot télécharge un auxiliaire depuis npm et active initialement Envoyer la télémétrie à GitHub (Send telemetry to GitHub). -Lorsque vous commencez un règlement, notre serveur indique à {merchant} ce que vous achetez, la langue de la page d’achat, la source de votre visite (voir [Site web](#website)) et votre adresse IP, que {merchant} utilise pour déterminer les taxes et la devise. De {merchant}, nous recevons votre adresse e-mail, votre nom et adresse de facturation tels que saisis, votre achat, les montants, les identifiants de commande et d’abonnement, puis les changements comme renouvellements, résiliations et remboursements. Avec chaque commande, nous conservons l’adresse e-mail, le pays de facturation et les montants. +MCP est désactivé par défaut et ne démarre pas ainsi, même par pont ou jumelage. Activé, les clients authentifiés accèdent selon vos permissions. Un client IA peut transmettre les résultats à son service. Les serveurs MCP externes reçoivent les arguments approuvés. Voir [contrôles IA/MCP](https://docs.tablepro.app/security/privacy#ai-providers). -Un achat fait sans connexion va au compte TablePro de l’adresse e-mail utilisée pour l’achat, qui est créé s’il n’existe pas et reste non vérifié jusqu’à votre première connexion. Dans le [portail de comptes]({account}), vous pouvez changer la période de facturation ou les postes d’un abonnement, le résilier ou le reprendre, et demander un remboursement. Lors d’une résiliation, le motif choisi et le commentaire éventuel sont transmis à {merchant} et conservés avec l’abonnement. Carte, factures, informations fiscales et adresse de facturation figurent dans le [portail client de {merchant}]({portal}), que le portail de comptes ouvre pour vous. Les remboursements sont décrits dans la [politique de remboursement](/fr/refund-policy), et les droits d’une licence dans les [conditions d’utilisation](/fr/terms). +## Sites et stockage du navigateur {#website} -## Portail de comptes {#account} +Serveur et Cloudflare reçoivent IP, agent et pages. Cloudflare Web Analytics compte visites, sources, temps de chargement, catégories de navigateur/système/appareil et pays, sans stockage ni empreinte du navigateur. Notre intérêt légitime est comprendre et entretenir le site. -Le [portail de comptes]({account}) sur account.tablepro.app vous permet de gérer votre compte TablePro : ses licences, appareils, facturation et équipes. Il tourne sur notre serveur, derrière Cloudflare, comme le site. +Google Analytics se charge en Consent Mode. Avant Allow, il envoie un signal sans cookie ni ID stocké. L'accord active cookies et mesure des visites, téléchargements et achats. Stockage publicitaire, personnalisation et données publicitaires sont toujours refusés. Google indique que GA4 ne stocke pas d'IP. -**Votre compte.** Un compte appartient à une personne et est identifié par une adresse e-mail. Il contient cette adresse, le nom et la langue que vous choisissez, vos méthodes de connexion, les appareils qui y sont connectés, vos licences et commandes, les équipes dont vous faites partie avec votre rôle et votre poste, et un journal d’audit des modifications qui y sont faites, comme les connexions, les nouveaux appareils et les changements d’équipe, avec l’adresse IP et le navigateur de la requête à l’origine de chacune. Nos e-mails vous parviennent dans la langue de votre compte. +Crisp se charge partout sur site et portail selon [assistance](#support). Pointer ou tabuler vers Buy charge le script {merchant} de jsDelivr, qui reçoit IP et navigateur ; cliquer ouvre le paiement. Commencer le formulaire charge Turnstile contre les abus, intérêt légitime. Pays et fuseau servent aux suggestions de langue et remises régionales, sous intérêt légitime ; les requêtes omettent les cookies et la page ne garde pas les réponses. -**Connexion.** Nous vous envoyons par e-mail un lien et un code à 6 chiffres : le lien fonctionne une fois, le code autorise 5 tentatives, et tous deux expirent après 15 minutes. Vous pouvez aussi ajouter des clés d’accès ; pour chacune, nous conservons la clé publique, le nom que vous lui donnez, si elle se synchronise entre vos appareils, et ses dates d’ajout et de dernière utilisation. Vous pouvez aussi vous connecter avec Apple, GitHub ou Google : le fournisseur nous communique un identifiant vous concernant et votre adresse e-mail vérifiée, et Apple aussi votre nom la première fois. Nous conservons l’identifiant et l’adresse avec votre compte et, pour Apple, un jeton que nous gardons chiffré et révoquons auprès d’Apple lorsque vous dissociez Apple ou supprimez votre compte. Si l’adresse d’un fournisseur appartient à un compte existant, nous envoyons à ce compte un lien et un code à confirmer avant de les associer, sauf si Google gère l’adresse (Gmail ou Google Workspace). +La première visite crée `tablepro:attribution` pour 90 jours : tags/source, page d'arrivée et date. À l'achat, le serveur passe la source à {merchant} comme métadonnée, la garde avec la commande et l'envoie à PostHog avec achat/paiement. Page et date ne sont pas conservées. La base est l'intérêt légitime de mesurer les sources d'achat. Les requêtes publiques newsletter, achat et remise omettent les identifiants et ne fixent pas de cookie portail. Le portail n'a pas de script analytique, mais le serveur émet des événements. -**Vos équipes.** Lorsque vous invitez quelqu’un dans une équipe, nous conservons son adresse e-mail, son rôle et le fait que l’invitation comprenne ou non un poste, et lui envoyons un lien valable 7 jours. Les propriétaires et les administrateurs voient les membres de l’équipe avec leurs noms et adresses e-mail, ses invitations et son journal d’audit, qui indique qui a modifié quoi dans l’équipe, adresses invitées comprises, mais jamais une adresse IP ni un navigateur. Les membres voient l’équipe, son offre, ses postes et leur propre rôle. +### Documentation {#docs} -**Vos données.** Dans les réglages, vous pouvez changer votre nom, votre adresse e-mail et votre langue, ajouter et retirer des méthodes de connexion, télécharger les données de votre compte dans un fichier JSON et supprimer votre compte. Vous ne pouvez pas le supprimer tant que vous êtes propriétaire d’une équipe qui compte d’autres membres. La suppression retire vos méthodes de connexion, appareils, licences, appartenances aux équipes et les équipes dont vous êtes le seul membre, supprime l’inscription de votre adresse e-mail à la newsletter, et met fin à vos abonnements sans remboursement. Ce que nous conservons ensuite figure dans [Durée de conservation des données](#retention). +Mintlify héberge docs.tablepro.app. Requêtes de pages, Google Fonts et étoiles GitHub transmettent IP/navigateur aux fournisseurs. Docs demande un accord distinct. Avant Allow, aucun cookie analytique ni ID visiteur n'y est stocké. Allow active Google Analytics et l'ID Mintlify. Cookie settings au pied des docs retire le choix et les efface. Le choix du site ne passe pas à cette origine. -**Ce que charge le portail.** Le portail ne charge ni Google Analytics, ni Cloudflare Web Analytics, ni aucun autre script d’analyse, et ne pose aucune question sur les cookies. Il affiche le chat de Crisp décrit dans [Site web](#website), et un achat fait depuis le portail ouvre la page de règlement de {merchant} par-dessus la page. +### Cookies et stockage {#cookies} -## Newsletter {#newsletter} +Cloudflare Web Analytics ne stocke rien dans le navigateur. Les pages publiques ne fixent pas de cookies propres. Ces durées diffèrent de la conservation chez les fournisseurs. Le stockage nécessaire maintient connexion ou choix ; consentement et intérêt légitime sont précisés ici. -Si vous vous abonnez aux notes de version, nous vous envoyons d’abord un lien de confirmation dans la langue de la page d’inscription. Le lien est valable 7 jours, et une adresse en reçoit au maximum 3 par jour. Une fois confirmée, votre adresse rejoint notre liste de newsletter, que nous conservons sur notre serveur avec cette langue. Pour l’inscription et la confirmation, nous enregistrons le moment de chacune, l’adresse IP et le navigateur d’où elle vient, la page sur laquelle vous vous êtes inscrit et la version du texte de consentement que vous avez accepté. Cloudflare Turnstile vérifie le formulaire, comme décrit dans [Site web](#website). +| Nom/service | But et déclenchement | Durée et contrôle | +| --- | --- | --- | +| `_ga`, `_ga_` | Google Analytics après accord | Jusqu'à 2 ans ; refuser les efface | +| `tablepro:analytics-consent` | Choix nécessaire, distinct site/docs | Jusqu'à effacement | +| `tablepro:attribution` | Source initiale envoyée à l'achat ; intérêt légitime | 90 jours | +| `theme`, `tablepro:language`, `tablepro:campaign-closed` | Apparence, langues choisies/écartées, avis fermé ; intérêt légitime | Jusqu'à effacement ; thème du portail distinct | +| `mintlify_anonymous_id` | ID docs après accord local | Jusqu'à effacement ou refus | +| Cookies `crisp-client/` | Continuité du chat sur chaque page après chargement ; intérêt légitime | 6 mois, renouvelés au retour | +| `__Host-tp_session` | Connexion nécessaire au portail | 30 jours connecté ; 10 minutes maximum pendant la connexion ; déconnexion l'efface | +| `locale`, `context`, `sign-in-return-to` | Langue, vue Personal/équipe, retour ; intérêt légitime | Deux premiers jusqu'à effacement ; retour 15 minutes | -Chaque newsletter enregistre les ouvertures et les clics de tous ses destinataires. Elle contient une petite image, et ses liens passent par `links.news.tablepro.app`. Lorsque votre client de messagerie charge l’image ou que vous suivez un lien, Amazon SES enregistre l’heure de l’ouverture ou du clic et le lien cliqué, avec l’adresse IP et l’agent utilisateur qu’envoie votre client de messagerie, et les transmet à notre serveur, qui compte les ouvertures et les clics de chaque newsletter. Un client de messagerie qui ne charge pas les images n’enregistre aucune ouverture. Le lien de désinscription et les liens qui ouvrent un nouvel e-mail ne sont pas suivis. - -Chaque newsletter contient un lien de désinscription, qui ouvre une page avec un bouton pour vous désinscrire, et des en-têtes qui permettent à votre application de messagerie de vous désinscrire en un clic. Après désinscription, nous n’envoyons plus de newsletters, ni d’e-mail pour la confirmer, et vous réabonner demande une nouvelle confirmation. Signaler une newsletter comme spam vous désinscrit aussi, et dès qu’un e-mail envoyé à votre adresse est rejeté définitivement, nous cessons d’y envoyer. Pour supprimer aussi l’adresse, écrivez-nous, ou supprimez votre compte TablePro s’il utilise cette adresse. - -Lors du passage depuis notre ancien serveur, chaque adresse de sa liste de diffusion qui ne s’était pas désinscrite a rejoint cette liste comme abonnée, confirmée ou non : ce serveur avait aussi ajouté les adresses des acheteurs, des titulaires de licence et des inscrits à la bêta, et leur envoyait des e-mails. Les adresses désinscrites ont été reprises comme désinscrites, et celles dont les e-mails avaient été rejetés ou signalés comme spam ont été placées à la place sur notre liste de suppression, si bien qu’aucune newsletter ne les atteint. - -## Cookies et stockage du navigateur {#cookies} - -Consulter le site public et ses demandes de newsletter, de règlement et de code de réduction ne déposent aucun cookie propre. La connexion au portail de comptes, même seulement commencée, dépose le seul cookie strictement nécessaire listé ci-dessous. Cloudflare Web Analytics ne dépose aucun cookie et ne stocke rien dans votre navigateur. Les cookies Google Analytics ne sont déposés qu’après votre autorisation. Crisp dépose ses cookies sur chaque page une fois le chat chargé. Rien de tout cela n’est utilisé pour la publicité ou vendu. - -- **`_ga` et `_ga_`** (cookies Google Analytics, jusqu’à 2 ans, uniquement si vous autorisez l’analyse) : identifiant aléatoire de votre navigateur et état de votre visite actuelle. Refuser, ou modifier votre réponse plus tard, les supprime. Base légale : consentement. -- **`tablepro:analytics-consent`** (stockage local, jusqu’à suppression) : votre réponse à la question sur l’analyse, pour éviter de la reposer sur chaque page. Le portail de comptes ne charge aucune analyse : il ne pose pas cette question et ne lit pas la réponse. Base légale : strictement nécessaire pour respecter votre choix. -- **`tablepro:attribution`** (stockage local, 90 jours) : enregistrement de première visite décrit dans [Site web](#website). Il ne contient aucun identifiant personnel et n’accompagne qu’une demande de règlement, qui transmet la source de la visite à {merchant}. Base légale : intérêt légitime. -- **`theme`** (stockage local, jusqu’à suppression) : votre choix d’apparence claire, sombre ou système. Le portail de comptes conserve le sien. Base légale : intérêt légitime. -- **`tablepro:language`** (stockage local, jusqu’à suppression) : la langue que vous avez choisie dans le menu des langues ou dans la barre de langue, et chaque langue dont vous avez fermé la suggestion, pour qu’elle ne soit plus proposée. Base légale : intérêt légitime. -- **`tablepro:campaign-closed`** (stockage local, jusqu’à suppression) : la promotion dont vous avez fermé l’annonce au-dessus de l’en-tête, pour qu’elle reste fermée sur toutes les pages jusqu’à la fin de cette promotion. Base légale : intérêt légitime. -- **`mintlify_anonymous_id`** (stockage local sur docs.tablepro.app, déposé par Mintlify, uniquement si vous y autorisez Google Analytics) : l’identifiant de visiteur décrit dans [Site web](#website). Un refus le supprime. La documentation conserve sa propre réponse `tablepro:analytics-consent`. Base légale : consentement. -- **Cookies commençant par `crisp-client/`** (Crisp, par exemple `crisp-client/session/…` ; 6 mois, renouvelés à votre retour ; déposés sur chaque page après le chargement du chat) : maintiennent le chat et votre conversation entre pages et visites. Base légale : intérêt légitime, pour proposer une assistance sur chaque page. -- **`__Host-tp_session`** (cookie du portail de comptes, 30 jours à partir de la connexion) : maintient votre connexion. Avant la connexion, il n’est déposé que pendant une connexion en cours par clé d’accès, Apple, GitHub, Google ou depuis une application, pour 10 minutes au plus. La déconnexion le supprime. Les demandes de newsletter, de règlement et de code de réduction depuis le site public omettent les identifiants et ne le reçoivent jamais. Base légale : strictement nécessaire. -- **`locale`, `context` et `sign-in-return-to`** (stockage local du portail de comptes) : la langue choisie dans le portail avant la connexion et le fait que vous ayez ouvert en dernier Personnel ou une équipe, tous deux jusqu’à suppression, et pendant 15 minutes la page à rouvrir après un lien de connexion reçu par e-mail. Base légale : intérêt légitime. - -Vous pouvez modifier ou retirer votre réponse sur l’analyse à tout moment via **Paramètres des cookies** au pied de chaque page, ou ici : +Modifiez l'accord analytique avec Cookie settings au pied de page ou ici : -## Base légale {#lawful-basis} +## Destinataires {#sharing} -Pour les lecteurs de l’Espace économique européen et du Royaume-Uni, les bases légales au titre du RGPD et du UK GDPR sont : +| Destinataire | Données et but | +| --- | --- | +| [OVH]({ovhPrivacy}) | Serveur et dossiers du service | +| [Cloudflare]({cloudflarePrivacy}) | DNS/proxy, R2 et sauvegardes, Turnstile, Cloudflare Web Analytics | +| [Amazon Web Services]({awsPrivacy}) | E-mails Amazon SES, livraison et engagement ; liens CloudFront, événements SNS/SQS | +| [PostHog EU]({posthogPrivacy}) | Analyse app/serveur ; IDs sans noms/e-mails ; requêtes directes avec IP | +| [{merchant}]({merchantPrivacy}) | Merchant of record indépendant ; paiement, facturation et achats | +| [Crisp]({crispPrivacy}) | Chat, navigateur/pages et identité du compte connecté | +| [Google]({googlePrivacy}) | Analyse site/docs et polices ; connexion choisie | +| [Mintlify]({mintlifyPrivacy}) | Hébergement docs et mesure consentie | +| [GitHub]({githubPrivacy}) | Téléchargements, mises à jour, plugins, étoiles, tickets publics et connexion facultative | +| [Apple]({applePrivacy}) | Connexion facultative ; services/diagnostics des sections apps/intégrations | +| [jsDelivr]({jsdelivrPrivacy}) | Script de paiement avec IP et navigateur | -- **Contrat** (art. 6(1)(b)) : vente et fourniture d’une licence, votre compte avec ses méthodes de connexion et ses appareils, vérifications de licence, portail de comptes et Team Library. -- **Intérêt légitime** (art. 6(1)(f)) : données d’utilisation de l’application Mac et leur analyse dans PostHog, événements sur les connexions, achats, appareils et équipes que notre serveur envoie à PostHog, journal d’audit du compte, sécurité et prévention des abus, y compris Cloudflare Turnstile sur le formulaire de newsletter, journaux du serveur, Cloudflare Web Analytics, enregistrement d’attribution des achats, recherche du pays pour la langue et la réduction régionale, et chat sur chaque page. -- **Consentement** (art. 6(1)(a)) : cookies Google Analytics, rapport d’utilisation iPhone et iPad, newsletter et conversations initiées dans le chat. -- **Obligation légale** (art. 6(1)(c)) : documents fiscaux et comptables et réponses aux demandes légales. +Les membres reçoivent contenu et informations selon leur rôle. Les intégrations reçoivent ce que vous leur adressez. Nous ne vendons pas les données et ne les partageons pas pour la publicité. Toute autre divulgation exige une obligation légale. Les politiques des fournisseurs s'appliquent aussi. -## Qui reçoit les données {#sharing} +## Lieux de traitement {#transfers} -Nous partageons les données personnelles uniquement avec les services nécessaires au fonctionnement de TablePro : +OVH et Amazon SES sont à Singapour (`ap-southeast-1` pour SES). PostHog est dans l'UE. Crisp est basé en France. {publisherName} opère depuis le Vietnam. Les fournisseurs américains, dont {merchant}, Google, GitHub, Cloudflare, Amazon Web Services et Mintlify, traitent aux États-Unis. Stockage et sauvegardes peuvent concerner d'autres pays. Les garanties EEE/Royaume-Uni reposent sur les clauses contractuelles types ou autres mécanismes approuvés des fournisseurs ; Google utilise aussi EU-US Data Privacy Framework. Demandez des informations via [contact](#controller). -- **{merchant}**, merchant of record des achats. -- **Amazon Web Services**, dont le service Amazon SES envoie nos e-mails depuis sa région Asie-Pacifique (Singapour) : liens et codes de connexion, invitations d’équipe, avis de compte et de sécurité, et newsletters. Il nous signale lorsqu’un e-mail est remis, rejeté ou marqué comme spam, et nous enregistrons les rejets et les signalements de spam pour cesser d’envoyer à ces adresses. Pour les newsletters, il signale aussi chaque ouverture et chaque clic, comme décrit dans [Newsletter](#newsletter). -- **Notre hébergeur et Cloudflare**, pour le site, le portail de comptes et le serveur avec lequel les applications communiquent. Cloudflare compte aussi les pages vues avec Cloudflare Web Analytics et vérifie le formulaire de newsletter avec Turnstile. -- **Google**, pour Google Analytics sur le site et la documentation. -- **Crisp**, pour le chat sur chaque page du site et du portail de comptes. -- **PostHog** (EU Cloud), notre service d’analyse produit, qui reçoit les rapports d’utilisation des applications et les événements de notre serveur sur les connexions, achats, appareils et équipes, avec l’identifiant de votre compte mais jamais votre adresse e-mail ni votre nom. Les données d’utilisation que l’application Mac envoie directement parviennent à PostHog avec l’adresse IP de votre Mac. -- **Apple, GitHub et Google**, lorsque vous vous connectez à votre compte avec eux. -- **jsDelivr**, qui fournit au navigateur le script de règlement de {merchant} lorsque vous pointez un bouton Acheter. -- **Mintlify**, qui héberge la documentation sur docs.tablepro.app. -- **GitHub**, qui héberge le flux de mises à jour, le catalogue de plugins et les téléchargements, et fournit le nombre d’étoiles affiché dans la documentation. +## Conservation {#retention} -Nous ne vendons pas de données personnelles et ne les partageons pas avec des annonceurs. +Aucune limite n'est fixée là où le tableau le dit. Supprimer le compte n'efface pas PostHog ou Crisp. Écrivez via [contact](#controller) pour obtenir leur effacement sur demande. -## Transferts internationaux {#transfers} +| Dossiers | Conservation et effacement | +| --- | --- | +| Analyse PostHog | Aucune limite fixée. Désactiver laisse les événements passés. Demandez l'effacement. | +| Tâches et journaux serveur | Les tâches gardent les rapports en envoi/nouvel essai. Les journaux servent à la sécurité et au diagnostic. Aucune limite globale ; aucune promesse d'absence de copies. | +| Appareils | Même retirés, jusqu'à suppression du compte | +| Compte et audit | Compte, accès, appareils, licences et adhésions sont supprimés. Les audits restent sans limite ; champs e-mail et IP/agent de l'acteur sont retirés, mais des adresses en texte libre peuvent rester. | +| Commandes et avis fournisseurs | Commandes pour fiscalité/comptabilité sans limite fixée. Les liens compte/e-mail sont retirés. Les événements {merchant}, Amazon SES et Apple restent ; données personnelles d'achat et de destinataire/engagement sont nettoyées pour le compte supprimé. | +| Team Library | Un élément supprimé garde sa dernière version pour sync. Suppression ordinaire d'équipe : bibliothèque effacée après 30 jours, restaurable avant. Suppression du compte du seul propriétaire : équipe/bibliothèque effacées immédiatement. Fin de licence sans effacement. | +| Authentification | Liens/codes expirent après 15 minutes, effacés 7 jours plus tard. Sessions : 30 jours. Jetons : expirent 90 jours après usage, effacés 30 jours après. Tâches e-mail gardent le texte clair jusqu'au nettoyage : un jour après envoi ou 7 après abandon. | +| Newsletter | Nouvelles adresses non confirmées : 30 jours. Confirmées/migrées jusqu'à demande ou suppression du compte de cette adresse. Désinscription garde l'adresse marquée désinscrite. | +| Suppression d'envoi | Adresses rejetées/plaignantes et premières/dernières dates restent après suppression du compte/inscription pour bloquer l'envoi. Aucune limite. | +| Google Analytics | Données utilisateur/événement : 2 mois ; rapports standard totaux distincts | +| Cloudflare Web Analytics | Totaux des six derniers mois accessibles | +| Assistance | Crisp et boîte e-mail jusqu'à effacement, notamment sur demande. Aucune limite fixée. | +| Sauvegardes et archive | Aucune limite. Supprimer le compte ne les efface pas. L'ancienne base complète contient noms/e-mails, licences, commandes, équipes, noms d'appareils, abonnés, inscriptions bêta, e-mails, rapports d'usage et journaux de licence avec IP. | -Les services ci-dessus opèrent dans plusieurs pays ; vos données peuvent donc être traitées hors de votre pays. {merchant}, Google, GitHub, Cloudflare et Mintlify traitent des données aux États-Unis ; Google le fait au titre du cadre de protection des données UE–États-Unis et des clauses contractuelles types. PostHog les traite dans l’Union européenne. Amazon Web Services envoie nos e-mails depuis Singapour. Lorsque la loi l’exige, les transferts depuis l’EEE et le Royaume-Uni reposent sur les clauses contractuelles types ou un autre mécanisme approuvé. +## Choix et droits {#rights} -## Durée de conservation des données {#retention} +Utilisez les interrupteurs, Cookie settings site/docs et désinscription. Retirer le consentement agit pour l'avenir sans invalider le passé. Les interrupteurs n'effacent rien et n'arrêtent pas l'analyse serveur. Dans [Settings du portail]({account}), exportez ou supprimez le compte ; cela ne couvre pas tous les dossiers conservés. -- **Rapports d’utilisation et événements d’analyse** : notre serveur n’en garde aucune copie une fois transmis à PostHog. Nous n’avons pas fixé de durée pour eux dans PostHog. -- **Données de notre ancien serveur** : une copie de toute sa base de données est conservée sans limite de durée dans une archive. Elle comprend les licences, commandes et membres d’équipe avec leurs adresses e-mail et leurs noms ; les Mac activés sur une licence, avec leurs noms ; les abonnés à la newsletter et les inscriptions à la bêta ; la trace des e-mails qu’il a envoyés ; et les rapports d’utilisation et journaux de demandes de licence qu’il conservait, avec leurs adresses IP. -- **Appareils** : conservés, y compris ceux que vous avez retirés, jusqu’à la suppression de votre compte. -- **Journal d’audit de votre compte** : conservé tant que le compte existe, avec l’adresse IP et le navigateur de chaque modification que vous avez faite. La suppression du compte en retire vos adresses e-mail ainsi que l’adresse IP et le navigateur de vos actions ; la trace de chaque modification demeure. -- **Commandes** : conservées à des fins fiscales et comptables. La suppression de votre compte en retire votre adresse e-mail et votre compte. -- **Notifications de {merchant}, Amazon SES et Apple** : conservées. Celles de {merchant} contiennent votre nom, votre adresse e-mail et votre adresse de facturation ; la suppression de votre compte les retire de celles qui concernent vos achats. Celles d’Amazon SES contiennent l’adresse à laquelle chaque e-mail a été envoyé et, pour une newsletter, l’adresse IP et l’agent utilisateur de chaque ouverture et de chaque clic ; la suppression de votre compte les retire de celles qui concernent les e-mails envoyés à votre adresse, ainsi que de notre registre de chaque e-mail envoyé. -- **Team Library** : jusqu’à la modification d’un élément ; un élément supprimé garde sa dernière version. La bibliothèque est supprimée avec son équipe, 30 jours après que le propriétaire a supprimé l’équipe ; d’ici là, le propriétaire peut la restaurer. Elle reste après la fin d’une licence. -- **Liens et codes de connexion** : expirent après 15 minutes et sont supprimés 7 jours plus tard. Les sessions du portail durent 30 jours. Le jeton qui maintient la connexion d’une application expire 90 jours après sa dernière utilisation par l’application, et est supprimé 30 jours plus tard. -- **Comptes supprimés** : le compte, ses méthodes de connexion, appareils, licences et appartenances aux équipes sont supprimés immédiatement. Les commandes et le journal d’audit restent comme indiqué ci-dessus. Ce que notre ancien serveur détenait à votre sujet reste dans son archive, décrite ci-dessus. -- **Newsletter** : une adresse qui n’est pas confirmée dans les 30 jours est supprimée avec son lien de confirmation. Une adresse confirmée, ou reprise de notre ancien serveur, reste dans notre liste avec la trace de son inscription jusqu’à ce que nous la supprimions à votre demande ou que vous supprimiez le compte TablePro qui l’utilise ; après désinscription, elle est conservée comme désinscrite afin qu’aucune newsletter ne lui parvienne. -- **Liste de suppression** : une adresse dont un e-mail a été rejeté définitivement, ou dont le titulaire a signalé l’un de nos e-mails comme spam, reste sur notre liste de suppression avec la date de la première et de la dernière fois, y compris après la suppression du compte ou de l’abonnement à la newsletter qui l’utilisait. Ainsi, nous ne lui envoyons plus aucun e-mail. -- **Google Analytics** : données d’utilisateurs et d’événements pendant 2 mois, durée par défaut de Google utilisée par notre propriété. Les cookies durent jusqu’à 2 ans ou sont supprimés au refus. -- **Cloudflare Web Analytics** : Cloudflare nous montre les totaux de pages vues des six derniers mois. Rien n’est stocké dans votre navigateur. -- **Chat et e-mails d’assistance** : conservés par Crisp et dans notre messagerie jusqu’à suppression. Demandez-nous de supprimer vos conversations et e-mails. -- **Journaux du serveur** : les journaux de notre serveur web et de notre serveur, conservés sur notre serveur pour la sécurité et le diagnostic. Aucune durée fixe n’a encore été définie. +Selon votre résidence, demandez accès, correction, effacement, restriction, portabilité ou opposition à l'intérêt légitime. Aucun compte requis : écrivez via [contact](#controller). Nous pouvons demander des détails pour retrouver les dossiers, comme l'ID d'installation. N'envoyez jamais une clé de licence en clair par e-mail. Nous répondons sous un mois. Vous pouvez saisir votre autorité de protection des données. Les obligations légales peuvent limiter l'effacement. -## Vos droits {#rights} - -Selon votre lieu de résidence, vous pouvez nous demander de : - -- vous fournir une copie des données personnelles détenues sur vous (accès) ; -- les corriger (rectification) ; -- les supprimer (effacement), sauf celles à conserver légalement ; -- limiter leur utilisation (limitation) ; -- vous les envoyer dans un format structuré lisible par machine (portabilité) ; -- cesser de les utiliser sur la base de l’intérêt légitime (opposition). - -Vous pouvez retirer votre consentement à tout moment et saisir votre autorité de protection des données. Pour exercer ces droits, écrivez à [{email}](mailto:{email}). Nous répondons sous 30 jours. Dans le [portail de comptes]({account}), les réglages vous donnent aussi une copie des données de votre compte et suppriment le compte. Pour tout le reste, comme une adresse de newsletter ou un Mac sans compte, indiquez l’adresse e-mail, la clé de licence ou l’appareil concerné. Les données détenues par {merchant}, Google, Crisp ou GitHub sont aussi couvertes par leurs propres politiques. +### Droits régionaux {#regional-rights} **Résidents de Californie.** Le California Consumer Privacy Act vous donne le droit de savoir quelles informations personnelles nous collectons, d’en demander la suppression, de refuser leur vente et de ne pas être traité différemment pour avoir exercé ces droits. Nous ne vendons pas d’informations personnelles. ## Enfants {#children} -TablePro ne s’adresse pas aux enfants de moins de 16 ans et nous ne collectons pas sciemment leurs données personnelles. Si vous pensez qu’un enfant nous a fourni des données, contactez-nous et nous les supprimerons. +TablePro ne vise pas les moins de 16 ans et nous ne recueillons pas sciemment leurs données. Si vous pensez qu'un enfant nous en a donné, contactez-nous pour les supprimer. ## Sécurité {#security} -Le trafic entre applications, site, portail de comptes et serveur utilise HTTPS. Les comptes TablePro n’ont pas de mot de passe. Les liens et codes de connexion, les jetons qui maintiennent la connexion des applications et les jetons d’API d’équipe sont stockés sous forme de hachages. La tâche qui envoie par e-mail un lien et un code de connexion les garde en clair jusqu’à sa suppression : un jour après l’envoi de l’e-mail, ou 7 jours après l’abandon de l’envoi. Tous deux cessent de fonctionner 15 minutes après votre demande. L’accès à nos systèmes est limité à {publisherName} et aux prestataires indiqués dans [Qui reçoit les données](#sharing). Aucun système n’est parfaitement sécurisé. Pour signaler une vulnérabilité, consultez la [page Sécurité](/fr/security#report) ou écrivez à [{email}](mailto:{email}). - -## Modification de cette politique {#changes} - -Lorsque cette politique change, nous la mettons à jour ici avec une nouvelle date de « Dernière mise à jour » et, si la loi l’exige, vous en informons directement. +Nos services utilisent HTTPS. Les comptes n'ont pas de mots de passe. Identifiants de connexion et jetons API d'équipe sont hachés, sauf la tâche e-mail temporaire en [conservation](#retention). L'accès est limité à {publisherName} et aux [destinataires](#sharing). Aucun système n'est parfaitement sûr. Signalez les failles via la [page sécurité](/fr/security#report). -## Contact {#contact} +## Modifications {#changes} -Pour toute question sur la confidentialité ou cette politique, écrivez à [{email}](mailto:{email}). +La date de mise à jour figure sur la page. Les versions antérieures restent dans l'[historique du dépôt web public]({webGithub}/commits/main/resources/data/legal/en/privacy.md). Nous actualisons avant un nouvel usage, avertissons directement lorsque la loi l'exige et recueillons à nouveau le consentement si nécessaire. diff --git a/resources/data/legal/id/privacy.md b/resources/data/legal/id/privacy.md index 92e957c9..ec35b93d 100644 --- a/resources/data/legal/id/privacy.md +++ b/resources/data/legal/id/privacy.md @@ -1,281 +1,228 @@ --- title: Kebijakan privasi -description: Data yang dikumpulkan aplikasi, situs web, dan portal akun TablePro, tujuan pengirimannya, lama penyimpanannya, serta cara mengubah atau menghapusnya. -updatedAt: "2026-11-04" +description: Data yang dikumpulkan TablePro, tujuan, penerima, masa penyimpanan, pilihan dan hak Anda. +updatedAt: "2026-11-05" --- -Kebijakan ini mencakup TablePro untuk Mac, TablePro untuk iPhone dan iPad, situs web di tablepro.app, dokumentasi di docs.tablepro.app, dan portal akun di account.tablepro.app. Kebijakan ini menjelaskan data yang benar-benar dikirim dan disimpan oleh masing-masing layanan saat ini. Kedua aplikasi bersifat sumber terbuka dengan lisensi AGPLv3, sehingga Anda dapat membaca kode yang mengirim data di bawah ini dalam [repositori TablePro]({github}). +Kebijakan ini mencakup TablePro untuk Mac, Linux, iPhone dan iPad; tablepro.app; docs.tablepro.app; serta layanan akun, pembelian, dukungan dan newsletter. [Inventaris teknis](https://docs.tablepro.app/security/privacy) memuat kolom, tujuan jaringan dan kontrol. Kode ada di [repositori publik]({github}). ## Ringkasan {#summary} -- Aplikasi Mac mengirim data penggunaan. Fitur ini aktif secara bawaan dan dapat Anda nonaktifkan. Aplikasi iPhone dan iPad hanya mengirim laporan penggunaan jika Anda mengaktifkannya. -- Jika Anda masuk ke akun TablePro atau mengaktifkan kunci lisensi, aplikasi Mac mendaftarkan Mac Anda di server kami, termasuk namanya, dan memeriksa paket Anda secara berkala. -- Kueri yang Anda jalankan, hasilnya, dan kata sandi Anda tidak dikirim ke TablePro. Pengecualiannya adalah data yang Anda pilih untuk dipublikasikan ke Team Library: pengaturan koneksi (tanpa kata sandi) dan kueri tersimpan. -- Permintaan AI dikirim langsung dari aplikasi Mac ke penyedia AI yang Anda konfigurasikan, bukan kepada kami. -- Mulai versi yang menghadirkan akun TablePro, aplikasi Mac mengirim data penggunaannya langsung ke PostHog, layanan analitik produk kami di UE, yang kemudian menerima alamat IP Mac Anda dan memperkirakan lokasi kasar darinya. Versi sebelumnya serta aplikasi iPhone dan iPad mengirim laporan penggunaan ke server kami, yang meneruskannya ke PostHog tanpa alamat IP-nya. Akun Anda menyimpan log perubahan yang dibuat padanya, seperti proses masuk dan perangkat baru, beserta alamat IP dan browser dari permintaan yang membuat setiap perubahan. -- Situs web menghitung tampilan halaman menggunakan Cloudflare Web Analytics, yang tidak memasang cookie. Situs juga memuat Google Analytics, yang hanya memasang cookie jika Anda mengizinkannya. Setiap halaman juga memuat layanan chat langsung kami, Crisp, yang memasang cookie sendiri. -- Portal akun di account.tablepro.app tidak memuat skrip analitik apa pun. Portal menetapkan satu cookie agar Anda tetap masuk, dan di Pengaturannya Anda dapat mengunduh data akun atau menghapus akun. -- Amazon SES, layanan dari Amazon Web Services, mengirim email kami. Buletin mencatat kapan setiap penerima membukanya dan tautan mana di dalamnya yang mereka klik. -- Pembelian dijual oleh {merchant}, merchant of record kami. +Kueri dan hasil biasa berjalan antara perangkat dan database Anda. Data penggunaan tidak memuat SQL, baris atau kredensial. Konten yang Anda terbitkan ke Team Library, kirim ke dukungan, atau bagikan ke AI dan alat eksternal diterima oleh pihak tersebut. -## Penanggung jawab {#controller} - -{publisherName}, pengembang perorangan di {publisherCity}, {publisherCountry}, menerbitkan aplikasi TablePro dan situs web ini, serta bertanggung jawab atas data pribadi yang dijelaskan di sini (pengendali data). Untuk pertanyaan tentang kebijakan ini atau data Anda, kirim email ke [{email}](mailto:{email}). - -## TablePro untuk Mac {#mac-app} - -### Data penggunaan {#mac-usage-report} - -Mulai versi yang menghadirkan akun TablePro, aplikasi Mac mengirim data penggunaan langsung ke PostHog, layanan analitik produk kami, di `eu.i.posthog.com` di UE. **Fitur ini aktif secara bawaan, dan aplikasi tidak meminta izin sebelum mengirim peristiwa pertama.** Untuk menonaktifkannya, buka **Settings > General > Privacy** dan hapus centang **Share usage data**. Selama pengaturan itu nonaktif, aplikasi tidak mengirim apa pun ke PostHog, dan jika aplikasi dimulai saat pengaturan itu nonaktif, pustaka PostHog sama sekali tidak dijalankan. - -Aplikasi mengirim peristiwa: - -- sekali sehari selama aplikasi berjalan, beserta nama jenis database dari koneksi yang sedang terbuka (misalnya "PostgreSQL") dan jumlah koneksi yang terbuka; -- untuk percobaan koneksi pertama, koneksi pertama yang berhasil, dan kueri pertama Anda, masing-masing beserta jenis database-nya; -- saat aplikasi menunjukkan bahwa fitur berbayar tidak tersedia, sekali per fitur setiap kali aplikasi dijalankan, beserta fitur dan alasannya, misalnya Anda belum masuk; -- saat Anda mengklik untuk upgrade, beserta tempat di aplikasi yang Anda klik; -- saat Anda masuk, beserta caranya (di aplikasi, dengan kunci lisensi, atau dengan menukar kunci yang sudah ada di Mac Anda), dan saat Anda keluar. +Data penggunaan Mac dan Linux aktif secara bawaan, dengan sakelar untuk mematikannya. Aplikasi iPhone/iPad yang dirilis hanya mengirim setelah persetujuan. Analitik langsung dapat dikaitkan dengan akun dan pembelian. Mematikannya tidak menghentikan permintaan akun atau analitik server. -Pustaka PostHog menambahkan ke setiap peristiwa model Mac Anda, ukuran layar, zona waktu dan bahasa, apakah Mac terhubung lewat Wi-Fi, versi, build, dan bundle ID aplikasi, versi macOS, versi pustaka, serta ID sesi acak. PostHog menerima alamat IP Mac Anda pada setiap permintaan dan memperkirakan lokasi kasar darinya, seperti negara dan kota. Selama pengaturan itu aktif, pustaka juga mengambil pengaturan dan feature flag-nya dari PostHog (`/config` dari `eu-assets.i.posthog.com` dan `/flags` dari `eu.i.posthog.com`). +Situs mengukur kunjungan dan memuat Crisp di setiap halaman. Cookie Google Analytics memerlukan pilihan Anda. Newsletter mengukur pembukaan dan klik. Menghapus akun menyisakan beberapa catatan, termasuk di PostHog dan Crisp. Baca [penyimpanan](#retention) dan [hak](#rights). [Pengendali](#controller) menangani permintaan meski tanpa akun. -Sebelum Anda masuk, peristiwa membawa ID acak yang dibuat pustaka di Mac Anda, dan PostHog tidak membuat profil orang untuk ID itu. Setelah Anda masuk, peristiwa membawa ID akun Anda, dan profil akun itu di PostHog menyimpan versi aplikasi dan macOS, arsitektur prosesor, bahasa aplikasi, dan lokasi kasar yang diperkirakan PostHog dari alamat IP. Ini mengaitkan instalasi Anda dengan proses masuk dan pembelian Anda. Keluar dari akun memulai ID acak baru. Data penggunaan aplikasi tidak lagi memuat ID mesin, status aktivasi lisensi, atau pengaturan pembaruan Anda. + -Versi sebelum akun TablePro mengirim laporan penggunaan ke `api.tablepro.app` sebagai gantinya, dengan pengaturan yang sama, sekitar sepuluh detik setelah dimulai, lalu sekali sehari selama aplikasi berjalan. Laporan berisi: +## Penanggung jawab {#controller} -- ID mesin: hash SHA-256 dari UUID perangkat keras Mac Anda (UUID itu sendiri tidak pernah dikirim); -- platform, versi aplikasi, versi macOS, arsitektur prosesor, dan bahasa aplikasi; -- nama jenis database dari koneksi yang sedang terbuka (misalnya "PostgreSQL") dan jumlah koneksi yang terbuka; -- status aktivasi lisensi; -- tanggal dan waktu percobaan koneksi pertama serta koneksi pertama yang berhasil; -- pengaturan pembaruan Anda (cara pembaruan dipasang dan frekuensi pemeriksaan aplikasi). Server kami membuang data ini saat laporan diterima. +{publisherName}, pengembang perorangan di {publisherCity}, {publisherCountry}, adalah pengendali data pribadi yang dijelaskan di sini. Hubungi [{email}](mailto:{email}). Kami tidak memiliki petugas perlindungan data. Untuk tim, kami mengendalikan catatan akun, undangan dan layanan. Konten Team Library diproses menurut instruksi tim; tim menentukan isi dan akses. -Baik peristiwa maupun laporan tidak pernah berisi nama host, nama pengguna, kata sandi, kueri, atau baris data. + -Server kami tidak menyimpan laporan maupun alamat IP asalnya. Server meneruskan laporan ke PostHog sebagai peristiwa tentang ID mesin, beserta negara yang diberikan Cloudflare untuk koneksi Anda, tanpa kunci lisensi atau alamat IP Anda, dan PostHog tidak membuat profil orang darinya. Karena akun Anda mencatat perangkatnya dengan ID mesin yang sama, laporan dari Mac tempat Anda masuk atau mengaktifkan lisensi dapat dihubungkan ke akun Anda. +## Data dan tujuan {#data-use} -### Pemeriksaan lisensi {#mac-license} +Untuk EEA dan Inggris, dasar hukum disebut per tujuan: kontrak (Pasal 6(1)(b)), kepentingan sah (6(1)(f)), persetujuan (6(1)(a)) atau kewajiban hukum (6(1)(c)). Kami tidak membuat keputusan otomatis dengan dampak hukum atau dampak penting serupa. -Versi sebelum akun TablePro hanya menghubungi server lisensi kami setelah Anda memasukkan kunci lisensi. Versi tersebut melakukannya saat lisensi diaktifkan, saat dimulai jika sudah berlalu {revalidateDays} hari atau lebih sejak pemeriksaan terakhir, dan setiap {revalidateDays} hari setelahnya. Setiap pemeriksaan mengirim: + -- kunci lisensi Anda; -- ID mesin yang dijelaskan di [Data penggunaan](#mac-usage-report); -- nama Mac Anda, sebagaimana diatur di macOS (sering kali memuat nama Anda sendiri); -- versi aplikasi dan versi macOS. +### Akun dan perangkat {#account} -Penonaktifan Mac hanya mengirim kunci lisensi dan ID mesin. +Penggunaan lokal gratis tidak memerlukan akun. Layanan akun memerlukan email. Kami menyimpan nama, bahasa, metode masuk, lisensi, pesanan, perangkat, peran dan seat tim. Pendaftaran perangkat Mac/Linux mengirim ID mesin, nama, platform dan versi aplikasi/sistem. Nama perangkat bisa memuat nama Anda. Ini terpisah dari data penggunaan. Tujuan dan dasarnya ialah menyediakan akun dan paket berdasarkan kontrak. -Server kami menyimpan setiap Mac yang diaktifkan sebagai perangkat dari akun pemilik lisensi: ID mesin dan namanya, versi aplikasi dan macOS, serta kapan terakhir kali menghubungi server. Aktivasi dan penonaktifan Mac dicatat dalam log audit akun tersebut beserta alamat IP dan user agent permintaannya; pemeriksaan rutin tidak dicatat. Portal akun menampilkan perangkat Anda berdasarkan nama. Jika server kami tidak dapat dihubungi, fitur berbayar tetap berfungsi selama {graceDays} hari setelah pemeriksaan terakhir yang berhasil. +Masuk menggunakan tautan/kode email, passkey, Apple, GitHub atau Google. Catatan passkey memuat kunci publik, nama, status sinkronisasi dan tanggal penggunaan. Penyedia identitas memberikan ID dan email terverifikasi; Apple juga dapat memberikan nama. Token Apple dienkripsi dan dicabut saat dilepas atau akun dihapus. Perubahan akun dicatat dengan IP dan user agent. Kepentingan sahnya ialah mengamankan akun dan menyelidiki penyalahgunaan. -### Akun TablePro {#mac-account} +[Portal akun]({account}) menyediakan perubahan profil/metode masuk, pengelolaan perangkat, ekspor JSON dan penghapusan akun. Anda tidak bisa menghapus akun saat memiliki tim dengan anggota lain. Penghapusan mengakhiri langganan tanpa pengembalian dana. [Penyimpanan](#retention) menjelaskan sisanya. -Mulai versi yang menghadirkan akun TablePro, Anda masuk ke aplikasi Mac dengan [akun TablePro](#account), bukan kunci lisensi. Aplikasi membuka halaman masuk di jendela browser, tempat Anda dapat mengetik kode dari email masuk. Setelah Anda masuk, aplikasi mendaftarkan Mac Anda sebagai perangkat akun Anda: ID mesin yang dijelaskan di atas, nama Mac Anda, platform, serta versi aplikasi dan macOS. Lalu aplikasi mengambil paket Anda dari server kami sebagai file bertanda tangan sekali sehari selama berjalan, dan file itu membuat fitur berbayar tetap berfungsi hingga {offlineDays} hari tanpa server kami. Token yang membuat aplikasi tetap masuk hanya disimpan di Rantai Kunci macOS pada Mac itu dan tidak pernah disinkronkan lewat iCloud Keychain, meskipun sinkronisasi kata sandi aktif. +### Pembelian {#purchases} -Kunci lisensi yang sudah ada di Mac Anda ditukar satu kali dengan proses masuk ke akun pemiliknya, lalu dihapus dari Mac. Anda dapat menghapus perangkat di aplikasi atau di portal akun, dan saat sebuah Mac pertama kali memakai lisensi Anda, kami memberi tahu Anda melalui email. +{merchant} (Polar Software, Inc.) adalah merchant of record dan penjual kembali. Mereka mengumpulkan nama, email, alamat tagihan dan pembayaran menurut ketentuannya. Mereka menangani pembayaran, pajak, kuitansi dan sengketa. Kami tidak pernah menerima detail kartu lengkap. -### Team Library {#library} +Kami mengirim pembelian, bahasa, sumber kunjungan dan IP untuk checkout, pajak dan mata uang. Kami menerima detail pembeli/tagihan, jumlah, ID pesanan/langganan, perpanjangan, pembatalan dan pengembalian dana. Pesanan menyimpan email, negara, jumlah dan atribusi. Pembelian tamu membuat akun belum terverifikasi untuk email itu bila belum ada. Alasan/komentar pembatalan diteruskan ke {merchant} dan disimpan pada langganan. Pemrosesan memenuhi kontrak; catatan pajak/akuntansi memenuhi kewajiban hukum. Tanpa data wajib, checkout tidak selesai. Kelola tagihan di [portal {merchant}]({portal}); baca [ketentuan](/id/terms) dan [pengembalian dana](/id/refund-policy). -Team Library merupakan bagian dari lisensi Team. Saat Anda memilih **Share > Publish to Team Library…** pada koneksi atau **Publish Saved Queries to Team…** di sidebar Favorites, aplikasi Mac mengunggah data yang Anda publikasikan ke server kami: +### Tim dan konten bersama {#library} -- pengaturan koneksi: host, port, nama database, nama pengguna, pengaturan SSH dan SSL, opsi driver, perintah awal, pengaturan Tunnel Command, tingkat Safe Mode, dan pengaturan AI, tetapi tidak pernah kata sandi; -- kueri tersimpan: nama, teks SQL, kata kunci, dan foldernya. +Pengundang memberikan email, peran dan seat. Pemilik/admin melihat nama/email, undangan dan perubahan tim termasuk alamat undangan, tetapi bukan IP atau browser audit. Anggota melihat tim, paket, jumlah seat dan peran sendiri. Catatan digunakan untuk layanan tim berdasarkan kontrak. -Mulai versi yang menghadirkan akun TablePro, aplikasi Mac setiap anggota yang memiliki seat mengunduh perubahan pustaka saat dimulai, setiap 15 menit, dan setelah setiap publikasi. Publikasi hanya mengirim yang berubah dan hanya menghapus item yang dipublikasikan Mac itu dan tidak lagi dimilikinya. Jika orang lain sudah mengubah suatu item lebih dulu, aplikasi menanyakan salinan mana yang disimpan, dan menampilkan siapa yang terakhir mengubah setiap kueri tim. Versi sebelum akun TablePro mengunduh pustaka saat dimulai, paling sering sekali seminggu, dan Mac yang memublikasikannya mengunduh ulang segera setelahnya. Publikasi baru dari versi tersebut menggantikan publikasi Anda sebelumnya. Bagian Library di portal akun menampilkan setiap item, beserta nama orang yang terakhir mengubahnya, kepada anggota yang dapat membaca pustaka, dan memungkinkan pemilik dan admin menghapus item. Item yang dihapus tetap ada di server kami dengan versi terakhirnya agar setiap Mac dapat menyinkronkan penghapusannya. Jika lisensi berakhir, pustaka tetap berada di server kami sampai pemilik tim menghapus tim, yang sekaligus menghapus pustakanya. +Di Mac, menerbitkan ke Team Library mengirim pengaturan koneksi dan kueri tersimpan ke server untuk anggota berizin. Isinya host, port, database, nama pengguna, SSH/SSL, perintah awal, Tunnel Command dan AI. Kueri memuat nama, SQL, kata kunci dan folder. Kolom kata sandi dikecualikan; rahasia dalam SQL atau teks bebas tidak dihapus. Pustaka menunjukkan pengubah terakhir. Keluar dari tim tidak menghapus kontennya. Lihat [waktu penghapusan](#retention). Team Catalog menulis file ke folder bersama pilihan Anda. -Team Catalog, fitur Team lainnya, menulis file koneksi tanpa kata sandi ke folder bersama yang Anda pilih. Data ini tidak melewati server kami. +### Analitik penggunaan dan layanan {#analytics} -### Pembaruan dan plugin {#mac-updates} +Kepentingan sah kami ialah memahami penggunaan, memperbaiki masalah dan mengukur pembelian. Mac/Linux mengirim data di [Aplikasi](#apps). Server mengirim peristiwa masuk, pembelian, perangkat dan tim ke PostHog dengan ID akun, tanpa nama/email. ID menghubungkan aplikasi dan layanan. Sakelar menghentikan peristiwa aplikasi, bukan permintaan wajib atau peristiwa server. Gunakan [hak](#rights) untuk menolak atau meminta penghapusan. -- **Pemeriksaan pembaruan.** Sekali sehari aplikasi Mac mengunduh feed pembaruan dari GitHub (`raw.githubusercontent.com`). Permintaan tidak mengirim informasi tentang Mac selain data yang dibawa setiap permintaan web: alamat IP Anda dan user agent dengan versi aplikasi. Untuk menonaktifkannya, buka **Settings > General > Software Update** dan hapus centang **Automatically check for updates**. Pembaruan itu sendiri diunduh dari GitHub. -- **Katalog plugin.** Saat aplikasi dimulai dan saat Anda membuka pengaturan plugin, aplikasi mengunduh daftar driver dan tema yang tersedia dari GitHub. Tidak ada pengaturan untuk menonaktifkannya. Driver dan tema yang Anda pasang diunduh dari GitHub, dan peramban plugin membaca jumlah unduhan dari API GitHub. +### Newsletter dan email {#newsletter} -GitHub menerima alamat IP Anda bersama permintaan ini. Pernyataan privasi GitHub berlaku untuk permintaan tersebut. +Amazon SES mengirim kode, undangan, pemberitahuan dan newsletter. Email layanan memenuhi layanan yang diminta. Pendaftaran newsletter baru memerlukan konfirmasi dan persetujuan. Kami menyimpan alamat, bahasa, tanggal pendaftaran/konfirmasi, IP, user agent, halaman dan versi persetujuan. -### Layanan yang Anda pilih untuk digunakan {#mac-third-parties} +Setiap newsletter mengukur pembukaan/klik setiap penerima melalui gambar dan `links.news.tablepro.app`. Amazon SES menerima waktu, tautan, IP dan user agent lalu meneruskannya ke server untuk menghitung. Memblokir gambar menghentikan pengukuran pembukaan, bukan klik. Tautan berhenti berlangganan dan email tidak dilacak. Tidak ada sakelar pengukuran tersendiri. Berhenti lewat newsletter atau kontrol satu klik aplikasi email; tidak ada email konfirmasi setelahnya. Mendaftar lagi perlu konfirmasi. Pantulan permanen dan laporan spam menghentikan pengiriman. Minta penghapusan alamat lewat [kontak](#controller). -Aplikasi Mac hanya mengirim data ke layanan berikut saat Anda mengonfigurasikannya, secara langsung dan tidak pernah melalui TablePro: +Daftar lama memindahkan semua alamat yang belum berhenti, sudah dikonfirmasi atau belum, termasuk pembeli, pemegang lisensi dan pendaftar beta. Alamat berhenti tetap begitu; pantulan/keluhan masuk daftar penekanan. Lihat [penyimpanan](#retention). -- **Database, server SSH, dan proxy Anda**, yang menerima apa pun yang dikirim oleh koneksi Anda. -- **Penyedia AI.** Saat Anda menambahkan penyedia dan menggunakan asisten AI atau saran inline, permintaan dikirim ke penyedia tersebut atau ke model yang berjalan di Mac Anda. Secara bawaan, permintaan mencakup jenis dan nama database, definisi tabel dan kolom dari skema, serta kueri saat ini. Baris hasil hanya dikirim jika Anda mengaktifkan opsi tersebut. Ketentuan penyedia berlaku. Menambahkan GitHub Copilot akan mengunduh server bahasanya dari npm, dan pengaturan "Send telemetry to GitHub" aktif pada awalnya. -- **Layanan masuk**: Microsoft Entra ID, Google, Amazon Web Services, dan Cloudflare Access, saat koneksi menggunakannya. -- **Apple Maps**, yang menyediakan ubin peta saat Anda menampilkan hasil pada peta. -- **DuckDB**, yang menyediakan ekstensi DuckDB saat kueri pertama kali menggunakannya. -- **Klien MCP.** Server MCP nonaktif secara bawaan. Server dimulai saat Anda mengaktifkannya atau saat klien MCP yang Anda konfigurasikan menjalankan bridge TablePro atau memasangkannya, dan hanya mendengarkan pada Mac Anda (127.0.0.1). Klien AI yang Anda hubungkan, seperti Claude atau Cursor, menerima hasil yang dimintanya dan mengirimkannya ke layanannya sendiri berdasarkan ketentuannya sendiri. -- **Server MCP yang Anda tambahkan.** Sesi AI mengirim panggilan alat yang Anda setujui, beserta argumennya, ke server tersebut. +### Dukungan {#support} -### Data yang tetap berada di Mac Anda {#mac-local} +Pesan, lampiran dan diagnostik diterima kami dan layanan pilihan Anda. Isinya dapat mencakup data atau rahasia yang Anda sertakan. Crisp menerima IP, browser dan halaman saat chat dimuat di situs/portal. IP disimpan bila Anda memulai percakapan. Kami memberikan bahasa dan, di portal setelah masuk, email/ID akun. Chat pada setiap halaman melayani kepentingan sah untuk dukungan. Percakapan yang Anda mulai berdasarkan persetujuan. -Kata sandi disimpan di Rantai Kunci macOS. Daftar koneksi, riwayat kueri, Query Insights, snapshot Data Rewind, pengaturan, dan tab terbuka disimpan di Mac Anda. Aplikasi merujuk kunci SSH di lokasi aslinya pada disk dan tidak menyalinnya. Versi sebelum akun TablePro tidak berisi pelapor kerusakan atau pustaka analitik pihak ketiga. Mulai versi yang menghadirkan akun TablePro, aplikasi menyertakan pustaka PostHog, yang mengirim data penggunaan yang dijelaskan di atas. Pustaka itu berisi pelapor kerusakan PostHog, yang dibiarkan nonaktif oleh aplikasi, sehingga tidak ada laporan kerusakan yang dikirim. Pustaka menyimpan ID acaknya, pengaturannya, dan peristiwa yang belum terkirim dalam file di bawah `~/Library/Application Support/com.TablePro`. +## Aplikasi Anda {#apps} -## TablePro untuk iPhone dan iPad {#ios-app} +| Aplikasi dan versi | Data penggunaan | Kontrol | +| --- | --- | --- | +| Mac 0.86.0, mulai 0.86.0-beta.1 | Langsung ke PostHog; aktif | Settings > General > Privacy | +| Linux mulai 0.1.0-beta.1 | Langsung ke PostHog; aktif | Preferences > General > Privacy | +| iPhone/iPad yang dirilis | Laporan lewat server; mati sampai disetujui | Settings > Privacy | -**Tidak ada data yang dikirim ke TablePro kecuali Anda mengaktifkan Share Usage Data**, saat aplikasi pertama kali dimulai atau kemudian di **Settings > Privacy**. Jika diaktifkan, aplikasi mengirim laporan sekali sehari ke server yang sama dengan versi aplikasi Mac sebelum akun TablePro, dan server kami meneruskannya ke PostHog dengan cara yang sama, tanpa alamat IP-nya. Laporan berisi hash SHA-256 dari pengenal yang diberikan Apple kepada aplikasi di perangkat Anda, platform, versi aplikasi dan iOS, arsitektur prosesor, bahasa aplikasi, nama jenis database dari koneksi yang sedang terbuka, jumlah koneksi yang terbuka, serta tanggal dan waktu percobaan koneksi pertama, koneksi pertama yang berhasil, dan kueri pertama. Laporan tidak berisi pengaturan pembaruan dan selalu menyatakan tidak ada lisensi yang diaktifkan karena aplikasi tidak memiliki keduanya. + -Aplikasi tidak melakukan pemeriksaan lisensi, pemeriksaan pembaruan, atau permintaan plugin. Selain laporan opsional tersebut, aplikasi hanya terhubung ke database dan server SSH Anda, iCloud Apple jika Anda mengaktifkan iCloud Sync, serta Microsoft saat koneksi SQL Server masuk menggunakan Microsoft Entra ID. +### Data di perangkat {#local-data} -Di perangkat, kata sandi dan kunci SSH yang ditempel disimpan di Rantai Kunci, dan sertifikat tidak pernah disinkronkan. Riwayat kueri tetap berada di perangkat. Koneksi Anda ditambahkan ke indeks Spotlight di perangkat agar dapat dicari. Saat kueri berjalan, Live Activity menampilkan SQL pada Layar Terkunci dan Dynamic Island yang diperluas, kecuali Anda mengaktifkan **Settings > Live Activities > Hide Query**. +Daftar koneksi, riwayat, log lokal dan tab tetap di perangkat kecuali Anda memilih berbagi. Lalu lintas database menuju server pilihan. Kata sandi memakai penyimpanan kredensial platform. Mac merujuk kunci SSH di lokasi disk. Analitik tidak memuat host, pengguna, SQL, baris atau kredensial. [Integrasi](#integrations), Team Library dan dukungan memiliki pengecualian yang dijelaskan. -Jika Anda membagikan analitik kepada pengembang aplikasi melalui pengaturan iPhone atau iPad, Apple dapat mengirim laporan kerusakan dan statistik penggunaan kepada kami melalui App Store Connect. Aplikasi tidak memiliki pelapor kerusakan atau pustaka analitik pihak ketiga sendiri. +### Mac {#mac-app} -## iCloud Sync dan Handoff {#icloud} +Analitik langsung dan perilaku akun ini dimulai pada 0.86.0, termasuk 0.86.0-beta.1. Masuk mendaftarkan Mac dan mengambil paket. Token akun tetap di Rantai Kunci Mac itu, tidak pernah disinkronkan ke iCloud Rantai Kunci. Kunci lisensi yang ada ditukar menjadi sesi masuk lalu dihapus lokal. -iCloud Sync nonaktif sampai Anda mengaktifkannya, baik di Mac maupun iPhone dan iPad. Saat aktif, data dikirim ke database pribadi dalam akun iCloud Anda sendiri (kontainer `iCloud.com.TablePro`). TablePro tidak dapat membacanya. +#### Data penggunaan Mac {#mac-usage-report} -- Di Mac, Anda memilih data yang disinkronkan: koneksi, grup dan tag, pengaturan, profil SSH, profil kredensial (nama dan nama penggunanya, tanpa kata sandi), tabel dan database favorit, kueri tersimpan (termasuk teks SQL), serta folder tabel. Data koneksi mencakup host, port, nama pengguna, nama database, pengaturan SSH dan SSL, perintah awal, skrip sebelum koneksi, dan aturan AI. Riwayat kueri, snapshot Data Rewind, dan sumber kata sandi tidak pernah disinkronkan. -- iPhone dan iPad menyinkronkan koneksi, grup, dan tag. -- Kata sandi hanya disinkronkan jika Anda juga mengaktifkan **Passwords** di Sync Categories pada Mac atau **Sync Passwords** pada iPhone dan iPad, menggunakan iCloud Keychain. Di Mac, opsi ini juga menyinkronkan rahasia lain yang disimpan TablePro di Rantai Kunci, seperti kunci penyedia AI dan kunci lisensi. Mulai versi yang menghadirkan akun TablePro, kunci lisensi dihapus begitu ditukar dengan sesi masuk, dan token yang membuat aplikasi tetap masuk tidak pernah disinkronkan. +Aktif secara bawaan, tanpa bertanya sebelum peristiwa pertama. Matikan **Share usage data** di **Settings > General > Privacy**. Memulai saat mati tidak menjalankan pustaka PostHog. Tidak ada laporan crash otomatis; perekam crash PostHog dinonaktifkan. -Di Mac, iCloud Sync merupakan bagian dari lisensi Pro atau Team. Di iPhone dan iPad, fitur ini gratis. +Peristiwa mencakup penggunaan harian dengan jenis/jumlah koneksi terbuka, percobaan, keberhasilan dan kueri pertama menurut jenis database, pembatasan fitur berbayar beserta alasan, klik upgrade, metode masuk/keluar dan permintaan pembelian lisensi beserta jawaban. PostHog menambah konteks perangkat, layar, jaringan, sesi, aplikasi dan sistem. IP diterima untuk memperkirakan lokasi. Sebelum masuk, ID instalasi acak tanpa profil orang. Sesudah masuk, ID akun dengan profil versi, arsitektur, bahasa dan lokasi. Keluar membuat ID baru. Lihat [kolom dan tujuan](https://docs.tablepro.app/security/privacy#usage-data). -Handoff mengirim ID koneksi yang terbuka dan nama tabel yang terbuka antarperangkat Anda sendiri melalui Apple. Jika tidak ada tabel terbuka, Handoff mengirim nama koneksi, atau host-nya jika koneksi tidak memiliki nama. Handoff tidak mengirim pengaturan atau kredensial. +#### Pembaruan dan plugin {#mac-updates} -## Situs web {#website} +Feed pembaruan/katalog berasal dari GitHub melalui updates.tablepro.app. Unduhan dan jumlahnya juga mencapai GitHub. Permintaan memuat IP/user agent. Matikan **Automatically check for updates** di **Settings > General > Software Update** untuk menghentikan pemeriksaan otomatis. Katalog tidak memiliki sakelar. [Detail teknis](https://docs.tablepro.app/security/privacy#update-checks) mencakup feed lama. -**Hosting.** Situs web dan portal akun berjalan di server kami, di belakang Cloudflare. Seperti server web lainnya, keduanya menerima alamat IP Anda, user agent peramban, dan alamat setiap halaman yang Anda minta. +#### Mac versi lama {#mac-license} -**Cloudflare Web Analytics.** Cloudflare menambahkan skrip Web Analytics ke halaman situs web; portal akun tidak menjalankannya. Peramban Anda memuatnya dari `static.cloudflareinsights.com`, dan skrip melaporkan setiap tampilan halaman ke Cloudflare: halaman, situs yang menautkannya, waktu pemuatan halaman, serta peramban, sistem operasi, dan jenis perangkat Anda. Cloudflare menambahkan negara asal koneksi Anda. Skrip tidak memasang cookie atau menyimpan apa pun di peramban, dan Cloudflare menyatakan tidak menggunakan alamat IP atau detail peramban untuk mengidentifikasi Anda melalui fingerprinting. Cloudflare menampilkan jumlah keseluruhan kepada kami, seperti tampilan per halaman atau per negara, bukan catatan setiap pengunjung. Dasar hukum: kepentingan yang sah. +Sebelum 0.86.0, sakelar aktif yang sama mengontrol laporan ke server. Isinya ID mesin hash, detail sistem/aplikasi, jenis/jumlah koneksi, status lisensi dan tanggal percobaan/keberhasilan pertama. Pengaturan pembaruan yang dikirim dibuang. Server kini meneruskan ke PostHog dengan negara Cloudflare, tanpa IP/kunci atau profil orang. ID dapat menghubungkan perangkat akun. Tidak ada riwayat heartbeat khusus sekarang, tetapi job, log, backup dan arsip lama bisa menyimpan data. Lihat [penyimpanan](#retention). -**Google Analytics.** Situs memuat Google Analytics pada setiap halaman dalam Consent Mode. Sampai Anda memilih **Izinkan** pada pertanyaan cookie, Google Analytics tidak memasang cookie dan hanya mengirim sinyal tanpa cookie ke Google untuk setiap halaman, tanpa pengenal yang disimpan di perangkat Anda. Jika diizinkan, Google Analytics memasang cookie `_ga` dan `_ga_` serta mengukur kunjungan Anda, seperti halaman yang dilihat, klik unduhan, dan awal proses pembelian. Penyimpanan iklan, personalisasi iklan, dan data pengguna iklan selalu ditolak. Google menyatakan bahwa Google Analytics 4 tidak mencatat atau menyimpan alamat IP. Properti Google Analytics kami menggunakan masa retensi bawaan Google: Google menghapus data tingkat pengguna dan tingkat peristiwa yang dikumpulkannya setelah 2 bulan. Laporan standar Google, yang berisi jumlah keseluruhan alih-alih pengenal, tidak terpengaruh. Dasar hukum: persetujuan Anda untuk cookie. +Versi lama menghubungi lisensi hanya setelah kunci dimasukkan. Pemeriksaan mengirim kunci, ID, nama Mac dan versi. Perangkat milik akun; aktivasi/deaktivasi diaudit dengan IP/user agent. [Inventaris](https://docs.tablepro.app/security/privacy#older-mac-reports) memuat kolom dan jadwal. -**Chat langsung.** Setiap halaman situs web dan portal akun menampilkan tombol chat dari penyedia kami, Crisp. Setelah halaman selesai dimuat, peramban memuat skrip Crisp dari `client.crisp.chat`, dan Crisp memasang cookie yang dijelaskan di [Cookie dan penyimpanan peramban](#cookies). Crisp menerima alamat IP Anda, detail peramban, alamat halaman yang Anda lihat, dan pesan yang Anda tulis, serta menyimpan alamat IP jika Anda memulai percakapan. Kami memberi tahu Crisp bahasa halaman. Saat Anda masuk ke portal akun, kami juga memberikan alamat email dan ID akun Anda kepada Crisp, yang menautkan percakapan ke akun Anda. Kami tidak memberikan informasi lain tentang Anda kepada Crisp. Crisp berbasis di Prancis. +### iPhone dan iPad {#ios-app} -**Skrip pembayaran.** Saat Anda mengarahkan penunjuk atau berpindah dengan tombol Tab ke tombol Beli, peramban memuat skrip pembayaran {merchant} dari jsDelivr (`cdn.jsdelivr.net`), yang menerima alamat IP dan detail peramban Anda. Halaman pembayaran itu sendiri baru dibuka dari {merchant} saat Anda mengeklik. +Aplikasi yang dirilis tidak melapor sebelum **Share Usage Data** diaktifkan saat awal atau di **Settings > Privacy**. Dasarnya persetujuan. Laporan harian lewat server ke PostHog tanpa IP, dengan negara Cloudflare dan tanpa profil. Isinya ID Apple hash, platform, versi, arsitektur, bahasa, jenis/jumlah koneksi dan tanggal percobaan, keberhasilan serta kueri pertama. Selalu melaporkan tanpa lisensi; tidak ada pengaturan pembaruan. Tidak memeriksa akun, lisensi, pembaruan atau plugin. -**Pemeriksaan buletin.** Saat Anda mulai mengisi formulir buletin, peramban Anda memuat Cloudflare Turnstile dari `challenges.cloudflare.com` untuk memeriksa bahwa yang mendaftar adalah manusia; Cloudflare menerima alamat IP dan detail peramban Anda. +Database/SSH, iCloud opsional dan masuk Microsoft Entra untuk SQL Server mengirim ke layanan itu. Kata sandi/kunci ditempel tetap di Rantai Kunci; sertifikat/riwayat lokal. Koneksi masuk indeks Spotlight lokal. Live Activity dapat menampilkan SQL di layar terkunci kecuali Hide Query aktif. Secara terpisah, Share With App Developers Apple bisa memberi kami crash/statistik lewat App Store Connect. Aplikasi tidak punya pelapor crash atau pustaka analitik pihak ketiga. Lihat [iOS](https://docs.tablepro.app/ios#privacy). -**Atribusi pembelian.** Saat Anda tiba di situs, peramban menyimpan catatan kunjungan pertama bernama `tablepro:attribution` dalam penyimpanan lokal selama 90 hari: sumber kunjungan (tag `ref` atau `utm_*` pada tautan yang Anda ikuti, atau situs yang menautkan ke sini), halaman tujuan, dan waktunya. Jika Anda memulai pembelian, catatan dikirim bersama permintaan pembayaran. Server kami meneruskan sumber kunjungan ke {merchant} sebagai metadata pembayaran, menyimpannya bersama pesanan setelah Anda membayar, dan mengirimkannya ke PostHog bersama pembayaran yang dimulai dan yang diselesaikan. Halaman tujuan dan waktunya tidak disimpan. +### Linux {#linux-app} -**Dokumentasi.** Dokumentasi di docs.tablepro.app dihosting oleh Mintlify, yang menerima alamat IP dan detail peramban Anda pada setiap halaman, dan halaman memuat fonnya dari Google Fonts. Bilah navigasi menampilkan jumlah bintang repositori, yang diambil peramban Anda dari API GitHub, sehingga GitHub juga menerima alamat IP dan detail peramban Anda. Permintaan itu tidak memasang cookie. Dokumentasi mengajukan pertanyaan cookie sendiri, karena tidak dapat membaca jawaban Anda di situs ini. Sampai Anda memilih **Allow** di sana, dokumentasi tidak memasang cookie dan tidak menyimpan ID pengunjung. Jika diizinkan, Google Analytics memasang cookie `_ga` dan `_ga_` serta mengukur kunjungan Anda ke dokumentasi, dan Mintlify menyimpan ID pengunjung acak, `mintlify_anonymous_id`, di penyimpanan lokal untuk menghitungnya. **Cookie settings** di footer dokumentasi mengubah jawaban Anda, dan menolak menghapus keduanya. Dasar hukum: persetujuan Anda. +Mulai 0.1.0-beta.1, masuk mendaftarkan perangkat menurut [akun](#account). Rahasia memakai keyring desktop. Pembaruan pengelola paket mengikuti distributor pilihan. Tidak ada laporan crash otomatis. -**Bahasa dan diskon regional.** Untuk menyarankan halaman dalam bahasa Anda saat browser tidak menyebut satu pun bahasa yang tersedia di situs, dan untuk menampilkan diskon regional yang akan diterapkan saat checkout, situs menanyakan kepada Cloudflare (`/cdn-cgi/trace`) dan server kami dari negara mana koneksi Anda berasal, dan dapat membaca zona waktu perangkat Anda. Kedua permintaan tersebut tidak membawa cookie, dan halaman tidak menyimpan apa pun dari jawabannya. Dasar hukum: kepentingan yang sah. +#### Data penggunaan Linux {#linux-usage-data} -Membaca situs tidak menetapkan cookie miliknya sendiri. Permintaan pendaftaran newsletter, checkout, dan kode diskon dari situs publik tidak menyertakan kredensial: permintaan tersebut tidak mengirim cookie portal akun maupun menerima cookie dari respons. Membuka halaman portal akun adalah tindakan terpisah: masuk di sana menetapkan cookie portal di bawah ini. Semua yang disimpan situs di browser tercantum dalam [Cookie dan penyimpanan browser](#cookies). +Aktif secara bawaan mulai 0.1.0-beta.1. Matikan Share usage data di Preferences > General > Privacy. Langsung ke PostHog EU: penggunaan harian dengan jenis/jumlah koneksi, percobaan/keberhasilan dan kueri pertama menurut jenis, masuk/keluar, klik upgrade, tampilan pertanyaan lisensi/jawaban Buy. Memuat ID instalasi/akun, versi, arsitektur, bahasa dan metadata SDK. PostHog menerima IP dan memperkirakan lokasi. Sebelum masuk ID acak tanpa profil; sesudahnya profil menghubungkan penggunaan/pembelian. Keluar mengatur ulang ID. Tanpa hostname, SQL, baris atau kredensial. Pendaftaran perangkat memuat hostname secara terpisah. -## Pembelian {#purchases} +Mematikan menghentikan kiriman baru. Permintaan berjalan bisa selesai. Tidak menghapus peristiwa lama atau menghentikan akun/analitik server. Lihat [penyimpanan](#retention), [hak](#rights) dan [inventaris](https://docs.tablepro.app/security/privacy#linux-usage-data). -Lisensi dijual oleh {merchant} (Polar Software, Inc.), merchant of record dan penjual kembali kami. Anda membeli dari {merchant} berdasarkan ketentuan pembeli dan kebijakan privasinya sendiri. {merchant} menerima pembayaran, menghitung dan membayar pajak penjualan atau PPN, mengirim kuitansi dan faktur, serta menangani masalah dan sengketa pembayaran. Layanan ini mengumpulkan nama, alamat email, alamat penagihan, dan detail pembayaran Anda. Kami tidak pernah melihat detail lengkap kartu Anda. + -Saat Anda memulai pembayaran, server kami memberi tahu {merchant} apa yang Anda beli, bahasa halaman tempat Anda membeli, sumber kunjungan Anda (lihat [Situs web](#website)), dan alamat IP Anda, yang digunakan {merchant} untuk menentukan pajak dan mata uang. Dari {merchant}, kami menerima alamat email, nama dan alamat penagihan sesuai yang Anda masukkan, produk yang dibeli, jumlah pembayaran, ID pesanan dan langganan, serta perubahan berikutnya seperti perpanjangan, pembatalan, dan pengembalian dana. Bersama setiap pesanan, kami menyimpan alamat email, negara penagihan, dan jumlahnya. +## Layanan pilihan {#integrations} -Pembelian tanpa masuk tercatat di akun TablePro milik alamat email yang Anda gunakan, yang dibuat jika belum ada dan tetap belum terverifikasi sampai Anda pertama kali masuk. Di [portal akun]({account}) Anda dapat mengubah siklus penagihan atau jumlah seat langganan, membatalkan atau melanjutkannya, dan meminta pengembalian dana. Saat Anda membatalkan, alasan yang Anda pilih dan komentar yang Anda tulis dikirim ke {merchant} dan disimpan bersama langganan. Kartu, faktur, data pajak, dan alamat penagihan ada di [portal pelanggan {merchant}]({portal}), yang dibukakan oleh portal akun untuk Anda. Pengembalian dana dijelaskan di [kebijakan pengembalian dana](/id/refund-policy), dan hak penggunaan lisensi dijelaskan di [ketentuan layanan](/id/terms). +Penyedia database, SSH dan proxy menerima lalu lintas pilihan langsung. Layanan masuk menerima autentikasi bila diatur. Apple Maps menyediakan peta; DuckDB ekstensi kueri. Helper koneksi/AI yang diunduh menghubungi penyedianya. Ketentuan mereka berlaku. -## Portal akun {#account} +### iCloud dan Handoff {#icloud} -[Portal akun]({account}) di account.tablepro.app adalah tempat Anda mengelola akun TablePro: lisensi, perangkat, penagihan, dan tim. Portal berjalan di server kami, di belakang Cloudflare, seperti situs web. +iCloud Sync opsional menyimpan koneksi, grup, tag, pengaturan, kueri dan profil SSH di CloudKit pribadi. Di Mac, sinkronisasi juga mencakup favorit dan folder tabel/database, serta nama profil kredensial, nama pengguna dan mode kata sandi, bukan kata sandi profil. Apple menghosting; kami tidak bisa membacanya. Sinkronisasi kata sandi terpisah, mati secara bawaan, memakai iCloud Rantai Kunci terenkripsi end-to-end. Di Mac termasuk rahasia lain yang ditulis di sana, misalnya kunci AI/lisensi lama. Token akun tidak pernah sinkron. Mac perlu Pro atau Team; iOS gratis. Handoff meneruskan ID koneksi dan nama tabel, atau nama/host bila tanpa tabel, antarperangkat Apple tanpa kredensial. Lihat [kontrol](https://docs.tablepro.app/features/icloud-sync). -**Akun Anda.** Sebuah akun dimiliki satu orang dan dikenali dari alamat email. Akun berisi alamat itu, nama dan bahasa yang Anda tetapkan, metode masuk Anda, perangkat yang masuk ke akun, lisensi dan pesanan Anda, tim tempat Anda bergabung beserta peran dan seat Anda, dan log audit perubahan yang dibuat padanya, seperti proses masuk, perangkat baru, dan perubahan tim, beserta alamat IP dan browser dari permintaan yang membuat setiap perubahan. Email kami sampai kepada Anda dalam bahasa akun Anda. +### AI dan alat eksternal {#ai-tools} -**Masuk.** Kami mengirim tautan dan kode 6 digit melalui email: tautan berfungsi sekali, kode dapat dicoba 5 kali, dan keduanya kedaluwarsa setelah 15 menit. Anda juga dapat menambahkan passkey; untuk masing-masing kami menyimpan kunci publiknya, nama yang Anda berikan, apakah passkey itu tersinkron di antara perangkat Anda, serta kapan ditambahkan dan terakhir digunakan. Atau Anda dapat masuk dengan Apple, GitHub, atau Google: penyedia memberi kami ID untuk Anda dan alamat email Anda yang terverifikasi, dan Apple juga nama Anda pada kali pertama. Kami menyimpan ID dan alamat itu bersama akun Anda, dan untuk Apple sebuah token yang kami simpan terenkripsi dan kami cabut di Apple saat Anda memutuskan Apple atau menghapus akun. Jika alamat dari penyedia milik akun yang sudah ada, kami mengirim tautan dan kode ke akun itu untuk dikonfirmasi sebelum menautkannya, kecuali jika alamat itu dikelola Google (Gmail atau Google Workspace). +AI mengirim langsung ke penyedia atau model lokal pilihan. Prompt, skema, SQL dan percakapan dapat dikirim. Melampirkan baris grid mati secara bawaan. Hasil alat kueri AI berizin juga masuk percakapan dan penyedia, terlepas dari sakelar lampiran. GitHub Copilot mengunduh helper dari npm dan memulai dengan Send telemetry to GitHub aktif. -**Tim Anda.** Saat Anda mengundang seseorang ke tim, kami menyimpan alamat email, peran, dan apakah undangan mencakup seat, lalu mengirim tautan yang berlaku 7 hari. Pemilik dan admin melihat anggota tim beserta nama dan alamat email mereka, undangan, dan log audit tim, yang menunjukkan siapa mengubah apa di tim, termasuk alamat yang diundang, tetapi tidak pernah alamat IP atau browser. Anggota melihat tim, paketnya, jumlah seat-nya, dan peran mereka sendiri. +MCP mati secara bawaan dan tidak dapat berjalan saat mati, termasuk lewat bridge/pemasangan. Saat aktif, klien terautentikasi meminta data sesuai izin Anda. Klien AI bisa mengirim hasil ke layanannya. Server MCP eksternal menerima argumen disetujui. Lihat [kontrol AI/MCP](https://docs.tablepro.app/security/privacy#ai-providers). -**Data Anda.** Di Pengaturan Anda dapat mengubah nama, alamat email, dan bahasa, menambahkan dan menghapus metode masuk, mengunduh data akun sebagai file JSON, dan menghapus akun. Akun tidak dapat dihapus selama Anda memiliki tim yang punya anggota lain. Menghapusnya akan menghapus metode masuk, perangkat, lisensi, keanggotaan tim, dan tim yang hanya beranggotakan Anda, menghapus alamat email Anda dari daftar buletin, serta mengakhiri langganan Anda tanpa pengembalian dana. Apa yang kami simpan setelahnya dijelaskan di [Lama penyimpanan data](#retention). +## Situs dan penyimpanan browser {#website} -**Yang dimuat portal.** Portal tidak memuat Google Analytics, Cloudflare Web Analytics, atau skrip analitik lain, dan tidak mengajukan pertanyaan cookie. Portal menampilkan chat langsung dari Crisp yang dijelaskan di [Situs web](#website), dan pembelian di sana membuka pembayaran {merchant} di atas halaman. +Server dan Cloudflare menerima IP, user agent dan halaman. Cloudflare Web Analytics menghitung kunjungan, perujuk, waktu muat, kategori browser/sistem/perangkat dan negara tanpa penyimpanan browser atau fingerprint. Kepentingan sah ialah memahami dan merawat situs. -## Buletin {#newsletter} +Google Analytics memuat dalam Consent Mode. Sebelum Allow, ia mengirim sinyal tanpa cookie/ID tersimpan. Persetujuan mengaktifkan cookie dan pengukuran kunjungan, unduhan serta checkout. Penyimpanan iklan, personalisasi dan data iklan selalu ditolak. Google menyatakan GA4 tidak menyimpan IP. -Jika Anda berlangganan catatan rilis, kami terlebih dahulu mengirim tautan konfirmasi dalam bahasa halaman tempat Anda berlangganan. Tautan berlaku 7 hari, dan satu alamat menerima paling banyak 3 per hari. Setelah Anda mengonfirmasi, alamat Anda masuk ke daftar buletin kami, yang kami simpan di server kami beserta bahasa tersebut. Untuk pendaftaran dan konfirmasi, kami mencatat kapan masing-masing terjadi, alamat IP dan peramban asalnya, halaman tempat Anda berlangganan, dan versi teks persetujuan yang Anda setujui. Cloudflare Turnstile memeriksa formulir, seperti dijelaskan di [Situs web](#website). +Crisp memuat di semua situs/portal seperti [dukungan](#support). Menunjuk atau Tab ke Buy memuat skrip {merchant} dari jsDelivr yang menerima IP/browser; klik membuka checkout. Memulai formulir memuat Turnstile untuk mencegah penyalahgunaan, kepentingan sah. Negara/zona waktu membantu saran bahasa/diskon wilayah berdasarkan kepentingan sah; permintaan tanpa cookie dan jawaban tidak disimpan di halaman. -Setiap buletin mencatat pembukaan dan klik dari semua penerimanya. Buletin berisi sebuah gambar kecil, dan tautannya melewati `links.news.tablepro.app`. Saat aplikasi email Anda memuat gambar itu atau Anda membuka sebuah tautan, Amazon SES mencatat waktu pembukaan atau klik dan tautan yang diklik, beserta alamat IP dan user agent yang dikirim aplikasi email Anda, lalu meneruskannya ke server kami, yang menghitung pembukaan dan klik setiap buletin. Aplikasi email yang tidak memuat gambar tidak mencatat pembukaan. Tautan berhenti berlangganan dan tautan yang membuka email baru tidak dilacak. +Kunjungan pertama membuat `tablepro:attribution` selama 90 hari: tag/perujuk, halaman masuk dan tanggal. Saat checkout, server memberikan sumber ke {merchant} sebagai metadata, menyimpannya pada pesanan dan mengirim ke PostHog dengan checkout/pembayaran. Halaman/tanggal tidak disimpan. Dasarnya kepentingan sah mengukur sumber pembelian. Permintaan publik newsletter, checkout dan diskon tanpa kredensial serta tidak memasang cookie portal. Portal tanpa skrip analitik, tetapi server mengirim peristiwa. -Setiap buletin memiliki tautan berhenti berlangganan, yang membuka halaman dengan tombol untuk berhenti berlangganan, serta header yang memungkinkan aplikasi email Anda menghentikan langganan dengan satu klik. Setelah Anda berhenti berlangganan, kami tidak mengirim buletin lagi dan tidak mengirim email untuk mengonfirmasinya; untuk berlangganan lagi, diperlukan konfirmasi baru. Menandai buletin sebagai spam juga menghentikan langganan Anda, dan begitu email ke alamat Anda terpental secara permanen, kami berhenti mengirim ke alamat itu. Untuk sekaligus menghapus alamat email, hubungi kami melalui email, atau hapus akun TablePro Anda jika akun itu memakai alamat tersebut. +### Situs dokumentasi {#docs} -Saat kami pindah dari server sebelumnya, setiap alamat di milis server itu yang belum berhenti berlangganan masuk ke daftar ini sebagai pelanggan, baik sudah dikonfirmasi maupun belum: server itu juga menambahkan alamat pembeli, pemegang lisensi, dan pendaftar beta, lalu mengirimi mereka email. Alamat yang sudah berhenti berlangganan dipindahkan dengan status berhenti berlangganan, dan alamat yang emailnya terpental atau ditandai sebagai spam justru dimasukkan ke daftar penahanan (suppression list) kami, sehingga tidak ada buletin yang sampai kepadanya. +Mintlify menghosting docs.tablepro.app. Permintaan halaman, Google Fonts dan jumlah bintang GitHub memberi IP/browser kepada penyedia. Docs meminta persetujuan terpisah. Sebelum Allow, tidak menyimpan cookie analitik/ID. Allow mengaktifkan Google Analytics dan ID Mintlify. Cookie settings di footer docs mencabut pilihan dan menghapusnya. Pilihan situs tidak berlaku pada origin tersebut. -## Cookie dan penyimpanan peramban {#cookies} +### Cookie dan penyimpanan {#cookies} -Membaca situs publik serta permintaan newsletter, checkout, dan kode diskonnya tidak menetapkan cookie miliknya sendiri. Masuk ke portal akun, atau mulai masuk, menetapkan satu cookie portal yang benar-benar diperlukan di bawah ini. Cloudflare Web Analytics tidak menetapkan cookie atau menyimpan apa pun di browser. Cookie Google Analytics hanya ditetapkan dengan izin Anda. Crisp menetapkan cookie pada setiap halaman setelah chat dimuat. Tidak ada yang digunakan untuk iklan atau dijual. +Cloudflare Web Analytics tidak menyimpan apa pun di browser. Halaman publik tidak memasang cookie sendiri. Masa berikut terpisah dari penyimpanan penyedia. Penyimpanan wajib menjaga masuk/pilihan; tujuan persetujuan dan kepentingan sah dijelaskan di sini. -- **`_ga` dan `_ga_`** (cookie Google Analytics, hingga 2 tahun, hanya jika Anda mengizinkan analitik): pengenal acak untuk peramban dan status kunjungan saat ini. Menolak atau mengubah jawaban kemudian akan menghapusnya. Dasar hukum: persetujuan. -- **`tablepro:analytics-consent`** (penyimpanan lokal, sampai Anda menghapusnya): jawaban Anda atas pertanyaan analitik, agar tidak ditanyakan pada setiap halaman. Portal akun tidak memuat analitik, jadi tidak mengajukan pertanyaan ini dan tidak membaca jawabannya. Dasar hukum: benar-benar diperlukan untuk menghormati pilihan Anda. -- **`tablepro:attribution`** (penyimpanan lokal, 90 hari): catatan kunjungan pertama yang dijelaskan di [Situs web](#website). Catatan ini tidak berisi pengenal Anda dan hanya dikirim bersama permintaan pembayaran, lalu server kami meneruskan sumber kunjungannya ke {merchant}. Dasar hukum: kepentingan yang sah. -- **`theme`** (penyimpanan lokal, sampai Anda menghapusnya): pilihan tampilan terang, gelap, atau sistem. Portal akun menyimpan pilihannya sendiri. Dasar hukum: kepentingan yang sah. -- **`tablepro:language`** (penyimpanan lokal, sampai Anda menghapusnya): bahasa yang Anda pilih di menu bahasa atau bilah bahasa, dan setiap bahasa yang sarannya Anda tutup, agar tidak ditawarkan lagi. Dasar hukum: kepentingan yang sah. -- **`tablepro:campaign-closed`** (penyimpanan lokal, sampai Anda menghapusnya): promo yang pemberitahuannya di atas header Anda tutup, agar pemberitahuan itu tetap tertutup di setiap halaman sampai promo tersebut berakhir. Dasar hukum: kepentingan yang sah. -- **`mintlify_anonymous_id`** (penyimpanan lokal di docs.tablepro.app, dipasang oleh Mintlify, hanya jika Anda mengizinkan Google Analytics di sana): ID pengunjung yang dijelaskan di [Situs web](#website). Menolak akan menghapusnya. Dokumentasi menyimpan jawaban `tablepro:analytics-consent` miliknya sendiri. Dasar hukum: persetujuan. -- **Cookie yang diawali `crisp-client/`** (Crisp, misalnya `crisp-client/session/…`; 6 bulan, diperbarui saat Anda kembali; dipasang pada setiap halaman setelah chat dimuat): mempertahankan chat dan percakapan lintas halaman dan kunjungan. Dasar hukum: kepentingan yang sah, untuk menawarkan dukungan di setiap halaman. -- **`__Host-tp_session`** (cookie portal akun, 30 hari sejak Anda masuk): menjaga Anda tetap masuk. Sebelum Anda masuk, cookie ini hanya ditetapkan saat proses masuk dengan passkey, Apple, GitHub, Google, atau dari aplikasi sedang berlangsung, paling lama 10 menit. Keluar akan menghapusnya. Permintaan newsletter, checkout, dan kode diskon dari situs publik tidak menyertakan kredensial dan tidak pernah menerimanya. Dasar hukum: benar-benar diperlukan. -- **`locale`, `context`, dan `sign-in-return-to`** (penyimpanan lokal portal akun): bahasa yang Anda pilih di sana sebelum masuk dan apakah terakhir Anda membuka Pribadi atau sebuah tim, keduanya sampai Anda menghapusnya, serta selama 15 menit halaman tujuan setelah Anda membuka tautan masuk dari email. Dasar hukum: kepentingan yang sah. +| Nama/layanan | Tujuan dan pemicu | Masa dan kontrol | +| --- | --- | --- | +| `_ga`, `_ga_` | Google Analytics setelah persetujuan | Hingga 2 tahun; menolak menghapus | +| `tablepro:analytics-consent` | Pilihan wajib, terpisah situs/docs | Sampai dihapus | +| `tablepro:attribution` | Sumber awal bersama checkout; kepentingan sah | 90 hari | +| `theme`, `tablepro:language`, `tablepro:campaign-closed` | Tampilan, bahasa dipilih/ditutup, promo ditutup; kepentingan sah | Sampai dihapus; tema portal terpisah | +| `mintlify_anonymous_id` | ID docs setelah persetujuan di sana | Sampai dihapus/ditolak | +| Cookie `crisp-client/` | Kelanjutan chat setelah dimuat tiap halaman; kepentingan sah | 6 bulan, diperbarui saat kembali | +| `__Host-tp_session` | Masuk portal yang diperlukan | 30 hari masuk; paling lama 10 menit saat proses; keluar menghapus | +| `locale`, `context`, `sign-in-return-to` | Bahasa, tampilan Personal/tim, halaman kembali; kepentingan sah | Dua pertama sampai dihapus; kembali 15 menit | -Anda dapat mengubah atau menarik jawaban analitik kapan saja melalui **Pengaturan cookie** di footer setiap halaman, atau di sini: +Ubah persetujuan dengan Cookie settings di footer atau di sini: -## Dasar hukum {#lawful-basis} - -Bagi pembaca di Wilayah Ekonomi Eropa dan Britania Raya, dasar hukum berdasarkan GDPR dan UK GDPR adalah: - -- **Kontrak** (Art. 6(1)(b)): penjualan dan penyediaan lisensi, akun Anda beserta metode masuk dan perangkatnya, pemeriksaan lisensi, portal akun, dan Team Library. -- **Kepentingan yang sah** (Art. 6(1)(f)): data penggunaan aplikasi Mac dan analisisnya di PostHog, peristiwa tentang proses masuk, pembelian, perangkat, dan tim yang dikirim server kami ke PostHog, log audit akun, keamanan dan pencegahan penyalahgunaan, termasuk Cloudflare Turnstile pada formulir buletin, log server, Cloudflare Web Analytics, catatan atribusi pembelian, pencarian negara untuk bahasa dan diskon regional, dan chat langsung di setiap halaman. -- **Persetujuan** (Art. 6(1)(a)): cookie Google Analytics, laporan penggunaan aplikasi iPhone dan iPad, buletin, serta percakapan yang Anda mulai melalui chat langsung. -- **Kewajiban hukum** (Art. 6(1)(c)): catatan pajak dan akuntansi, serta jawaban atas permintaan yang sah menurut hukum. +## Penerima {#sharing} -## Penerima data {#sharing} +| Penerima | Data dan tujuan | +| --- | --- | +| [OVH]({ovhPrivacy}) | Server dan catatan layanan | +| [Cloudflare]({cloudflarePrivacy}) | DNS/proxy, R2/backup, Turnstile, Cloudflare Web Analytics | +| [Amazon Web Services]({awsPrivacy}) | Email Amazon SES, pengiriman dan interaksi; tautan CloudFront, peristiwa SNS/SQS | +| [PostHog EU]({posthogPrivacy}) | Analitik aplikasi/server; ID tanpa nama/email; permintaan langsung memuat IP | +| [{merchant}]({merchantPrivacy}) | Merchant of record independen; checkout, tagihan dan pembelian | +| [Crisp]({crispPrivacy}) | Chat, browser/halaman, identitas akun masuk | +| [Google]({googlePrivacy}) | Analitik situs/docs dan font; masuk opsional | +| [Mintlify]({mintlifyPrivacy}) | Hosting docs dan pengukuran disetujui | +| [GitHub]({githubPrivacy}) | Unduhan, pembaruan, plugin, bintang, issue publik dan masuk opsional | +| [Apple]({applePrivacy}) | Masuk opsional; layanan/diagnostik pada aplikasi/integrasi | +| [jsDelivr]({jsdelivrPrivacy}) | Skrip checkout dengan IP/browser | -Kami hanya membagikan data pribadi kepada layanan yang diperlukan untuk menjalankan TablePro: +Anggota menerima konten/detail sesuai peran. Integrasi menerima data yang Anda arahkan. Kami tidak menjual data atau membagikannya untuk iklan. Pengungkapan lain hanya jika hukum mewajibkan. Kebijakan penyedia juga berlaku. -- **{merchant}**, merchant of record untuk pembelian. -- **Amazon Web Services**, yang layanan Amazon SES-nya mengirim email kami dari region Asia Pasifik (Singapura): tautan dan kode masuk, undangan tim, pemberitahuan akun dan keamanan, serta buletin. Layanan ini memberi tahu kami saat email terkirim, terpental, atau ditandai sebagai spam, dan kami mencatat email yang terpental dan laporan spam untuk berhenti mengirim ke alamat tersebut. Untuk buletin, layanan ini juga melaporkan setiap pembukaan dan klik, seperti dijelaskan di [Buletin](#newsletter). -- **Penyedia hosting kami dan Cloudflare**, untuk situs web, portal akun, dan server yang berkomunikasi dengan aplikasi. Cloudflare juga menghitung tampilan halaman menggunakan Cloudflare Web Analytics dan memeriksa formulir buletin dengan Turnstile. -- **Google**, untuk Google Analytics di situs web dan dokumentasi. -- **Crisp**, untuk chat langsung pada setiap halaman situs web dan portal akun. -- **PostHog** (EU Cloud), layanan analitik produk kami, yang menerima laporan penggunaan aplikasi dan peristiwa server kami tentang proses masuk, pembelian, perangkat, dan tim, dengan ID akun Anda tetapi tidak pernah alamat email atau nama Anda. Data penggunaan yang dikirim aplikasi Mac secara langsung sampai ke PostHog beserta alamat IP Mac Anda. -- **Apple, GitHub, dan Google**, saat Anda masuk ke akun dengan layanan tersebut. -- **jsDelivr**, yang menyajikan skrip pembayaran {merchant} ke peramban saat Anda mengarahkan penunjuk ke tombol Beli. -- **Mintlify**, yang menghosting dokumentasi di docs.tablepro.app. -- **GitHub**, yang menghosting feed pembaruan, katalog plugin, dan unduhan, serta menyediakan jumlah bintang yang ditampilkan dokumentasi. +## Lokasi pemrosesan {#transfers} -Kami tidak menjual data pribadi atau membagikannya kepada pengiklan. +OVH dan Amazon SES di Singapura (`ap-southeast-1` untuk SES). PostHog di UE; Crisp berbasis di Prancis. {publisherName} beroperasi dari Vietnam. Penyedia AS termasuk {merchant}, Google, GitHub, Cloudflare, Amazon Web Services dan Mintlify memproses di AS. Penyimpanan/backup dapat melibatkan negara lain. Perlindungan EEA/Inggris memakai klausul kontrak standar atau mekanisme disetujui milik penyedia; Google juga memakai EU-US Data Privacy Framework. Minta informasi melalui [kontak](#controller). -## Transfer internasional {#transfers} +## Masa penyimpanan {#retention} -Layanan di atas beroperasi di beberapa negara, sehingga data Anda dapat diproses di luar negara Anda. {merchant}, Google, GitHub, Cloudflare, dan Mintlify memproses data di Amerika Serikat; Google melakukannya berdasarkan EU-US Data Privacy Framework dan Standard Contractual Clauses. PostHog memprosesnya di Uni Eropa. Amazon Web Services mengirim email kami dari Singapura. Jika diwajibkan hukum, transfer dari EEA dan Britania Raya menggunakan Standard Contractual Clauses atau mekanisme lain yang disetujui. +Kami belum menetapkan batas bila tabel menyatakan demikian. Menghapus akun tidak menghapus PostHog atau Crisp. Email melalui [kontak](#controller) untuk penghapusan di penyedia tersebut atas permintaan. -## Lama penyimpanan data {#retention} +| Catatan | Penyimpanan dan penghapusan | +| --- | --- | +| Analitik PostHog | Belum ada batas. Mematikan menyisakan peristiwa lama. Minta penghapusan. | +| Job dan log server | Job menyimpan laporan saat kirim/ulang. Log untuk keamanan/diagnosis. Belum ada batas keseluruhan; tidak menjanjikan nol salinan. | +| Perangkat | Termasuk yang dilepas, sampai akun dihapus | +| Akun dan audit | Akun, cara masuk, perangkat, lisensi dan keanggotaan dihapus. Audit tetap tanpa batas; kolom email dan IP/user agent pelaku dihapus, alamat dalam teks bebas bisa tetap. | +| Pesanan dan notifikasi penyedia | Pesanan pajak/akuntansi tanpa batas. Tautan akun/email dihapus. Peristiwa {merchant}, Amazon SES dan Apple tetap; data pribadi pembelian dan penerima/interaksi email dibersihkan untuk akun yang dihapus. | +| Team Library | Item dihapus mempertahankan versi terakhir untuk sync. Penghapusan tim biasa menghapus pustaka setelah 30 hari, dapat dipulihkan sebelumnya. Menghapus akun pemilik tunggal menghapus keduanya segera. Lisensi berakhir tidak menghapus. | +| Autentikasi | Link/kode kedaluwarsa 15 menit, dihapus 7 hari kemudian. Sesi 30 hari. Token kedaluwarsa 90 hari setelah dipakai, dihapus 30 hari kemudian. Job email menyimpan teks biasa sampai pembersihan: sehari setelah kirim atau 7 hari setelah menyerah. | +| Newsletter | Alamat baru belum dikonfirmasi dihapus setelah 30 hari. Terkonfirmasi/migrasi sampai diminta atau akun dengan alamat itu dihapus. Berhenti tetap menyimpan alamat sebagai berhenti. | +| Penekanan kirim | Alamat pantulan/keluhan dan tanggal pertama/terakhir tetap setelah akun/langganan dihapus untuk mencegah kiriman. Tanpa batas. | +| Google Analytics | Data pengguna/peristiwa: 2 bulan; laporan total standar terpisah | +| Cloudflare Web Analytics | Total enam bulan terakhir tersedia | +| Dukungan | Crisp dan kotak surat sampai dihapus, termasuk atas permintaan. Tanpa batas. | +| Backup dan arsip migrasi | Tanpa batas. Penghapusan akun tidak menghapus salinan. Arsip database lama lengkap memuat nama/email, lisensi, pesanan, tim, nama perangkat, pelanggan, beta, email, laporan penggunaan dan log lisensi dengan IP. | -- **Laporan penggunaan dan peristiwa analitik**: server kami tidak menyimpan salinan setelah meneruskannya ke PostHog. Kami belum menetapkan batas waktu untuknya di PostHog. -- **Catatan dari server kami sebelumnya**: salinan seluruh basis datanya disimpan tanpa batas waktu dalam sebuah arsip. Arsip itu mencakup lisensi, pesanan, dan anggota tim beserta alamat email dan namanya; Mac yang diaktifkan dengan lisensi, beserta namanya; pelanggan buletin dan pendaftar beta; catatan email yang dikirimnya; serta laporan penggunaan dan log permintaan lisensi yang disimpannya, beserta alamat IP-nya. -- **Perangkat**: disimpan, termasuk yang Anda hapus, sampai Anda menghapus akun Anda. -- **Log audit akun Anda**: disimpan selama akun ada, beserta alamat IP dan browser setiap perubahan yang Anda buat. Menghapus akun menghilangkan alamat email Anda dari log itu serta alamat IP dan browser tindakan Anda; catatan setiap perubahan tetap ada. -- **Pesanan**: disimpan untuk pajak dan akuntansi. Menghapus akun Anda menghilangkan alamat email dan akun Anda dari pesanan. -- **Notifikasi dari {merchant}, Amazon SES, dan Apple**: disimpan. Notifikasi {merchant} berisi nama, alamat email, dan alamat penagihan Anda; menghapus akun Anda menghilangkan data itu dari notifikasi tentang pembelian Anda. Notifikasi Amazon SES berisi alamat tujuan setiap email dan, untuk buletin, alamat IP dan user agent dari setiap pembukaan dan klik; menghapus akun Anda menghilangkan data itu dari notifikasi tentang email ke alamat Anda dan dari catatan kami tentang setiap email yang dikirim. -- **Team Library**: sampai item diubah; item yang dihapus menyimpan versi terakhirnya. Pustaka dihapus bersama timnya, 30 hari setelah pemilik menghapus tim; sebelum itu, pemilik dapat memulihkannya. Pustaka tetap ada setelah lisensi berakhir. -- **Tautan dan kode masuk**: kedaluwarsa setelah 15 menit dan dihapus 7 hari kemudian. Sesi portal berlangsung selama 30 hari. Token yang membuat aplikasi tetap masuk kedaluwarsa 90 hari setelah terakhir dipakai aplikasi, dan dihapus 30 hari setelahnya. -- **Akun yang dihapus**: akun, metode masuk, perangkat, lisensi, dan keanggotaan timnya langsung dihapus. Pesanan dan log audit tetap seperti dijelaskan di atas. Data tentang Anda yang disimpan server kami sebelumnya tetap ada dalam arsipnya, seperti dijelaskan di atas. -- **Buletin**: alamat yang tidak dikonfirmasi dalam 30 hari dihapus beserta tautan konfirmasinya. Alamat yang sudah dikonfirmasi, atau yang dipindahkan dari server kami sebelumnya, tetap ada di daftar kami beserta catatan tentang cara alamat itu masuk, sampai kami menghapusnya atas permintaan Anda atau Anda menghapus akun TablePro yang memakainya; setelah Anda berhenti berlangganan, alamat itu disimpan sebagai berhenti berlangganan agar tidak ada buletin yang sampai kepadanya. -- **Daftar penahanan**: alamat yang emailnya ditolak secara permanen, atau yang pemiliknya menandai salah satu email kami sebagai spam, tetap ada di daftar penahanan kami beserta waktu pertama dan terakhir hal itu terjadi, juga setelah akun atau langganan buletin yang memakainya dihapus. Dengan begitu, kami tidak mengirim email ke alamat itu lagi. -- **Google Analytics**: data tingkat pengguna dan tingkat peristiwa selama 2 bulan, masa retensi bawaan Google yang digunakan properti kami. Cookie bertahan hingga 2 tahun atau dihapus saat Anda menolak. -- **Cloudflare Web Analytics**: Cloudflare menampilkan jumlah tampilan halaman selama enam bulan terakhir kepada kami. Tidak ada data yang disimpan di peramban. -- **Chat langsung dan email dukungan**: disimpan oleh Crisp dan di kotak email kami sampai dihapus. Mintalah kepada kami untuk menghapus percakapan dan email Anda. -- **Log server**: log server web kami dan log server kami, disimpan di server kami untuk keamanan dan pemecahan masalah. Kami belum menetapkan masa penyimpanan tetap. +## Pilihan dan hak {#rights} -## Hak Anda {#rights} +Gunakan sakelar, Cookie settings situs/docs dan berhenti newsletter. Penarikan persetujuan berlaku ke depan, tidak membatalkan pemrosesan sebelumnya. Sakelar tidak menghapus data lama atau menghentikan analitik server. Di [Settings portal]({account}) ekspor/hapus akun; ini tidak mencakup setiap catatan tersimpan. -Bergantung pada tempat tinggal Anda, Anda dapat meminta kami untuk: +Menurut tempat tinggal, minta akses, koreksi, penghapusan, pembatasan, portabilitas atau penolakan kepentingan sah. Tanpa akun pun: email [kontak](#controller). Kami dapat meminta detail untuk menemukan catatan, seperti ID instalasi. Jangan pernah mengirim kunci lisensi teks biasa lewat email. Kami menjawab dalam satu bulan. Anda dapat mengadu ke otoritas perlindungan data. Kewajiban hukum dapat membatasi penghapusan. -- memberikan salinan data pribadi Anda yang kami simpan (akses); -- memperbaikinya (koreksi); -- menghapusnya (penghapusan), kecuali data yang wajib disimpan menurut hukum; -- membatasi cara penggunaannya (pembatasan); -- mengirimkannya kepada Anda dalam format terstruktur yang dapat dibaca mesin (portabilitas); -- berhenti menggunakannya atas dasar kepentingan yang sah (keberatan). - -Anda dapat menarik persetujuan kapan saja dan mengajukan keluhan kepada otoritas perlindungan data Anda. Untuk menggunakan hak ini, kirim email ke [{email}](mailto:{email}). Kami menjawab dalam 30 hari. Di [portal akun]({account}), Pengaturan juga memberi Anda salinan data akun dan menghapus akun. Untuk hal lain, seperti alamat buletin atau Mac tanpa akun, sebutkan alamat email, kunci lisensi, atau perangkat yang terkait. Data yang disimpan {merchant}, Google, Crisp, atau GitHub juga diatur oleh kebijakan masing-masing. +### Hak regional {#regional-rights} **Penduduk California.** California Consumer Privacy Act memberi Anda hak untuk mengetahui informasi pribadi yang kami kumpulkan, meminta penghapusannya, menolak penjualannya, serta tidak diperlakukan berbeda karena menggunakan hak tersebut. Kami tidak menjual informasi pribadi. ## Anak-anak {#children} -TablePro tidak ditujukan kepada anak di bawah 16 tahun, dan kami tidak dengan sengaja mengumpulkan data pribadi mereka. Jika Anda yakin seorang anak telah memberikan data pribadi kepada kami, hubungi kami dan kami akan menghapusnya. +TablePro tidak ditujukan bagi anak di bawah 16 tahun dan kami tidak sengaja mengumpulkan datanya. Bila anak memberi kami data, hubungi kami untuk menghapusnya. ## Keamanan {#security} -Lalu lintas antara aplikasi, situs web, portal akun, dan server kami menggunakan HTTPS. Akun TablePro tidak memiliki kata sandi. Tautan dan kode masuk, token yang membuat aplikasi tetap masuk, dan token API tim disimpan sebagai hash. Tugas yang mengirim tautan dan kode masuk lewat email menyimpan keduanya sebagai teks biasa sampai tugas itu dihapus: sehari setelah email terkirim, atau 7 hari setelah kami berhenti mencoba mengirimnya. Keduanya tidak berlaku lagi 15 menit setelah Anda memintanya. Akses ke sistem kami dibatasi untuk {publisherName} dan penyedia layanan yang tercantum di [Penerima data](#sharing). Tidak ada sistem yang sepenuhnya aman. Untuk melaporkan kerentanan, lihat [halaman Keamanan](/id/security#report) atau kirim email ke [{email}](mailto:{email}). - -## Perubahan kebijakan ini {#changes} - -Saat kebijakan ini berubah, kami memperbaruinya di sini dengan tanggal "Terakhir diperbarui" yang baru dan, jika diwajibkan hukum, memberi tahu Anda secara langsung. +Layanan memakai HTTPS. Akun tidak memiliki kata sandi. Kredensial masuk/token API tim disimpan sebagai hash, kecuali job email sementara pada [penyimpanan](#retention). Akses terbatas untuk {publisherName} dan [penerima](#sharing). Tidak ada sistem sempurna aman. Laporkan celah lewat [halaman keamanan](/id/security#report). -## Kontak {#contact} +## Perubahan {#changes} -Untuk pertanyaan tentang privasi atau kebijakan ini, kirim email ke [{email}](mailto:{email}). +Halaman menunjukkan tanggal pembaruan. Versi lama tetap di [riwayat repositori web publik]({webGithub}/commits/main/resources/data/legal/en/privacy.md). Kami memperbarui sebelum tujuan baru, memberi tahu langsung bila hukum mewajibkan dan meminta persetujuan baru bila perlu. diff --git a/resources/data/legal/it/privacy.md b/resources/data/legal/it/privacy.md index 1e64a128..fb86b772 100644 --- a/resources/data/legal/it/privacy.md +++ b/resources/data/legal/it/privacy.md @@ -1,281 +1,228 @@ --- title: Informativa sulla privacy -description: Quali dati raccolgono le app, il sito web e il portale account di TablePro, dove vanno, per quanto tempo restano e come modificarli o eliminarli. -updatedAt: "2026-11-04" +description: Dati raccolti da TablePro, finalità, destinatari, conservazione, scelte e diritti. +updatedAt: "2026-11-05" --- -Questa informativa riguarda TablePro per Mac, TablePro per iPhone e iPad, il sito web tablepro.app, la documentazione su docs.tablepro.app e il portale account account.tablepro.app. Descrive quali dati ciascuno di essi invia e conserva effettivamente oggi. Entrambe le app sono open source con licenza AGPLv3: puoi quindi leggere il codice che invia i dati descritti di seguito nel [repository di TablePro]({github}). +Questa informativa copre TablePro per Mac, Linux, iPhone e iPad; tablepro.app; docs.tablepro.app; e servizi di account, acquisto, assistenza e newsletter. L'[inventario tecnico](https://docs.tablepro.app/security/privacy) elenca campi, destinazioni e controlli. Il codice è nel [repository pubblico]({github}). -## Riepilogo {#summary} +## In breve {#summary} -- L'app per Mac invia dati di utilizzo. L'invio è attivo per impostazione predefinita e puoi disattivarlo. L'app per iPhone e iPad invia un rapporto sull'utilizzo solo se lo attivi. -- Se accedi a un account TablePro o attivi una chiave di licenza, l'app per Mac registra il tuo Mac sul nostro server, con il suo nome, e verifica regolarmente il tuo piano. -- Le query che esegui, i risultati e le password non vengono inviati a TablePro. Fa eccezione ciò che scegli di pubblicare nella Team Library: impostazioni delle connessioni (mai le password) e query salvate. -- Le richieste di IA vengono inviate direttamente dall'app per Mac al fornitore di IA che configuri, non a noi. -- Dalla versione che introduce gli account TablePro, l'app per Mac invia i dati di utilizzo direttamente a PostHog, il nostro servizio di analisi del prodotto nell'UE, che riceve quindi l'indirizzo IP del tuo Mac e ne ricava una posizione approssimativa. Le versioni precedenti e l'app per iPhone e iPad inviano rapporti sull'utilizzo al nostro server, che li inoltra a PostHog senza i loro indirizzi IP. Il tuo account tiene un registro delle modifiche apportate, come accessi e nuovi dispositivi, con l'indirizzo IP e il browser della richiesta che ha fatto ciascuna. -- Il sito web conta le visualizzazioni con Cloudflare Web Analytics, che non imposta cookie. Carica inoltre Google Analytics, che imposta cookie solo se li autorizzi. Ogni pagina carica anche la nostra chat dal vivo, Crisp, che imposta i propri cookie. -- Il portale account su account.tablepro.app non carica alcuno script di analisi. Imposta un cookie per mantenere l'accesso, e nelle sue impostazioni puoi scaricare i dati del tuo account o eliminarlo. -- Amazon SES, un servizio di Amazon Web Services, invia le nostre email. La newsletter registra quando ogni destinatario la apre e quali dei suoi link clicca. -- Gli acquisti sono venduti da {merchant}, il nostro merchant of record. +Query e risultati ordinari viaggiano tra dispositivo e database. I dati di utilizzo non contengono SQL, righe o credenziali. I contenuti pubblicati in Team Library, inviati all'assistenza o condivisi con IA e strumenti esterni raggiungono quei destinatari. -## Chi è responsabile {#controller} +Su Mac e Linux i dati di utilizzo sono attivi per impostazione iniziale, con un interruttore. L'app iPhone e iPad distribuita invia rapporti solo dopo il consenso. L'analisi diretta può collegarsi ad account e acquisti. Disattivarla non ferma richieste dell'account o analisi del server. -{publisherName}, sviluppatore indipendente a {publisherCity}, in {publisherCountry}, pubblica le app TablePro e questo sito web ed è responsabile dei dati personali descritti qui (il titolare del trattamento). Per qualsiasi domanda su questa informativa o sui tuoi dati, scrivi a [{email}](mailto:{email}). +Il sito misura visite e carica Crisp su ogni pagina. I cookie Google Analytics richiedono la tua scelta. Le newsletter misurano aperture e clic. Eliminare l'account lascia alcuni dati, anche presso PostHog e Crisp. Leggi [conservazione](#retention) e [diritti](#rights). Il [titolare](#controller) gestisce richieste anche senza account. -## TablePro per Mac {#mac-app} + -### Dati di utilizzo {#mac-usage-report} +## Titolare {#controller} -Dalla versione che introduce gli account TablePro, l'app per Mac invia i dati di utilizzo direttamente a PostHog, il nostro servizio di analisi del prodotto, su `eu.i.posthog.com` nell'UE. **L'invio è attivo per impostazione predefinita e l'app non chiede il consenso prima di inviare il primo evento.** Per disattivarlo, apri **Settings > General > Privacy** e deseleziona **Share usage data**. Finché l'impostazione è disattivata, l'app non invia nulla a PostHog e, se l'app si avvia con l'impostazione disattivata, non avvia affatto la libreria di PostHog. +{publisherName}, sviluppatore indipendente a {publisherCity}, {publisherCountry}, è titolare dei dati personali descritti. Contatto: [{email}](mailto:{email}). Non abbiamo un responsabile della protezione dei dati. Per i gruppi siamo titolari dei dati di account, inviti e servizio. Trattiamo i contenuti Team Library su istruzione del gruppo, che decide cosa pubblicare e chi accede. -L'app invia un evento: + -- una volta al giorno mentre è in esecuzione, con i nomi dei tipi di database delle connessioni aperte (per esempio "PostgreSQL") e il numero di connessioni aperte; -- al tuo primo tentativo di connessione, alla tua prima connessione riuscita e alla tua prima query, ciascuno con il tipo di database; -- quando ti mostra che una funzione a pagamento non è disponibile, una volta per funzione a ogni avvio dell'app, con la funzione e il motivo, per esempio che non hai effettuato l'accesso; -- quando fai clic per passare a un piano superiore, con il punto dell'app in cui hai fatto clic; -- quando accedi, con il modo (nell'app, con una chiave di licenza o con lo scambio della chiave già presente sul Mac), e quando esci. +## Dati e finalità {#data-use} -La libreria di PostHog aggiunge a ogni evento il modello del Mac, le dimensioni dello schermo, il fuso orario e la lingua, se è connesso via Wi-Fi, la versione, la build e il bundle ID dell'app, la versione di macOS, la versione della libreria e un ID di sessione casuale. PostHog riceve l'indirizzo IP del tuo Mac con ogni richiesta e ne ricava una posizione approssimativa, come il paese e la città. Finché l'impostazione è attiva, la libreria scarica anche da PostHog le sue impostazioni e i feature flag (`/config` da `eu-assets.i.posthog.com` e `/flags` da `eu.i.posthog.com`). +Per SEE e Regno Unito indichiamo la base giuridica per ogni finalità: contratto (articolo 6(1)(b)), legittimo interesse (6(1)(f)), consenso (6(1)(a)) o obbligo legale (6(1)(c)). Non prendiamo decisioni automatizzate con effetti giuridici o analogamente significativi. -Prima che tu acceda, gli eventi portano un ID casuale che la libreria crea sul tuo Mac, e PostHog non crea un profilo di persona per esso. Quando accedi, portano l'ID del tuo account, e il profilo di quell'account in PostHog conserva le versioni dell'app e di macOS, l'architettura del processore, la lingua dell'app e la posizione approssimativa che PostHog ricava dall'indirizzo IP. Questo mette in relazione le tue installazioni con i tuoi accessi e acquisti. Uscire dall'account avvia un nuovo ID casuale. I dati di utilizzo dell'app non contengono più un ID del dispositivo, l'indicazione di una licenza attivata né le impostazioni degli aggiornamenti. + -Le versioni precedenti agli account TablePro inviano invece un rapporto sull'utilizzo a `api.tablepro.app`, con la stessa impostazione, circa dieci secondi dopo l'avvio e poi una volta al giorno mentre sono in esecuzione. Un rapporto contiene: +### Account e dispositivi {#account} -- un ID del dispositivo: un hash SHA-256 dell'UUID hardware del tuo Mac (l'UUID stesso non viene mai inviato); -- la piattaforma, la versione dell'app, la versione di macOS, l'architettura del processore e la lingua dell'app; -- i nomi dei tipi di database delle connessioni aperte (per esempio "PostgreSQL") e il numero di connessioni aperte; -- l'indicazione di una licenza attivata; -- la data e l'ora del primo tentativo di connessione e della prima connessione riuscita; -- le impostazioni degli aggiornamenti (come vengono installati e con quale frequenza l'app li verifica). Il nostro server le scarta quando riceve il rapporto. +L'uso locale gratuito non richiede account. I servizi account richiedono l'e-mail. Conserviamo nome, lingua, metodi di accesso, licenze, ordini, dispositivi, ruoli e posti nei gruppi. Registrare Mac/Linux invia ID macchina, nome dispositivo, piattaforma e versioni app/sistema. Il nome può contenere il tuo. Questo flusso è distinto dall'utilizzo. Scopo e base sono fornire account e piano tramite contratto. -Né gli eventi né i rapporti contengono nomi host, nomi utente, password, query o righe. +L'accesso usa link e codici e-mail, passkey, Apple, GitHub o Google. I record passkey includono chiave pubblica, nome, stato di sincronizzazione e date d'uso. I fornitori di identità danno ID ed e-mail verificata; Apple può dare il nome. Il token Apple è cifrato e revocato quando scolleghi Apple o elimini l'account. Le modifiche sono registrate con IP e user agent. Il legittimo interesse è proteggere account e indagare abusi. -Il nostro server non conserva il rapporto né l'indirizzo IP da cui proviene. Lo inoltra a PostHog come evento relativo all'ID del dispositivo, con il paese che Cloudflare indica per la tua connessione e senza la chiave di licenza né l'indirizzo IP, e PostHog non ne ricava un profilo di persona. Poiché il tuo account elenca i propri dispositivi con lo stesso ID, i rapporti di un Mac su cui hai effettuato l'accesso o attivato una licenza possono essere collegati al tuo account. +Nel [portale]({account}) modifichi profilo e accesso, gestisci dispositivi, esporti JSON ed elimini l'account. Non puoi eliminarlo se possiedi un gruppo con altri membri. L'eliminazione termina gli abbonamenti senza rimborso. La [conservazione](#retention) spiega cosa resta. -### Verifiche della licenza {#mac-license} +### Acquisti {#purchases} -Le versioni precedenti agli account TablePro contattano il nostro server delle licenze solo dopo che inserisci una chiave di licenza. Lo fanno quando attivi la licenza, all'avvio se sono trascorsi almeno {revalidateDays} giorni dall'ultima verifica e ogni {revalidateDays} giorni successivamente. Ogni verifica invia: +{merchant} (Polar Software, Inc.) è merchant of record e rivenditore. Raccoglie nome, e-mail, indirizzo di fatturazione e dati di pagamento secondo le proprie condizioni. Gestisce pagamento, imposte, ricevute e controversie. Non riceviamo dati completi della carta. -- la chiave di licenza; -- l'ID del dispositivo descritto in [Dati di utilizzo](#mac-usage-report); -- il nome del Mac, come impostato in macOS (spesso include il tuo nome); -- la versione dell'app e di macOS. +Inviamo acquisto, lingua, provenienza della visita e IP per pagamento, imposte e valuta. Riceviamo dati dell'acquirente/fatturazione, importi, ID ordine/abbonamento, rinnovi, cancellazioni e rimborsi. Gli ordini conservano e-mail, paese, importi e attribuzione. Un acquisto ospite crea se necessario un account non verificato per quell'e-mail. Motivi e commenti di cancellazione vanno a {merchant} e restano con l'abbonamento. Il trattamento esegue il contratto; dati fiscali e contabili soddisfano obblighi legali. Senza i dati richiesti il pagamento non termina. Gestisci fatturazione nel [portale {merchant}]({portal}); vedi [condizioni](/it/terms) e [rimborsi](/it/refund-policy). -La disattivazione di un Mac invia solo la chiave di licenza e l'ID del dispositivo. +### Gruppi e contenuti condivisi {#library} -Il nostro server registra ogni Mac attivato come dispositivo dell'account titolare della licenza: ID del dispositivo e nome, versioni dell'app e di macOS, e il momento dell'ultimo contatto. L'attivazione e la disattivazione di un Mac vengono annotate nel registro di audit di quell'account con l'indirizzo IP e lo user agent della richiesta; le verifiche periodiche no. Il portale account elenca i tuoi dispositivi per nome. Se il nostro server non è raggiungibile, le funzioni a pagamento continuano a funzionare per {graceDays} giorni dall'ultima verifica riuscita. +Chi invita fornisce e-mail, ruolo e posto. Proprietari e amministratori vedono nomi/e-mail, inviti e modifiche al gruppo, indirizzi invitati compresi, ma non IP o browser del registro. I membri vedono gruppo, piano, posti e proprio ruolo. Usiamo questi dati per il servizio contrattuale. -### Account TablePro {#mac-account} +Su Mac, pubblicare in Team Library invia impostazioni di connessione e query salvate al server per membri autorizzati. Include host, porta, database, utente, SSH/SSL, comandi iniziali, Tunnel Command e IA. Le query includono nomi, SQL, parole chiave e cartelle. I campi password sono esclusi; segreti in SQL o testo libero non vengono rimossi. La libreria mostra l'ultimo autore. Lasciare il gruppo non cancella i contenuti. Vedi [tempi di eliminazione](#retention). Team Catalog scrive invece nella cartella condivisa scelta. -Dalla versione che introduce gli account TablePro, accedi all'app per Mac con un [account TablePro](#account) anziché con una chiave di licenza. L'app apre la pagina di accesso in una finestra del browser, dove puoi digitare il codice dell'email di accesso. Dopo l'accesso registra il tuo Mac come dispositivo del tuo account: l'ID del dispositivo descritto sopra, il nome del Mac, la piattaforma e le versioni dell'app e di macOS. Poi scarica il tuo piano dal nostro server come file firmato una volta al giorno mentre è in esecuzione, e quel file mantiene attive le funzioni a pagamento fino a {offlineDays} giorni senza il nostro server. Il token che mantiene l'accesso dell'app è conservato solo nel Portachiavi di macOS di quel Mac e non viene mai sincronizzato tramite iCloud Keychain, nemmeno con la sincronizzazione delle password attiva. +### Analisi d'uso e servizio {#analytics} -Una chiave di licenza già presente sul Mac viene scambiata una sola volta con un accesso all'account titolare e poi eliminata dal Mac. Puoi rimuovere i dispositivi nell'app o nel portale account, e la prima volta che un Mac usa la tua licenza te lo comunichiamo via email. +Il legittimo interesse è capire l'uso, correggere problemi e misurare acquisti. Mac/Linux inviano quanto descritto in [App](#apps). Il server invia a PostHog eventi su accessi, acquisti, dispositivi e gruppi con ID account, senza nomi/e-mail. Gli ID collegano app e servizio. L'interruttore ferma eventi dell'app, non richieste necessarie o eventi server. Usa i [diritti](#rights) per opposizione o cancellazione. -### Team Library {#library} +### Newsletter ed e-mail {#newsletter} -La Team Library fa parte della licenza Team. Quando scegli **Share > Publish to Team Library…** per una connessione oppure **Publish Saved Queries to Team…** nella barra laterale Favorites, l'app per Mac carica sul nostro server ciò che pubblichi: +Amazon SES invia codici, inviti, avvisi e newsletter. Le e-mail di servizio eseguono quanto richiesto. Nuove iscrizioni richiedono conferma e consenso. Conserviamo indirizzo, lingua, date di iscrizione/conferma, IP, user agent, pagina e versione del consenso. -- impostazioni della connessione: host, porta, nome del database, nome utente, impostazioni SSH e SSL, opzioni del driver, comandi di avvio, impostazioni Tunnel Command, livello di Safe Mode e impostazioni di IA, ma mai le password; -- query salvate: nomi, testo SQL, parole chiave e cartelle. +Ogni newsletter misura aperture e clic di ogni destinatario con un'immagine e `links.news.tablepro.app`. Amazon SES riceve ora, link, IP e user agent e li passa al server per i conteggi. Bloccare immagini ferma la misura delle aperture, non dei clic. Link di disiscrizione e posta non sono tracciati. Non esiste un interruttore separato. Disiscriviti nella newsletter o con il controllo a un clic della posta; non segue conferma e-mail. Iscriversi di nuovo richiede conferma. Rimbalzi permanenti e segnalazioni spam fermano gli invii. Chiedi l'eliminazione via [contatto](#controller). -Dalla versione che introduce gli account TablePro, l'app per Mac di ogni membro con un posto scarica le modifiche della libreria all'avvio, ogni 15 minuti e dopo ogni pubblicazione. Una pubblicazione invia solo ciò che è cambiato e rimuove solo gli elementi che quel Mac ha pubblicato e non ha più. Se un'altra persona ha modificato prima un elemento, l'app chiede quale copia tenere e mostra chi ha modificato per ultimo ogni query del team. Le versioni precedenti agli account TablePro scaricano la libreria all'avvio, al massimo una volta alla settimana, e il Mac che pubblica la scarica di nuovo subito dopo. Da queste versioni, una nuova pubblicazione sostituisce quella precedente. La sezione Library del portale account mostra ogni elemento, con il nome di chi l'ha modificato per ultimo, ai membri che possono leggere la libreria, e consente a proprietari e amministratori di eliminare elementi. Un elemento eliminato resta sul nostro server con la sua ultima versione, così ogni Mac può sincronizzarne l'eliminazione. Se la licenza termina, la libreria rimane sul nostro server finché il proprietario del team non elimina il team, il che elimina anche la libreria. +La vecchia lista ha trasferito tutti gli indirizzi non disiscritti, confermati o meno, compresi acquirenti, titolari e iscritti beta. Le disiscrizioni sono rimaste; rimbalzi e reclami sono entrati nella lista di soppressione. Vedi [conservazione](#retention). -Team Catalog, l'altra funzione Team, scrive i file delle connessioni senza password in una cartella condivisa che scegli. Non passa dal nostro server. +### Assistenza {#support} -### Aggiornamenti e plugin {#mac-updates} +Messaggi, allegati e diagnostica raggiungono noi e il servizio scelto. Possono contenere dati o segreti che includi. Crisp riceve IP, browser e pagine viste quando la chat si carica su sito e portale. Conserva l'IP se inizi una conversazione. Forniamo lingua e, nel portale autenticato, e-mail e ID account. Caricare la chat ovunque serve al legittimo interesse di assistenza. Le conversazioni iniziate si basano sul consenso. -- **Verifiche degli aggiornamenti.** Una volta al giorno l'app per Mac scarica il feed degli aggiornamenti da GitHub (`raw.githubusercontent.com`). La richiesta non invia informazioni sul Mac oltre a quelle presenti in ogni richiesta web: l'indirizzo IP e uno user agent con la versione dell'app. Per disattivarla, apri **Settings > General > Software Update** e deseleziona **Automatically check for updates**. Gli aggiornamenti stessi vengono scaricati da GitHub. -- **Catalogo dei plugin.** All'avvio dell'app e quando apri le impostazioni dei plugin, viene scaricato da GitHub l'elenco dei driver e dei temi disponibili. Non esiste un'impostazione per disattivarlo. I driver e i temi che installi vengono scaricati da GitHub e il browser dei plugin legge il numero di download dall'API di GitHub. +## Le tue app {#apps} -GitHub riceve il tuo indirizzo IP con queste richieste. A esse si applica l'informativa sulla privacy di GitHub. +| App e versione | Dati d'uso | Controllo | +| --- | --- | --- | +| Mac 0.86.0, da 0.86.0-beta.1 | Diretti a PostHog; attivi | Settings > General > Privacy | +| Linux da 0.1.0-beta.1 | Diretti a PostHog; attivi | Preferences > General > Privacy | +| iPhone/iPad distribuiti | Rapporto tramite server; spento fino al consenso | Settings > Privacy | -### Servizi che scegli di usare {#mac-third-parties} + -L'app per Mac invia dati a questi servizi solo quando li configuri, direttamente e mai tramite TablePro: +### Dati sul dispositivo {#local-data} -- **I tuoi database, server SSH e proxy**, che ricevono ciò che le connessioni inviano loro. -- **Fornitori di IA.** Quando aggiungi un fornitore e usi l'assistente IA o i suggerimenti inline, le richieste vengono inviate a quel fornitore oppure a un modello in esecuzione sul Mac. Per impostazione predefinita una richiesta include il tipo e il nome del database, le definizioni di tabelle e colonne dello schema e la query corrente. Le righe dei risultati vengono inviate solo se attivi questa opzione. Si applicano i termini del fornitore. Aggiungere GitHub Copilot scarica il suo server di linguaggio da npm e la sua impostazione "Send telemetry to GitHub" è inizialmente attiva. -- **Servizi di accesso**: Microsoft Entra ID, Google, Amazon Web Services e Cloudflare Access, quando una connessione li usa. -- **Apple Maps**, che fornisce le tessere della mappa quando visualizzi i risultati su una mappa. -- **DuckDB**, che fornisce le estensioni di DuckDB la prima volta che una query ne usa una. -- **Client MCP.** Il server MCP è disattivato per impostazione predefinita. Si avvia quando lo attivi oppure quando un client MCP che hai configurato avvia il bridge di TablePro o si associa a esso e ascolta solo sul Mac (127.0.0.1). Un client IA collegato, come Claude o Cursor, riceve i risultati che richiede e li invia al proprio servizio secondo i propri termini. -- **Server MCP che aggiungi.** Una sessione IA invia a quel server le chiamate agli strumenti che approvi, con i rispettivi argomenti. +Connessioni, cronologia query, registri locali e schede restano sul dispositivo salvo condivisione scelta. Il traffico database va ai tuoi server. Le password usano l'archivio credenziali della piattaforma. Mac riferisce le chiavi SSH nella posizione su disco. L'analisi non include host, utenti, SQL, righe o credenziali. [Integrazioni](#integrations), Team Library e assistenza hanno le eccezioni descritte. -### Dati che rimangono sul Mac {#mac-local} +### Mac {#mac-app} -Le password sono conservate nel Portachiavi di macOS. L'elenco delle connessioni, la cronologia delle query, Query Insights, le istantanee di Data Rewind, le impostazioni e le schede aperte sono conservati sul Mac. L'app fa riferimento alle chiavi SSH nella loro posizione sul disco e non le copia. Le versioni precedenti agli account TablePro non contengono un sistema di segnalazione degli arresti anomali né una libreria di analisi di terze parti. Dalla versione che introduce gli account TablePro, l'app include la libreria di PostHog, che invia i dati di utilizzo descritti sopra. La libreria contiene il sistema di segnalazione degli arresti anomali di PostHog, che l'app lascia disattivato, quindi non viene inviata alcuna segnalazione. La libreria conserva il suo ID casuale, le sue impostazioni e gli eventi non ancora inviati in file sotto `~/Library/Application Support/com.TablePro`. +L'analisi diretta e il comportamento account iniziano con 0.86.0, incluso 0.86.0-beta.1. Accedere registra il Mac e recupera il piano. Il token resta nel suo Keychain, senza sincronizzarsi su iCloud Keychain. Una chiave di licenza esistente viene scambiata per l'accesso e cancellata localmente. -## TablePro per iPhone e iPad {#ios-app} +#### Dati d'uso Mac {#mac-usage-report} -**Non viene inviato nulla a TablePro finché non attivi Share Usage Data**, al primo avvio dell'app oppure in seguito in **Settings > Privacy**. Se lo fai, l'app invia un rapporto una volta al giorno allo stesso server delle versioni dell'app per Mac precedenti agli account TablePro e il nostro server lo inoltra a PostHog nello stesso modo, senza il relativo indirizzo IP. Il rapporto contiene un hash SHA-256 dell'identificatore assegnato da Apple all'app sul dispositivo, la piattaforma, le versioni dell'app e di iOS, l'architettura del processore, la lingua dell'app, i nomi dei tipi di database delle connessioni aperte, il numero di connessioni aperte, e la data e l'ora del primo tentativo di connessione, della prima connessione riuscita e della prima query. Non contiene impostazioni degli aggiornamenti e indica sempre che nessuna licenza è attivata, perché l'app non ha né le une né l'altra. +Attivi per impostazione iniziale, senza domanda prima del primo evento. Disattiva **Share usage data** in **Settings > General > Privacy**. Avviare con l'opzione spenta non avvia PostHog. Non partono rapporti automatici di crash; il relativo modulo è disattivato. -L'app non verifica licenze o aggiornamenti e non effettua richieste di plugin. Oltre al rapporto facoltativo, si connette solo ai tuoi database e server SSH, a iCloud di Apple se attivi iCloud Sync e a Microsoft quando una connessione SQL Server accede con Microsoft Entra ID. +Gli eventi comprendono uso giornaliero con tipi/numero di connessioni aperte, primo tentativo, successo e prima query per tipo, blocchi di funzioni a pagamento e motivi, clic di upgrade, metodo di accesso/uscita e richieste d'acquisto licenza con risposte. PostHog aggiunge contesto di dispositivo, schermo, rete, sessione, app e sistema. Riceve IP e deduce posizione approssimativa. Prima dell'accesso usa ID installazione casuale senza profilo. Dopo usa ID account e profilo con versioni, architettura, lingua e posizione. Uscire crea un nuovo ID. Vedi [campi e destinazioni](https://docs.tablepro.app/security/privacy#usage-data). -Sul dispositivo, le password e le chiavi SSH incollate sono conservate nel Portachiavi e i certificati non vengono mai sincronizzati. La cronologia delle query rimane sul dispositivo. Le connessioni vengono aggiunte all'indice Spotlight locale per consentirti di cercarle. Durante l'esecuzione di una query, la relativa Live Activity mostra l'SQL sulla schermata di blocco e nella Dynamic Island espansa, a meno che non attivi **Settings > Live Activities > Hide Query**. +#### Aggiornamenti e plugin {#mac-updates} -Se condividi le analisi con gli sviluppatori di app nelle impostazioni di iPhone o iPad, Apple può passarci rapporti sugli arresti anomali e statistiche di utilizzo tramite App Store Connect. L'app non contiene un proprio sistema di segnalazione degli arresti anomali né una propria libreria di analisi di terze parti. +Feed e catalogo vengono da GitHub tramite updates.tablepro.app. Download e conteggi raggiungono GitHub. Le richieste portano IP e user agent. Disattiva **Automatically check for updates** in **Settings > General > Software Update** per fermare i controlli automatici. Il catalogo non ha interruttore. I [dettagli tecnici](https://docs.tablepro.app/security/privacy#update-checks) includono il vecchio feed. -## iCloud Sync e Handoff {#icloud} +#### Vecchie versioni Mac {#mac-license} -iCloud Sync è disattivato finché non lo attivi, sia sul Mac sia su iPhone e iPad. Quando è attivo, i record vengono inviati a un database privato nel tuo account iCloud (contenitore `iCloud.com.TablePro`). TablePro non può leggerli. +Prima di 0.86.0 lo stesso interruttore attivo controlla un rapporto al server. Contiene ID macchina hash, dati app/sistema, tipi/numero connessioni, stato licenza e date del primo tentativo/successo. Gli aggiornamenti inviati sono scartati. Il server attuale inoltra a PostHog con paese Cloudflare, senza IP o chiave e senza profilo personale. L'ID può collegarsi ai dispositivi account. Non esiste più uno storico dedicato, ma job, log, backup e archivio possono conservare dati. Vedi [conservazione](#retention). -- Sul Mac scegli cosa sincronizzare: connessioni, gruppi e tag, impostazioni, profili SSH, profili delle credenziali (nome e nome utente, mai la password), tabelle e database preferiti, query salvate (incluso il testo SQL) e cartelle delle tabelle. Un record di connessione include host, porta, nome utente, nome del database, impostazioni SSH e SSL, comandi di avvio, script prima della connessione e regole di IA. La cronologia delle query, le istantanee di Data Rewind e le fonti delle password non vengono mai sincronizzate. -- iPhone e iPad sincronizzano connessioni, gruppi e tag. -- Le password vengono sincronizzate solo se attivi anche **Passwords** in Sync Categories sul Mac oppure **Sync Passwords** su iPhone e iPad, tramite iCloud Keychain. Sul Mac questo sincronizza anche gli altri segreti che TablePro conserva nel Portachiavi, come le chiavi dei fornitori di IA e la chiave di licenza. Dalla versione che introduce gli account TablePro, la chiave di licenza viene eliminata appena è scambiata con un accesso, e il token che mantiene l'accesso dell'app non viene mai sincronizzato. +Le vecchie versioni contattano il servizio licenza dopo l'inserimento della chiave. Inviano chiave, ID, nome Mac e versioni. I dispositivi appartengono all'account; attivazione/disattivazione sono registrate con IP e user agent. L'[inventario](https://docs.tablepro.app/security/privacy#older-mac-reports) mantiene campi e tempi. -Sul Mac, iCloud Sync fa parte di una licenza Pro o Team. Su iPhone e iPad è gratuito. +### iPhone e iPad {#ios-app} -Handoff passa l'ID della connessione aperta e il nome della tabella aperta tra i tuoi dispositivi tramite Apple. Se non è aperta alcuna tabella, passa invece il nome della connessione oppure il suo host quando la connessione non ha un nome. Non invia impostazioni o credenziali. +L'app distribuita non invia rapporti prima di **Share Usage Data** al primo avvio o in **Settings > Privacy**. La base è il consenso. Il rapporto giornaliero passa dal server a PostHog senza IP, con paese Cloudflare e senza profilo. Contiene ID Apple hash, piattaforma, versioni, architettura, lingua, tipi/numero connessioni e date di primo tentativo, successo e prima query. Indica sempre nessuna licenza e non ha impostazioni aggiornamento. Non controlla account, licenze, aggiornamenti o plugin. -## Sito web {#website} +Database/SSH, iCloud facoltativo e accesso Microsoft Entra per SQL Server inviano a quei servizi. Password e chiavi incollate restano in Keychain; certificati e cronologia sul dispositivo. Connessioni entrano nell'indice Spotlight locale. Live Activity può mostrare SQL sulla schermata bloccata salvo Hide Query. Separatamente, Share With App Developers di Apple può inviarci crash e statistiche tramite App Store Connect. L'app non ha reporter crash o libreria analitica esterna. Vedi [iOS](https://docs.tablepro.app/ios#privacy). -**Hosting.** Il sito web e il portale account funzionano sul nostro server, dietro Cloudflare. Come qualsiasi server web, ricevono il tuo indirizzo IP, lo user agent del browser e l'indirizzo di ogni pagina che richiedi. +### Linux {#linux-app} -**Cloudflare Web Analytics.** Cloudflare aggiunge il suo script Web Analytics alle pagine del sito web; il portale account non lo esegue. Il browser lo carica da `static.cloudflareinsights.com` e segnala a Cloudflare ogni visualizzazione: la pagina, il sito che vi ha rimandato, il tempo di caricamento e il browser, il sistema operativo e il tipo di dispositivo. Cloudflare aggiunge il paese da cui proviene la connessione. Lo script non imposta cookie e non conserva nulla nel browser e Cloudflare dichiara di non usare l'indirizzo IP o i dettagli del browser per identificarti tramite fingerprinting. Cloudflare ci mostra dati complessivi, come le visualizzazioni per pagina o per paese, anziché una registrazione di ogni visitatore. Base giuridica: legittimo interesse. +Da 0.1.0-beta.1 l'accesso registra il dispositivo secondo [account](#account). I segreti usano il Portachiavi desktop. Gli aggiornamenti del gestore pacchetti seguono il distributore scelto. Nessun rapporto crash automatico. -**Google Analytics.** Il sito carica Google Analytics su ogni pagina in Consent Mode. Finché non scegli **Consenti** nella richiesta sui cookie, non imposta cookie e invia a Google solo un segnale senza cookie per ogni pagina, senza identificatori conservati sul dispositivo. Se lo autorizzi, Google Analytics imposta i cookie `_ga` e `_ga_` e misura le visite, come le pagine visualizzate, i clic sui download e l'avvio di un acquisto. L'archiviazione per la pubblicità, la personalizzazione degli annunci e i dati utente per la pubblicità sono sempre negati. Google dichiara che Google Analytics 4 non registra né conserva gli indirizzi IP. La nostra proprietà Google Analytics usa il periodo di conservazione predefinito di Google: Google elimina i dati a livello di utente e di evento raccolti dopo 2 mesi. I rapporti standard di Google, che contengono dati complessivi anziché identificatori, non sono interessati. Base giuridica: il tuo consenso per i cookie. +#### Dati d'uso Linux {#linux-usage-data} -**Chat dal vivo.** Ogni pagina del sito web e del portale account mostra un pulsante di chat del nostro fornitore, Crisp. Dopo il caricamento della pagina, il browser carica lo script di Crisp da `client.crisp.chat` e Crisp imposta i cookie descritti in [Cookie e archiviazione nel browser](#cookies). Crisp riceve il tuo indirizzo IP, i dettagli del browser, gli indirizzi delle pagine visualizzate e i messaggi che scrivi e conserva l'indirizzo IP se avvii una conversazione. Comunichiamo a Crisp la lingua della pagina. Quando hai effettuato l'accesso al portale account, gli comunichiamo anche l'indirizzo email e l'ID del tuo account, che collegano la conversazione al tuo account. Non gli comunichiamo nessun'altra informazione su di te. Crisp ha sede in Francia. +Attivi da 0.1.0-beta.1. Disattiva Share usage data in Preferences > General > Privacy. Diretti a PostHog EU: uso giornaliero con tipi/numero connessioni, primo tentativo/successo e query per tipo, accesso/uscita, clic upgrade, richieste licenza e risposte Buy. Portano ID installazione/account, versioni, architettura, lingua e metadati SDK. PostHog riceve IP e deduce posizione. Prima dell'accesso ID casuale senza profilo; dopo profilo che collega uso e acquisti. Uscire azzera l'ID. Nessun host, SQL, righe o credenziali. La registrazione dispositivo include separatamente l'hostname. -**Script di acquisto.** Quando punti il mouse su un pulsante Acquista o lo raggiungi con il tasto Tab, il browser carica lo script di acquisto di {merchant} da jsDelivr (`cdn.jsdelivr.net`), che riceve il tuo indirizzo IP e i dettagli del browser. Il pagamento stesso si apre su {merchant} solo quando fai clic. +Disattivare ferma nuovi invii. Una richiesta in corso può finire. Non elimina eventi precedenti o ferma account e analisi server. Vedi [conservazione](#retention), [diritti](#rights) e [inventario](https://docs.tablepro.app/security/privacy#linux-usage-data). -**Verifica della newsletter.** Quando inizi a compilare il modulo della newsletter, il browser carica Cloudflare Turnstile da `challenges.cloudflare.com` per verificare che si stia iscrivendo una persona; Cloudflare riceve il tuo indirizzo IP e i dettagli del browser. + -**Attribuzione degli acquisti.** Quando arrivi sul sito, il browser conserva per 90 giorni nell'archiviazione locale un record della prima visita chiamato `tablepro:attribution`: l'origine della visita (i tag `ref` o `utm_*` del link seguito oppure il sito di provenienza), la pagina di arrivo e il momento della visita. Se inizi un acquisto, il record viene inviato con la richiesta di pagamento. Il nostro server passa l'origine della visita a {merchant} come metadati del pagamento, la conserva con l'ordine dopo il pagamento e la invia a PostHog insieme all'avvio del pagamento e al pagamento. La pagina di arrivo e il momento della visita non vengono conservati. +## Servizi scelti {#integrations} -**Documentazione.** La documentazione su docs.tablepro.app è ospitata da Mintlify, che riceve il tuo indirizzo IP e i dati del tuo browser a ogni pagina, e le pagine caricano i caratteri da Google Fonts. La barra di navigazione mostra il numero di stelle del repository, che il tuo browser legge dall'API di GitHub, quindi anche GitHub riceve il tuo indirizzo IP e i dati del tuo browser. Questa richiesta non imposta cookie. La documentazione pone la propria domanda sui cookie, perché non può leggere la risposta che hai dato su questo sito. Finché lì non scegli **Allow**, non imposta cookie e non conserva alcun ID visitatore. Se lo autorizzi, Google Analytics imposta i cookie `_ga` e `_ga_` e misura le tue visite alla documentazione, e Mintlify conserva un ID visitatore casuale, `mintlify_anonymous_id`, nell'archiviazione locale per contarle. **Cookie settings**, nel piè di pagina della documentazione, cambia la tua risposta, e il rifiuto rimuove entrambi. Base giuridica: il tuo consenso. +Fornitori database, SSH e proxy ricevono direttamente il traffico richiesto. I servizi d'accesso ricevono autenticazione quando configurati. Apple Maps fornisce mappe; DuckDB estensioni delle query. Gli helper scaricati per connessioni e IA contattano i fornitori. Valgono le loro condizioni. -**Lingua e sconto regionale.** Per suggerirti la pagina nella tua lingua quando il browser non ne indica nessuna tra quelle del sito, e per mostrare lo sconto regionale che il checkout applicherebbe, il sito chiede a Cloudflare (`/cdn-cgi/trace`) e al nostro server da quale paese proviene la tua connessione, e può leggere il fuso orario del tuo dispositivo. Nessuna delle due richieste porta cookie, e la pagina non conserva nulla delle risposte. Base giuridica: legittimo interesse. +### iCloud e Handoff {#icloud} -Leggere il sito non imposta cookie propri. Le richieste di iscrizione alla newsletter, checkout e verifica dei codici sconto dal sito pubblico omettono le credenziali: non inviano i cookie del portale account né accettano cookie dalla risposta. Aprire le pagine del portale account è un’operazione distinta: accedervi imposta il cookie del portale elencato sotto. Tutto ciò che il sito conserva nel browser è indicato in [Cookie e archiviazione del browser](#cookies). +iCloud Sync facoltativo conserva connessioni, gruppi, tag, impostazioni, query e profili SSH nel CloudKit privato. Su Mac sincronizza anche preferiti e cartelle di tabelle e database, nomi, nomi utente e modalità password dei profili di credenziali, mai la password del profilo. Apple ospita; non possiamo leggerlo. Sincronizzare password è separato e inizialmente spento, tramite iCloud Keychain cifrato end-to-end. Su Mac copre altri segreti scritti lì, come chiavi IA e vecchie licenze. I token account non sincronizzano. Mac richiede Pro o Team; iOS è gratuito. Handoff passa ID connessione e tabella, o nome/host senza tabella, tra dispositivi Apple senza credenziali. Vedi [controlli](https://docs.tablepro.app/features/icloud-sync). -## Acquisti {#purchases} +### IA e strumenti esterni {#ai-tools} -Le licenze sono vendute da {merchant} (Polar Software, Inc.), il nostro merchant of record e rivenditore. Acquisti da {merchant} secondo i suoi termini per gli acquirenti e la sua informativa sulla privacy. {merchant} riceve il pagamento, calcola e versa eventuali imposte sulle vendite o IVA, invia ricevute e fatture e gestisce problemi e controversie relativi ai pagamenti. Raccoglie nome, indirizzo email, indirizzo di fatturazione e dati di pagamento. Non vediamo mai i dati completi della tua carta. +L'IA invia direttamente al fornitore o modello locale scelto. Può inviare prompt, schema, SQL e conversazione. Allegare righe della griglia è spento inizialmente. Risultati di strumenti query autorizzati entrano anche nella conversazione e raggiungono il fornitore indipendentemente dall'interruttore. GitHub Copilot scarica un helper da npm e inizia con Send telemetry to GitHub acceso. -Quando avvii un pagamento, il nostro server comunica a {merchant} cosa acquisti, la lingua della pagina da cui acquisti, l'origine della visita (vedi [Sito web](#website)) e il tuo indirizzo IP, che {merchant} usa per determinare imposte e valuta. Da {merchant} riceviamo il tuo indirizzo email, il nome e l'indirizzo di fatturazione come li hai inseriti, ciò che hai acquistato, gli importi, gli ID degli ordini e degli abbonamenti e le modifiche successive, come rinnovi, disdette e rimborsi. Con ogni ordine conserviamo l'indirizzo email, il paese di fatturazione e gli importi. +MCP è spento inizialmente e non parte così, nemmeno via bridge o abbinamento. Acceso, i client autenticati chiedono dati secondo i permessi concessi. Un client IA può inviare risultati al suo servizio. Server MCP esterni ricevono argomenti approvati. Vedi [controlli IA/MCP](https://docs.tablepro.app/security/privacy#ai-providers). -Un acquisto fatto senza accedere va all'account TablePro dell'indirizzo email usato per l'acquisto, che viene creato se non esiste e resta non verificato fino al tuo primo accesso. Nel [portale account]({account}) puoi cambiare il ciclo di fatturazione o i posti di un abbonamento, disdirlo o riprenderlo e chiedere un rimborso. Quando disdici, il motivo scelto e l'eventuale commento vanno a {merchant} e sono conservati con l'abbonamento. Carta, fatture, dati fiscali e indirizzo di fatturazione sono nel [portale clienti di {merchant}]({portal}), che il portale account apre per te. I rimborsi sono descritti nella [politica di rimborso](/it/refund-policy) e le possibilità offerte dalla licenza nei [termini di servizio](/it/terms). +## Siti e memoria browser {#website} -## Portale account {#account} +Server e Cloudflare ricevono IP, user agent e pagine. Cloudflare Web Analytics conta visite, provenienza, tempi di caricamento, categorie browser/sistema/dispositivo e paesi senza memoria browser o fingerprint. Il legittimo interesse è capire e mantenere il sito. -Il [portale account]({account}) su account.tablepro.app è dove gestisci il tuo account TablePro: licenze, dispositivi, fatturazione e team. Funziona sul nostro server, dietro Cloudflare, come il sito web. +Google Analytics carica in Consent Mode. Prima di Allow manda un segnale senza cookie o ID salvato. Il consenso attiva cookie e misure di visite, download e acquisti. Memoria pubblicitaria, personalizzazione e dati pubblicitari sono sempre negati. Google dichiara che GA4 non memorizza IP. -**Il tuo account.** Un account appartiene a una persona ed è identificato da un indirizzo email. Contiene quell'indirizzo, il nome e la lingua che imposti, i tuoi metodi di accesso, i dispositivi collegati, le tue licenze e i tuoi ordini, i team di cui fai parte con il tuo ruolo e il tuo posto, e un registro di audit delle modifiche apportate, come accessi, nuovi dispositivi e modifiche ai team, con l'indirizzo IP e il browser della richiesta che ha fatto ciascuna. Le nostre email ti arrivano nella lingua del tuo account. +Crisp carica su ogni pagina come in [assistenza](#support). Puntare o usare Tab su Buy carica lo script {merchant} da jsDelivr, che riceve IP/browser; il clic apre checkout. Iniziare il modulo carica Turnstile contro abusi, legittimo interesse. Paese e fuso suggeriscono lingua/sconti regionali per legittimo interesse; richieste senza cookie e risposte non conservate sulla pagina. -**Accesso.** Ti inviamo via email un link e un codice di 6 cifre: il link funziona una volta, il codice consente 5 tentativi e scadono entrambi dopo 15 minuti. Puoi anche aggiungere passkey; di ognuna conserviamo la chiave pubblica, il nome che le dai, se si sincronizza tra i tuoi dispositivi e quando è stata aggiunta e usata l'ultima volta. Oppure puoi accedere con Apple, GitHub o Google: il fornitore ci comunica un tuo ID e il tuo indirizzo email verificato, e Apple anche il tuo nome la prima volta. Conserviamo l'ID e l'indirizzo con il tuo account e, per Apple, un token che teniamo cifrato e revochiamo presso Apple quando scolleghi Apple o elimini l'account. Se l'indirizzo di un fornitore appartiene a un account esistente, prima di collegarli inviamo a quell'account un link e un codice da confermare, a meno che l'indirizzo non sia gestito da Google (Gmail o Google Workspace). +La prima visita crea `tablepro:attribution` per 90 giorni: tag/provenienza, pagina iniziale e data. Al checkout il server passa la fonte a {merchant} come metadati, la conserva nell'ordine e invia a PostHog con checkout/pagamento. Pagina e data non restano. La base è legittimo interesse nel misurare fonti d'acquisto. Richieste pubbliche di newsletter, acquisto e sconto omettono credenziali e non impostano cookie portale. Il portale non esegue script analitici, ma il server invia eventi. -**I tuoi team.** Quando inviti qualcuno in un team, conserviamo il suo indirizzo email, il ruolo e se l'invito comprende un posto, e gli inviamo un link valido per 7 giorni. Proprietari e amministratori vedono i membri del team con nomi e indirizzi email, gli inviti e il registro di audit del team, che mostra chi ha cambiato cosa, compresi gli indirizzi invitati, ma mai un indirizzo IP o un browser. I membri vedono il team, il suo piano, i suoi posti e il proprio ruolo. +### Documentazione {#docs} -**I tuoi dati.** Nelle impostazioni puoi cambiare nome, indirizzo email e lingua, aggiungere e rimuovere metodi di accesso, scaricare i dati del tuo account come file JSON ed eliminare l'account. Non puoi eliminarlo finché sei proprietario di un team con altri membri. L'eliminazione rimuove i tuoi metodi di accesso, dispositivi, licenze, appartenenze ai team e i team di cui sei l'unico membro, elimina l'iscrizione alla newsletter del tuo indirizzo email e termina i tuoi abbonamenti senza rimborso. Ciò che conserviamo dopo è indicato in [Per quanto tempo conserviamo i dati](#retention). +Mintlify ospita docs.tablepro.app. Richieste pagine, Google Fonts e stelle GitHub rivelano IP/browser ai fornitori. Docs chiede consenso distinto. Prima di Allow non salva cookie analitici o ID. Allow abilita Google Analytics e ID Mintlify. Cookie settings nel piè di pagina revoca e rimuove entrambi. La scelta del sito non passa a quell'origine. -**Cosa carica il portale.** Il portale non carica Google Analytics, Cloudflare Web Analytics né altri script di analisi, e non pone alcuna domanda sui cookie. Mostra la chat dal vivo di Crisp descritta in [Sito web](#website), e un acquisto fatto lì apre il pagamento di {merchant} sopra la pagina. +### Cookie e memoria {#cookies} -## Newsletter {#newsletter} +Cloudflare Web Analytics non salva nulla nel browser. Le pagine pubbliche non impostano cookie propri. Queste durate sono distinte dalla conservazione dei fornitori. La memoria necessaria mantiene accesso o scelta; consenso e interessi sono descritti qui. -Se ti iscrivi alle note di rilascio, prima ti inviamo un link di conferma nella lingua della pagina da cui ti iscrivi. Il link vale 7 giorni e un indirizzo ne riceve al massimo 3 al giorno. Dopo la conferma, il tuo indirizzo entra nella nostra lista della newsletter, che conserviamo sul nostro server con quella lingua. Per l'iscrizione e la conferma registriamo quando sono avvenute, l'indirizzo IP e il browser da cui sono arrivate, la pagina da cui ti sei iscritto e la versione del testo di consenso che hai accettato. Cloudflare Turnstile verifica il modulo, come descritto in [Sito web](#website). +| Nome/servizio | Scopo e avvio | Durata e controllo | +| --- | --- | --- | +| `_ga`, `_ga_` | Google Analytics dopo consenso | Fino a 2 anni; rifiutare elimina | +| `tablepro:analytics-consent` | Scelta necessaria, distinta sito/docs | Fino a cancellazione | +| `tablepro:attribution` | Fonte iniziale con checkout; legittimo interesse | 90 giorni | +| `theme`, `tablepro:language`, `tablepro:campaign-closed` | Aspetto, lingue scelte/scartate, avviso chiuso; legittimo interesse | Fino a cancellazione; tema portale distinto | +| `mintlify_anonymous_id` | ID docs dopo consenso locale | Fino a cancellazione o rifiuto | +| Cookie `crisp-client/` | Continuità chat dopo caricamento su ogni pagina; legittimo interesse | 6 mesi, rinnovati al ritorno | +| `__Host-tp_session` | Accesso necessario al portale | 30 giorni autenticato; massimo 10 minuti durante accesso; uscire elimina | +| `locale`, `context`, `sign-in-return-to` | Lingua, vista Personal/gruppo e ritorno; legittimo interesse | Primi due fino a cancellazione; ritorno 15 minuti | -Ogni newsletter registra le aperture e i clic di tutti i destinatari. Contiene una piccola immagine, e i suoi link passano per `links.news.tablepro.app`. Quando il tuo client email carica l'immagine o segui un link, Amazon SES registra l'ora dell'apertura o del clic e il link cliccato, con l'indirizzo IP e lo user agent che invia il tuo client email, e li passa al nostro server, che conta le aperture e i clic di ogni newsletter. Un client email che non carica le immagini non registra aperture. Il link per annullare l'iscrizione e i link che aprono una nuova email non sono tracciati. - -Ogni newsletter contiene un link per annullare l'iscrizione, che apre una pagina con un pulsante per farlo, e intestazioni che permettono alla tua app di posta di annullarla con un clic. Dopo l'annullamento non inviamo altre newsletter né alcuna email per confermarlo, e per iscriverti di nuovo serve una nuova conferma. Anche segnalare una newsletter come spam annulla l'iscrizione, e appena un'email al tuo indirizzo risulta non recapitabile in modo permanente, smettiamo di inviare a quell'indirizzo. Per eliminare anche l'indirizzo, scrivici, oppure elimina il tuo account TablePro se usa quell'indirizzo. - -Nel passaggio dal nostro server precedente, ogni indirizzo della sua mailing list che non aveva annullato l'iscrizione è entrato in questa lista come iscritto, confermato o no: quel server aveva aggiunto anche gli indirizzi di acquirenti, titolari di licenza e iscritti alla beta, e inviava loro email. Gli indirizzi che avevano annullato l'iscrizione sono stati trasferiti come disiscritti, e quelli le cui email non erano state recapitate o erano state segnalate come spam sono finiti invece nella nostra lista di soppressione, così nessuna newsletter li raggiunge. - -## Cookie e archiviazione nel browser {#cookies} - -La lettura del sito pubblico e le sue richieste per newsletter, checkout e codici sconto non impostano cookie propri. Accedere al portale account, o iniziare a farlo, imposta l'unico cookie strettamente necessario elencato sotto. Cloudflare Web Analytics non imposta cookie e non conserva nulla nel browser. I cookie di Google Analytics vengono impostati solo con il tuo consenso. Crisp imposta i propri cookie su ogni pagina dopo il caricamento della chat. Nulla viene usato per pubblicità o venduto. - -- **`_ga` e `_ga_`** (cookie di Google Analytics, fino a 2 anni, solo se autorizzi le analisi): un identificatore casuale per il browser e lo stato della visita corrente. Rifiutarli o modificare successivamente la risposta li elimina. Base giuridica: consenso. -- **`tablepro:analytics-consent`** (archiviazione locale, finché non la cancelli): la risposta alla richiesta sulle analisi, per non riproporla su ogni pagina. Il portale account non carica analisi, quindi non pone questa domanda e non legge la risposta. Base giuridica: strettamente necessaria per rispettare la tua scelta. -- **`tablepro:attribution`** (archiviazione locale, 90 giorni): il record della prima visita descritto in [Sito web](#website). Non contiene un tuo identificatore e viene inviato solo con una richiesta di pagamento, che passa l'origine della visita a {merchant}. Base giuridica: legittimo interesse. -- **`theme`** (archiviazione locale, finché non la cancelli): la scelta di un aspetto chiaro, scuro o di sistema. Il portale account conserva la propria. Base giuridica: legittimo interesse. -- **`tablepro:language`** (archiviazione locale, finché non la cancelli): la lingua che hai scelto nel menu delle lingue o nella barra della lingua, e ogni lingua di cui hai chiuso il suggerimento, perché non venga più proposta. Base giuridica: legittimo interesse. -- **`tablepro:campaign-closed`** (archiviazione locale, finché non la cancelli): la promozione di cui hai chiuso l’avviso sopra l’intestazione, perché resti chiuso su tutte le pagine finché quella promozione non finisce. Base giuridica: legittimo interesse. -- **`mintlify_anonymous_id`** (archiviazione locale su docs.tablepro.app, impostato da Mintlify, solo se lì autorizzi Google Analytics): l'ID visitatore descritto in [Sito web](#website). Il rifiuto lo rimuove. La documentazione conserva la propria risposta `tablepro:analytics-consent`. Base giuridica: consenso. -- **Cookie che iniziano con `crisp-client/`** (Crisp, per esempio `crisp-client/session/…`; 6 mesi, rinnovati quando ritorni; impostati su ogni pagina dopo il caricamento della chat): mantengono la chat e la conversazione tra pagine e visite. Base giuridica: legittimo interesse, per offrire supporto su ogni pagina. -- **`__Host-tp_session`** (cookie del portale account, 30 giorni dall'accesso): mantiene l'accesso. Prima dell'accesso viene impostato solo mentre è in corso un accesso con passkey, Apple, GitHub, Google o da un'app, per al massimo 10 minuti. L'uscita lo elimina. Le richieste per newsletter, checkout e codici sconto dal sito pubblico omettono le credenziali e non lo ricevono mai. Base giuridica: strettamente necessario. -- **`locale`, `context` e `sign-in-return-to`** (archiviazione locale del portale account): la lingua scelta lì prima dell'accesso e se hai aperto per ultimo Personale o un team, entrambe finché non le cancelli, e per 15 minuti la pagina a cui tornare dopo aver aperto un link di accesso ricevuto via email. Base giuridica: legittimo interesse. - -Puoi modificare o revocare la risposta sulle analisi in qualsiasi momento tramite **Impostazioni cookie** nel piè di pagina di ogni pagina oppure qui: +Modifica il consenso con Cookie settings nel piè di pagina o qui: -## Base giuridica {#lawful-basis} +## Destinatari {#sharing} -Per i lettori dello Spazio economico europeo e del Regno Unito, le basi giuridiche ai sensi del GDPR e del GDPR del Regno Unito sono: +| Destinatario | Dati e scopo | +| --- | --- | +| [OVH]({ovhPrivacy}) | Server e dati del servizio | +| [Cloudflare]({cloudflarePrivacy}) | DNS/proxy, R2 e backup, Turnstile, Cloudflare Web Analytics | +| [Amazon Web Services]({awsPrivacy}) | E-mail Amazon SES, consegna e interazione; link CloudFront, eventi SNS/SQS | +| [PostHog EU]({posthogPrivacy}) | Analisi app/server; ID senza nomi/e-mail; richieste dirette con IP | +| [{merchant}]({merchantPrivacy}) | Merchant of record indipendente; checkout, fatturazione e acquisti | +| [Crisp]({crispPrivacy}) | Chat, browser/pagine e identità account autenticato | +| [Google]({googlePrivacy}) | Analisi sito/docs e font; accesso scelto | +| [Mintlify]({mintlifyPrivacy}) | Hosting docs e misura consentita | +| [GitHub]({githubPrivacy}) | Download, aggiornamenti, plugin, stelle, issue pubbliche e accesso facoltativo | +| [Apple]({applePrivacy}) | Accesso facoltativo; servizi e diagnostica nelle sezioni app/integrazioni | +| [jsDelivr]({jsdelivrPrivacy}) | Script checkout con IP/browser | -- **Contratto** (Art. 6(1)(b)): vendita e fornitura della licenza, il tuo account con i suoi metodi di accesso e dispositivi, verifiche della licenza, portale account e Team Library. -- **Legittimo interesse** (Art. 6(1)(f)): dati di utilizzo dell'app per Mac e relativa analisi in PostHog, eventi su accessi, acquisti, dispositivi e team che il nostro server invia a PostHog, registro di audit dell'account, sicurezza e prevenzione degli abusi, compreso Cloudflare Turnstile nel modulo della newsletter, registri del server, Cloudflare Web Analytics, record di attribuzione degli acquisti, ricerca del paese per la lingua e lo sconto regionale, e chat dal vivo su ogni pagina. -- **Consenso** (Art. 6(1)(a)): cookie di Google Analytics, rapporto sull'utilizzo dell'app per iPhone e iPad, newsletter e conversazioni che avvii nella chat dal vivo. -- **Obbligo legale** (Art. 6(1)(c)): registri fiscali e contabili e risposte a richieste legittime. +I membri ricevono contenuti e dettagli secondo il ruolo. Le integrazioni ricevono i dati diretti loro. Non vendiamo dati o li condividiamo per pubblicità. Altre divulgazioni solo se obbligatorie per legge. Si applicano anche le politiche dei fornitori. -## Chi riceve i dati {#sharing} +## Luoghi di trattamento {#transfers} -Condividiamo dati personali solo con i servizi necessari al funzionamento di TablePro: +OVH e Amazon SES sono a Singapore (`ap-southeast-1` per SES). PostHog è nell'UE; Crisp ha sede in Francia. {publisherName} opera dal Vietnam. Fornitori statunitensi, inclusi {merchant}, Google, GitHub, Cloudflare, Amazon Web Services e Mintlify, trattano negli USA. Archivi e backup possono riguardare altri paesi. Le garanzie SEE/Regno Unito usano clausole contrattuali standard o altri meccanismi approvati dei fornitori; Google usa anche EU-US Data Privacy Framework. Chiedi informazioni via [contatto](#controller). -- **{merchant}**, il merchant of record per gli acquisti. -- **Amazon Web Services**, il cui servizio Amazon SES invia le nostre email dalla regione Asia Pacifico (Singapore): link e codici di accesso, inviti ai team, avvisi sull'account e sulla sicurezza, e newsletter. Ci segnala quando un'email viene recapitata, non viene recapitata o viene segnalata come spam, e registriamo i mancati recapiti e le segnalazioni di spam per smettere di inviare a quegli indirizzi. Per le newsletter segnala anche ogni apertura e ogni clic, come descritto in [Newsletter](#newsletter). -- **Il nostro fornitore di hosting e Cloudflare**, per il sito web, il portale account e il server con cui comunicano le app. Cloudflare conta anche le visualizzazioni con Cloudflare Web Analytics e verifica il modulo della newsletter con Turnstile. -- **Google**, per Google Analytics sul sito web e sulla documentazione. -- **Crisp**, per la chat dal vivo su ogni pagina del sito web e del portale account. -- **PostHog** (EU Cloud), il nostro servizio di analisi del prodotto, che riceve i rapporti sull'utilizzo delle app e gli eventi del nostro server su accessi, acquisti, dispositivi e team, con l'ID del tuo account ma mai il tuo indirizzo email o il tuo nome. I dati di utilizzo che l'app per Mac invia direttamente arrivano a PostHog con l'indirizzo IP del tuo Mac. -- **Apple, GitHub e Google**, quando accedi al tuo account con loro. -- **jsDelivr**, che serve al browser lo script di acquisto di {merchant} quando punti un pulsante Acquista. -- **Mintlify**, che ospita la documentazione su docs.tablepro.app. -- **GitHub**, che ospita il feed degli aggiornamenti, il catalogo dei plugin e i download, e fornisce il numero di stelle mostrato nella documentazione. +## Conservazione {#retention} -Non vendiamo dati personali e non li condividiamo con gli inserzionisti. +Non abbiamo fissato limiti dove indicato. Eliminare l'account non elimina PostHog o Crisp. Scrivi via [contatto](#controller) per la cancellazione presso quei fornitori su richiesta. -## Trasferimenti internazionali {#transfers} +| Dati | Conservazione e cancellazione | +| --- | --- | +| Analisi PostHog | Nessun limite fissato. Disattivare lascia eventi precedenti. Chiedi cancellazione. | +| Job e log server | I job mantengono rapporti durante invii/tentativi. I log servono a sicurezza e diagnosi. Nessun limite globale; nessuna promessa di zero copie. | +| Dispositivi | Anche rimossi, fino alla cancellazione account | +| Account e audit | Rimossi account, accessi, dispositivi, licenze e appartenenze. Audit senza limite; rimossi campi e-mail e IP/user agent dell'autore, ma indirizzi nel testo libero possono restare. | +| Ordini e avvisi fornitori | Ordini per fisco/contabilità senza limite. Rimossi legami account/e-mail. Eventi {merchant}, Amazon SES e Apple restano; dati personali d'acquisto e destinatario/interazione e-mail sono ripuliti per l'account eliminato. | +| Team Library | Elementi cancellati mantengono ultima versione per sync. Cancellazione normale gruppo: libreria dopo 30 giorni, prima ripristinabile. Eliminare account dell'unico proprietario rimuove entrambi subito. Fine licenza non elimina. | +| Autenticazione | Link/codici scadono in 15 minuti, cancellati 7 giorni dopo. Sessioni 30 giorni. Token scadono 90 giorni dopo uso, cancellati 30 dopo. Job e-mail mantengono testo chiaro fino alla pulizia: un giorno dopo invio o 7 dopo rinuncia. | +| Newsletter | Nuovi indirizzi non confermati dopo 30 giorni. Confermati/migrati fino a richiesta o eliminazione account con quell'indirizzo. Disiscrizione conserva indirizzo segnato come tale. | +| Soppressione | Indirizzi respinti/segnalati e prime/ultime date restano dopo cancellazione account/iscrizione per impedire invii. Nessun limite. | +| Google Analytics | Dati utente/evento: 2 mesi; rapporti totali standard separati | +| Cloudflare Web Analytics | Totali degli ultimi sei mesi disponibili | +| Assistenza | Crisp e posta fino a cancellazione, anche su richiesta. Nessun limite. | +| Backup e archivio migrazione | Nessun limite. Eliminare account non rimuove copie. La vecchia base completa include nomi/e-mail, licenze, ordini, gruppi, nomi dispositivi, iscritti, beta, posta, rapporti d'uso e log licenza con IP. | -I servizi elencati operano in diversi paesi, quindi i tuoi dati possono essere trattati fuori dal tuo paese. {merchant}, Google, GitHub, Cloudflare e Mintlify trattano dati negli Stati Uniti; Google lo fa nell'ambito dell'EU-US Data Privacy Framework e delle clausole contrattuali standard. PostHog li tratta nell'Unione europea. Amazon Web Services invia le nostre email da Singapore. Quando la legge lo richiede, i trasferimenti dallo SEE e dal Regno Unito si basano sulle clausole contrattuali standard o su un altro meccanismo approvato. +## Scelte e diritti {#rights} -## Per quanto tempo conserviamo i dati {#retention} +Usa interruttori, Cookie settings sito/docs e disiscrizione. Revocare consenso vale per il futuro senza invalidare il passato. Gli interruttori non eliminano dati né fermano analisi server. In [Settings del portale]({account}) esporti o elimini account; non copre tutti i record conservati. -- **Rapporti sull'utilizzo ed eventi di analisi**: il nostro server non ne conserva copia dopo averli inoltrati a PostHog. Non abbiamo stabilito un limite di tempo per essi in PostHog. -- **Dati del nostro server precedente**: una copia di tutto il suo database è conservata a tempo indeterminato in un archivio. Comprende licenze, ordini e membri dei team con i loro indirizzi email e nomi; i Mac attivati con una licenza, con i loro nomi; gli iscritti alla newsletter e alla beta; i registri delle email inviate; e i rapporti sull'utilizzo e i registri delle richieste di licenza che conservava, con i loro indirizzi IP. -- **Dispositivi**: conservati, compresi quelli che hai rimosso, finché non elimini l'account. -- **Registro di audit del tuo account**: conservato finché l'account esiste, con l'indirizzo IP e il browser di ogni modifica che hai fatto. Eliminare l'account rimuove dal registro i tuoi indirizzi email e l'indirizzo IP e il browser delle tue azioni; la traccia di ogni modifica resta. -- **Ordini**: conservati per finalità fiscali e contabili. Eliminare l'account rimuove da essi il tuo indirizzo email e il tuo account. -- **Notifiche di {merchant}, Amazon SES e Apple**: conservate. Quelle di {merchant} contengono nome, indirizzo email e indirizzo di fatturazione; eliminare l'account li rimuove da quelle sui tuoi acquisti. Quelle di Amazon SES contengono l'indirizzo a cui è andata ogni email e, per una newsletter, l'indirizzo IP e lo user agent di ogni apertura e di ogni clic; eliminare l'account li rimuove da quelle sulle email inviate al tuo indirizzo e dal nostro registro di ogni email inviata. -- **Team Library**: finché un elemento non viene modificato; un elemento eliminato mantiene la sua ultima versione. La libreria viene eliminata con il suo team, 30 giorni dopo che il proprietario ha eliminato il team; fino ad allora il proprietario può ripristinarlo. Rimane dopo la fine di una licenza. -- **Link e codici di accesso**: scadono dopo 15 minuti e vengono eliminati 7 giorni dopo. Le sessioni del portale durano 30 giorni. Il token che mantiene l'accesso di un'app scade 90 giorni dopo l'ultimo uso da parte dell'app e viene eliminato 30 giorni dopo. -- **Account eliminati**: l'account, i suoi metodi di accesso, dispositivi, licenze e appartenenze ai team vengono eliminati subito. Gli ordini e il registro di audit restano come descritto sopra. Ciò che il nostro server precedente conservava su di te resta nel suo archivio, descritto sopra. -- **Newsletter**: un indirizzo non confermato entro 30 giorni viene eliminato insieme al suo link di conferma. Un indirizzo confermato, o trasferito dal nostro server precedente, resta nella nostra lista con la traccia di come vi è entrato finché non lo eliminiamo su tua richiesta o non elimini l'account TablePro che lo usa; dopo l'annullamento dell'iscrizione resta segnato come disiscritto, così non riceve alcuna newsletter. -- **Elenco di soppressione**: un indirizzo da cui un'email è tornata indietro in modo definitivo, o il cui titolare ha segnalato una delle nostre email come spam, resta nel nostro elenco di soppressione con la data della prima e dell'ultima volta, anche dopo l'eliminazione dell'account o dell'iscrizione alla newsletter che lo usava. Così non gli inviamo più alcuna email. -- **Google Analytics**: dati a livello di utente e di evento per 2 mesi, il periodo di conservazione predefinito di Google usato dalla nostra proprietà. I cookie durano fino a 2 anni oppure vengono eliminati quando li rifiuti. -- **Cloudflare Web Analytics**: Cloudflare ci mostra i totali delle visualizzazioni degli ultimi sei mesi. Nulla viene conservato nel browser. -- **Chat dal vivo ed email di supporto**: conservate da Crisp e nella nostra casella email finché non vengono eliminate. Chiedici di eliminare le tue conversazioni e le tue email. -- **Registri del server**: i registri del nostro server web e del nostro server, conservati sul nostro server per sicurezza e risoluzione dei problemi. Non abbiamo ancora stabilito un periodo fisso. +Secondo residenza, chiedi accesso, rettifica, cancellazione, limitazione, portabilità o opposizione al legittimo interesse. Nessun account necessario: scrivi via [contatto](#controller). Possiamo chiedere dettagli per trovare i record, come ID installazione. Non inviare mai una chiave di licenza in chiaro per e-mail. Rispondiamo entro un mese. Puoi reclamare all'autorità di protezione dati. Obblighi legali possono limitare la cancellazione. -## I tuoi diritti {#rights} - -A seconda di dove vivi, puoi chiederci di: - -- fornirti una copia dei dati personali che conserviamo su di te (accesso); -- correggerli (rettifica); -- eliminarli (cancellazione), salvo quelli che dobbiamo conservare per legge; -- limitare il loro utilizzo (limitazione); -- inviarteli in un formato strutturato e leggibile da una macchina (portabilità); -- smettere di usarli sulla base del legittimo interesse (opposizione). - -Puoi revocare il consenso in qualsiasi momento e presentare un reclamo all'autorità di protezione dei dati. Per esercitare uno di questi diritti, scrivi a [{email}](mailto:{email}). Rispondiamo entro 30 giorni. Nel [portale account]({account}), le impostazioni ti danno anche una copia dei dati del tuo account ed eliminano l'account. Per tutto il resto, come un indirizzo della newsletter o un Mac senza account, indica l'indirizzo email, la chiave di licenza o il dispositivo interessato. I dati conservati da {merchant}, Google, Crisp o GitHub sono soggetti anche alle rispettive informative. +### Diritti regionali {#regional-rights} **Residenti in California.** Il California Consumer Privacy Act ti dà il diritto di sapere quali informazioni personali raccogliamo, di chiederne l'eliminazione, di rifiutarne la vendita e di non subire un trattamento diverso per l'esercizio di questi diritti. Non vendiamo informazioni personali. ## Minori {#children} -TablePro non è rivolto ai minori di 16 anni e non raccogliamo consapevolmente i loro dati personali. Se ritieni che un minore ci abbia fornito dati personali, contattaci e li elimineremo. +TablePro non si rivolge a minori di 16 anni e non ne raccogliamo consapevolmente dati. Se ritieni che un minore ci abbia dato dati, contattaci e li elimineremo. ## Sicurezza {#security} -Il traffico tra le app, il sito web, il portale account e il nostro server usa HTTPS. Gli account TablePro non hanno password. I link e i codici di accesso, i token che mantengono l'accesso delle app e i token API dei team vengono conservati come hash. L'attività che invia via email un link e un codice di accesso li conserva in chiaro finché non viene eliminata: un giorno dopo l'invio dell'email, o 7 giorni dopo che abbiamo smesso di tentare l'invio. Entrambi smettono di funzionare 15 minuti dopo la tua richiesta. L'accesso ai nostri sistemi è limitato a {publisherName} e ai fornitori di servizi elencati in [Chi riceve i dati](#sharing). Nessun sistema è perfettamente sicuro. Per segnalare una vulnerabilità, consulta la [pagina Sicurezza](/it/security#report) o scrivi a [{email}](mailto:{email}). - -## Modifiche a questa informativa {#changes} - -Quando questa informativa cambia, la aggiorniamo qui con una nuova data di "Ultimo aggiornamento" e, quando la legge lo richiede, te lo comunichiamo direttamente. +I servizi usano HTTPS. Gli account non hanno password. Credenziali e token API di gruppo sono hash, salvo il job e-mail temporaneo in [conservazione](#retention). Accesso limitato a {publisherName} e [destinatari](#sharing). Nessun sistema è perfettamente sicuro. Segnala vulnerabilità nella [pagina sicurezza](/it/security#report). -## Contatti {#contact} +## Modifiche {#changes} -Per domande sulla privacy o su questa informativa, scrivi a [{email}](mailto:{email}). +La pagina mostra l'ultimo aggiornamento. Le versioni precedenti restano nella [cronologia pubblica del repository web]({webGithub}/commits/main/resources/data/legal/en/privacy.md). Aggiorniamo prima di nuove finalità, avvisiamo direttamente quando la legge lo impone e chiediamo nuovo consenso se necessario. diff --git a/resources/data/legal/ja/privacy.md b/resources/data/legal/ja/privacy.md index b60ad8f9..ad7b0edb 100644 --- a/resources/data/legal/ja/privacy.md +++ b/resources/data/legal/ja/privacy.md @@ -1,281 +1,228 @@ --- title: プライバシーポリシー -description: TablePro のアプリ、ウェブサイト、アカウントポータルが収集する情報、送信先、保存期間、変更・削除方法を説明します。 -updatedAt: "2026-11-04" +description: TablePro が収集するデータ、目的、受領者、保存期間、および選択肢と権利。 +updatedAt: "2026-11-05" --- -このポリシーは、Mac 版 TablePro、iPhone・iPad 版 TablePro、tablepro.app のウェブサイト、docs.tablepro.app のドキュメント、account.tablepro.app のアカウントポータルに適用されます。それぞれが現在実際に送信・保存している情報を説明します。両アプリは AGPLv3 のオープンソースで、以下のデータを送信するコードは [TablePro のリポジトリ]({github})で確認できます。 +本方針は Mac、Linux、iPhone、iPad の TablePro、tablepro.app、docs.tablepro.app、アカウント、購入、サポート、ニュースレターに適用されます。[技術一覧](https://docs.tablepro.app/security/privacy)にフィールド、接続先、設定を記載しています。ソースは[公開リポジトリ]({github})にあります。 ## 概要 {#summary} -- Mac アプリは利用状況データを送信します。初期設定でオンですが、オフにできます。iPhone・iPad アプリは、お客様がオンにした場合のみ利用状況レポートを送信します。 -- TablePro アカウントにサインインするかライセンスキーを有効化すると、Mac アプリは Mac を名前とともに運営者のサーバーに登録し、定期的にプランを確認します。 -- 実行したクエリ、結果、パスワードは TablePro に送信されません。例外は、お客様が Team Library に公開する接続設定(パスワードは含まれません)と保存済みクエリです。 -- AI リクエストは Mac アプリから設定した AI プロバイダーへ直接送られ、運営者には送られません。 -- TablePro アカウントに対応したバージョン以降、Mac アプリは利用状況データを EU にある製品分析サービス PostHog へ直接送ります。PostHog は Mac の IP アドレスを受け取り、そこからおおよその位置を割り出します。それ以前のバージョンと iPhone・iPad アプリは利用状況レポートを運営者のサーバーへ送り、サーバーは IP アドレスなしで PostHog に転送します。アカウントには、サインインや新しいデバイスなど、アカウントへの変更の記録が、各変更を行ったリクエストの IP アドレスとブラウザーとともに残ります。 -- ウェブサイトは Cookie を設定しない Cloudflare Web Analytics でページ閲覧数を集計します。Google Analytics も読み込みますが、Cookie はお客様が許可した場合にのみ設定します。すべてのページでチャットサービス Crisp も読み込み、Crisp 独自の Cookie を設定します。 -- account.tablepro.app のアカウントポータルは解析スクリプトを読み込みません。サインイン状態を保つ Cookie を 1 つ設定し、設定画面ではアカウントのデータのダウンロードやアカウントの削除ができます。 -- 運営者のメールは、Amazon Web Services のサービスである Amazon SES が送信します。ニュースレターでは、各受信者がいつ開封し、どのリンクをクリックしたかを記録します。 -- 購入商品の販売者は、運営者の merchant of record である {merchant} です。 +通常のクエリと結果は端末とデータベース間で送受信されます。利用データに SQL、行、認証情報は含まれません。Team Library への公開、サポートへの送信、AI や外部ツールとの共有を選んだ内容は、その受領者に届きます。 -## 責任者 {#controller} +Mac と Linux の利用データは初期状態で有効で、無効にできます。公開済みの iPhone と iPad アプリは同意後にだけ送信します。直接送信する分析データはアカウントや購入と結び付きます。無効化してもアカウント通信やサーバー分析は止まりません。 -TablePro のアプリとこのウェブサイトを公開している、{publisherCountry}・{publisherCity}の個人開発者 {publisherName}(以下「運営者」)が、ここに記載する個人データの責任者(データ管理者)です。このポリシーやお客様のデータについてのご質問は、[{email}](mailto:{email}) にお送りください。 +サイトは閲覧を計測し、全ページで Crisp を読み込みます。Google Analytics Cookie は選択が必要です。ニュースレターは開封とクリックを計測します。アカウント削除後も PostHog、Crisp などに記録が残ります。[保存期間](#retention)と[権利](#rights)をご確認ください。[管理者](#controller)はアカウントのない方の請求も受け付けます。 -## Mac 版 TablePro {#mac-app} + -### 利用状況データ {#mac-usage-report} +## 管理者 {#controller} -TablePro アカウントに対応したバージョン以降、Mac アプリは利用状況データを、EU にある製品分析サービス PostHog(`eu.i.posthog.com`)へ直接送ります。**初期設定でオンになっており、最初のイベントを送る前に確認はしません**。オフにするには、**Settings > General > Privacy** を開き、**Share usage data** のチェックを外してください。オフの間、アプリは PostHog に何も送りません。設定がオフのまま起動した場合は、PostHog のライブラリ自体を起動しません。 +{publisherCity}、{publisherCountry} の個人開発者 {publisherName} が、記載する個人データの管理者です。連絡先は [{email}](mailto:{email}) です。データ保護責任者はいません。チームのアカウント、招待、サービス記録は管理者として扱います。Team Library の公開内容はチームの指示に従って処理します。公開内容と閲覧者はチームが決めます。 -アプリは次のときにイベントを送ります。 + -- 動作中に 1 日 1 回。開いている接続のデータベースの種類の名前(例:PostgreSQL)と、開いている接続の数を付けます。 -- 初めて接続を試みたとき、初めて接続に成功したとき、初めてクエリを実行したとき。それぞれデータベースの種類を付けます。 -- 有料機能が使えないことを表示したとき。アプリの起動ごとに機能 1 つにつき 1 回、機能と理由(サインインしていないなど)を付けます。 -- アップグレードをクリックしたとき。クリックしたアプリ内の場所を付けます。 -- サインインしたとき(アプリ内、ライセンスキー、または Mac に保存済みのキーの交換という方法を付けます)と、サインアウトしたとき。 +## データと目的 {#data-use} -PostHog のライブラリは、すべてのイベントに Mac のモデル、画面サイズ、タイムゾーンと言語、Wi-Fi 接続かどうか、アプリのバージョン、ビルド、バンドル ID、macOS のバージョン、ライブラリのバージョン、ランダムなセッション ID を加えます。PostHog はリクエストごとに Mac の IP アドレスを受け取り、そこから国や都市などのおおよその位置を割り出します。設定がオンの間、ライブラリは PostHog から設定とフィーチャーフラグも取得します(`eu-assets.i.posthog.com` の `/config` と `eu.i.posthog.com` の `/flags`)。 +EEA と英国向けに各目的の法的根拠を示します。契約(第 6(1)(b) 条)、正当な利益(6(1)(f))、同意(6(1)(a))、法的義務(6(1)(c))です。法的または同程度の重大な影響を持つ自動決定は行いません。 -サインイン前のイベントには、ライブラリが Mac 上で作るランダムな ID が付き、PostHog はこの ID について個人のプロフィールを作りません。サインインすると、イベントにはアカウント ID が付き、PostHog 上のそのアカウントのプロフィールには、アプリと macOS のバージョン、プロセッサアーキテクチャ、アプリの言語、PostHog が IP アドレスから割り出したおおよその位置が記録されます。これにより、インストールとサインイン、購入が結び付きます。サインアウトすると新しいランダムな ID になります。アプリの利用状況データには、マシン ID、ライセンスの有効化状態、アップデート設定はもう含まれません。 + -TablePro アカウントに対応する前のバージョンは、代わりに同じ設定のもとで、起動の約 10 秒後、その後は動作中に 1 日 1 回、`api.tablepro.app` へ利用状況レポートを送信します。レポートには次の情報が含まれます。 +### アカウントと端末 {#account} -- マシン ID:Mac のハードウェア UUID の SHA-256 ハッシュ(UUID 自体は送信しません)。 -- プラットフォーム、アプリのバージョン、macOS のバージョン、プロセッサアーキテクチャ、アプリの言語。 -- 開いている接続のデータベースの種類の名前(例:PostgreSQL)と、開いている接続の数。 -- ライセンスが有効化されているかどうか。 -- 初めて接続を試みた日時と、初めて接続に成功した日時。 -- アップデート設定(インストール方法と確認頻度)。この情報はレポートの到着時に運営者のサーバーが破棄します。 +無料のローカル利用にアカウントは不要です。アカウントサービスにはメールアドレスが必要です。氏名、言語、ログイン方法、ライセンス、注文、端末、チームの役割と席を保存します。Mac/Linux の端末登録はマシン ID、端末名、プラットフォーム、アプリ/OS バージョンを送ります。端末名に氏名が入ることがあります。利用データとは別です。目的と根拠は契約に基づくアカウントとプランの提供です。 -イベントにもレポートにも、ホスト名、ユーザー名、パスワード、クエリ、行データは含まれません。 +ログインにはメールのリンクとコード、パスキー、Apple、GitHub、Google を使います。パスキー記録は公開鍵、名前、同期状態、利用日を含みます。認証提供者は ID と確認済みメールを、Apple は氏名も提供する場合があります。Apple のトークンは暗号化し、連携解除や削除時に失効させます。変更は IP とユーザーエージェント付きで記録します。正当な利益は保護と不正調査です。 -運営者のサーバーは、レポートも送信元の IP アドレスも保存しません。レポートは、Cloudflare が接続について示す国を付け、ライセンスキーと IP アドレスは付けずに、マシン ID に関するイベントとして PostHog に転送します。PostHog はそこから個人のプロフィールを作りません。アカウントは同じマシン ID でデバイスを管理するため、サインインした Mac やライセンスを有効化した Mac のレポートは、アカウントと関連付けられることがあります。 +[ポータル]({account})でプロフィールや認証方法の変更、端末管理、JSON エクスポート、削除ができます。他のメンバーがいるチームの所有者は削除できません。削除は返金なしで購読を終了します。残る記録は[保存期間](#retention)に記載しています。 -### ライセンス確認 {#mac-license} +### 購入 {#purchases} -TablePro アカウントに対応する前のバージョンがライセンスサーバーに通信するのは、ライセンスキーの入力後のみです。有効化時、前回の確認から {revalidateDays} 日以上経過した後の起動時、およびその後 {revalidateDays} 日ごとに通信します。各確認では次の情報を送信します。 +{merchant}(Polar Software, Inc.)は merchant of record かつ再販者です。独自の条件で氏名、メール、請求先、支払い情報を集め、支払い、税、領収書、紛争を処理します。完全なカード情報は受け取りません。 -- ライセンスキー。 -- [利用状況データ](#mac-usage-report)で説明したマシン ID。 -- macOS で設定された Mac の名前(お客様の名前が含まれることがあります)。 -- アプリと macOS のバージョン。 +決済、税、通貨のため購入内容、言語、訪問元、IP を送ります。購入者/請求先情報、金額、注文/購読 ID、更新、解約、返金を受け取ります。注文にはメール、国、金額、流入元を保存します。未ログイン購入は必要に応じてメールの未確認アカウントを作ります。解約理由やコメントは {merchant} に届き購読に保存されます。処理は購入契約、税務/会計記録は法的義務に基づきます。必要情報がなければ決済できません。[{merchant} のポータル]({portal})、[利用条件](/ja/terms)、[返金](/ja/refund-policy)をご確認ください。 -Mac の有効化を解除する際に送るのは、ライセンスキーとマシン ID のみです。 +### チームと共有内容 {#library} -運営者のサーバーは、有効化した各 Mac を、ライセンスを持つアカウントのデバイスとして保存します。保存するのはマシン ID と名前、アプリと macOS のバージョン、最後に通信した日時です。Mac の有効化と無効化は、リクエストの IP アドレスとユーザーエージェントとともにそのアカウントの監査ログに記録されますが、定期的な確認は記録されません。アカウントポータルにはデバイスの名前が表示されます。サーバーに接続できない場合、有料機能は最後に確認が成功してから {graceDays} 日間使えます。 +招待者はメール、役割、席の選択を提供します。所有者と管理者は氏名/メール、招待、チーム変更と招待先を見ますが、監査 IP やブラウザーは見ません。メンバーはチーム、プラン、席数、自分の役割を見ます。契約上のサービス提供に使用します。 -### TablePro アカウント {#mac-account} +Mac で Team Library に公開すると接続設定と保存クエリがサーバーに送られ、権限のあるメンバーに届きます。設定はホスト、ポート、DB、ユーザー、SSH/SSL、起動コマンド、Tunnel Command、AI 設定です。クエリは名前、SQL、キーワード、フォルダーです。パスワード欄は除外しますが、SQL や自由文中の秘密は除去しません。最終編集者を表示します。脱退だけでは共有内容を消しません。[削除時期](#retention)をご覧ください。Team Catalog は選んだ共有フォルダーに書き込みます。 -TablePro アカウントに対応したバージョン以降は、ライセンスキーではなく [TablePro アカウント](#account)で Mac アプリにサインインします。アプリはサインインページをブラウザーのウィンドウで開き、そこでサインインメールのコードを入力することもできます。サインイン後、アプリは Mac をアカウントのデバイスとして登録します。登録するのは上記のマシン ID、Mac の名前、プラットフォーム、アプリと macOS のバージョンです。その後、起動中は 1 日 1 回、署名付きファイルとしてプランを運営者のサーバーから取得します。このファイルにより、有料機能はサーバーなしで最大 {offlineDays} 日間使えます。アプリのサインイン状態を保つトークンは、その Mac の macOS キーチェーンにだけ保存され、パスワードの同期をオンにしていても iCloud キーチェーンで同期されることはありません。 +### 利用とサービスの分析 {#analytics} -Mac にすでにあるライセンスキーは、そのキーを持つアカウントへのサインインと 1 回だけ交換され、その後 Mac から削除されます。デバイスはアプリまたはアカウントポータルで削除でき、Mac が初めてライセンスを使うとメールでお知らせします。 +正当な利益は利用の理解、問題修正、購入計測です。Mac/Linux は[アプリ](#apps)のデータを送ります。サーバーもログイン、購入、端末、チームのイベントを PostHog に送ります。アカウント ID を含み、氏名/メールは含みません。ID がアプリとサービスの活動を結びます。スイッチはアプリのイベントだけを止め、必要な通信やサーバーイベントを止めません。[権利](#rights)で異議や削除を請求できます。 -### Team Library {#library} +### ニュースレターとメール {#newsletter} -Team Library は Team ライセンスの機能です。接続で **Share > Publish to Team Library…** を選ぶか、Favorites サイドバーで **Publish Saved Queries to Team…** を選ぶと、Mac アプリは公開する情報を運営者のサーバーへアップロードします。 +Amazon SES がコード、招待、通知、ニュースレターを送ります。サービスメールは依頼されたサービスを履行します。新規購読は確認と同意が必要です。アドレス、言語、登録/確認日、IP、ユーザーエージェント、登録ページ、同意文の版を保存します。 -- 接続設定:ホスト、ポート、データベース名、ユーザー名、SSH と SSL の設定、ドライバーオプション、起動時コマンド、Tunnel Command の設定、Safe Mode レベル、AI 設定。パスワードは含みません。 -- 保存済みクエリ:名前、SQL テキスト、キーワード、フォルダー。 +各ニュースレターは画像と `links.news.tablepro.app` で全受信者の開封/クリックを計測します。Amazon SES は時刻、リンク、IP、ユーザーエージェントを受け、集計用にサーバーへ渡します。画像遮断は開封計測を止めますがクリックは止めません。解除リンクとメールリンクは追跡しません。計測だけのスイッチはありません。本文かメールアプリのワンクリック機能で解除できます。その後の確認メールは送りません。再登録には確認が必要です。恒久的な不達と迷惑メール報告で送信を止めます。[連絡先](#controller)でアドレス削除を請求できます。 -TablePro アカウントに対応したバージョン以降、席のある各メンバーの Mac アプリは、起動時、15 分ごと、公開のたびにライブラリの変更をダウンロードします。公開では変更した分だけを送り、その Mac が公開して今はもう持っていない項目だけを削除します。ほかの人が先に項目を変更していた場合は、どちらを残すかを尋ねます。また、各チームクエリを最後に変更した人を表示します。TablePro アカウントに対応する前のバージョンは起動時に、最大でも週に 1 回ライブラリをダウンロードします。公開した Mac は、その直後に再度ダウンロードします。これらのバージョンから再公開すると、以前に公開した内容を置き換えます。アカウントポータルの Library は、ライブラリを閲覧できるメンバーに、各項目を最後に変更した人の名前とともに表示し、オーナーと管理者は項目を削除できます。削除した項目は、すべての Mac が削除を同期できるよう、最後のバージョンとともに運営者のサーバーに残ります。ライセンスが終了しても、チームのオーナーがチームを削除するまでライブラリは運営者のサーバーに残り、チームの削除とともにライブラリも削除されます。 +旧リストは確認済みかを問わず、未解除の全アドレスを移行しました。購入者、ライセンス所有者、ベータ登録者を含みます。解除済みは維持し、不達/苦情は送信停止リストへ移しました。[保存期間](#retention)をご覧ください。 -もう一つの Team 機能である Team Catalog は、選択した共有フォルダーにパスワードを含まない接続ファイルを書き込みます。運営者のサーバーを経由しません。 +### サポート {#support} -### アップデートとプラグイン {#mac-updates} +メッセージ、添付、診断は開発者と選んだサービスに届きます。あなたが含めた DB データや秘密も届きます。サイト/ポータルでチャットを読み込むと Crisp が IP、ブラウザー、閲覧ページを受けます。会話開始後は IP を保存します。ページ言語と、ログイン中はメール/アカウント ID を渡します。全ページの読み込みはサポート提供という正当な利益、開始した会話は同意に基づきます。 -- **アップデート確認**。Mac アプリは 1 日 1 回、GitHub(`raw.githubusercontent.com`)から更新フィードをダウンロードします。すべてのウェブリクエストに含まれる IP アドレスと、アプリのバージョンを含む User-Agent 以外に、Mac の情報は送信しません。オフにするには **Settings > General > Software Update** を開き、**Automatically check for updates** のチェックを外します。アップデート自体も GitHub からダウンロードします。 -- **プラグインカタログ**。起動時とプラグイン設定を開いたときに、利用可能なドライバーとテーマの一覧を GitHub からダウンロードします。これをオフにする設定はありません。インストールするドライバーとテーマも GitHub からダウンロードし、プラグインブラウザーは GitHub API からダウンロード数を取得します。 +## アプリ {#apps} -これらのリクエストでは GitHub に IP アドレスが送られ、GitHub 独自のプライバシー声明が適用されます。 +| アプリと版 | 利用データ | 設定 | +| --- | --- | --- | +| Mac 0.86.0、0.86.0-beta.1 から | PostHog に直接、初期状態で有効 | Settings > General > Privacy | +| Linux 0.1.0-beta.1 から | PostHog に直接、初期状態で有効 | Preferences > General > Privacy | +| 公開済み iPhone/iPad | サーバー経由、同意まで無効 | Settings > Privacy | -### お客様が選んで利用するサービス {#mac-third-parties} + -Mac アプリは、お客様が設定した場合にのみ次のサービスへ直接データを送信します。TablePro は経由しません。 +### 端末上のデータ {#local-data} -- **お客様のデータベース、SSH サーバー、プロキシ**は、接続が送信する情報を受け取ります。 -- **AI プロバイダー**。プロバイダーを追加し、AI アシスタントまたはインライン提案を使うと、リクエストはそのプロバイダー、または Mac 上で動作するモデルへ送られます。初期設定では、データベースの種類と名前、スキーマのテーブルとカラム定義、現在のクエリが含まれます。結果の行データは、お客様がオンにした場合のみ送られます。プロバイダー自身の規約が適用されます。GitHub Copilot を追加すると、言語サーバーが npm からダウンロードされ、「Send telemetry to GitHub」は初期設定でオンです。 -- **ログインサービス**:接続で利用する Microsoft Entra ID、Google、Amazon Web Services、Cloudflare Access。 -- **Apple Maps**は、結果を地図に表示する際に地図タイルを提供します。 -- **DuckDB**は、クエリで拡張機能を初めて使うときに、その拡張機能を提供します。 -- **MCP クライアント**。MCP サーバーは初期設定ではオフです。お客様がオンにするか、設定済みの MCP クライアントが TablePro のブリッジを起動またはペアリングすると開始し、Mac 内(127.0.0.1)のみで待ち受けます。Claude や Cursor などの接続した AI クライアントは、要求した結果を受け取り、独自の規約に従って自社サービスへ送信します。 -- **追加した MCP サーバー**。AI セッションは、お客様が承認したツール呼び出しとその引数を、そのサーバーへ送信します。 +接続一覧、履歴、ローカルログ、タブは共有を選ばなければ端末に残ります。DB 通信は選んだサーバーへ行きます。パスワードはプラットフォームの認証情報ストアを使います。Mac は SSH 鍵を元の場所で参照します。分析にホスト名、ユーザー名、SQL、行、認証情報は含みません。[連携](#integrations)、Team Library、サポートには記載した例外があります。 -### Mac 内に残るデータ {#mac-local} +### Mac {#mac-app} -パスワードは macOS キーチェーンに保存されます。接続一覧、クエリ履歴、Query Insights、Data Rewind のスナップショット、設定、開いているタブは Mac に保存されます。SSH キーはディスク上の場所を参照し、コピーはしません。TablePro アカウントに対応する前のバージョンには、クラッシュレポーターや他社のアクセス解析ライブラリは含まれていません。TablePro アカウントに対応したバージョン以降は、上記の利用状況データを送る PostHog のライブラリを含みます。このライブラリには PostHog のクラッシュレポーターが含まれますが、アプリはオフのままにしているため、クラッシュレポートは送信されません。ライブラリは、ランダムな ID、設定、まだ送っていないイベントを `~/Library/Application Support/com.TablePro` 内のファイルに保存します。 +直接分析とアカウント動作は 0.86.0、初版 0.86.0-beta.1 からです。ログインで端末登録とプラン取得を行います。トークンはその Mac の Keychain に残り iCloud Keychain に同期しません。既存ライセンスキーはログインに交換後、ローカルから削除します。 -## iPhone・iPad 版 TablePro {#ios-app} +#### Mac 利用データ {#mac-usage-report} -初回起動時または **Settings > Privacy** で、**Share Usage Data をオンにしない限り、TablePro へは何も送信されません**。オンにすると、TablePro アカウントに対応する前の Mac アプリと同じサーバーへ 1 日 1 回レポートを送ります。サーバーは同じ方法でレポートを PostHog に転送し、IP アドレスは送りません。レポートには、Apple がデバイス上のアプリに付与する識別子の SHA-256 ハッシュ、プラットフォーム、アプリと iOS のバージョン、プロセッサアーキテクチャ、アプリの言語、開いている接続のデータベースの種類の名前、開いている接続の数、初めて接続を試みた日時、初めて接続に成功した日時、初めてクエリを実行した日時が含まれます。アップデート設定は含まれず、ライセンスは常に「有効化されていない」と報告されます。アプリにはどちらも存在しないためです。 +初期状態で有効で、最初の送信前には尋ねません。**Settings > General > Privacy** の **Share usage data** を無効にしてください。無効で起動すると PostHog ライブラリは開始しません。自動クラッシュ報告はなく、PostHog の収集機能を無効にしています。 -ライセンス確認、アップデート確認、プラグインリクエストは行いません。任意のレポートを除き、接続先はお客様のデータベースと SSH サーバー、iCloud Sync をオンにした場合の Apple の iCloud、SQL Server 接続で Microsoft Entra ID を使う場合の Microsoft のみです。 +イベントは接続種別/数付きの毎日の利用、初回接続試行/成功、初めてクエリを実行した際の DB 種別、有料機能の制限と理由、アップグレードクリック、ログイン方法/ログアウト、ライセンス購入案内と回答です。PostHog は端末、画面、ネットワーク、セッション、アプリ、OS 情報を付加し、IP から概略位置を求めます。ログイン前はランダムなインストール ID で個人プロフィールなし。ログイン後はアカウント ID と版、アーキテクチャ、言語、位置のプロフィールです。ログアウトで新規 ID になります。[詳細](https://docs.tablepro.app/security/privacy#usage-data)をご覧ください。 -デバイス上では、パスワードと貼り付けた SSH キーをキーチェーンに保管し、証明書は同期しません。クエリ履歴はデバイス内に残ります。接続はデバイス上の Spotlight インデックスに登録され、検索できます。クエリ実行中は、**Settings > Live Activities > Hide Query** をオンにしない限り、ライブアクティビティがロック画面と展開した Dynamic Island に SQL を表示します。 +#### 更新とプラグイン {#mac-updates} -iPhone または iPad の設定でアプリ開発者と解析情報を共有すると、Apple がクラッシュレポートや利用統計を App Store Connect 経由で運営者へ提供する場合があります。アプリ自体にクラッシュレポーターや他社のアクセス解析ライブラリはありません。 +更新フィードとカタログは updates.tablepro.app 経由で GitHub から取得します。ダウンロードや件数取得も GitHub へ行き、IP とユーザーエージェントを含みます。**Settings > General > Software Update** の **Automatically check for updates** を無効にすると自動確認を止めます。カタログは無効化できません。[技術詳細](https://docs.tablepro.app/security/privacy#update-checks)に旧版のフィードもあります。 -## iCloud Sync と Handoff {#icloud} +#### 古い Mac 版 {#mac-license} -iCloud Sync は、Mac と iPhone・iPad のいずれでも、お客様がオンにするまで無効です。オンにすると、記録はお客様の iCloud アカウント内の非公開データベース(コンテナ `iCloud.com.TablePro`)へ保存されます。TablePro は読むことができません。 +0.86.0 より前は同じ既定有効の設定でサーバーに報告します。マシン ID のハッシュ、版、接続種別/数、ライセンス状態、初回試行/成功日を含みます。更新設定も送りますがサーバーは捨てます。現在は Cloudflare の国を付け、IP/キーや個人プロフィールなしで PostHog へ転送します。ID でアカウント端末と関連付けられます。専用履歴は保存しませんが、ジョブ、ログ、バックアップ、旧アーカイブには残り得ます。[保存期間](#retention)をご覧ください。 -- Mac では同期対象を選べます。接続、グループ、タグ、設定、SSH プロファイル、認証情報プロファイル(名前とユーザー名のみで、パスワードは含みません)、テーブルとデータベースのお気に入り、保存済みクエリ(SQL テキストを含む)、テーブルフォルダーです。接続の記録にはホスト、ポート、ユーザー名、データベース名、SSH と SSL の設定、起動時コマンド、接続前スクリプト、AI ルールが含まれます。クエリ履歴、Data Rewind のスナップショット、パスワードの取得元は同期しません。 -- iPhone・iPad は接続、グループ、タグを同期します。 -- パスワードを同期するには、Mac の Sync Categories の **Passwords**、または iPhone・iPad の **Sync Passwords** もオンにする必要があります。iCloud キーチェーンを利用します。Mac では、AI プロバイダーのキーやライセンスキーなど、TablePro がキーチェーンに保存するその他の秘密情報も同期します。TablePro アカウントに対応したバージョン以降、ライセンスキーはサインインと交換された時点で削除され、アプリのサインイン状態を保つトークンは同期されません。 +旧版はキー入力後だけライセンスサービスに接続します。キー、ID、Mac 名、版を送ります。端末はアカウントに属し、有効化/解除は IP とユーザーエージェント付きで監査します。[一覧](https://docs.tablepro.app/security/privacy#older-mac-reports)にフィールドと間隔があります。 -Mac の iCloud Sync は Pro または Team ライセンスの機能です。iPhone・iPad では無料です。 +### iPhone と iPad {#ios-app} -Handoff は Apple を通じて、お客様自身のデバイス間で、開いている接続の ID とテーブル名を渡します。テーブルを開いていない場合は接続名を、名前がない場合はホストを渡します。設定や認証情報は送信しません。 +公開アプリは初回または **Settings > Privacy** で **Share Usage Data** を有効にするまで利用報告を送りません。根拠は同意です。毎日サーバーから IP を除き、Cloudflare の国付き、個人プロフィールなしで PostHog に送ります。Apple 端末 ID のハッシュ、プラットフォーム、版、アーキテクチャ、言語、接続種別/数、初回試行/成功、初めてクエリを実行した日を含みます。常にライセンスなしを報告し更新設定はありません。アカウント、ライセンス、更新、プラグイン確認もしません。 -## ウェブサイト {#website} +DB/SSH、任意の iCloud、SQL Server 用 Microsoft Entra ログインは各サービスに送ります。パスワード/貼り付けた SSH 鍵は Keychain、証明書/履歴は端末に保存します。接続はローカル Spotlight に入ります。Live Activity は Hide Query を有効にしないとロック画面に SQL を表示し得ます。別途 Apple の Share With App Developers 設定で App Store Connect 経由のクラッシュ/利用統計を受け取る場合があります。アプリにクラッシュ収集や外部分析ライブラリはありません。[iOS 詳細](https://docs.tablepro.app/ios#privacy)をご覧ください。 -**ホスティング**。ウェブサイトとアカウントポータルは Cloudflare の背後にある運営者のサーバーで動作します。一般的なウェブサーバーと同様、IP アドレス、ブラウザーの User-Agent、要求した各ページのアドレスを受け取ります。 +### Linux {#linux-app} -**Cloudflare Web Analytics**。Cloudflare はウェブサイトのページに Web Analytics スクリプトを追加します。アカウントポータルでは実行されません。ブラウザーは `static.cloudflareinsights.com` から読み込み、ページ、リンク元サイト、読み込み時間、ブラウザー、OS、デバイスの種類をページ閲覧ごとに Cloudflare へ報告します。Cloudflare は接続元の国も追加します。スクリプトは Cookie を設定せず、ブラウザーにも何も保存しません。Cloudflare は、IP アドレスやブラウザーの情報をフィンガープリントによる識別に使わないとしています。運営者に提供されるのは、ページ別・国別の閲覧数などの集計値で、訪問者個別の記録ではありません。法的根拠:正当な利益。 +0.1.0-beta.1 からログインで[アカウント](#account)の端末登録を行います。秘密はデスクトップのキーリングを使います。パッケージ更新は選んだ配布者に従います。自動クラッシュ報告はありません。 -**Google Analytics**。サイトはすべてのページで Consent Mode の Google Analytics を読み込みます。Cookie の質問で**許可**を選ぶまでは Cookie を設定せず、デバイスに識別子を保存することなく、ページごとに Cookie を使わないシグナルのみを Google に送ります。許可すると `_ga` と `_ga_` Cookie を設定し、閲覧ページ、ダウンロードのクリック、チェックアウトの開始などを計測します。広告用ストレージ、広告のパーソナライズ、広告用ユーザーデータは常に拒否します。Google は Google Analytics 4 が IP アドレスを記録・保存しないとしています。運営者のプロパティは Google の初期設定の保存期間を使用し、Google は収集したユーザー単位・イベント単位のデータを 2 か月後に削除します。識別子ではなく集計値を保持する標準レポートは影響を受けません。法的根拠:Cookie へのお客様の同意。 +#### Linux 利用データ {#linux-usage-data} -**チャット**。ウェブサイトとアカウントポータルのすべてのページに、チャットプロバイダー Crisp のボタンを表示します。ページの読み込み後、ブラウザーは `client.crisp.chat` からスクリプトを読み込み、Crisp は [Cookie とブラウザーストレージ](#cookies)に記載する Cookie を設定します。Crisp は IP アドレス、ブラウザーの情報、閲覧ページのアドレス、入力したメッセージを受け取り、会話を始めた場合は IP アドレスを保持します。運営者はページの言語を Crisp に伝えます。アカウントポータルにログインしている場合は、会話をアカウントと結び付けるため、アカウントのメールアドレスとアカウント ID も Crisp に伝えます。お客様に関するその他の情報は伝えません。Crisp の所在地はフランスです。 +0.1.0-beta.1 から初期状態で有効です。Preferences > General > Privacy の Share usage data で無効にします。PostHog EU に直接、接続種別/数付き毎日の利用、初回試行/成功/クエリの種別、ログイン/アウト、アップグレード、ライセンス案内/Buy 回答を送ります。ID、版、アーキテクチャ、言語、SDK 情報を含みます。IP から概略位置を求めます。ログイン前はランダム ID でプロフィールなし、後はアカウントプロフィールで利用と購入を結びます。ログアウトで ID をリセットします。ホスト名、SQL、行、認証情報は含みません。別の端末登録にはホスト名が入ります。 -**チェックアウトスクリプト**。購入ボタンにポインタを合わせるか Tab キーでフォーカスすると、ブラウザーは jsDelivr(`cdn.jsdelivr.net`)から {merchant} のスクリプトを読み込みます。jsDelivr は IP アドレスとブラウザーの情報を受け取ります。{merchant} のチェックアウト自体が開くのはクリックしたときだけです。 +無効化は新しい送信を止めます。進行中の要求は完了する場合があります。過去のイベント削除やアカウント/サーバー分析停止にはなりません。[保存期間](#retention)、[権利](#rights)、[技術一覧](https://docs.tablepro.app/security/privacy#linux-usage-data)をご覧ください。 -**ニュースレターの確認**。ニュースレターのフォームに入力し始めると、登録するのが人であることを確かめるため、ブラウザーは `challenges.cloudflare.com` から Cloudflare Turnstile を読み込みます。Cloudflare は IP アドレスとブラウザーの情報を受け取ります。 + -**購入の流入元**。サイトに到着すると、ブラウザーは初回訪問の記録を `tablepro:attribution` としてローカルストレージに 90 日間保存します。記録は訪問元(アクセスしたリンクの `ref`・`utm_*` タグ、またはリンク元サイト)、最初に開いたページ、日時です。購入を開始するとチェックアウトリクエストとともに送られます。運営者のサーバーは訪問元をチェックアウトのメタデータとして {merchant} に渡し、支払い後は注文とともに保存し、チェックアウトと支払いのイベントとともに PostHog に送ります。最初に開いたページと日時は保存しません。 +## 選択するサービス {#integrations} -**ドキュメント**。docs.tablepro.app のドキュメントは Mintlify がホストしています。Mintlify はページごとにお客様の IP アドレスとブラウザーの情報を受け取り、ページは Google Fonts からフォントを読み込みます。ナビゲーションバーにはリポジトリの Star 数が表示され、お客様のブラウザーがそれを GitHub の API から取得します。そのため GitHub もお客様の IP アドレスとブラウザーの情報を受け取ります。このリクエストは Cookie を設定しません。ドキュメントは、このサイトでの回答を読み取れないため、独自に Cookie の質問を表示します。そこで **Allow** を選ぶまでは Cookie を設定せず、訪問者 ID も保存しません。許可すると、Google Analytics が `_ga` と `_ga_` Cookie を設定してドキュメントの閲覧を計測し、Mintlify は集計のためにランダムな訪問者 ID `mintlify_anonymous_id` をローカルストレージに保存します。ドキュメントのフッターにある **Cookie settings** で回答を変更でき、拒否すると両方が削除されます。法的根拠:お客様の同意。 +DB、SSH、プロキシ提供者は要求した通信を直接受けます。設定した認証サービスは認証要求を受けます。Apple Maps は地図、DuckDB はクエリ用拡張を提供します。接続/AI ヘルパーは各提供者へ通信します。各サービスの条件が適用されます。 -**言語と地域割引**。ブラウザーの言語にサイトの対応言語が含まれない場合にページを適切な言語で提案するため、またチェックアウトで適用される地域割引を表示するため、サイトは Cloudflare(`/cdn-cgi/trace`)と運営者のサーバーに接続元の国を問い合わせ、デバイスのタイムゾーンを読み取ることがあります。どちらのリクエストにも Cookie は含まれず、ページは応答の内容を保存しません。法的根拠:正当な利益。 +### iCloud と Handoff {#icloud} -サイトの閲覧では、サイト独自の Cookie は設定されません。公開サイトからのニュースレター登録、チェックアウト、割引コード確認のリクエストは認証情報を含めないため、アカウントポータルの Cookie を送信せず、応答の Cookie も受け入れません。アカウントポータルのページを開く操作は別で、そこでサインインすると以下のポータル Cookie が設定されます。サイトがブラウザーに保持する情報はすべて [Cookie とブラウザーストレージ](#cookies)に掲載しています。 +任意の iCloud Sync は接続、グループ、タグ、設定、保存クエリ、SSH プロファイルを私用 CloudKit に保存します。 Mac では、テーブルやデータベースのお気に入りとフォルダー、認証情報プロファイルの名前、ユーザー名、パスワードモードも同期します。プロファイルのパスワードは同期しません。Apple がホストし、開発者は読めません。パスワード同期は別設定で既定無効、エンドツーエンド暗号化した iCloud Keychain を使います。Mac では AI 鍵や旧ライセンスキーなど同じストアの秘密も対象です。アカウントトークンは同期しません。Mac は Pro/Team が必要、iOS は無料です。Handoff は端末間で接続 ID と表名、表なしなら接続名/ホストを渡します。認証情報は渡しません。[設定](https://docs.tablepro.app/features/icloud-sync)をご覧ください。 -## 購入 {#purchases} +### AI と外部ツール {#ai-tools} -ライセンスは merchant of record 兼再販業者の {merchant}(Polar Software, Inc.)が販売します。お客様は {merchant} 独自の購入者向け規約とプライバシーポリシーに基づいて購入します。{merchant} は支払いを受け取り、売上税や VAT の計算・納付、領収書と請求書の送付、決済問題と紛争への対応を行います。名前、メールアドレス、請求先住所、支払い情報を収集します。運営者がお客様のカード情報の全体を見ることはありません。 +AI は選んだ提供者かローカルモデルへ直接送ります。プロンプト、スキーマ、SQL、会話を含み得ます。グリッド行添付は既定無効です。許可したクエリツールの結果も会話に入り、添付設定とは無関係に提供者へ届きます。GitHub Copilot は npm からヘルパーを取得し、Send telemetry to GitHub は初期状態で有効です。 -チェックアウトを開始すると、運営者のサーバーは購入内容、購入するページの言語、訪問元([ウェブサイト](#website)を参照)、IP アドレスを {merchant} に伝えます。{merchant} は IP アドレスを税金と通貨の判定に使います。運営者は {merchant} から、メールアドレス、入力された名前と請求先住所、購入内容、金額、注文・サブスクリプション ID、その後の更新・解約・返金などの変更を受け取ります。各注文とともに、メールアドレス、請求先の国、金額を保存します。 +MCP は既定無効で、その間はブリッジやペアリングでも起動できません。有効時は認証済みクライアントが権限内でデータを求めます。AI クライアントは結果を自サービスに送る場合があります。外部 MCP サーバーは承認した引数を受けます。[AI/MCP 設定](https://docs.tablepro.app/security/privacy#ai-providers)をご覧ください。 -サインインせずに購入すると、購入時のメールアドレスの TablePro アカウントに入ります。アカウントがなければ作成され、初めてサインインするまで未確認のままです。[アカウントポータル]({account})では、サブスクリプションの請求サイクルやシート数の変更、解約と再開、返金の申請ができます。解約時に選んだ理由と書いたコメントは {merchant} に送られ、サブスクリプションとともに保存されます。カード、請求書、税務情報、請求先住所は [{merchant} のカスタマーポータル]({portal})にあり、アカウントポータルから開けます。返金は[返金ポリシー](/ja/refund-policy)、ライセンスの利用範囲は[利用規約](/ja/terms)をご覧ください。 +## サイトとブラウザー保存 {#website} -## アカウントポータル {#account} +サーバーと Cloudflare は IP、ユーザーエージェント、ページを受けます。Cloudflare Web Analytics は閲覧、参照元、読込時間、ブラウザー/OS/端末分類、国を数え、保存や指紋採取はしません。正当な利益は利用把握と維持です。 -account.tablepro.app の[アカウントポータル]({account})では、TablePro アカウントのライセンス、デバイス、請求、チームを管理できます。ウェブサイトと同じく、Cloudflare の背後にある運営者のサーバーで動いています。 +Google Analytics は Consent Mode です。Allow 前は Cookie/保存 ID なしのページ信号を送ります。同意で Cookie、訪問、ダウンロード、購入計測を有効にします。広告保存、個人化、広告ユーザーデータは常に拒否します。Google は GA4 が IP を保存しないと説明しています。 -**アカウント**。アカウントは 1 人の利用者のもので、メールアドレスで識別します。アカウントには、そのアドレス、設定した名前と言語、サインイン方法、サインインしているデバイス、ライセンスと注文、所属するチームと役割・シート、そしてサインイン、新しいデバイス、チームの変更など、アカウントへの変更を記録した監査ログが、各変更を行ったリクエストの IP アドレスとブラウザーとともに含まれます。メールはアカウントの言語でお届けします。 +Crisp は[サポート](#support)のとおり全ページで読み込みます。Buy にポインター/Tab を合わせると jsDelivr から {merchant} スクリプトを読み、IP/ブラウザーを渡します。クリックで決済を開きます。フォーム開始時の Turnstile は不正防止の正当な利益です。国/時差は言語/地域割引の提案に正当な利益で使います。要求に Cookie はなく、回答はページに残しません。 -**サインイン**。リンクと 6 桁のコードをメールでお送りします。リンクは 1 回だけ使え、コードは 5 回まで試せ、どちらも 15 分で失効します。パスキーを追加することもできます。パスキーごとに、公開鍵、付けた名前、デバイス間で同期されるかどうか、追加日時と最終使用日時を保存します。Apple、GitHub、Google でサインインすることもできます。その場合、プロバイダーはお客様の ID と確認済みのメールアドレスを、Apple は初回に名前も運営者に伝えます。ID とアドレスはアカウントとともに保存し、Apple についてはトークンを暗号化して保存し、Apple の連携を解除したときやアカウントを削除したときに Apple で失効させます。プロバイダーのアドレスが既存のアカウントのものである場合、連携する前にそのアカウントへ確認用のリンクとコードを送ります。ただし、Google がそのアドレスを管理している場合(Gmail または Google Workspace)は除きます。 +初回訪問で `tablepro:attribution` を 90 日保存します。タグ/参照元、入口ページ、日付です。決済で訪問元を {merchant} にメタデータとして渡し、注文に残し、決済/支払いと PostHog に送ります。ページ/日付は残しません。根拠は購入元計測の正当な利益です。公開の購読、決済、割引要求は認証情報を省き、ポータル Cookie を設定しません。ポータルに分析スクリプトはありませんがサーバーイベントはあります。 -**チーム**。誰かをチームに招待すると、その人のメールアドレス、役割、招待にシートが含まれるかどうかを保存し、7 日間有効なリンクを送ります。オーナーと管理者は、チームのメンバーの名前とメールアドレス、招待、チームの監査ログを見られます。監査ログには、招待したアドレスを含め、チームで誰が何を変更したかが表示されますが、IP アドレスやブラウザーは表示されません。メンバーは、チーム、そのプラン、シート数、自分の役割を見られます。 +### ドキュメント {#docs} -**データ**。設定画面では、名前、メールアドレス、言語の変更、サインイン方法の追加と削除、アカウントのデータの JSON ファイルでのダウンロード、アカウントの削除ができます。ほかのメンバーがいるチームのオーナーである間は削除できません。削除すると、サインイン方法、デバイス、ライセンス、チームのメンバーシップ、自分だけのチーム、メールアドレスのニュースレター購読が削除され、サブスクリプションは返金なしで終了します。削除後に保存するものは[データの保存期間](#retention)をご覧ください。 +Mintlify が docs.tablepro.app をホストします。ページ、Google Fonts、GitHub スター数の要求で各提供者に IP/ブラウザーが届きます。Docs は別途同意を聞きます。Allow 前は分析 Cookie/訪問者 ID を保存しません。Allow で Google Analytics と Mintlify ID を有効にします。フッターの Cookie settings で撤回し削除できます。サイトの選択はこのオリジンに引き継ぎません。 -**ポータルが読み込むもの**。ポータルは Google Analytics も Cloudflare Web Analytics も、その他の解析スクリプトも読み込まず、Cookie についての質問も表示しません。[ウェブサイト](#website)で説明した Crisp のチャットを表示し、ポータルで購入すると {merchant} のチェックアウトがページの上に開きます。 +### Cookie と保存 {#cookies} -## ニュースレター {#newsletter} +Cloudflare Web Analytics はブラウザーに保存しません。公開ページに独自 Cookie はありません。以下の期間は提供者の保存期間とは別です。必要保存はログインや選択を維持します。同意/正当な利益の目的は以下のとおりです。 -リリースノートを購読すると、まず登録したページの言語で確認リンクをメールで送ります。リンクは 7 日間有効で、1 つのアドレスに送るのは 1 日 3 通までです。確認すると、アドレスはその言語とともに運営者のサーバー上のニュースレターリストに加わります。登録と確認のそれぞれについて、日時、送信元の IP アドレスとブラウザー、登録したページ、同意した文言のバージョンを記録します。フォームは、[ウェブサイト](#website)で説明したとおり Cloudflare Turnstile が確認します。 +| 名前/サービス | 目的と開始 | 期間と操作 | +| --- | --- | --- | +| `_ga`, `_ga_` | 同意後の Google Analytics | 最長 2 年、拒否で削除 | +| `tablepro:analytics-consent` | 必要な選択記録、サイト/Docs 別 | 消去まで | +| `tablepro:attribution` | 決済時の初回流入元、正当な利益 | 90 日 | +| `theme`, `tablepro:language`, `tablepro:campaign-closed` | 外観、言語選択/却下、閉じたセール、正当な利益 | 消去まで、ポータルテーマは別 | +| `mintlify_anonymous_id` | Docs 同意後の ID | 消去または拒否まで | +| `crisp-client/` Cookie | 各ページ読込後のチャット継続、正当な利益 | 6 か月、再訪で更新 | +| `__Host-tp_session` | 必要なポータル認証 | ログイン後 30 日、処理中最大 10 分、ログアウトで削除 | +| `locale`, `context`, `sign-in-return-to` | 言語、Personal/チーム表示、戻り先、正当な利益 | 前二つは消去まで、戻り先 15 分 | -すべてのニュースレターで、すべての受信者の開封とクリックを記録します。ニュースレターには小さな画像が含まれ、リンクは `links.news.tablepro.app` を経由します。メールアプリが画像を読み込んだときやリンクを開いたときに、Amazon SES は開封またはクリックの日時とクリックされたリンクを、メールアプリが送る IP アドレスとユーザーエージェントとともに記録し、運営者のサーバーに渡します。サーバーはニュースレターごとに開封数とクリック数を集計します。画像を読み込まないメールアプリでは開封は記録されません。配信停止リンクと、新しいメールを作成するリンクは追跡しません。 - -すべてのニュースレターには配信停止リンクがあり、開くと配信停止ボタンのあるページが表示されます。また、メールアプリからワンクリックで配信停止できるヘッダーも付いています。配信停止後はニュースレターを送らず、配信停止を確認するメールも送りません。再び購読するには、改めて確認が必要です。ニュースレターをスパムとして報告した場合も配信停止となり、お客様のアドレスへのメールが恒久的に不達になった時点で、そのアドレスへの送信を止めます。メールアドレス自体の削除も希望する場合は、ご連絡いただくか、そのアドレスを使う TablePro アカウントを削除してください。 - -以前のサーバーから移行した際、そのメーリングリストで配信停止していなかったアドレスは、確認の有無にかかわらず、すべて購読中としてこのリストに加わりました。以前のサーバーは、購入者、ライセンス保有者、ベータ版の登録者のアドレスもリストに加え、メールを送っていました。配信停止していたアドレスは配信停止済みのまま移行し、メールが不達になったアドレスやスパムとして報告されたアドレスは、代わりに運営者の送信抑止リストに加えたため、ニュースレターは届きません。 - -## Cookie とブラウザーストレージ {#cookies} - -公開サイトの閲覧では、サイト独自の Cookie は設定しません。ニュースレター登録、チェックアウト、割引コード確認のリクエストは認証情報を含めず、ポータル Cookie を設定しません。アカウントポータルにサインインすると、またはサインインを始めると、以下の厳密に必要な Cookie が 1 つ設定されます。Cloudflare Web Analytics は Cookie を設定せず、ブラウザーにも何も保存しません。Google Analytics の Cookie は許可するまで設定されません。Crisp はチャットの読み込み後、すべてのページで Cookie を設定します。ここに記載する情報は広告に利用されず、販売もされません。 - -- **`_ga` と `_ga_`**(Google Analytics の Cookie、最長 2 年、解析を許可した場合のみ):ブラウザーのランダムな識別子と現在の訪問状態です。拒否した場合や後から回答を変更した場合は削除します。法的根拠:同意。 -- **`tablepro:analytics-consent`**(ローカルストレージ、消去するまで):解析の質問への回答を保存し、ページごとに質問しないようにします。アカウントポータルは解析を行わないため、この質問をせず、回答も読みません。法的根拠:お客様の選択を尊重するために厳密に必要。 -- **`tablepro:attribution`**(ローカルストレージ、90 日):[ウェブサイト](#website)で説明した初回訪問の記録です。お客様の識別子は含まず、チェックアウトリクエストとともにのみ送られ、サーバーは訪問元を {merchant} に渡します。法的根拠:正当な利益。 -- **`theme`**(ローカルストレージ、消去するまで):ライト、ダーク、システムの表示設定を保存します。アカウントポータルは独自の設定を保存します。法的根拠:正当な利益。 -- **`tablepro:language`**(ローカルストレージ、消去するまで):言語メニューまたは言語バーで選んだ言語と、提案を閉じた言語を保存し、同じ言語を再び提案しないようにします。法的根拠:正当な利益。 -- **`tablepro:campaign-closed`**(ローカルストレージ、消去するまで):ヘッダーの上に表示されるお知らせを閉じたセールを保存し、そのセールが終わるまで、どのページでもお知らせを閉じたままにします。法的根拠:正当な利益。 -- **`mintlify_anonymous_id`**(docs.tablepro.app のローカルストレージ、Mintlify が設定、そこで Google Analytics を許可した場合のみ):[ウェブサイト](#website)で説明した訪問者 ID です。拒否すると削除されます。ドキュメントは独自の `tablepro:analytics-consent` の回答を保存します。法的根拠:同意。 -- **`crisp-client/` で始まる Cookie**(Crisp、例:`crisp-client/session/…`、6 か月、再訪時に更新、チャット読み込み後はすべてのページで設定):ページや訪問をまたいでチャットと会話を維持します。法的根拠:すべてのページでサポートを提供するための正当な利益。 -- **`__Host-tp_session`**(アカウントポータルの Cookie、サインインから 30 日):サインイン状態を維持します。サインイン前は、パスキー、Apple、GitHub、Google、またはアプリからのサインインの途中にのみ、最大 10 分間設定されます。サインアウトすると削除されます。公開サイトからのニュースレター登録、チェックアウト、割引コード確認のリクエストは認証情報を含めず、この Cookie を受け取りません。法的根拠:厳密に必要。 -- **`locale`、`context`、`sign-in-return-to`**(アカウントポータルのローカルストレージ):サインイン前にポータルで選んだ言語と、最後に開いたのが個人とチームのどちらか(いずれも消去するまで)、そしてメールのサインインリンクを開いた後に戻るページ(15 分)です。法的根拠:正当な利益。 - -解析への回答は、すべてのページのフッターにある **Cookie 設定**、または以下からいつでも変更・撤回できます。 +フッターの Cookie settings またはこちらで分析同意を変更します。 -## 法的根拠 {#lawful-basis} +## 受領者 {#sharing} -欧州経済領域と英国の利用者に対する GDPR および UK GDPR に基づく法的根拠は次のとおりです。 +| 受領者 | データと目的 | +| --- | --- | +| [OVH]({ovhPrivacy}) | サーバーとサービス記録のホスト | +| [Cloudflare]({cloudflarePrivacy}) | DNS/プロキシ、R2/バックアップ、Turnstile、Cloudflare Web Analytics | +| [Amazon Web Services]({awsPrivacy}) | Amazon SES メール、配信/反応、CloudFront リンク、SNS/SQS イベント | +| [PostHog EU]({posthogPrivacy}) | アプリ/サーバー分析、氏名/メールなしの ID、直接要求の IP | +| [{merchant}]({merchantPrivacy}) | 独立した merchant of record、決済、請求、購入 | +| [Crisp]({crispPrivacy}) | チャット、ブラウザー/ページ、ログイン中の識別情報 | +| [Google]({googlePrivacy}) | サイト/Docs 分析とフォント、選択したログイン | +| [Mintlify]({mintlifyPrivacy}) | Docs ホストと同意済み計測 | +| [GitHub]({githubPrivacy}) | ダウンロード、更新、プラグイン、スター、公開 issue、任意ログイン | +| [Apple]({applePrivacy}) | 任意ログイン、アプリ/連携のサービスと診断 | +| [jsDelivr]({jsdelivrPrivacy}) | IP/ブラウザー付き決済スクリプト | -- **契約**(第 6 条第 1 項(b)):ライセンスの販売・提供、サインイン方法とデバイスを含むアカウント、ライセンス確認、アカウントポータル、Team Library。 -- **正当な利益**(第 6 条第 1 項(f)):Mac アプリの利用状況データと PostHog での分析、運営者のサーバーが PostHog に送るサインイン・購入・デバイス・チームに関するイベント、アカウントの監査ログ、ニュースレターのフォームでの Cloudflare Turnstile を含むセキュリティと不正利用防止、サーバーログ、Cloudflare Web Analytics、購入の流入元記録、言語と地域割引のための国の照会、すべてのページのチャット。 -- **同意**(第 6 条第 1 項(a)):Google Analytics の Cookie、iPhone・iPad アプリの利用状況レポート、ニュースレター、お客様が開始するチャットの会話。 -- **法的義務**(第 6 条第 1 項(c)):税務・会計記録、適法な要請への回答。 +メンバーは役割に従って内容と情報を受けます。連携には指定したデータを渡します。個人データの販売や広告向け共有はしません。その他の開示は法律が要求する場合だけです。提供者の方針も適用されます。 -## データの受領者 {#sharing} +## 処理場所 {#transfers} -運営者は TablePro の提供に必要なサービスにのみ個人データを共有します。 +OVH と Amazon SES はシンガポール(SES は `ap-southeast-1`)、PostHog は EU、Crisp はフランスに拠点があります。{publisherName} はベトナムから運営します。{merchant}、Google、GitHub、Cloudflare、Amazon Web Services、Mintlify などの米国提供者は米国で処理します。保存/バックアップは他国に及ぶ場合があります。EEA/英国の必要な保護は各提供者の標準契約条項など承認済みの仕組みに依拠し、Google は EU-US Data Privacy Framework も使います。[連絡先](#controller)で詳細を請求できます。 -- **{merchant}**:購入の merchant of record。 -- **Amazon Web Services**:Amazon SES のアジアパシフィック(シンガポール)リージョンから運営者のメールを送信します。サインインのリンクとコード、チーム招待、アカウントとセキュリティのお知らせ、ニュースレターです。メールの配信、不達、スパムとしての報告を運営者に知らせ、運営者は不達とスパム報告を記録して、そのアドレスへの送信を止めます。ニュースレターについては、[ニュースレター](#newsletter)で説明したとおり、開封とクリックもそれぞれ知らせます。 -- **ホスティングプロバイダーと Cloudflare**:ウェブサイト、アカウントポータル、アプリの通信先サーバーの運営。Cloudflare は Web Analytics で閲覧数も集計し、Turnstile でニュースレターのフォームを確認します。 -- **Google**:ウェブサイトとドキュメントの Google Analytics。 -- **Crisp**:ウェブサイトとアカウントポータルのすべてのページのチャット。 -- **PostHog**(EU Cloud):製品分析サービス。アプリの利用状況レポートと、サインイン・購入・デバイス・チームに関する運営者のサーバーのイベントを、アカウント ID とともに受け取ります。メールアドレスや名前は受け取りません。Mac アプリが直接送る利用状況データとともに、Mac の IP アドレスも受け取ります。 -- **Apple、GitHub、Google**:これらでアカウントにサインインする場合。 -- **jsDelivr**:購入ボタンにポインタを合わせたとき、{merchant} のチェックアウトスクリプトをブラウザーへ配信。 -- **Mintlify**:docs.tablepro.app のドキュメントをホスト。 -- **GitHub**:更新フィード、プラグインカタログ、ダウンロードのホスト、およびドキュメントに表示する Star 数の提供。 +## 保存期間 {#retention} -個人データの販売や、広告主との共有は行いません。 +表で期間未設定とあるものに上限は設けていません。アカウント削除は PostHog/Crisp を削除しません。[連絡先](#controller)にメールすると、請求に応じてそれらのデータを削除します。 -## 国際移転 {#transfers} +| 記録 | 保存と削除 | +| --- | --- | +| PostHog 分析 | 上限未設定。無効化しても過去のイベントは残る。削除請求可能。 | +| ジョブとサーバーログ | 送信/再試行中に報告を保持し得る。ログは保護/調査用。全体上限未設定、サーバーコピーなしとは約束しない。 | +| 端末 | 削除済み端末もアカウント削除まで | +| アカウント/監査 | アカウント、認証、端末、ライセンス、所属は削除。監査は上限なし。メール欄と行為者 IP/エージェントは除去、自由文のアドレスは残り得る。 | +| 注文/提供者通知 | 税/会計用注文は上限未設定。アカウント/メール関連を除去。{merchant}、Amazon SES、Apple イベントは残り、削除アカウントの購入個人情報と受信者/反応情報を除去。 | +| Team Library | 削除項目は同期用に最終版を保持。通常のチーム削除から 30 日後に削除、それまでは復元可能。唯一の所有者アカウント削除は即時削除。ライセンス終了では消えない。 | +| 認証 | リンク/コードは 15 分で失効、7 日後削除。セッション 30 日。アプリトークンは最終使用 90 日後失効、さらに 30 日後削除。メールジョブの平文は送信翌日、断念なら 7 日後に削除。 | +| ニュースレター | 未確認新規アドレスは 30 日。確認/移行済みは請求か同メールのアカウント削除まで。解除しても解除済みアドレスを保存。 | +| 送信停止 | 不達/苦情アドレスと初回/最終日は削除後も再送防止用に保持。上限なし。 | +| Google Analytics | 利用者/イベントは 2 か月、標準集計レポートは別 | +| Cloudflare Web Analytics | 直近 6 か月の閲覧集計を表示 | +| サポート | Crisp/メールは請求を含む削除まで。上限未設定。 | +| バックアップ/移行記録 | 上限なし。アカウント削除はコピーを消さない。旧 DB 全体に氏名/メール、ライセンス、注文、チーム、端末名、購読者、ベータ、メール、利用報告、IP 付きライセンスログを含む。 | -上記のサービスは複数の国で運営されており、お客様のデータが居住国外で処理される場合があります。{merchant}、Google、GitHub、Cloudflare、Mintlify は米国でデータを処理します。Google は EU-US Data Privacy Framework と標準契約条項に基づいて処理します。PostHog は欧州連合でデータを処理します。Amazon Web Services はシンガポールから運営者のメールを送信します。法律で必要な場合、EEA と英国からの移転は標準契約条項またはその他の承認された仕組みに基づきます。 +## 選択と権利 {#rights} -## データの保存期間 {#retention} +アプリ設定、サイト/Docs の Cookie settings、メール解除を使ってください。同意撤回は将来に適用され、過去の処理を無効にしません。設定は古いデータやサーバー分析を消しません。[ポータル Settings]({account})でエクスポート/削除できますが、全記録をカバーしません。 -- **利用状況レポートと分析イベント**:運営者のサーバーは PostHog に転送した後、コピーを保存しません。PostHog での保存期間の上限は設定していません。 -- **以前のサーバーの記録**:以前のサーバーのデータベース全体のコピーを、期限を定めずにアーカイブに保存しています。これには、メールアドレスと名前を含むライセンス、注文、チームメンバー、ライセンスで有効化された Mac とその名前、ニュースレターの購読者とベータ版の登録者、送信したメールの記録、そして以前のサーバーが保存していた利用状況レポートとライセンスリクエストの記録(IP アドレスを含む)が含まれます。 -- **デバイス**:削除したものも含め、アカウントを削除するまで保存します。 -- **アカウントの監査ログ**:アカウントがある間は、お客様が行った各変更の IP アドレスとブラウザーとともに保存します。アカウントを削除すると、メールアドレスと、お客様の操作の IP アドレスとブラウザーがログから削除されます。各変更の記録自体は残ります。 -- **注文**:税務・会計のため保存します。アカウントを削除すると、注文からメールアドレスとアカウントが削除されます。 -- **{merchant}、Amazon SES、Apple からの通知**:保存します。{merchant} の通知には名前、メールアドレス、請求先住所が含まれます。アカウントを削除すると、購入に関する通知からはそれらが削除されます。Amazon SES の通知には各メールの送信先アドレスと、ニュースレターの場合は開封とクリックごとの IP アドレスとユーザーエージェントが含まれます。アカウントを削除すると、お客様のアドレス宛てのメールに関する通知と、送信した各メールについての運営者の記録から、それらが削除されます。 -- **Team Library**:項目が変更されるまで。削除した項目は最後のバージョンを保持します。ライブラリは、オーナーがチームを削除してから 30 日後にチームとともに削除されます。それまではオーナーがチームを復元できます。ライセンスが終了しても残ります。 -- **サインインのリンクとコード**:15 分で失効し、その 7 日後に削除します。ポータルのセッションは 30 日です。アプリのサインイン状態を保つトークンは、アプリが最後に使ってから 90 日で失効し、その 30 日後に削除します。 -- **削除されたアカウント**:アカウント、サインイン方法、デバイス、ライセンス、チームのメンバーシップは直ちに削除します。注文と監査ログは上記のとおり残ります。以前のサーバーが保存していたお客様に関する情報は、上記のアーカイブに残ります。 -- **ニュースレター**:30 日以内に確認されなかったアドレスは、確認リンクとともに削除します。確認済みのアドレスと以前のサーバーから移行したアドレスは、リストに加わった経緯の記録とともに、ご依頼により削除するか、そのアドレスを使う TablePro アカウントが削除されるまでリストに残ります。配信停止後は、ニュースレターが届かないよう配信停止済みとして保存されます。 -- **配信停止リスト**:メールが恒久的に不達になったアドレスや、受信者がこちらからのメールを迷惑メールとして報告したアドレスは、最初と最後に発生した日時とともに配信停止リストに残ります。そのアドレスを使っていたアカウントやニュースレターの購読が削除された後も同様です。これにより、そのアドレスに再びメールを送ることはありません。 -- **Google Analytics**:ユーザー単位・イベント単位のデータは 2 か月。運営者のプロパティが使用する Google の初期設定の期間です。Cookie は最長 2 年保持され、拒否した場合は削除されます。 -- **Cloudflare Web Analytics**:運営者には直近 6 か月のページ閲覧の集計値を表示します。ブラウザーには何も保存しません。 -- **チャットとサポートメール**:削除するまで Crisp と運営者のメールボックスに保存します。会話やメールの削除をご希望の場合はご連絡ください。 -- **サーバーログ**:運営者のウェブサーバーとサーバーのログを、セキュリティと問題解決のため運営者のサーバーに保存します。固定の期間はまだ設定していません。 +居住地に応じてアクセス、訂正、削除、制限、移転、正当な利益への異議を請求できます。アカウント不要で[連絡先](#controller)へメールしてください。記録特定のためインストール ID などを求める場合があります。ライセンスキーを平文メールで送らないでください。1 か月以内に回答します。データ保護当局へ苦情を申し立てられます。法的保存義務で削除が制限される場合があります。 -## お客様の権利 {#rights} - -居住地によって、お客様は運営者に次のことを求められます。 - -- 運営者が保持するお客様の個人データのコピーの提供(アクセス)。 -- 訂正。 -- 法律上保存が必要な情報を除く削除。 -- 利用の制限。 -- 構造化された機械可読形式での提供(ポータビリティ)。 -- 正当な利益に基づく利用の停止(異議申し立て)。 - -同意はいつでも撤回でき、データ保護当局へ苦情を申し立てられます。権利を行使するには、[{email}](mailto:{email}) へご連絡ください。30 日以内に回答します。[アカウントポータル]({account})の設定画面では、アカウントのデータのコピーを取得し、アカウントを削除することもできます。ニュースレターのアドレスやアカウントのない Mac など、それ以外については、対象のメールアドレス、ライセンスキー、デバイスをお知らせください。{merchant}、Google、Crisp、GitHub が保持するデータには、それぞれのポリシーも適用されます。 +### 地域別の権利 {#regional-rights} **カリフォルニア州の居住者**。California Consumer Privacy Act により、収集する個人情報を知る権利、削除を求める権利、販売を拒否する権利、およびこれらの権利の行使により異なる扱いを受けない権利があります。運営者は個人情報を販売しません。 ## 子ども {#children} -TablePro は 16 歳未満の子どもを対象とせず、その個人データを意図的に収集しません。子どもが運営者に個人データを提供したと思われる場合はご連絡ください。削除します。 - -## セキュリティ {#security} - -アプリ、ウェブサイト、アカウントポータル、運営者のサーバーの間の通信には HTTPS を使用します。TablePro アカウントにパスワードはありません。サインインのリンクとコード、アプリのサインイン状態を保つトークン、チームの API トークンはハッシュで保存します。ただし、サインインのリンクとコードをメールで送るジョブは、ジョブが削除されるまでそれらを平文で保持します。削除はメール送信の 1 日後、送信を断念した場合はその 7 日後です。リンクとコードはどちらも、リクエストから 15 分後に使えなくなります。システムへのアクセスは {publisherName} と、[データの受領者](#sharing)に記載したサービス提供者に限定します。完全に安全なシステムはありません。脆弱性の報告は、[セキュリティページ](/ja/security#report)の案内に従って行うか、[{email}](mailto:{email}) にお送りください。 +TablePro は 16 歳未満を対象とせず、知りながらその個人情報を集めません。子どもがデータを渡したと思われる場合は連絡してください。削除します。 -## ポリシーの変更 {#changes} +## 安全性 {#security} -このポリシーを変更する場合、新しい「最終更新日」を付けてこのページを更新し、法律で必要な場合はお客様へ直接お知らせします。 +サービス通信は HTTPS です。アカウントにパスワードはありません。認証情報とチーム API トークンはハッシュ保存で、[保存期間](#retention)の一時メールジョブは例外です。システムへのアクセスは {publisherName} と[受領者](#sharing)に限定します。完全に安全なシステムはありません。[安全性ページ](/ja/security#report)で脆弱性を報告してください。 -## お問い合わせ {#contact} +## 変更 {#changes} -プライバシーやこのポリシーについてのご質問は、[{email}](mailto:{email}) にお送りください。 +更新日をページに表示します。過去の版は[公開 Web リポジトリ履歴]({webGithub}/commits/main/resources/data/legal/en/privacy.md)に残ります。新目的の前に更新し、法的に必要なら直接通知し、必要な同意を再取得します。 diff --git a/resources/data/legal/ko/privacy.md b/resources/data/legal/ko/privacy.md index 866632f1..bebf4471 100644 --- a/resources/data/legal/ko/privacy.md +++ b/resources/data/legal/ko/privacy.md @@ -1,281 +1,228 @@ --- title: 개인정보 처리방침 -description: TablePro 앱, 웹사이트 및 계정 포털이 수집하는 정보, 전송 대상, 보관 기간과 변경 또는 삭제 방법을 설명합니다. -updatedAt: "2026-11-04" +description: TablePro가 수집하는 데이터, 목적, 수신자, 보관 기간과 선택 및 권리. +updatedAt: "2026-11-05" --- -이 방침은 Mac용 TablePro, iPhone 및 iPad용 TablePro, tablepro.app 웹사이트, docs.tablepro.app 문서 및 account.tablepro.app 계정 포털에 적용됩니다. 각 제품이 현재 실제로 전송하고 저장하는 정보를 설명합니다. 두 앱은 모두 AGPLv3로 공개된 오픈 소스이므로 아래 데이터를 전송하는 코드를 [TablePro 저장소]({github})에서 확인할 수 있습니다. +이 방침은 Mac, Linux, iPhone, iPad용 TablePro, tablepro.app, docs.tablepro.app, 계정·구매·지원·뉴스레터 서비스에 적용됩니다. [기술 목록](https://docs.tablepro.app/security/privacy)은 필드, 엔드포인트와 설정을 설명합니다. 소스는 [공개 저장소]({github})에 있습니다. ## 요약 {#summary} -- Mac 앱은 사용 데이터를 보냅니다. 기본적으로 켜져 있으며 끌 수 있습니다. iPhone 및 iPad 앱은 사용자가 켜는 경우에만 사용 보고서를 보냅니다. -- TablePro 계정에 로그인하거나 라이선스 키를 활성화하면 Mac 앱은 Mac을 이름과 함께 운영자의 서버에 등록하고 정기적으로 플랜을 확인합니다. -- 실행한 쿼리, 결과 및 비밀번호는 TablePro에 전송되지 않습니다. 예외는 Team Library에 직접 게시하는 연결 설정(비밀번호는 제외)과 저장된 쿼리입니다. -- AI 요청은 Mac 앱에서 설정한 AI 제공업체로 직접 전송되며 운영자를 거치지 않습니다. -- TablePro 계정을 지원하는 버전부터 Mac 앱은 사용 데이터를 EU에 있는 제품 분석 서비스 PostHog로 직접 보내므로, PostHog가 Mac의 IP 주소를 받아 대략적인 위치를 추정합니다. 이전 버전과 iPhone 및 iPad 앱은 사용 보고서를 운영자의 서버로 보내고, 서버는 이를 IP 주소 없이 PostHog로 전달합니다. 계정에는 로그인과 새 기기 같은 계정 변경 기록이 각 변경을 만든 요청의 IP 주소 및 브라우저와 함께 남습니다. -- 웹사이트는 쿠키를 설정하지 않는 Cloudflare Web Analytics로 페이지 조회 수를 집계합니다. Google Analytics도 로드하며 쿠키는 사용자가 허용한 경우에만 설정합니다. 모든 페이지에서 실시간 채팅 서비스인 Crisp도 로드하며, Crisp는 자체 쿠키를 설정합니다. -- account.tablepro.app의 계정 포털은 분석 스크립트를 로드하지 않습니다. 로그인 상태를 유지하는 쿠키 하나를 설정하며, 설정에서 계정 데이터를 다운로드하거나 계정을 삭제할 수 있습니다. -- 운영자의 이메일은 Amazon Web Services의 서비스인 Amazon SES가 보냅니다. 뉴스레터는 각 수신자가 언제 열었는지와 어떤 링크를 클릭했는지 기록합니다. -- 구매는 merchant of record인 {merchant}를 통해 이루어집니다. +일반 쿼리와 결과는 기기와 데이터베이스 사이를 오갑니다. 사용 데이터에는 SQL, 행이나 자격 증명이 없습니다. Team Library에 게시하거나 지원에 보내거나 AI 및 외부 도구와 공유한 내용은 해당 수신자에게 전달됩니다. -## 책임 주체 {#controller} +Mac과 Linux는 사용 데이터가 기본으로 켜져 있으며 끌 수 있습니다. 출시된 iPhone/iPad 앱은 동의한 뒤에만 보고합니다. 직접 전송한 분석은 계정과 구매에 연결될 수 있습니다. 꺼도 계정 요청과 서버 분석은 멈추지 않습니다. -여기에 설명된 개인정보의 책임 주체(개인정보처리자)는 TablePro 앱과 이 웹사이트를 배포하는 {publisherCountry} {publisherCity}의 개인 개발자 {publisherName}(이하 "운영자")입니다. 이 방침 또는 개인정보에 관한 질문은 [{email}](mailto:{email})로 이메일을 보내주세요. +웹사이트는 방문을 측정하고 모든 페이지에서 Crisp를 불러옵니다. Google Analytics 쿠키에는 선택이 필요합니다. 뉴스레터는 열기와 클릭을 측정합니다. 계정 삭제 후에도 PostHog와 Crisp 등을 포함한 일부 기록이 남습니다. [보관](#retention)과 [권리](#rights)를 확인하세요. [관리자](#controller)는 계정이 없는 요청도 받습니다. -## Mac용 TablePro {#mac-app} + -### 사용 데이터 {#mac-usage-report} +## 책임자 {#controller} -TablePro 계정을 지원하는 버전부터 Mac 앱은 사용 데이터를 EU에 있는 제품 분석 서비스 PostHog(`eu.i.posthog.com`)로 직접 보냅니다. **기본적으로 켜져 있으며 첫 이벤트를 보내기 전에 허락을 요청하지 않습니다.** 끄려면 **설정 > 일반 > 개인정보 보호**(Settings > General > Privacy)에서 **사용 데이터 공유**(Share usage data)를 해제하세요. 꺼져 있는 동안 앱은 PostHog에 아무것도 보내지 않으며, 설정이 꺼진 상태로 앱이 시작되면 PostHog 라이브러리를 아예 시작하지 않습니다. +{publisherCity}, {publisherCountry}의 개인 개발자 {publisherName}이 여기 설명한 개인정보의 관리자입니다. 연락처는 [{email}](mailto:{email})입니다. 개인정보 보호책임자는 없습니다. 팀의 계정, 초대, 서비스 기록은 관리자로서 처리합니다. Team Library 게시물은 팀의 지시에 따라 처리하며 팀이 게시 내용과 접근자를 정합니다. -앱은 다음과 같은 경우 이벤트를 보냅니다. + -- 실행 중 하루에 한 번: 열려 있는 연결의 데이터베이스 유형 이름(예: PostgreSQL) 및 열려 있는 연결 수 포함 -- 처음 연결을 시도했을 때, 처음 연결에 성공했을 때, 첫 쿼리를 실행했을 때: 각각 데이터베이스 유형 포함 -- 유료 기능을 사용할 수 없다고 표시할 때: 앱을 실행할 때마다 기능당 한 번, 기능과 이유(예: 로그인하지 않음) 포함 -- 업그레이드를 클릭했을 때: 앱에서 클릭한 위치 포함 -- 로그인할 때: 로그인 방식(앱에서, 라이선스 키로, 또는 Mac에 이미 있던 키의 교환으로) 포함, 그리고 로그아웃할 때 +## 데이터와 목적 {#data-use} -PostHog 라이브러리는 모든 이벤트에 Mac 모델, 화면 크기, 시간대와 언어, Wi-Fi 연결 여부, 앱의 버전·빌드·번들 ID, macOS 버전, 라이브러리 버전, 무작위 세션 ID를 추가합니다. PostHog는 요청마다 Mac의 IP 주소를 받아 국가와 도시 같은 대략적인 위치를 추정합니다. 설정이 켜져 있는 동안 라이브러리는 PostHog에서 설정과 기능 플래그도 가져옵니다(`eu-assets.i.posthog.com`의 `/config` 및 `eu.i.posthog.com`의 `/flags`). +EEA와 영국에는 목적별 법적 근거를 표시합니다. 계약(제6(1)(b)조), 정당한 이익(6(1)(f)), 동의(6(1)(a)), 법적 의무(6(1)(c))입니다. 법적 또는 유사하게 중대한 효과를 내는 자동화된 결정은 하지 않습니다. -로그인하기 전의 이벤트에는 라이브러리가 Mac에서 만든 무작위 ID가 붙으며, PostHog는 이 ID에 대해 개인 프로필을 만들지 않습니다. 로그인하면 이벤트에 계정 ID가 붙고, PostHog의 해당 계정 프로필에는 앱 및 macOS 버전, 프로세서 아키텍처, 앱 언어, PostHog가 IP 주소로 추정한 대략적인 위치가 저장됩니다. 이를 통해 설치가 로그인 및 구매와 이어집니다. 로그아웃하면 새 무작위 ID로 시작합니다. 앱의 사용 데이터에는 더 이상 기기 ID, 라이선스 활성화 여부, 업데이트 설정이 포함되지 않습니다. + -TablePro 계정을 지원하기 전 버전은 대신 같은 설정에 따라 시작 후 약 10초 뒤, 이후 실행 중에는 하루에 한 번 `api.tablepro.app`에 사용 보고서를 보냅니다. 보고서에는 다음 정보가 포함됩니다. +### 계정과 기기 {#account} -- 기기 ID: Mac 하드웨어 UUID의 SHA-256 해시(UUID 자체는 전송되지 않음) -- 플랫폼, 앱 버전, macOS 버전, 프로세서 아키텍처 및 앱 언어 -- 열려 있는 연결의 데이터베이스 유형 이름(예: PostgreSQL) 및 열려 있는 연결 수 -- 라이선스 활성화 여부 -- 처음 연결을 시도한 날짜와 시간 및 처음 연결에 성공한 날짜와 시간 -- 업데이트 설정(설치 방식과 확인 빈도). 운영자의 서버는 보고서가 도착하면 이 정보를 폐기합니다. +무료 로컬 사용에는 계정이 필요 없습니다. 계정 서비스에는 이메일이 필요합니다. 이름, 언어, 로그인 방법, 라이선스, 주문, 기기, 팀 역할과 좌석을 저장합니다. Mac/Linux 기기 등록은 기계 ID, 기기 이름, 플랫폼, 앱/OS 버전을 전송합니다. 기기 이름에 실명이 있을 수 있습니다. 사용 데이터와는 별개입니다. 목적과 근거는 계약에 따른 계정과 요금제 제공입니다. -이벤트와 보고서 모두 호스트 이름, 사용자 이름, 비밀번호, 쿼리 또는 행 데이터를 포함하지 않습니다. +로그인은 이메일 링크/코드, 패스키 또는 Apple, GitHub, Google을 사용합니다. 패스키 기록에는 공개키, 이름, 동기화 상태, 사용 날짜가 있습니다. 신원 제공자는 ID와 확인된 이메일을 주며 Apple은 이름도 줄 수 있습니다. Apple 토큰은 암호화하며 연결 해제나 계정 삭제 시 취소합니다. 계정 변경에는 IP와 사용자 에이전트를 기록합니다. 정당한 이익은 계정 보호와 남용 조사입니다. -운영자의 서버는 보고서도, 보고서를 보낸 IP 주소도 저장하지 않습니다. 보고서는 Cloudflare가 연결에 대해 알려주는 국가를 붙이고 라이선스 키와 IP 주소는 빼고 기기 ID에 관한 이벤트로 PostHog에 전달하며, PostHog는 이를 바탕으로 개인 프로필을 만들지 않습니다. 계정은 같은 기기 ID로 기기를 관리하므로 로그인했거나 라이선스를 활성화한 Mac의 보고서는 계정과 연결될 수 있습니다. +[계정 포털]({account})에서 프로필/로그인 변경, 기기 관리, JSON 내보내기, 계정 삭제를 합니다. 다른 구성원이 있는 팀의 소유자는 삭제할 수 없습니다. 삭제는 환불 없이 구독을 종료합니다. 남는 기록은 [보관](#retention)을 참조하세요. -### 라이선스 확인 {#mac-license} +### 구매 {#purchases} -TablePro 계정을 지원하기 전 버전은 라이선스 키를 입력한 후에만 라이선스 서버에 접속합니다. 라이선스 활성화 시, 마지막 확인 후 {revalidateDays}일 이상 지났을 때 앱을 시작하면, 그리고 이후 {revalidateDays}일마다 확인합니다. 각 확인 요청에는 다음 정보가 포함됩니다. +{merchant}(Polar Software, Inc.)는 merchant of record이자 재판매자입니다. 자체 조건에 따라 이름, 이메일, 청구 주소와 결제 정보를 수집하고 결제, 세금, 영수증과 분쟁을 처리합니다. 전체 카드 정보는 받지 않습니다. -- 라이선스 키 -- [사용 데이터](#mac-usage-report)에서 설명한 기기 ID -- macOS에 설정된 Mac 이름(사용자의 이름이 포함되는 경우가 많음) -- 앱 버전 및 macOS 버전 +결제, 세금, 통화를 위해 구매 내용, 언어, 방문 출처와 IP를 보냅니다. 구매자/청구 정보, 금액, 주문/구독 ID, 갱신, 취소, 환불을 받습니다. 주문에 이메일, 국가, 금액, 유입 출처를 보관합니다. 비로그인 구매는 필요하면 해당 이메일의 미확인 계정을 만듭니다. 취소 이유와 의견은 {merchant}에 전달되어 구독에 남습니다. 처리는 구매 계약을, 세무/회계 기록은 법적 의무를 이행합니다. 필수 정보 없이는 결제를 완료할 수 없습니다. [{merchant} 포털]({portal}), [약관](/ko/terms), [환불](/ko/refund-policy)을 확인하세요. -Mac 활성화 해제 시에는 라이선스 키와 기기 ID만 전송합니다. +### 팀과 공유 콘텐츠 {#library} -운영자의 서버는 활성화된 각 Mac을 라이선스를 가진 계정의 기기로 저장합니다. 저장하는 항목은 기기 ID와 이름, 앱 및 macOS 버전, 마지막으로 통신한 시간입니다. Mac의 활성화와 비활성화는 요청의 IP 주소 및 사용자 에이전트와 함께 해당 계정의 감사 로그에 기록되지만 정기 확인은 기록되지 않습니다. 계정 포털에는 기기가 이름으로 표시됩니다. 서버에 연결할 수 없는 경우 마지막 확인에 성공한 날부터 {graceDays}일 동안 유료 기능이 계속 작동합니다. +초대자는 이메일, 역할, 좌석을 제공합니다. 소유자/관리자는 이름과 이메일, 초대, 팀 변경 및 초대 주소를 보지만 감사 IP나 브라우저는 보지 않습니다. 구성원은 팀, 요금제, 좌석 수, 자신의 역할을 봅니다. 계약에 따른 팀 서비스에 사용합니다. -### TablePro 계정 {#mac-account} +Mac에서 Team Library에 게시하면 연결 설정과 저장 쿼리가 서버로 가서 권한 있는 구성원에게 제공됩니다. 호스트, 포트, DB, 사용자, SSH/SSL, 시작 명령, Tunnel Command, AI 설정을 포함합니다. 쿼리는 이름, SQL, 키워드, 폴더를 포함합니다. 암호 필드는 제외하나 SQL이나 자유 텍스트의 비밀은 지우지 않습니다. 마지막 수정자를 표시합니다. 팀 탈퇴만으로 공유 내용을 지우지 않습니다. [삭제 시점](#retention)을 보세요. Team Catalog는 선택한 공유 폴더에 파일을 씁니다. -TablePro 계정을 지원하는 버전부터는 라이선스 키 대신 [TablePro 계정](#account)으로 Mac 앱에 로그인합니다. 앱은 로그인 페이지를 브라우저 창에서 열며, 그곳에서 로그인 이메일의 코드를 입력할 수도 있습니다. 로그인하면 앱은 Mac을 계정의 기기로 등록합니다. 등록하는 항목은 위에서 설명한 기기 ID, Mac 이름, 플랫폼, 앱 및 macOS 버전입니다. 이후 실행 중에는 하루에 한 번 서명된 파일 형태로 운영자의 서버에서 플랜을 가져오며, 이 파일로 유료 기능은 서버 없이 최대 {offlineDays}일 동안 작동합니다. 앱의 로그인 상태를 유지하는 토큰은 해당 Mac의 macOS 키체인에만 보관되며, 비밀번호 동기화를 켜도 iCloud 키체인으로 동기화되지 않습니다. +### 사용 및 서비스 분석 {#analytics} -Mac에 이미 있는 라이선스 키는 해당 키를 가진 계정으로의 로그인과 한 번만 교환된 후 Mac에서 삭제됩니다. 기기는 앱이나 계정 포털에서 제거할 수 있으며, Mac이 처음으로 라이선스를 사용하면 이메일로 알려드립니다. +정당한 이익은 사용 파악, 문제 수정, 구매 측정입니다. Mac/Linux는 [앱](#apps)의 데이터를 보냅니다. 서버도 로그인, 구매, 기기, 팀 이벤트를 PostHog에 보내며 계정 ID는 있지만 이름/이메일은 없습니다. ID가 앱과 서비스 활동을 연결합니다. 스위치는 앱 이벤트만 멈추고 필수 계정 요청이나 서버 이벤트는 멈추지 않습니다. [권리](#rights)를 통해 이의나 삭제를 요청하세요. -### Team Library {#library} +### 뉴스레터와 이메일 {#newsletter} -Team Library는 Team 라이선스에 포함됩니다. 연결에서 **공유 > 팀 라이브러리에 게시…**(Share > Publish to Team Library…)를 선택하거나 Favorites 사이드바에서 **저장된 쿼리를 팀에 게시…**(Publish Saved Queries to Team…)를 선택하면 Mac 앱은 게시할 내용을 운영자의 서버에 업로드합니다. +Amazon SES가 코드, 초대, 알림과 뉴스레터를 보냅니다. 서비스 이메일은 요청된 서비스를 이행합니다. 새 뉴스레터 구독에는 확인과 동의가 필요합니다. 주소, 언어, 가입/확인 날짜, IP, 사용자 에이전트, 가입 페이지와 동의 문구 버전을 저장합니다. -- 연결 설정: 호스트, 포트, 데이터베이스 이름, 사용자 이름, SSH 및 SSL 설정, 드라이버 옵션, 시작 명령, Tunnel Command 설정, Safe Mode 수준 및 AI 설정. 비밀번호는 포함하지 않습니다. -- 저장된 쿼리: 이름, SQL 텍스트, 키워드 및 폴더 +모든 뉴스레터는 이미지와 `links.news.tablepro.app`으로 모든 수신자의 열기/클릭을 측정합니다. Amazon SES가 시간, 링크, IP, 사용자 에이전트를 받아 집계용으로 서버에 전달합니다. 이미지 차단은 열기 측정만 멈추며 클릭은 멈추지 않습니다. 구독 해지와 이메일 링크는 추적하지 않습니다. 측정만 끄는 스위치는 없습니다. 뉴스레터나 메일 앱의 원클릭 해지를 사용하면 후속 확인 메일 없이 중단합니다. 재구독은 확인이 필요합니다. 영구 반송과 스팸 신고도 전송을 중단합니다. 주소 삭제는 [연락처](#controller)로 요청하세요. -TablePro 계정을 지원하는 버전부터 좌석이 있는 각 구성원의 Mac 앱은 시작할 때, 15분마다, 그리고 게시할 때마다 라이브러리의 변경 사항을 다운로드합니다. 게시하면 바뀐 부분만 보내고, 그 Mac이 게시했지만 더 이상 가지고 있지 않은 항목만 삭제합니다. 다른 사람이 먼저 항목을 변경했다면 앱이 어느 쪽을 남길지 묻고, 각 팀 쿼리를 마지막으로 변경한 사람을 보여 줍니다. TablePro 계정을 지원하기 전 버전은 시작할 때 라이브러리를 다운로드하며 최대 일주일에 한 번입니다. 게시한 Mac은 게시 직후 다시 다운로드합니다. 이 버전에서 다시 게시하면 이전에 게시한 내용을 대체합니다. 계정 포털의 Library는 라이브러리를 읽을 수 있는 구성원에게 각 항목을 마지막으로 변경한 사람의 이름과 함께 보여 주며, 소유자와 관리자는 항목을 삭제할 수 있습니다. 삭제한 항목은 모든 Mac이 삭제를 동기화할 수 있도록 마지막 버전과 함께 운영자의 서버에 남습니다. 라이선스가 끝나도 팀 소유자가 팀을 삭제할 때까지 라이브러리는 운영자의 서버에 남으며, 팀을 삭제하면 라이브러리도 함께 삭제됩니다. +이전 목록은 확인 여부와 무관하게 해지하지 않은 모든 주소를 옮겼습니다. 구매자, 라이선스 소유자, 베타 가입자도 포함합니다. 해지는 유지하고 반송/신고 주소는 전송 억제 목록에 넣었습니다. [보관](#retention)을 보세요. -다른 Team 기능인 Team Catalog는 선택한 공유 폴더에 비밀번호가 없는 연결 파일을 저장합니다. 운영자의 서버를 거치지 않습니다. +### 지원 {#support} -### 업데이트 및 플러그인 {#mac-updates} +메시지, 첨부와 진단은 개발자와 선택한 지원 서비스에 전달됩니다. 직접 포함한 DB 내용이나 비밀도 전달될 수 있습니다. 사이트/포털 채팅이 로드되면 Crisp가 IP, 브라우저, 본 페이지를 받습니다. 대화를 시작하면 IP를 보관합니다. 페이지 언어와 로그인한 포털의 계정 이메일/ID를 제공합니다. 모든 페이지의 채팅 로드는 지원 제공의 정당한 이익이며 시작한 대화는 동의에 근거합니다. -- **업데이트 확인.** Mac 앱은 하루에 한 번 GitHub(`raw.githubusercontent.com`)에서 업데이트 피드를 다운로드합니다. 요청에는 일반적인 웹 요청에 포함되는 IP 주소 및 앱 버전이 포함된 사용자 에이전트 외에 Mac 정보가 포함되지 않습니다. 끄려면 **설정 > 일반 > 소프트웨어 업데이트**(Settings > General > Software Update)에서 **업데이트 자동 확인**(Automatically check for updates)을 해제하세요. 업데이트 자체도 GitHub에서 다운로드합니다. -- **플러그인 카탈로그.** 앱 시작 시와 플러그인 설정을 열 때 GitHub에서 이용 가능한 드라이버와 테마 목록을 다운로드합니다. 이를 끄는 설정은 없습니다. 설치하는 드라이버와 테마는 GitHub에서 다운로드하며, 플러그인 브라우저는 GitHub API에서 다운로드 수를 읽습니다. +## 앱 {#apps} -GitHub는 이 요청과 함께 IP 주소를 받습니다. 해당 요청에는 GitHub의 개인정보 처리방침이 적용됩니다. +| 앱과 버전 | 사용 데이터 | 설정 | +| --- | --- | --- | +| Mac 0.86.0, 0.86.0-beta.1부터 | PostHog로 직접, 기본 켜짐 | Settings > General > Privacy | +| Linux 0.1.0-beta.1부터 | PostHog로 직접, 기본 켜짐 | Preferences > General > Privacy | +| 출시된 iPhone/iPad | 서버 경유, 동의 전 꺼짐 | Settings > Privacy | -### 사용자가 선택하는 서비스 {#mac-third-parties} + -Mac 앱은 아래 서비스를 설정한 경우에만 데이터를 직접 전송하며 TablePro를 거치지 않습니다. +### 기기 데이터 {#local-data} -- **사용자의 데이터베이스, SSH 서버 및 프록시**는 해당 연결이 보내는 정보를 받습니다. -- **AI 제공업체.** 제공업체를 추가하고 AI 어시스턴트 또는 인라인 제안을 사용하면 요청은 해당 제공업체 또는 Mac에서 실행되는 모델로 전달됩니다. 기본적으로 데이터베이스 유형과 이름, 스키마의 테이블 및 열 정의, 현재 쿼리가 포함됩니다. 결과 행은 사용자가 해당 옵션을 켠 경우에만 전송됩니다. 제공업체의 약관이 적용됩니다. GitHub Copilot을 추가하면 npm에서 언어 서버를 다운로드하며 "GitHub에 텔레메트리 보내기"(Send telemetry to GitHub) 설정은 처음부터 켜져 있습니다. -- **로그인 서비스**: 연결에서 사용하는 경우 Microsoft Entra ID, Google, Amazon Web Services 및 Cloudflare Access. -- **Apple Maps**는 결과를 지도에 표시할 때 지도 타일을 제공합니다. -- **DuckDB**는 쿼리가 확장 기능을 처음 사용할 때 해당 확장을 제공합니다. -- **MCP 클라이언트.** MCP 서버는 기본적으로 꺼져 있습니다. 사용자가 켜거나 설정한 MCP 클라이언트가 TablePro 브리지를 실행하거나 페어링하면 시작되며, Mac 내부(127.0.0.1)에서만 수신합니다. Claude 또는 Cursor 같은 연결된 AI 클라이언트는 요청한 결과를 받고 자체 약관에 따라 자체 서비스로 보냅니다. -- **추가한 MCP 서버.** AI 세션은 사용자가 승인한 도구 호출과 인수를 해당 서버로 보냅니다. +연결 목록, 쿼리 기록, 로컬 로그와 탭은 공유를 선택하지 않으면 기기에 남습니다. DB 트래픽은 선택한 서버로 갑니다. 암호는 플랫폼의 자격 증명 저장소를 씁니다. Mac은 디스크 원래 위치의 SSH 키를 참조합니다. 분석에 호스트명, 사용자명, SQL, 행이나 자격 증명은 없습니다. [통합](#integrations), Team Library, 지원에는 설명한 예외가 있습니다. -### Mac에 남는 데이터 {#mac-local} +### Mac {#mac-app} -비밀번호는 macOS 키체인에 보관됩니다. 연결 목록, 쿼리 기록, Query Insights, Data Rewind 스냅샷, 설정 및 열린 탭은 Mac에 저장됩니다. 앱은 디스크의 SSH 키 위치를 참조하며 복사하지 않습니다. TablePro 계정을 지원하기 전 버전에는 충돌 보고 도구나 타사 분석 라이브러리가 없습니다. TablePro 계정을 지원하는 버전부터는 위에서 설명한 사용 데이터를 보내는 PostHog 라이브러리가 포함됩니다. 이 라이브러리에는 PostHog의 충돌 보고 도구가 들어 있지만 앱이 꺼 둔 채로 두므로 충돌 보고서는 전송되지 않습니다. 라이브러리는 무작위 ID, 설정, 아직 보내지 않은 이벤트를 `~/Library/Application Support/com.TablePro` 아래 파일에 보관합니다. +직접 분석과 계정 동작은 0.86.0, 첫 빌드 0.86.0-beta.1부터입니다. 로그인하면 Mac을 등록하고 요금제를 받습니다. 토큰은 해당 Mac Keychain에만 남고 iCloud Keychain으로 동기화하지 않습니다. 기존 라이선스 키는 로그인으로 교환 후 로컬에서 삭제합니다. -## iPhone 및 iPad용 TablePro {#ios-app} +#### Mac 사용 데이터 {#mac-usage-report} -앱을 처음 시작할 때 또는 이후 **설정 > 개인정보 보호**(Settings > Privacy)에서 **사용 데이터 공유(Share Usage Data)를 켜지 않으면 아무것도 TablePro에 전송되지 않습니다**. 켜면 TablePro 계정을 지원하기 전 버전의 Mac 앱과 같은 서버에 하루에 한 번 보고서를 보내며, 서버는 같은 방식으로 보고서를 IP 주소 없이 PostHog에 전달합니다. 보고서에는 Apple이 기기의 앱에 부여한 식별자의 SHA-256 해시, 플랫폼, 앱 및 iOS 버전, 프로세서 아키텍처, 앱 언어, 열려 있는 연결의 데이터베이스 유형 이름, 열려 있는 연결 수, 그리고 처음 연결을 시도한 날짜와 시간, 처음 연결에 성공한 날짜와 시간 및 첫 쿼리를 실행한 날짜와 시간이 포함됩니다. 앱에는 업데이트 설정과 라이선스가 없으므로 업데이트 설정은 포함되지 않으며 라이선스는 항상 활성화되지 않은 것으로 보고됩니다. +기본으로 켜져 있고 첫 이벤트 전 묻지 않습니다. **설정 > 일반 > 개인정보 보호 (Settings > General > Privacy)** 에서 **사용 데이터 공유 (Share usage data)** 를 끄세요. 끈 상태로 시작하면 PostHog 라이브러리를 시작하지 않습니다. 자동 충돌 보고는 없으며 PostHog의 충돌 수집도 꺼져 있습니다. -앱은 라이선스 확인, 업데이트 확인 및 플러그인 요청을 하지 않습니다. 선택적 보고서 외에는 사용자의 데이터베이스와 SSH 서버, iCloud Sync를 켠 경우 Apple의 iCloud, SQL Server 연결에서 Microsoft Entra ID로 로그인하는 경우 Microsoft에만 연결합니다. +이벤트는 열린 연결 종류/수를 포함한 일일 사용, 첫 연결 시도/성공 및 DB 종류별 첫 쿼리, 유료 기능 제한과 이유, 업그레이드 클릭, 로그인 방법/로그아웃, 라이선스 구매 안내 표시와 답변입니다. PostHog는 기기, 화면, 네트워크, 세션, 앱과 시스템 정보를 추가하고 IP로 대략적 위치를 구합니다. 로그인 전에는 임의 설치 ID만 있고 개인 프로필은 없습니다. 후에는 계정 ID와 버전, 아키텍처, 언어, 위치 프로필을 씁니다. 로그아웃은 새 ID를 만듭니다. [필드와 주소](https://docs.tablepro.app/security/privacy#usage-data)를 보세요. -기기에서는 비밀번호와 붙여 넣은 SSH 키를 키체인에 보관하며 인증서는 동기화하지 않습니다. 쿼리 기록은 기기에 남습니다. 연결은 기기의 Spotlight 색인에 추가되어 검색할 수 있습니다. 쿼리 실행 중에는 **설정 > 실시간 현황 > 쿼리 가리기**(Settings > Live Activities > Hide Query)를 켜지 않으면 실시간 현황이 잠금 화면과 확장된 Dynamic Island에 SQL을 표시합니다. +#### 업데이트와 플러그인 {#mac-updates} -iPhone 또는 iPad 설정에서 앱 개발자와 분석 정보를 공유하면 Apple이 App Store Connect를 통해 충돌 보고서와 사용 통계를 제공할 수 있습니다. 앱 자체에는 충돌 보고 도구나 타사 분석 라이브러리가 없습니다. +업데이트 피드와 카탈로그는 updates.tablepro.app을 통해 GitHub에서 받습니다. 다운로드와 건수도 GitHub로 요청하며 IP와 사용자 에이전트를 보냅니다. **설정 > 일반 > 소프트웨어 업데이트 (Settings > General > Software Update)** 의 **업데이트 자동 확인 (Automatically check for updates)** 을 끄면 자동 확인을 멈춥니다. 카탈로그에는 끄기 설정이 없습니다. [기술 설명](https://docs.tablepro.app/security/privacy#update-checks)에 이전 피드도 있습니다. -## iCloud Sync 및 Handoff {#icloud} +#### 이전 Mac 버전 {#mac-license} -iCloud Sync는 Mac과 iPhone 및 iPad에서 사용자가 켤 때까지 꺼져 있습니다. 켜면 기록이 사용자의 iCloud 계정 내 비공개 데이터베이스(컨테이너 `iCloud.com.TablePro`)로 전송됩니다. TablePro는 이를 읽을 수 없습니다. +0.86.0 전에는 같은 기본 활성 스위치가 서버 보고를 제어합니다. 해시 머신 ID, 시스템/앱 정보, 연결 종류/수, 라이선스 상태와 첫 시도/성공 날짜를 포함합니다. 업데이트 설정도 보내지만 서버가 버립니다. 현재 서버는 Cloudflare 국가를 붙여 IP/라이선스 키와 개인 프로필 없이 PostHog로 전달합니다. ID는 계정 기기와 연결될 수 있습니다. 전용 하트비트 이력은 없지만 작업, 로그, 백업, 옛 보관본에는 남을 수 있습니다. [보관](#retention)을 보세요. -- Mac에서는 연결, 그룹과 태그, 설정, SSH 프로필, 인증 정보 프로필(이름과 사용자 이름만, 비밀번호 제외), 테이블 및 데이터베이스 즐겨찾기, 저장된 쿼리(SQL 텍스트 포함) 및 테이블 폴더 중 동기화할 항목을 선택합니다. 연결 기록에는 호스트, 포트, 사용자 이름, 데이터베이스 이름, SSH 및 SSL 설정, 시작 명령, 연결 전 스크립트 및 AI 규칙이 포함됩니다. 쿼리 기록, Data Rewind 스냅샷 및 비밀번호 출처는 동기화하지 않습니다. -- iPhone 및 iPad는 연결, 그룹 및 태그를 동기화합니다. -- 비밀번호를 동기화하려면 Mac의 Sync Categories에서 **암호**(Passwords)를, 또는 iPhone 및 iPad에서 **암호 동기화**(Sync Passwords)를 추가로 켜야 하며 iCloud 키체인을 사용합니다. Mac에서는 AI 제공업체 키와 라이선스 키 등 TablePro가 키체인에 보관하는 다른 비밀 정보도 동기화합니다. TablePro 계정을 지원하는 버전부터는 라이선스 키를 로그인으로 교환하는 즉시 삭제하며, 앱의 로그인 상태를 유지하는 토큰은 동기화하지 않습니다. +이전 앱은 키 입력 후에만 라이선스 서비스에 접속합니다. 키, ID, Mac 이름과 버전을 보냅니다. 기기는 계정에 속하며 활성화/해제는 IP/사용자 에이전트와 함께 기록됩니다. [목록](https://docs.tablepro.app/security/privacy#older-mac-reports)에 필드와 주기가 있습니다. -Mac의 iCloud Sync는 Pro 또는 Team 라이선스에 포함됩니다. iPhone 및 iPad에서는 무료입니다. +### iPhone과 iPad {#ios-app} -Handoff는 Apple을 통해 사용자 자신의 기기 간에 열린 연결의 ID와 열린 테이블 이름을 전달합니다. 열린 테이블이 없으면 연결 이름을 전달하며, 연결에 이름이 없으면 호스트를 전달합니다. 설정이나 인증 정보는 보내지 않습니다. +출시 앱은 첫 실행이나 **설정 > 개인정보 보호 (Settings > Privacy)** 의 **사용 데이터 공유 (Share Usage Data)** 를 켜기 전 사용 보고를 하지 않습니다. 근거는 동의입니다. 일일 보고는 서버를 거쳐 IP 없이 Cloudflare 국가와 함께 개인 프로필 없이 PostHog로 갑니다. Apple 기기 ID 해시, 플랫폼, 버전, 아키텍처, 언어, 연결 종류/수, 첫 시도/성공과 첫 쿼리 날짜를 포함합니다. 항상 라이선스 없음으로 보고하고 업데이트 설정은 없습니다. 계정, 라이선스, 업데이트, 플러그인 확인도 없습니다. -## 웹사이트 {#website} +DB/SSH, 선택한 iCloud, SQL Server의 Microsoft Entra 로그인은 해당 서비스에 보냅니다. 암호/붙여넣은 SSH 키는 Keychain에, 인증서/이력은 기기에 남습니다. 연결은 로컬 Spotlight에 들어갑니다. Live Activity는 Hide Query를 켜지 않으면 잠금 화면에 SQL을 표시할 수 있습니다. 별도 Apple Share With App Developers 설정은 App Store Connect를 통해 충돌과 통계를 제공할 수 있습니다. 앱 자체에는 충돌 보고기나 외부 분석 라이브러리가 없습니다. [iOS 설명](https://docs.tablepro.app/ios#privacy)을 보세요. -**호스팅.** 웹사이트와 계정 포털은 Cloudflare 뒤에 있는 운영자의 서버에서 실행됩니다. 일반적인 웹 서버처럼 IP 주소, 브라우저 사용자 에이전트 및 요청한 각 페이지의 주소를 받습니다. +### Linux {#linux-app} -**Cloudflare Web Analytics.** Cloudflare는 웹사이트 페이지에 Web Analytics 스크립트를 추가하며, 계정 포털에서는 실행되지 않습니다. 브라우저는 `static.cloudflareinsights.com`에서 이를 로드하고 페이지 조회마다 페이지, 유입 사이트, 로딩 시간, 브라우저, 운영체제 및 기기 유형을 Cloudflare에 보고합니다. Cloudflare는 연결 국가를 추가합니다. 스크립트는 쿠키를 설정하거나 브라우저에 정보를 저장하지 않습니다. Cloudflare는 IP 주소나 브라우저 정보를 이용해 사용자를 핑거프린팅하지 않는다고 명시합니다. 운영자는 방문자별 기록 대신 페이지별 또는 국가별 조회 수 같은 집계만 받습니다. 법적 근거: 정당한 이익. +0.1.0-beta.1부터 로그인 시 [계정](#account) 설명대로 기기를 등록합니다. 비밀은 데스크톱 키링에 둡니다. 패키지 업데이트는 선택한 배포자의 설정을 따릅니다. 자동 충돌 보고는 없습니다. -**Google Analytics.** 사이트는 모든 페이지에서 동의 모드로 Google Analytics를 로드합니다. 쿠키 질문에서 **허용**을 선택하기 전에는 쿠키를 설정하지 않고 기기에 식별자를 저장하지 않은 채 페이지마다 쿠키 없는 신호만 Google에 보냅니다. 허용하면 `_ga` 및 `_ga_` 쿠키를 설정하고 조회 페이지, 다운로드 클릭 및 결제 시작 같은 방문 활동을 측정합니다. 광고 저장소, 광고 개인화 및 광고 사용자 데이터는 항상 거부됩니다. Google은 Google Analytics 4가 IP 주소를 기록하거나 저장하지 않는다고 명시합니다. 운영자의 Google Analytics 속성은 Google의 기본 보관 기간을 사용하므로 Google은 수집한 사용자 수준 및 이벤트 수준 데이터를 2개월 후 삭제합니다. 식별자 대신 집계를 보관하는 Google 표준 보고서는 영향을 받지 않습니다. 법적 근거: 쿠키에 대한 동의. +#### Linux 사용 데이터 {#linux-usage-data} -**실시간 채팅.** 웹사이트와 계정 포털의 모든 페이지에는 채팅 제공업체 Crisp의 버튼이 표시됩니다. 페이지 로딩 후 브라우저는 `client.crisp.chat`에서 Crisp 스크립트를 로드하고, Crisp는 [쿠키 및 브라우저 저장소](#cookies)에 설명된 쿠키를 설정합니다. Crisp는 IP 주소, 브라우저 정보, 조회 페이지 주소 및 작성한 메시지를 받으며, 대화를 시작하면 IP 주소를 보관합니다. 운영자는 Crisp에 페이지 언어를 알려줍니다. 계정 포털에 로그인한 경우에는 대화를 계정과 연결하기 위해 계정의 이메일 주소와 계정 ID도 Crisp에 제공합니다. 그 외 사용자 정보는 제공하지 않습니다. Crisp는 프랑스에 있습니다. +0.1.0-beta.1부터 기본 켜짐입니다. Preferences > General > Privacy의 Share usage data를 끄세요. PostHog EU로 일일 사용/연결 종류·수, 첫 시도·성공·종류별 쿼리, 로그인/아웃, 업그레이드 클릭, 구매 안내/Buy 답변을 직접 보냅니다. 설치/계정 ID, 버전, 아키텍처, 언어와 SDK 메타데이터가 있습니다. PostHog는 IP로 위치를 구합니다. 로그인 전 임의 ID만 있고 프로필은 없으며 후에는 계정 프로필이 사용과 구매를 연결합니다. 로그아웃은 ID를 재설정합니다. 호스트명, SQL, 행, 자격 증명은 없습니다. 별도 기기 등록에는 호스트명이 있습니다. -**결제 스크립트.** 구매 버튼에 포인터를 올리거나 Tab 키로 이동하면 브라우저는 jsDelivr(`cdn.jsdelivr.net`)에서 {merchant}의 결제 스크립트를 로드합니다. jsDelivr는 IP 주소와 브라우저 정보를 받습니다. {merchant}의 결제 화면 자체는 클릭할 때만 열립니다. +끄면 새 전송을 멈춥니다. 진행 중인 요청은 끝날 수 있습니다. 이전 이벤트를 지우거나 계정/서버 분석을 멈추지 않습니다. [보관](#retention), [권리](#rights), [기술 목록](https://docs.tablepro.app/security/privacy#linux-usage-data)을 보세요. -**뉴스레터 확인.** 뉴스레터 양식을 작성하기 시작하면 구독하는 사람이 실제 사람인지 확인하기 위해 브라우저가 `challenges.cloudflare.com`에서 Cloudflare Turnstile을 로드합니다. Cloudflare는 IP 주소와 브라우저 정보를 받습니다. + -**구매 유입 기록.** 사이트에 도착하면 브라우저는 첫 방문 기록인 `tablepro:attribution`을 로컬 저장소에 90일간 보관합니다. 방문 출처(따라온 링크의 `ref` 또는 `utm_*` 태그나 유입 사이트), 처음 방문한 페이지 및 시간이 포함됩니다. 구매를 시작하면 결제 요청과 함께 전송됩니다. 운영자의 서버는 방문 출처를 결제의 메타데이터로 {merchant}에 전달하고, 결제 후 주문과 함께 보관하며, 결제 시작과 결제 이벤트와 함께 PostHog에 보냅니다. 처음 방문한 페이지와 시간은 보관하지 않습니다. +## 선택하는 서비스 {#integrations} -**문서.** docs.tablepro.app의 문서는 Mintlify가 호스팅합니다. Mintlify는 페이지마다 IP 주소와 브라우저 정보를 받으며, 페이지는 Google Fonts에서 글꼴을 불러옵니다. 탐색 표시줄에는 리포지토리의 별 수가 표시되며, 브라우저가 이를 GitHub API에서 가져옵니다. 따라서 GitHub도 IP 주소와 브라우저 정보를 받습니다. 이 요청은 쿠키를 설정하지 않습니다. 문서는 이 사이트에서 선택한 답변을 읽을 수 없으므로 쿠키 질문을 따로 표시합니다. 문서에서 **Allow**를 선택하기 전에는 쿠키를 설정하지 않고 방문자 ID도 저장하지 않습니다. 허용하면 Google Analytics가 `_ga` 및 `_ga_` 쿠키를 설정해 문서 방문을 측정하고, Mintlify는 집계를 위해 무작위 방문자 ID인 `mintlify_anonymous_id`를 로컬 저장소에 저장합니다. 문서 바닥글의 **Cookie settings**에서 답변을 바꿀 수 있으며, 거부하면 둘 다 삭제됩니다. 법적 근거: 동의. +DB, SSH, 프록시 제공자는 요청한 트래픽을 직접 받습니다. 설정한 로그인 서비스는 인증 요청을 받습니다. Apple Maps는 지도, DuckDB는 쿼리 확장을 제공합니다. 내려받은 연결/AI 보조 프로그램은 제공자에 접속합니다. 각각의 조건이 적용됩니다. -**언어 및 지역 할인.** 브라우저 언어에 사이트가 제공하는 언어가 없을 때 사용자 언어로 된 페이지를 제안하고 결제 시 적용될 지역 할인을 표시하기 위해, 사이트는 Cloudflare(`/cdn-cgi/trace`)와 운영자의 서버에 연결이 어느 국가에서 오는지 묻고 기기의 시간대를 읽을 수 있습니다. 두 요청 모두 쿠키를 포함하지 않으며 페이지는 응답 내용을 보관하지 않습니다. 법적 근거: 정당한 이익. +### iCloud와 Handoff {#icloud} -사이트를 읽는 것만으로는 자체 쿠키가 설정되지 않습니다. 공개 사이트의 뉴스레터 구독, 결제 및 할인 코드 요청은 인증 정보를 제외하므로 계정 포털 쿠키를 보내거나 응답의 쿠키를 수락하지 않습니다. 계정 포털 페이지를 여는 것은 별도 작업이며, 그곳에서 로그인하면 아래의 포털 쿠키가 설정됩니다. 사이트가 브라우저에 보관하는 모든 항목은 [쿠키 및 브라우저 저장소](#cookies)에 나와 있습니다. +선택적 iCloud Sync는 연결, 그룹, 태그, 설정, 쿼리, SSH 프로필을 개인 CloudKit에 저장합니다. Mac에서는 테이블과 데이터베이스 즐겨찾기 및 폴더, 자격 증명 프로필 이름, 사용자 이름과 비밀번호 모드도 동기화합니다. 프로필 비밀번호는 포함하지 않습니다. Apple이 호스팅하며 개발자는 읽을 수 없습니다. 암호 동기화는 별도이며 기본 꺼짐이고 종단 간 암호화 iCloud Keychain을 씁니다. Mac에서는 같은 저장소에 쓰는 AI 키/옛 라이선스 키 등도 대상입니다. 계정 토큰은 동기화하지 않습니다. Mac은 Pro 또는 Team이 필요하고 iOS는 무료입니다. Handoff는 Apple 기기 사이에 연결 ID와 테이블명, 테이블이 없으면 연결명/호스트를 전송하며 자격 증명은 보내지 않습니다. [설정](https://docs.tablepro.app/features/icloud-sync)을 보세요. -## 구매 {#purchases} +### AI와 외부 도구 {#ai-tools} -라이선스는 merchant of record이자 재판매자인 {merchant}(Polar Software, Inc.)가 판매합니다. 구매에는 {merchant}의 구매자 약관과 개인정보 처리방침이 적용됩니다. {merchant}는 결제를 처리하고 판매세 또는 VAT를 계산하고 납부하며 영수증과 청구서를 보내고 결제 문제와 분쟁을 처리합니다. 이름, 이메일 주소, 청구 주소 및 결제 정보를 수집합니다. 운영자는 카드 정보 전체를 볼 수 없습니다. +AI 요청은 선택한 제공자나 로컬 모델로 직접 갑니다. 프롬프트, 스키마, SQL, 대화를 포함할 수 있습니다. 그리드 행 첨부는 기본 꺼짐입니다. 허용한 쿼리 도구 결과도 대화에 들어가 첨부 설정과 별개로 제공자에게 갑니다. GitHub Copilot은 npm에서 보조 프로그램을 받으며 GitHub에 텔레메트리 보내기 (Send telemetry to GitHub)는 처음에 켜져 있습니다. -결제를 시작하면 운영자의 서버는 구매 내용, 구매하는 페이지의 언어, 방문 출처([웹사이트](#website) 참고), IP 주소를 {merchant}에 알려줍니다. {merchant}는 IP 주소로 세금과 통화를 정합니다. 운영자는 {merchant}에서 이메일 주소, 입력한 이름과 청구 주소, 구매 내용, 금액, 주문 및 구독 ID, 이후 갱신·취소·환불 같은 변경 정보를 받습니다. 주문마다 이메일 주소, 청구 국가, 금액을 보관합니다. +MCP는 기본 꺼짐이며 그 상태에서는 브리지나 페어링으로도 시작할 수 없습니다. 켜면 인증된 클라이언트가 허용 범위 내 데이터를 요청합니다. AI 클라이언트는 결과를 자체 서비스로 보낼 수 있습니다. 외부 MCP 서버는 승인한 인수를 받습니다. [AI/MCP 설정](https://docs.tablepro.app/security/privacy#ai-providers)을 보세요. -로그인하지 않고 구매하면 구매에 사용한 이메일 주소의 TablePro 계정으로 들어갑니다. 계정이 없으면 새로 만들어지며 처음 로그인할 때까지 인증되지 않은 상태로 남습니다. [계정 포털]({account})에서는 구독의 결제 주기나 좌석 수를 바꾸고, 구독을 취소하거나 재개하고, 환불을 요청할 수 있습니다. 취소할 때 선택한 사유와 작성한 의견은 {merchant}에 전달되어 구독과 함께 보관됩니다. 카드, 청구서, 세금 정보 및 청구 주소는 [{merchant} 고객 포털]({portal})에 있으며, 계정 포털에서 열 수 있습니다. 환불은 [환불 정책](/ko/refund-policy)에, 라이선스의 허용 범위는 [이용약관](/ko/terms)에 설명되어 있습니다. +## 웹사이트와 브라우저 저장 {#website} -## 계정 포털 {#account} +서버와 Cloudflare는 IP, 사용자 에이전트, 페이지 요청을 받습니다. Cloudflare Web Analytics는 방문, 출처, 로드 시간, 브라우저/OS/기기 분류와 국가를 세며 브라우저 저장이나 지문 추적은 하지 않습니다. 정당한 이익은 사이트 이해와 유지입니다. -account.tablepro.app의 [계정 포털]({account})에서 TablePro 계정의 라이선스, 기기, 결제, 팀을 관리합니다. 웹사이트처럼 Cloudflare 뒤에 있는 운영자의 서버에서 실행됩니다. +Google Analytics는 Consent Mode로 로드됩니다. Allow 전에는 쿠키나 저장 ID 없는 페이지 신호를 보냅니다. 동의는 쿠키와 방문/다운로드/결제 측정을 켭니다. 광고 저장, 개인화, 광고 사용자 데이터는 항상 거부합니다. Google은 GA4가 IP를 저장하지 않는다고 설명합니다. -**계정.** 계정은 한 사람에게 속하며 이메일 주소로 식별합니다. 계정에는 그 주소, 설정한 이름과 언어, 로그인 방법, 로그인된 기기, 라이선스와 주문, 소속 팀과 역할 및 좌석, 그리고 로그인, 새 기기, 팀 변경 같은 계정 변경을 각 변경을 만든 요청의 IP 주소 및 브라우저와 함께 기록한 감사 로그가 담깁니다. 이메일은 계정의 언어로 보내드립니다. +Crisp는 [지원](#support)대로 모든 사이트/포털 페이지에서 로드됩니다. Buy에 포인터/Tab을 두면 jsDelivr의 {merchant} 스크립트를 읽으며 IP/브라우저를 전달합니다. 클릭해야 결제가 열립니다. 양식을 시작하면 남용 방지의 정당한 이익으로 Turnstile을 읽습니다. 국가/시간대는 언어/지역 할인 제안에 정당한 이익으로 쓰며 쿠키 없는 요청과 답변을 페이지에 보관하지 않습니다. -**로그인.** 링크와 6자리 코드를 이메일로 보내드립니다. 링크는 한 번만 사용할 수 있고, 코드는 5번까지 시도할 수 있으며, 둘 다 15분 후 만료됩니다. 패스키를 추가할 수도 있습니다. 패스키마다 공개 키, 붙인 이름, 기기 간 동기화 여부, 추가 시간과 마지막 사용 시간을 저장합니다. Apple, GitHub 또는 Google로 로그인할 수도 있습니다. 이 경우 제공업체는 사용자의 ID와 인증된 이메일 주소를, Apple은 처음에 이름도 운영자에게 알려줍니다. ID와 주소는 계정과 함께 저장하며, Apple의 경우 토큰을 암호화해 보관하고 Apple 연결을 해제하거나 계정을 삭제하면 Apple에서 취소합니다. 제공업체의 주소가 기존 계정의 것이면 연결하기 전에 해당 계정으로 확인용 링크와 코드를 보냅니다. 단, Google이 그 주소를 관리하는 경우(Gmail 또는 Google Workspace)는 제외합니다. +첫 방문은 `tablepro:attribution`에 태그/출처, 첫 페이지, 날짜를 90일 보관합니다. 결제 때 서버는 출처를 {merchant} 메타데이터로 전달하고 주문에 보관하며 결제/지불 이벤트와 PostHog에 보냅니다. 페이지/날짜는 보관하지 않습니다. 근거는 구매 출처 측정의 정당한 이익입니다. 공개 구독/결제/할인 요청은 자격 증명을 생략하고 포털 쿠키를 설정하지 않습니다. 포털에는 분석 스크립트가 없지만 서버 이벤트는 있습니다. -**팀.** 누군가를 팀에 초대하면 그 사람의 이메일 주소, 역할, 초대에 좌석이 포함되는지를 저장하고 7일 동안 유효한 링크를 보냅니다. 소유자와 관리자는 팀 구성원의 이름과 이메일 주소, 초대, 팀의 감사 로그를 볼 수 있습니다. 감사 로그에는 초대한 주소를 포함해 팀에서 누가 무엇을 바꿨는지 표시되지만 IP 주소나 브라우저는 표시되지 않습니다. 구성원은 팀, 팀의 플랜, 좌석 수, 자신의 역할을 볼 수 있습니다. +### 문서 사이트 {#docs} -**데이터.** 설정에서 이름, 이메일 주소, 언어를 바꾸고, 로그인 방법을 추가하거나 제거하고, 계정 데이터를 JSON 파일로 다운로드하고, 계정을 삭제할 수 있습니다. 다른 구성원이 있는 팀의 소유자인 동안에는 삭제할 수 없습니다. 삭제하면 로그인 방법, 기기, 라이선스, 팀 멤버십, 혼자만 있는 팀, 이메일 주소의 뉴스레터 구독이 삭제되고 구독은 환불 없이 종료됩니다. 삭제 후 보관하는 정보는 [보관 기간](#retention)에 나와 있습니다. +Mintlify가 docs.tablepro.app을 호스팅합니다. 페이지, Google Fonts, GitHub 별 수 요청은 제공자에게 IP/브라우저를 전달합니다. 문서는 별도 동의를 묻습니다. Allow 전 분석 쿠키/방문자 ID는 없습니다. Allow는 Google Analytics와 Mintlify ID를 켭니다. 문서 하단 Cookie settings로 철회하고 제거합니다. 사이트의 선택은 이 출처로 이어지지 않습니다. -**포털이 로드하는 것.** 포털은 Google Analytics, Cloudflare Web Analytics 등 어떤 분석 스크립트도 로드하지 않으며 쿠키에 관해 묻지 않습니다. [웹사이트](#website)에 설명된 Crisp 실시간 채팅을 표시하며, 포털에서 구매하면 페이지 위에 {merchant} 결제 창이 열립니다. +### 쿠키와 저장 {#cookies} -## 뉴스레터 {#newsletter} +Cloudflare Web Analytics는 브라우저에 저장하지 않습니다. 공개 페이지는 자체 쿠키를 두지 않습니다. 아래 수명은 제공자 보관과 별개입니다. 필수 저장은 로그인/선택을 유지하며 동의/정당한 이익 목적은 다음과 같습니다. -릴리스 노트를 구독하면 먼저 구독한 페이지의 언어로 확인 링크를 이메일로 보냅니다. 링크는 7일 동안 유효하며 한 주소에는 하루 최대 3개까지 보냅니다. 확인하면 주소가 그 언어와 함께 운영자의 서버에 있는 뉴스레터 목록에 추가됩니다. 구독 신청과 확인 각각에 대해 시각, 요청이 온 IP 주소와 브라우저, 구독한 페이지, 동의한 문구의 버전을 기록합니다. 양식은 [웹사이트](#website)에 설명된 대로 Cloudflare Turnstile이 확인합니다. +| 이름/서비스 | 목적과 시작 | 기간과 제어 | +| --- | --- | --- | +| `_ga`, `_ga_` | 동의 후 Google Analytics | 최대 2년, 거부하면 삭제 | +| `tablepro:analytics-consent` | 필수 선택 기록, 사이트/문서 별도 | 지울 때까지 | +| `tablepro:attribution` | 결제 시 첫 출처, 정당한 이익 | 90일 | +| `theme`, `tablepro:language`, `tablepro:campaign-closed` | 모양, 언어 선택/닫기, 닫은 할인 알림, 정당한 이익 | 지울 때까지, 포털 테마 별도 | +| `mintlify_anonymous_id` | 문서 동의 후 방문자 ID | 지우거나 거부할 때까지 | +| `crisp-client/` 쿠키 | 페이지 로드 후 채팅 유지, 정당한 이익 | 6개월, 재방문 시 갱신 | +| `__Host-tp_session` | 필수 포털 로그인 | 로그인 후 30일, 과정 중 최대 10분, 로그아웃 삭제 | +| `locale`, `context`, `sign-in-return-to` | 언어, Personal/팀 보기, 복귀 페이지, 정당한 이익 | 앞 둘은 지울 때까지, 복귀는 15분 | -모든 뉴스레터는 모든 수신자의 열람과 클릭을 기록합니다. 뉴스레터에는 작은 이미지가 들어 있고, 링크는 `links.news.tablepro.app`을 거칩니다. 이메일 앱이 이미지를 불러오거나 링크를 열면 Amazon SES가 열람 또는 클릭 시각과 클릭한 링크를 이메일 앱이 보내는 IP 주소 및 사용자 에이전트와 함께 기록해 운영자의 서버로 전달하고, 서버는 뉴스레터별 열람 수와 클릭 수를 집계합니다. 이미지를 불러오지 않는 이메일 앱에서는 열람이 기록되지 않습니다. 구독 해지 링크와 새 이메일을 작성하는 링크는 추적하지 않습니다. - -모든 뉴스레터에는 구독 해지 버튼이 있는 페이지를 여는 구독 해지 링크가 있고, 이메일 앱에서 한 번의 클릭으로 구독을 해지할 수 있게 하는 헤더도 들어 있습니다. 구독 해지 후에는 뉴스레터를 보내지 않으며 해지를 확인하는 이메일도 보내지 않고, 다시 구독하려면 새로 확인해야 합니다. 뉴스레터를 스팸으로 신고해도 구독이 해지되며, 귀하의 주소로 보낸 이메일이 영구적으로 반송되면 그 주소로는 더 이상 보내지 않습니다. 주소 자체의 삭제도 원하면 이메일로 요청하거나, 그 주소를 사용하는 TablePro 계정을 삭제하세요. - -이전 서버에서 옮겨 올 때, 그 메일링 리스트에서 구독을 해지하지 않은 주소는 확인 여부와 관계없이 모두 구독 상태로 이 목록에 추가되었습니다. 이전 서버는 구매자, 라이선스 보유자, 베타 신청자의 주소도 목록에 추가해 이메일을 보냈습니다. 구독을 해지한 주소는 해지 상태로 옮겨졌고, 이메일이 반송되었거나 스팸으로 신고된 주소는 대신 운영자의 수신 차단 목록에 추가되어 뉴스레터가 가지 않습니다. - -## 쿠키 및 브라우저 저장소 {#cookies} - -공개 웹사이트를 읽는 것만으로는 자체 쿠키가 설정되지 않습니다. 뉴스레터 구독, 결제 및 할인 코드 요청은 인증 정보를 제외하며 포털 쿠키를 설정하지 않습니다. 계정 포털에 로그인하거나 로그인을 시작하면 아래의 필수 쿠키 하나가 설정됩니다. Cloudflare Web Analytics는 쿠키를 설정하거나 브라우저에 정보를 저장하지 않습니다. Google Analytics 쿠키는 허용하기 전까지 설정하지 않습니다. Crisp는 채팅 로딩 후 모든 페이지에 쿠키를 설정합니다. 여기에 나열된 정보는 광고에 사용되거나 판매되지 않습니다. - -- **`_ga` 및 `_ga_`**(Google Analytics 쿠키, 최대 2년, 분석 허용 시에만): 브라우저의 임의 식별자와 현재 방문 상태입니다. 거부하거나 나중에 응답을 변경하면 삭제됩니다. 법적 근거: 동의. -- **`tablepro:analytics-consent`**(로컬 저장소, 사용자가 지울 때까지): 분석 질문에 대한 응답을 저장해 페이지마다 다시 묻지 않게 합니다. 계정 포털은 분석을 하지 않으므로 이 질문을 하지 않으며 응답도 읽지 않습니다. 법적 근거: 선택을 존중하기 위해 반드시 필요. -- **`tablepro:attribution`**(로컬 저장소, 90일): [웹사이트](#website)에 설명된 첫 방문 기록입니다. 사용자 식별자는 없으며 결제 요청과 함께만 전송되며, 서버는 방문 출처를 {merchant}에 전달합니다. 법적 근거: 정당한 이익. -- **`theme`**(로컬 저장소, 사용자가 지울 때까지): 선택한 라이트, 다크 또는 시스템 화면 모드를 저장합니다. 계정 포털은 별도로 저장합니다. 법적 근거: 정당한 이익. -- **`tablepro:language`**(로컬 저장소, 사용자가 지울 때까지): 언어 메뉴나 언어 표시줄에서 선택한 언어와 제안을 닫은 언어를 저장하여 다시 제안하지 않습니다. 법적 근거: 정당한 이익. -- **`tablepro:campaign-closed`**(로컬 저장소, 사용자가 지울 때까지): 헤더 위의 알림을 닫은 할인 행사를 저장하여, 그 할인 행사가 끝날 때까지 모든 페이지에서 알림을 닫힌 상태로 유지합니다. 법적 근거: 정당한 이익. -- **`mintlify_anonymous_id`**(docs.tablepro.app의 로컬 저장소, Mintlify가 설정, 문서에서 Google Analytics를 허용한 경우에만): [웹사이트](#website)에 설명된 방문자 ID입니다. 거부하면 삭제됩니다. 문서는 자체 `tablepro:analytics-consent` 답변을 따로 저장합니다. 법적 근거: 동의. -- **`crisp-client/`로 시작하는 쿠키**(Crisp, 예: `crisp-client/session/…`, 6개월, 재방문 시 갱신, 채팅 로딩 후 모든 페이지에 설정): 페이지와 방문 간에 채팅과 대화를 유지합니다. 법적 근거: 모든 페이지에서 지원을 제공하기 위한 정당한 이익. -- **`__Host-tp_session`**(계정 포털 쿠키, 로그인부터 30일): 로그인 상태를 유지합니다. 로그인 전에는 패스키, Apple, GitHub, Google 또는 앱에서의 로그인이 진행되는 동안에만 최대 10분간 설정됩니다. 로그아웃하면 삭제됩니다. 공개 사이트의 뉴스레터, 결제 및 할인 코드 요청은 인증 정보를 제외하며 이 쿠키를 받지 않습니다. 법적 근거: 반드시 필요. -- **`locale`, `context` 및 `sign-in-return-to`**(계정 포털 로컬 저장소): 로그인 전에 포털에서 고른 언어와 마지막으로 연 것이 개인인지 팀인지(둘 다 지울 때까지), 그리고 이메일의 로그인 링크를 연 뒤 돌아갈 페이지(15분)입니다. 법적 근거: 정당한 이익. - -분석에 대한 응답은 모든 페이지의 푸터에 있는 **쿠키 설정** 또는 아래에서 언제든 변경하거나 철회할 수 있습니다. +하단 Cookie settings 또는 여기서 분석 동의를 바꾸세요: -## 법적 근거 {#lawful-basis} +## 수신자 {#sharing} -유럽 경제 지역 및 영국 사용자에게 적용되는 GDPR과 UK GDPR의 법적 근거는 다음과 같습니다. +| 수신자 | 데이터와 목적 | +| --- | --- | +| [OVH]({ovhPrivacy}) | 서버 및 서비스 기록 호스팅 | +| [Cloudflare]({cloudflarePrivacy}) | DNS/프록시, R2/백업, Turnstile, Cloudflare Web Analytics | +| [Amazon Web Services]({awsPrivacy}) | Amazon SES 메일, 전송/반응, CloudFront 링크, SNS/SQS 이벤트 | +| [PostHog EU]({posthogPrivacy}) | 앱/서버 분석, 이름/이메일 없는 ID, 직접 요청 IP | +| [{merchant}]({merchantPrivacy}) | 독립 merchant of record, 결제/청구/구매 | +| [Crisp]({crispPrivacy}) | 채팅, 브라우저/페이지, 로그인한 계정 신원 | +| [Google]({googlePrivacy}) | 사이트/문서 분석과 글꼴, 선택한 로그인 | +| [Mintlify]({mintlifyPrivacy}) | 문서 호스팅과 동의한 측정 | +| [GitHub]({githubPrivacy}) | 다운로드, 업데이트, 플러그인, 별 수, 공개 이슈, 선택 로그인 | +| [Apple]({applePrivacy}) | 선택 로그인, 앱/통합의 서비스와 진단 | +| [jsDelivr]({jsdelivrPrivacy}) | IP/브라우저가 있는 결제 스크립트 요청 | -- **계약**(제6조 제1항 (b)): 라이선스 판매 및 제공, 로그인 방법과 기기를 포함한 계정, 라이선스 확인, 계정 포털 및 Team Library. -- **정당한 이익**(제6조 제1항 (f)): Mac 앱 사용 데이터와 PostHog에서의 분석, 운영자의 서버가 PostHog에 보내는 로그인·구매·기기·팀 관련 이벤트, 계정 감사 로그, 뉴스레터 양식의 Cloudflare Turnstile을 포함한 보안 및 남용 방지, 서버 로그, Cloudflare Web Analytics, 구매 유입 기록, 언어 및 지역 할인을 위한 국가 조회, 모든 페이지의 실시간 채팅. -- **동의**(제6조 제1항 (a)): Google Analytics 쿠키, iPhone 및 iPad 앱 사용 보고서, 뉴스레터 및 사용자가 시작하는 실시간 채팅 대화. -- **법적 의무**(제6조 제1항 (c)): 세금 및 회계 기록, 적법한 요청에 대한 응답. +팀원은 역할에 따른 내용과 계정 정보를 받습니다. 통합은 지정한 데이터를 받습니다. 개인 데이터를 팔거나 광고 목적으로 공유하지 않습니다. 다른 공개는 법적 요구가 있을 때만 합니다. 제공자의 자체 방침도 적용됩니다. -## 데이터 수신 대상 {#sharing} +## 처리 장소 {#transfers} -개인정보는 TablePro 운영에 필요한 서비스에만 공유합니다. +OVH와 Amazon SES는 싱가포르(SES는 `ap-southeast-1`), PostHog는 EU, Crisp는 프랑스에 기반을 둡니다. {publisherName}은 베트남에서 운영합니다. {merchant}, Google, GitHub, Cloudflare, Amazon Web Services, Mintlify 등 미국 제공자는 미국에서 처리합니다. 저장/백업은 다른 국가를 포함할 수 있습니다. EEA/영국의 필수 보호는 제공자의 표준계약조항이나 승인된 체계에 따르며 Google은 EU-US Data Privacy Framework도 사용합니다. [연락처](#controller)로 정보를 요청하세요. -- **{merchant}**: 구매의 merchant of record. -- **Amazon Web Services**: Amazon SES 서비스로 아시아 태평양(싱가포르) 리전에서 운영자의 이메일을 보냅니다. 로그인 링크와 코드, 팀 초대, 계정 및 보안 알림, 뉴스레터입니다. 이메일이 전달되거나 반송되거나 스팸으로 신고되면 운영자에게 알리며, 운영자는 반송과 스팸 신고를 기록해 해당 주소로 더 이상 보내지 않습니다. 뉴스레터의 경우 [뉴스레터](#newsletter)에 설명된 대로 각 열람과 클릭도 알립니다. -- **호스팅 제공업체 및 Cloudflare**: 웹사이트, 계정 포털 및 앱이 통신하는 서버 운영. Cloudflare는 Web Analytics로 페이지 조회 수도 집계하고 Turnstile로 뉴스레터 양식을 확인합니다. -- **Google**: 웹사이트와 문서의 Google Analytics. -- **Crisp**: 웹사이트와 계정 포털 모든 페이지의 실시간 채팅. -- **PostHog**(EU Cloud): 제품 분석 서비스. 앱의 사용 보고서와 로그인·구매·기기·팀에 관한 운영자 서버의 이벤트를 계정 ID와 함께 받으며, 이메일 주소나 이름은 받지 않습니다. Mac 앱이 직접 보내는 사용 데이터와 함께 Mac의 IP 주소도 받습니다. -- **Apple, GitHub 및 Google**: 이들로 계정에 로그인하는 경우. -- **jsDelivr**: 구매 버튼에 포인터를 올릴 때 브라우저에 {merchant} 결제 스크립트를 제공합니다. -- **Mintlify**: docs.tablepro.app의 문서를 호스팅합니다. -- **GitHub**: 업데이트 피드, 플러그인 카탈로그 및 다운로드를 호스팅하고, 문서에 표시되는 별 수를 제공합니다. +## 보관 기간 {#retention} -개인정보를 판매하거나 광고주와 공유하지 않습니다. +표에 미설정이라 한 항목은 기한을 정하지 않았습니다. 계정 삭제는 PostHog/Crisp 데이터를 지우지 않습니다. [연락처](#controller)에 이메일을 보내면 요청에 따라 해당 제공자에서 삭제합니다. -## 국외 이전 {#transfers} +| 기록 | 보관 및 삭제 | +| --- | --- | +| PostHog 분석 | 기한 미설정. 꺼도 이전 이벤트는 남음. 삭제 요청 가능. | +| 처리 작업/서버 로그 | 작업은 전송/재시도 중 보고를 저장할 수 있음. 로그는 보안/진단용. 전체 기한 미설정, 서버 사본이 없다고 약속하지 않음. | +| 기기 | 제거한 기기도 계정 삭제까지 | +| 계정/감사 | 계정, 로그인 방법, 기기, 라이선스, 소속 삭제. 감사는 무기한. 이메일 필드와 행위자 IP/에이전트 제거, 자유 텍스트 주소는 남을 수 있음. | +| 주문/제공자 알림 | 세무/회계 주문은 기한 없음. 계정/이메일 연결 제거. {merchant}, Amazon SES, Apple 이벤트는 남고 삭제 계정의 구매 개인정보와 메일 수신/반응 정보를 정리. | +| Team Library | 삭제 항목은 동기화용 마지막 버전 유지. 일반 팀 삭제 후 30일 뒤 라이브러리 삭제, 전에는 복구 가능. 유일 소유자 계정 삭제는 즉시 삭제. 라이선스 종료로는 지우지 않음. | +| 인증 | 링크/코드 15분 만료, 7일 뒤 삭제. 세션 30일. 앱 토큰 마지막 사용 90일 뒤 만료, 30일 후 삭제. 메일 작업 평문은 전송 하루 뒤 또는 포기 7일 뒤 정리. | +| 뉴스레터 | 새 미확인 주소 30일. 확인/이전 주소는 요청 또는 같은 이메일 계정 삭제까지. 해지는 주소를 해지 상태로 유지. | +| 전송 억제 | 반송/신고 주소와 처음/마지막 날짜는 계정/구독 삭제 후에도 재전송 방지용 보관. 기한 없음. | +| Google Analytics | 사용자/이벤트 2개월, 집계 표준 보고는 별도 | +| Cloudflare Web Analytics | 최근 6개월 방문 합계 제공 | +| 지원 | Crisp/메일은 요청을 포함한 삭제까지. 기한 미설정. | +| 백업/이전 보관본 | 기한 없음. 계정 삭제로 사본을 지우지 않음. 이전 전체 DB에 이름/이메일, 라이선스, 주문, 팀, 기기명, 구독자, 베타, 메일, 사용 보고, IP 포함 라이선스 로그가 있음. | -위 서비스는 여러 국가에서 운영되므로 개인정보가 거주 국가 밖에서 처리될 수 있습니다. {merchant}, Google, GitHub, Cloudflare 및 Mintlify는 미국에서 데이터를 처리합니다. Google은 EU-US Data Privacy Framework 및 표준계약조항에 따라 처리합니다. PostHog는 유럽연합에서 데이터를 처리합니다. Amazon Web Services는 싱가포르에서 운영자의 이메일을 보냅니다. 법률상 필요한 경우 EEA 및 영국에서의 이전은 표준계약조항 또는 다른 승인된 방식에 근거합니다. +## 선택과 권리 {#rights} -## 보관 기간 {#retention} +앱 스위치, 사이트/문서 Cookie settings, 뉴스레터 해지를 사용하세요. 동의 철회는 향후 적용되며 이전 처리를 무효화하지 않습니다. 스위치는 옛 데이터를 지우거나 서버 분석을 멈추지 않습니다. [포털 Settings]({account})에서 내보내기/삭제를 하되 모든 보관 기록을 포함하지는 않습니다. + +거주지에 따라 접근, 정정, 삭제, 제한, 이동 또는 정당한 이익 처리에 반대할 수 있습니다. 계정 없이 [연락처](#controller)로 이메일하세요. 기록 검색을 위해 설치 ID 같은 정보를 요청할 수 있습니다. 라이선스 키를 평문 이메일로 보내지 마세요. 한 달 내 답변합니다. 개인정보 보호 당국에 불만을 제기할 수 있습니다. 법적 보관 의무로 삭제가 제한될 수 있습니다. -- **사용 보고서와 분석 이벤트**: 운영자의 서버는 PostHog에 전달한 뒤 사본을 보관하지 않습니다. PostHog에서의 보관 기한은 정하지 않았습니다. -- **이전 서버의 기록**: 이전 서버의 데이터베이스 전체 사본을 아카이브에 기한 없이 보관합니다. 여기에는 이메일 주소와 이름이 포함된 라이선스, 주문, 팀 멤버, 라이선스로 활성화된 Mac과 그 이름, 뉴스레터 구독자와 베타 신청자, 보낸 이메일의 기록, 그리고 이전 서버가 보관하던 사용 보고서와 라이선스 요청 로그(IP 주소 포함)가 들어 있습니다. -- **기기**: 제거한 기기를 포함해 계정을 삭제할 때까지 보관합니다. -- **계정 감사 로그**: 계정이 있는 동안 사용자가 한 각 변경의 IP 주소 및 브라우저와 함께 보관합니다. 계정을 삭제하면 이메일 주소와 사용자 작업의 IP 주소 및 브라우저가 로그에서 제거되며, 각 변경의 기록 자체는 남습니다. -- **주문**: 세금 및 회계를 위해 보관합니다. 계정을 삭제하면 주문에서 이메일 주소와 계정이 제거됩니다. -- **{merchant}, Amazon SES 및 Apple의 알림**: 보관합니다. {merchant}의 알림에는 이름, 이메일 주소, 청구 주소가 들어 있으며, 계정을 삭제하면 구매에 관한 알림에서는 이 정보가 제거됩니다. Amazon SES의 알림에는 각 이메일을 받은 주소와, 뉴스레터의 경우 각 열람과 클릭의 IP 주소 및 사용자 에이전트가 들어 있으며, 계정을 삭제하면 귀하의 주소로 보낸 이메일에 관한 알림과 운영자가 보낸 각 이메일의 기록에서 이 정보가 제거됩니다. -- **Team Library**: 항목이 변경될 때까지. 삭제한 항목은 마지막 버전을 유지합니다. 라이브러리는 소유자가 팀을 삭제하고 30일이 지나면 팀과 함께 삭제되며, 그 전까지는 소유자가 팀을 복원할 수 있습니다. 라이선스가 끝난 뒤에도 남습니다. -- **로그인 링크와 코드**: 15분 후 만료되며 7일 뒤 삭제됩니다. 포털 세션은 30일 동안 유지됩니다. 앱의 로그인 상태를 유지하는 토큰은 앱이 마지막으로 사용한 때부터 90일 후 만료되며, 그로부터 30일 뒤 삭제됩니다. -- **삭제된 계정**: 계정, 로그인 방법, 기기, 라이선스, 팀 멤버십은 즉시 삭제합니다. 주문과 감사 로그는 위에서 설명한 대로 남습니다. 이전 서버가 보관하던 사용자에 관한 정보는 위에서 설명한 아카이브에 남습니다. -- **뉴스레터**: 30일 안에 확인되지 않은 주소는 확인 링크와 함께 삭제합니다. 확인된 주소와 이전 서버에서 옮겨 온 주소는 목록에 추가된 경위의 기록과 함께, 요청에 따라 삭제하거나 그 주소를 사용하는 TablePro 계정이 삭제될 때까지 목록에 남으며, 구독 해지 후에는 뉴스레터가 가지 않도록 구독 해지 상태로 보관됩니다. -- **발송 제외 목록**: 이메일이 영구적으로 반송된 주소나 소유자가 TablePro의 이메일을 스팸으로 신고한 주소는 처음과 마지막으로 발생한 시점과 함께 발송 제외 목록에 남으며, 그 주소를 사용하던 계정이나 뉴스레터 구독이 삭제된 후에도 마찬가지입니다. 이렇게 해서 그 주소로 다시 이메일을 보내지 않습니다. -- **Google Analytics**: 사용자 수준 및 이벤트 수준 데이터는 2개월이며 운영자의 속성에서 사용하는 Google의 기본 보관 기간입니다. 쿠키는 최대 2년 유지되거나 분석을 거부하면 삭제됩니다. -- **Cloudflare Web Analytics**: 최근 6개월의 페이지 조회 집계를 제공합니다. 브라우저에는 저장되지 않습니다. -- **실시간 채팅 및 지원 이메일**: 삭제할 때까지 Crisp 및 운영자의 메일함에 보관합니다. 대화와 이메일 삭제를 요청할 수 있습니다. -- **서버 로그**: 운영자의 웹 서버와 서버의 로그로, 보안과 문제 해결을 위해 운영자의 서버에 보관합니다. 아직 고정된 기간을 정하지 않았습니다. - -## 귀하의 권리 {#rights} - -거주 지역에 따라 다음을 요청할 수 있습니다. - -- 운영자가 보유한 개인정보 사본 제공(열람) -- 정정 -- 법률상 보관 의무가 있는 정보를 제외한 삭제 -- 이용 방식 제한 -- 구조화된 기계 판독 가능 형식으로 제공(이동권) -- 정당한 이익에 근거한 이용 중단(반대) - -언제든 동의를 철회할 수 있으며 개인정보 보호 감독기관에 민원을 제기할 수 있습니다. 권리 행사는 [{email}](mailto:{email})로 이메일을 보내주세요. 30일 이내에 답변합니다. [계정 포털]({account})의 설정에서도 계정 데이터 사본을 받고 계정을 삭제할 수 있습니다. 뉴스레터 주소나 계정이 없는 Mac 같은 그 밖의 경우에는 관련 이메일 주소, 라이선스 키 또는 기기를 알려주세요. {merchant}, Google, Crisp 또는 GitHub가 보유하는 데이터에는 해당 업체의 방침도 적용됩니다. +### 지역별 권리 {#regional-rights} **캘리포니아 주민.** California Consumer Privacy Act는 수집하는 개인정보를 알 권리, 삭제를 요청할 권리, 판매를 거부할 권리 및 이러한 권리 행사로 차별받지 않을 권리를 부여합니다. 운영자는 개인정보를 판매하지 않습니다. ## 아동 {#children} -TablePro는 16세 미만 아동을 대상으로 하지 않으며 아동의 개인정보를 알면서 수집하지 않습니다. 아동이 개인정보를 제공했다고 생각되면 연락해 주세요. 삭제하겠습니다. +TablePro는 16세 미만을 대상으로 하지 않으며 아동의 개인정보를 알면서 수집하지 않습니다. 아동이 정보를 제공했다고 생각하면 연락하세요. 삭제하겠습니다. ## 보안 {#security} -앱, 웹사이트, 계정 포털 및 운영자의 서버 간 통신은 HTTPS를 사용합니다. TablePro 계정에는 비밀번호가 없습니다. 로그인 링크와 코드, 앱의 로그인 상태를 유지하는 토큰, 팀 API 토큰은 해시로 저장됩니다. 다만 로그인 링크와 코드를 이메일로 보내는 작업은 작업이 삭제될 때까지 이를 평문으로 보관하며, 작업은 이메일을 보낸 지 하루 뒤, 전송을 포기한 경우 7일 뒤에 삭제됩니다. 링크와 코드는 모두 요청한 지 15분 뒤에 더 이상 작동하지 않습니다. 시스템 접근 권한은 운영자({publisherName})와 [데이터 수신 대상](#sharing)에 나열된 서비스 제공업체에게만 주어집니다. 완벽하게 안전한 시스템은 없습니다. 취약점은 [보안 페이지](/ko/security#report)의 안내에 따라 신고하거나 [{email}](mailto:{email})로 이메일을 보내주세요. - -## 방침 변경 {#changes} - -이 방침이 변경되면 새 "마지막 업데이트" 날짜와 함께 여기에 게시하며, 법률이 요구하는 경우 직접 알려드립니다. +서비스 통신은 HTTPS입니다. 계정에 암호는 없습니다. 로그인 자격 증명과 팀 API 토큰은 해시로 저장하며 [보관](#retention)의 임시 메일 작업은 예외입니다. 시스템 접근은 {publisherName}과 [수신자](#sharing)로 제한합니다. 완벽하게 안전한 시스템은 없습니다. [보안 페이지](/ko/security#report)로 취약점을 신고하세요. -## 문의 {#contact} +## 변경 {#changes} -개인정보 또는 이 방침에 관한 질문은 [{email}](mailto:{email})로 이메일을 보내주세요. +페이지에 마지막 수정일을 표시합니다. 이전 버전은 [공개 웹 저장소 기록]({webGithub}/commits/main/resources/data/legal/en/privacy.md)에 남습니다. 새 목적 전에 갱신하고 법적 요구 시 직접 알리며 필요하면 다시 동의를 받습니다. diff --git a/resources/data/legal/pt-BR/privacy.md b/resources/data/legal/pt-BR/privacy.md index 55e2702a..9a9dd522 100644 --- a/resources/data/legal/pt-BR/privacy.md +++ b/resources/data/legal/pt-BR/privacy.md @@ -1,281 +1,228 @@ --- title: Política de privacidade -description: O que os apps, site e portal da conta TablePro coletam, para onde os dados vão, por quanto tempo são mantidos e como alterá-los ou excluí-los. -updatedAt: "2026-11-04" +description: Dados coletados pelo TablePro, finalidades, destinatários, retenção, escolhas e direitos. +updatedAt: "2026-11-05" --- -Esta política abrange TablePro para Mac, TablePro para iPhone e iPad, o site tablepro.app, a documentação em docs.tablepro.app e o portal da conta account.tablepro.app. Descreve o que cada um realmente envia e armazena hoje. Os dois apps são de código aberto sob a AGPLv3, portanto você pode ler o código que envia os dados abaixo no [repositório TablePro]({github}). +Esta política cobre TablePro para Mac, Linux, iPhone e iPad; tablepro.app; docs.tablepro.app; e serviços de conta, compras, suporte e newsletter. O [inventário técnico](https://docs.tablepro.app/security/privacy) lista campos, destinos e controles. O código está no [repositório público]({github}). ## Resumo {#summary} -- O app para Mac envia dados de uso. Está ativado por padrão e pode ser desativado. O app para iPhone e iPad só envia um relatório de uso se você ativar. -- Se você entrar em uma conta TablePro ou ativar uma chave de licença, o app para Mac registra seu Mac em nosso servidor, com o nome dele, e verifica seu plano com ele regularmente. -- Consultas, resultados e senhas não são enviados ao TablePro. A exceção é o que você escolhe publicar na Team Library: configurações de conexão (nunca senhas) e consultas salvas. -- Solicitações de IA vão do app para Mac diretamente ao provedor configurado por você, não a nós. -- A partir da versão que traz as contas TablePro, o app para Mac envia seus dados de uso diretamente ao PostHog, nosso serviço de análise de produto na UE, que então recebe o endereço IP do seu Mac e deduz dele uma localização aproximada. As versões anteriores e o app para iPhone e iPad enviam relatórios de uso ao nosso servidor, que os repassa ao PostHog sem os endereços IP. Sua conta mantém um registro das mudanças feitas nela, como acessos e novos dispositivos, com o endereço IP e o navegador da solicitação que fez cada uma. -- O site conta visualizações de página com Cloudflare Web Analytics, que não define cookies. Também carrega Google Analytics, que só define cookies se você permitir. Todas as páginas carregam nosso chat ao vivo, Crisp, que define seus próprios cookies. -- O portal da conta em account.tablepro.app não carrega nenhum script de análise. Ele define um cookie para manter você conectado, e nas configurações dele você pode baixar os dados da sua conta ou excluí-la. -- O Amazon SES, um serviço da Amazon Web Services, envia nossos emails. A newsletter registra quando cada destinatário a abre e em quais links dela clica. -- As compras são vendidas por {merchant}, nosso merchant of record. +Consultas e resultados comuns passam entre seu dispositivo e seu banco de dados. Dados de uso não contêm SQL, linhas ou credenciais. Conteúdo publicado na Team Library, enviado ao suporte ou compartilhado com IA e ferramentas externas chega a esses destinatários. -## Quem é responsável {#controller} +Dados de uso vêm ativados no Mac e Linux, com opção de desativar. O app publicado para iPhone e iPad só envia após consentimento. A análise direta pode se ligar à conta e às compras. Desativar não interrompe solicitações da conta ou análises do servidor. -{publisherName}, um desenvolvedor independente em {publisherCity}, {publisherCountry}, publica os apps do TablePro e este site, e é responsável pelos dados pessoais descritos aqui (o controlador de dados). Para dúvidas sobre esta política ou seus dados, envie um email para [{email}](mailto:{email}). +O site mede visitas e carrega Crisp em todas as páginas. Cookies do Google Analytics dependem da sua escolha. Newsletters medem aberturas e cliques. Excluir a conta deixa alguns registros, inclusive no PostHog e Crisp. Leia [retenção](#retention) e [direitos](#rights). O [controlador](#controller) atende solicitações mesmo sem conta. -## TablePro para Mac {#mac-app} + -### Dados de uso {#mac-usage-report} +## Responsável {#controller} -A partir da versão que traz as contas TablePro, o app para Mac envia dados de uso diretamente ao PostHog, nosso serviço de análise de produto, em `eu.i.posthog.com`, na UE. **Está ativado por padrão, e o app não pede confirmação antes de enviar o primeiro evento.** Para desativar, abra **Settings > General > Privacy** e desmarque **Share usage data**. Enquanto a configuração está desativada, o app não envia nada ao PostHog, e se o app iniciar com ela desativada, nem chega a iniciar a biblioteca do PostHog. +{publisherName}, desenvolvedor individual em {publisherCity}, {publisherCountry}, é o controlador dos dados pessoais descritos. Contato: [{email}](mailto:{email}). Não temos encarregado de proteção de dados. Para equipes, controlamos registros de conta, convites e serviço. Processamos conteúdo da Team Library conforme instruções da equipe, que decide o que publicar e quem acessa. -O app envia um evento: + -- uma vez por dia enquanto está em execução, com os nomes dos tipos de banco das conexões abertas (por exemplo, "PostgreSQL") e quantas conexões estão abertas; -- na sua primeira tentativa de conexão, na primeira conexão bem-sucedida e na sua primeira consulta, cada uma com o tipo de banco; -- quando mostra que um recurso pago não está disponível, uma vez por recurso a cada execução do app, com o recurso e o motivo, como não ter entrado na conta; -- quando você clica para fazer upgrade, com o lugar do app onde clicou; -- quando você entra, com a forma (no app, com uma chave de licença ou pela troca da chave que já estava no Mac), e quando você sai. +## Dados e finalidades {#data-use} -A biblioteca do PostHog adiciona a cada evento o modelo do Mac, o tamanho da tela, o fuso horário e o idioma, se ele está no Wi-Fi, a versão, o build e o bundle ID do app, a versão do macOS, a versão da biblioteca e um ID de sessão aleatório. O PostHog recebe o endereço IP do Mac a cada solicitação e deduz dele uma localização aproximada, como o país e a cidade. Enquanto a configuração está ativada, a biblioteca também busca no PostHog suas configurações e feature flags (`/config` de `eu-assets.i.posthog.com` e `/flags` de `eu.i.posthog.com`). +Para EEE e Reino Unido, cada finalidade indica a base legal: contrato (artigo 6(1)(b)), interesse legítimo (6(1)(f)), consentimento (6(1)(a)) ou obrigação legal (6(1)(c)). Não tomamos decisões automatizadas com efeitos legais ou de importância semelhante. -Antes de você entrar, os eventos levam um ID aleatório que a biblioteca cria no Mac, e o PostHog não cria um perfil de pessoa para ele. Quando você entra, eles passam a levar o ID da sua conta, e o perfil dessa conta no PostHog guarda as versões do app e do macOS, a arquitetura do processador, o idioma do app e a localização aproximada que o PostHog deduz do endereço IP. Isso liga suas instalações aos seus acessos e compras. Sair da conta inicia um novo ID aleatório. Os dados de uso do app não levam mais o ID de máquina, se há uma licença ativada nem as configurações de atualização. + -As versões anteriores às contas TablePro enviam, em vez disso, um relatório de uso para `api.tablepro.app`, com a mesma configuração, cerca de dez segundos após iniciar e depois uma vez por dia enquanto estão em execução. Um relatório contém: +### Contas e dispositivos {#account} -- um ID de máquina: hash SHA-256 do UUID de hardware do Mac (o UUID em si nunca é enviado); -- plataforma, versão do app, versão do macOS, arquitetura do processador e idioma do app; -- os nomes dos tipos de banco das conexões abertas (por exemplo, "PostgreSQL") e quantas conexões estão abertas; -- se uma licença está ativada; -- a data e a hora da primeira tentativa de conexão e da primeira conexão bem-sucedida; -- configurações de atualização (como as atualizações são instaladas e a frequência das verificações). Nosso servidor as descarta quando o relatório chega. +O uso local gratuito dispensa conta. Serviços de conta precisam do seu e-mail. Guardamos nome, idioma, métodos de acesso, licenças, pedidos, dispositivos, funções e assentos de equipe. O registro Mac/Linux envia ID da máquina, nome, plataforma e versões do app/sistema. O nome do dispositivo pode conter seu nome. Isso é separado dos dados de uso. Finalidade e base são fornecer conta e plano por contrato. -Nem os eventos nem os relatórios contêm nomes de host, nomes de usuário, senhas, consultas ou linhas. +O acesso usa links e códigos por e-mail, passkeys, Apple, GitHub ou Google. Passkeys incluem chave pública, nome, estado de sincronização e datas de uso. Provedores de identidade fornecem ID e e-mail verificado; Apple pode fornecer nome. Seu token é criptografado e revogado ao desvincular Apple ou excluir conta. Mudanças são registradas com IP e user agent. O interesse legítimo é proteger contas e investigar abusos. -Nosso servidor não armazena o relatório nem o endereço IP de origem. Ele repassa o relatório ao PostHog como um evento sobre o ID de máquina, com o país que o Cloudflare informa para sua conexão e sem sua chave de licença nem seu IP, e o PostHog não cria com ele um perfil de pessoa. Como sua conta lista os dispositivos pelo mesmo ID de máquina, relatórios de um Mac em que você entrou ou ativou uma licença podem ser associados à sua conta. +O [portal]({account}) permite editar perfil e acesso, gerenciar dispositivos, exportar JSON e excluir a conta. Não é possível excluir enquanto você possui equipe com outros membros. A exclusão encerra assinaturas sem reembolso. [Retenção](#retention) explica o que fica. -### Verificações de licença {#mac-license} +### Compras {#purchases} -As versões anteriores às contas TablePro só contatam nosso servidor de licenças após você digitar uma chave de licença. Isso ocorre ao ativar a licença, ao iniciar se houverem passado {revalidateDays} dias ou mais desde a última verificação e a cada {revalidateDays} dias depois disso. Cada verificação envia: +{merchant} (Polar Software, Inc.) é merchant of record e revendedor. Coleta nome, e-mail, endereço de cobrança e dados de pagamento sob seus termos. Cuida de pagamento, impostos, recibos e disputas. Nunca recebemos os dados completos do cartão. -- sua chave de licença; -- o ID de máquina descrito em [Dados de uso](#mac-usage-report); -- o nome do Mac definido no macOS (que frequentemente inclui seu próprio nome); -- a versão do app e a versão do macOS. +Enviamos compra, idioma, origem da visita e IP para checkout, impostos e moeda. Recebemos dados do comprador/cobrança, valores, IDs de pedido/assinatura, renovações, cancelamentos e reembolsos. Pedidos mantêm e-mail, país, valores e atribuição. Compra sem login cria conta não verificada para o e-mail se necessário. Motivos e comentários de cancelamento vão a {merchant} e ficam na assinatura. O tratamento cumpre contrato; registros fiscais/contábeis atendem obrigações legais. Sem dados obrigatórios o checkout não termina. Gerencie cobrança no [portal de {merchant}]({portal}); veja [termos](/pt-BR/terms) e [reembolsos](/pt-BR/refund-policy). -Desativar um Mac envia apenas a chave de licença e o ID de máquina. +### Equipes e conteúdo compartilhado {#library} -Nosso servidor mantém cada Mac ativado como dispositivo da conta dona da licença: ID de máquina e nome, versões do app e do macOS e quando ele se comunicou pela última vez. A ativação e a desativação de um Mac ficam no registro de auditoria dessa conta com o endereço IP e o user agent da solicitação; as verificações periódicas não. O portal da conta lista seus dispositivos pelo nome. Se o servidor não puder ser acessado, os recursos pagos continuam funcionando por {graceDays} dias após a última verificação bem-sucedida. +Quem convida fornece e-mail, função e assento. Proprietários e administradores veem nomes/e-mails, convites e mudanças, incluindo endereços convidados, mas não IPs ou navegadores do log. Membros veem equipe, plano, assentos e própria função. Usamos os registros para cumprir o serviço contratado. -### Conta TablePro {#mac-account} +No Mac, publicar na Team Library envia configurações de conexão e consultas salvas ao servidor para membros autorizados. Inclui host, porta, banco, usuário, SSH/SSL, comandos iniciais, Tunnel Command e IA. Consultas incluem nomes, SQL, palavras-chave e pastas. Campos de senha são excluídos; segredos escritos em SQL ou texto livre não são removidos. A biblioteca mostra o último autor. Sair da equipe não apaga o conteúdo. Veja [prazos de exclusão](#retention). Team Catalog grava arquivos na pasta compartilhada escolhida. -A partir da versão que traz as contas TablePro, você entra no app para Mac com uma [conta TablePro](#account) em vez de uma chave de licença. O app abre a página de acesso em uma janela do navegador, onde você pode digitar o código do email de acesso. Depois de entrar, ele registra seu Mac como dispositivo da sua conta: o ID de máquina descrito acima, o nome do seu Mac, a plataforma e as versões do app e do macOS. Em seguida busca seu plano em nosso servidor como um arquivo assinado uma vez por dia enquanto está aberto, e esse arquivo mantém os recursos pagos funcionando por até {offlineDays} dias sem nosso servidor. O token que mantém o app conectado fica só nas Chaves do macOS daquele Mac e nunca é sincronizado pelas Chaves do iCloud, mesmo com a sincronização de senhas ativada. +### Análise de uso e serviço {#analytics} -Uma chave de licença que já esteja no seu Mac é trocada uma única vez por um acesso à conta dona dela e depois excluída do Mac. Você pode remover dispositivos no app ou no portal da conta, e na primeira vez que um Mac usa sua licença avisamos você por email. +Nosso interesse legítimo é entender uso, corrigir problemas e medir compras. Mac/Linux enviam dados de [Seus apps](#apps). O servidor envia eventos de acesso, compras, dispositivos e equipes ao PostHog com IDs de conta, sem nomes/e-mails. IDs ligam uso e serviço. O interruptor para eventos do app, não solicitações necessárias ou eventos do servidor. Exerça [direitos](#rights) para oposição ou exclusão. -### Team Library {#library} +### Newsletter e e-mail {#newsletter} -A Team Library faz parte de uma licença Team. Ao escolher **Share > Publish to Team Library…** em uma conexão ou **Publish Saved Queries to Team…** na barra lateral Favorites, o app para Mac envia o que você publica ao nosso servidor: +Amazon SES envia códigos, convites, avisos e newsletters. E-mails de serviço cumprem o solicitado. Novas inscrições precisam de confirmação e consentimento. Guardamos endereço, idioma, datas de inscrição/confirmação, IPs, user agents, página e versão do consentimento. -- configurações de conexão: host, porta, nome do banco, nome de usuário, configurações SSH e SSL, opções do driver, comandos de inicialização, configurações de Tunnel Command, nível de Safe Mode e configurações de IA, mas nunca senhas; -- consultas salvas: nomes, texto SQL, palavras-chave e pastas. +Cada newsletter mede aberturas e cliques de todos os destinatários por imagem e `links.news.tablepro.app`. Amazon SES recebe hora, link, IP e user agent e passa ao servidor para contagem. Bloquear imagens para aberturas, não cliques. Links de cancelamento e e-mail não são rastreados. Não há opção separada para medição. Cancele na newsletter ou pelo controle de um clique do app de e-mail; não enviamos confirmação depois. Nova inscrição precisa confirmar. Falhas permanentes e denúncias de spam param envios. Solicite exclusão em [contato](#controller). -A partir da versão que traz as contas TablePro, o app para Mac de cada membro com vaga baixa as mudanças da biblioteca ao iniciar, a cada 15 minutos e depois de cada publicação. Publicar envia só o que mudou e remove só os itens que aquele Mac publicou e não tem mais. Se outra pessoa alterou um item antes, o app pergunta qual cópia manter, e mostra quem alterou por último cada consulta da equipe. As versões anteriores às contas TablePro baixam a biblioteca ao iniciar, no máximo uma vez por semana; o Mac que publica a baixa novamente logo após. Publicar novamente a partir delas substitui o que você publicou antes. A seção Library do portal da conta mostra cada item, com o nome de quem o alterou por último, aos membros que podem ler a biblioteca, e permite que proprietários e administradores excluam itens. Um item excluído fica no servidor com sua última versão, para que todos os Macs possam sincronizar a exclusão. Se a licença terminar, a biblioteca permanece no servidor até o proprietário da equipe excluir a equipe, o que também exclui a biblioteca. +A lista antiga transferiu todo endereço não cancelado, confirmado ou não, incluindo compradores, titulares de licença e inscritos beta. Cancelados continuaram assim; falhas e denúncias entraram na lista de supressão. Veja [retenção](#retention). -Team Catalog, o outro recurso Team, grava arquivos de conexão sem senhas em uma pasta compartilhada escolhida por você. Não passa pelo nosso servidor. +### Suporte {#support} -### Atualizações e plugins {#mac-updates} +Mensagens, anexos e diagnósticos chegam a nós e ao serviço escolhido. Podem conter dados ou segredos que você incluir. Crisp recebe IP, navegador e páginas vistas quando o chat carrega no site/portal. Guarda IP se você iniciar conversa. Fornecemos idioma e, no portal autenticado, e-mail e ID da conta. Carregar chat em cada página atende ao interesse legítimo de suporte. Conversas iniciadas usam consentimento. -- **Verificações de atualização.** Uma vez por dia, o app para Mac baixa o feed de atualização do GitHub (`raw.githubusercontent.com`). A solicitação não envia informações do Mac além do que toda solicitação web contém: endereço IP e um user agent com a versão do app. Para desativar, abra **Settings > General > Software Update** e desmarque **Automatically check for updates**. As próprias atualizações são baixadas do GitHub. -- **Catálogo de plugins.** Ao iniciar o app e ao abrir as configurações de plugins, ele baixa a lista de drivers e temas disponíveis do GitHub. Não há configuração para desativar isso. Drivers e temas instalados são baixados do GitHub, e o navegador de plugins lê as contagens de downloads pela API do GitHub. +## Seus apps {#apps} -GitHub recebe seu endereço IP com essas solicitações. A declaração de privacidade do próprio GitHub se aplica a elas. +| App e versão | Dados de uso | Controle | +| --- | --- | --- | +| Mac 0.86.0, desde 0.86.0-beta.1 | Direto ao PostHog; ativado | Settings > General > Privacy | +| Linux desde 0.1.0-beta.1 | Direto ao PostHog; ativado | Preferences > General > Privacy | +| iPhone/iPad publicados | Relatório pelo servidor; desativado até consentir | Settings > Privacy | -### Serviços que você escolhe usar {#mac-third-parties} + -O app para Mac só envia dados a estes serviços quando você os configura, diretamente, nunca pelo TablePro: +### Dados no dispositivo {#local-data} -- **Seus bancos, servidores SSH e proxies**, que recebem o que as conexões enviam. -- **Provedores de IA.** Ao adicionar um provedor e usar o assistente ou sugestões em linha, as solicitações vão ao provedor ou a um modelo no Mac. Por padrão, incluem tipo e nome do banco, definições de tabelas e colunas do esquema e a consulta atual. Linhas de resultados só são enviadas se você ativar. Os termos do próprio provedor se aplicam. Adicionar GitHub Copilot baixa seu servidor de linguagem do npm, e a configuração "Send telemetry to GitHub" vem ativada. -- **Serviços de autenticação**: Microsoft Entra ID, Google, Amazon Web Services e Cloudflare Access, quando uma conexão os usa. -- **Apple Maps**, que fornece os blocos do mapa ao mostrar resultados em um mapa. -- **DuckDB**, que fornece extensões DuckDB na primeira vez que uma consulta as usa. -- **Clientes MCP.** O servidor MCP vem desativado. Inicia quando você o ativa ou quando um cliente MCP configurado inicia a ponte do TablePro ou faz pareamento, e escuta apenas no seu Mac (127.0.0.1). Um cliente de IA conectado, como Claude ou Cursor, recebe os resultados solicitados e os envia ao próprio serviço sob seus próprios termos. -- **Servidores MCP adicionados por você.** Uma sessão de IA envia as chamadas de ferramentas aprovadas, com seus argumentos, ao servidor. +Conexões, histórico, logs locais e abas ficam no dispositivo salvo compartilhamento escolhido. Tráfego de banco vai aos seus servidores. Senhas usam o armazenamento de credenciais da plataforma. Mac referencia chaves SSH onde estão no disco. Análise não inclui hosts, usuários, SQL, linhas ou credenciais. [Integrações](#integrations), Team Library e suporte têm as exceções descritas. -### Dados que ficam no seu Mac {#mac-local} +### Mac {#mac-app} -As senhas ficam nas Chaves do macOS. Lista de conexões, histórico de consultas, Query Insights, snapshots de Data Rewind, configurações e abas abertas são armazenados no Mac. O app referencia as chaves SSH onde estão no disco e não as copia. As versões anteriores às contas TablePro não contêm relator de falhas nem biblioteca de análise de terceiros. A partir da versão que traz as contas TablePro, o app inclui a biblioteca do PostHog, que envia os dados de uso descritos acima. A biblioteca contém o relator de falhas do PostHog, que o app mantém desativado, então nenhum relatório de falha é enviado. Ela guarda seu ID aleatório, suas configurações e os eventos ainda não enviados em arquivos em `~/Library/Application Support/com.TablePro`. +Análise direta e comportamento de conta começam em 0.86.0, incluindo 0.86.0-beta.1. Login registra o Mac e busca o plano. O token fica no Keychain desse Mac e nunca sincroniza pelo iCloud Keychain. Uma chave de licença existente é trocada por login e excluída localmente. -## TablePro para iPhone e iPad {#ios-app} +#### Dados de uso do Mac {#mac-usage-report} -**Nada vai ao TablePro, a menos que você ative Share Usage Data**, na primeira inicialização ou depois em **Settings > Privacy**. Nesse caso, o app envia um relatório diário ao mesmo servidor das versões do app para Mac anteriores às contas TablePro, e nosso servidor o repassa ao PostHog da mesma forma, sem o IP. O relatório contém um hash SHA-256 do identificador atribuído pela Apple ao app no dispositivo, plataforma, versões do app e iOS, arquitetura do processador, idioma, nomes dos tipos de banco das conexões abertas, quantas estão abertas, e a data e a hora da primeira tentativa de conexão, da primeira conexão bem-sucedida e da primeira consulta. Não inclui configurações de atualização e sempre informa que não há licença ativada, pois o app não tem nenhuma das duas coisas. +Ativados por padrão, sem pergunta antes do primeiro evento. Desative **Share usage data** em **Settings > General > Privacy**. Iniciar com a opção desligada não inicia PostHog. Nenhum relatório automático de falha é enviado; seu coletor está desativado. -O app não verifica licenças, não verifica atualizações e não solicita plugins. Além do relatório opcional, conecta apenas aos seus bancos e servidores SSH, ao iCloud da Apple se você ativar o iCloud Sync e à Microsoft quando uma conexão SQL Server autentica com Microsoft Entra ID. +Eventos cobrem uso diário com tipos/quantidade de conexões abertas, primeira tentativa, sucesso e primeira consulta por tipo, bloqueios pagos e motivos, cliques de upgrade, método de login/logout e perguntas de compra de licença com respostas. PostHog adiciona contexto de dispositivo, tela, rede, sessão, app e sistema. Recebe IP e deriva localização aproximada. Antes do login, ID aleatório sem perfil pessoal. Depois, ID de conta com perfil de versões, arquitetura, idioma e localização. Logout cria novo ID. Veja [campos e destinos](https://docs.tablepro.app/security/privacy#usage-data). -No dispositivo, senhas e chaves SSH coladas ficam nas Chaves, e certificados nunca são sincronizados. O histórico de consultas fica no dispositivo. As conexões são adicionadas ao índice Spotlight local para pesquisa. Durante uma consulta, a Atividade ao Vivo mostra o SQL na Tela Bloqueada e na Dynamic Island expandida, a menos que você ative **Settings > Live Activities > Hide Query**. +#### Atualizações e plugins {#mac-updates} -Se compartilhar análises com desenvolvedores nos ajustes do iPhone ou iPad, a Apple poderá nos fornecer relatórios de falhas e estatísticas de uso pelo App Store Connect. O app não contém relator de falhas nem biblioteca própria de análise de terceiros. +Feed e catálogo vêm do GitHub por updates.tablepro.app. Downloads e contagens também alcançam GitHub. Pedidos levam IP/user agent. Desative **Automatically check for updates** em **Settings > General > Software Update** para parar verificações automáticas. O catálogo não tem interruptor. [Detalhes técnicos](https://docs.tablepro.app/security/privacy#update-checks) incluem o feed antigo. -## iCloud Sync e Handoff {#icloud} +#### Versões antigas do Mac {#mac-license} -O iCloud Sync fica desativado até você ativá-lo, no Mac e no iPhone e iPad. Quando ativo, os registros vão para um banco privado na sua conta iCloud (container `iCloud.com.TablePro`). TablePro não pode lê-los. +Antes de 0.86.0, a mesma opção ativada controla relatório ao servidor. Contém ID da máquina com hash, dados app/sistema, tipos/quantidade de conexões, licença e datas de primeira tentativa/sucesso. Configurações de atualização enviadas são descartadas. O servidor atual repassa ao PostHog com país Cloudflare, sem IP/chave e sem perfil. O ID pode ligar dispositivos da conta. Não há histórico dedicado agora, mas jobs, logs, backups e arquivo antigo podem manter dados. Veja [retenção](#retention). -- No Mac, você escolhe o que sincronizar: conexões, grupos e etiquetas, configurações, perfis SSH, perfis de credenciais (nome e nome de usuário, nunca senha), tabelas e bancos favoritos, consultas salvas (incluindo SQL) e pastas de tabelas. Um registro de conexão inclui host, porta, nome de usuário, nome do banco, configurações SSH e SSL, comandos de inicialização, script de pré-conexão e regras de IA. Histórico de consultas, snapshots de Data Rewind e fontes de senha nunca são sincronizados. -- iPhone e iPad sincronizam conexões, grupos e etiquetas. -- Senhas só são sincronizadas se você também ativar **Passwords** em Sync Categories no Mac ou **Sync Passwords** no iPhone e iPad, usando as Chaves do iCloud. No Mac, isso também sincroniza outros segredos guardados pelo TablePro nas Chaves, como chaves de provedores de IA e a chave de licença. A partir da versão que traz as contas TablePro, a chave de licença é excluída assim que é trocada por um acesso, e o token que mantém o app conectado nunca é sincronizado. +Versões antigas só contatam licença após inserir chave. Enviam chave, ID, nome Mac e versões. Dispositivos pertencem à conta; ativação/desativação são auditadas com IP/user agent. O [inventário](https://docs.tablepro.app/security/privacy#older-mac-reports) mantém campos e frequência. -No Mac, o iCloud Sync faz parte de uma licença Pro ou Team. No iPhone e iPad é gratuito. +### iPhone e iPad {#ios-app} -Handoff transmite o ID da conexão aberta e o nome da tabela aberta entre seus dispositivos, pela Apple. Sem tabela aberta, transmite o nome da conexão ou o host se ela não tiver nome. Não envia configurações nem credenciais. +O app publicado não envia relatório antes de **Share Usage Data** no início ou em **Settings > Privacy**. A base é consentimento. Relatório diário passa pelo servidor ao PostHog sem IP, com país Cloudflare e sem perfil. Contém ID Apple com hash, plataforma, versões, arquitetura, idioma, tipos/quantidade de conexões e datas de primeira tentativa, sucesso e primeira consulta. Sempre indica ausência de licença e não inclui ajustes de atualização. Não verifica conta, licença, atualização ou plugin. -## Site {#website} +Banco/SSH, iCloud opcional e login Microsoft Entra para SQL Server enviam a esses serviços. Senhas e chaves coladas ficam no Keychain; certificados e histórico no dispositivo. Conexões entram no Spotlight local. Live Activity pode mostrar SQL na tela bloqueada salvo Hide Query. Separadamente, Share With App Developers da Apple pode fornecer falhas e estatísticas por App Store Connect. O app não tem coletor de falhas ou biblioteca analítica externa. Veja [iOS](https://docs.tablepro.app/ios#privacy). -**Hospedagem.** O site e o portal da conta rodam no nosso servidor, atrás do Cloudflare. Como qualquer servidor web, recebem seu endereço IP, user agent do navegador e endereço de cada página solicitada. +### Linux {#linux-app} -**Cloudflare Web Analytics.** Cloudflare adiciona seu script Web Analytics às páginas do site; o portal da conta não o executa. O navegador o carrega de `static.cloudflareinsights.com`, e ele informa cada visualização ao Cloudflare: página, site de origem do link, tempo de carregamento, navegador, sistema operacional e tipo de dispositivo. Cloudflare adiciona o país de origem da conexão. O script não define cookies nem armazena nada no navegador, e Cloudflare afirma que não usa IP nem detalhes do navegador para identificar você por fingerprinting. Cloudflare nos mostra totais, como visualizações por página ou país, não registros individuais de visitantes. Base legal: interesse legítimo. +Desde 0.1.0-beta.1, login registra dispositivo conforme [contas](#account). Segredos usam o chaveiro desktop. Atualizações do gerenciador de pacotes seguem seu distribuidor. Nenhum relatório automático de falha. -**Google Analytics.** O site carrega Google Analytics em todas as páginas no Modo de Consentimento. Até você escolher **Permitir** na pergunta sobre cookies, ele não define cookies e envia ao Google apenas um sinal sem cookies por página, sem identificador armazenado no dispositivo. Se permitir, Google Analytics define os cookies `_ga` e `_ga_` e mede visitas, como páginas vistas, cliques de download e início de checkout. Armazenamento de publicidade, personalização de anúncios e dados de usuário para anúncios são sempre negados. Google afirma que Google Analytics 4 não registra nem armazena IPs. Nossa propriedade Google Analytics usa o prazo de retenção padrão do Google: os dados coletados no nível de usuário e evento são excluídos após 2 meses. Os relatórios padrão, que guardam totais em vez de identificadores, não são afetados. Base legal: seu consentimento para cookies. +#### Dados de uso do Linux {#linux-usage-data} -**Chat ao vivo.** Todas as páginas do site e portal da conta mostram um botão do nosso provedor de chat, Crisp. Após a página carregar, o navegador carrega o script Crisp de `client.crisp.chat`, e Crisp define os cookies descritos em [Cookies e armazenamento do navegador](#cookies). Crisp recebe seu IP, detalhes do navegador, endereços das páginas vistas e mensagens escritas e mantém seu IP se você iniciar uma conversa. Informamos ao Crisp o idioma da página. Quando você está conectado ao portal da conta, também passamos ao Crisp o e-mail e o ID da sua conta, que ligam a conversa à sua conta. Nada mais sobre você é informado ao Crisp. Crisp está sediado na França. +Ativados por padrão desde 0.1.0-beta.1. Desative Share usage data em Preferences > General > Privacy. Direto ao PostHog EU: uso diário com tipos/quantidade de conexões, primeira tentativa/sucesso e consulta por tipo, login/logout, cliques upgrade e perguntas de licença/respostas Buy. Levam IDs, versões, arquitetura, idioma e metadados SDK. PostHog recebe IP e deriva localização. Antes do login, ID aleatório sem perfil; depois, perfil liga uso e compras. Logout redefine ID. Nenhum host, SQL, linha ou credencial. Registro de dispositivo inclui hostname separadamente. -**Script de checkout.** Ao apontar ou navegar pelo teclado até um botão Comprar, o navegador carrega o script de checkout de {merchant} do jsDelivr (`cdn.jsdelivr.net`), que recebe IP e detalhes do navegador. O checkout só abre de {merchant} quando você clica. +Desligar para novos envios. Pedido em andamento pode terminar. Não exclui eventos anteriores nem interrompe conta e análise do servidor. Veja [retenção](#retention), [direitos](#rights) e [inventário](https://docs.tablepro.app/security/privacy#linux-usage-data). -**Verificação da newsletter.** Quando você começa a usar o formulário da newsletter, o navegador carrega o Cloudflare Turnstile de `challenges.cloudflare.com` para verificar que é uma pessoa se inscrevendo; o Cloudflare recebe seu endereço IP e detalhes do navegador. + -**Atribuição de compras.** Ao chegar ao site, o navegador mantém um registro da primeira visita chamado `tablepro:attribution` no armazenamento local por 90 dias: origem da visita (as tags `ref` ou `utm_*` do link seguido ou o site de origem), página de chegada e momento. Se iniciar uma compra, o registro acompanha a solicitação de checkout. Nosso servidor envia a origem da visita a {merchant} como metadado do checkout, guarda-a com o pedido quando você paga e a envia ao PostHog com o checkout e o pagamento. A página de chegada e o momento não são guardados. +## Serviços escolhidos {#integrations} -**Documentação.** A documentação em docs.tablepro.app é hospedada pela Mintlify, que recebe seu endereço IP e os dados do seu navegador a cada página, e as páginas carregam as fontes do Google Fonts. A barra de navegação mostra o número de estrelas do repositório, que seu navegador busca na API do GitHub, então o GitHub também recebe seu endereço IP e os dados do seu navegador. Essa solicitação não define cookies. A documentação faz a própria pergunta sobre cookies, porque não consegue ler a resposta que você deu neste site. Até você escolher **Allow** lá, ela não define cookies nem guarda um ID de visitante. Se permitir, Google Analytics define os cookies `_ga` e `_ga_` e mede suas visitas à documentação, e Mintlify guarda um ID de visitante aleatório, `mintlify_anonymous_id`, no armazenamento local para contá-las. **Cookie settings**, no rodapé da documentação, altera sua resposta, e recusar remove os dois. Base legal: seu consentimento. +Provedores de banco, SSH e proxy recebem tráfego solicitado diretamente. Serviços de login recebem autenticação quando configurados. Apple Maps fornece mapas; DuckDB extensões usadas. Helpers baixados de conexão/IA contatam provedores. Seus termos se aplicam. -**Idioma e desconto regional.** Para sugerir a página no seu idioma quando o navegador não indica nenhum dos idiomas do site, e para mostrar o desconto regional que o checkout aplicaria, o site pergunta à Cloudflare (`/cdn-cgi/trace`) e ao nosso servidor de qual país vem a sua conexão, e pode ler o fuso horário do seu dispositivo. Nenhuma das duas solicitações leva cookies, e a página não guarda nada das respostas. Base legal: interesse legítimo. +### iCloud e Handoff {#icloud} -Ler o site não define cookies próprios. As solicitações de inscrição na newsletter, checkout e códigos de desconto do site público omitem credenciais: não enviam cookies do portal da conta nem aceitam cookies da resposta. Abrir páginas do portal da conta é uma operação separada: entrar nele define o cookie do portal abaixo. Tudo que o site mantém no navegador está listado em [Cookies e armazenamento do navegador](#cookies). +iCloud Sync opcional guarda conexões, grupos, tags, ajustes, consultas e perfis SSH no CloudKit privado. No Mac, também sincroniza favoritos e pastas de tabelas e bancos de dados, além de nomes, usuários e modos de senha dos perfis de credenciais, nunca a senha do perfil. Apple hospeda; não podemos ler. Sincronizar senhas é opção separada, desligada, pelo iCloud Keychain com criptografia ponta a ponta. No Mac inclui outros segredos gravados ali, como chaves IA e licenças antigas. Tokens de conta nunca sincronizam. Mac exige Pro ou Team; iOS é grátis. Handoff passa ID conexão e tabela, ou nome/host sem tabela, entre dispositivos Apple, sem credenciais. Veja [controles](https://docs.tablepro.app/features/icloud-sync). -## Compras {#purchases} +### IA e ferramentas externas {#ai-tools} -As licenças são vendidas por {merchant} (Polar Software, Inc.), nosso merchant of record e revendedor. Você compra de {merchant} sob seus próprios termos para compradores e política de privacidade. {merchant} recebe o pagamento, calcula e recolhe tributos sobre vendas ou IVA, envia recibos e faturas e trata problemas e disputas de pagamento. Coleta nome, email, endereço de cobrança e detalhes de pagamento. Nunca vemos os dados completos do cartão. +IA envia direto ao provedor ou modelo local escolhido. Pode enviar prompts, esquema, SQL e conversa. Anexar linhas da grade vem desligado. Resultados de ferramenta de consulta autorizada também entram na conversa e chegam ao provedor, independentemente da opção. GitHub Copilot baixa helper do npm e inicia com Send telemetry to GitHub ativado. -Quando você inicia um checkout, nosso servidor informa a {merchant} o que você está comprando, o idioma da página de compra, a origem da sua visita (veja [Site](#website)) e seu endereço IP, que {merchant} usa para calcular impostos e moeda. De {merchant}, recebemos email, nome e endereço de cobrança conforme inseridos, o que comprou, valores, IDs de pedido e assinatura e mudanças posteriores, como renovações, cancelamentos e reembolsos. Com cada pedido guardamos o email, o país de cobrança e os valores. +MCP vem desligado e não inicia assim, nem via bridge ou pareamento. Ligado, clientes autenticados pedem dados dentro das permissões. Cliente IA pode enviar resultados ao próprio serviço. Servidores MCP externos recebem argumentos aprovados. Veja [controles IA/MCP](https://docs.tablepro.app/security/privacy#ai-providers). -Uma compra feita sem entrar vai para a conta TablePro do email usado na compra, que é criada se não existir e fica sem verificação até você entrar pela primeira vez. No [portal da conta]({account}) você pode mudar o ciclo de cobrança ou as vagas de uma assinatura, cancelá-la ou retomá-la e pedir reembolso. Ao cancelar, o motivo escolhido e o comentário que você escrever vão para {merchant} e ficam com a assinatura. Cartão, faturas, dados fiscais e endereço de cobrança estão no [portal do cliente de {merchant}]({portal}), que o portal da conta abre para você. Os reembolsos são descritos na [política de reembolso](/pt-BR/refund-policy), e o que a licença permite nos [termos de serviço](/pt-BR/terms). +## Sites e armazenamento do navegador {#website} -## Portal da conta {#account} +Servidor e Cloudflare recebem IP, user agent e páginas. Cloudflare Web Analytics conta visitas, referências, tempos, categorias navegador/sistema/dispositivo e países sem armazenamento ou fingerprint. O interesse legítimo é entender e manter o site. -O [portal da conta]({account}) em account.tablepro.app é onde você gerencia sua conta TablePro: licenças, dispositivos, cobrança e equipes. Ele roda em nosso servidor, atrás do Cloudflare, como o site. +Google Analytics carrega em Consent Mode. Antes de Allow, envia sinal sem cookie ou ID salvo. Consentimento ativa cookies e medida de visitas, downloads e checkout. Armazenamento publicitário, personalização e dados de anúncio são sempre negados. Google diz que GA4 não guarda IP. -**Sua conta.** Uma conta pertence a uma pessoa e é identificada por um email. Ela guarda esse endereço, o nome e o idioma que você definir, seus métodos de acesso, os dispositivos conectados a ela, suas licenças e pedidos, as equipes de que você faz parte com sua função e vaga, e um registro de auditoria das mudanças feitas nela, como acessos, novos dispositivos e mudanças de equipe, com o endereço IP e o navegador da solicitação que fez cada uma. Nossos emails chegam a você no idioma da sua conta. +Crisp carrega em todo site/portal como em [suporte](#support). Apontar ou tabular para Buy carrega script {merchant} do jsDelivr, que recebe IP/navegador; clicar abre checkout. Iniciar formulário carrega Turnstile contra abuso, interesse legítimo. País/fuso sugerem idioma e desconto regional por interesse legítimo; pedidos omitem cookies e respostas não ficam na página. -**Acesso.** Enviamos por email um link e um código de 6 dígitos: o link funciona uma vez, o código aceita 5 tentativas e ambos expiram após 15 minutos. Você também pode adicionar chaves de acesso; de cada uma guardamos a chave pública, o nome que você der, se ela sincroniza entre seus dispositivos e quando foi adicionada e usada pela última vez. Ou você pode entrar com Apple, GitHub ou Google: o provedor nos informa um ID seu e seu email verificado, e a Apple também seu nome na primeira vez. Guardamos o ID e o endereço com sua conta e, para a Apple, um token que mantemos criptografado e revogamos junto à Apple quando você desvincula a Apple ou exclui sua conta. Se o endereço de um provedor pertencer a uma conta existente, enviamos a essa conta um link e um código para confirmar antes de vinculá-las, a menos que o Google gerencie o endereço (Gmail ou Google Workspace). +A primeira visita cria `tablepro:attribution` por 90 dias: tags/referência, página inicial e data. No checkout, servidor passa origem a {merchant} como metadados, guarda no pedido e envia ao PostHog com checkout/pagamento. Página/data não ficam. A base é interesse legítimo em medir fontes de compra. Pedidos públicos de newsletter, compra e desconto omitem credenciais e não criam cookie do portal. O portal não executa script analítico, mas o servidor envia eventos. -**Suas equipes.** Ao convidar alguém para uma equipe, guardamos o email, a função e se o convite inclui uma vaga, e enviamos um link válido por 7 dias. Proprietários e administradores veem os membros da equipe com nomes e emails, os convites e o registro de auditoria da equipe, que mostra quem mudou o quê, incluindo endereços convidados, mas nunca um endereço IP ou navegador. Membros veem a equipe, o plano, as vagas e a própria função. +### Documentação {#docs} -**Seus dados.** Nas configurações você pode mudar nome, email e idioma, adicionar e remover métodos de acesso, baixar os dados da sua conta em um arquivo JSON e excluir sua conta. Não é possível excluí-la enquanto você for proprietário de uma equipe com outros membros. A exclusão remove seus métodos de acesso, dispositivos, licenças, participações em equipes e as equipes que só têm você, exclui a inscrição do seu email na newsletter e encerra suas assinaturas sem reembolso. O que guardamos depois está em [Por quanto tempo mantemos dados](#retention). +Mintlify hospeda docs.tablepro.app. Pedidos de página, Google Fonts e estrelas GitHub revelam IP/navegador aos provedores. Docs pede consentimento separado. Antes de Allow não guarda cookies analíticos ou ID. Allow ativa Google Analytics e ID Mintlify. Cookie settings no rodapé revoga e remove ambos. A escolha do site não cruza para essa origem. -**O que o portal carrega.** O portal não carrega Google Analytics, Cloudflare Web Analytics nem nenhum outro script de análise, e não faz pergunta sobre cookies. Ele mostra o chat ao vivo do Crisp descrito em [Site](#website), e uma compra feita nele abre o checkout de {merchant} sobre a página. +### Cookies e armazenamento {#cookies} -## Newsletter {#newsletter} +Cloudflare Web Analytics não guarda nada no navegador. Páginas públicas não criam cookies próprios. Prazos são separados da retenção dos provedores. Armazenamento necessário mantém login ou escolha; consentimento e interesses estão descritos aqui. -Se você se inscrever nas notas de versão, primeiro enviamos um link de confirmação no idioma da página de inscrição. O link vale por 7 dias, e um endereço recebe no máximo 3 por dia. Depois que você confirma, seu endereço entra na nossa lista da newsletter, que mantemos no nosso servidor com esse idioma. Da inscrição e da confirmação registramos quando cada uma aconteceu, o endereço IP e o navegador de onde veio, a página em que você se inscreveu e a versão do texto de consentimento que você aceitou. O Cloudflare Turnstile verifica o formulário, como descrito em [Site](#website). +| Nome/serviço | Finalidade e início | Prazo e controle | +| --- | --- | --- | +| `_ga`, `_ga_` | Google Analytics após consentir | Até 2 anos; recusar exclui | +| `tablepro:analytics-consent` | Escolha necessária, separada site/docs | Até limpar | +| `tablepro:attribution` | Fonte inicial enviada ao checkout; interesse legítimo | 90 dias | +| `theme`, `tablepro:language`, `tablepro:campaign-closed` | Aparência, idiomas escolhidos/recusados, aviso fechado; interesse legítimo | Até limpar; tema portal separado | +| `mintlify_anonymous_id` | ID docs após consentir lá | Até limpar ou recusar | +| Cookies `crisp-client/` | Continuidade do chat após carregar em toda página; interesse legítimo | 6 meses, renovados ao voltar | +| `__Host-tp_session` | Login necessário no portal | 30 dias autenticado; até 10 minutos durante login; sair exclui | +| `locale`, `context`, `sign-in-return-to` | Idioma, vista Personal/equipe e retorno; interesse legítimo | Dois primeiros até limpar; retorno 15 minutos | -Cada newsletter registra as aberturas e os cliques de todos os destinatários. Ela contém uma pequena imagem, e seus links passam por `links.news.tablepro.app`. Quando seu cliente de email carrega a imagem ou você segue um link, o Amazon SES registra o horário da abertura ou do clique e o link clicado, com o endereço IP e o user agent que seu cliente de email envia, e os repassa ao nosso servidor, que conta as aberturas e os cliques de cada newsletter. Um cliente de email que não carrega imagens não registra aberturas. O link para cancelar a inscrição e os links que abrem um novo email não são rastreados. - -Toda newsletter tem um link para cancelar a inscrição, que abre uma página com um botão para isso, e cabeçalhos que permitem ao seu app de email cancelar a inscrição com um clique. Após cancelar, não enviamos mais newsletters nem um email confirmando o cancelamento, e se inscrever de novo exige uma nova confirmação. Marcar uma newsletter como spam também cancela sua inscrição, e assim que um email para o seu endereço volta de forma permanente, paramos de enviar para ele. Para excluir também o endereço, envie um email, ou exclua sua conta TablePro se ela usa esse endereço. - -Na mudança do nosso servidor anterior, todo endereço da lista de emails dele que não tinha cancelado a inscrição entrou nesta lista como inscrito, confirmado ou não: aquele servidor também adicionava os endereços de compradores, titulares de licença e inscritos no beta, e enviava emails a eles. Os endereços que tinham cancelado a inscrição vieram como cancelados, e aqueles cujos emails tinham voltado ou sido marcados como spam foram para a nossa lista de supressão, para que nenhuma newsletter chegue a eles. - -## Cookies e armazenamento do navegador {#cookies} - -Ler o site público e suas solicitações de newsletter, checkout e códigos de desconto não define cookies próprios. Entrar no portal da conta, ou começar a entrar, define o único cookie estritamente necessário listado abaixo. Cloudflare Web Analytics não define cookies nem armazena nada no navegador. Os cookies do Google Analytics só são definidos com seu consentimento. Crisp define seus cookies em cada página após a chat carregar. Nada aqui é usado para publicidade ou vendido. - -- **`_ga` e `_ga_`** (cookies Google Analytics, até 2 anos, apenas se permitir análises): um identificador aleatório do navegador e o estado da visita atual. Recusar ou alterar sua resposta depois os exclui. Base legal: consentimento. -- **`tablepro:analytics-consent`** (armazenamento local, até você limpar): sua resposta à pergunta de análises, para não perguntar em todas as páginas. O portal da conta não carrega análises, então não faz essa pergunta nem lê a resposta. Base legal: estritamente necessário para respeitar sua escolha. -- **`tablepro:attribution`** (armazenamento local, 90 dias): registro da primeira visita descrito em [Site](#website). Não contém um identificador seu e só é enviado com a solicitação de checkout, que envia a origem da visita a {merchant}. Base legal: interesse legítimo. -- **`theme`** (armazenamento local, até você limpar): se escolheu aparência clara, escura ou do sistema. O portal da conta guarda a sua própria. Base legal: interesse legítimo. -- **`tablepro:language`** (armazenamento local, até você limpar): o idioma que você escolheu no menu de idiomas ou na barra de idioma e cada idioma cuja sugestão você fechou, para que não seja oferecido de novo. Base legal: interesse legítimo. -- **`tablepro:campaign-closed`** (armazenamento local, até você limpar): a promoção cujo aviso acima do cabeçalho você fechou, para que ele continue fechado em todas as páginas até essa promoção terminar. Base legal: interesse legítimo. -- **`mintlify_anonymous_id`** (armazenamento local em docs.tablepro.app, definido pela Mintlify, somente se você permitir Google Analytics lá): o ID de visitante descrito em [Site](#website). Recusar o remove. A documentação guarda a própria resposta `tablepro:analytics-consent`. Base legal: consentimento. -- **Cookies que começam com `crisp-client/`** (Crisp, por exemplo `crisp-client/session/…`; 6 meses, renovados quando você volta; definidos em todas as páginas quando o chat carrega): mantêm o chat e sua conversa entre páginas e visitas. Base legal: interesse legítimo, para oferecer suporte em todas as páginas. -- **`__Host-tp_session`** (cookie do portal da conta, 30 dias a partir do acesso): mantém sua sessão. Antes de entrar, ele só é definido enquanto um acesso por chave de acesso, Apple, GitHub, Google ou por um app está em andamento, por no máximo 10 minutos. Sair o exclui. As solicitações de newsletter, checkout e códigos de desconto do site público omitem credenciais e nunca o recebem. Base legal: estritamente necessário. -- **`locale`, `context` e `sign-in-return-to`** (armazenamento local do portal da conta): o idioma escolhido ali antes de entrar e se você abriu por último Pessoal ou uma equipe, ambos até você limpar, e por 15 minutos a página para onde voltar depois de abrir um link de acesso recebido por email. Base legal: interesse legítimo. - -Você pode alterar ou retirar a resposta sobre análises a qualquer momento em **Configurações de cookies**, no rodapé de todas as páginas, ou aqui: +Mude o consentimento com Cookie settings no rodapé ou aqui: -## Base legal {#lawful-basis} +## Destinatários {#sharing} -Para leitores no Espaço Econômico Europeu e Reino Unido, as bases legais sob o GDPR e UK GDPR são: +| Destinatário | Dados e finalidade | +| --- | --- | +| [OVH]({ovhPrivacy}) | Servidor e registros do serviço | +| [Cloudflare]({cloudflarePrivacy}) | DNS/proxy, R2/backups, Turnstile, Cloudflare Web Analytics | +| [Amazon Web Services]({awsPrivacy}) | E-mail Amazon SES, entrega e interação; links CloudFront, eventos SNS/SQS | +| [PostHog EU]({posthogPrivacy}) | Análise app/servidor; IDs sem nomes/e-mails; pedidos diretos com IP | +| [{merchant}]({merchantPrivacy}) | Merchant of record independente; checkout, cobrança e compras | +| [Crisp]({crispPrivacy}) | Chat, navegador/páginas e identidade da conta autenticada | +| [Google]({googlePrivacy}) | Análise site/docs e fontes; login escolhido | +| [Mintlify]({mintlifyPrivacy}) | Hospedagem docs e medição consentida | +| [GitHub]({githubPrivacy}) | Downloads, atualizações, plugins, estrelas, issues públicas e login opcional | +| [Apple]({applePrivacy}) | Login opcional; serviços/diagnósticos em apps/integrações | +| [jsDelivr]({jsdelivrPrivacy}) | Script checkout com IP/navegador | -- **Contrato** (Art. 6(1)(b)): vender e fornecer licenças, sua conta com seus métodos de acesso e dispositivos, verificações de licença, portal da conta e Team Library. -- **Interesse legítimo** (Art. 6(1)(f)): dados de uso do app para Mac e sua análise no PostHog, eventos sobre acessos, compras, dispositivos e equipes que nosso servidor envia ao PostHog, registro de auditoria da conta, segurança e prevenção de abuso, incluindo o Cloudflare Turnstile no formulário da newsletter, logs do servidor, Cloudflare Web Analytics, registro de atribuição de compras, consulta de país para o idioma e o desconto regional, e chat ao vivo em todas as páginas. -- **Consentimento** (Art. 6(1)(a)): cookies Google Analytics, relatório de uso do app para iPhone e iPad, newsletter e conversas iniciadas no chat ao vivo. -- **Obrigação legal** (Art. 6(1)(c)): registros fiscais e contábeis e respostas a solicitações legais. +Membros recebem conteúdo e dados conforme a função. Integrações recebem o que você envia. Não vendemos dados nem compartilhamos para publicidade. Outras divulgações só por exigência legal. Políticas próprias dos provedores também valem. -## Quem recebe dados {#sharing} +## Locais de tratamento {#transfers} -Compartilhamos dados pessoais apenas com os serviços necessários para operar TablePro: +OVH e Amazon SES ficam em Singapura (`ap-southeast-1` para SES). PostHog na UE; Crisp tem sede na França. {publisherName} opera do Vietnã. Provedores dos EUA, incluindo {merchant}, Google, GitHub, Cloudflare, Amazon Web Services e Mintlify, processam nos EUA. Armazenamento/backups podem envolver outros países. Garantias EEE/Reino Unido usam cláusulas contratuais padrão ou mecanismos aprovados dos provedores; Google também usa EU-US Data Privacy Framework. Peça informações em [contato](#controller). -- **{merchant}**, merchant of record das compras. -- **Amazon Web Services**, cujo serviço Amazon SES envia nossos emails da região Ásia-Pacífico (Singapura): links e códigos de acesso, convites de equipe, avisos de conta e de segurança, e newsletters. Ele nos avisa quando um email é entregue, volta ou é marcado como spam, e registramos as devoluções e as denúncias de spam para parar de enviar a esses endereços. Nas newsletters, ele também informa cada abertura e cada clique, como descrito em [Newsletter](#newsletter). -- **Nosso provedor de hospedagem e Cloudflare**, para site, portal da conta e servidor dos apps. Cloudflare também conta visualizações com Cloudflare Web Analytics e verifica o formulário da newsletter com o Turnstile. -- **Google**, para Google Analytics no site e na documentação. -- **Crisp**, para chat ao vivo em todas as páginas do site e portal da conta. -- **PostHog** (EU Cloud), nosso serviço de análise de produto, que recebe os relatórios de uso dos apps e os eventos do nosso servidor sobre acessos, compras, dispositivos e equipes, com o ID da sua conta, mas nunca seu email ou nome. Os dados de uso que o app para Mac envia diretamente chegam ao PostHog com o endereço IP do seu Mac. -- **Apple, GitHub e Google**, quando você entra na sua conta com eles. -- **jsDelivr**, que fornece o script de checkout de {merchant} ao navegador ao apontar para um botão Comprar. -- **Mintlify**, que hospeda a documentação em docs.tablepro.app. -- **GitHub**, que hospeda feed de atualização, catálogo de plugins e downloads, e fornece o número de estrelas exibido na documentação. +## Retenção {#retention} -Não vendemos dados pessoais nem os compartilhamos com anunciantes. +Não fixamos limite onde indicado. Excluir conta não exclui PostHog ou Crisp. Escreva via [contato](#controller) para exclusão nesses provedores mediante solicitação. -## Transferências internacionais {#transfers} +| Registros | Retenção e exclusão | +| --- | --- | +| Análise PostHog | Sem limite definido. Desligar deixa eventos anteriores. Solicite exclusão. | +| Jobs e logs servidor | Jobs mantêm relatórios durante envio/tentativas. Logs servem à segurança/diagnóstico. Sem limite geral; nenhuma promessa de zero cópias. | +| Dispositivos | Inclusive removidos, até excluir conta | +| Conta e auditoria | Conta, acessos, dispositivos, licenças e vínculos removidos. Auditoria fica sem limite; campos e-mail e IP/user agent do autor removidos, mas endereços em texto livre podem ficar. | +| Pedidos e avisos provedores | Pedidos fiscais/contábeis sem limite. Vínculos conta/e-mail removidos. Eventos {merchant}, Amazon SES e Apple ficam; dados pessoais de compra e destinatário/interação de e-mail são limpos para a conta excluída. | +| Team Library | Item excluído mantém última versão para sync. Exclusão normal de equipe remove biblioteca após 30 dias, restaurável antes. Excluir conta do único proprietário remove ambos imediatamente. Fim da licença não exclui. | +| Autenticação | Links/códigos expiram em 15 minutos, excluídos 7 dias depois. Sessões 30 dias. Tokens expiram 90 dias após uso, excluídos 30 depois. Jobs e-mail guardam texto claro até limpeza: um dia após enviar ou 7 após desistir. | +| Newsletter | Novos endereços não confirmados após 30 dias. Confirmados/migrados até solicitação ou exclusão da conta com o endereço. Cancelar mantém endereço marcado cancelado. | +| Supressão | Endereços com falhas/denúncias e primeiras/últimas datas ficam após excluir conta/inscrição para impedir envios. Sem limite. | +| Google Analytics | Dados de usuário/evento: 2 meses; relatórios totais padrão separados | +| Cloudflare Web Analytics | Totais dos últimos seis meses disponíveis | +| Suporte | Crisp e caixa postal até excluir, também a pedido. Sem limite. | +| Backups e arquivo migração | Sem limite. Excluir conta não remove cópias. Base antiga completa contém nomes/e-mails, licenças, pedidos, equipes, nomes de dispositivos, inscritos, beta, e-mails, relatórios de uso e logs de licença com IP. | -Os serviços acima operam em vários países, portanto os dados podem ser processados fora do seu país. {merchant}, Google, GitHub, Cloudflare e Mintlify processam dados nos Estados Unidos; Google faz isso sob o EU-US Data Privacy Framework e Cláusulas Contratuais Padrão. O PostHog os processa na União Europeia. A Amazon Web Services envia nossos emails de Singapura. Quando exigido por lei, transferências do EEE e Reino Unido se baseiam em Cláusulas Contratuais Padrão ou outro mecanismo aprovado. +## Escolhas e direitos {#rights} -## Por quanto tempo mantemos dados {#retention} +Use interruptores, Cookie settings site/docs e cancelamento newsletter. Retirar consentimento vale para o futuro sem invalidar tratamento anterior. Opções não excluem dados antigos ou param análise servidor. Em [Settings do portal]({account}), exporte ou exclua conta; não cobre todos os registros retidos. -- **Relatórios de uso e eventos de análise**: nosso servidor não guarda cópia depois de repassá-los ao PostHog. Não definimos prazo para eles no PostHog. -- **Registros do nosso servidor anterior**: uma cópia de todo o banco de dados dele é mantida por tempo indeterminado em um arquivo. Ela inclui licenças, pedidos e membros de equipe com seus emails e nomes; os Macs ativados com uma licença, com seus nomes; inscritos na newsletter e no beta; registros dos emails que ele enviou; e os relatórios de uso e os registros de solicitações de licença que ele mantinha, com seus IPs. -- **Dispositivos**: mantidos, incluindo os que você removeu, até você excluir sua conta. -- **Registro de auditoria da sua conta**: mantido enquanto a conta existir, com o endereço IP e o navegador de cada mudança que você fez. Excluir a conta remove dele seus emails e o endereço IP e o navegador do que você fez; o registro de cada mudança permanece. -- **Pedidos**: mantidos para fins fiscais e contábeis. Excluir sua conta remove deles seu email e sua conta. -- **Notificações de {merchant}, Amazon SES e Apple**: mantidas. As de {merchant} contêm nome, email e endereço de cobrança; excluir sua conta remove esses dados das notificações sobre suas compras. As do Amazon SES contêm o endereço para onde cada email foi e, em uma newsletter, o endereço IP e o user agent de cada abertura e cada clique; excluir sua conta remove esses dados das notificações sobre emails para o seu endereço e do nosso registro de cada email enviado. -- **Team Library**: até um item ser alterado; um item excluído mantém sua última versão. A biblioteca é excluída junto com a equipe, 30 dias depois que o proprietário exclui a equipe; até lá, o proprietário pode restaurá-la. Ela permanece após o fim de uma licença. -- **Links e códigos de acesso**: expiram após 15 minutos e são excluídos 7 dias depois. Sessões do portal duram 30 dias. O token que mantém um app conectado expira 90 dias após o último uso pelo app e é excluído 30 dias depois. -- **Contas excluídas**: a conta, seus métodos de acesso, dispositivos, licenças e participações em equipes são excluídos imediatamente. Pedidos e o registro de auditoria ficam como descrito acima. O que nosso servidor anterior guardava sobre você continua no arquivo dele, descrito acima. -- **Newsletter**: um endereço não confirmado em 30 dias é excluído junto com seu link de confirmação. Um endereço confirmado, ou trazido do nosso servidor anterior, fica em nossa lista com o registro de como entrou até o excluirmos a seu pedido ou você excluir a conta TablePro que o usa; após cancelar a inscrição, ele fica marcado como cancelado, para que nenhuma newsletter chegue a ele. -- **Lista de supressão**: um endereço do qual um e-mail voltou de forma definitiva, ou cujo titular marcou um de nossos e-mails como spam, permanece na nossa lista de supressão com a data da primeira e da última vez, também depois que a conta ou a assinatura da newsletter que o usava é excluída. Assim não enviamos mais nenhum e-mail a ele. -- **Google Analytics**: dados no nível de usuário e evento por 2 meses, o período padrão usado por nossa propriedade. Cookies duram até 2 anos ou são excluídos quando você recusa. -- **Cloudflare Web Analytics**: Cloudflare nos mostra totais de visualizações dos últimos seis meses. Nada é armazenado no navegador. -- **Chat ao vivo e emails de suporte**: mantidos pelo Crisp e em nossa caixa de email até serem excluídos. Solicite a exclusão das conversas e emails. -- **Logs do servidor**: os logs do nosso servidor web e do nosso servidor, mantidos no nosso servidor para segurança e diagnóstico de problemas. Ainda não definimos um prazo fixo. +Conforme residência, solicite acesso, correção, exclusão, restrição, portabilidade ou oposição ao interesse legítimo. Sem conta: escreva em [contato](#controller). Podemos pedir detalhes para encontrar registros, como ID instalação. Nunca envie chave de licença em texto claro por e-mail. Respondemos em um mês. Você pode reclamar à autoridade de proteção de dados. Obrigações legais podem limitar exclusão. -## Seus direitos {#rights} - -Conforme seu local de residência, você pode solicitar que: - -- forneçamos uma cópia dos dados pessoais que mantemos sobre você (acesso); -- os corrijamos (retificação); -- os excluamos (apagamento), exceto o que precisamos manter por lei; -- limitemos seu uso (restrição); -- os enviemos em formato estruturado e legível por máquina (portabilidade); -- deixemos de usá-los com base em interesse legítimo (oposição). - -Você pode retirar o consentimento quando quiser e reclamar à autoridade de proteção de dados. Para exercer esses direitos, envie um email para [{email}](mailto:{email}). Respondemos em até 30 dias. No [portal da conta]({account}), as configurações também dão uma cópia dos dados da sua conta e excluem a conta. Para o resto, como um endereço da newsletter ou um Mac sem conta, informe o email, chave de licença ou dispositivo envolvido. Dados mantidos por {merchant}, Google, Crisp ou GitHub também são cobertos pelas políticas deles. +### Direitos regionais {#regional-rights} **Residentes da Califórnia.** A California Consumer Privacy Act dá o direito de saber quais informações pessoais coletamos, pedir sua exclusão, recusar sua venda e não receber tratamento diferente por exercer esses direitos. Não vendemos informações pessoais. ## Crianças {#children} -TablePro não é dirigido a menores de 16 anos, e não coletamos seus dados pessoais intencionalmente. Se acreditar que uma criança nos forneceu dados pessoais, entre em contato, e os excluiremos. +TablePro não se destina a menores de 16 anos e não coletamos seus dados conscientemente. Se acreditar que uma criança nos forneceu dados, entre em contato e os excluiremos. ## Segurança {#security} -O tráfego entre apps, site, portal da conta e nosso servidor usa HTTPS. Contas TablePro não têm senha. Links e códigos de acesso, os tokens que mantêm os apps conectados e os tokens de API de equipe são armazenados como hashes. A tarefa que envia por email um link e um código de acesso os guarda em texto simples até ser excluída: um dia depois do envio do email, ou 7 dias depois de desistirmos de enviá-lo. Os dois deixam de funcionar 15 minutos depois do seu pedido. O acesso aos sistemas é limitado a {publisherName} e aos prestadores de serviço listados em [Quem recebe dados](#sharing). Nenhum sistema é perfeitamente seguro. Para relatar uma vulnerabilidade, consulte a [página de Segurança](/pt-BR/security#report) ou envie um email para [{email}](mailto:{email}). - -## Alterações desta política {#changes} - -Quando esta política muda, atualizamos aqui com uma nova data de "Última atualização" e, quando exigido por lei, informamos diretamente. +Os serviços usam HTTPS. Contas não têm senhas. Credenciais e tokens API de equipe são hashes, salvo job e-mail temporário em [retenção](#retention). Acesso limitado a {publisherName} e [destinatários](#sharing). Nenhum sistema é perfeitamente seguro. Informe vulnerabilidades na [página segurança](/pt-BR/security#report). -## Contato {#contact} +## Mudanças {#changes} -Para dúvidas sobre privacidade ou esta política, envie um email para [{email}](mailto:{email}). +A página mostra a última atualização. Versões anteriores ficam no [histórico público do repositório web]({webGithub}/commits/main/resources/data/legal/en/privacy.md). Atualizamos antes de novas finalidades, avisamos diretamente quando a lei exige e pedimos novo consentimento quando necessário. diff --git a/resources/data/legal/vi/privacy.md b/resources/data/legal/vi/privacy.md index 5ddab446..36cef1b7 100644 --- a/resources/data/legal/vi/privacy.md +++ b/resources/data/legal/vi/privacy.md @@ -1,281 +1,228 @@ --- title: Chính sách quyền riêng tư -description: Ứng dụng, website và trang tài khoản của TablePro thu thập những gì, gửi đi đâu, lưu trong bao lâu, và cách bạn thay đổi hoặc xóa dữ liệu đó. -updatedAt: "2026-11-04" +description: Dữ liệu TablePro thu thập, mục đích, bên nhận, thời gian lưu giữ và quyền lựa chọn của bạn. +updatedAt: "2026-11-05" --- -Chính sách này áp dụng cho TablePro cho Mac, TablePro cho iPhone và iPad, website tablepro.app, trang tài liệu docs.tablepro.app và trang tài khoản account.tablepro.app. Chính sách mô tả đúng những gì từng thành phần đang gửi đi và lưu lại ở thời điểm hiện tại. Cả hai ứng dụng đều là mã nguồn mở theo giấy phép AGPLv3, nên bạn có thể đọc phần mã gửi đi mọi dữ liệu nêu dưới đây trong [kho mã nguồn TablePro]({github}). +Chính sách này áp dụng cho TablePro trên Mac, Linux, iPhone và iPad; tablepro.app; docs.tablepro.app; cùng dịch vụ tài khoản, mua hàng, hỗ trợ và newsletter. [Danh mục kỹ thuật](https://docs.tablepro.app/security/privacy) liệt kê trường dữ liệu, endpoint và cách kiểm soát. Mã nguồn ứng dụng nằm trong [repository công khai]({github}). ## Tóm tắt {#summary} -- Ứng dụng cho Mac gửi dữ liệu sử dụng. Tính năng này bật sẵn và bạn có thể tắt. Ứng dụng cho iPhone và iPad chỉ gửi báo cáo sử dụng khi bạn bật nó lên. -- Nếu bạn đăng nhập tài khoản TablePro hoặc kích hoạt license key, ứng dụng cho Mac đăng ký máy Mac của bạn với máy chủ của chúng tôi, kèm tên máy, và định kỳ kiểm tra gói của bạn với máy chủ. -- Các query bạn chạy, kết quả trả về và mật khẩu của bạn không được gửi cho TablePro. Ngoại lệ duy nhất là những gì bạn chủ động xuất bản lên Team Library: cấu hình connection (không bao giờ gồm mật khẩu) và query đã lưu. -- Yêu cầu gửi tới AI đi thẳng từ ứng dụng cho Mac tới nhà cung cấp AI mà bạn thiết lập, không qua chúng tôi. -- Từ phiên bản có tài khoản TablePro, ứng dụng cho Mac gửi dữ liệu sử dụng thẳng tới PostHog, dịch vụ phân tích sản phẩm của chúng tôi đặt tại EU, nên PostHog nhận được địa chỉ IP của máy Mac của bạn và suy ra vị trí gần đúng từ địa chỉ đó. Các phiên bản trước đó và ứng dụng cho iPhone và iPad gửi báo cáo sử dụng tới máy chủ của chúng tôi, và máy chủ chuyển báo cáo sang PostHog, không kèm địa chỉ IP. Tài khoản của bạn giữ nhật ký các thay đổi trên tài khoản, như các lần đăng nhập và thiết bị mới, kèm địa chỉ IP và trình duyệt của request tạo ra từng thay đổi. -- Website đếm lượt xem trang bằng Cloudflare Web Analytics, công cụ này không đặt cookie. Website cũng tải Google Analytics, công cụ này chỉ đặt cookie khi bạn cho phép. Mọi trang cũng tải chat trực tuyến của chúng tôi, Crisp, và Crisp đặt cookie riêng của mình. -- Trang tài khoản tại account.tablepro.app không tải script phân tích nào. Trang này đặt một cookie để giữ đăng nhập, và trong phần Cài đặt bạn có thể tải về dữ liệu tài khoản hoặc xóa tài khoản. -- Amazon SES, một dịch vụ của Amazon Web Services, gửi email của chúng tôi. Bản tin ghi lại thời điểm mỗi người nhận mở nó và những liên kết trong đó mà họ bấm vào. -- Việc mua license do {merchant}, merchant of record của chúng tôi, thực hiện. +Query và kết quả thông thường đi giữa thiết bị và database của bạn. Dữ liệu sử dụng không chứa SQL, hàng dữ liệu hay thông tin xác thực. Nội dung bạn chủ động đăng lên Team Library, gửi hỗ trợ hoặc chia sẻ với AI và công cụ ngoài sẽ đến những bên nhận đó. -## Bên chịu trách nhiệm {#controller} - -{publisherName}, một lập trình viên độc lập tại {publisherCity}, {publisherCountry}, là người phát hành các ứng dụng TablePro và website này, và chịu trách nhiệm về dữ liệu cá nhân được mô tả ở đây (bên kiểm soát dữ liệu). Mọi câu hỏi về chính sách này hoặc về dữ liệu của bạn, hãy gửi email tới [{email}](mailto:{email}). - -## TablePro cho Mac {#mac-app} - -### Dữ liệu sử dụng {#mac-usage-report} - -Từ phiên bản có tài khoản TablePro, ứng dụng cho Mac gửi dữ liệu sử dụng thẳng tới PostHog, dịch vụ phân tích sản phẩm của chúng tôi, tại `eu.i.posthog.com` ở EU. **Tính năng này bật sẵn, và ứng dụng không hỏi bạn trước khi gửi sự kiện đầu tiên.** Để tắt, mở **Cài đặt > Tổng quát > Quyền riêng tư** (Settings > General > Privacy) và bỏ chọn **Chia sẻ dữ liệu sử dụng** (Share usage data). Khi tùy chọn này tắt, ứng dụng không gửi gì cho PostHog, và nếu ứng dụng khởi động lúc tùy chọn đang tắt, thư viện của PostHog hoàn toàn không được khởi chạy. - -Ứng dụng gửi một sự kiện: - -- mỗi ngày một lần khi đang chạy, kèm tên các loại cơ sở dữ liệu của những connection bạn đang mở (ví dụ "PostgreSQL") và số connection đang mở; -- khi bạn thử kết nối lần đầu, khi kết nối thành công lần đầu và khi bạn chạy query đầu tiên, mỗi sự kiện kèm loại cơ sở dữ liệu; -- khi ứng dụng báo một tính năng trả phí không dùng được, mỗi tính năng một lần trong mỗi lần chạy ứng dụng, kèm tên tính năng và lý do, chẳng hạn bạn chưa đăng nhập; -- khi bạn bấm nâng cấp, kèm nơi trong ứng dụng mà bạn bấm; -- khi bạn đăng nhập, kèm cách đăng nhập (trong ứng dụng, bằng license key, hoặc bằng việc đổi key đã có trên máy Mac), và khi bạn đăng xuất. +Dữ liệu sử dụng trên Mac và Linux được bật mặc định, có công tắc tắt. Ứng dụng iPhone và iPad đã phát hành chỉ gửi báo cáo sau khi bạn đồng ý. Analytics gửi trực tiếp từ ứng dụng có thể liên kết với tài khoản và giao dịch. Tắt công tắc không dừng lưu lượng tài khoản hay analytics từ máy chủ. -Thư viện của PostHog thêm vào mọi sự kiện model máy Mac, kích thước màn hình, múi giờ và ngôn ngữ của máy, máy có đang dùng Wi-Fi hay không, phiên bản, số build và bundle ID của ứng dụng, phiên bản macOS, phiên bản của thư viện và một mã phiên ngẫu nhiên. PostHog nhận địa chỉ IP của máy Mac của bạn trong mỗi request và suy ra vị trí gần đúng từ địa chỉ đó, chẳng hạn quốc gia và thành phố. Khi tùy chọn này bật, thư viện còn lấy cấu hình và feature flag từ PostHog (`/config` từ `eu-assets.i.posthog.com` và `/flags` từ `eu.i.posthog.com`). +Website dùng analytics và tải Crisp trên mọi trang. Cookie Google Analytics cần lựa chọn của bạn. Newsletter đo lượt mở và nhấp. Xóa tài khoản vẫn để lại một số bản ghi, gồm dữ liệu tại PostHog và Crisp. Đọc [thời gian lưu giữ](#retention) và [quyền của bạn](#rights) trước khi chọn. [Bên kiểm soát](#controller) tiếp nhận yêu cầu quyền riêng tư, kể cả khi bạn không có tài khoản. -Trước khi bạn đăng nhập, các sự kiện mang một mã ngẫu nhiên do thư viện tạo trên máy Mac của bạn, và PostHog không tạo hồ sơ cá nhân nào cho mã đó. Khi bạn đăng nhập, các sự kiện mang mã tài khoản của bạn, và hồ sơ của tài khoản đó trên PostHog lưu phiên bản ứng dụng và macOS, kiến trúc bộ xử lý, ngôn ngữ của ứng dụng và vị trí gần đúng mà PostHog suy ra từ địa chỉ IP. Nhờ đó các lần cài đặt được nối với các lần đăng nhập và mua hàng của bạn. Đăng xuất sẽ tạo một mã ngẫu nhiên mới. Dữ liệu sử dụng của ứng dụng không còn kèm mã máy, trạng thái kích hoạt license hay cài đặt cập nhật của bạn. + -Các phiên bản trước khi có tài khoản TablePro thì gửi báo cáo sử dụng tới `api.tablepro.app`, theo cùng tùy chọn, khoảng mười giây sau khi khởi động, rồi mỗi ngày một lần khi đang chạy. Một báo cáo gồm: +## Bên chịu trách nhiệm {#controller} -- mã máy (machine ID): giá trị băm SHA-256 của UUID phần cứng máy Mac (bản thân UUID không bao giờ được gửi đi); -- nền tảng, phiên bản ứng dụng, phiên bản macOS, kiến trúc bộ xử lý và ngôn ngữ của ứng dụng; -- tên các loại cơ sở dữ liệu của những connection bạn đang mở (ví dụ "PostgreSQL") và số connection đang mở; -- license đã được kích hoạt hay chưa; -- ngày giờ bạn thử kết nối lần đầu và ngày giờ kết nối thành công lần đầu; -- cài đặt cập nhật của bạn (cách cài bản cập nhật và tần suất kiểm tra). Máy chủ của chúng tôi bỏ các thông tin này ngay khi nhận báo cáo. +{publisherName}, lập trình viên cá nhân tại {publisherCity}, {publisherCountry}, là bên kiểm soát dữ liệu cá nhân mô tả ở đây. Liên hệ [{email}](mailto:{email}). Chúng tôi không có cán bộ bảo vệ dữ liệu. Với nhóm, chúng tôi kiểm soát bản ghi tài khoản, lời mời và dịch vụ. Nội dung Team Library được xử lý theo chỉ dẫn của nhóm; nhóm quyết định nội dung đăng và người được truy cập. -Cả sự kiện lẫn báo cáo đều không bao giờ chứa hostname, username, mật khẩu, query hay dữ liệu trong các dòng. + -Máy chủ của chúng tôi không lưu báo cáo, cũng không lưu địa chỉ IP gửi báo cáo. Máy chủ chuyển báo cáo sang PostHog dưới dạng một sự kiện về mã máy, kèm quốc gia mà Cloudflare cho biết cho kết nối của bạn, không kèm license key hay địa chỉ IP của bạn, và PostHog không tạo hồ sơ cá nhân nào từ đó. Vì tài khoản của bạn ghi các thiết bị theo cùng mã máy, báo cáo từ một máy Mac mà bạn đã đăng nhập hoặc kích hoạt license có thể được liên kết với tài khoản của bạn. +## Dữ liệu và mục đích sử dụng {#data-use} -### Kiểm tra license {#mac-license} +Với EEA và Anh, cơ sở pháp lý được nêu theo mục đích: hợp đồng (Điều 6(1)(b)), lợi ích chính đáng (6(1)(f)), sự đồng ý (6(1)(a)) hoặc nghĩa vụ pháp lý (6(1)(c)). Chúng tôi không đưa ra quyết định tự động có tác động pháp lý hoặc tác động đáng kể tương tự. -Các phiên bản trước khi có tài khoản TablePro chỉ liên hệ máy chủ license của chúng tôi sau khi bạn nhập license key. Các phiên bản này làm việc đó khi bạn kích hoạt license, khi khởi động nếu đã qua {revalidateDays} ngày trở lên kể từ lần kiểm tra trước, và sau đó cứ mỗi {revalidateDays} ngày. Mỗi lần kiểm tra gửi: + -- license key của bạn; -- mã máy nêu ở mục [Dữ liệu sử dụng](#mac-usage-report); -- tên máy Mac của bạn, theo cài đặt trong macOS (thường có chứa tên của bạn); -- phiên bản ứng dụng và phiên bản macOS. +### Tài khoản và thiết bị {#account} -Khi hủy kích hoạt một máy Mac, ứng dụng chỉ gửi license key và mã máy. +Việc dùng miễn phí trên máy không yêu cầu tài khoản. Dịch vụ tài khoản cần email của bạn. Chúng tôi lưu tên, ngôn ngữ, phương thức đăng nhập, license, đơn hàng, thiết bị, vai trò và seat trong nhóm. Đăng ký thiết bị Mac và Linux gửi mã máy, tên thiết bị, nền tảng và phiên bản ứng dụng/hệ điều hành. Tên thiết bị có thể chứa tên bạn. Đây là luồng riêng với dữ liệu sử dụng. Mục đích và cơ sở là cung cấp tài khoản và gói theo hợp đồng. -Máy chủ của chúng tôi giữ mỗi máy Mac đã kích hoạt như một thiết bị của tài khoản sở hữu license: mã máy và tên máy, phiên bản ứng dụng và macOS, và thời điểm máy liên lạc gần nhất. Việc kích hoạt và hủy kích hoạt một máy Mac được ghi vào nhật ký kiểm tra (audit log) của tài khoản đó, kèm địa chỉ IP và user agent của request; các lần kiểm tra định kỳ thì không. Trang tài khoản liệt kê các thiết bị của bạn theo tên. Nếu không liên lạc được với máy chủ của chúng tôi, các tính năng trả phí vẫn hoạt động trong {graceDays} ngày kể từ lần kiểm tra thành công gần nhất. +Đăng nhập dùng link và mã qua email, passkey, hoặc Apple, GitHub hay Google. Bản ghi passkey gồm khóa công khai, tên, trạng thái sync và ngày dùng. Nhà cung cấp danh tính gửi ID và email đã xác minh; Apple có thể gửi thêm tên. Token Apple được mã hóa và thu hồi khi bạn bỏ liên kết hoặc xóa tài khoản. Chúng tôi ghi thay đổi tài khoản kèm IP và user agent. Lợi ích chính đáng là bảo vệ tài khoản và điều tra lạm dụng. -### Tài khoản TablePro {#mac-account} +[Cổng tài khoản]({account}) cho phép sửa hồ sơ và cách đăng nhập, quản lý thiết bị, xuất dữ liệu JSON và xóa tài khoản. Bạn chưa thể xóa khi sở hữu nhóm còn thành viên khác. Xóa chấm dứt subscription mà không hoàn tiền. [Thời gian lưu giữ](#retention) giải thích phần còn lại. -Từ phiên bản có tài khoản TablePro, bạn đăng nhập ứng dụng cho Mac bằng [tài khoản TablePro](#account) thay cho license key. Ứng dụng mở trang đăng nhập trong một cửa sổ trình duyệt, nơi bạn có thể gõ mã trong email đăng nhập. Sau khi bạn đăng nhập, ứng dụng đăng ký máy Mac làm thiết bị của tài khoản: mã máy nêu ở trên, tên máy Mac của bạn, nền tảng, và phiên bản ứng dụng và macOS. Sau đó, mỗi ngày một lần khi đang chạy, ứng dụng lấy gói của bạn từ máy chủ dưới dạng một tệp có chữ ký, và tệp này giữ các tính năng trả phí hoạt động tới {offlineDays} ngày mà không cần máy chủ. Token giữ ứng dụng ở trạng thái đăng nhập chỉ được lưu trong Keychain của chính máy Mac đó và không bao giờ đồng bộ qua iCloud Keychain, kể cả khi bạn bật đồng bộ mật khẩu. +### Mua hàng {#purchases} -License key đã có trên máy Mac được đổi một lần lấy phiên đăng nhập vào tài khoản sở hữu key đó, rồi bị xóa khỏi máy. Bạn có thể gỡ thiết bị trong ứng dụng hoặc trên trang tài khoản, và lần đầu một máy Mac dùng license của bạn, chúng tôi sẽ báo cho bạn qua email. +{merchant} (Polar Software, Inc.) là merchant of record và bên bán lại. Họ thu tên, email, địa chỉ thanh toán và thông tin trả tiền theo điều khoản riêng. Họ xử lý thanh toán, thuế, biên nhận và tranh chấp. Chúng tôi không nhận đầy đủ thông tin thẻ. -### Team Library {#library} +Chúng tôi gửi mặt hàng, ngôn ngữ, nguồn truy cập và IP để checkout, tính thuế và chọn tiền tệ. Chúng tôi nhận thông tin người mua/thanh toán, số tiền, ID đơn hàng/subscription, gia hạn, hủy và hoàn tiền. Đơn hàng giữ email, quốc gia thanh toán, số tiền và nguồn truy cập. Mua khi chưa đăng nhập tạo tài khoản chưa xác minh cho email đó nếu chưa có. Lý do hủy và bình luận đến {merchant} và được lưu với subscription. Xử lý thực hiện hợp đồng mua hàng; bản ghi thuế/kế toán đáp ứng nghĩa vụ pháp lý. Thiếu thông tin bắt buộc thì checkout không hoàn tất. Quản lý thanh toán ở [cổng {merchant}]({portal}); xem [điều khoản](/vi/terms) và [hoàn tiền](/vi/refund-policy). -Team Library là một phần của license Team. Khi bạn chọn **Chia sẻ > Xuất bản lên thư viện nhóm…** (Share > Publish to Team Library…) trên một connection, hoặc **Xuất bản truy vấn đã lưu cho nhóm…** (Publish Saved Queries to Team…) trong sidebar Favorites, ứng dụng cho Mac tải lên máy chủ của chúng tôi những gì bạn xuất bản: +### Nhóm và nội dung chia sẻ {#library} -- cấu hình connection: host, port, tên cơ sở dữ liệu, username, cài đặt SSH và SSL, tùy chọn driver, startup command, cài đặt Tunnel Command, mức Safe Mode và cài đặt AI, nhưng không bao giờ gồm mật khẩu; -- query đã lưu: tên, nội dung SQL, từ khóa và thư mục. +Người mời cung cấp email, vai trò và lựa chọn seat. Chủ sở hữu và admin thấy tên/email thành viên, lời mời và thay đổi trong nhóm, gồm địa chỉ được mời, nhưng không thấy IP hay trình duyệt trong audit log. Thành viên thấy nhóm, gói, số seat và vai trò của mình. Chúng tôi dùng các bản ghi để cung cấp dịch vụ nhóm theo hợp đồng. -Từ phiên bản có tài khoản TablePro, ứng dụng cho Mac của mỗi thành viên có seat tải các thay đổi của thư viện về khi khởi động, cứ 15 phút một lần và sau mỗi lần xuất bản. Khi xuất bản, ứng dụng chỉ gửi những gì đã thay đổi và chỉ gỡ những mục mà máy Mac đó đã xuất bản nhưng không còn giữ. Nếu người khác đã sửa một mục trước, ứng dụng hỏi bạn giữ bản nào, và hiển thị người sửa gần nhất của từng query của nhóm. Các phiên bản trước khi có tài khoản TablePro tải thư viện về khi khởi động, tối đa mỗi tuần một lần, và máy Mac vừa xuất bản tải lại ngay sau đó. Xuất bản lại từ các phiên bản này sẽ thay thế những gì bạn đã xuất bản trước đó. Mục Library trên trang tài khoản hiển thị từng mục, kèm tên người sửa gần nhất, cho các thành viên được đọc thư viện, và cho phép chủ sở hữu và quản trị viên xóa mục. Mục đã xóa còn trên máy chủ của chúng tôi kèm phiên bản cuối cùng để mọi máy Mac đồng bộ được việc xóa. Nếu license kết thúc, thư viện vẫn nằm trên máy chủ của chúng tôi cho tới khi chủ sở hữu nhóm xóa nhóm, và thư viện bị xóa theo. +Trên Mac, đăng lên Team Library gửi cài đặt connection và query đã lưu đến máy chủ cho thành viên có quyền. Cài đặt gồm host, port, database, username, tùy chọn SSH/SSL, lệnh khởi động, Tunnel Command và AI. Query gồm tên, SQL, từ khóa và thư mục. Các trường mật khẩu có cấu trúc bị loại; bí mật gõ vào SQL hay văn bản tự do không được loại bỏ. Thư viện hiển thị người sửa cuối. Rời nhóm không tự xóa nội dung chung. Xem [thời điểm xóa](#retention). Team Catalog ghi file vào thư mục chia sẻ bạn chọn. -Team Catalog, tính năng Team còn lại, ghi các file connection không kèm mật khẩu vào một thư mục dùng chung do bạn chọn. Tính năng này không đi qua máy chủ của chúng tôi. +### Analytics ứng dụng và dịch vụ {#analytics} -### Cập nhật và plugin {#mac-updates} +Lợi ích chính đáng của chúng tôi là hiểu cách sử dụng, sửa lỗi và đo giao dịch. Mac và Linux gửi dữ liệu mô tả ở [Ứng dụng](#apps). Máy chủ cũng gửi PostHog sự kiện đăng nhập, mua hàng, thiết bị và nhóm, với ID tài khoản nhưng không có tên/email. ID nối hoạt động ứng dụng với dịch vụ. Công tắc chỉ dừng sự kiện sử dụng từ ứng dụng; không dừng yêu cầu tài khoản bắt buộc hay sự kiện máy chủ. Dùng [quyền của bạn](#rights) để phản đối hoặc yêu cầu xóa. -- **Kiểm tra cập nhật.** Mỗi ngày một lần, ứng dụng cho Mac tải nguồn cập nhật từ GitHub (`raw.githubusercontent.com`). Yêu cầu này không gửi thông tin nào về máy Mac của bạn ngoài những gì mọi yêu cầu web đều mang theo: địa chỉ IP và một user agent có phiên bản ứng dụng. Để tắt, mở **Cài đặt > Tổng quát > Cập nhật phần mềm** (Settings > General > Software Update) và bỏ chọn **Tự động kiểm tra cập nhật** (Automatically check for updates). Bản cập nhật cũng được tải về từ GitHub. -- **Danh mục plugin.** Khi khởi động, và khi bạn mở phần cài đặt plugin, ứng dụng tải danh sách driver và theme có sẵn từ GitHub. Không có cài đặt nào để tắt việc này. Driver và theme bạn cài được tải từ GitHub, và trình duyệt plugin đọc số lượt tải từ API của GitHub. +### Newsletter và email {#newsletter} -GitHub nhận địa chỉ IP của bạn qua các yêu cầu này. Tuyên bố về quyền riêng tư của GitHub áp dụng cho các yêu cầu đó. +Amazon SES gửi mã đăng nhập, lời mời, thông báo tài khoản và newsletter. Email dịch vụ thực hiện dịch vụ bạn yêu cầu. Đăng ký newsletter mới cần xác nhận và dựa trên sự đồng ý. Chúng tôi lưu email, ngôn ngữ, ngày đăng ký/xác nhận, IP, user agent, trang đăng ký và phiên bản nội dung đồng ý. -### Dịch vụ bạn chọn sử dụng {#mac-third-parties} +Mỗi newsletter đo lượt mở và nhấp của mọi người nhận qua ảnh và `links.news.tablepro.app`. Amazon SES nhận thời gian, link nhấp, IP và user agent, rồi gửi về máy chủ để đếm. Chặn ảnh dừng đo mở, không dừng đo nhấp. Link hủy đăng ký và link email không được theo dõi. Không có công tắc riêng cho việc đo. Hủy trong newsletter hoặc qua nút một lần nhấp của ứng dụng email để dừng nhận; không có email xác nhận sau đó. Đăng ký lại cần xác nhận. Email trả lại vĩnh viễn và báo spam dừng gửi tiếp. Yêu cầu xóa địa chỉ qua [liên hệ](#controller). -Ứng dụng cho Mac chỉ gửi dữ liệu tới các dịch vụ sau khi bạn thiết lập chúng, và gửi trực tiếp, không bao giờ qua TablePro: +Danh sách máy chủ cũ chuyển mọi địa chỉ chưa hủy đăng ký sang, dù đã xác nhận hay chưa, gồm người mua, chủ license và người đăng ký beta. Địa chỉ đã hủy giữ nguyên; địa chỉ bị trả lại hoặc báo spam vào danh sách chặn gửi. [Thời gian lưu giữ](#retention) áp dụng cho các bản ghi này. -- **Cơ sở dữ liệu, máy chủ SSH và proxy của bạn**, nhận mọi thứ mà connection của bạn gửi tới. -- **Nhà cung cấp AI.** Khi bạn thêm một nhà cung cấp và dùng trợ lý AI hoặc gợi ý nội tuyến (inline suggestions), yêu cầu được gửi tới nhà cung cấp đó, hoặc tới một model chạy trên máy Mac của bạn. Theo mặc định, một yêu cầu gồm loại và tên cơ sở dữ liệu, định nghĩa table và cột lấy từ schema, cùng query hiện tại. Các dòng kết quả chỉ được gửi nếu bạn bật tùy chọn đó. Điều khoản của nhà cung cấp được áp dụng. Khi thêm GitHub Copilot, ứng dụng tải language server của Copilot từ npm, và cài đặt "Gửi telemetry tới GitHub" (Send telemetry to GitHub) của nó được bật sẵn. -- **Dịch vụ đăng nhập**: Microsoft Entra ID, Google, Amazon Web Services và Cloudflare Access, khi một connection dùng tới. -- **Apple Maps**, cung cấp ô bản đồ khi bạn xem kết quả trên bản đồ. -- **DuckDB**, cung cấp extension của DuckDB vào lần đầu một query cần tới. -- **MCP client.** MCP server tắt theo mặc định. Server khởi động khi bạn bật nó, hoặc khi một MCP client bạn đã thiết lập khởi chạy bridge của TablePro hay ghép nối với TablePro, và chỉ lắng nghe trên máy Mac của bạn (127.0.0.1). Một AI client mà bạn kết nối tới server, chẳng hạn Claude hay Cursor, nhận các kết quả mà client đó yêu cầu và gửi chúng tới dịch vụ của chính nó theo điều khoản của nó. -- **MCP server bạn thêm vào.** Một phiên AI gửi các lệnh gọi tool mà bạn duyệt, kèm tham số của chúng, tới server đó. +### Hỗ trợ {#support} -### Dữ liệu nằm lại trên máy Mac {#mac-local} +Tin nhắn, file đính kèm và chẩn đoán bạn gửi đến chúng tôi và dịch vụ hỗ trợ bạn dùng. Chúng có thể chứa dữ liệu database hoặc bí mật bạn thêm vào. Crisp nhận IP, thông tin trình duyệt và trang đã xem khi chat tải trên website và cổng tài khoản. Họ giữ IP nếu bạn bắt đầu trò chuyện. Chúng tôi cung cấp ngôn ngữ trang và, khi đăng nhập cổng, email/ID tài khoản. Tải chat trên mọi trang phục vụ lợi ích chính đáng về hỗ trợ. Cuộc trò chuyện bạn bắt đầu dựa trên sự đồng ý. -Mật khẩu được lưu trong Keychain của macOS. Danh sách connection, lịch sử query, Query Insights, các bản chụp của Data Rewind, cài đặt và các tab đang mở được lưu trên máy Mac của bạn. Ứng dụng chỉ tham chiếu tới SSH key ở đúng vị trí của chúng trên ổ đĩa và không sao chép chúng. Các phiên bản trước khi có tài khoản TablePro không chứa công cụ báo lỗi (crash reporter) nào và không có thư viện phân tích của bên thứ ba. Từ phiên bản có tài khoản TablePro, ứng dụng có thư viện của PostHog, dùng để gửi dữ liệu sử dụng nêu ở trên. Thư viện này có công cụ báo lỗi (crash reporter) của PostHog, nhưng ứng dụng luôn để nó tắt, nên không gửi báo cáo lỗi nào. Thư viện lưu mã ngẫu nhiên, cấu hình và các sự kiện chưa gửi của nó trong các tệp dưới `~/Library/Application Support/com.TablePro`. +## Ứng dụng của bạn {#apps} -## TablePro cho iPhone và iPad {#ios-app} +| Ứng dụng và phiên bản | Dữ liệu sử dụng | Kiểm soát | +| --- | --- | --- | +| Mac 0.86.0, từ 0.86.0-beta.1 | Trực tiếp đến PostHog; bật mặc định | Cài đặt > Cài đặt chung > Quyền riêng tư (Settings > General > Privacy) | +| Linux từ 0.1.0-beta.1 | Trực tiếp đến PostHog; bật mặc định | Preferences > General > Privacy | +| iPhone và iPad đã phát hành | Báo cáo qua máy chủ; tắt đến khi đồng ý | Cài đặt > Quyền riêng tư (Settings > Privacy) | -**Không có gì được gửi tới TablePro trừ khi bạn bật Chia sẻ dữ liệu sử dụng** (Share Usage Data), khi ứng dụng khởi động lần đầu hoặc sau đó trong **Cài đặt > Quyền riêng tư** (Settings > Privacy). Nếu bạn bật, ứng dụng gửi một báo cáo mỗi ngày tới cùng máy chủ với các phiên bản ứng dụng cho Mac trước khi có tài khoản TablePro, và máy chủ của chúng tôi chuyển báo cáo sang PostHog theo cùng cách, không kèm địa chỉ IP. Báo cáo gồm giá trị băm SHA-256 của mã định danh mà Apple cấp cho ứng dụng trên thiết bị của bạn, nền tảng, phiên bản ứng dụng và iOS, kiến trúc bộ xử lý, ngôn ngữ của ứng dụng, tên các loại cơ sở dữ liệu của những connection bạn đang mở, số connection đang mở, và ngày giờ bạn thử kết nối lần đầu, kết nối thành công lần đầu và chạy query đầu tiên. Báo cáo không có cài đặt cập nhật và luôn ghi là chưa kích hoạt license nào, vì ứng dụng không có cả hai. + -Ứng dụng không kiểm tra license, không kiểm tra cập nhật và không gửi yêu cầu nào về plugin. Ngoài báo cáo tùy chọn nói trên, ứng dụng chỉ kết nối tới cơ sở dữ liệu và máy chủ SSH của bạn, tới iCloud của Apple nếu bạn bật iCloud Sync, và tới Microsoft khi một connection SQL Server đăng nhập bằng Microsoft Entra ID. +### Dữ liệu trên thiết bị {#local-data} -Trên thiết bị, mật khẩu và SSH key bạn dán vào được lưu trong Keychain, còn chứng chỉ không bao giờ được đồng bộ. Lịch sử query nằm lại trên thiết bị. Các connection của bạn được thêm vào chỉ mục Spotlight trên thiết bị để bạn tìm kiếm. Khi một query đang chạy, Hoạt động trực tiếp của nó hiển thị câu SQL trên Màn hình khóa và trong Dynamic Island khi mở rộng, trừ khi bạn bật **Cài đặt > Hoạt động trực tiếp > Ẩn truy vấn** (Settings > Live Activities > Hide Query). +Danh sách connection, lịch sử query, log cục bộ và tab mở nằm trên thiết bị trừ khi bạn chọn chia sẻ. Lưu lượng database đến máy chủ bạn chọn. Mật khẩu dùng kho thông tin xác thực của nền tảng. Trên Mac, SSH key được tham chiếu tại vị trí trên đĩa. Analytics không chứa hostname, username, SQL, hàng hay thông tin xác thực. [Tích hợp](#integrations), Team Library và hỗ trợ có các ngoại lệ mô tả ở đây. -Nếu bạn chia sẻ dữ liệu phân tích với nhà phát triển ứng dụng trong phần cài đặt của iPhone hoặc iPad, Apple có thể chuyển báo cáo lỗi và số liệu sử dụng cho chúng tôi qua App Store Connect. Bản thân ứng dụng không có công cụ báo lỗi và không có thư viện phân tích của bên thứ ba. +### Mac {#mac-app} -## iCloud Sync và Handoff {#icloud} +Analytics trực tiếp và tài khoản sau đây bắt đầu từ 0.86.0, gồm 0.86.0-beta.1. Đăng nhập đăng ký Mac và tải gói của bạn. Token tài khoản nằm trong Keychain của Mac đó và không sync qua iCloud Keychain. License key hiện có được đổi thành đăng nhập rồi xóa trên máy. -iCloud Sync tắt cho tới khi bạn bật, trên Mac cũng như trên iPhone và iPad. Khi bật, các bản ghi được lưu vào một cơ sở dữ liệu riêng trong tài khoản iCloud của chính bạn (container `iCloud.com.TablePro`). TablePro không đọc được chúng. +#### Dữ liệu sử dụng trên Mac {#mac-usage-report} -- Trên Mac, bạn chọn những gì được đồng bộ: connection, nhóm và tag, cài đặt, SSH profile, credential profile (tên và username, không bao giờ gồm mật khẩu), table và cơ sở dữ liệu yêu thích, query đã lưu (kể cả nội dung SQL) và thư mục table. Một bản ghi connection gồm host, port, username, tên cơ sở dữ liệu, cài đặt SSH và SSL, lệnh khởi động, script chạy trước khi kết nối và quy tắc AI. Lịch sử query, các bản chụp của Data Rewind và nguồn mật khẩu không bao giờ được đồng bộ. -- iPhone và iPad đồng bộ connection, nhóm và tag. -- Mật khẩu chỉ được đồng bộ nếu bạn bật thêm mục **Mật khẩu** (Passwords) trong Danh mục đồng bộ (Sync Categories) trên Mac, hoặc **Đồng bộ mật khẩu** (Sync Passwords) trên iPhone và iPad, tính năng dùng iCloud Keychain. Trên Mac, tùy chọn này cũng đồng bộ các thông tin bí mật khác mà TablePro giữ trong Keychain, chẳng hạn API key của nhà cung cấp AI và license key. Từ phiên bản có tài khoản TablePro, license key bị xóa ngay khi được đổi lấy phiên đăng nhập, và token giữ ứng dụng ở trạng thái đăng nhập không bao giờ được đồng bộ. +Dữ liệu sử dụng bật mặc định; ứng dụng không hỏi trước sự kiện đầu tiên. Tắt **Chia sẻ dữ liệu sử dụng (Share usage data)** trong **Cài đặt > Cài đặt chung > Quyền riêng tư (Settings > General > Privacy)**. Khởi động khi tắt không chạy thư viện PostHog. Không gửi báo cáo crash tự động; crash reporter của PostHog bị tắt. -Trên Mac, iCloud Sync thuộc license Pro hoặc Team. Trên iPhone và iPad, tính năng này miễn phí. +Sự kiện gồm dùng hằng ngày với loại/số connection mở, lần thử connection, kết nối thành công và query đầu tiên theo loại database, chặn tính năng trả phí và lý do, nhấp nâng cấp, cách đăng nhập/đăng xuất, hiển thị và trả lời lời mời mua license. PostHog thêm ngữ cảnh thiết bị, màn hình, mạng, session, ứng dụng và hệ thống. Họ nhận IP và suy ra vị trí gần đúng. Trước đăng nhập, sự kiện dùng ID ngẫu nhiên của bản cài, không tạo hồ sơ cá nhân. Sau đăng nhập dùng ID tài khoản, với hồ sơ chứa phiên bản ứng dụng/OS, kiến trúc, ngôn ngữ và vị trí suy ra. Đăng xuất tạo ID ngẫu nhiên mới. Xem [trường dữ liệu và endpoint](https://docs.tablepro.app/security/privacy#usage-data). -Handoff chuyển mã của connection đang mở và tên của table đang mở giữa các thiết bị của chính bạn, thông qua Apple. Khi chưa mở table nào, Handoff chuyển tên của connection thay cho tên table, hoặc host nếu connection không có tên. Handoff không gửi cài đặt hay thông tin đăng nhập nào. +#### Cập nhật và plugin {#mac-updates} -## Website {#website} +Ứng dụng tải update feed và danh mục plugin từ GitHub qua updates.tablepro.app. File tải và số lượt tải plugin cũng đến GitHub. Yêu cầu mang IP và user agent. Tắt **Tự động kiểm tra cập nhật (Automatically check for updates)** trong **Cài đặt > Cài đặt chung > Cập nhật phần mềm (Settings > General > Software Update)** để dừng kiểm tra tự động. Danh mục plugin không có công tắc tắt. [Chi tiết kỹ thuật](https://docs.tablepro.app/security/privacy#update-checks) gồm feed cũ của các bản trước. -**Lưu trữ.** Website và trang tài khoản chạy trên máy chủ của chúng tôi, phía sau Cloudflare. Như mọi máy chủ web, chúng nhận địa chỉ IP, user agent của trình duyệt và địa chỉ của từng trang bạn yêu cầu. +#### Các bản Mac cũ {#mac-license} -**Cloudflare Web Analytics.** Cloudflare chèn script Web Analytics của mình vào các trang của website; trang tài khoản không chạy script này. Trình duyệt của bạn tải script này từ `static.cloudflareinsights.com`, và script báo cho Cloudflare từng lượt xem trang: trang được xem, trang web đã dẫn bạn tới, thời gian tải trang, cùng trình duyệt, hệ điều hành và loại thiết bị của bạn. Cloudflare bổ sung quốc gia nơi kết nối của bạn xuất phát. Script này không đặt cookie và không lưu gì trong trình duyệt của bạn, và Cloudflare cho biết dịch vụ này không dùng địa chỉ IP hay thông tin trình duyệt để nhận dạng bạn (fingerprinting). Cloudflare chỉ cho chúng tôi xem số liệu tổng, chẳng hạn số lượt xem theo từng trang hoặc từng quốc gia, chứ không có bản ghi về từng người truy cập. Cơ sở pháp lý: lợi ích hợp pháp. +Trước 0.86.0, dữ liệu sử dụng là báo cáo gửi máy chủ dưới cùng công tắc bật mặc định. Báo cáo chứa mã máy đã băm, thông tin hệ thống/ứng dụng, loại/số connection mở, trạng thái license và ngày thử/thành công đầu tiên. Cài đặt cập nhật được gửi nhưng máy chủ bỏ đi. Máy chủ hiện tại chuyển sang PostHog kèm quốc gia từ Cloudflare, không kèm IP hay license key, không tạo hồ sơ cá nhân. Mã máy có thể nối với thiết bị tài khoản. Hiện không giữ lịch sử heartbeat riêng, nhưng job, log, backup và bản lưu cũ có thể giữ dữ liệu. Xem [lưu giữ](#retention). -**Google Analytics.** Website tải Google Analytics trên mọi trang ở chế độ Consent Mode. Cho tới khi bạn chọn **Cho phép** trong câu hỏi về cookie, công cụ này không đặt cookie nào và chỉ gửi cho Google một tín hiệu không dùng cookie cho mỗi trang, không lưu mã định danh nào trên thiết bị của bạn. Nếu bạn cho phép, Google Analytics đặt cookie `_ga` và `_ga_` và đo các lượt truy cập của bạn, chẳng hạn những trang bạn xem, các lượt bấm tải về và việc bắt đầu thanh toán. Lưu trữ cho quảng cáo, cá nhân hóa quảng cáo và dữ liệu người dùng cho quảng cáo luôn bị từ chối. Google cho biết Google Analytics 4 không ghi lại và không lưu địa chỉ IP. Property Google Analytics của chúng tôi dùng thời hạn lưu mặc định của Google: Google xóa dữ liệu ở cấp người dùng và cấp sự kiện sau 2 tháng. Các báo cáo tiêu chuẩn của Google, vốn chứa số liệu tổng chứ không chứa mã định danh, không bị ảnh hưởng. Cơ sở pháp lý: sự đồng ý của bạn đối với cookie. +Bản cũ chỉ gọi dịch vụ license sau khi bạn nhập key. Kiểm tra gửi key, mã máy, tên Mac và phiên bản ứng dụng/OS. Thiết bị thuộc tài khoản; kích hoạt và hủy kích hoạt được ghi audit kèm IP/user agent. [Danh mục kỹ thuật](https://docs.tablepro.app/security/privacy#older-mac-reports) giữ trường dữ liệu và thời điểm. -**Chat trực tuyến.** Mọi trang của website và trang tài khoản đều có nút chat của nhà cung cấp dịch vụ chat của chúng tôi, Crisp. Sau khi trang tải xong, trình duyệt tải script của Crisp từ `client.crisp.chat`, và Crisp đặt các cookie được nêu trong mục [Cookie và bộ nhớ trình duyệt](#cookies). Crisp nhận địa chỉ IP, thông tin trình duyệt, địa chỉ các trang bạn xem và các tin nhắn bạn viết, và giữ lại địa chỉ IP của bạn nếu bạn bắt đầu một cuộc chat. Chúng tôi cho Crisp biết ngôn ngữ của trang. Khi bạn đã đăng nhập trang tài khoản, chúng tôi cũng cung cấp cho Crisp địa chỉ email và ID tài khoản của bạn, để gắn cuộc chat với tài khoản đó. Ngoài ra chúng tôi không cung cấp thông tin nào khác về bạn. Crisp có trụ sở tại Pháp. +### iPhone và iPad {#ios-app} -**Script thanh toán.** Khi bạn trỏ chuột hoặc dùng phím Tab tới một nút Mua, trình duyệt tải script thanh toán của {merchant} từ jsDelivr (`cdn.jsdelivr.net`), và jsDelivr nhận địa chỉ IP cùng thông tin trình duyệt của bạn. Bản thân trang thanh toán của {merchant} chỉ mở khi bạn bấm. +Ứng dụng đã phát hành không gửi báo cáo sử dụng cho đến khi bạn bật **Chia sẻ dữ liệu sử dụng (Share Usage Data)** lúc mở lần đầu hoặc trong **Cài đặt > Quyền riêng tư (Settings > Privacy)**. Cơ sở là sự đồng ý. Báo cáo hằng ngày qua máy chủ, được chuyển sang PostHog không kèm IP, có quốc gia từ Cloudflare và không tạo hồ sơ cá nhân. Nó chứa mã thiết bị Apple đã băm, nền tảng, phiên bản ứng dụng/iOS, kiến trúc, ngôn ngữ, loại/số connection mở và ngày thử, thành công, query đầu tiên. Nó luôn báo không có license; không có cài đặt cập nhật. Ứng dụng không kiểm tra tài khoản, license, cập nhật hay plugin. -**Kiểm tra khi đăng ký bản tin.** Khi bạn bắt đầu điền form đăng ký bản tin, trình duyệt tải Cloudflare Turnstile từ `challenges.cloudflare.com` để kiểm tra rằng người đăng ký là người thật; Cloudflare nhận địa chỉ IP và thông tin trình duyệt của bạn. +Kết nối database/SSH, iCloud tùy chọn và đăng nhập Microsoft Entra cho SQL Server gửi dữ liệu đến các dịch vụ đó. Mật khẩu và SSH key dán vào ở Keychain; chứng chỉ và lịch sử query ở thiết bị. Connection vào chỉ mục Spotlight cục bộ. Live Activity của query đang chạy có thể hiện SQL trên màn hình khóa trừ khi bật Hide Query. Riêng cài đặt Share With App Developers của Apple có thể gửi báo cáo crash và thống kê qua App Store Connect. Ứng dụng không có crash reporter hay thư viện analytics bên thứ ba. Xem [chi tiết iOS](https://docs.tablepro.app/ios#privacy). -**Nguồn truy cập khi mua hàng.** Khi bạn vào website, trình duyệt giữ một bản ghi về lần truy cập đầu tiên, tên là `tablepro:attribution`, trong local storage trong 90 ngày: nguồn của lượt truy cập (các tag `ref` hoặc `utm_*` trên liên kết bạn đã theo, hoặc trang web đã dẫn bạn tới), trang bạn vào đầu tiên và thời điểm đó. Nếu bạn bắt đầu mua hàng, bản ghi này được gửi kèm yêu cầu thanh toán. Máy chủ của chúng tôi chuyển nguồn của lượt truy cập cho {merchant} dưới dạng metadata của lần thanh toán, giữ nó cùng đơn hàng sau khi bạn trả tiền, và gửi nó tới PostHog cùng sự kiện bắt đầu thanh toán và thanh toán xong. Trang bạn vào đầu tiên và thời điểm không được giữ. +### Linux {#linux-app} -**Tài liệu.** Trang tài liệu docs.tablepro.app do Mintlify lưu trữ. Mintlify nhận địa chỉ IP và thông tin trình duyệt của bạn với mỗi trang, và các trang tải font từ Google Fonts. Thanh điều hướng hiển thị số star của repository, do trình duyệt của bạn lấy từ API của GitHub, nên GitHub cũng nhận địa chỉ IP và thông tin trình duyệt của bạn. Yêu cầu đó không đặt cookie. Trang tài liệu có câu hỏi về cookie của riêng nó, vì nó không đọc được câu trả lời bạn đã chọn trên website này. Cho tới khi bạn chọn **Allow** ở đó, trang không đặt cookie và không giữ ID người xem nào. Nếu bạn cho phép, Google Analytics đặt cookie `_ga` và `_ga_` và đo các lượt xem tài liệu của bạn, còn Mintlify giữ một ID người xem ngẫu nhiên, `mintlify_anonymous_id`, trong local storage để đếm các lượt đó. **Cookie settings** ở cuối trang tài liệu cho bạn đổi câu trả lời, và khi bạn từ chối thì cả hai bị xóa. Cơ sở pháp lý: sự đồng ý của bạn. +Từ 0.1.0-beta.1, đăng nhập đăng ký thiết bị theo mục [tài khoản](#account). Bí mật dùng keyring của desktop. Cập nhật qua trình quản lý gói theo nhà phân phối bạn chọn. Ứng dụng không gửi báo cáo crash tự động. -**Ngôn ngữ và giảm giá theo khu vực.** Để gợi ý trang bằng ngôn ngữ của bạn khi trình duyệt không nêu ngôn ngữ nào website có, và để hiển thị mức giảm giá theo khu vực mà bước thanh toán sẽ áp dụng, website hỏi Cloudflare (`/cdn-cgi/trace`) và máy chủ của chúng tôi về quốc gia mà kết nối của bạn đến từ đó, và có thể đọc múi giờ của thiết bị. Cả hai request đều không mang cookie, và trang không giữ lại gì từ các câu trả lời. Cơ sở pháp lý: lợi ích hợp pháp. +#### Dữ liệu sử dụng trên Linux {#linux-usage-data} -Đọc website không đặt cookie riêng. Request đăng ký bản tin, thanh toán và kiểm tra mã giảm giá từ website công khai dùng chế độ omit credentials: không gửi cookie trang tài khoản và không nhận cookie từ response. Mở trang tài khoản là việc riêng: đăng nhập ở đó sẽ đặt cookie liệt kê bên dưới. Mọi thứ website giữ trong trình duyệt được liệt kê trong mục [Cookie và bộ nhớ trình duyệt](#cookies). +Dữ liệu sử dụng bật mặc định từ 0.1.0-beta.1. Tắt Share usage data trong Preferences > General > Privacy. Sự kiện trực tiếp đến PostHog EU: dùng hằng ngày với loại/số connection mở, thử/thành công đầu tiên và query đầu tiên theo loại, đăng nhập/đăng xuất, nhấp nâng cấp, hiển thị lời mời mua license và chọn Buy. Chúng mang ID bản cài hoặc tài khoản, phiên bản ứng dụng/hệ thống, kiến trúc, ngôn ngữ giao diện và metadata SDK. PostHog nhận IP và suy ra vị trí gần đúng. Trước đăng nhập là ID ngẫu nhiên và không có hồ sơ cá nhân; sau đăng nhập hồ sơ nối sử dụng với mua hàng. Đăng xuất đặt lại ID. Không có hostname, SQL, hàng hay thông tin xác thực trong sự kiện. Đăng ký thiết bị riêng có hostname. -## Mua hàng {#purchases} +Tắt dừng gửi mới. Yêu cầu đang gửi có thể hoàn tất. Nó không xóa sự kiện cũ hay dừng yêu cầu tài khoản và analytics máy chủ. Xem [lưu giữ](#retention), [quyền](#rights) và [danh mục kỹ thuật](https://docs.tablepro.app/security/privacy#linux-usage-data). -License được bán bởi {merchant} (Polar Software, Inc.), merchant of record kiêm đơn vị bán lại của chúng tôi. Bạn mua hàng từ {merchant} theo điều khoản dành cho người mua và chính sách quyền riêng tư của chính {merchant}. {merchant} nhận thanh toán, tính và nộp thuế bán hàng hoặc VAT nếu có, gửi biên nhận và hóa đơn, và xử lý các vấn đề cũng như tranh chấp về thanh toán. {merchant} thu thập tên, địa chỉ email, địa chỉ thanh toán và thông tin thanh toán của bạn. Chúng tôi không bao giờ thấy đầy đủ thông tin thẻ của bạn. + -Khi bạn bắt đầu thanh toán, máy chủ của chúng tôi cho {merchant} biết bạn mua gì, ngôn ngữ của trang bạn mua hàng, nguồn của lượt truy cập (xem mục [Website](#website)) và địa chỉ IP của bạn, mà {merchant} dùng để tính thuế và đơn vị tiền tệ. Từ {merchant}, chúng tôi nhận địa chỉ email, tên và địa chỉ thanh toán như bạn đã nhập, sản phẩm bạn mua, số tiền, mã đơn hàng và mã gói thuê bao, cùng các thay đổi sau đó như gia hạn, hủy và hoàn tiền. Với mỗi đơn hàng, chúng tôi giữ địa chỉ email, quốc gia thanh toán và số tiền. +## Dịch vụ bạn chọn {#integrations} -Một lần mua không đăng nhập sẽ thuộc về tài khoản TablePro của địa chỉ email bạn dùng để mua; nếu chưa có, tài khoản được tạo mới và ở trạng thái chưa xác minh cho tới khi bạn đăng nhập lần đầu. Trên [trang tài khoản]({account}), bạn có thể đổi chu kỳ thanh toán hoặc số seat của gói thuê bao, hủy hoặc tiếp tục gói, và yêu cầu hoàn tiền. Khi bạn hủy, lý do bạn chọn và nhận xét bạn viết (nếu có) được gửi tới {merchant} và được giữ cùng gói thuê bao. Thẻ, hóa đơn, thông tin thuế và địa chỉ thanh toán nằm trong [cổng khách hàng của {merchant}]({portal}), mà trang tài khoản mở giúp bạn. Việc hoàn tiền được mô tả trong [chính sách hoàn tiền](/vi/refund-policy), còn những gì một license cho phép được nêu trong [điều khoản sử dụng](/vi/terms). +Nhà cung cấp database, SSH và proxy nhận lưu lượng bạn yêu cầu trực tiếp từ ứng dụng. Dịch vụ đăng nhập connection nhận yêu cầu xác thực khi được cấu hình. Apple Maps cung cấp ô bản đồ; DuckDB cung cấp extension cho query. Helper kết nối và AI tải về liên hệ nhà cung cấp của chúng. Những dịch vụ này có điều khoản riêng. -## Trang tài khoản {#account} +### iCloud và Handoff {#icloud} -[Trang tài khoản]({account}) tại account.tablepro.app là nơi bạn quản lý tài khoản TablePro: license, thiết bị, thanh toán và nhóm. Trang chạy trên máy chủ của chúng tôi, phía sau Cloudflare, giống website. +iCloud Sync tùy chọn lưu connection, nhóm, tag, cài đặt, query đã lưu và SSH profile vào CloudKit riêng của bạn. Trên Mac, iCloud còn đồng bộ mục yêu thích và thư mục của bảng/cơ sở dữ liệu, cùng tên credential profile, tên người dùng và chế độ mật khẩu, không bao giờ gồm mật khẩu của profile. Apple lưu trữ; chúng tôi không đọc được. Sync mật khẩu là lựa chọn riêng, tắt mặc định, dùng iCloud Keychain mã hóa đầu cuối. Trên Mac nó áp dụng cả bí mật khác ghi qua kho đó, như AI key và license key cũ. Token tài khoản không sync. Sync Mac cần Pro hoặc Team; iOS miễn phí. Handoff truyền ID connection và tên bảng, hoặc tên/host connection khi không mở bảng, giữa thiết bị Apple của bạn. Không gửi thông tin xác thực. Xem [kiểm soát sync](https://docs.tablepro.app/features/icloud-sync). -**Tài khoản của bạn.** Mỗi tài khoản thuộc về một người và được xác định bằng một địa chỉ email. Tài khoản giữ địa chỉ đó, tên và ngôn ngữ bạn đặt, các cách đăng nhập của bạn, các thiết bị đã đăng nhập, license và đơn hàng của bạn, các nhóm bạn tham gia cùng vai trò và seat của bạn, và nhật ký kiểm tra (audit log) các thay đổi trên tài khoản, như các lần đăng nhập, thiết bị mới và thay đổi trong nhóm, kèm địa chỉ IP và trình duyệt của request tạo ra từng thay đổi. Email của chúng tôi tới bạn bằng ngôn ngữ của tài khoản. +### AI và công cụ ngoài {#ai-tools} -**Đăng nhập.** Chúng tôi gửi cho bạn qua email một liên kết và một mã 6 chữ số: liên kết dùng được một lần, mã cho phép thử 5 lần, và cả hai hết hạn sau 15 phút. Bạn cũng có thể thêm passkey; với mỗi passkey, chúng tôi giữ public key, tên bạn đặt, việc passkey có đồng bộ giữa các thiết bị của bạn hay không, và thời điểm thêm và dùng gần nhất. Hoặc bạn có thể đăng nhập bằng Apple, GitHub hoặc Google: nhà cung cấp cho chúng tôi biết một mã định danh của bạn và địa chỉ email đã xác minh, còn Apple cho biết thêm tên bạn ở lần đầu. Chúng tôi giữ mã định danh và địa chỉ đó cùng tài khoản của bạn, và với Apple là một token mà chúng tôi lưu ở dạng mã hóa và thu hồi với Apple khi bạn gỡ liên kết Apple hoặc xóa tài khoản. Nếu địa chỉ từ nhà cung cấp thuộc về một tài khoản đã có, chúng tôi gửi tới tài khoản đó một liên kết và một mã để xác nhận trước khi liên kết, trừ khi Google quản lý địa chỉ đó (Gmail hoặc Google Workspace). +Yêu cầu AI đi thẳng đến nhà cung cấp hoặc model cục bộ bạn chọn. Prompt, schema, SQL hiện tại và nội dung trò chuyện có thể được gửi. Đính kèm hàng từ grid tắt mặc định. Kết quả từ công cụ query AI đã được cấp quyền cũng vào cuộc trò chuyện và đến nhà cung cấp, độc lập với công tắc đính kèm. GitHub Copilot tải helper từ npm và lựa chọn Gửi telemetry đến GitHub (Send telemetry to GitHub) bật ban đầu. -**Nhóm của bạn.** Khi bạn mời một người vào nhóm, chúng tôi lưu địa chỉ email, vai trò của người đó và việc lời mời có kèm seat hay không, rồi gửi cho họ một liên kết có hiệu lực 7 ngày. Chủ sở hữu và quản trị viên thấy các thành viên nhóm cùng tên và địa chỉ email, các lời mời, và nhật ký kiểm tra của nhóm, cho biết ai đã đổi gì trong nhóm, kể cả các địa chỉ được mời, nhưng không bao giờ có địa chỉ IP hay trình duyệt. Thành viên thấy nhóm, gói của nhóm, số seat và vai trò của chính mình. +MCP tắt mặc định và không thể chạy khi bị tắt, kể cả qua bridge hay yêu cầu ghép đôi. Khi bật, client đã xác thực có thể yêu cầu dữ liệu theo quyền bạn cấp. Client AI kết nối có thể gửi kết quả về dịch vụ của nó. MCP server ngoài nhận tham số công cụ đã duyệt. Xem [kiểm soát AI và MCP](https://docs.tablepro.app/security/privacy#ai-providers). -**Dữ liệu của bạn.** Trong phần Cài đặt, bạn có thể đổi tên, địa chỉ email và ngôn ngữ, thêm và gỡ cách đăng nhập, tải về dữ liệu tài khoản dưới dạng tệp JSON, và xóa tài khoản. Bạn không thể xóa tài khoản khi đang là chủ sở hữu một nhóm còn thành viên khác. Xóa tài khoản sẽ gỡ các cách đăng nhập, thiết bị, license, tư cách thành viên nhóm và các nhóm chỉ có mình bạn, xóa địa chỉ email của bạn khỏi danh sách bản tin, và kết thúc các gói thuê bao của bạn mà không hoàn tiền. Những gì chúng tôi giữ sau đó được nêu trong mục [Thời gian lưu dữ liệu](#retention). +## Website và lưu trữ trình duyệt {#website} -**Những gì trang tài khoản tải.** Trang tài khoản không tải Google Analytics, Cloudflare Web Analytics hay script phân tích nào khác, và không hỏi về cookie. Trang hiển thị khung chat trực tuyến của Crisp được mô tả trong mục [Website](#website), và một lần mua trên trang sẽ mở trang thanh toán của {merchant} phía trên trang. +Máy chủ và Cloudflare nhận IP, user agent và trang được yêu cầu. Cloudflare Web Analytics đếm lượt xem, nguồn giới thiệu, thời gian tải, loại trình duyệt/OS/thiết bị và quốc gia, không lưu trong trình duyệt hay tạo fingerprint. Lợi ích chính đáng là hiểu và duy trì website. -## Bản tin {#newsletter} +Google Analytics tải ở Consent Mode. Trước Allow, nó gửi tín hiệu trang không cookie và không ID thiết bị đã lưu. Đồng ý bật cookie và đo lượt truy cập, tải về và checkout. Lưu trữ quảng cáo, cá nhân hóa và dữ liệu quảng cáo luôn bị từ chối. Google nói GA4 không lưu IP. -Nếu bạn đăng ký nhận ghi chú phát hành, trước tiên chúng tôi gửi cho bạn một liên kết xác nhận bằng ngôn ngữ của trang bạn dùng để đăng ký. Liên kết có hiệu lực 7 ngày, và mỗi địa chỉ nhận tối đa 3 liên kết mỗi ngày. Khi bạn xác nhận, địa chỉ của bạn vào danh sách bản tin mà chúng tôi lưu trên máy chủ của mình, kèm ngôn ngữ đó. Với lần đăng ký và lần xác nhận, chúng tôi ghi lại thời điểm của mỗi lần, địa chỉ IP và trình duyệt gửi yêu cầu, trang bạn dùng để đăng ký và phiên bản nội dung đồng ý mà bạn đã chấp nhận. Cloudflare Turnstile kiểm tra form đăng ký, như mô tả trong mục [Website](#website). +Crisp tải trên mọi trang website và cổng, như mục [hỗ trợ](#support). Trỏ hoặc tab đến Buy tải script {merchant} từ jsDelivr, bên nhận IP và thông tin trình duyệt; nhấp mở checkout. Bắt đầu form newsletter tải Cloudflare Turnstile chống lạm dụng, theo lợi ích chính đáng. Tra quốc gia và múi giờ giúp gợi ý ngôn ngữ/ưu đãi khu vực theo lợi ích chính đáng; yêu cầu không cookie và trang không lưu câu trả lời. -Mỗi bản tin ghi lại lượt mở và lượt bấm của mọi người nhận. Bản tin chứa một hình ảnh nhỏ, và các liên kết trong đó đi qua `links.news.tablepro.app`. Khi ứng dụng email của bạn tải hình ảnh đó hoặc bạn mở một liên kết, Amazon SES ghi lại thời điểm mở hoặc bấm và liên kết được bấm, kèm địa chỉ IP và user agent mà ứng dụng email của bạn gửi, rồi chuyển chúng tới máy chủ của chúng tôi, nơi đếm lượt mở và lượt bấm của từng bản tin. Ứng dụng email không tải hình ảnh thì không ghi lại lượt mở nào. Liên kết hủy đăng ký và các liên kết mở thư mới để soạn email không được theo dõi. +Lượt đầu tạo `tablepro:attribution` trong 90 ngày: tag/referrer, trang đích và ngày. Khi checkout, máy chủ chuyển nguồn lượt truy cập cho {merchant} làm metadata, giữ với đơn hàng và gửi PostHog cùng sự kiện checkout/thanh toán. Trang đích và ngày không được giữ. Cơ sở là lợi ích chính đáng trong đo nguồn mua hàng. Yêu cầu newsletter, checkout và mã giảm giá công khai bỏ credentials và không đặt cookie cổng. Cổng không chạy script analytics, nhưng máy chủ gửi sự kiện dịch vụ. -Mọi bản tin đều có liên kết hủy đăng ký, mở ra một trang có nút hủy đăng ký, và có các header cho phép ứng dụng email hủy đăng ký cho bạn chỉ với một cú bấm. Sau khi bạn hủy đăng ký, chúng tôi không gửi bản tin nào nữa và cũng không gửi email xác nhận việc hủy; muốn đăng ký lại, bạn cần xác nhận lại từ đầu. Đánh dấu một bản tin là spam cũng hủy đăng ký cho bạn, và khi email tới địa chỉ của bạn bị trả về vĩnh viễn, chúng tôi ngừng gửi tới địa chỉ đó. Nếu muốn xóa luôn địa chỉ email, hãy gửi email cho chúng tôi, hoặc xóa tài khoản TablePro nếu tài khoản đó dùng địa chỉ này. +### Website tài liệu {#docs} -Khi chuyển từ máy chủ trước đây, mọi địa chỉ chưa hủy đăng ký trong danh sách email của máy chủ đó đều được đưa vào danh sách này ở trạng thái đã đăng ký, dù đã xác nhận hay chưa: máy chủ đó cũng đã thêm địa chỉ của người mua, người giữ license và người đăng ký dùng thử bản beta, và gửi email cho họ. Các địa chỉ đã hủy đăng ký được chuyển sang ở trạng thái đã hủy, còn các địa chỉ có email bị trả về hoặc bị đánh dấu là spam được đưa vào danh sách chặn của chúng tôi thay vào đó, nên không bản tin nào tới được các địa chỉ này. +Mintlify lưu trữ docs.tablepro.app. Yêu cầu trang, Google Fonts và số sao GitHub tiết lộ IP/thông tin trình duyệt cho các bên đó. Docs hỏi đồng ý analytics riêng. Trước Allow, không lưu cookie analytics hay ID khách. Allow bật Google Analytics và ID Mintlify. Cookie settings ở footer docs rút lại lựa chọn và xóa chúng. Lựa chọn website không chuyển sang origin đó. -## Cookie và bộ nhớ trình duyệt {#cookies} +### Cookie và lưu trữ {#cookies} -Website công khai và request đăng ký bản tin, thanh toán, kiểm tra mã giảm giá không đặt cookie riêng. Đăng nhập trang tài khoản, hoặc bắt đầu đăng nhập, đặt cookie thực sự cần thiết duy nhất liệt kê bên dưới. Cloudflare Web Analytics không đặt cookie và không lưu gì trong trình duyệt. Cookie Google Analytics chỉ đặt khi bạn cho phép. Crisp đặt cookie trên mọi trang sau khi chat tải xong. Không thứ nào ở đây được dùng cho quảng cáo hay được bán. +Cloudflare Web Analytics không lưu gì trong trình duyệt. Trang công khai không đặt cookie bên thứ nhất. Các mục sau có thời hạn riêng, khác lưu giữ của nhà cung cấp. Lưu trữ cần thiết duy trì đăng nhập hoặc lựa chọn; mục đích đồng ý và lợi ích chính đáng được nêu ở đây. -- **`_ga` và `_ga_`** (cookie của Google Analytics, tối đa 2 năm, chỉ khi bạn cho phép phân tích): một mã ngẫu nhiên cho trình duyệt của bạn và trạng thái của lượt truy cập hiện tại. Khi bạn từ chối, hoặc đổi câu trả lời sau đó, các cookie này bị xóa. Cơ sở pháp lý: sự đồng ý. -- **`tablepro:analytics-consent`** (local storage, cho tới khi bạn xóa): câu trả lời của bạn cho câu hỏi về phân tích, để bạn không bị hỏi lại ở mỗi trang. Trang tài khoản không chạy công cụ phân tích nào, nên không hỏi câu này và không đọc câu trả lời. Cơ sở pháp lý: thực sự cần thiết để tôn trọng lựa chọn của bạn. -- **`tablepro:attribution`** (local storage, 90 ngày): bản ghi lần truy cập đầu tiên được mô tả trong mục [Website](#website). Bản ghi không chứa mã định danh nào của bạn và chỉ được gửi kèm yêu cầu thanh toán, và máy chủ của chúng tôi chuyển nguồn của lượt truy cập cho {merchant}. Cơ sở pháp lý: lợi ích hợp pháp. -- **`theme`** (local storage, cho tới khi bạn xóa): giao diện bạn chọn (sáng, tối hoặc theo hệ thống). Trang tài khoản giữ lựa chọn riêng. Cơ sở pháp lý: lợi ích hợp pháp. -- **`tablepro:language`** (local storage, cho tới khi bạn xóa): ngôn ngữ bạn chọn trong menu ngôn ngữ hoặc thanh gợi ý ngôn ngữ, và từng ngôn ngữ có gợi ý bạn đã đóng, để website không gợi ý lại. Cơ sở pháp lý: lợi ích hợp pháp. -- **`tablepro:campaign-closed`** (local storage, cho tới khi bạn xóa): đợt ưu đãi mà bạn đã đóng thông báo phía trên đầu trang, để thông báo đó không hiện lại ở các trang khác cho tới khi đợt ưu đãi kết thúc. Cơ sở pháp lý: lợi ích hợp pháp. -- **`mintlify_anonymous_id`** (local storage trên docs.tablepro.app, do Mintlify đặt, chỉ khi bạn cho phép Google Analytics ở đó): ID người xem được mô tả trong mục [Website](#website). Từ chối sẽ xóa nó. Trang tài liệu giữ câu trả lời `tablepro:analytics-consent` của riêng nó. Cơ sở pháp lý: sự đồng ý. -- **Cookie có tên bắt đầu bằng `crisp-client/`** (của Crisp, ví dụ `crisp-client/session/…`; 6 tháng, được gia hạn khi bạn quay lại; được đặt trên mọi trang sau khi khung chat được tải): giữ khung chat và cuộc chat của bạn qua các trang và các lần truy cập. Cơ sở pháp lý: lợi ích hợp pháp, để hỗ trợ bạn trên mọi trang. -- **`__Host-tp_session`** (cookie trang tài khoản, 30 ngày kể từ khi bạn đăng nhập): giữ đăng nhập. Trước khi bạn đăng nhập, cookie chỉ được đặt khi đang đăng nhập bằng passkey, Apple, GitHub, Google hoặc từ một ứng dụng, tối đa 10 phút. Đăng xuất sẽ xóa cookie. Request đăng ký bản tin, thanh toán và kiểm tra mã giảm giá từ website công khai dùng omit credentials, không bao giờ nhận cookie này. Cơ sở pháp lý: thực sự cần thiết. -- **`locale`, `context` và `sign-in-return-to`** (local storage của trang tài khoản): ngôn ngữ bạn chọn ở đó trước khi đăng nhập và việc bạn mở Cá nhân hay một nhóm gần nhất, cả hai cho tới khi bạn xóa, và trong 15 phút là trang cần quay lại sau khi bạn mở liên kết đăng nhập trong email. Cơ sở pháp lý: lợi ích hợp pháp. +| Tên/dịch vụ | Mục đích và lúc tạo | Thời hạn và kiểm soát | +| --- | --- | --- | +| `_ga`, `_ga_` | Google Analytics, chỉ sau đồng ý | Tối đa 2 năm; từ chối sẽ xóa | +| `tablepro:analytics-consent` | Bản ghi lựa chọn cần thiết; riêng trên website và docs | Đến khi xóa | +| `tablepro:attribution` | Nguồn lượt đầu gửi cùng checkout; lợi ích chính đáng | 90 ngày | +| `theme`, `tablepro:language`, `tablepro:campaign-closed` | Giao diện, ngôn ngữ chọn/bỏ qua, thông báo sale đã đóng; lợi ích chính đáng | Đến khi xóa; theme cổng riêng | +| `mintlify_anonymous_id` | ID khách docs, chỉ sau đồng ý tại đó | Đến khi xóa hoặc từ chối | +| Cookie `crisp-client/` | Duy trì chat trên mọi trang sau khi tải; lợi ích chính đáng | 6 tháng, gia hạn khi quay lại | +| `__Host-tp_session` | Đăng nhập cổng cần thiết | 30 ngày khi đăng nhập; tối đa 10 phút trong quá trình; đăng xuất xóa | +| `locale`, `context`, `sign-in-return-to` | Ngôn ngữ cổng, chế độ Personal/nhóm, trang quay lại; lợi ích chính đáng | Hai mục đầu đến khi xóa; trang quay lại 15 phút | -Bạn có thể thay đổi hoặc rút lại câu trả lời về phân tích bất cứ lúc nào bằng **Cài đặt cookie** ở chân mọi trang, hoặc tại đây: +Đổi đồng ý analytics bằng Cài đặt cookie ở footer hoặc tại đây: -## Cơ sở pháp lý {#lawful-basis} - -Với người đọc ở Khu vực Kinh tế Châu Âu (EEA) và Vương quốc Anh, cơ sở pháp lý theo GDPR và GDPR của Vương quốc Anh là: - -- **Hợp đồng** (Điều 6(1)(b)): bán và cung cấp license, tài khoản của bạn cùng các cách đăng nhập và thiết bị, kiểm tra license, trang tài khoản và Team Library. -- **Lợi ích hợp pháp** (Điều 6(1)(f)): dữ liệu sử dụng của ứng dụng cho Mac và việc phân tích dữ liệu đó trong PostHog, các sự kiện về đăng nhập, mua hàng, thiết bị và nhóm mà máy chủ của chúng tôi gửi tới PostHog, nhật ký kiểm tra của tài khoản, bảo mật và chống lạm dụng, gồm cả Cloudflare Turnstile trên form đăng ký bản tin, nhật ký máy chủ, Cloudflare Web Analytics, bản ghi nguồn truy cập khi mua hàng, việc tra quốc gia để gợi ý ngôn ngữ và giảm giá theo khu vực, và khung chat trực tuyến trên mọi trang. -- **Sự đồng ý** (Điều 6(1)(a)): cookie của Google Analytics, báo cáo sử dụng của ứng dụng cho iPhone và iPad, bản tin và các cuộc chat bạn bắt đầu trong chat trực tuyến. -- **Nghĩa vụ pháp lý** (Điều 6(1)(c)): hồ sơ thuế và kế toán, và việc trả lời các yêu cầu hợp pháp. - ## Bên nhận dữ liệu {#sharing} -Chúng tôi chỉ chia sẻ dữ liệu cá nhân với các dịch vụ cần thiết để vận hành TablePro: +| Bên nhận | Dữ liệu và mục đích | +| --- | --- | +| [OVH]({ovhPrivacy}) | Máy chủ và bản ghi dịch vụ | +| [Cloudflare]({cloudflarePrivacy}) | DNS/proxy, R2 và backup, Turnstile, Cloudflare Web Analytics | +| [Amazon Web Services]({awsPrivacy}) | Email Amazon SES, giao thư và tương tác newsletter; link CloudFront, sự kiện SNS/SQS | +| [PostHog EU]({posthogPrivacy}) | Analytics ứng dụng/máy chủ; ID tài khoản, không tên/email; yêu cầu trực tiếp kèm IP | +| [{merchant}]({merchantPrivacy}) | Merchant of record độc lập; checkout, thanh toán và đơn hàng | +| [Crisp]({crispPrivacy}) | Chat, dữ liệu trình duyệt/trang, danh tính tài khoản đăng nhập | +| [Google]({googlePrivacy}) | Analytics website/docs và font docs; đăng nhập tài khoản nếu chọn | +| [Mintlify]({mintlifyPrivacy}) | Lưu trữ docs và đo khách đã đồng ý | +| [GitHub]({githubPrivacy}) | Tải về, cập nhật, plugin, sao docs, issue công khai và đăng nhập tùy chọn | +| [Apple]({applePrivacy}) | Đăng nhập tùy chọn; dịch vụ Apple và chẩn đoán tại mục ứng dụng/tích hợp | +| [jsDelivr]({jsdelivrPrivacy}) | Yêu cầu script checkout kèm IP và thông tin trình duyệt | -- **{merchant}**, merchant of record cho các giao dịch mua. -- **Amazon Web Services**, với dịch vụ Amazon SES gửi email của chúng tôi từ vùng Châu Á Thái Bình Dương (Singapore): liên kết và mã đăng nhập, lời mời vào nhóm, thông báo về tài khoản và bảo mật, và bản tin. Amazon SES báo cho chúng tôi khi email được gửi tới nơi, bị trả về hoặc bị đánh dấu là spam, và chúng tôi ghi lại các lần bị trả về và bị báo spam để ngừng gửi tới các địa chỉ đó. Với bản tin, Amazon SES còn báo từng lượt mở và lượt bấm, như mô tả trong mục [Bản tin](#newsletter). -- **Nhà cung cấp hosting của chúng tôi và Cloudflare**, cho website, trang tài khoản và máy chủ mà các ứng dụng liên lạc. Cloudflare cũng đếm lượt xem trang bằng Cloudflare Web Analytics và kiểm tra form đăng ký bản tin bằng Turnstile. -- **Google**, cho Google Analytics trên website và tài liệu. -- **Crisp**, cho chat trực tuyến trên mọi trang của website và trang tài khoản. -- **PostHog** (EU Cloud), dịch vụ phân tích sản phẩm của chúng tôi, nhận báo cáo sử dụng của các ứng dụng và các sự kiện từ máy chủ của chúng tôi về đăng nhập, mua hàng, thiết bị và nhóm, kèm mã tài khoản của bạn nhưng không bao giờ kèm địa chỉ email hay tên. Dữ liệu sử dụng mà ứng dụng cho Mac gửi thẳng tới PostHog đến kèm địa chỉ IP của máy Mac của bạn. -- **Apple, GitHub và Google**, khi bạn đăng nhập tài khoản bằng các dịch vụ này. -- **jsDelivr**, nơi trình duyệt của bạn tải script thanh toán của {merchant} khi bạn trỏ tới một nút Mua. -- **Mintlify**, nơi lưu trữ trang tài liệu docs.tablepro.app. -- **GitHub**, nơi lưu nguồn cập nhật, danh mục plugin và các bản tải về, đồng thời cung cấp số star mà trang tài liệu hiển thị. +Thành viên nhóm nhận nội dung chung và thông tin tài khoản theo vai trò. Tích hợp bạn chọn nhận dữ liệu bạn gửi. Chúng tôi không bán dữ liệu cá nhân hay chia sẻ cho quảng cáo. Tiết lộ khác chỉ khi pháp luật yêu cầu. Chính sách riêng của nhà cung cấp cũng áp dụng cho dịch vụ của họ. -Chúng tôi không bán dữ liệu cá nhân và không chia sẻ dữ liệu đó với bên quảng cáo. +## Nơi xử lý dữ liệu {#transfers} -## Chuyển dữ liệu ra nước ngoài {#transfers} +Máy chủ OVH và Amazon SES ở Singapore (`ap-southeast-1` cho SES). PostHog ở EU. Crisp đặt tại Pháp. {publisherName} hoạt động từ Việt Nam. Các nhà cung cấp Mỹ, gồm {merchant}, Google, GitHub, Cloudflare, Amazon Web Services và Mintlify, xử lý tại Mỹ. Lưu trữ và backup có thể ở quốc gia khác của bạn. Biện pháp EEA/Anh bắt buộc dựa vào Standard Contractual Clauses hoặc cơ chế được chấp thuận của từng nhà cung cấp; Google còn dùng EU-US Data Privacy Framework. Hỏi qua [liên hệ](#controller) về biện pháp áp dụng. -Các dịch vụ nêu trên hoạt động ở nhiều quốc gia, nên dữ liệu của bạn có thể được xử lý bên ngoài quốc gia của bạn. {merchant}, Google, GitHub, Cloudflare và Mintlify xử lý dữ liệu tại Hoa Kỳ; Google làm việc này theo Khung bảo vệ quyền riêng tư dữ liệu EU-Hoa Kỳ (EU-US Data Privacy Framework) và các Điều khoản hợp đồng mẫu (Standard Contractual Clauses). PostHog xử lý dữ liệu tại Liên minh châu Âu. Amazon Web Services gửi email của chúng tôi từ Singapore. Khi pháp luật yêu cầu, việc chuyển dữ liệu từ EEA và Vương quốc Anh dựa trên các Điều khoản hợp đồng mẫu hoặc một cơ chế được phê duyệt khác. +## Thời gian lưu giữ {#retention} -## Thời gian lưu dữ liệu {#retention} +Chúng tôi chưa đặt giới hạn thời gian tại những mục ghi như vậy. Xóa tài khoản không xóa dữ liệu tại PostHog hay Crisp. Gửi email qua [liên hệ](#controller) để yêu cầu xóa tại các bên này. -- **Báo cáo sử dụng và sự kiện phân tích**: máy chủ của chúng tôi không giữ bản sao nào sau khi đã chuyển chúng sang PostHog. Chúng tôi chưa đặt thời hạn cho chúng trong PostHog. -- **Dữ liệu từ máy chủ trước đây của chúng tôi**: một bản sao toàn bộ cơ sở dữ liệu của máy chủ đó được giữ vô thời hạn trong một kho lưu trữ. Bản sao gồm license, đơn hàng và thành viên nhóm kèm địa chỉ email và tên; các máy Mac đã kích hoạt license, kèm tên máy; người đăng ký bản tin và người đăng ký dùng thử bản beta; bản ghi các email máy chủ đó đã gửi; và các báo cáo sử dụng cùng nhật ký yêu cầu liên quan đến license mà máy chủ đó giữ, kèm địa chỉ IP. -- **Thiết bị**: được giữ, kể cả những thiết bị bạn đã gỡ, cho tới khi bạn xóa tài khoản. -- **Nhật ký kiểm tra của tài khoản**: được giữ khi tài khoản còn tồn tại, kèm địa chỉ IP và trình duyệt của từng thay đổi bạn thực hiện. Xóa tài khoản sẽ gỡ khỏi nhật ký các địa chỉ email của bạn cùng địa chỉ IP và trình duyệt của những việc bạn đã làm; bản ghi về từng thay đổi vẫn còn. -- **Đơn hàng**: được giữ cho mục đích thuế và kế toán. Xóa tài khoản sẽ gỡ địa chỉ email và tài khoản của bạn khỏi đơn hàng. -- **Thông báo từ {merchant}, Amazon SES và Apple**: được giữ. Thông báo của {merchant} chứa tên, địa chỉ email và địa chỉ thanh toán của bạn; xóa tài khoản sẽ gỡ các thông tin đó khỏi những thông báo về các lần mua của bạn. Thông báo của Amazon SES chứa địa chỉ nhận của mỗi email và, với bản tin, địa chỉ IP và user agent của mỗi lượt mở và lượt bấm; xóa tài khoản sẽ gỡ các thông tin này khỏi những thông báo về email gửi tới địa chỉ của bạn, và khỏi bản ghi của chúng tôi về mỗi email đã gửi. -- **Team Library**: cho tới khi một mục được sửa; mục đã xóa vẫn giữ phiên bản cuối cùng. Thư viện bị xóa cùng nhóm, 30 ngày sau khi chủ sở hữu xóa nhóm; trước thời điểm đó, chủ sở hữu có thể khôi phục nhóm. Thư viện vẫn còn sau khi license kết thúc. -- **Liên kết và mã đăng nhập**: hết hạn sau 15 phút và bị xóa 7 ngày sau đó. Mỗi phiên đăng nhập trang tài khoản kéo dài 30 ngày. Token giữ một ứng dụng ở trạng thái đăng nhập hết hạn 90 ngày sau lần cuối ứng dụng dùng nó, và bị xóa 30 ngày sau đó. -- **Tài khoản đã xóa**: tài khoản, các cách đăng nhập, thiết bị, license và tư cách thành viên nhóm bị xóa ngay. Đơn hàng và nhật ký kiểm tra được giữ như mô tả ở trên. Những gì máy chủ trước đây lưu về bạn vẫn nằm trong kho lưu trữ của máy chủ đó, như mô tả ở trên. -- **Bản tin**: địa chỉ không được xác nhận trong vòng 30 ngày sẽ bị xóa cùng liên kết xác nhận. Địa chỉ đã xác nhận, hoặc được chuyển từ máy chủ trước đây, nằm trong danh sách của chúng tôi cùng bản ghi về cách địa chỉ đó vào danh sách, cho tới khi chúng tôi xóa theo yêu cầu của bạn hoặc bạn xóa tài khoản TablePro dùng địa chỉ đó; sau khi bạn hủy đăng ký, địa chỉ được giữ ở trạng thái đã hủy đăng ký để không bản tin nào tới được địa chỉ đó. -- **Danh sách chặn gửi**: địa chỉ có email bị trả về vĩnh viễn, hoặc có chủ sở hữu đã đánh dấu một email của chúng tôi là thư rác, được giữ trong danh sách chặn gửi của chúng tôi cùng thời điểm lần đầu và lần cuối việc đó xảy ra, kể cả sau khi tài khoản hoặc đăng ký bản tin dùng địa chỉ đó đã bị xóa. Nhờ vậy chúng tôi không gửi email đến địa chỉ đó nữa. -- **Google Analytics**: dữ liệu ở cấp người dùng và cấp sự kiện được giữ 2 tháng, thời hạn lưu mặc định của Google mà property của chúng tôi đang dùng. Cookie của công cụ này tồn tại tối đa 2 năm, hoặc bị xóa khi bạn từ chối. -- **Cloudflare Web Analytics**: Cloudflare cho chúng tôi xem số liệu tổng về lượt xem trang trong sáu tháng gần nhất. Không có gì được lưu trong trình duyệt của bạn. -- **Chat trực tuyến và email hỗ trợ**: được Crisp và hộp thư của chúng tôi giữ cho tới khi bị xóa. Bạn có thể yêu cầu chúng tôi xóa các cuộc chat và email của bạn. -- **Nhật ký máy chủ**: nhật ký của máy chủ web và của máy chủ chúng tôi, được giữ trên máy chủ của chúng tôi cho mục đích bảo mật và khắc phục sự cố. Chúng tôi chưa đặt thời hạn cố định cho các nhật ký này. +| Bản ghi | Lưu giữ và xóa | +| --- | --- | +| Analytics PostHog | Chưa đặt giới hạn. Tắt để lại sự kiện trước đó. Yêu cầu xóa. | +| Job xử lý và log máy chủ | Job có thể giữ báo cáo khi gửi/thử lại. Log dùng cho bảo mật và xử lý lỗi. Chưa đặt giới hạn tổng; không cam kết máy chủ không giữ bản sao. | +| Thiết bị | Gồm thiết bị đã gỡ, đến khi xóa tài khoản | +| Tài khoản và audit | Xóa ngay tài khoản, cách đăng nhập, thiết bị, license và tư cách thành viên. Audit còn vô thời hạn; xóa trường email và IP/user agent của người thực hiện, nhưng địa chỉ trong văn bản tự do có thể còn. | +| Đơn hàng và thông báo nhà cung cấp | Đơn hàng giữ cho thuế/kế toán, chưa có giới hạn. Xóa bỏ liên kết tài khoản/email. Sự kiện {merchant}, Amazon SES và Apple còn; thông tin cá nhân mua hàng và người nhận/tương tác email được xóa cho tài khoản đã xóa. | +| Team Library | Mục đã xóa giữ phiên bản cuối để sync. Xóa nhóm thường xóa thư viện sau 30 ngày, trong thời gian đó có thể khôi phục. Xóa tài khoản chủ sở hữu duy nhất xóa nhóm/thư viện ngay. License hết không xóa thư viện. | +| Xác thực | Link/mã hết hạn sau 15 phút, xóa 7 ngày sau. Session cổng 30 ngày. Token ứng dụng hết hạn 90 ngày sau lần dùng cuối, xóa 30 ngày sau. Job email giữ link/mã rõ đến cleanup: một ngày sau gửi hoặc 7 ngày sau bỏ gửi. | +| Newsletter | Địa chỉ mới chưa xác nhận bị xóa sau 30 ngày. Địa chỉ đã xác nhận/chuyển sang giữ đến khi yêu cầu xóa hoặc xóa tài khoản dùng địa chỉ đó. Hủy vẫn giữ địa chỉ với trạng thái đã hủy. | +| Danh sách chặn gửi | Địa chỉ bounce/spam và ngày đầu/cuối còn sau xóa tài khoản/đăng ký để ngăn gửi tiếp. Chưa có giới hạn. | +| Google Analytics | Dữ liệu người dùng/sự kiện: 2 tháng; báo cáo tổng hợp chuẩn là riêng | +| Cloudflare Web Analytics | Chúng tôi xem được tổng lượt xem sáu tháng gần nhất | +| Hỗ trợ | Crisp và email giữ đến khi xóa, gồm theo yêu cầu. Chưa có giới hạn. | +| Backup và bản lưu chuyển đổi | Chưa có giới hạn. Xóa tài khoản không xóa các bản này. Bản lưu toàn database cũ gồm tên/email, license, đơn hàng, nhóm, tên thiết bị, subscriber, beta signup, email, báo cáo sử dụng và log license kèm IP. | -## Quyền của bạn {#rights} +## Lựa chọn và quyền của bạn {#rights} -Tùy theo nơi bạn sống, bạn có thể yêu cầu chúng tôi: +Dùng công tắc ứng dụng, Cookie settings trên website/docs và hủy newsletter để đổi xử lý tùy chọn. Rút đồng ý có hiệu lực về sau, không làm mất tính hợp lệ của xử lý trước đó. Công tắc không xóa dữ liệu cũ hay dừng analytics máy chủ. Trong [Settings của cổng]({account}), xuất hoặc xóa tài khoản; các nút này không bao gồm mọi bản ghi trong bảng lưu giữ. -- cung cấp một bản sao dữ liệu cá nhân chúng tôi đang giữ về bạn (quyền truy cập); -- sửa dữ liệu đó (quyền chỉnh sửa); -- xóa dữ liệu đó (quyền xóa), trừ những gì pháp luật buộc chúng tôi phải giữ; -- giới hạn cách chúng tôi sử dụng dữ liệu (quyền hạn chế xử lý); -- gửi dữ liệu cho bạn ở định dạng có cấu trúc, máy đọc được (quyền di chuyển dữ liệu); -- ngừng sử dụng dữ liệu dựa trên lợi ích hợp pháp (quyền phản đối). +Tùy nơi sống, yêu cầu truy cập, sửa, xóa, hạn chế, di chuyển hoặc phản đối xử lý theo lợi ích chính đáng. Yêu cầu được tiếp nhận kể cả khi chưa có tài khoản: email qua [liên hệ](#controller). Chúng tôi có thể hỏi thông tin cần để tìm bản ghi, như ID bản cài. Không gửi license key rõ qua email. Chúng tôi trả lời trong một tháng. Bạn có thể khiếu nại với cơ quan bảo vệ dữ liệu. Nghĩa vụ lưu giữ pháp lý có thể giới hạn quyền xóa. -Bạn có thể rút lại sự đồng ý bất cứ lúc nào, và có thể khiếu nại tới cơ quan bảo vệ dữ liệu nơi bạn sống. Để thực hiện bất kỳ quyền nào trong số này, hãy gửi email tới [{email}](mailto:{email}). Chúng tôi trả lời trong vòng 30 ngày. Trên [trang tài khoản]({account}), phần Cài đặt cũng cho bạn một bản sao dữ liệu tài khoản và xóa tài khoản. Với mọi thứ khác, như một địa chỉ nhận bản tin hoặc một máy Mac không có tài khoản, hãy cho chúng tôi biết yêu cầu liên quan tới địa chỉ email, license key hay thiết bị nào. Dữ liệu do {merchant}, Google, Crisp hoặc GitHub nắm giữ còn chịu sự điều chỉnh của chính sách riêng của họ. +### Quyền theo khu vực {#regional-rights} **Cư dân California.** Đạo luật Quyền riêng tư người tiêu dùng California (CCPA) cho bạn quyền được biết chúng tôi thu thập thông tin cá nhân nào, yêu cầu chúng tôi xóa thông tin đó, từ chối việc bán thông tin đó, và không bị đối xử khác biệt khi thực hiện các quyền này. Chúng tôi không bán thông tin cá nhân. ## Trẻ em {#children} -TablePro không hướng tới trẻ em dưới 16 tuổi, và chúng tôi không cố ý thu thập dữ liệu cá nhân của trẻ em. Nếu bạn cho rằng một trẻ em đã cung cấp dữ liệu cá nhân cho chúng tôi, hãy liên hệ và chúng tôi sẽ xóa dữ liệu đó. +TablePro không hướng đến trẻ dưới 16 tuổi và chúng tôi không cố ý thu thập dữ liệu cá nhân của trẻ. Nếu bạn cho rằng trẻ đã cung cấp dữ liệu, liên hệ để chúng tôi xóa. ## Bảo mật {#security} -Lưu lượng giữa các ứng dụng, website, trang tài khoản và máy chủ của chúng tôi dùng HTTPS. Tài khoản TablePro không có mật khẩu. Liên kết và mã đăng nhập, các token giữ ứng dụng ở trạng thái đăng nhập, và token API của nhóm được lưu dưới dạng giá trị băm. Tác vụ gửi email chứa liên kết và mã đăng nhập giữ nguyên văn hai giá trị này cho tới khi tác vụ bị xóa: một ngày sau khi email được gửi, hoặc 7 ngày sau khi chúng tôi ngừng thử gửi. Cả hai hết hiệu lực 15 phút sau khi bạn yêu cầu. Quyền truy cập vào hệ thống của chúng tôi chỉ dành cho {publisherName} và các nhà cung cấp dịch vụ được liệt kê trong mục [Bên nhận dữ liệu](#sharing). Không hệ thống nào an toàn tuyệt đối. Để báo một lỗ hổng bảo mật, hãy xem [trang Bảo mật](/vi/security#report) hoặc gửi email tới [{email}](mailto:{email}). - -## Thay đổi chính sách {#changes} - -Khi chính sách này thay đổi, chúng tôi cập nhật nó tại đây với ngày "Cập nhật lần cuối" mới, và thông báo trực tiếp cho bạn khi pháp luật yêu cầu. +Lưu lượng đến dịch vụ dùng HTTPS. Tài khoản không có mật khẩu. Thông tin đăng nhập và API token của nhóm được lưu dạng hash, với ngoại lệ job email tạm thời tại mục [lưu giữ](#retention). Chỉ {publisherName} và nhà cung cấp trong [Bên nhận dữ liệu](#sharing) có quyền truy cập hệ thống. Không hệ thống nào an toàn tuyệt đối. Báo lỗ hổng qua [trang bảo mật](/vi/security#report). -## Liên hệ {#contact} +## Thay đổi {#changes} -Với các câu hỏi về quyền riêng tư hoặc về chính sách này, hãy gửi email tới [{email}](mailto:{email}). +Trang hiển thị ngày cập nhật cuối. Bản trước còn trong [lịch sử repository web công khai]({webGithub}/commits/main/resources/data/legal/en/privacy.md). Chúng tôi cập nhật trước khi dùng dữ liệu cho mục đích mới, thông báo trực tiếp khi luật yêu cầu và xin lại sự đồng ý khi cần. diff --git a/resources/data/legal/zh-Hans/privacy.md b/resources/data/legal/zh-Hans/privacy.md index 5e0c3fae..1889fd96 100644 --- a/resources/data/legal/zh-Hans/privacy.md +++ b/resources/data/legal/zh-Hans/privacy.md @@ -1,281 +1,228 @@ --- title: 隐私政策 -description: TablePro 应用、网站和账户门户收集什么信息、发送到哪里、保存多久,以及如何更改或删除。 -updatedAt: "2026-11-04" +description: TablePro 收集的数据、用途、接收方、保存时间,以及您的选择和权利。 +updatedAt: "2026-11-05" --- -本政策涵盖 Mac 版 TablePro、iPhone 和 iPad 版 TablePro、位于 tablepro.app 的网站、位于 docs.tablepro.app 的文档,以及位于 account.tablepro.app 的账户门户。它描述各产品目前实际发送和存储的信息。两款应用均采用 AGPLv3 开源,您可在 [TablePro 仓库]({github})中查看发送下列数据的代码。 +本政策涵盖 Mac、Linux、iPhone 和 iPad 上的 TablePro;tablepro.app;docs.tablepro.app;以及账户、购买、支持和邮件订阅服务。[技术清单](https://docs.tablepro.app/security/privacy)列出字段、端点和控制选项。应用源码位于[公开仓库]({github})。 ## 概要 {#summary} -- Mac 应用会发送使用数据。该功能默认开启,可以关闭。iPhone 和 iPad 应用仅在您开启后发送使用情况报告。 -- 登录 TablePro 账户或激活许可证密钥后,Mac 应用会将您的 Mac 连同名称登记到我们的服务器,并定期向服务器核对您的方案。 -- 您运行的查询、结果和密码不会发送给 TablePro。例外是您自行选择发布到 Team Library 的连接设置(从不包含密码)和已保存查询。 -- AI 请求从 Mac 应用直接发送至您设置的 AI 提供商,不经过我们。 -- 从支持 TablePro 账户的版本起,Mac 应用直接向我们位于欧盟的产品分析服务 PostHog 发送使用数据,PostHog 因此会收到您的 Mac 的 IP 地址,并据此推算大致位置。更早的版本以及 iPhone 和 iPad 应用将使用报告发送到我们的服务器,由服务器转发给 PostHog,不附带 IP 地址。您的账户会保存对账户所做更改的日志,例如登录和新设备,并附有发起每项更改的请求的 IP 地址和浏览器。 -- 网站使用不设置 Cookie 的 Cloudflare Web Analytics 统计页面浏览量。网站也加载 Google Analytics,但只有获得您的允许才设置 Cookie。每个页面还会加载在线聊天服务 Crisp,它会设置自己的 Cookie。 -- account.tablepro.app 上的账户门户不加载任何分析脚本。它设置一个保持登录的 Cookie,您可以在其设置中下载账户数据或删除账户。 -- 我们的邮件由 Amazon Web Services 旗下的 Amazon SES 发送。订阅邮件会记录每位收件人何时打开邮件,以及点击了其中哪些链接。 -- 购买由我们的 merchant of record {merchant} 负责销售。 +普通查询和结果在您的设备与数据库之间传输。使用数据不含 SQL、结果行或凭据。您主动发布到 Team Library、发送给支持或与 AI 及外部工具共享的内容会到达相应接收方。 -## 谁负责处理 {#controller} +Mac 和 Linux 默认开启使用数据,可关闭。已发布的 iPhone 和 iPad 应用只在您同意后发送报告。直接发送的分析数据可关联账户和购买记录。关闭不会停止账户请求或服务器分析。 -发布 TablePro 应用和本网站的{publisherCountry}{publisherCity}个人开发者 {publisherName} 是此处所述个人数据的责任方(数据控制者)。如对本政策或您的数据有疑问,请发送邮件至 [{email}](mailto:{email})。 +网站统计访问并在每页加载 Crisp。Google Analytics Cookie 需要您的选择。邮件订阅测量打开和点击。删除账户仍会留下部分记录,包括 PostHog 和 Crisp 中的数据。请阅读[保存期限](#retention)和[权利](#rights)。[控制者](#controller)也接受无账户的隐私请求。 -## Mac 版 TablePro {#mac-app} + -### 使用数据 {#mac-usage-report} +## 负责方 {#controller} -从支持 TablePro 账户的版本起,Mac 应用直接向我们位于欧盟的产品分析服务 PostHog(`eu.i.posthog.com`)发送使用数据。**该功能默认开启,发送第一个事件前不会征求同意**。要关闭,请进入**设置 > 通用 > 隐私**(Settings > General > Privacy)并取消勾选**共享使用数据**(Share usage data)。关闭期间,应用不向 PostHog 发送任何内容;如果应用启动时该设置已关闭,则根本不会启动 PostHog 的库。 +{publisherName} 是位于 {publisherCity}、{publisherCountry} 的独立开发者,也是本政策所述个人数据的控制者。联系 [{email}](mailto:{email})。我们没有数据保护官。对于团队,我们作为控制者管理账户、邀请和服务记录。Team Library 发布内容按团队指示处理;团队决定发布什么及谁能访问。 -应用会在以下情况发送事件: + -- 运行期间每天一次,附带已打开连接的数据库类型名称(如 PostgreSQL)和已打开的连接数量; -- 首次尝试连接、首次成功连接和首次运行查询时,各附带数据库类型; -- 应用提示某项付费功能不可用时,每次运行应用每项功能一次,附带该功能和原因(例如未登录); -- 点击升级时,附带您在应用中点击的位置; -- 登录时,附带登录方式(在应用中登录、使用许可证密钥,或兑换 Mac 上已有的密钥),以及退出登录时。 +## 收集的数据和目的 {#data-use} -PostHog 的库会为每个事件添加 Mac 的型号、屏幕尺寸、时区和语言、是否使用 Wi-Fi、应用的版本、构建号和 Bundle ID、macOS 版本、库的版本以及随机的会话 ID。PostHog 会随每个请求收到您的 Mac 的 IP 地址,并据此推算大致位置,例如国家和城市。该设置开启期间,库还会从 PostHog 获取其配置和功能标志(`eu-assets.i.posthog.com` 上的 `/config` 和 `eu.i.posthog.com` 上的 `/flags`)。 +对于欧洲经济区和英国,各目的列明法律依据:合同(第 6(1)(b) 条)、合法利益(6(1)(f))、同意(6(1)(a))或法定义务(6(1)(c))。我们不做产生法律或类似重大影响的自动决策。 -登录之前,事件携带库在您的 Mac 上生成的随机 ID,PostHog 不会为其建立个人档案。登录后,事件改为携带您的账户 ID,PostHog 中该账户的档案保存应用和 macOS 版本、处理器架构、应用语言以及 PostHog 根据 IP 地址推算的大致位置,从而把您的安装与登录和购买联系起来。退出登录后会启用新的随机 ID。应用的使用数据不再包含机器 ID、许可证激活状态或更新设置。 + -支持 TablePro 账户之前的版本则在同一设置下,于启动约十秒后向 `api.tablepro.app` 发送使用情况报告,随后在运行期间每天发送一次。报告包含: +### 账户和设备 {#account} -- 机器 ID:Mac 硬件 UUID 的 SHA-256 哈希值(UUID 本身从不发送); -- 平台、应用版本、macOS 版本、处理器架构和应用语言; -- 已打开连接的数据库类型名称(如 PostgreSQL)和已打开的连接数量; -- 是否已激活许可证; -- 首次尝试连接和首次成功连接的日期和时间; -- 更新设置(安装方式及检查频率)。报告抵达时,我们的服务器会丢弃这些设置。 +免费本地使用无需账户。账户服务需要电子邮箱。我们保存姓名、语言、登录方式、许可证、订单、设备、团队角色及席位。Mac 和 Linux 设备注册发送机器标识、设备名、平台及应用/系统版本。设备名可能包含您的姓名。此流程与使用数据分开。目的和依据是按合同提供账户与套餐。 -事件和报告都从不包含主机名、用户名、密码、查询或行数据。 +登录使用邮件链接和验证码、通行密钥或 Apple、GitHub、Google。通行密钥记录包括公钥、名称、同步状态和使用日期。身份提供方给出 ID 和已验证邮箱;Apple 还可能提供姓名。Apple 令牌加密保存,在解绑或删除账户时撤销。账户变更记录附带 IP 和用户代理。合法利益是保护账户及调查滥用。 -我们的服务器既不保存报告,也不保存发送报告的 IP 地址。服务器将报告作为关于机器 ID 的事件转发给 PostHog,附上 Cloudflare 为您的连接给出的国家,不附带许可证密钥或 IP 地址;PostHog 不会据此建立个人档案。由于您的账户以相同的机器 ID 记录设备,来自您登录过或激活过许可证的 Mac 的报告可与您的账户关联。 +[账户门户]({account})提供资料及登录方式修改、设备管理、JSON 导出和账户删除。拥有含其他成员的团队时不能删除账户。删除会终止订阅,不退款。[保存期限](#retention)说明保留内容。 -### 许可证验证 {#mac-license} +### 购买 {#purchases} -支持 TablePro 账户之前的版本仅在您输入许可证密钥后联系许可证服务器。它们会在激活时、距上次验证至少 {revalidateDays} 天后的启动时,以及此后每隔 {revalidateDays} 天验证。每次验证发送: +{merchant}(Polar Software, Inc.)是 merchant of record 和转售商,按自己的条款收集姓名、邮箱、账单地址及付款信息,处理付款、税务、收据和争议。我们从不接收完整银行卡信息。 -- 许可证密钥; -- [使用数据](#mac-usage-report)中所述的机器 ID; -- macOS 中设置的 Mac 名称(其中经常包含您的姓名); -- 应用版本和 macOS 版本。 +我们为结账、税务和币种发送购买内容、语言、访问来源及 IP。我们接收买方及账单详情、金额、订单/订阅 ID、续订、取消和退款。订单保留邮箱、账单国家、金额及来源归因。未登录购买会在必要时为该邮箱创建未验证账户。取消原因和评论发送至 {merchant} 并随订阅保存。处理履行购买合同;税务及会计记录履行法定义务。缺少必要信息无法结账。在 [{merchant} 门户]({portal})管理账单;参阅[条款](/zh-Hans/terms)和[退款](/zh-Hans/refund-policy)。 -停用某台 Mac 时只发送许可证密钥和机器 ID。 +### 团队和共享内容 {#library} -服务器将每台已激活的 Mac 保存为持有许可证的账户的设备:包括机器 ID 和名称、应用和 macOS 版本,以及最后一次联系服务器的时间。激活和停用 Mac 会连同请求的 IP 地址和用户代理记录在该账户的审计日志中;定期验证不会记录。账户门户按名称列出您的设备。如果无法连接服务器,付费功能可自上次成功验证起继续使用 {graceDays} 天。 +邀请人提供邮箱、角色及席位选择。所有者和管理员查看成员姓名/邮箱、邀请及团队变更,包括受邀地址,但看不到审计 IP 或浏览器。成员查看团队、套餐、席位数及自己的角色。我们按合同使用这些记录提供团队服务。 -### TablePro 账户 {#mac-account} +在 Mac 发布到 Team Library 会把连接设置和已保存查询上传服务器,供有权限成员使用。设置包括主机、端口、数据库、用户名、SSH/SSL、启动命令、Tunnel Command 和 AI 设置。查询包括名称、SQL、关键词和文件夹。结构化密码字段被排除;SQL 或自由文本中输入的秘密不会自动删除。库显示最后修改者。退出团队不会自动清除共享内容。参阅[删除时间](#retention)。Team Catalog 则写入您选择的共享文件夹。 -从支持 TablePro 账户的版本起,您使用 [TablePro 账户](#account)而不是许可证密钥登录 Mac 应用。应用会在浏览器窗口中打开登录页面,您也可以在那里输入登录邮件中的代码。登录后,应用将您的 Mac 登记为账户的设备:上文所述的机器 ID、Mac 名称、平台,以及应用和 macOS 版本。之后,应用在运行期间每天从我们的服务器获取一次以签名文件形式提供的方案;有了该文件,付费功能在无法连接服务器时最多可继续使用 {offlineDays} 天。保持应用登录的令牌仅保存在该 Mac 的 macOS 钥匙串中,即使开启了密码同步,也不会通过 iCloud 钥匙串同步。 +### 使用和服务分析 {#analytics} -Mac 上已有的许可证密钥会一次性换成持有该密钥的账户的登录,然后从 Mac 上删除。您可以在应用或账户门户中移除设备;某台 Mac 首次使用您的许可证时,我们会发邮件通知您。 +我们的合法利益是了解使用、修复问题及统计购买。Mac 和 Linux 发送[应用](#apps)中所述数据。服务器也向 PostHog 发送登录、购买、设备和团队事件,含账户 ID,不含姓名/邮箱。这些 ID 将应用使用与服务活动关联。开关停止应用事件,不停止必要账户请求或服务器事件。通过[权利](#rights)提出反对或删除要求。 -### Team Library {#library} +### 订阅邮件和电子邮件 {#newsletter} -Team Library 是 Team 许可证的功能。当您在连接上选择**分享 > 发布到团队库…**(Share > Publish to Team Library…),或在 Favorites 侧边栏选择**将已保存的查询发布到团队…**(Publish Saved Queries to Team…)时,Mac 应用将您发布的内容上传至服务器: +Amazon SES 发送验证码、邀请、账户通知和订阅邮件。服务邮件履行您请求的服务。新邮件订阅需确认并基于同意。我们保存地址、语言、注册/确认时间、IP、用户代理、注册页面及同意文本版本。 -- 连接设置:主机、端口、数据库名、用户名、SSH 和 SSL 设置、驱动选项、启动命令、Tunnel Command 设置、Safe Mode 级别和 AI 设置,但绝不包含密码; -- 已保存查询:名称、SQL 文本、关键词和文件夹。 +每封订阅邮件通过图片和 `links.news.tablepro.app` 测量每位收件人的打开及点击。Amazon SES 接收时间、链接、IP 和用户代理,再传给服务器统计。屏蔽图片停止打开测量,不停止点击测量。退订及邮件链接不被跟踪。没有单独的测量开关。通过邮件或邮件应用的一键退订停止接收;之后不发确认邮件。重新订阅需确认。永久退信及垃圾邮件投诉会停止发送。通过[联系](#controller)要求删除地址。 -从支持 TablePro 账户的版本起,每位拥有席位的成员的 Mac 应用会在启动时、每 15 分钟以及每次发布后下载库的更改。发布时只发送有变化的内容,并只删除该 Mac 发布过但已不再拥有的项目。如果其他人先修改了某个项目,应用会询问保留哪一份,并显示每条团队查询的最后修改者。支持 TablePro 账户之前的版本在启动时下载库,最多每周一次;执行发布的 Mac 会在发布后立即重新下载。从这些版本再次发布会替换此前发布的内容。账户门户中的 Library 会向可读取库的成员显示每个项目及最后修改者的姓名,所有者和管理员可在其中删除项目。已删除的项目会连同其最后一个版本保留在我们的服务器上,以便每台 Mac 同步删除。许可证结束后,库仍保留在我们的服务器上,直到团队所有者删除团队,库也随之删除。 +旧服务器名单中所有未退订地址均已迁移,无论是否确认,包括买家、许可证持有人和 beta 注册者。已退订地址保持退订;退信/投诉地址进入抑制名单。参阅[保存期限](#retention)。 -另一项 Team 功能 Team Catalog 会将不含密码的连接文件写入您选择的共享文件夹,不经过我们的服务器。 +### 支持 {#support} -### 更新和插件 {#mac-updates} +您发送的消息、附件及诊断会到达我们和所用支持服务,其中可能包含您附上的数据库内容或秘密。网站/门户加载聊天时,Crisp 接收 IP、浏览器及浏览页面。开始对话后保留 IP。我们提供页面语言;门户已登录时还提供账户邮箱和 ID。每页加载聊天基于提供支持的合法利益。您发起的对话基于同意。 -- **更新检查**。Mac 应用每天从 GitHub(`raw.githubusercontent.com`)下载一次更新源。除所有网络请求都会携带的 IP 地址和含应用版本的 User-Agent 外,请求不会发送其他 Mac 信息。要关闭,请进入**设置 > 通用 > 软件更新**(Settings > General > Software Update)并取消勾选**自动检查更新**(Automatically check for updates)。更新本身也从 GitHub 下载。 -- **插件目录**。应用启动时和打开插件设置时,会从 GitHub 下载可用驱动和主题列表。没有关闭此行为的设置。您安装的驱动和主题从 GitHub 下载,插件浏览器通过 GitHub API 获取下载次数。 +## 您的应用 {#apps} -GitHub 会随这些请求收到您的 IP 地址,这些请求适用 GitHub 自身的隐私声明。 +| 应用和版本 | 使用数据 | 控制 | +| --- | --- | --- | +| Mac 0.86.0,从 0.86.0-beta.1 起 | 直接发往 PostHog;默认开启 | Settings > General > Privacy | +| Linux 从 0.1.0-beta.1 起 | 直接发往 PostHog;默认开启 | Preferences > General > Privacy | +| 已发布的 iPhone 和 iPad | 经服务器报告;同意前关闭 | Settings > Privacy | -### 您选择使用的服务 {#mac-third-parties} + -只有设置后,Mac 应用才会直接向以下服务发送数据,从不经过 TablePro: +### 设备上的数据 {#local-data} -- **您的数据库、SSH 服务器和代理**接收连接向其发送的信息。 -- **AI 提供商**。添加提供商并使用 AI 助手或行内建议时,请求直接发送给该提供商或 Mac 本地运行的模型。默认包含数据库类型和名称、结构中的表和列定义,以及当前查询。仅在您开启相应选项后才发送结果行。适用提供商自身的条款。添加 GitHub Copilot 会从 npm 下载其语言服务器,其“向 GitHub 发送遥测数据”(Send telemetry to GitHub)设置默认开启。 -- **登录服务**:连接使用时的 Microsoft Entra ID、Google、Amazon Web Services 和 Cloudflare Access。 -- **Apple Maps**:在地图上显示结果时提供地图瓦片。 -- **DuckDB**:查询首次使用某个扩展时提供该扩展。 -- **MCP 客户端**。MCP 服务器默认关闭。您开启它,或已设置的 MCP 客户端启动 TablePro 桥接程序或与其配对时,它会启动,且仅监听 Mac 本地(127.0.0.1)。连接的 AI 客户端(如 Claude 或 Cursor)接收其请求的结果,并按自身条款发送至其服务。 -- **您添加的 MCP 服务器**。AI 会话会将您批准的工具调用及其参数发送至该服务器。 +连接列表、查询历史、本地日志和标签页留在设备,除非您选择共享。数据库流量发往所选服务器。密码使用平台凭据存储。Mac 引用磁盘原位置的 SSH 密钥。使用分析不含主机名、用户名、SQL、行或凭据。[集成](#integrations)、Team Library 和支持有本文说明的例外。 -### 留在 Mac 上的数据 {#mac-local} +### Mac {#mac-app} -密码保存在 macOS 钥匙串中。连接列表、查询历史、Query Insights、Data Rewind 快照、设置和打开的选项卡存储在 Mac 上。应用引用磁盘上的 SSH 密钥,不会复制它们。支持 TablePro 账户之前的版本不包含崩溃报告工具或第三方分析库。从支持 TablePro 账户的版本起,应用包含 PostHog 的库,用于发送上文所述的使用数据。该库包含 PostHog 的崩溃报告工具,但应用将其保持关闭,因此不会发送崩溃报告。该库将其随机 ID、配置和尚未发送的事件保存在 `~/Library/Application Support/com.TablePro` 下的文件中。 +以下直接分析和账户行为从 0.86.0 开始,包括 0.86.0-beta.1。登录会注册 Mac 并获取套餐。账户令牌留在该 Mac 钥匙串,绝不通过 iCloud Keychain 同步。已有许可证密钥换成登录后在本地删除。 -## iPhone 和 iPad 版 TablePro {#ios-app} +#### Mac 使用数据 {#mac-usage-report} -**除非您开启共享使用数据(Share Usage Data),否则不会向 TablePro 发送任何信息**。您可在首次启动时或之后的**设置 > 隐私**(Settings > Privacy)中开启。开启后,应用每天向与支持 TablePro 账户之前的 Mac 应用版本相同的服务器发送一次报告,服务器以相同方式将报告转发给 PostHog,不附带其 IP 地址。报告包含 Apple 为设备上的应用分配的标识符的 SHA-256 哈希值、平台、应用和 iOS 版本、处理器架构、应用语言、已打开连接的数据库类型名称、已打开的连接数量,以及首次尝试连接、首次成功连接和首次运行查询的日期和时间。不包含更新设置,并始终报告未激活许可证,因为应用没有这两项内容。 +默认开启,发送首个事件前不会询问。在 **设置 > 通用 > 隐私 (Settings > General > Privacy)** 关闭 **共享使用数据 (Share usage data)**。关闭状态启动不会运行 PostHog 库。不发送自动崩溃报告;PostHog 崩溃捕获被禁用。 -应用不会发起许可证验证、更新检查或插件请求。除可选报告外,它仅连接您的数据库和 SSH 服务器、开启 iCloud Sync 时的 Apple iCloud,以及 SQL Server 连接使用 Microsoft Entra ID 登录时的 Microsoft。 +事件涵盖每日使用及打开连接的类型/数量、首次尝试连接、成功连接及首次运行查询(按数据库类型)、付费功能限制及原因、升级点击、登录方式/退出,以及许可证购买提示的展示和回答。PostHog 添加设备、屏幕、网络、会话、应用和系统信息,并接收 IP 推算大致位置。登录前使用随机安装 ID,不建个人档案。登录后使用账户 ID,档案含版本、架构、语言及推算位置。退出生成新随机 ID。参阅[字段和端点](https://docs.tablepro.app/security/privacy#usage-data)。 -在设备上,密码和粘贴的 SSH 密钥保存在钥匙串中,证书从不同步。查询历史留在设备上。连接会加入设备的 Spotlight 索引,以便搜索。查询运行期间,除非您开启**设置 > 实时活动 > 隐藏查询**(Settings > Live Activities > Hide Query),其实时活动会在锁屏和展开的灵动岛上显示 SQL。 +#### 更新和插件 {#mac-updates} -如果您在 iPhone 或 iPad 设置中选择与应用开发者共享分析数据,Apple 可能通过 App Store Connect 向我们提供崩溃报告和使用统计。应用本身没有崩溃报告工具或第三方分析库。 +应用通过 updates.tablepro.app 从 GitHub 获取更新源和插件目录。下载及下载计数也访问 GitHub。请求带 IP 和用户代理。在 **设置 > 通用 > 软件更新 (Settings > General > Software Update)** 关闭 **自动检查更新 (Automatically check for updates)** 可停止自动检查。插件目录没有关闭选项。[技术说明](https://docs.tablepro.app/security/privacy#update-checks)也列出旧版本更新源。 -## iCloud Sync 和 Handoff {#icloud} +#### 较早的 Mac 版本 {#mac-license} -iCloud Sync 在 Mac、iPhone 和 iPad 上均默认关闭,直到您开启。开启后,记录会发送至您自己 iCloud 账户内的私有数据库(容器 `iCloud.com.TablePro`)。TablePro 无法读取它们。 +0.86.0 前,同一默认开启的开关控制发送至服务器的报告。包含机器 ID 哈希、系统/应用详情、连接类型/数量、许可证状态、首次尝试及成功日期。更新设置会发送,但服务器丢弃。当前服务器附 Cloudflare 国家信息转发 PostHog,不带 IP 或许可证密钥,不创建个人档案。机器 ID 可关联账户设备。目前不保存专门的心跳历史,但任务、日志、备份和旧档案可能保留数据。参阅[保存期限](#retention)。 -- 在 Mac 上,您可选择同步连接、分组和标签、设置、SSH 配置、凭据配置(名称和用户名,从不包含密码)、表和数据库收藏、已保存查询(包括 SQL 文本)以及表文件夹。连接记录包含主机、端口、用户名、数据库名、SSH 和 SSL 设置、启动命令、连接前脚本和 AI 规则。查询历史、Data Rewind 快照和密码来源从不同步。 -- iPhone 和 iPad 同步连接、分组和标签。 -- 密码仅在您同时开启 Mac 上 Sync Categories 中的**密码**(Passwords),或 iPhone 和 iPad 上的**同步密码**(Sync Passwords)后同步,使用 iCloud 钥匙串。在 Mac 上,这也会同步 TablePro 保存在钥匙串中的其他机密信息,如 AI 提供商密钥和许可证密钥。从支持 TablePro 账户的版本起,许可证密钥在兑换为登录后即被删除,保持应用登录的令牌也从不同步。 +旧版仅在输入密钥后访问许可证服务。检查发送密钥、机器 ID、Mac 名及版本。设备记录属于账户;激活/停用审计附 IP 和用户代理。[技术清单](https://docs.tablepro.app/security/privacy#older-mac-reports)列出字段与时间。 -Mac 上的 iCloud Sync 属于 Pro 或 Team 许可证功能,在 iPhone 和 iPad 上免费。 +### iPhone 和 iPad {#ios-app} -Handoff 通过 Apple 在您的设备之间传递当前连接的 ID 和打开的表名。没有打开表时,传递连接名称;连接没有名称时则传递主机。不会发送设置或凭据。 +已发布应用在首次启动或 **设置 > 隐私 (Settings > Privacy)** 启用 **共享使用数据 (Share Usage Data)** 前不发送使用报告。依据为同意。每日报告经服务器向 PostHog 转发,不含 IP,附 Cloudflare 国家且无个人档案。包含 Apple 设备标识哈希、平台、版本、架构、语言、连接类型/数量及首次尝试、成功和首次运行查询的日期。始终报告无许可证;无更新设置。应用不检查账户、许可证、更新或插件。 -## 网站 {#website} +数据库/SSH、可选 iCloud 及 SQL Server 的 Microsoft Entra 登录会向相应服务发数据。密码和粘贴的 SSH 密钥在钥匙串;证书和历史在设备。连接加入本地 Spotlight 索引。运行中查询的 Live Activity 可在锁屏显示 SQL,除非开启 Hide Query。另有 Apple 的 Share With App Developers 设置,可通过 App Store Connect 向我们提供崩溃报告及统计。应用本身无崩溃报告器或第三方分析库。参阅 [iOS](https://docs.tablepro.app/ios#privacy)。 -**托管**。网站和账户门户运行在我们的服务器上,由 Cloudflare 提供前置服务。与任何网络服务器一样,它们会收到您的 IP 地址、浏览器 User-Agent 和请求的每个页面地址。 +### Linux {#linux-app} -**Cloudflare Web Analytics**。Cloudflare 在网站页面中加入 Web Analytics 脚本;账户门户不运行该脚本。浏览器从 `static.cloudflareinsights.com` 加载它,每次浏览页面都会向 Cloudflare 报告页面、链接来源网站、加载耗时,以及浏览器、操作系统和设备类型。Cloudflare 会补充连接所属国家。脚本不设置 Cookie,也不在浏览器中保存信息;Cloudflare 声明不会使用 IP 地址或浏览器信息对您进行指纹识别。Cloudflare 向我们提供页面或国家的浏览量等汇总数据,不提供每位访客的记录。合法依据:合法利益。 +从 0.1.0-beta.1 起,登录按[账户](#account)所述注册设备。秘密使用桌面密钥环。包管理器更新遵循所选分发方设置。应用不自动上传崩溃报告。 -**Google Analytics**。网站在每个页面以 Consent Mode 加载 Google Analytics。在您于 Cookie 提问中选择**允许**之前,它不设置 Cookie,仅为每个页面向 Google 发送无 Cookie 信号,不在设备上存储标识符。允许后,Google Analytics 设置 `_ga` 和 `_ga_` Cookie,统计页面浏览、下载点击和开始结账等访问行为。广告存储、广告个性化和广告用户数据始终被拒绝。Google 声明 Google Analytics 4 不记录或存储 IP 地址。我们的 Google Analytics 媒体资源使用 Google 默认保留期:用户级和事件级数据收集后两个月由 Google 删除。保存汇总而非标识符的标准报告不受影响。合法依据:您对 Cookie 的同意。 +#### Linux 使用数据 {#linux-usage-data} -**在线聊天**。网站和账户门户的每个页面都显示聊天提供商 Crisp 的按钮。页面加载完成后,浏览器从 `client.crisp.chat` 加载 Crisp 脚本,Crisp 会设置 [Cookie 和浏览器存储](#cookies)中所述的 Cookie。Crisp 收到 IP 地址、浏览器信息、浏览的页面地址和您撰写的消息,并在您开始对话后保留 IP 地址。我们向 Crisp 提供页面语言。您登录账户门户时,我们还会向 Crisp 提供您账户的邮箱地址和账户 ID,以便将对话与您的账户关联。我们不向 Crisp 提供您的其他信息。Crisp 位于法国。 +从 0.1.0-beta.1 默认开启。在 Preferences > General > Privacy 关闭 Share usage data。事件直接到 PostHog EU:每日使用及连接类型/数量、首次尝试/成功及按类型的首次查询、登录/退出、升级点击、许可证提示展示及 Buy 回答。附安装/账户 ID、版本、架构、界面语言及 SDK 元数据。PostHog 接收 IP 并推算位置。登录前随机 ID,无个人档案;之后账户档案关联使用和购买。退出重置 ID。事件不含主机名、SQL、行或凭据。设备注册另外包含主机名。 -**结账脚本**。当您将指针移至购买按钮或用 Tab 键聚焦时,浏览器从 jsDelivr(`cdn.jsdelivr.net`)加载 {merchant} 的结账脚本。jsDelivr 会收到 IP 地址和浏览器信息。只有点击后,结账页面才从 {merchant} 打开。 +关闭停止新发送,已在途请求可能完成。不会清除旧事件或停止账户请求/服务器分析。参阅[保存期限](#retention)、[权利](#rights)及[技术清单](https://docs.tablepro.app/security/privacy#linux-usage-data)。 -**订阅邮件验证**。当您开始填写邮件订阅表单时,浏览器会从 `challenges.cloudflare.com` 加载 Cloudflare Turnstile,以确认订阅者是真人;Cloudflare 会收到您的 IP 地址和浏览器信息。 + -**购买归因**。首次到访网站时,浏览器在本地存储中保存名为 `tablepro:attribution` 的首访记录,期限为 90 天:访问来源(所点击链接中的 `ref` 或 `utm_*` 标签,或来源网站)、进入的页面和时间。开始购买时,该记录随结账请求发送。我们的服务器将访问来源作为结账元数据传给 {merchant},在您付款后与订单一起保存,并随结账和付款事件发送给 PostHog。进入的页面和时间不会保存。 +## 您选择的服务 {#integrations} -**文档**。位于 docs.tablepro.app 的文档由 Mintlify 托管。每打开一页,Mintlify 都会收到您的 IP 地址和浏览器信息;页面从 Google Fonts 加载字体。导航栏显示仓库的星标数,由您的浏览器从 GitHub 的 API 获取,因此 GitHub 也会收到您的 IP 地址和浏览器信息。该请求不设置 Cookie。文档无法读取您在本网站的回答,因此会单独提出 Cookie 问题。在您于文档中选择 **Allow** 之前,它不设置 Cookie,也不保存访客 ID。允许后,Google Analytics 设置 `_ga` 和 `_ga_` Cookie 并统计您对文档的访问,Mintlify 则在本地存储中保存一个随机访客 ID `mintlify_anonymous_id` 用于计数。文档页脚的 **Cookie settings** 可更改您的回答;拒绝后两者都会被删除。合法依据:您的同意。 +数据库、SSH 和代理提供方直接接收您要求的流量。配置后的连接登录服务接收认证请求。Apple Maps 提供地图图块;DuckDB 提供查询用扩展。下载的连接/AI 辅助程序访问其提供方。各自条款适用。 -**语言与地区折扣**。当您的浏览器语言中没有本网站提供的语言时,为向您推荐相应语言的页面,并显示结账时将适用的地区折扣,网站会向 Cloudflare(`/cdn-cgi/trace`)和我们的服务器询问您的连接来自哪个国家或地区,并可能读取设备的时区。这两项请求都不携带 Cookie,页面也不会保存任何应答内容。合法依据:合法利益。 +### iCloud 和 Handoff {#icloud} -仅阅读网站不会设置网站自身的 Cookie。公开网站的邮件订阅、结账和优惠码请求不携带凭据,因此既不会发送账户门户 Cookie,也不会接受响应中的 Cookie。打开账户门户页面属于另一项操作:在门户登录会设置以下门户 Cookie。网站在浏览器中保存的全部信息列于 [Cookie 和浏览器存储](#cookies)。 +可选 iCloud Sync 将连接、分组、标签、设置、查询及 SSH 配置存入私人 CloudKit。 在 Mac 上,还会同步表和数据库收藏夹及文件夹,以及凭据配置的名称、用户名和密码模式,不含配置中的密码。Apple 托管,我们无法读取。密码同步单独控制,默认关闭,使用端到端加密 iCloud Keychain。Mac 上也适用于写入同一存储的其他秘密,如 AI 密钥及旧许可证密钥。账户令牌从不同步。Mac 需 Pro 或 Team;iOS 免费。Handoff 在 Apple 设备间传连接 ID 和表名,无表时传连接名/主机,不传凭据。参阅[控制](https://docs.tablepro.app/features/icloud-sync)。 -## 购买 {#purchases} +### AI 和外部工具 {#ai-tools} -许可证由 merchant of record 和经销商 {merchant}(Polar Software, Inc.)销售。您依据 {merchant} 的购买者条款和隐私政策购买。{merchant} 负责收款、计算并缴纳销售税或增值税、发送收据和发票,并处理付款问题和争议。它收集姓名、邮箱地址、账单地址和支付信息。我们不会看到完整银行卡信息。 +AI 请求直接发往所选提供方或本地模型,可能包含提示、结构、SQL 和对话。附加网格结果行默认关闭。获准的 AI 查询工具返回的结果也进入对话并发往提供方,不受附加开关限制。GitHub Copilot 从 npm 下载辅助程序,初始开启向 GitHub 发送遥测数据 (Send telemetry to GitHub)。 -开始结账时,我们的服务器会告知 {merchant} 您购买的内容、购买页面的语言、访问来源(参见[网站](#website))以及您的 IP 地址,{merchant} 用 IP 地址确定税费和币种。我们从 {merchant} 收到您的邮箱地址、您输入的姓名和账单地址、购买内容、金额、订单及订阅 ID,以及之后的续订、取消和退款等变更。每个订单都会保存邮箱地址、账单国家和金额。 +MCP 默认关闭,禁用时无法启动,包括桥接和配对请求。启用后,已认证客户端可按授权请求数据。AI 客户端可将结果发至自己的服务。外部 MCP 服务器接收已批准的工具参数。参阅 [AI/MCP 控制](https://docs.tablepro.app/security/privacy#ai-providers)。 -未登录时的购买会归入购买所用邮箱地址的 TablePro 账户;若没有该账户则会新建,并在您首次登录前保持未验证状态。在[账户门户]({account})中,您可以更改订阅的计费周期或席位数、取消或恢复订阅,以及申请退款。取消时,您选择的原因和填写的备注会发送给 {merchant},并与订阅一起保存。银行卡、发票、税务信息和账单地址位于 [{merchant} 客户门户]({portal}),可从账户门户直接打开。退款详情请参阅[退款政策](/zh-Hans/refund-policy),许可证的使用范围请参阅[服务条款](/zh-Hans/terms)。 +## 网站和浏览器存储 {#website} -## 账户门户 {#account} +服务器及 Cloudflare 接收 IP、用户代理和页面请求。Cloudflare Web Analytics 统计浏览、来源、加载时间、浏览器/系统/设备类别及国家,不使用浏览器存储或指纹。合法利益是了解和维护网站。 -您可以在 account.tablepro.app 的[账户门户]({account})中管理 TablePro 账户的许可证、设备、账单和团队。它与网站一样,运行在 Cloudflare 之后的我们的服务器上。 +Google Analytics 以 Consent Mode 加载。在 Allow 前发送无 Cookie、无已存设备 ID 的页面信号。同意后启用 Cookie 及访问、下载、结账测量。广告存储、个性化及广告用户数据始终拒绝。Google 表示 GA4 不存储 IP。 -**您的账户**。每个账户属于一个人,以邮箱地址识别。账户包含该地址、您设置的姓名和语言、您的登录方式、已登录的设备、您的许可证和订单、您所在的团队及您的角色和席位,以及记录账户更改的审计日志,例如登录、新设备和团队变更,并附有发起每项更改的请求的 IP 地址和浏览器。我们的邮件使用您账户的语言。 +Crisp 在网站/门户每页加载,见[支持](#support)。指向或 Tab 到 Buy 会从 jsDelivr 加载 {merchant} 脚本,向其提供 IP/浏览器;点击才打开结账。开始订阅表单会加载 Turnstile 防滥用,依据合法利益。国家查询和时区用于语言/地区优惠建议,依据合法利益;请求无 Cookie,页面不保存回答。 -**登录**。我们通过邮件发送一个链接和一个 6 位代码:链接只能使用一次,代码可尝试 5 次,两者均在 15 分钟后失效。您也可以添加通行密钥;对每个通行密钥,我们保存其公钥、您设置的名称、是否在您的设备之间同步,以及添加时间和最近使用时间。您还可以使用 Apple、GitHub 或 Google 登录:提供方会告知我们您的 ID 和已验证的邮箱地址,Apple 首次还会提供您的姓名。我们将 ID 和地址与您的账户一起保存;对于 Apple,还会加密保存一个令牌,并在您解除 Apple 关联或删除账户时向 Apple 撤销该令牌。如果提供方的地址属于已有账户,我们会在关联前向该账户发送确认链接和代码,但由 Google 管理的地址(Gmail 或 Google Workspace)除外。 +首次访问创建 `tablepro:attribution`,保存 90 天:标签/来源、着陆页和日期。结账时服务器将来源作为元数据传给 {merchant},随订单保存,并随结账/付款事件发给 PostHog。着陆页和日期不保留。依据是衡量购买来源的合法利益。公开订阅、结账和优惠请求省略凭据,不设门户 Cookie。门户无分析脚本,但服务器发送服务事件。 -**团队**。邀请他人加入团队时,我们会保存其邮箱地址、角色以及邀请是否包含席位,并发送一个 7 天内有效的链接。所有者和管理员可以看到团队成员的姓名和邮箱地址、邀请,以及团队的审计日志;审计日志显示团队中谁更改了什么(包括受邀地址),但从不显示 IP 地址或浏览器。成员可以看到团队、其方案、席位数以及自己的角色。 +### 文档网站 {#docs} -**您的数据**。在设置中,您可以更改姓名、邮箱地址和语言,添加和移除登录方式,以 JSON 文件下载账户数据,以及删除账户。当您是仍有其他成员的团队的所有者时,无法删除账户。删除账户会移除您的登录方式、设备、许可证、团队成员身份以及只有您一人的团队,删除您邮箱地址的邮件订阅,并终止您的订阅且不退款。删除后保留的内容请参阅[数据保留期限](#retention)。 +Mintlify 托管 docs.tablepro.app。页面、Google Fonts 和 GitHub 星标请求向这些提供方披露 IP/浏览器。文档单独询问分析同意。Allow 前不保存分析 Cookie 或访客 ID。Allow 启用 Google Analytics 和 Mintlify ID。文档页脚 Cookie settings 可撤回并删除它们。主站选择不会跨到此来源。 -**门户加载的内容**。门户不加载 Google Analytics、Cloudflare Web Analytics 或任何其他分析脚本,也不询问 Cookie 设置。门户显示[网站](#website)一节所述的 Crisp 在线聊天;在门户中购买时,{merchant} 的结账页面会在页面上方打开。 +### Cookie 和存储 {#cookies} -## 邮件订阅 {#newsletter} +Cloudflare Web Analytics 不在浏览器保存内容。公开页面不设第一方 Cookie。以下存储期限与提供方保留期不同。必要存储维持登录或选择;同意和合法利益用途列在此处。 -订阅发行说明时,我们先以订阅页面的语言发送确认链接。链接 7 天内有效,同一地址每天最多收到 3 封。确认后,您的地址会连同该语言加入我们服务器上的订阅列表。对于订阅和确认,我们分别记录发生时间、来源 IP 地址和浏览器、您订阅时所在的页面,以及您同意的文字版本。表单由 Cloudflare Turnstile 验证,详见[网站](#website)。 +| 名称/服务 | 目的与触发 | 期限与控制 | +| --- | --- | --- | +| `_ga`, `_ga_` | 同意后的 Google Analytics | 最长 2 年;拒绝即删除 | +| `tablepro:analytics-consent` | 必要的选择记录,网站/文档各自保存 | 直到清除 | +| `tablepro:attribution` | 随结账发送首次来源;合法利益 | 90 天 | +| `theme`, `tablepro:language`, `tablepro:campaign-closed` | 外观、所选/忽略语言、已关闭促销;合法利益 | 直到清除;门户主题独立 | +| `mintlify_anonymous_id` | 文档访客 ID,在该处同意后 | 直到清除或拒绝 | +| `crisp-client/` Cookie | 每页加载后的聊天延续;合法利益 | 6 个月,返回续期 | +| `__Host-tp_session` | 必要门户登录 | 登录后 30 天;登录过程最多 10 分钟;退出删除 | +| `locale`, `context`, `sign-in-return-to` | 门户语言、Personal/团队视图、返回页;合法利益 | 前两项直到清除;返回页 15 分钟 | -每封订阅邮件都会记录所有收件人的打开和点击。邮件中含有一张小图片,其中的链接会经过 `links.news.tablepro.app`。当您的邮件客户端加载该图片或您打开某个链接时,Amazon SES 会记录打开或点击的时间和所点击的链接,以及您的邮件客户端发送的 IP 地址和用户代理,并转给我们的服务器,由服务器统计每封订阅邮件的打开次数和点击次数。不加载图片的邮件客户端不会记录打开。退订链接和用于撰写新邮件的链接不会被追踪。 - -每封订阅邮件都附有退订链接,打开后会显示带有退订按钮的页面;邮件还带有可让您的邮件应用一键退订的邮件头。退订后,我们不再发送订阅邮件,也不会发送确认退订的邮件;如需重新订阅,需要再次确认。将订阅邮件标记为垃圾邮件也会退订,发往您地址的邮件一旦被永久退回,我们就停止向该地址发送。若还希望删除地址,请发邮件给我们,或删除使用该地址的 TablePro 账户。 - -从之前的服务器迁移时,其邮件列表中所有未退订的地址,无论是否确认过,都以已订阅状态加入了此列表:该服务器还曾加入购买者、许可证持有者和 Beta 报名者的地址,并向他们发送邮件。已退订的地址以退订状态迁移,邮件曾被退回或被标记为垃圾邮件的地址则改为加入我们的屏蔽列表,因此不会收到任何订阅邮件。 - -## Cookie 和浏览器存储 {#cookies} - -仅阅读公开网站不会设置网站自身的 Cookie。邮件订阅、结账和优惠码请求不携带凭据,也不会设置门户 Cookie。登录账户门户或开始登录时,会设置以下唯一一个严格必要的门户 Cookie。Cloudflare Web Analytics 不设置 Cookie,也不在浏览器中存储信息。Google Analytics Cookie 在您允许之前不会设置。Crisp 在聊天加载后为每个页面设置 Cookie。此处的信息不用于广告,也不会出售。 - -- **`_ga` 和 `_ga_`**(Google Analytics Cookie,最长两年,仅在允许分析时):浏览器的随机标识符及当前访问状态。拒绝或之后更改回答时会删除。合法依据:同意。 -- **`tablepro:analytics-consent`**(本地存储,直至您清除):保存对分析提问的回答,避免每个页面重复询问。账户门户不进行分析,因此不会询问此问题,也不读取回答。合法依据:履行您的选择所严格必要。 -- **`tablepro:attribution`**(本地存储,90 天):[网站](#website)一节所述的首访记录。不包含您的标识符,仅随结账请求发送,服务器会将访问来源传给 {merchant}。合法依据:合法利益。 -- **`theme`**(本地存储,直至您清除):保存所选浅色、深色或系统主题。账户门户单独保存自己的选择。合法依据:合法利益。 -- **`tablepro:language`**(本地存储,直至您清除):保存您在语言菜单或语言栏中选择的语言,以及您关闭过推荐的语言,以免再次推荐。合法依据:合法利益。 -- **`tablepro:campaign-closed`**(本地存储,直至您清除):保存您关闭了页眉上方通知的那次优惠活动,使该通知在活动结束前在每个页面上都保持关闭。合法依据:合法利益。 -- **`mintlify_anonymous_id`**(docs.tablepro.app 的本地存储,由 Mintlify 设置,仅在您于文档中允许 Google Analytics 时):[网站](#website)一节所述的访客 ID。拒绝后即删除。文档单独保存自己的 `tablepro:analytics-consent` 回答。合法依据:同意。 -- **以 `crisp-client/` 开头的 Cookie**(Crisp,如 `crisp-client/session/…`;六个月,再次访问时续期;聊天加载后每个页面都会设置):在页面和访问之间保持聊天及对话。合法依据:为每个页面提供支持的合法利益。 -- **`__Host-tp_session`**(账户门户 Cookie,自登录起 30 天):保持登录状态。登录前,仅在通过通行密钥、Apple、GitHub、Google 或应用登录的过程中设置,最长 10 分钟。退出登录会删除它。公开网站的邮件订阅、结账和优惠码请求不携带凭据,也从不会收到它。合法依据:严格必要。 -- **`locale`、`context` 和 `sign-in-return-to`**(账户门户本地存储):登录前在门户中选择的语言、最近打开的是个人还是某个团队(两者均保存至您清除为止),以及打开邮件中的登录链接后要返回的页面(15 分钟)。合法依据:合法利益。 - -您可随时通过每页页脚的 **Cookie 设置**或以下入口更改、撤回分析回答: +在页脚 Cookie settings 或此处更改分析同意: -## 合法依据 {#lawful-basis} +## 接收方 {#sharing} -对于欧洲经济区和英国的读者,GDPR 与 UK GDPR 下的合法依据为: +| 接收方 | 数据与目的 | +| --- | --- | +| [OVH]({ovhPrivacy}) | 服务器及服务记录托管 | +| [Cloudflare]({cloudflarePrivacy}) | DNS/代理、R2/备份、Turnstile、Cloudflare Web Analytics | +| [Amazon Web Services]({awsPrivacy}) | Amazon SES 邮件、投递及互动;CloudFront 链接、SNS/SQS 事件 | +| [PostHog EU]({posthogPrivacy}) | 应用/服务器分析;账户 ID,无姓名/邮箱;直接请求含 IP | +| [{merchant}]({merchantPrivacy}) | 独立 merchant of record;结账、账单及购买 | +| [Crisp]({crispPrivacy}) | 聊天、浏览器/页面及已登录账户身份 | +| [Google]({googlePrivacy}) | 网站/文档分析及字体;所选账户登录 | +| [Mintlify]({mintlifyPrivacy}) | 文档托管和获同意的测量 | +| [GitHub]({githubPrivacy}) | 下载、更新、插件、星标、公开 issue 和可选登录 | +| [Apple]({applePrivacy}) | 可选登录;应用/集成所述服务及诊断 | +| [jsDelivr]({jsdelivrPrivacy}) | 结账脚本请求含 IP/浏览器 | -- **合同**(第 6 条第 1 款 (b)):许可证销售和提供、您的账户及其登录方式和设备、许可证验证、账户门户和 Team Library。 -- **合法利益**(第 6 条第 1 款 (f)):Mac 应用使用数据及其在 PostHog 中的分析、我们的服务器发送给 PostHog 的关于登录、购买、设备和团队的事件、账户审计日志、安全和滥用防范(包括邮件订阅表单上的 Cloudflare Turnstile)、服务器日志、Cloudflare Web Analytics、购买归因记录、为语言与地区折扣进行的国家查询,以及每个页面的在线聊天。 -- **同意**(第 6 条第 1 款 (a)):Google Analytics Cookie、iPhone 和 iPad 应用使用报告、邮件订阅和您主动发起的在线聊天。 -- **法律义务**(第 6 条第 1 款 (c)):税务与会计记录,以及对合法请求的回应。 +团队成员按角色接收共享内容及账户详情。集成接收您指定发送的数据。我们不出售个人数据或为广告共享。其他披露仅在法律要求时进行。提供方自己的政策也适用。 -## 数据接收方 {#sharing} +## 处理地点 {#transfers} -我们仅向运营 TablePro 所需的服务共享个人数据: +OVH 服务器和 Amazon SES 在新加坡(SES 为 `ap-southeast-1`)。PostHog 在欧盟。Crisp 总部在法国。{publisherName} 从越南运营。美国提供方,包括 {merchant}、Google、GitHub、Cloudflare、Amazon Web Services 和 Mintlify,在美国处理数据。存储和备份可能涉及其他国家。所需 EEA/英国保障依赖各提供方的标准合同条款或其他批准机制;Google 也使用 EU-US Data Privacy Framework。通过[联系](#controller)查询保障详情。 -- **{merchant}**:购买交易的 merchant of record。 -- **Amazon Web Services**:通过 Amazon SES 从其亚太地区(新加坡)区域发送我们的邮件,包括登录链接和代码、团队邀请、账户和安全通知以及订阅邮件。邮件送达、被退回或被标记为垃圾邮件时,它会通知我们;我们会记录退回和垃圾邮件投诉,以停止向这些地址发送。对于订阅邮件,它还会通知每次打开和点击,详见[邮件订阅](#newsletter)。 -- **托管服务商及 Cloudflare**:运行网站、账户门户和应用连接的服务器。Cloudflare 也通过 Web Analytics 统计页面浏览量,并用 Turnstile 验证邮件订阅表单。 -- **Google**:网站和文档中的 Google Analytics。 -- **Crisp**:网站和账户门户每个页面的在线聊天。 -- **PostHog**(EU Cloud):我们的产品分析服务,接收应用的使用报告,以及我们的服务器关于登录、购买、设备和团队的事件,附带您的账户 ID,但从不包含您的邮箱地址或姓名。Mac 应用直接发送的使用数据到达 PostHog 时附带您的 Mac 的 IP 地址。 -- **Apple、GitHub 和 Google**:在您使用它们登录账户时。 -- **jsDelivr**:在指针移至购买按钮时向浏览器提供 {merchant} 的结账脚本。 -- **Mintlify**:托管位于 docs.tablepro.app 的文档。 -- **GitHub**:托管更新源、插件目录和下载内容,并提供文档显示的星标数。 +## 保存期限 {#retention} -我们不出售个人数据,也不与广告商共享。 +表中注明未设期限的项目确实没有期限。删除账户不会删除 PostHog 或 Crisp 数据。通过[联系](#controller)发邮件,我们会按请求在这些提供方删除。 -## 国际传输 {#transfers} +| 记录 | 保存与删除 | +| --- | --- | +| PostHog 分析 | 未设期限。关闭仍保留旧事件。可请求删除。 | +| 处理任务和服务器日志 | 任务在发送/重试期间可能保存报告。日志用于安全及排错。未设总体期限,不承诺无服务器副本。 | +| 设备 | 包括已移除设备,保留至删除账户 | +| 账户和审计 | 删除账户、登录方式、设备、许可证及成员关系。审计无期限保留;移除邮箱字段及操作者 IP/用户代理,但自由文本内地址可能仍在。 | +| 订单和提供方通知 | 税务/会计订单未设期限。删除移除账户/邮箱关联。{merchant}、Amazon SES 和 Apple 事件保留;清理被删账户的购买个人信息、邮件收件人/互动详情。 | +| Team Library | 已删项目保留最后版本用于同步。普通删除团队后 30 天删库,期间可恢复。删除唯一所有者账户立即删团队和库。许可证结束不删库。 | +| 认证 | 链接/验证码 15 分钟过期,7 天后删除。门户会话 30 天。应用令牌末次使用 90 天后过期,再过 30 天删除。邮件任务保存明文直到清理:发送后一天或放弃发送后 7 天。 | +| 邮件订阅 | 新未确认地址 30 天后删除。已确认/迁移地址到请求删除或同邮箱账户删除为止。退订仍保留地址并标为退订。 | +| 抑制名单 | 退信/投诉地址及首次/末次日期在账户/订阅删除后仍保留,以阻止再发。未设期限。 | +| Google Analytics | 用户/事件数据 2 个月;汇总标准报告另计 | +| Cloudflare Web Analytics | 我们可查看最近六个月浏览总数 | +| 支持 | Crisp 对话和邮箱消息保留至删除,包括按请求删除。未设期限。 | +| 备份和迁移档案 | 未设期限。删账户不删副本。旧完整数据库含姓名/邮箱、许可证、订单、团队、设备名、订阅者、beta 注册、邮件、使用报告及带 IP 的许可证日志。 | -以上服务在多个国家运营,因此您的数据可能在居住国之外处理。{merchant}、Google、GitHub、Cloudflare 和 Mintlify 在美国处理数据;Google 依据 EU-US Data Privacy Framework 和标准合同条款处理。PostHog 在欧盟处理数据。Amazon Web Services 从新加坡发送我们的邮件。在法律要求时,从欧洲经济区和英国传输数据采用标准合同条款或其他获批机制。 +## 选择和权利 {#rights} -## 数据保留期限 {#retention} +使用应用开关、网站/文档 Cookie settings 和退订更改可选处理。撤回同意只向后生效,不影响之前处理的合法性。开关不删旧数据或停止服务器分析。在[门户 Settings]({account})导出或删账户;并非涵盖保留表中所有记录。 -- **使用报告和分析事件**:我们的服务器转发给 PostHog 后不保留副本。我们未在 PostHog 中为其设置保留期限。 -- **我们之前服务器的记录**:之前服务器整个数据库的副本存放在归档中,无限期保留。其中包括许可证、订单和团队成员及其邮箱地址和姓名;激活了许可证的 Mac 及其名称;订阅者和 Beta 报名者;它所发送邮件的记录;以及它保存的使用报告和许可证请求日志及其 IP 地址。 -- **设备**:保留至您删除账户,包括您已移除的设备。 -- **您账户的审计日志**:账户存在期间保留,并附有您所做每项更改的 IP 地址和浏览器。删除账户会从中移除您的邮箱地址,以及您所做操作的 IP 地址和浏览器;每项更改的记录本身会保留。 -- **订单**:为税务和会计用途保留。删除账户会从订单中移除您的邮箱地址和账户。 -- **来自 {merchant}、Amazon SES 和 Apple 的通知**:保留。{merchant} 的通知包含您的姓名、邮箱地址和账单地址;删除账户后,关于您购买的通知中的这些信息会被移除。Amazon SES 的通知包含每封邮件的收件地址,对于订阅邮件还包含每次打开和点击的 IP 地址和用户代理;删除账户后,关于发往您地址的邮件的通知以及我们对每封已发送邮件的记录中的这些信息会被移除。 -- **Team Library**:保留至项目被修改;已删除的项目保留其最后一个版本。库在所有者删除团队 30 天后随团队一起删除;在此之前,所有者可以恢复团队。许可证结束后仍会保留。 -- **登录链接和代码**:15 分钟后失效,7 天后删除。门户会话持续 30 天。保持应用登录的令牌在应用最后一次使用后 90 天失效,并在之后 30 天删除。 -- **已删除的账户**:账户及其登录方式、设备、许可证和团队成员身份会立即删除。订单和审计日志按上文所述保留。之前的服务器保存的与您有关的数据仍留在上述归档中。 -- **邮件订阅**:30 天内未确认的地址会连同确认链接一起删除。已确认的地址以及从之前的服务器迁移的地址会连同其加入方式的记录保留在我们的列表中,直到我们应您的要求删除,或您删除使用该地址的 TablePro 账户;退订后,该地址以已退订状态保留,确保不再收到任何订阅邮件。 -- **禁止发送列表**:邮件被永久退回的地址,或所有者将我们的邮件标记为垃圾邮件的地址,会连同首次和最近一次发生的时间保留在我们的禁止发送列表中,使用该地址的账户或邮件订阅被删除后也是如此,以确保我们不再向其发送任何邮件。 -- **Google Analytics**:用户级和事件级数据保留两个月,即我们媒体资源所用的 Google 默认期限。Cookie 最长保留两年,或在拒绝时删除。 -- **Cloudflare Web Analytics**:向我们显示最近六个月的页面浏览汇总,不在浏览器中保存信息。 -- **在线聊天及支持邮件**:在 Crisp 和我们的邮箱中保留至删除。您可要求删除对话和邮件。 -- **服务器日志**:我们的网络服务器和服务器的日志,为安全和故障排查保留在我们的服务器上,尚未设置固定期限。 +依居住地,可要求访问、更正、删除、限制、可携带或反对合法利益处理。无需账户:邮件[联系](#controller)。我们可能询问查找记录所需信息,如安装 ID。切勿通过邮件明文发送许可证密钥。我们在一个月内答复。您可向数据保护机关投诉。法律保存义务可能限制删除。 -## 您的权利 {#rights} - -视居住地而定,您可以要求我们: - -- 提供我们持有的个人数据副本(访问); -- 更正数据(更正); -- 删除数据(删除),法律要求保留的除外; -- 限制使用方式(限制); -- 以结构化、机器可读格式提供数据(可携带); -- 停止基于合法利益使用数据(反对)。 - -您可随时撤回同意,并向数据保护机构投诉。行使上述权利,请发送邮件至 [{email}](mailto:{email})。我们会在 30 天内回应。在[账户门户]({account})的设置中,您也可以获取账户数据的副本并删除账户。对于其他内容,例如订阅邮件地址或没有账户的 Mac,请告知相关邮箱地址、许可证密钥或设备。{merchant}、Google、Crisp 或 GitHub 持有的数据还适用其自身政策。 +### 地区权利 {#regional-rights} **加利福尼亚州居民**。California Consumer Privacy Act 赋予您了解我们收集哪些个人信息、要求删除、拒绝出售,以及不因行使这些权利而受到差别待遇的权利。我们不出售个人信息。 ## 儿童 {#children} -TablePro 不面向十六岁以下儿童,也不会在明知的情况下收集其个人数据。如您认为儿童向我们提供了个人数据,请联系,我们会删除。 +TablePro 不面向 16 岁以下儿童,我们不会明知而收集其个人数据。如认为儿童已向我们提供数据,请联系我们删除。 ## 安全 {#security} -应用、网站、账户门户与我们的服务器之间使用 HTTPS。TablePro 账户没有密码。登录链接和代码、保持应用登录的令牌以及团队 API 令牌以哈希形式保存。通过邮件发送登录链接和代码的任务会以明文保存它们,直到该任务被删除:邮件发出一天后,或放弃发送 7 天后。链接和代码都会在您请求 15 分钟后失效。系统访问仅限于 {publisherName} 及[数据接收方](#sharing)中列出的服务提供商。没有系统完全安全。报告漏洞请参阅[安全页面](/zh-Hans/security#report),或发送邮件至 [{email}](mailto:{email})。 - -## 政策变更 {#changes} - -本政策变更时,我们会在此更新并注明新的“最后更新”日期;法律要求时,我们会直接通知您。 +服务流量使用 HTTPS。账户无密码。登录凭据及团队 API 令牌以哈希保存,[保存期限](#retention)中的临时邮件任务除外。系统访问限于 {publisherName} 和[接收方](#sharing)。没有系统绝对安全。通过[安全页面](/zh-Hans/security#report)报告漏洞。 -## 联系方式 {#contact} +## 变更 {#changes} -如对隐私或本政策有疑问,请发送邮件至 [{email}](mailto:{email})。 +页面显示最后更新日期。旧版本保留在[公开网站仓库历史]({webGithub}/commits/main/resources/data/legal/en/privacy.md)。新用途开始前我们会更新本政策,依法直接通知,并在需要时重新征求同意。 diff --git a/resources/data/legal/zh-Hant/privacy.md b/resources/data/legal/zh-Hant/privacy.md index 9dea90ff..91c77967 100644 --- a/resources/data/legal/zh-Hant/privacy.md +++ b/resources/data/legal/zh-Hant/privacy.md @@ -1,281 +1,228 @@ --- -title: 隱私權政策 -description: TablePro App、網站與帳戶入口網站收集哪些資訊、傳送至何處、保存多久,以及如何變更或刪除。 -updatedAt: "2026-11-04" +title: 隱私政策 +description: TablePro 收集的資料、用途、接收方、儲存時間,以及您的選擇和權利。 +updatedAt: "2026-11-05" --- -本政策涵蓋 Mac 版 TablePro、iPhone 與 iPad 版 TablePro、位於 tablepro.app 的網站、位於 docs.tablepro.app 的文件,以及位於 account.tablepro.app 的帳戶入口網站。它描述各產品目前實際傳送和儲存的資訊。兩款 App 均採用 AGPLv3 開放原始碼,您可在 [TablePro 儲存庫]({github})中查看傳送下列資料的程式碼。 +本政策涵蓋 Mac、Linux、iPhone 和 iPad 上的 TablePro;tablepro.app;docs.tablepro.app;以及帳戶、購買、支援和郵件訂閱服務。[技術清單](https://docs.tablepro.app/security/privacy)列出欄位、端點和控制選項。App原始碼位於[公開倉庫]({github})。 ## 概要 {#summary} -- Mac App 會傳送使用資料。此功能預設開啟,可以關閉。iPhone 與 iPad App 僅在您開啟後傳送使用情況報告。 -- 登入 TablePro 帳戶或啟用授權金鑰後,Mac App 會將您的 Mac 連同名稱登記到我們的伺服器,並定期向伺服器核對您的方案。 -- 您執行的查詢、結果與密碼不會傳送給 TablePro。例外是您自行選擇發佈至 Team Library 的連線設定(從不包含密碼)與已儲存查詢。 -- AI 請求從 Mac App 直接傳送至您設定的 AI 供應商,不經過我們。 -- 從支援 TablePro 帳戶的版本起,Mac App 直接向我們位於歐盟的產品分析服務 PostHog 傳送使用資料,PostHog 因此會收到您的 Mac 的 IP 位址,並據此推算大致位置。更早的版本以及 iPhone 與 iPad App 將使用報告傳送到我們的伺服器,由伺服器轉送給 PostHog,不附帶 IP 位址。您的帳戶會保存對帳戶所做變更的日誌,例如登入和新裝置,並附有發起每項變更的請求的 IP 位址和瀏覽器。 -- 網站使用不設定 Cookie 的 Cloudflare Web Analytics 統計網頁瀏覽量。網站也載入 Google Analytics,但只有獲得您的允許才設定 Cookie。每個網頁還會載入線上聊天服務 Crisp,它會設定自己的 Cookie。 -- account.tablepro.app 上的帳戶入口網站不載入任何分析指令碼。它設定一個保持登入的 Cookie,您可以在其設定中下載帳戶資料或刪除帳戶。 -- 我們的郵件由 Amazon Web Services 旗下的 Amazon SES 寄送。電子報會記錄每位收件人何時開啟,以及點擊了其中哪些連結。 -- 購買由我們的 merchant of record {merchant} 負責銷售。 +普通查詢和結果在您的裝置與資料庫之間傳輸。使用資料不含 SQL、結果行或憑據。您主動釋出到 Team Library、傳送給支援或與 AI 及外部工具共享的內容會到達相應接收方。 -## 誰負責處理 {#controller} +Mac 和 Linux 預設開啟使用資料,可關閉。已發布的 iPhone 和 iPad App只在您同意後傳送報告。直接傳送的分析資料可關聯帳戶和購買記錄。關閉不會停止帳戶請求或伺服器分析。 -發佈 TablePro App 和本網站的{publisherCountry}{publisherCity}個人開發者 {publisherName} 是此處所述個人資料的責任方(資料控制者)。如對本政策或您的資料有疑問,請寄送郵件至 [{email}](mailto:{email})。 +網站統計訪問並在每頁載入 Crisp。Google Analytics Cookie 需要您的選擇。郵件訂閱測量開啟和點選。刪除帳戶仍會留下部分記錄,包括 PostHog 和 Crisp 中的資料。請閱讀[儲存期限](#retention)和[權利](#rights)。[控制者](#controller)也接受無帳戶的隱私請求。 -## Mac 版 TablePro {#mac-app} + -### 使用資料 {#mac-usage-report} +## 負責方 {#controller} -從支援 TablePro 帳戶的版本起,Mac App 直接向我們位於歐盟的產品分析服務 PostHog(`eu.i.posthog.com`)傳送使用資料。**此功能預設開啟,傳送第一個事件前不會徵求同意**。若要關閉,請進入**設定 > 一般 > 隱私**(Settings > General > Privacy)並取消勾選**分享使用資料**(Share usage data)。關閉期間,App 不向 PostHog 傳送任何內容;如果 App 啟動時該設定已關閉,則完全不會啟動 PostHog 的程式庫。 +{publisherName} 是位於 {publisherCity}、{publisherCountry} 的獨立開發者,也是本政策所述個人資料的控制者。聯絡 [{email}](mailto:{email})。我們沒有資料保護官。對於團隊,我們作為控制者管理帳戶、邀請和服務記錄。Team Library 釋出內容按團隊指示處理;團隊決定釋出什麼及誰能訪問。 -App 會在以下情況傳送事件: + -- 執行期間每天一次,附帶已開啟連線的資料庫類型名稱(如 PostgreSQL)與已開啟的連線數量; -- 首次嘗試連線、首次成功連線與首次執行查詢時,各附帶資料庫類型; -- App 提示某項付費功能無法使用時,每次執行 App 每項功能一次,附帶該功能與原因(例如未登入); -- 點按升級時,附帶您在 App 中點按的位置; -- 登入時,附帶登入方式(在 App 中登入、使用授權金鑰,或兌換 Mac 上已有的金鑰),以及登出時。 +## 收集的資料和目的 {#data-use} -PostHog 的程式庫會為每個事件加入 Mac 的機型、螢幕尺寸、時區與語言、是否使用 Wi-Fi、App 的版本、建置編號與 Bundle ID、macOS 版本、程式庫的版本以及隨機的工作階段 ID。PostHog 會隨每個請求收到您的 Mac 的 IP 位址,並據此推算大致位置,例如國家和城市。該設定開啟期間,程式庫也會從 PostHog 取得其設定與功能旗標(`eu-assets.i.posthog.com` 上的 `/config` 和 `eu.i.posthog.com` 上的 `/flags`)。 +對於歐洲經濟區和英國,各目的列明法律依據:合同(第 6(1)(b) 條)、合法利益(6(1)(f))、同意(6(1)(a))或法定義務(6(1)(c))。我們不做產生法律或類似重大影響的自動決策。 -登入之前,事件攜帶程式庫在您的 Mac 上產生的隨機 ID,PostHog 不會為其建立個人檔案。登入後,事件改為攜帶您的帳戶 ID,PostHog 中該帳戶的檔案保存 App 和 macOS 版本、處理器架構、App 語言以及 PostHog 根據 IP 位址推算的大致位置,藉此把您的安裝與登入和購買連結起來。登出後會改用新的隨機 ID。App 的使用資料不再包含機器 ID、授權啟用狀態或更新設定。 + -支援 TablePro 帳戶之前的版本則在同一設定下,於啟動約十秒後向 `api.tablepro.app` 傳送使用情況報告,之後在執行期間每天傳送一次。報告包含: +### 帳戶和裝置 {#account} -- 機器 ID:Mac 硬體 UUID 的 SHA-256 雜湊值(UUID 本身從不傳送); -- 平台、App 版本、macOS 版本、處理器架構與 App 語言; -- 已開啟連線的資料庫類型名稱(如 PostgreSQL)與已開啟的連線數量; -- 是否已啟用授權; -- 首次嘗試連線與首次成功連線的日期和時間; -- 更新設定(安裝方式及檢查頻率)。報告抵達時,我們的伺服器會捨棄這些設定。 +免費本地使用無需帳戶。帳戶服務需要電子郵箱。我們儲存姓名、語言、登入方式、授權、訂單、裝置、團隊角色及席位。Mac 和 Linux 裝置註冊傳送機器標識、裝置名、平臺及App/系統版本。裝置名可能包含您的姓名。此流程與使用資料分開。目的和依據是按合同提供帳戶與套餐。 -事件和報告都從不包含主機名稱、使用者名稱、密碼、查詢或列資料。 +登入使用郵件連結和驗證碼、通行金鑰或 Apple、GitHub、Google。通行金鑰記錄包括公鑰、名稱、同步狀態和使用日期。身份提供方給出 ID 和已驗證郵箱;Apple 還可能提供姓名。Apple 令牌加密儲存,在解綁或刪除帳戶時撤銷。帳戶變更記錄附帶 IP 和使用者代理。合法利益是保護帳戶及調查濫用。 -我們的伺服器既不保存報告,也不保存傳送報告的 IP 位址。伺服器將報告作為關於機器 ID 的事件轉送給 PostHog,附上 Cloudflare 為您的連線提供的國家,不附帶授權金鑰或 IP 位址;PostHog 不會據此建立個人檔案。由於您的帳戶以相同的機器 ID 記錄裝置,來自您登入過或啟用過授權的 Mac 的報告可與您的帳戶關聯。 +[帳戶門戶]({account})提供資料及登入方式修改、裝置管理、JSON 匯出和帳戶刪除。擁有含其他成員的團隊時不能刪除帳戶。刪除會終止訂閱,不退款。[儲存期限](#retention)說明保留內容。 -### 授權驗證 {#mac-license} +### 購買 {#purchases} -支援 TablePro 帳戶之前的版本僅在您輸入授權金鑰後連線至授權伺服器。它們會在啟用時、距上次驗證至少 {revalidateDays} 天後的啟動時,以及此後每隔 {revalidateDays} 天驗證。每次驗證傳送: +{merchant}(Polar Software, Inc.)是 merchant of record 和轉售商,按自己的條款收集姓名、郵箱、賬單地址及付款資訊,處理付款、稅務、收據和爭議。我們從不接收完整銀行卡資訊。 -- 授權金鑰; -- [使用資料](#mac-usage-report)中所述的機器 ID; -- macOS 中設定的 Mac 名稱(其中經常包含您的姓名); -- App 版本與 macOS 版本。 +我們為結賬、稅務和幣種傳送購買內容、語言、訪問來源及 IP。我們接收買方及賬單詳情、金額、訂單/訂閱 ID、續訂、取消和退款。訂單保留郵箱、賬單國家、金額及來源歸因。未登入購買會在必要時為該郵箱建立未驗證帳戶。取消原因和評論傳送至 {merchant} 並隨訂閱儲存。處理履行購買合同;稅務及會計記錄履行法定義務。缺少必要資訊無法結賬。在 [{merchant} 門戶]({portal})管理賬單;參閱[條款](/zh-Hant/terms)和[退款](/zh-Hant/refund-policy)。 -停用某台 Mac 時只傳送授權金鑰和機器 ID。 +### 團隊和共享內容 {#library} -伺服器將每台已啟用的 Mac 保存為持有授權的帳戶的裝置:包括機器 ID 和名稱、App 和 macOS 版本,以及最後一次聯絡伺服器的時間。啟用和停用 Mac 會連同請求的 IP 位址和使用者代理程式記錄在該帳戶的稽核日誌中;定期驗證不會記錄。帳戶入口網站按名稱列出您的裝置。如果無法連線至伺服器,付費功能可自上次成功驗證起繼續使用 {graceDays} 天。 +邀請人提供郵箱、角色及席位選擇。所有者和管理員檢視成員姓名/郵箱、邀請及團隊變更,包括受邀地址,但看不到審計 IP 或瀏覽器。成員檢視團隊、套餐、席位數及自己的角色。我們按合同使用這些記錄提供團隊服務。 -### TablePro 帳戶 {#mac-account} +在 Mac 釋出到 Team Library 會把連線設定和已儲存查詢上傳伺服器,供有許可權成員使用。設定包括主機、埠、資料庫、使用者名稱、SSH/SSL、啟動命令、Tunnel Command 和 AI 設定。查詢包括名稱、SQL、關鍵詞和資料夾。結構化密碼欄位被排除;SQL 或自由文字中輸入的秘密不會自動刪除。庫顯示最後修改者。退出團隊不會自動清除共享內容。參閱[刪除時間](#retention)。Team Catalog 則寫入您選擇的共享資料夾。 -從支援 TablePro 帳戶的版本起,您使用 [TablePro 帳戶](#account)而不是授權金鑰登入 Mac App。App 會在瀏覽器視窗中開啟登入頁面,您也可以在那裡輸入登入郵件中的代碼。登入後,App 將您的 Mac 登記為帳戶的裝置:上文所述的機器 ID、Mac 名稱、平台,以及 App 和 macOS 版本。之後,App 在執行期間每天從我們的伺服器取得一次以簽署檔案形式提供的方案;有了該檔案,付費功能在無法連線至伺服器時最多可繼續使用 {offlineDays} 天。保持 App 登入的權杖僅保存在該 Mac 的 macOS 鑰匙圈中,即使開啟了密碼同步,也不會透過 iCloud 鑰匙圈同步。 +### 使用和服務分析 {#analytics} -Mac 上已有的授權金鑰會一次性換成持有該金鑰的帳戶的登入,然後從 Mac 上刪除。您可以在 App 或帳戶入口網站中移除裝置;某台 Mac 首次使用您的授權時,我們會寄送郵件通知您。 +我們的合法利益是瞭解使用、修復問題及統計購買。Mac 和 Linux 傳送[App](#apps)中所述資料。伺服器也向 PostHog 傳送登入、購買、裝置和團隊事件,含帳戶 ID,不含姓名/郵箱。這些 ID 將App使用與服務活動關聯。開關停止App事件,不停止必要帳戶請求或伺服器事件。透過[權利](#rights)提出反對或刪除要求。 -### Team Library {#library} +### 訂閱郵件和電子郵件 {#newsletter} -Team Library 是 Team 授權的功能。當您在連線上選擇**分享 > 發佈到團隊庫…**(Share > Publish to Team Library…),或在 Favorites 側邊欄選擇**將已儲存的查詢發佈到團隊…**(Publish Saved Queries to Team…)時,Mac App 將您發佈的內容上傳至伺服器: +Amazon SES 傳送驗證碼、邀請、帳戶通知和訂閱郵件。服務郵件履行您請求的服務。新郵件訂閱需確認並基於同意。我們儲存地址、語言、註冊/確認時間、IP、使用者代理、註冊頁面及同意文字版本。 -- 連線設定:主機、連接埠、資料庫名稱、使用者名稱、SSH 和 SSL 設定、驅動程式選項、啟動指令、Tunnel Command 設定、Safe Mode 等級與 AI 設定,但絕不包含密碼; -- 已儲存查詢:名稱、SQL 文字、關鍵字與檔案夾。 +每封訂閱郵件透過圖片和 `links.news.tablepro.app` 測量每位收件人的開啟及點選。Amazon SES 接收時間、連結、IP 和使用者代理,再傳給伺服器統計。遮蔽圖片停止開啟測量,不停止點選測量。退訂及郵件連結不被跟蹤。沒有單獨的測量開關。透過郵件或郵件App的一鍵退訂停止接收;之後不發確認郵件。重新訂閱需確認。永久退信及垃圾郵件投訴會停止傳送。透過[聯絡](#controller)要求刪除地址。 -從支援 TablePro 帳戶的版本起,每位擁有席位的成員的 Mac App 會在啟動時、每 15 分鐘以及每次發佈後下載資源庫的變更。發佈時只傳送有變動的內容,並只刪除該 Mac 發佈過但已不再擁有的項目。如果其他人先修改了某個項目,App 會詢問要保留哪一份,並顯示每項團隊查詢的最後修改者。支援 TablePro 帳戶之前的版本在啟動時下載資源庫,最多每週一次;執行發佈的 Mac 會在發佈後立即重新下載。從這些版本再次發佈會取代先前發佈的內容。帳戶入口網站中的 Library 會向可讀取資源庫的成員顯示每個項目及最後修改者的姓名,擁有者和管理員可在其中刪除項目。已刪除的項目會連同其最後一個版本保留在我們的伺服器上,以便每台 Mac 同步刪除。授權結束後,資源庫仍保留在我們的伺服器上,直到團隊擁有者刪除團隊,資源庫也隨之刪除。 +舊伺服器名單中所有未退訂地址均已遷移,無論是否確認,包括買家、授權持有人和 beta 註冊者。已退訂地址保持退訂;退信/投訴地址進入抑制名單。參閱[儲存期限](#retention)。 -另一項 Team 功能 Team Catalog 會將不含密碼的連線檔案寫入您選擇的共用檔案夾,不經過我們的伺服器。 +### 支援 {#support} -### 更新與外掛程式 {#mac-updates} +您傳送的訊息、附件及診斷會到達我們和所用支援服務,其中可能包含您附上的資料庫內容或秘密。網站/門戶載入聊天時,Crisp 接收 IP、瀏覽器及瀏覽頁面。開始對話後保留 IP。我們提供頁面語言;門戶已登入時還提供帳戶郵箱和 ID。每頁載入聊天基於提供支援的合法利益。您發起的對話基於同意。 -- **更新檢查**。Mac App 每天從 GitHub(`raw.githubusercontent.com`)下載一次更新摘要。除所有網路請求都會帶有的 IP 位址和含 App 版本的 User-Agent 外,請求不會傳送其他 Mac 資訊。若要關閉,請進入**設定 > 一般 > 軟體更新**(Settings > General > Software Update)並取消勾選**自動檢查更新**(Automatically check for updates)。更新本身也從 GitHub 下載。 -- **外掛程式目錄**。App 啟動時與開啟外掛程式設定時,會從 GitHub 下載可用驅動程式和佈景主題清單。沒有關閉此行為的設定。您安裝的驅動程式和佈景主題從 GitHub 下載,外掛程式瀏覽器透過 GitHub API 取得下載次數。 +## 您的App {#apps} -GitHub 會隨這些請求收到您的 IP 位址,這些請求適用 GitHub 自身的隱私權聲明。 +| App和版本 | 使用資料 | 控制 | +| --- | --- | --- | +| Mac 0.86.0,從 0.86.0-beta.1 起 | 直接發往 PostHog;預設開啟 | Settings > General > Privacy | +| Linux 從 0.1.0-beta.1 起 | 直接發往 PostHog;預設開啟 | Preferences > General > Privacy | +| 已發布的 iPhone 和 iPad | 經伺服器報告;同意前關閉 | Settings > Privacy | -### 您選擇使用的服務 {#mac-third-parties} + -只有設定後,Mac App 才會直接向以下服務傳送資料,從不經過 TablePro: +### 裝置上的資料 {#local-data} -- **您的資料庫、SSH 伺服器與代理伺服器**接收連線向其傳送的資訊。 -- **AI 供應商**。加入供應商並使用 AI 助理或行內建議時,請求直接傳送給該供應商或 Mac 本機執行的模型。預設包含資料庫類型與名稱、結構中的資料表和欄位定義,以及目前查詢。僅在您開啟相應選項後才傳送結果列。適用供應商自身的條款。加入 GitHub Copilot 會從 npm 下載其語言伺服器,其「向 GitHub 傳送遙測資料」(Send telemetry to GitHub)設定預設開啟。 -- **登入服務**:連線使用時的 Microsoft Entra ID、Google、Amazon Web Services 和 Cloudflare Access。 -- **Apple Maps**:在地圖上顯示結果時提供地圖圖磚。 -- **DuckDB**:查詢首次使用某個擴充功能時提供該擴充功能。 -- **MCP 用戶端**。MCP 伺服器預設關閉。您開啟它,或已設定的 MCP 用戶端啟動 TablePro 橋接程式或與其配對時,它會啟動,且僅監聽 Mac 本機(127.0.0.1)。連線的 AI 用戶端(如 Claude 或 Cursor)接收其要求的結果,並依自身條款傳送至其服務。 -- **您加入的 MCP 伺服器**。AI 工作階段會將您核准的工具呼叫及其引數傳送至該伺服器。 +連線列表、查詢歷史、本地日誌和標籤頁留在裝置,除非您選擇共享。資料庫流量發往所選伺服器。密碼使用平臺憑據儲存。Mac 引用磁碟原位置的 SSH 金鑰。使用分析不含主機名、使用者名稱、SQL、行或憑據。[整合](#integrations)、Team Library 和支援有本文說明的例外。 -### 留在 Mac 上的資料 {#mac-local} +### Mac {#mac-app} -密碼保存在 macOS 鑰匙圈中。連線清單、查詢歷史、Query Insights、Data Rewind 快照、設定與開啟的分頁儲存在 Mac 上。App 參照磁碟上的 SSH 金鑰,不會複製它們。支援 TablePro 帳戶之前的版本不包含當機報告工具或第三方分析程式庫。從支援 TablePro 帳戶的版本起,App 包含 PostHog 的程式庫,用於傳送上文所述的使用資料。該程式庫包含 PostHog 的當機報告工具,但 App 讓它保持關閉,因此不會傳送當機報告。程式庫將其隨機 ID、設定與尚未傳送的事件儲存在 `~/Library/Application Support/com.TablePro` 下的檔案中。 +以下直接分析和帳戶行為從 0.86.0 開始,包括 0.86.0-beta.1。登入會註冊 Mac 並獲取套餐。帳戶令牌留在該 Mac 鑰匙圈,絕不透過 iCloud Keychain 同步。已有授權金鑰換成登入後在本地刪除。 -## iPhone 與 iPad 版 TablePro {#ios-app} +#### Mac 使用資料 {#mac-usage-report} -**除非您開啟分享使用資料(Share Usage Data),否則不會向 TablePro 傳送任何資訊**。您可在首次啟動時或之後的**設定 > 隱私權**(Settings > Privacy)中開啟。開啟後,App 每天向與支援 TablePro 帳戶之前的 Mac App 版本相同的伺服器傳送一次報告,伺服器以相同方式將報告轉送給 PostHog,不附帶其 IP 位址。報告包含 Apple 為裝置上的 App 分配的識別碼的 SHA-256 雜湊值、平台、App 和 iOS 版本、處理器架構、App 語言、已開啟連線的資料庫類型名稱、已開啟的連線數量,以及首次嘗試連線、首次成功連線與首次執行查詢的日期和時間。不包含更新設定,並一律回報未啟用授權,因為 App 沒有這兩項內容。 +預設開啟,傳送首個事件前不會詢問。在 **設定 > 一般 > 隱私 (Settings > General > Privacy)** 關閉 **分享使用資料 (Share usage data)**。關閉狀態啟動不會執行 PostHog 庫。不傳送自動崩潰報告;PostHog 崩潰捕獲被禁用。 -App 不會發起授權驗證、更新檢查或外掛程式請求。除選用報告外,它僅連線至您的資料庫和 SSH 伺服器、開啟 iCloud Sync 時的 Apple iCloud,以及 SQL Server 連線使用 Microsoft Entra ID 登入時的 Microsoft。 +事件涵蓋每日使用及開啟連線的型別/數量、首次嘗試連線、成功連線及首次執行查詢(按資料庫型別)、付費功能限制及原因、升級點選、登入方式/退出,以及授權購買提示的展示和回答。PostHog 新增裝置、螢幕、網路、會話、App和系統資訊,並接收 IP 推算大致位置。登入前使用隨機安裝 ID,不建個人檔案。登入後使用帳戶 ID,檔案含版本、架構、語言及推算位置。退出生成新隨機 ID。參閱[欄位和端點](https://docs.tablepro.app/security/privacy#usage-data)。 -在裝置上,密碼和貼上的 SSH 金鑰保存在鑰匙圈中,憑證從不同步。查詢歷史留在裝置上。連線會加入裝置的 Spotlight 索引,以便搜尋。查詢執行期間,除非您開啟**設定 > 即時動態 > 隱藏查詢**(Settings > Live Activities > Hide Query),其即時動態會在鎖定畫面和展開的動態島上顯示 SQL。 +#### 更新和外掛 {#mac-updates} -如果您在 iPhone 或 iPad 設定中選擇與 App 開發者共享分析資料,Apple 可能透過 App Store Connect 向我們提供當機報告和使用統計。App 本身沒有當機報告工具或第三方分析程式庫。 +App透過 updates.tablepro.app 從 GitHub 獲取更新源和外掛目錄。下載及下載計數也訪問 GitHub。請求帶 IP 和使用者代理。在 **設定 > 一般 > 軟體更新 (Settings > General > Software Update)** 關閉 **自動檢查更新 (Automatically check for updates)** 可停止自動檢查。外掛目錄沒有關閉選項。[技術說明](https://docs.tablepro.app/security/privacy#update-checks)也列出舊版本更新源。 -## iCloud Sync 與接力 {#icloud} +#### 較早的 Mac 版本 {#mac-license} -iCloud Sync 在 Mac、iPhone 與 iPad 上均預設關閉,直到您開啟。開啟後,紀錄會傳送至您自己 iCloud 帳戶內的私有資料庫(容器 `iCloud.com.TablePro`)。TablePro 無法讀取它們。 +0.86.0 前,同一預設開啟的開關控制傳送至伺服器的報告。包含機器 ID 雜湊、系統/App詳情、連線型別/數量、授權狀態、首次嘗試及成功日期。更新設定會傳送,但伺服器丟棄。當前伺服器附 Cloudflare 國家資訊轉發 PostHog,不帶 IP 或授權金鑰,不建立個人檔案。機器 ID 可關聯帳戶裝置。目前不儲存專門的心跳歷史,但任務、日誌、備份和舊檔案可能保留資料。參閱[儲存期限](#retention)。 -- 在 Mac 上,您可選擇同步連線、群組與標籤、設定、SSH 設定檔、認證資料設定檔(名稱和使用者名稱,從不包含密碼)、資料表和資料庫喜好項目、已儲存查詢(包括 SQL 文字)以及資料表檔案夾。連線紀錄包含主機、連接埠、使用者名稱、資料庫名稱、SSH 和 SSL 設定、啟動指令、連線前指令碼與 AI 規則。查詢歷史、Data Rewind 快照和密碼來源從不同步。 -- iPhone 與 iPad 同步連線、群組和標籤。 -- 密碼僅在您同時開啟 Mac 上 Sync Categories 中的**密碼**(Passwords),或 iPhone 與 iPad 上的**同步密碼**(Sync Passwords)後同步,使用 iCloud 鑰匙圈。在 Mac 上,這也會同步 TablePro 保存在鑰匙圈中的其他機密資訊,例如 AI 供應商金鑰和授權金鑰。從支援 TablePro 帳戶的版本起,授權金鑰在兌換為登入後即被刪除,保持 App 登入的權杖也從不同步。 +舊版僅在輸入金鑰後訪問授權服務。檢查傳送金鑰、機器 ID、Mac 名及版本。裝置記錄屬於帳戶;啟用/停用審計附 IP 和使用者代理。[技術清單](https://docs.tablepro.app/security/privacy#older-mac-reports)列出欄位與時間。 -Mac 上的 iCloud Sync 屬於 Pro 或 Team 授權功能,在 iPhone 與 iPad 上免費。 +### iPhone 和 iPad {#ios-app} -接力透過 Apple 在您的裝置之間傳遞目前連線的 ID 和開啟的資料表名稱。沒有開啟資料表時,傳遞連線名稱;連線沒有名稱時則傳遞主機。不會傳送設定或認證資料。 +已發布App在首次啟動或 **設定 > 隱私權 (Settings > Privacy)** 啟用 **分享使用資料 (Share Usage Data)** 前不傳送使用報告。依據為同意。每日報告經伺服器向 PostHog 轉發,不含 IP,附 Cloudflare 國家且無個人檔案。包含 Apple 裝置標識雜湊、平臺、版本、架構、語言、連線型別/數量及首次嘗試、成功和首次執行查詢的日期。始終報告無授權;無更新設定。App不檢查帳戶、授權、更新或外掛。 -## 網站 {#website} +資料庫/SSH、可選 iCloud 及 SQL Server 的 Microsoft Entra 登入會向相應服務發資料。密碼和貼上的 SSH 金鑰在鑰匙圈;證書和歷史在裝置。連線加入本地 Spotlight 索引。執行中查詢的 Live Activity 可在鎖定畫面顯示 SQL,除非開啟 Hide Query。另有 Apple 的 Share With App Developers 設定,可透過 App Store Connect 向我們提供崩潰報告及統計。App本身無崩潰報告器或第三方分析庫。參閱 [iOS](https://docs.tablepro.app/ios#privacy)。 -**託管**。網站和帳戶入口網站執行於我們的伺服器上,由 Cloudflare 提供前端服務。與任何網頁伺服器一樣,它們會收到您的 IP 位址、瀏覽器 User-Agent 和請求的每個網頁網址。 +### Linux {#linux-app} -**Cloudflare Web Analytics**。Cloudflare 在網站網頁中加入 Web Analytics 指令碼;帳戶入口網站不執行該指令碼。瀏覽器從 `static.cloudflareinsights.com` 載入它,每次瀏覽網頁都會向 Cloudflare 回報網頁、連結來源網站、載入耗時,以及瀏覽器、作業系統和裝置類型。Cloudflare 會補充連線所屬國家。指令碼不設定 Cookie,也不在瀏覽器中保存資訊;Cloudflare 聲明不會使用 IP 位址或瀏覽器資訊對您進行指紋識別。Cloudflare 向我們提供網頁或國家的瀏覽量等彙總資料,不提供每位訪客的紀錄。合法依據:正當利益。 +從 0.1.0-beta.1 起,登入按[帳戶](#account)所述註冊裝置。秘密使用桌面金鑰環。包管理器更新遵循所選分發方設定。App不自動上傳崩潰報告。 -**Google Analytics**。網站在每個網頁以 Consent Mode 載入 Google Analytics。在您於 Cookie 提問中選擇**允許**之前,它不設定 Cookie,僅為每個網頁向 Google 傳送無 Cookie 訊號,不在裝置上儲存識別碼。允許後,Google Analytics 設定 `_ga` 和 `_ga_` Cookie,統計網頁瀏覽、下載點擊和開始結帳等造訪行為。廣告儲存、廣告個人化和廣告使用者資料始終被拒絕。Google 聲明 Google Analytics 4 不記錄或儲存 IP 位址。我們的 Google Analytics 資源使用 Google 預設保留期:使用者層級與事件層級資料收集後兩個月由 Google 刪除。保存彙總而非識別碼的標準報表不受影響。合法依據:您對 Cookie 的同意。 +#### Linux 使用資料 {#linux-usage-data} -**線上聊天**。網站和帳戶入口網站的每個網頁都顯示聊天供應商 Crisp 的按鈕。網頁載入完成後,瀏覽器從 `client.crisp.chat` 載入 Crisp 指令碼,Crisp 會設定 [Cookie 與瀏覽器儲存空間](#cookies)中所述的 Cookie。Crisp 收到 IP 位址、瀏覽器資訊、瀏覽的網頁網址和您撰寫的訊息,並在您開始對話後保留 IP 位址。我們向 Crisp 提供網頁語言。您登入帳戶入口網站時,我們也會向 Crisp 提供您帳戶的電子郵件地址和帳戶 ID,以便將對話與您的帳戶關聯。我們不向 Crisp 提供您的其他資訊。Crisp 位於法國。 +從 0.1.0-beta.1 預設開啟。在 Preferences > General > Privacy 關閉 Share usage data。事件直接到 PostHog EU:每日使用及連線型別/數量、首次嘗試/成功及按型別的首次查詢、登入/退出、升級點選、授權提示展示及 Buy 回答。附安裝/帳戶 ID、版本、架構、介面語言及 SDK 中繼資料。PostHog 接收 IP 並推算位置。登入前隨機 ID,無個人檔案;之後帳戶檔案關聯使用和購買。退出重置 ID。事件不含主機名、SQL、行或憑據。裝置註冊另外包含主機名。 -**結帳指令碼**。當您將指標移至購買按鈕或用 Tab 鍵聚焦時,瀏覽器從 jsDelivr(`cdn.jsdelivr.net`)載入 {merchant} 的結帳指令碼。jsDelivr 會收到 IP 位址和瀏覽器資訊。只有點按後,結帳頁面才從 {merchant} 開啟。 +關閉停止新傳送,已在途請求可能完成。不會清除舊事件或停止帳戶請求/伺服器分析。參閱[儲存期限](#retention)、[權利](#rights)及[技術清單](https://docs.tablepro.app/security/privacy#linux-usage-data)。 -**電子報驗證**。當您開始填寫電子報訂閱表單時,瀏覽器會從 `challenges.cloudflare.com` 載入 Cloudflare Turnstile,以確認訂閱者是真人;Cloudflare 會收到您的 IP 位址和瀏覽器資訊。 + -**購買歸因**。首次造訪網站時,瀏覽器在本機儲存空間保存名為 `tablepro:attribution` 的首次造訪紀錄,期限為 90 天:造訪來源(所點按連結中的 `ref` 或 `utm_*` 標籤,或來源網站)、進入的網頁和時間。開始購買時,該紀錄隨結帳請求傳送。我們的伺服器將造訪來源作為結帳中繼資料傳給 {merchant},在您付款後與訂單一起保存,並隨結帳和付款事件傳送給 PostHog。進入的網頁和時間不會保存。 +## 您選擇的服務 {#integrations} -**文件**。位於 docs.tablepro.app 的文件由 Mintlify 代管。每開啟一頁,Mintlify 都會收到您的 IP 位址和瀏覽器資訊;頁面從 Google Fonts 載入字型。導覽列顯示儲存庫的星標數,由您的瀏覽器從 GitHub 的 API 取得,因此 GitHub 也會收到您的 IP 位址和瀏覽器資訊。這項要求不會設定 Cookie。文件無法讀取您在本網站的回答,因此會另外提出 Cookie 問題。在您於文件中選擇 **Allow** 之前,它不設定 Cookie,也不保存訪客 ID。允許後,Google Analytics 設定 `_ga` 和 `_ga_` Cookie 並統計您對文件的造訪,Mintlify 則在本機儲存空間保存一個隨機訪客 ID `mintlify_anonymous_id` 用於計數。文件頁尾的 **Cookie settings** 可變更您的回答;拒絕後兩者都會被刪除。合法依據:您的同意。 +資料庫、SSH 和代理提供方直接接收您要求的流量。配置後的連線登入服務接收認證請求。Apple Maps 提供地圖圖塊;DuckDB 提供查詢用擴充套件。下載的連線/AI 輔助程式訪問其提供方。各自條款適用。 -**語言與地區折扣**。當您的瀏覽器語言中沒有本網站提供的語言時,為向您建議相應語言的網頁,並顯示結帳時將適用的地區折扣,網站會向 Cloudflare(`/cdn-cgi/trace`)和我們的伺服器詢問您的連線來自哪個國家或地區,並可能讀取裝置的時區。這兩項請求都不攜帶 Cookie,網頁也不會保存任何回應內容。合法依據:正當利益。 +### iCloud 和 Handoff {#icloud} -僅閱讀網站不會設定網站自身的 Cookie。公開網站的電子報訂閱、結帳和折扣碼請求不攜帶憑證,因此既不會傳送帳戶入口網站 Cookie,也不會接受回應中的 Cookie。開啟帳戶入口網站頁面是另一項操作:在入口網站登入會設定以下入口網站 Cookie。網站在瀏覽器中保存的全部資訊列於 [Cookie 與瀏覽器儲存空間](#cookies)。 +可選 iCloud Sync 將連線、分組、標籤、設定、查詢及 SSH 配置存入私人 CloudKit。 在 Mac 上,還會同步資料表和資料庫的喜好項目與資料夾,以及認證設定檔的名稱、使用者名稱和密碼模式,不含設定檔中的密碼。Apple 託管,我們無法讀取。密碼同步單獨控制,預設關閉,使用端到端加密 iCloud Keychain。Mac 上也適用於寫入同一儲存的其他秘密,如 AI 金鑰及舊授權金鑰。帳戶令牌從不同步。Mac 需 Pro 或 Team;iOS 免費。Handoff 在 Apple 裝置間傳連線 ID 和表名,無表時傳連線名/主機,不傳憑據。參閱[控制](https://docs.tablepro.app/features/icloud-sync)。 -## 購買 {#purchases} +### AI 和外部工具 {#ai-tools} -授權由 merchant of record 與經銷商 {merchant}(Polar Software, Inc.)銷售。您依據 {merchant} 的購買者條款和隱私權政策購買。{merchant} 負責收款、計算並繳納銷售稅或加值稅、寄送收據和發票,並處理付款問題和爭議。它收集姓名、電子郵件地址、帳單地址和付款資訊。我們不會看到完整信用卡資訊。 +AI 請求直接發往所選提供方或本地模型,可能包含提示、結構、SQL 和對話。附加網格結果行預設關閉。獲准的 AI 查詢工具返回的結果也進入對話並傳送至提供方,不受附加開關限制。GitHub Copilot 從 npm 下載輔助程式,初始開啟向 GitHub 傳送遙測資料 (Send telemetry to GitHub)。 -開始結帳時,我們的伺服器會告知 {merchant} 您購買的內容、購買頁面的語言、造訪來源(參閱[網站](#website))以及您的 IP 位址,{merchant} 用 IP 位址決定稅金和幣別。我們從 {merchant} 收到您的電子郵件地址、您輸入的姓名和帳單地址、購買內容、金額、訂單及訂閱 ID,以及之後的續訂、取消和退款等變更。每筆訂單都會保存電子郵件地址、帳單國家和金額。 +MCP 預設關閉,禁用時無法啟動,包括橋接和配對請求。啟用後,已認證客戶端可按授權請求資料。AI 客戶端可將結果發至自己的服務。外部 MCP 伺服器接收已批准的工具引數。參閱 [AI/MCP 控制](https://docs.tablepro.app/security/privacy#ai-providers)。 -未登入時的購買會歸入購買所用電子郵件地址的 TablePro 帳戶;若沒有該帳戶則會新建,並在您首次登入前保持未驗證狀態。在[帳戶入口網站]({account})中,您可以變更訂閱的計費週期或席位數、取消或恢復訂閱,以及申請退款。取消時,您選擇的原因和填寫的備註會傳送給 {merchant},並與訂閱一起保存。信用卡、發票、稅務資訊和帳單地址位於 [{merchant} 客戶入口網站]({portal}),可從帳戶入口網站直接開啟。退款詳情請參閱[退款政策](/zh-Hant/refund-policy),授權的使用範圍請參閱[服務條款](/zh-Hant/terms)。 +## 網站和瀏覽器儲存 {#website} -## 帳戶入口網站 {#account} +伺服器及 Cloudflare 接收 IP、使用者代理和頁面請求。Cloudflare Web Analytics 統計瀏覽、來源、載入時間、瀏覽器/系統/裝置類別及國家,不使用瀏覽器儲存或指紋。合法利益是瞭解和維護網站。 -您可以在 account.tablepro.app 的[帳戶入口網站]({account})中管理 TablePro 帳戶的授權、裝置、帳單和團隊。它與網站一樣,執行在 Cloudflare 之後的我們的伺服器上。 +Google Analytics 以 Consent Mode 載入。在 Allow 前傳送無 Cookie、無已存裝置 ID 的頁面訊號。同意後啟用 Cookie 及訪問、下載、結賬測量。廣告儲存、個性化及廣告使用者資料始終拒絕。Google 表示 GA4 不儲存 IP。 -**您的帳戶**。每個帳戶屬於一個人,以電子郵件地址識別。帳戶包含該地址、您設定的姓名和語言、您的登入方式、已登入的裝置、您的授權和訂單、您所在的團隊及您的角色和席位,以及記錄帳戶變更的稽核日誌,例如登入、新裝置和團隊變更,並附有發起每項變更的請求的 IP 位址和瀏覽器。我們的郵件使用您帳戶的語言。 +Crisp 在網站/門戶每頁載入,見[支援](#support)。指向或 Tab 到 Buy 會從 jsDelivr 載入 {merchant} 指令碼,向其提供 IP/瀏覽器;點選才開啟結賬。開始訂閱表單會載入 Turnstile 防濫用,依據合法利益。國家查詢和時區用於語言/地區優惠建議,依據合法利益;請求無 Cookie,頁面不儲存回答。 -**登入**。我們透過郵件寄送一個連結和一個 6 位數代碼:連結只能使用一次,代碼可嘗試 5 次,兩者均在 15 分鐘後失效。您也可以新增通行密鑰;對每個通行密鑰,我們保存其公鑰、您設定的名稱、是否在您的裝置之間同步,以及新增時間和最近使用時間。您還可以使用 Apple、GitHub 或 Google 登入:提供者會告知我們您的 ID 和已驗證的電子郵件地址,Apple 首次還會提供您的姓名。我們將 ID 和地址與您的帳戶一起保存;對於 Apple,還會加密保存一個權杖,並在您解除 Apple 連結或刪除帳戶時向 Apple 撤銷該權杖。如果提供者的地址屬於既有帳戶,我們會在連結前向該帳戶寄送確認連結和代碼,但由 Google 管理的地址(Gmail 或 Google Workspace)除外。 +首次訪問建立 `tablepro:attribution`,儲存 90 天:標籤/來源、著陸頁和日期。結賬時伺服器將來源作為中繼資料傳給 {merchant},隨訂單儲存,並隨結賬/付款事件發給 PostHog。著陸頁和日期不保留。依據是衡量購買來源的合法利益。公開訂閱、結賬和優惠請求省略憑據,不設門戶 Cookie。門戶無分析指令碼,但伺服器傳送服務事件。 -**團隊**。邀請他人加入團隊時,我們會保存其電子郵件地址、角色以及邀請是否包含席位,並寄送一個 7 天內有效的連結。擁有者和管理員可以看到團隊成員的姓名和電子郵件地址、邀請,以及團隊的稽核日誌;稽核日誌顯示團隊中誰變更了什麼(包括受邀地址),但從不顯示 IP 位址或瀏覽器。成員可以看到團隊、其方案、席位數以及自己的角色。 +### 文件網站 {#docs} -**您的資料**。在設定中,您可以變更姓名、電子郵件地址和語言,新增和移除登入方式,以 JSON 檔案下載帳戶資料,以及刪除帳戶。當您是仍有其他成員的團隊的擁有者時,無法刪除帳戶。刪除帳戶會移除您的登入方式、裝置、授權、團隊成員身分以及只有您一人的團隊,刪除您電子郵件地址的電子報訂閱,並終止您的訂閱且不退款。刪除後保留的內容請參閱[資料保留期限](#retention)。 +Mintlify 託管 docs.tablepro.app。頁面、Google Fonts 和 GitHub 星標請求向這些提供方披露 IP/瀏覽器。文件單獨詢問分析同意。Allow 前不儲存分析 Cookie 或訪客 ID。Allow 啟用 Google Analytics 和 Mintlify ID。文件頁尾 Cookie settings 可撤回並刪除它們。主站選擇不會跨到此來源。 -**入口網站載入的內容**。入口網站不載入 Google Analytics、Cloudflare Web Analytics 或任何其他分析指令碼,也不詢問 Cookie 設定。入口網站顯示[網站](#website)一節所述的 Crisp 線上聊天;在入口網站中購買時,{merchant} 的結帳頁面會在網頁上方開啟。 +### Cookie 和儲存 {#cookies} -## 電子報 {#newsletter} +Cloudflare Web Analytics 不在瀏覽器儲存內容。公開頁面不設第一方 Cookie。以下儲存期限與提供方保留期不同。必要儲存維持登入或選擇;同意和合法利益用途列在此處。 -訂閱版本說明時,我們先以訂閱頁面的語言寄送確認連結。連結 7 天內有效,同一地址每天最多收到 3 封。確認後,您的地址會連同該語言加入我們伺服器上的電子報名單。對於訂閱和確認,我們分別記錄發生時間、來源 IP 位址和瀏覽器、您訂閱時所在的頁面,以及您同意的文字版本。表單由 Cloudflare Turnstile 驗證,詳見[網站](#website)。 +| 名稱/服務 | 目的與觸發 | 期限與控制 | +| --- | --- | --- | +| `_ga`, `_ga_` | 同意後的 Google Analytics | 最長 2 年;拒絕即刪除 | +| `tablepro:analytics-consent` | 必要的選擇記錄,網站/文件各自儲存 | 直到清除 | +| `tablepro:attribution` | 隨結賬傳送首次來源;合法利益 | 90 天 | +| `theme`, `tablepro:language`, `tablepro:campaign-closed` | 外觀、所選/忽略語言、已關閉促銷;合法利益 | 直到清除;門戶主題獨立 | +| `mintlify_anonymous_id` | 文件訪客 ID,在該處同意後 | 直到清除或拒絕 | +| `crisp-client/` Cookie | 每頁載入後的聊天延續;合法利益 | 6 個月,返回續期 | +| `__Host-tp_session` | 必要門戶登入 | 登入後 30 天;登入過程最多 10 分鐘;退出刪除 | +| `locale`, `context`, `sign-in-return-to` | 門戶語言、Personal/團隊檢視、返回頁;合法利益 | 前兩項直到清除;返回頁 15 分鐘 | -每封電子報都會記錄所有收件人的開啟和點擊。電子報中含有一張小圖片,其中的連結會經過 `links.news.tablepro.app`。當您的郵件用戶端載入該圖片或您開啟某個連結時,Amazon SES 會記錄開啟或點擊的時間和所點擊的連結,以及您的郵件用戶端傳送的 IP 位址和使用者代理程式,並轉給我們的伺服器,由伺服器統計每封電子報的開啟次數和點擊次數。不載入圖片的郵件用戶端不會記錄開啟。取消訂閱連結和用於撰寫新郵件的連結不會被追蹤。 - -每封電子報都附有取消訂閱連結,開啟後會顯示帶有取消訂閱按鈕的頁面;郵件也帶有可讓您的郵件 App 一鍵取消訂閱的郵件標頭。取消訂閱後,我們不再寄送電子報,也不會寄送確認取消訂閱的郵件;如需重新訂閱,需要再次確認。將電子報標記為垃圾郵件也會取消訂閱,寄往您地址的郵件一旦被永久退回,我們就停止向該地址寄送。若還希望刪除地址,請寄送郵件給我們,或刪除使用該地址的 TablePro 帳戶。 - -從先前的伺服器移轉時,其郵件名單中所有未取消訂閱的地址,無論是否確認過,都以已訂閱狀態加入了此名單:該伺服器也曾加入購買者、授權持有者和 Beta 報名者的地址,並寄送郵件給他們。已取消訂閱的地址以取消訂閱狀態移轉,郵件曾被退回或被標記為垃圾郵件的地址則改為加入我們的封鎖名單,因此不會收到任何電子報。 - -## Cookie 與瀏覽器儲存空間 {#cookies} - -僅閱讀公開網站不會設定網站自身的 Cookie。電子報訂閱、結帳和折扣碼請求不攜帶憑證,也不會設定入口網站 Cookie。登入帳戶入口網站或開始登入時,會設定以下唯一一個絕對必要的入口網站 Cookie。Cloudflare Web Analytics 不設定 Cookie,也不在瀏覽器中儲存資訊。Google Analytics Cookie 在您允許之前不會設定。Crisp 在聊天載入後為每個網頁設定 Cookie。此處的資訊不用於廣告,也不會出售。 - -- **`_ga` 和 `_ga_`**(Google Analytics Cookie,最長兩年,僅在允許分析時):瀏覽器的隨機識別碼及目前造訪狀態。拒絕或之後變更回答時會刪除。合法依據:同意。 -- **`tablepro:analytics-consent`**(本機儲存空間,直至您清除):保存對分析提問的回答,避免每個網頁重複詢問。帳戶入口網站不進行分析,因此不會詢問此問題,也不讀取回答。合法依據:履行您的選擇所絕對必要。 -- **`tablepro:attribution`**(本機儲存空間,90 天):[網站](#website)一節所述的首次造訪紀錄。不包含您的識別碼,僅隨結帳請求傳送,伺服器會將造訪來源傳給 {merchant}。合法依據:正當利益。 -- **`theme`**(本機儲存空間,直至您清除):保存所選淺色、深色或系統外觀。帳戶入口網站另外保存自己的選擇。合法依據:正當利益。 -- **`tablepro:language`**(本機儲存空間,直至您清除):保存您在語言選單或語言列中選擇的語言,以及您關閉過建議的語言,以免再次建議。合法依據:正當利益。 -- **`tablepro:campaign-closed`**(本機儲存空間,直至您清除):保存您關閉了頁首上方通知的那次優惠活動,讓該通知在活動結束前在每個頁面上都維持關閉。合法依據:正當利益。 -- **`mintlify_anonymous_id`**(docs.tablepro.app 的本機儲存空間,由 Mintlify 設定,僅在您於文件中允許 Google Analytics 時):[網站](#website)一節所述的訪客 ID。拒絕後即刪除。文件另外保存自己的 `tablepro:analytics-consent` 回答。合法依據:同意。 -- **以 `crisp-client/` 開頭的 Cookie**(Crisp,例如 `crisp-client/session/…`;六個月,再次造訪時延長;聊天載入後每個網頁都會設定):在網頁和造訪之間保持聊天與對話。合法依據:為每個網頁提供支援的正當利益。 -- **`__Host-tp_session`**(帳戶入口網站 Cookie,自登入起 30 天):保持登入狀態。登入前,僅在透過通行密鑰、Apple、GitHub、Google 或 App 登入的過程中設定,最長 10 分鐘。登出會刪除它。公開網站的電子報訂閱、結帳和折扣碼請求不攜帶憑證,也從不會收到它。合法依據:絕對必要。 -- **`locale`、`context` 和 `sign-in-return-to`**(帳戶入口網站本機儲存空間):登入前在入口網站中選擇的語言、最近開啟的是個人還是某個團隊(兩者均保存至您清除為止),以及開啟郵件中的登入連結後要返回的頁面(15 分鐘)。合法依據:正當利益。 - -您可隨時透過每頁頁尾的 **Cookie 設定**或以下入口變更、撤回分析回答: +在頁尾 Cookie settings 或此處更改分析同意: -## 合法依據 {#lawful-basis} +## 接收方 {#sharing} -對於歐洲經濟區和英國的讀者,GDPR 與 UK GDPR 下的合法依據為: +| 接收方 | 資料與目的 | +| --- | --- | +| [OVH]({ovhPrivacy}) | 伺服器及服務記錄託管 | +| [Cloudflare]({cloudflarePrivacy}) | DNS/代理、R2/備份、Turnstile、Cloudflare Web Analytics | +| [Amazon Web Services]({awsPrivacy}) | Amazon SES 郵件、投遞及互動;CloudFront 連結、SNS/SQS 事件 | +| [PostHog EU]({posthogPrivacy}) | App/伺服器分析;帳戶 ID,無姓名/郵箱;直接請求含 IP | +| [{merchant}]({merchantPrivacy}) | 獨立 merchant of record;結賬、賬單及購買 | +| [Crisp]({crispPrivacy}) | 聊天、瀏覽器/頁面及已登入帳戶身份 | +| [Google]({googlePrivacy}) | 網站/文件分析及字型;所選帳戶登入 | +| [Mintlify]({mintlifyPrivacy}) | 文件託管和獲同意的測量 | +| [GitHub]({githubPrivacy}) | 下載、更新、外掛、星標、公開 issue 和可選登入 | +| [Apple]({applePrivacy}) | 可選登入;App/整合所述服務及診斷 | +| [jsDelivr]({jsdelivrPrivacy}) | 結賬指令碼請求含 IP/瀏覽器 | -- **契約**(第 6 條第 1 款 (b)):授權銷售和提供、您的帳戶及其登入方式和裝置、授權驗證、帳戶入口網站和 Team Library。 -- **正當利益**(第 6 條第 1 款 (f)):Mac App 使用資料及其在 PostHog 中的分析、我們的伺服器傳送給 PostHog 的關於登入、購買、裝置和團隊的事件、帳戶稽核日誌、安全和濫用防範(包括電子報表單上的 Cloudflare Turnstile)、伺服器日誌、Cloudflare Web Analytics、購買歸因紀錄、為語言與地區折扣進行的國家查詢,以及每個網頁的線上聊天。 -- **同意**(第 6 條第 1 款 (a)):Google Analytics Cookie、iPhone 與 iPad App 使用報告、電子報和您主動發起的線上聊天。 -- **法律義務**(第 6 條第 1 款 (c)):稅務與會計紀錄,以及對合法請求的回應。 +團隊成員按角色接收共享內容及帳戶詳情。整合接收您指定傳送的資料。我們不出售個人資料或為廣告共享。其他披露僅在法律要求時進行。提供方自己的政策也適用。 -## 資料接收方 {#sharing} +## 處理地點 {#transfers} -我們僅向營運 TablePro 所需的服務分享個人資料: +OVH 伺服器和 Amazon SES 在新加坡(SES 為 `ap-southeast-1`)。PostHog 在歐盟。Crisp 總部在法國。{publisherName} 從越南運營。美國提供方,包括 {merchant}、Google、GitHub、Cloudflare、Amazon Web Services 和 Mintlify,在美國處理資料。儲存和備份可能涉及其他國家。所需 EEA/英國保障依賴各提供方的標準合同條款或其他批准機制;Google 也使用 EU-US Data Privacy Framework。透過[聯絡](#controller)查詢保障詳情。 -- **{merchant}**:購買交易的 merchant of record。 -- **Amazon Web Services**:透過 Amazon SES 從其亞太區域(新加坡)寄送我們的郵件,包括登入連結和代碼、團隊邀請、帳戶和安全通知以及電子報。郵件送達、被退回或被標記為垃圾郵件時,它會通知我們;我們會記錄退回和垃圾郵件檢舉,以停止向這些地址寄送。對於電子報,它也會通知每次開啟和點擊,詳見[電子報](#newsletter)。 -- **託管服務商及 Cloudflare**:執行網站、帳戶入口網站和 App 連線的伺服器。Cloudflare 也透過 Web Analytics 統計網頁瀏覽量,並用 Turnstile 驗證電子報表單。 -- **Google**:網站和文件中的 Google Analytics。 -- **Crisp**:網站和帳戶入口網站每個網頁的線上聊天。 -- **PostHog**(EU Cloud):我們的產品分析服務,接收 App 的使用報告,以及我們的伺服器關於登入、購買、裝置和團隊的事件,附帶您的帳戶 ID,但從不包含您的電子郵件地址或姓名。Mac App 直接傳送的使用資料抵達 PostHog 時附帶您的 Mac 的 IP 位址。 -- **Apple、GitHub 和 Google**:在您使用它們登入帳戶時。 -- **jsDelivr**:在指標移至購買按鈕時向瀏覽器提供 {merchant} 的結帳指令碼。 -- **Mintlify**:代管位於 docs.tablepro.app 的文件。 -- **GitHub**:託管更新摘要、外掛程式目錄和下載內容,並提供文件顯示的星標數。 +## 儲存期限 {#retention} -我們不出售個人資料,也不與廣告商分享。 +表中註明未設期限的專案確實沒有期限。刪除帳戶不會刪除 PostHog 或 Crisp 資料。透過[聯絡](#controller)發郵件,我們會按請求在這些提供方刪除。 -## 國際傳輸 {#transfers} +| 記錄 | 儲存與刪除 | +| --- | --- | +| PostHog 分析 | 未設期限。關閉仍保留舊事件。可請求刪除。 | +| 處理任務和伺服器日誌 | 任務在傳送/重試期間可能儲存報告。日誌用於安全及排錯。未設總體期限,不承諾無伺服器副本。 | +| 裝置 | 包括已移除裝置,保留至刪除帳戶 | +| 帳戶和審計 | 刪除帳戶、登入方式、裝置、授權及成員關係。審計無期限保留;移除郵箱欄位及操作者 IP/使用者代理,但自由文字內地址可能仍在。 | +| 訂單和提供方通知 | 稅務/會計訂單未設期限。刪除移除帳戶/郵箱關聯。{merchant}、Amazon SES 和 Apple 事件保留;清理被刪帳戶的購買個人資訊、郵件收件人/互動詳情。 | +| Team Library | 已刪專案保留最後版本用於同步。普通刪除團隊後 30 天刪庫,期間可恢復。刪除唯一所有者帳戶立即刪團隊和庫。授權結束不刪庫。 | +| 認證 | 連結/驗證碼 15 分鐘過期,7 天后刪除。門戶會話 30 天。App令牌末次使用 90 天后過期,再過 30 天刪除。郵件任務儲存明文直到清理:傳送後一天或放棄傳送後 7 天。 | +| 郵件訂閱 | 新未確認地址 30 天后刪除。已確認/遷移地址到請求刪除或同郵箱帳戶刪除為止。退訂仍保留地址並標為退訂。 | +| 抑制名單 | 退信/投訴地址及首次/末次日期在帳戶/訂閱刪除後仍保留,以阻止再發。未設期限。 | +| Google Analytics | 使用者/事件資料 2 個月;彙總標準報告另計 | +| Cloudflare Web Analytics | 我們可檢視最近六個月瀏覽總數 | +| 支援 | Crisp 對話和郵箱訊息保留至刪除,包括按請求刪除。未設期限。 | +| 備份和遷移檔案 | 未設期限。刪帳戶不刪副本。舊完整資料庫含姓名/郵箱、授權、訂單、團隊、裝置名、訂閱者、beta 註冊、郵件、使用報告及帶 IP 的授權日誌。 | -以上服務在多個國家營運,因此您的資料可能在居住國之外處理。{merchant}、Google、GitHub、Cloudflare 和 Mintlify 在美國處理資料;Google 依據 EU-US Data Privacy Framework 和標準契約條款處理。PostHog 在歐盟處理資料。Amazon Web Services 從新加坡寄送我們的郵件。在法律要求時,從歐洲經濟區和英國傳輸資料採用標準契約條款或其他獲准機制。 +## 選擇和權利 {#rights} -## 資料保留期限 {#retention} +使用App開關、網站/文件 Cookie settings 和退訂更改可選處理。撤回同意只向後生效,不影響之前處理的合法性。開關不刪舊資料或停止伺服器分析。在[門戶 Settings]({account})匯出或刪帳戶;並非涵蓋保留表中所有記錄。 -- **使用報告和分析事件**:我們的伺服器轉送給 PostHog 後不保留副本。我們未在 PostHog 中為其設定保留期限。 -- **我們先前伺服器的紀錄**:先前伺服器整個資料庫的副本存放在封存檔中,無限期保留。其中包括授權、訂單和團隊成員及其電子郵件地址和姓名;啟用了授權的 Mac 及其名稱;電子報訂閱者和 Beta 報名者;它所寄送郵件的紀錄;以及它保存的使用報告和授權請求日誌及其 IP 位址。 -- **裝置**:保留至您刪除帳戶,包括您已移除的裝置。 -- **您帳戶的稽核日誌**:帳戶存在期間保留,並附有您所做每項變更的 IP 位址和瀏覽器。刪除帳戶會從中移除您的電子郵件地址,以及您所做操作的 IP 位址和瀏覽器;每項變更的紀錄本身會保留。 -- **訂單**:為稅務和會計用途保留。刪除帳戶會從訂單中移除您的電子郵件地址和帳戶。 -- **來自 {merchant}、Amazon SES 和 Apple 的通知**:保留。{merchant} 的通知包含您的姓名、電子郵件地址和帳單地址;刪除帳戶後,關於您購買的通知中的這些資訊會被移除。Amazon SES 的通知包含每封郵件的收件地址,對於電子報還包含每次開啟和點擊的 IP 位址和使用者代理程式;刪除帳戶後,關於寄往您地址的郵件的通知以及我們對每封已寄送郵件的紀錄中的這些資訊會被移除。 -- **Team Library**:保留至項目被修改;已刪除的項目保留其最後一個版本。資源庫在擁有者刪除團隊 30 天後隨團隊一起刪除;在此之前,擁有者可以復原團隊。授權結束後仍會保留。 -- **登入連結和代碼**:15 分鐘後失效,7 天後刪除。入口網站工作階段持續 30 天。保持 App 登入的權杖在 App 最後一次使用後 90 天失效,並在之後 30 天刪除。 -- **已刪除的帳戶**:帳戶及其登入方式、裝置、授權和團隊成員身分會立即刪除。訂單和稽核日誌按上文所述保留。先前的伺服器保存的與您有關的資料仍留在上述封存檔中。 -- **電子報**:30 天內未確認的地址會連同確認連結一起刪除。已確認的地址以及從先前的伺服器移轉的地址會連同其加入方式的紀錄保留在我們的名單中,直到我們應您的要求刪除,或您刪除使用該地址的 TablePro 帳戶;取消訂閱後,該地址以已取消訂閱狀態保留,確保不再收到任何電子報。 -- **禁止寄送名單**:郵件被永久退回的地址,或擁有者將我們的郵件標記為垃圾郵件的地址,會連同首次和最近一次發生的時間保留在我們的禁止寄送名單中,使用該地址的帳戶或電子報訂閱被刪除後也是如此,以確保我們不再寄送任何郵件給該地址。 -- **Google Analytics**:使用者層級與事件層級資料保留兩個月,即我們資源所用的 Google 預設期限。Cookie 最長保留兩年,或在拒絕時刪除。 -- **Cloudflare Web Analytics**:向我們顯示最近六個月的網頁瀏覽彙總,不在瀏覽器中保存資訊。 -- **線上聊天與支援郵件**:在 Crisp 和我們的信箱中保留至刪除。您可要求刪除對話和郵件。 -- **伺服器日誌**:我們的網頁伺服器和伺服器的日誌,為安全和問題排查保留在我們的伺服器上,尚未設定固定期限。 +依居住地,可要求訪問、更正、刪除、限制、可攜帶或反對合法利益處理。無需帳戶:郵件[聯絡](#controller)。我們可能詢問查詢記錄所需資訊,如安裝 ID。切勿透過郵件明文傳送授權金鑰。我們在一個月內答覆。您可向資料保護機關投訴。法律儲存義務可能限制刪除。 -## 您的權利 {#rights} - -視居住地而定,您可以要求我們: - -- 提供我們持有的個人資料副本(存取); -- 更正資料(更正); -- 刪除資料(刪除),法律要求保留的除外; -- 限制使用方式(限制); -- 以結構化、機器可讀格式提供資料(可攜); -- 停止基於正當利益使用資料(反對)。 - -您可隨時撤回同意,並向資料保護機關申訴。行使上述權利,請寄送郵件至 [{email}](mailto:{email})。我們會在 30 天內回應。在[帳戶入口網站]({account})的設定中,您也可以取得帳戶資料的副本並刪除帳戶。對於其他內容,例如電子報地址或沒有帳戶的 Mac,請告知相關電子郵件地址、授權金鑰或裝置。{merchant}、Google、Crisp 或 GitHub 持有的資料還適用其自身政策。 +### 地區權利 {#regional-rights} **加利福尼亞州居民**。California Consumer Privacy Act 賦予您了解我們收集哪些個人資訊、要求刪除、拒絕出售,以及不因行使這些權利而受到差別待遇的權利。我們不出售個人資訊。 ## 兒童 {#children} -TablePro 不以十六歲以下兒童為對象,也不會在明知的情況下收集其個人資料。如您認為兒童向我們提供了個人資料,請聯絡,我們會刪除。 +TablePro 不面向 16 歲以下兒童,我們不會明知而收集其個人資料。如認為兒童已向我們提供資料,請聯絡我們刪除。 ## 安全 {#security} -App、網站、帳戶入口網站與我們的伺服器之間使用 HTTPS。TablePro 帳戶沒有密碼。登入連結和代碼、保持 App 登入的權杖以及團隊 API 權杖以雜湊形式保存。透過郵件寄送登入連結和代碼的工作會以明文保存它們,直到該工作被刪除:郵件寄出一天後,或放棄寄送 7 天後。連結和代碼都會在您提出請求 15 分鐘後失效。系統存取僅限於 {publisherName} 及[資料接收方](#sharing)中列出的服務供應商。沒有系統完全安全。回報弱點請參閱[安全性頁面](/zh-Hant/security#report),或寄送郵件至 [{email}](mailto:{email})。 - -## 政策變更 {#changes} - -本政策變更時,我們會在此更新並註明新的「最後更新」日期;法律要求時,我們會直接通知您。 +服務流量使用 HTTPS。帳戶無密碼。登入憑據及團隊 API 令牌以雜湊儲存,[儲存期限](#retention)中的臨時郵件任務除外。系統訪問限於 {publisherName} 和[接收方](#sharing)。沒有系統絕對安全。透過[安全頁面](/zh-Hant/security#report)報告漏洞。 -## 聯絡方式 {#contact} +## 變更 {#changes} -如對隱私權或本政策有疑問,請寄送郵件至 [{email}](mailto:{email})。 +頁面顯示最後更新日期。舊版本保留在[公開網站倉庫歷史]({webGithub}/commits/main/resources/data/legal/en/privacy.md)。新用途開始前我們會更新本政策,依法直接通知,並在需要時重新徵求同意。 diff --git a/resources/js/components/legal/legal-page.tsx b/resources/js/components/legal/legal-page.tsx index 1ef9a2e5..9a1bd8cf 100644 --- a/resources/js/components/legal/legal-page.tsx +++ b/resources/js/components/legal/legal-page.tsx @@ -155,8 +155,8 @@ export default function LegalPage({ document, chrome, links, organizationProfile ))} - {/* A document that ends with its own Contact section (Privacy, Terms) does not repeat the address under it. */} - {!document.toc.some((section) => section.id === 'contact') && ( + {/* A contact anchor also covers policies that put the address with the controller. */} + {!document.html.includes('id="contact"') && (

[ 'content/en/security.json', - ['the only data the Mac app sends TablePro is usage data', 'Usage data never carries hostnames', 'it goes straight to PostHog, our analytics service in the EU', 'works out an approximate location from it'], + ['0.86.0-beta.1', 'Usage data never carries hostnames', 'directly to PostHog EU', 'Apple diagnostics are separate', 'does not stop server analytics'], ['analytics library', 'daily usage report', 'first usage report'], ], // The accounts build keeps its refresh token in deviceOnlyKeychain and deletes the license key once exchanged (TablePro m16/accounts). @@ -291,37 +291,23 @@ function (mixed $value) use (&$strings): void { ['đừng lưu một dòng khi giá trị văn bản dài', 'Island mở rộng', 'kiến trúc', 'tác vụ Phím tắt thêm dòng'], ['cấp độ', 'Các phím tắt thêm dòng'], ], - 'the privacy policy describes what the site and apps actually do' => [ + 'the privacy policy keeps disclosures in their new purpose-led sections' => [ 'legal/en/privacy.md', - [ - 'Newsletter signup, checkout and discount-code requests from the public site omit credentials', - 'they neither send account-portal cookies nor accept cookies from the response', - 'Opening account-portal pages is separate', - 'cdn.jsdelivr.net', - 'when an MCP client you have set up launches TablePro\'s bridge or pairs with it', - '**MCP servers you add.**', - 'credential profiles (their name and username, never the password)', - 'expanded Dynamic Island', - 'the processor architecture', - 'without your license key or IP address', - 'the Mac that publishes downloads it again right after', - 'With no table open, it passes the connection\'s name instead', - 'account portal]({account}) at account.tablepro.app', - '](/refund-policy)', - '](/terms)', - 'keeps the paid features working for up to {offlineDays} days without our server', - 'Versions before TablePro accounts contain no crash reporter and no third-party analytics library.', - 'Versions before TablePro accounts send a usage report to `api.tablepro.app` instead, under the same setting', - 'downloads the library\'s changes when it starts, every 15 minutes and after each publish', - 'the app asks which copy to keep, and it shows who last changed each team query', - 'Versions before TablePro accounts download the library when they start, at most once a week', - ], - ['The site sets no cookies of its own.', 'The MCP server is off until you turn it on', 'and after a publish.', 'Ask us to delete yours.', 'sends TablePro a usage report once a day', 'Turning the setting off stops both.', 'the same server as the Mac app'], - ], - 'the privacy policy (vi)' => [ + ['Public newsletter, checkout and discount requests omit credentials', + 'set no portal cookie', 'Pointing at or tabbing to Buy', 'jsDelivr', + 'cannot start while disabled', 'External MCP servers receive approved tool arguments', + 'independently of that attachment switch', 'Apple', 'App Store Connect', + 'without an IP address or license key', 'connection name/host when no table is open', + ']({account})', '](/refund-policy)', '](/terms)', '0.86.0-beta.1', + '0.1.0-beta.1', 'No time limit set', 'does not delete data at PostHog or Crisp', + 'https://docs.tablepro.app/security/privacy#older-mac-reports'], + ['Nothing goes to TablePro unless', 'server does not store the report', 'Turning the setting off stops both.'], + ], + 'the privacy policy (vi) keeps the same controls and deletion limits' => [ 'legal/vi/privacy.md', - ['cdn.jsdelivr.net', '**MCP client.**', 'gợi ý nội tuyến', 'máy Mac vừa xuất bản tải lại ngay sau đó', 'cứ 15 phút một lần và sau mỗi lần xuất bản', 'xóa các cuộc chat và email của bạn', ']({account}) tại account.tablepro.app', '](/vi/terms)'], - ['trò chuyện', 'Client MCP', 'sau mỗi lần có người xuất bản', 'xóa của bạn.', 'cấp độ Safe Mode'], + ['jsDelivr', 'MCP', 'PostHog', 'Crisp', '0.86.0-beta.1', '0.1.0-beta.1', + 'không xóa dữ liệu tại PostHog hay Crisp', 'trong một tháng', ']({account})', '](/vi/terms)'], + ['cấp độ Safe Mode', 'license key hay thiết bị'], ], 'the terms use the legal word for indemnify (vi)' => [ 'legal/vi/terms.md', diff --git a/tests/Feature/Data/FactsDataTest.php b/tests/Feature/Data/FactsDataTest.php index b44b045e..1e991829 100644 --- a/tests/Feature/Data/FactsDataTest.php +++ b/tests/Feature/Data/FactsDataTest.php @@ -46,7 +46,7 @@ function factsAssertUniqueList(array $list, string $label): void $facts = factsJson(); expect(array_keys($facts))->toBe([ - 'verifiedAt', 'links', 'support', 'publisher', 'openSource', 'ai', 'mcp', 'safeMode', 'filterOperators', + 'verifiedAt', 'links', 'privacyPolicies', 'support', 'publisher', 'openSource', 'ai', 'mcp', 'safeMode', 'filterOperators', 'connectionImport', 'dataImport', 'export', 'backup', 'sync', 'limits', ]); expect($facts['verifiedAt'])->toMatch('/^\d{4}-\d{2}-\d{2}$/'); @@ -56,11 +56,13 @@ function factsAssertUniqueList(array $list, string $label): void it('keeps every outbound link in one place, over HTTPS', function (): void { $links = factsJson()['links']; - foreach ($links as $key => $url) { + foreach ([...$links, ...factsJson()['privacyPolicies']] as $key => $url) { expect($url)->toStartWith('https://', "links.{$key}"); expect(filter_var($url, FILTER_VALIDATE_URL))->not->toBeFalse("links.{$key} is malformed"); } + expect($links['webGithub'])->toBe('https://github.com/TableProApp/web'); + expect(app(SiteFacts::class)->privacyPolicies())->toHaveCount(11); expect($links['github'])->toBe('https://github.com/TableProApp/TablePro'); expect($links['issues'])->toStartWith($links['github'] . '/'); expect($links['discussions'])->toStartWith($links['github'] . '/'); diff --git a/tests/Feature/Landing/LegalPagesTest.php b/tests/Feature/Landing/LegalPagesTest.php index bd619088..45f68f9b 100644 --- a/tests/Feature/Landing/LegalPagesTest.php +++ b/tests/Feature/Landing/LegalPagesTest.php @@ -21,7 +21,7 @@ 'en' => 'first query', 'vi' => 'query đầu tiên', 'es' => 'primera consulta', - 'de' => 'ersten Abfrage', + 'de' => 'erste Abfrage', 'fr' => 'première requête', 'ja' => '初めてクエリを実行', 'pt-BR' => 'primeira consulta', @@ -144,8 +144,8 @@ function legalShape(string $document, string $locale): array ]); it('formats the update date in each language on the server', function (): void { - get('/privacy')->assertInertia(fn(AssertableInertia $page) => $page->where('document.updatedAtFormatted', 'November 4, 2026')); - get('/vi/privacy')->assertInertia(fn(AssertableInertia $page) => $page->where('document.updatedAtFormatted', '4 tháng 11 năm 2026')); + get('/privacy')->assertInertia(fn(AssertableInertia $page) => $page->where('document.updatedAtFormatted', 'November 5, 2026')); + get('/vi/privacy')->assertInertia(fn(AssertableInertia $page) => $page->where('document.updatedAtFormatted', '5 tháng 11 năm 2026')); }); it('indexes each document in every supported language', function (string $route): void { @@ -222,201 +222,151 @@ function legalShape(string $document, string $locale): array 'Vietnamese' => ['vi', 'cơ sở pháp lý', 'Cài đặt cookie'], ]); -it('describes purchase attribution as checkout metadata kept with the order, under the website and the cookies', function (string $locale, string $kept): void { - foreach (['website', 'cookies'] as $section) { - expect(legalSection('privacy', $locale, $section))->toContain('tablepro:attribution'); +it('preserves every published fragment and the Linux target in every rendered language', function (string $locale): void { + $ids = ['summary', 'controller', 'mac-app', 'mac-usage-report', 'mac-license', 'mac-account', 'library', 'mac-updates', 'mac-third-parties', 'mac-local', 'ios-app', 'icloud', 'website', 'purchases', 'account', 'newsletter', 'cookies', 'lawful-basis', 'sharing', 'transfers', 'retention', 'rights', 'children', 'security', 'changes', 'contact', 'linux-usage-data']; + $html = app(LegalDocuments::class)->render('privacy', $locale)['html']; + preg_match_all('/\bid="([^"]+)"/', $html, $rendered); + + expect($rendered[1])->toBe(array_values(array_unique($rendered[1]))); + foreach ($ids as $id) { + expect($rendered[1])->toContain($id); + } + foreach (['contact' => 'controller', 'lawful-basis' => 'data-use', 'mac-account' => 'account', 'mac-local' => 'local-data', 'mac-third-parties' => 'integrations'] as $alias => $target) { + expect($html)->toMatch('/<\/span>(?:<\/p>)?\s*privacyPolicies() as $url) { + expect($html)->toContain('href="' . $url . '"'); + } + preg_match_all('/href="#([^"]+)"/', $html, $links); + expect(array_diff($links[1], $rendered[1]))->toBe([]); + expect(substr_count(legalSource('privacy', $locale), LegalDocuments::COOKIE_SETTINGS_MARKER))->toBe(1); +})->with(legalLocales()); - // tablepro-cloud stores the utm_* tags and the referrer as Polar checkout metadata and on the order (data-model.md, orders.attribution). - expect(legalSection('privacy', $locale, 'website'))->toContain($kept); - expect(legalSource('privacy', $locale))->not->toContain('discards it')->not->toContain('bỏ nó đi'); -})->with([ - 'English' => ['en', 'Our server passes the source of the visit to {merchant} as metadata of the checkout'], - 'Vietnamese' => ['vi', 'Máy chủ của chúng tôi chuyển nguồn của lượt truy cập cho {merchant}'], -]); +it('describes checkout attribution as retained source data, not a discarded record', function (): void { + expect(legalSection('privacy', 'en', 'website')) + ->toContain('`tablepro:attribution` for 90 days') + ->toContain('passes the source of the visit to {merchant} as metadata of the checkout') + ->toContain('keeps it with the order') + ->toContain('sends it to PostHog with checkout/payment events') + ->toContain('The landing page and date are not kept.'); +}); -it('states what the Mac app and the server actually do', function (): void { +it('states versioned defaults and keeps shipped iOS separate from the desktop decision', function (): void { $mac = legalSection('privacy', 'en', 'mac-app'); - - // Usage data: on by default, where to turn it off, and what the server adds. - expect($mac) - ->toContain('It is on by default, and the app does not ask before sending the first event.') - ->toContain('**Settings > General > Privacy**') - ->toContain('**Share usage data**') - ->not->toContain('Share anonymous usage data'); - - // The accounts build sends PostHog its events itself, with posthog-ios's own properties (tablepro-cloud clients.md, macOS Telemetry). - expect($mac)->toContain('`eu.i.posthog.com`') - ->toContain('if the app starts with it off, it does not start PostHog\'s library at all') - ->toContain('screen size, time zone and language, whether it is on Wi-Fi') - ->toContain('works out an approximate location from it') - ->toContain('(`/config` from `eu-assets.i.posthog.com` and `/flags` from `eu.i.posthog.com`)') - ->toContain('your first successful connection and your first query, each with its database type;') - ->toContain('Before you sign in, the events carry a random ID') - // GeoIP is on, so PostHog also sets the derived location on the identified person. - ->toContain('the app\'s language and the approximate location PostHog works out from the IP address.') - ->toContain('The app\'s usage data no longer carries a machine ID, whether a license is activated, or your update settings.') - ->not->toContain('The app no longer sends a machine ID') - ->toContain('PostHog\'s crash reporter, which the app leaves turned off') - ->toContain('`~/Library/Application Support/com.TablePro`'); - - // tablepro-cloud's /v1 heartbeat goes to PostHog with Cloudflare's country, never the key or the IP; no lookup service, no HTTP. - expect($mac)->toContain('Our server does not store the report or the IP address it came from.') - ->toContain('the country Cloudflare gives for your connection'); - expect(legalSource('privacy', 'en'))->not->toContain('ip-api.com')->not->toContain('geoplugin.net')->not->toContain('unencrypted HTTP'); - - // Devices belong to accounts, and their changes are audited with the request's IP and user agent. - expect($mac)->toContain('{#mac-account}')->toContain('macOS Keychain')->toContain('audit log'); - - // The accounts build keeps its refresh token in a Keychain item that never syncs (deviceOnlyKeychain in AccountServices+Live). - expect($mac)->toContain('kept in the macOS Keychain of that Mac only and never syncs through iCloud Keychain'); - expect(legalSection('privacy', 'en', 'icloud'))->toContain('the license key is deleted once it is exchanged for a sign-in, and the token that keeps the app signed in never syncs'); - - // The license check sends the Mac's name, not "the license key and no other data". - expect($mac)->toContain('your Mac\'s name')->not->toContain('No other data'); - expect(legalSection('privacy', 'en', 'mac-license'))->toContain('Versions before TablePro accounts contact our license server only after you enter a license key.') - ->toContain('the machine ID described under [Usage data](#mac-usage-report)') - ->not->toContain('described above'); - - // The Team Library upload carries startup commands and the tunnel command too (ConnectionExportService.buildEnvelope at v0.77.0). - expect($mac)->toContain('SQL text')->toContain('never passwords')->toContain('startup commands')->toContain('Tunnel Command'); - - // Updates come from GitHub and can be turned off; the plugin catalog cannot. - expect($mac)->toContain('raw.githubusercontent.com')->toContain('Automatically check for updates')->toContain('There is no setting to turn this off.'); - - // AI requests go to the provider, not to TablePro. - expect($mac)->toContain('never through TablePro'); - - $ios = legalSection('privacy', 'en', 'ios-app'); - - expect($ios)->toContain('**Nothing goes to TablePro unless you turn on Share Usage Data**'); - - // Both reports describe the connections that are open, and the iPhone report's license field is always off. - expect($mac)->toContain('of your open connections')->toContain('how many connections are open'); - expect($ios)->toContain('of your open connections')->toContain('always reports that no license is activated'); + expect($mac)->toContain('0.86.0-beta.1')->toContain('It is on by default, and the app does not ask before sending the first event.') + ->toContain('**Settings > General > Privacy**')->toContain('**Share usage data**') + ->toContain('does not start PostHog\'s library')->toContain('crash reporter is disabled') + ->toContain('random installation ID without a person profile')->toContain('your account ID') + ->toContain('receives your IP address and derives rough location')->toContain('license-ask displays and answers') + ->toContain('first query')->toContain('paid-feature gates and their reasons'); + $linux = legalSection('privacy', 'en', 'linux-usage-data'); + expect($linux)->toContain('on by default from 0.1.0-beta.1')->toContain('Preferences > General > Privacy') + ->toContain('PostHog EU')->toContain('license-ask displays/Buy responses')->toContain('first query') + ->toContain('Device registration separately includes the hostname')->toContain('request already in flight can finish') + ->toContain('No hostname, SQL, rows or credentials')->toContain('does not erase earlier events'); + expect(legalSection('privacy', 'en', 'ios-app'))->toContain('sends no usage report until you enable') + ->toContain('Consent is the basis')->toContain('first query')->toContain('always reports no license') + ->toContain('checks neither accounts nor licenses, updates or plugins')->toContain('Separately, Apple') + ->toContain('App Store Connect')->toContain('no crash reporter or third-party analytics library'); + expect(legalSource('privacy', 'en'))->not->toContain('Share anonymous usage data')->not->toContain('windows-app'); }); -it('scopes the license checks to old builds, whose usage report describes the machine ID', function (string $locale): void { - // The accounts build drops LicenseAPIClient (tablepro-cloud clients.md, macOS Code); its sign-in is #mac-account. - expect(legalSection('privacy', $locale, 'mac-license'))->toContain('](#mac-usage-report)'); - expect(strstr(legalSection('privacy', $locale, 'mac-usage-report'), '`api.tablepro.app`'))->toContain('SHA-256'); +it('keeps the platform boundaries and technical inventory links in every translation', function (string $locale): void { + expect(legalSection('privacy', $locale, 'mac-app'))->toContain('0.86.0-beta.1'); + expect(legalSection('privacy', $locale, 'mac-license'))->toContain('0.86.0')->toContain('#older-mac-reports')->not->toContain(LEGAL_FIRST_QUERY[$locale]); + expect(legalSection('privacy', $locale, 'mac-usage-report'))->toContain('#usage-data')->toContain(LEGAL_FIRST_QUERY[$locale]); + expect(legalSection('privacy', $locale, 'ios-app'))->toContain(LEGAL_FIRST_QUERY[$locale])->toContain('App Store Connect'); + expect(legalSection('privacy', $locale, 'linux-usage-data'))->toContain('0.1.0-beta.1')->toContain('PostHog EU') + ->toContain('Preferences > General > Privacy')->toContain('](#retention)')->toContain('](#rights)'); })->with(legalLocales()); -it('names both PostHog hosts the accounts build contacts', function (string $locale): void { - // posthog-ios 3.92.7 fetches /config from the assets host of eu.i.posthog.com (PostHogApi.getRemoteConfigRequest). - expect(legalSection('privacy', $locale, 'mac-usage-report'))->toContain('`eu.i.posthog.com`')->toContain('`eu-assets.i.posthog.com`'); -})->with(legalLocales()); - -it('lists the first query for the accounts build and the iPhone report, never for the old Mac report', function (string $locale): void { - // Old Mac builds never record it: MacAnalyticsProvider.markFirstQueryExecuted has no caller at v0.78.0. The accounts build sends - // first_query_executed with database_type (TablePro m16/accounts 4399ab89c), and the iPhone app reports it. - expect(LEGAL_FIRST_QUERY)->toHaveKey($locale); - $usage = legalSection('privacy', $locale, 'mac-usage-report'); - $old = strstr($usage, '`api.tablepro.app`'); - - expect($old)->not->toBeFalse()->not->toContain(LEGAL_FIRST_QUERY[$locale]); - expect(strstr($usage, '`api.tablepro.app`', true))->toContain(LEGAL_FIRST_QUERY[$locale]); - expect(legalSection('privacy', $locale, 'ios-app'))->toContain(LEGAL_FIRST_QUERY[$locale]); -})->with(legalLocales()); - -it('sets no retention period the server does not keep', function (string $locale, string $serverLogs): void { - $retention = legalSection('privacy', $locale, 'retention'); - - // The previous policy promised 90 days for server logs and "aggregated" analytics; neither was true. - preg_match('/^- \*\*' . preg_quote($serverLogs, '/') . '\*\*.*$/m', $retention, $logs); - expect($logs[0] ?? '')->not->toBe('')->not->toMatch('/\d/'); - Assert::assertStringNotContainsStringIgnoringCase('aggregated', legalSource('privacy', $locale)); -})->with([ - 'English' => ['en', 'Server logs'], - 'Vietnamese' => ['vi', 'Nhật ký máy chủ'], -]); - -it('keeps the retention periods tablepro-cloud states', function (): void { - $retention = legalSection('privacy', 'en', 'retention'); +it('separates account, server and legacy analytics from the app switch', function (): void { + expect(legalSection('privacy', 'en', 'analytics'))->toContain('legitimate interest') + ->toContain('account IDs but no names or email addresses')->toContain('does not stop required account requests or these server events'); + expect(legalSection('privacy', 'en', 'mac-license'))->toContain('Before 0.86.0') + ->toContain('hashed machine ID')->toContain('Update settings are sent but discarded') + ->toContain('without an IP address or license key')->toContain('without a person profile') + ->toContain('machine ID can link it to account devices')->toContain('processing jobs, logs, backups and the old archive'); + expect(legalSection('privacy', 'en', 'account'))->toContain('device name')->toContain('IP address and user agent') + ->toContain('passkeys')->toContain('Apple, GitHub or Google')->toContain('export account data as JSON'); + expect(legalSection('privacy', 'en', 'mac-app'))->toContain('never syncs through iCloud Keychain'); + expect(legalSection('privacy', 'en', 'icloud'))->toContain('Account tokens never sync'); +}); - // data-model.md, Retention. - expect($retention)->toContain('a deleted item keeps its last version') - ->toContain('are deleted 7 days later. Portal sessions last 30 days.') - ->toContain('**Notifications from {merchant}, Amazon SES and Apple**: kept.') - ->toContain('**Devices**: kept, with those you removed, until you delete your account.') - ->toContain('We have not set a time limit for them in PostHog.') - ->toContain("**Server logs**: our web server's and our server's logs, kept on our server for security and troubleshooting."); - expect(legalSource('privacy', 'en'))->not->toContain('180 days')->not->toContain('for 90 days, so every Mac'); +it('keeps content sharing exceptions and current update and MCP behavior', function (): void { + expect(legalSection('privacy', 'en', 'library'))->toContain('startup commands')->toContain('Tunnel Command') + ->toContain('Structured password fields are excluded')->toContain('free text are not removed') + ->toContain('Leaving a team does not by itself erase'); + expect(legalSection('privacy', 'en', 'mac-updates'))->toContain('updates.tablepro.app') + ->toContain('Automatically check for updates')->toContain('plugin catalog has no off switch'); + expect(legalSection('privacy', 'en', 'ai-tools'))->toContain('Attaching grid result rows is off by default') + ->toContain('independently of that attachment switch')->toContain('cannot start while disabled') + ->toContain('authenticated clients')->toContain('directly to your chosen provider'); + expect(legalSection('privacy', 'en', 'support'))->toContain('database content or secrets you include'); }); -it('states what tablepro-cloud keeps outside its own tables', function (): void { - // migration.md: a pg_dump of the whole Laravel database to R2, kept indefinitely; no document says it is encrypted. +it('keeps retention honest and distinguishes account deletion from provider erasure', function (): void { $retention = legalSection('privacy', 'en', 'retention'); - expect($retention)->toContain('a copy of its whole database is kept indefinitely') - ->toContain('What our previous server held about you stays in its archive') - ->not->toContain('encrypted archive'); - - // data-model.md, Retention: a sign-in email job holds the raw link and code until River cleans it. - expect(legalSection('privacy', 'en', 'security'))->not->toContain('only as hashes') - ->toContain('a day after the email is sent, or 7 days after we give up sending it'); - - // migration.md: every Laravel subscriber not unsubscribed is imported subscribed, confirmed or not. - expect(legalSection('privacy', 'en', 'newsletter'))->toContain('confirmed or not'); - - // clients.md: the Mac app sends usage data to PostHog itself, so PostHog gets the request's IP address. - expect(legalSection('privacy', 'en', 'mac-usage-report'))->toContain('PostHog receives your Mac\'s IP address with each request'); - expect(legalSection('privacy', 'en', 'sharing'))->toContain('reaches PostHog with your Mac\'s IP address'); + expect($retention)->toContain('Deleting an account does not delete data at PostHog or Crisp') + ->toContain('deleted at those providers on request')->toContain('No time limit set') + ->toContain('no promise of zero server copies')->toContain('addresses embedded in free text can remain') + ->toContain('Orders stay for tax/accounting, without a set time limit') + ->toContain('A deleted item keeps its last version') + ->toContain('after 30 days')->toContain('sole owner')->toContain('at once') + ->toContain('expire after 15 minutes and are deleted 7 days later')->toContain('Portal sessions last 30 days') + ->toContain('90 days after last use and are deleted 30 days later') + ->toContain('a day after sending, or 7 days after giving up') + ->toContain('Account deletion does not remove these copies')->toContain('whole-database archive') + ->toContain('usage reports and license logs with IP addresses'); + expect(legalSource('privacy', 'en'))->not->toContain('server keeps no copy')->not->toContain('server does not store the report'); + preg_match('/^\| Processing jobs and server logs \|(.+)$/m', $retention, $logs); + expect($logs[1] ?? '')->not->toBe('')->not->toMatch('/\d/'); }); -it('describes the account portal tablepro-cloud runs, its sign-in and what it loads', function (): void { - $account = legalSection('privacy', 'en', 'account'); - - expect($account)->toContain('Apple, GitHub or Google')->toContain('passkeys')->toContain('6-digit code') - ->toContain('both expire after 15 minutes') - ->toContain('download your account\'s data as a JSON file') - ->toContain('no Google Analytics, no Cloudflare Web Analytics') - ->toContain('a purchase made there opens {merchant}\'s checkout over the page.'); - - expect(legalSection('privacy', 'en', 'website'))->toContain('**Newsletter check.**')->toContain('`challenges.cloudflare.com`'); - expect(legalSection('privacy', 'en', 'sharing'))->toContain('**Amazon Web Services**')->toContain('**PostHog** (EU Cloud)') - ->not->toContain('An email delivery provider'); - expect(legalSection('privacy', 'en', 'transfers'))->toContain('PostHog processes it in the European Union.'); +it('retains newsletter tracking, imported subscribers and suppression after deletion', function (): void { + expect(legalSection('privacy', 'en', 'newsletter'))->toContain('Every newsletter measures every recipient') + ->toContain('IP address and user agent')->toContain('no separate switch for measurement') + ->toContain('confirmed or not')->toContain('including buyers, license holders and beta signups') + ->toContain('no confirmation email follows')->toContain('Permanent bounces and spam reports'); + expect(legalSection('privacy', 'en', 'retention'))->toContain('Unsubscribe keeps the address marked unsubscribed') + ->toContain('stay after account or subscription deletion'); }); -it('names Amazon SES as the sender of every email and the newsletter\'s open and click tracking', function (string $locale): void { - // tablepro-cloud M24: SES in ap-southeast-1 sends both streams and tracks newsletter opens and clicks on links.news.tablepro.app. - expect(legalSource('privacy', $locale))->not->toContain('Resend'); - expect(legalSection('privacy', $locale, 'sharing'))->toContain('**Amazon Web Services**')->toContain('Amazon SES'); - expect(legalSection('privacy', $locale, 'transfers'))->toContain('Amazon Web Services'); +it('keeps recipient, storage and history contracts in all languages', function (string $locale): void { + $source = legalSource('privacy', $locale); + foreach (['OVH', 'Cloudflare', 'Amazon Web Services', 'Amazon SES', 'PostHog', '{merchant}', 'Crisp', 'Google', 'Mintlify', 'GitHub', 'jsDelivr'] as $provider) { + expect(legalSection('privacy', $locale, 'sharing'))->toContain($provider); + } expect(legalSection('privacy', $locale, 'newsletter'))->toContain('`links.news.tablepro.app`'); - expect(legalSection('privacy', $locale, 'retention'))->toContain('Amazon SES'); + expect(legalSection('privacy', $locale, 'transfers'))->toContain('ap-southeast-1')->toContain('Mintlify'); + expect(legalSection('privacy', $locale, 'docs'))->toContain('docs.tablepro.app')->toContain('Google Fonts') + ->toContain('Allow')->toContain('Cookie settings')->toContain('Mintlify'); + foreach (['mintlify_anonymous_id', 'tablepro:language', 'tablepro:campaign-closed', 'locale', 'context'] as $key) { + expect(legalSection('privacy', $locale, 'cookies'))->toContain('`' . $key . '`'); + } + expect(legalSection('privacy', $locale, 'changes'))->toContain('{webGithub}/commits/main/resources/data/legal/en/privacy.md'); + expect($source)->not->toContain('Resend')->not->toContain('ip-api.com')->not->toContain('geoplugin.net'); })->with(legalLocales()); -it('covers the documentation site and its own analytics question', function (string $locale): void { - // The docs once set GA cookies on .tablepro.app with no consent; their bar is English only, so every language names its controls in English. - $intro = strtok(YamlFrontMatter::parse(legalSource('privacy', $locale))->body(), "\n"); - $website = legalSection('privacy', $locale, 'website'); - - expect($intro)->toContain('docs.tablepro.app'); - expect($website)->toContain('docs.tablepro.app')->toContain('Google Fonts')->toContain('**Allow**')->toContain('**Cookie settings**'); - expect($website)->toContain('`_ga_`')->toContain('`mintlify_anonymous_id`'); - expect(legalSection('privacy', $locale, 'cookies'))->toContain('`mintlify_anonymous_id`'); - expect(legalSection('privacy', $locale, 'sharing'))->toContain('**Mintlify**'); - expect(legalSection('privacy', $locale, 'transfers'))->toContain('Mintlify'); -})->with(legalLocales()); +it('keeps website tracking triggers and the separate documentation consent', function (): void { + $website = legalSection('privacy', 'en', 'website'); + expect($website)->toContain('cookieless page signal')->toContain('Advertising storage, personalization and ad user data are always denied') + ->toContain('Pointing at or tabbing to Buy')->toContain('Starting the newsletter form') + ->toContain('portal runs no analytics script')->toContain('Before Allow, no analytics cookies or visitor ID') + ->toContain('choice does not cross to that origin'); + expect(legalSection('privacy', 'en', 'support'))->toContain('every page')->toContain('account email and ID'); + expect(legalSection('privacy', 'en', 'retention'))->toContain('2 months')->toContain('six months'); +}); -it('discloses Cloudflare Web Analytics and states Google\'s default retention', function (string $locale, string $twoMonths, string $sixMonths): void { - // The GA4 property keeps Google's default of 2 months; it was never set to 14. - $website = legalSection('privacy', $locale, 'website'); - $retention = legalSection('privacy', $locale, 'retention'); - - expect($website)->toContain('**Cloudflare Web Analytics.**')->toContain('`static.cloudflareinsights.com`'); - expect(legalSection('privacy', $locale, 'summary'))->toContain('Cloudflare Web Analytics'); - expect(legalSection('privacy', $locale, 'cookies'))->toContain('Cloudflare Web Analytics'); - expect(legalSection('privacy', $locale, 'lawful-basis'))->toContain('Cloudflare Web Analytics'); - expect(legalSection('privacy', $locale, 'sharing'))->toContain('Cloudflare Web Analytics'); - expect($retention)->toContain('**Cloudflare Web Analytics**')->toContain($sixMonths); - expect($website)->toContain($twoMonths); - expect($retention)->toContain($twoMonths); -})->with([ - 'English' => ['en', '2 months', 'six months'], - 'Vietnamese' => ['vi', '2 tháng', 'sáu tháng'], -]); +it('provides rights without an account and does not request a license secret by email', function (): void { + expect(legalSection('privacy', 'en', 'controller'))->toContain('no data protection officer')->toContain("team's instructions"); + expect(legalSection('privacy', 'en', 'data-use'))->toContain('no automated decisions with legal or similarly significant effects'); + expect(legalSection('privacy', 'en', 'rights'))->toContain('Requests are accepted without an account')->toContain('installation ID') + ->toContain('Never send a license key in plain text by email')->toContain('within one month') + ->toContain('does not invalidate earlier processing')->toContain('data protection authority'); + expect(legalSection('privacy', 'en', 'regional-rights'))->toContain('not to be treated differently'); + expect(legalSection('privacy', 'en', 'changes'))->toContain('before using data for a new purpose')->toContain('fresh consent'); +}); it('names Polar as merchant of record and no other payment route', function (string $document, string $locale): void { $source = legalSource($document, $locale); @@ -635,7 +585,7 @@ function legalShape(string $document, string $locale): array $html = ssrHtml($path); $start = strpos($html, 'id="cookies"'); - $end = strpos($html, 'id="lawful-basis"', (int) $start); + $end = strpos($html, 'id="sharing"', (int) $start); expect($start)->not->toBeFalse(); expect(substr($html, (int) $start, (int) $end - (int) $start))->toMatch('/