DataLayer Studio

Privacy Policy

隐私政策

DataLayer Studio 在设备本地处理你选择的视频、FIT/GPX 运动文件和导出文件。这些文件可能包含位置、健康和训练数据;应用不会上传源视频、运动文件、预览画面或导出内容,也没有自定义应用分析或后台媒体传输。

支持 COROS 连接的 iOS/iPadOS 版本可由你主动打开系统授权窗口,在 COROS 网站登录并同意授权;DataLayer Studio 不接收你的 COROS 密码。共享客户端显示为 Project-S,其固定回调将授权码和 state 转发到独立的 Cloudflare Workers 服务。服务在独立 D1 数据库中加密保存 COROS access token、refresh token 和 openId,并保存授权状态、时间、App 会话摘要及每日加盐的 IP 地址摘要以限流;网络服务提供方会接触来源 IP,应用数据库不保存原始 IP。iPad 仅在本机 Keychain 保存独立会话,不写入工程或 iCloud。连接后可按日期查看运动记录;点击「导入 FIT」时,服务从 COROS 获取并转发所选运动文件,包括 FIT 内的 GPS 和训练样本。运动摘要和 FIT 内容不存入 D1、不发送到 Sentry;导入文件保存在当前工程的本地媒体目录,不上传视频素材。授权尝试十分钟过期,App 会话九十天过期,过期记录在下一次发起授权时删除。断开会删除本 App 的服务端连接及本机会话,不撤销 FIT2AI 或 Project-S 使用的共享 COROS 客户端授权。这些记录仅用于连接服务,不用于广告或行为分析;COROS 与 Cloudflare 按各自隐私政策处理请求。macOS 和 CLI 不使用此连接。

iOS/iPadOS 的 Garmin 导入为实验性的非官方功能。设备直接连接所选中国区或国际区 Garmin 服务,登录时将你输入的账号、密码和验证码通过 HTTPS 发送给 Garmin;不保存密码或验证码,访问和刷新令牌仅存本机 Keychain,不写入工程或 iCloud。断开仅清除本机令牌,不撤销 Garmin 端会话。按需获取运动列表、下载并在本地解压所选 FIT,文件及其中的 GPS、训练数据随当前工程保存在本地,不经过 DataLayer Studio 服务器。诊断仅记录操作阶段、区域、状态码和技术错误,不记录密码、验证码、令牌或运动内容;不上传、修改或删除 Garmin 运动。Garmin 按其隐私政策处理请求。

布局预设和默认预设可通过 Apple iCloud 键值存储同步。同步内容仅包含组件类型、位置和外观等紧凑预设定义;视频、运动文件、GPS 轨迹、遥测样本、预览画面和导出文件不会同步。

若你保存 OpenWeather API Key,DataLayer Studio 会为当前活动刷新天气。导入或载入没有已保存天气记录的活动时,也可能自动获取天气;有本地缓存时会优先使用缓存。请求发送活动的位置、时间、所选语言和你的 API Key 给 OpenWeather,不发送视频、FIT 文件、预览、导出内容或其他运动指标。天气结果保存在本地缓存,并可随项目中的活动记录保存。iOS/iPadOS 的 Key 仅存于本机 Keychain,可在天气检查器清除,绝不会写入项目或 iCloud。

OpenWeather 会通过 API Key 将请求关联到你的 OpenWeather 账户,并保留各 API 产品的调用次数以提供服务。根据其隐私政策,它不保留这些 API 请求的位置、时间或其他参数。此可选服务不用于广告跟踪。

App Store 版本使用 Apple 提供的聚合分析和崩溃指标。macOS 和正式 iOS/iPadOS App 提供 Sentry 崩溃与错误报告。macOS 默认开启,可在设置中关闭;正式 iOS/iPadOS App 自动开启,不提供开关,旧版关闭偏好不再生效。开启后向美国地区的 Sentry 发送崩溃堆栈、脱敏崩溃原因、固定操作名称、应用与设备版本和固定错误类别,以及 macOS 的少量导出技术信息(阶段、编码格式、尺寸、帧数、耗时和随机的单次导出 ID),用于排查故障;不发送素材、运动数据、文件路径、错误原文或密钥,不进行广告跟踪或使用行为分析。iOS/iPadOS 使用随机安装标识关联重复故障,保留去除密码、令牌和私有路径后的技术错误描述、底层错误链、最近 100 条操作记录、编辑器状态、导出阶段与帧位置、内存与温度状态,以及 COROS 接口、状态码、耗时和请求关联 ID;启用崩溃健康会话、异常终止与卡顿检测,不请求收集 IP。macOS 关闭后清除本地待发送诊断缓存;已发送报告按项目当前保留设置保存。不采集截图、录屏或自动网络追踪。CLI 和移动调试壳不启动 Sentry。数据处理参见 Sentry 隐私政策。网站使用 Google Analytics 收集汇总访问数据,例如页面浏览、设备和浏览器信息及大致地区;这与应用和命令行工具处理的文件无关。

