トラスト
トラストセンター
Sextant は、Salesforce の管理者と開発者のためのブラウザ拡張機能です。このページでは、Sextant があなたのデータをどう扱うのか、各記述がどのように確かめられているのか、そしてどこに限界があるのかを説明します。
Sextant が自らについて示すこと
Sextant が設定の「Privacy & security」(プライバシーとセキュリティ)に表示するものと同じ 6 つの記述です。それぞれに、どう確かめられているかを示しています。ブラウザによる強制、自動テストによる確認、またはリリースビルドごとの確認です。
-
Sextant がリクエストを送信する先は Salesforce だけです。また、Sextant のページからほかのサイトへの接続は、ブラウザによってブロックされます。
- ブラウザが強制
- 自動テストで確認
- すべてのリリースビルドで確認
意味しないこと: ブラウザがこれを強制するのは、Sextant 自身のページとサービスワーカーに対してです。Salesforce のページの中で動く Sextant の部分は、自分ではどのサイトにも何も送信せず(サービスワーカーに頼みます)、そのことはブラウザが強制するのではなく、テストで確かめています。ブラウザのポリシーは my.salesforce.com 配下のすべてのホストを許可しますが、コードは各リクエストを、使っているセッションの組織の API ホストにだけ送信します。Salesforce、ブラウザ、ほかの拡張機能が行うことについて述べたものではありません。
確認できる場所(コード、英語)
manifest.config.tscontent_security_policy.extension_pages, connect-src 'self' https://*.my.salesforce.comsecurity-qa/csp-enforcement.pw.tsloads the built extension; requests to other hosts never reach the networksrc/shared/salesforce-transport.tsthe only function that performs a request; destination checked per requestsrc/security/network-boundary.test.tsfails if any other module makes a request
-
アクセス解析、テレメトリ、クラッシュレポート、広告は一切ありません。
- ブラウザが強制
- 自動テストで確認
- すべてのリリースビルドで確認
意味しないこと: Chrome ウェブストアはすべての公開者に、インストール数などの集計された統計を表示します。また、Chrome 自体も Google と通信します(アップデートの確認など)。Sextant は、そのどちらにも何も送信しません。
確認できる場所(コード、英語)
scripts/release/scan-dist.mjsfails a release whose bundle contains an analytics or telemetry endpoint or SDKsrc/security/network-boundary.test.tsno request primitive outside the Salesforce transportmanifest.config.tsthe CSP leaves no destination for such data
-
Sextant のアカウントやサーバーは存在しません。Sextant での操作内容が開発者に送信されることはありません。
- ブラウザが強制
- リリース手順の一部
意味しないこと: 開発者に連絡した場合(サポートやセキュリティの報告のため)、送った内容は、ほかのメッセージと同じように受け取られます。
確認できる場所(コード、英語)
manifest.config.tsno host a Sextant server could live on is reachabledocs/security/RELEASE_SECURITY.mdadding a backend is a Trust Architecture Change requiring a policy update first
-
Sextant が実行するものはすべて、インストールされた拡張機能に含まれています。コードをダウンロードすることはありません。
- ブラウザが強制
- 自動テストで確認
- すべてのリリースビルドで確認
意味しないこと: アップデートは Chrome ウェブストアからパッケージ全体の新しいバージョンとして届き、リリースプロセスはビルドしたすべてのパッケージの SHA-256 を記録します。それでも、正当なアップデートが Sextant の動作を変えることはありえます。そのため、これらの記述に関わる変更は、この一覧の対応する変更とともにリリースしなければなりません。
確認できる場所(コード、英語)
Manifest V3 and manifest.config.tsscript-src 'self', no 'unsafe-eval'security-qa/csp-enforcement.pw.tsstring evaluation is refused in an extension pagesrc/security/code-boundary.test.tsno eval, Function constructor or HTML injection in the source
-
Salesforce のセッションは、リクエストに必要なときに読み取られます。Sextant がセッションを保存、記録、エクスポートすることはありません。
- 自動テストで確認
意味しないこと: Sextant は、ブラウザですでにお持ちのセッションを使います。Salesforce からログアウトすると、そのセッションは終わります。
確認できる場所(コード、英語)
src/background/index.tsgetSessionId: read from the cookie store per request, never writtensrc/security/session-boundary.test.tsthe session value never reaches storage, logs, messages or exports
-
Sextant が保存するデータは、このブラウザプロファイル内にとどまります。設定で確認、エクスポート、削除ができます。
- 自動テストで確認
意味しないこと: オペレーティングシステムとブラウザのプロファイルが提供するもの以上に、Sextant が暗号化することはありません。このブラウザのプロファイルにアクセスできる人は、誰でも読めます。
確認できる場所(コード、英語)
src/shared/data-inventory.tsevery stored key, classified; chrome.storage.local only (no sync)src/security/data-inventory.test.tsfails when code stores a key the inventory does not describe
よくある質問
Sextant は何にアクセスできますか?
Salesforce の Lightning ページ(表示されているテキストを読み取って特定するため)、組織自身の API(すでにお持ちのセッションで、あなたとして呼び出します)、そしてブラウザのプロファイルにある Sextant 自身のストレージです。下の権限の一覧表に、許可ごとの内容と、それがしないことを記載しています。
権限
拡張機能が要求するすべての権限と、その用途、そしてしないこと。
| 権限 | 用途 | しないこと |
|---|---|---|
storage | 設定、使用している組織、Sextant がそれらの組織から読み込んだ内容、ワークスペース、履歴を、このブラウザプロファイルに保存します。 | Google アカウントには何も同期せず、保存した内容をどこにも送信しません。 |
unlimitedStorage | 大規模な組織のメタデータは、ブラウザが拡張機能に既定で割り当てるストレージの上限を超えることがあります。 | Sextant 自身のストレージ以外のストレージや、ほかのサイトのデータへのアクセスを Sextant に与えるものではありません。 |
activeTab | Sextant のツールバーメニューが、メニューを開いたタブのアドレスを読み取れるようにします。これにより、表示中の Salesforce 組織の名前を表示できます。 | ほかのタブや後のアクセスには何の権限も与えず、ページ内でコードを実行せず、インストール時の警告も追加しません。Sextant は、Chrome が「閲覧履歴の読み取り」と説明している、より広範な `tabs` 権限は要求しません。 |
cookies | Sextant があなたに代わって Salesforce を呼び出すときに、組織の API アドレス用の Salesforce セッション Cookie を読み取ります。 | 読み取る Cookie は 1 つだけで、Salesforce のアドレス用に限られます。保存、記録、エクスポートすることはありません。ほかのサイトの Cookie は読み取れません。 |
alarms | ブラウザが Sextant のバックグラウンド処理を一時停止した後に、大規模な組織の長い読み込みを再開します。 | ブラウザを閉じている間は動作せず、Sextant の外では何もスケジュールしません。 |
https://*.lightning.force.com/* | Salesforce Lightning のページ。表示ラベルが何であるかを Sextant が示し、その場で翻訳を編集するのは、これらのページだけです。 | Sextant は、これらのページ上の表示ラベルのテキストをブラウザ内で読み取り、それが何かを特定します。ページの内容をどこにも送信しません。 |
https://*.my.salesforce.com/* | 組織の API アドレス。Sextant はそこで、既存のセッションを使って、あなたに代わって Salesforce 自身の API を呼び出します。 | 各リクエストは、そのリクエストが使うセッションの組織にのみ送信されます。 |
Sextant は何を、どこに保存しますか?
設定、使用した組織、読み取ったメタデータのキャッシュ、検知した変更の履歴、翻訳のスナップショット、待機中のリリース、ワークスペース、そして有効にした場合に限り開発者向けの診断情報です。すべて、お使いのコンピューターのブラウザプロファイルにある chrome.storage.local に保存されます。Google アカウントとは何も同期されません。
Sextant が保存するもの
Sextant がブラウザのプロファイルに保存するデータの種類ごとに、その理由と保存期間を示します。Sextant の設定の「Privacy & security」(プライバシーとセキュリティ)に表示されるものと同じ一覧で、保存を行うコードから生成されています。
| データ | 保存する理由 | 保存期間 |
|---|---|---|
| 各種設定 | Sextant を前回の設定のまま保つため。 | 変更またはリセットするまで。 |
| 使用した組織 | 組織ごとにデータを分けて保持し、作業中の組織を表示し、組織を切り替えるため。 | 削除するまで。その組織を開くたびに更新されます。 |
| 組織のメタデータキャッシュ | ホバー、検索、アクティビティに即座に応答し、ページごとに大規模な組織を読み込み直さないようにするため。 | 読み込むたびに置き換えられ、削除されるまで保持されます。必要に応じて Sextant が再度読み込みます。 |
| アクティビティ履歴と変更のベースライン | 何が変わったか、どれが自分の変更かを表示するため。Salesforce には、Sextant が後から再構築できるような同等の値変更履歴がないため、Sextant は確認した内容を保持します。 | 各組織で Sextant が確認した直近 30 日分で、上限は 3,000 件のイベントまたは 2 MB です。それより古いイベントは自動的に削除されます。設定で拡張ローカル履歴をオンにすると、代わりに約 180 日分を保持します(この場合も上限があります)。ベースラインは組織を読み込むたびに置き換えられます。 |
| 翻訳のスナップショット | 翻訳が反映されたかどうか、2 回の読み込みの間に何が変わったかを確認するため。 | 組織ごとの最新のスナップショット。古いものは置き換えられます。 |
| リリース記録 | ブラウザが再起動しても、Salesforce が完了するまでリリースを追跡し、リリースの内容を報告するため。 | 削除するまで保持されます。進行中のリリースは、完了するまで削除できません。 |
| ワークスペース | 作業中のコンポーネント一式と、変更したものの package.xml。 | アイテムを削除するか、ワークスペースを削除するまで。 |
| 診断データ | 記録すると決めた検出やパフォーマンスの問題を調査するため。 | 上限あり:新しいトレースとタイミング記録が最も古いものを置き換えます。消去するまで保持されます。 |
| このブラウザのほかの Salesforce ユーザー用に保持しているデータ | Sextant が読み込む内容は 1 人の Salesforce ユーザーの権限で許可された範囲なので、別のユーザーに表示されることはありません。また、別の人としてログインしても、Salesforce では取り戻せない同僚の履歴が消えてはなりません。そのユーザーが再びログインすると、手を加えずにそのまま返されます。 | そのユーザーが再びログインするまで、またはここで削除されるまで。メタデータキャッシュは組織ごとに直前の 1 ユーザー分だけ保持され、3 人目のユーザーのものに置き換えられます。Sextant が読み込んだユーザーを記録する前に保存されたデータは、誰にも表示されません。Salesforce から再取得できるものは削除され、それ以外は削除されるまでここに保管されます。 |
| 旧バージョンのデータ | 移行のみ。 | 移行または削除されるまで。 |
ブラウザの外に送られるものはありますか?
Salesforce 組織へのリクエストと、あなたが求めたときに限り、保存またはリリースする翻訳の変更です。ブラウザ自身のコンテンツセキュリティポリシーにより、Sextant のページとサービスワーカーはほかのサイトに接続できません。Salesforce のページの中で動く Sextant の部分は、リクエストを一切行いません。
Sextant はテレメトリーを収集しますか?
いいえ。アクセス解析、テレメトリー、クラッシュレポート、広告はありません。リリースビルドはすべて、公開の前にアクセス解析のエンドポイントや SDK が含まれていないかスキャンされます。
Sextant にはサーバーやアカウントがありますか?
いいえ。Sextant のサーバーもアカウントもありません。Sextant で行ったことが開発者に届くことはありません。サーバーを追加することは信頼アーキテクチャの変更(Trust Architecture Change)にあたり、リリースする前に、このページ、プライバシーポリシー、ストアの掲載情報で開示しなければなりません。
認証はどのように行われますか?
Sextant は、ブラウザですでにお持ちの Salesforce のセッションを使います。バックグラウンドの処理が、リクエストに必要なときに組織のセッション Cookie を読み取り、その組織の API アドレスにだけ送信します。セッションが保存、記録、書き出しされることはなく、パスワードを求められることもありません。
アップデートはどのように届きますか?
Chrome ウェブストアから、パッケージ全体の新しいバージョンとして届きます。Sextant は実行中にコードをダウンロードしません。コンテンツセキュリティポリシーがリモートのスクリプトと文字列の評価を禁止しており、どちらかを含むリリースビルドは自身のスキャンで不合格になります。
リリースはどのように検証されますか?
1 つのスクリプトが、クリーンなチェックアウトのタグ付きコミットからすべてのリリースをビルドし、最初に不合格となったチェックで止まります。型チェック、全テスト、情報漏えいのスキャン、再現可能なビルド、ビルドしたパッケージのスキャン、実際のブラウザでのコンテンツセキュリティポリシーの確認、ソフトウェア部品表、SHA-256 付きの決定的なパッケージ、そして承認済みの基準と比べた、信頼に関わるすべての差分です。一覧はリリースプロセスのページにあります。
ローカルのデータはどうすれば削除できますか?
Sextant の設定の「Privacy & security」(プライバシーとセキュリティ)で、データの種類ごとの使用量を確かめ、書き出し(セッションや認証情報は決して含まれません)、削除ができます。対象はキャッシュ、履歴、ワークスペース、診断情報、設定、1 つの組織のデータ、またはすべてです。ここで削除しても、Salesforce 側は何も変わりません。アンインストールすると、すべて削除されます。
どのような変更があれば、ここに書かれた内容が更新されますか?
サーバー、アカウント、アクセス解析、AI プロバイダー、新しい権限やホスト、新しい送信先、リモートのコード、新しい種類の保存データです。いずれも信頼アーキテクチャの変更(Trust Architecture Change)にあたり、それを含むリリースはセキュリティ上重要なものとして分類され、明示的な承認が必要です。また同じリリースで、このページ、プライバシーポリシー、データの取り扱いに関する文書、ストアの掲載情報を更新しなければなりません。
セキュリティ上の問題の報告
セキュリティ上の問題は、公開の場で報告しないでください。報告の方法、対象範囲、その後の流れは、セキュリティポリシーで説明しています。 セキュリティポリシー(英語)
非公開の報告窓口: security@usesextant.dev