应用会在本地保存编辑器偏好设置。打开订阅界面的标准 EULA 或本页会离开应用,并由 Apple 或网站主机按各自政策处理。若未来网络访问、分析、云同步或崩溃报告发生变化,本政策会同步更新。

隱私權政策

DataLayer Studio 會在裝置本機處理你選取的影片、FIT/GPX 運動檔案和匯出檔案。這些檔案可能包含位置、健康與訓練資料;App 不會上傳來源影片、運動檔、預覽畫面或匯出內容,也沒有自訂 App 分析或背景媒體傳輸。

支援 COROS 連接的 iOS/iPadOS 版本可由你主動開啟系統授權視窗,在 COROS 網站登入並同意授權;DataLayer Studio 不接收你的 COROS 密碼。共用用戶端顯示為 Project-S,其固定回呼會將授權碼與 state 轉送至獨立的 Cloudflare Workers 服務。服務在獨立 D1 資料庫中加密儲存 COROS access token、refresh token 與 openId,並儲存授權狀態、時間、App 工作階段摘要與每日加鹽的 IP 位址摘要以限制請求頻率;網路服務供應商會接觸來源 IP,App 資料庫不儲存原始 IP。iPad 只在本機 Keychain 儲存獨立工作階段,不寫入專案或 iCloud。連接後可依日期查看運動記錄;點選「匯入 FIT」時,服務從 COROS 取得並轉送所選運動檔案,包括 FIT 內的 GPS 和訓練樣本。運動摘要和 FIT 內容不存入 D1、不傳送至 Sentry;匯入檔案保存在目前工程的本機媒體目錄,不上傳影片素材。授權嘗試十分鐘後到期,App 工作階段九十天後到期,到期記錄於下次發起授權時刪除。中斷連接會刪除本 App 的伺服器端連接與本機工作階段,不撤銷 FIT2AI 或 Project-S 使用的共用 COROS 用戶端授權。這些記錄只用於連接服務,不用於廣告或行為分析;COROS 與 Cloudflare 依各自隱私權政策處理請求。macOS 與 CLI 不使用此連接。

iOS/iPadOS 的 Garmin 匯入為實驗性的非官方功能。裝置直接連接所選中國區或國際區 Garmin 服務,登入時將你輸入的帳號、密碼與驗證碼透過 HTTPS 傳送至 Garmin;不儲存密碼或驗證碼,存取與更新權杖僅存於本機 Keychain,不寫入專案或 iCloud。中斷連線僅清除本機權杖,不撤銷 Garmin 端工作階段。依需求取得運動清單、下載並在本機解壓縮所選 FIT,檔案及其中的 GPS、訓練資料隨目前專案儲存在本機,不經過 DataLayer Studio 伺服器。診斷僅記錄操作階段、區域、狀態碼與技術錯誤,不記錄密碼、驗證碼、權杖或運動內容;不會上傳、修改或刪除 Garmin 運動。Garmin 依其隱私政策處理請求。

版面預設與預設預設值可透過 Apple iCloud 鍵值儲存同步。同步內容只包含元件類型、位置與外觀等精簡預設定義;影片、運動檔、GPS 軌跡、遙測樣本、預覽畫面與匯出檔不會同步。

若你儲存 OpenWeather API Key,DataLayer Studio 會重新整理目前活動的天氣。匯入或載入沒有已儲存天氣記錄的活動時,也可能自動取得天氣;有本機快取時會優先使用快取。請求會將活動的位置、時間、選取語言與你的 API Key 傳給 OpenWeather,不會傳送影片、FIT 檔、預覽、匯出內容或其他運動指標。天氣結果會保存在本機快取,也可隨專案中的活動記錄儲存。iOS/iPadOS 的 Key 只儲存在本機 Keychain,可在天氣檢查器清除,絕不寫入專案或 iCloud。

OpenWeather 會透過 API Key 將請求關聯至你的 OpenWeather 帳戶,並保留各 API 產品的呼叫次數以提供服務。根據其隱私權政策,它不保留這些 API 請求的位置、時間或其他參數。此選用服務不會用於廣告追蹤。

App Store 版本使用 Apple 提供的彙總分析與當機指標。macOS 和正式 iOS/iPadOS App 提供 Sentry 當機與錯誤報告。macOS 預設開啟,可在設定中關閉;正式 iOS/iPadOS App 自動開啟,不提供開關,舊版關閉偏好不再生效。開啟後將當機堆疊、去識別化的當機原因、固定操作名稱、App 與裝置版本和固定錯誤類別,以及 macOS 的少量匯出技術資訊(階段、編碼格式、尺寸、影格數、耗時和隨機的單次匯出 ID)傳送至美國地區的 Sentry,以協助排除故障;不傳送素材、運動資料、檔案路徑、錯誤原文或金鑰,不進行廣告追蹤或使用行為分析。iOS/iPadOS 使用隨機安裝識別碼關聯重複故障,保留移除密碼、權杖和私人路徑後的技術錯誤描述、底層錯誤鏈、最近 100 條操作記錄、編輯器狀態、匯出階段與影格位置、記憶體與溫度狀態,以及 COROS 介面、狀態碼、耗時和請求關聯 ID;啟用崩潰健康工作階段、異常終止與停滯偵測,不要求收集 IP。macOS 關閉後會清除本機待傳送的診斷快取;已傳送報告依專案目前的保留設定儲存。不收集螢幕截圖、錄影或自動網路追蹤。CLI 和行動開發殼不啟動 Sentry。資料處理請參閱 Sentry 隱私權政策。網站使用 Google Analytics 收集彙總造訪資料,例如頁面瀏覽、裝置與瀏覽器資訊及大致地區;這與 App 和命令列工具處理的檔案無關。

App 會在本機儲存編輯器偏好設定。開啟訂閱頁面的標準 EULA 或本頁會離開 App,並由 Apple 或網站主機依各自政策處理。未來若網路存取、分析、雲端同步或當機報告有變化,本政策會同步更新。

Privacy Policy

DataLayer Studio processes the videos, FIT/GPX activity files, and exports you choose locally on your device. Those files can contain location, health, and training data. The app does not upload source media, activity files, preview frames, or exports, and has no custom in-app analytics or background media transfer.

In iOS/iPadOS builds that support COROS, you can open the system authorization window and sign in on COROS’s website. DataLayer Studio does not receive your COROS password. The shared client appears as Project-S; its fixed callback forwards the authorization code and state to an independent Cloudflare Workers service. That service encrypts COROS access tokens, refresh tokens and openId in a dedicated D1 database and stores authorization state, timestamps, hashed app sessions and daily salted IP-address digests for rate limiting. Network providers receive the source IP; the app database does not retain raw IPs. The iPad stores only its opaque service session in the device-only Keychain, never in projects or iCloud. You can browse activities by date and choose Import FIT. The service then streams the selected COROS file, including any GPS and training samples in it, to the app. Activity summaries and FIT contents are not stored in D1 or sent to Sentry. Imported files are saved in the current project’s local media directory; videos are not uploaded. Authorization attempts expire after ten minutes and app sessions after ninety days; expired rows are deleted on the next authorization attempt. Disconnect deletes this app’s server connection and local session without revoking the shared COROS client used by FIT2AI or Project-S. These records operate the requested connection, not advertising or usage analytics. COROS and Cloudflare process requests under their respective privacy policies. macOS and CLI do not use this connection.

The experimental, unofficial Garmin importer on iOS/iPadOS connects directly to your selected China or international Garmin service. Login sends your credentials and verification code to Garmin over HTTPS; passwords and codes are not saved. Access and refresh tokens remain in the device-only Keychain, outside projects and iCloud. Disconnect removes local tokens but does not revoke Garmin sessions. On request, the app retrieves activities and downloads and extracts the selected FIT locally, saving its GPS and training data with your project. These requests do not pass through DataLayer Studio servers. Diagnostics include operation stages, region, status codes and technical errors, never credentials, codes, tokens or activity payloads. The integration does not upload, edit or delete Garmin activities. Garmin processes requests under its own privacy policy.

Layout presets and the selected default preset can sync through Apple iCloud Key-Value Store. This sync contains only compact preset definitions such as component types, positions, and appearance. Videos, activity files, GPS tracks, telemetry samples, preview frames, and exports are not synchronized.

Saving an OpenWeather API key refreshes weather for the current activity. Importing or loading an activity with no saved weather records can also fetch weather automatically; a local cache is used first when available. Requests send the activity location, time, selected language, and your API key to OpenWeather. They do not send videos, FIT files, previews, exports, or other activity metrics. Weather results are cached locally and can be saved with the activity in a project. On iOS/iPadOS, the key stays in the device-only Keychain, can be cleared in the Weather inspector, and is never included in projects or iCloud.

OpenWeather associates requests with your OpenWeather account through the API key and retains per-product API call counts to operate its service. According to its privacy policy, it does not retain the location, time, or other parameters of these API calls. This optional service does not track users for advertising.

App Store releases use Apple-provided aggregate analytics and crash metrics. The macOS and official iOS/iPadOS apps offer Sentry crash/error reports. On macOS, sharing is on by default and controlled in Settings. The official iOS/iPadOS app always enables diagnostics, has no in-app switch, and ignores previous switch preferences. When enabled, crash stacks, sanitized crash reasons, fixed operation names, app/device versions, fixed error categories and, on macOS, limited export technical details (stages, codec, dimensions, frame counts, timing and a random per-export ID) are sent to Sentry in the US to diagnose failures. Reports exclude media, activity data, file paths, error descriptions and keys. This is not advertising tracking or usage analytics. iOS/iPadOS uses a random installation ID to correlate failures. It retains technical error descriptions and underlying causes after removing passwords, tokens and private paths, up to 100 operation breadcrumbs, editor state, export stages and frame positions, memory/thermal state, and COROS endpoint/status/timing/request identifiers. Crash-health sessions, watchdog termination and hang detection are enabled; IP collection is not requested. On macOS, disabling sharing clears the local pending diagnostic cache; delivered reports remain subject to the project’s current retention settings. Screenshots, session replay and automatic network tracing are disabled. The CLI and mobile development host do not initialize Sentry. See the Sentry privacy policy. This website uses Google Analytics for aggregate visit information, including page views, device and browser details, and general region. This is separate from files processed by the app and command-line tool.

The app stores editor preferences locally. Opening the standard EULA or this page from the subscription screen leaves the app and is handled by Apple or the website host under their policies. This policy will be updated if network access, analytics, cloud sync, or crash reporting changes.

プライバシーポリシー

DataLayer Studio は、選択した動画、FIT/GPX アクティビティファイル、書き出しファイルをデバイス上でローカルに処理します。これらには位置、健康、トレーニングのデータが含まれる場合があります。アプリは元動画、アクティビティファイル、プレビュー、書き出し内容をアップロードせず、独自のアプリ分析、バックグラウンドでのメディア送信もありません。

COROS 接続に対応する iOS/iPadOS 版では、利用者がシステムの認証画面を開き、COROS のウェブサイトでログインしてアクセスを許可します。DataLayer Studio は COROS のパスワードを受け取りません。共通クライアントは Project-S と表示され、固定コールバックが認証コードと state を独立した Cloudflare Workers サービスへ転送します。サービスは COROS の access token、refresh token、openId を専用 D1 データベースに暗号化して保存し、認証状態、時刻、App セッションのハッシュ、およびリクエスト制限用の日ごとにソルトを変えた IP アドレスのハッシュを保存します。ネットワーク事業者には送信元 IP が伝わりますが、App のデータベースに生の IP は保存しません。iPad は独立したセッションのみをデバイス専用 Keychain に保存し、プロジェクトや iCloud には含めません。接続後は日付でアクティビティを表示し、選択した FIT ファイルを読み込めます。サービスは COROS からファイルを転送し、FIT 内に含まれる GPS やトレーニングデータも App に届きます。アクティビティ概要と FIT の内容は D1 に保存せず、Sentry に送信しません。読み込んだファイルは現在のプロジェクトのローカルメディアフォルダに保存し、動画素材はアップロードしません。認証試行は十分、App セッションは九十日で期限切れとなり、期限切れの行は次の認証開始時に削除されます。接続解除はこの App のサーバー側接続とローカルセッションを削除し、FIT2AI や Project-S が使用する共通 COROS クライアントの認証は取り消しません。記録は接続の提供にのみ使用し、広告や行動分析には使用しません。COROS と Cloudflare はそれぞれのプライバシーポリシーに基づいてリクエストを処理します。macOS と CLI はこの接続を利用しません。

iOS/iPadOS の Garmin 読み込みは実験的な非公式機能です。選択した中国または国際 Garmin サービスへ端末から直接接続し、入力された認証情報と確認コードを HTTPS で Garmin に送信します。パスワードと確認コードは保存せず、アクセス・更新トークンは端末専用 Keychain にのみ保存し、プロジェクトや iCloud に含めません。接続解除は端末のトークンのみを削除し、Garmin 側のセッションは失効させません。要求に応じてアクティビティを取得し、選択した FIT を端末でダウンロード・展開して、GPS やトレーニングデータとともに現在のプロジェクトに保存します。DataLayer Studio のサーバーは経由しません。診断には操作段階、地域、ステータスコード、技術的エラーを記録しますが、認証情報、確認コード、トークン、運動内容は含めません。Garmin の運動のアップロード、変更、削除は行いません。Garmin は独自のプライバシーポリシーに従って要求を処理します。

レイアウトプリセットと選択中のデフォルトプリセットは、Apple iCloud Key-Value Store で同期できます。同期対象はコンポーネントの種類、位置、外観などのコンパクトなプリセット定義だけです。動画、アクティビティファイル、GPS 軌跡、テレメトリーサンプル、プレビュー、書き出しファイルは同期されません。

OpenWeather API Key を保存すると、現在のアクティビティの天気を更新します。保存済みの天気記録がないアクティビティを読み込みまたはインポートした場合も、自動で天気を取得することがあります。利用できる場合はまずローカルキャッシュを使用します。リクエストはアクティビティの位置、時刻、選択言語、API Key を OpenWeather に送信します。動画、FIT ファイル、プレビュー、書き出し内容、その他の運動指標は送信しません。天気結果はローカルにキャッシュされ、プロジェクトのアクティビティ記録とともに保存できます。iOS/iPadOS の Key はデバイス専用 Keychain にのみ保存され、天気インスペクタで削除でき、プロジェクトや iCloud には含まれません。

OpenWeather は API Key を使ってリクエストを OpenWeather アカウントに関連付け、サービス提供のため API 製品ごとの呼び出し回数を保持します。同社のプライバシーポリシーによると、API リクエストの位置、時刻、その他のパラメータは保持しません。この任意のサービスは広告目的のトラッキングを行いません。

App Store 版は Apple 提供の集計分析とクラッシュ指標を利用します。macOS と正式な iOS/iPadOS App では Sentry クラッシュ・エラーレポートを利用します。macOS は初期設定がオンで、設定から無効にできます。正式な iOS/iPadOS App では常に有効で、切り替えスイッチはなく、以前の無効設定は適用されません。有効にすると、問題の調査のためスタック、機密情報を除去した原因、固定の操作名、アプリ・デバイスのバージョン、固定のエラー分類、および macOS の限られた書き出し技術情報(段階、コーデック、サイズ、フレーム数、所要時間、書き出しごとのランダム ID)を米国の Sentry に送信します。素材、運動データ、ファイルパス、未処理のエラー内容、キーは送信せず、広告追跡や利用行動分析には使用しません。iOS/iPadOS はランダムなインストール ID で障害を関連付けます。パスワード、トークン、私有パスを除去した技術的なエラー説明と原因の連鎖、最大 100 件の操作記録、編集状態、書き出し段階とフレーム位置、メモリ・温度状態、COROS のエンドポイント・ステータス・所要時間・リクエスト ID を保持します。クラッシュ健全性セッション、異常終了とハング検知を有効にしますが、IP 収集は要求しません。macOS で無効にすると送信待ちのローカル診断キャッシュを削除します。送信済みレポートにはプロジェクトの現在の保存設定が適用されます。スクリーンショット、画面録画、自動ネットワーク追跡は無効です。CLI とモバイル開発用ホストは Sentry を起動しません。データの取り扱いは Sentry のプライバシーポリシーをご覧ください。このウェブサイトは Google Analytics を使用し、ページ閲覧、デバイスとブラウザの詳細、おおよその地域などの集計訪問情報を収集します。これはアプリとコマンドラインツールが処理するファイルとは別のものです。

アプリは編集設定をローカルに保存します。サブスクリプション画面から標準 EULA またはこのページを開くとアプリ外に移動し、Apple またはウェブサイトホストのポリシーに従って処理されます。ネットワークアクセス、分析、クラウド同期、クラッシュ報告が変更された場合、このポリシーも更新します。