Skip to content

セキュリティとプライバシー:ローカルファイルアクセス、APIマスキング、公式インターフェース

ローカルファースト原則

opencode-mystatusは「読み取り専用ローカルファイル + 公式API直接クエリ」の原則に従い、すべての機密操作はユーザーのマシン上で完了し、第三者サーバーを経由しません。

核心概念

プラグインのセキュリティデザインは3つの核心原則に基づいています:

  1. 読み取り専用原則:ローカル認証ファイルのみを読み取り、書き込みや修正を行わない
  2. 公式インターフェース:各プラットフォームの公式APIのみを呼び出し、第三者サービスを使用しない
  3. データマスキング:表示時に機密情報(APIキーなど)を自動的に隠す

ローカルファイルアクセス(読み取り専用)

プラグインが読み取るファイル

プラグインは2つのローカル設定ファイルのみを読み取り、すべて読み取り専用です:

ファイルパス用途ソースコードの場所
~/.local/share/opencode/auth.jsonOpenCode公式認証ストレージmystatus.ts:35
~/.config/opencode/antigravity-accounts.jsonAntigravityプラグインアカウントストレージgoogle.ts

ファイルを修正しない

ソースコードでは readFile 関数のみを使用してファイルを読み取り、writeFile やその他の修正操作は一切行いません。これにより、プラグインが誤って設定を上書きすることがなくなります。

APIキーの自動マスキング

マスキングとは?

マスキング(Masking)とは、機密情報を表示する際、一部の文字のみを表示し、重要部分を隠すことです。

例:Zhipu AI APIキーが以下の場合:

sk-9c89abc1234567890abcdefAQVM

マスキング後の表示:

sk-9c8****fAQVM

マスキングルール

プラグインは maskString 関数を使用してすべての機密情報を処理します:

  • デフォルトで前4桁と後4桁を表示
  • 中間部分を **** に置換
  • 文字列が短すぎる(≤8桁)場合、そのまま返す

公式インターフェース呼び出し

プラグインが呼び出すAPI

プラグインは各プラットフォームの公式APIのみを呼び出し、第三者サーバーを経由しません:

プラットフォームAPIエンドポイント用途
OpenAIhttps://chatgpt.com/backend-api/wham/usageクォータクエリ
Zhipu AIhttps://bigmodel.cn/api/monitor/usage/quota/limitTokenクォータクエリ
GitHub Copilothttps://api.github.com/copilot_internal/userクォータクエリ

公式APIのセキュリティ

これらのAPIエンドポイントはすべて各プラットフォームの公式インターフェースで、HTTPS暗号化送信を使用します。プラグインは「クライアント」としてリクエストを送信するだけで、データの保存や転送を行いません。

セキュリティとプライバシーに関するQ&A

プラグインは私のAPIキーを盗むのですか?

盗みません。プラグインはAPIキーを使用して公式APIにリクエストを送信するだけで、第三者サーバーに保存や転送を行いません。すべてのコードはオープンソースで、監査できます。

なぜマスキングされたAPIキーを表示するのですか?

プライバシー保護のためです。クエリ結果のスクリーンショットを共有しても、完全なAPIキーは漏洩しません。マスキング後は前後4桁のみが表示され、中間の重要部分は隠されています。

プラグインは私の設定ファイルを修正しますか?

修正しません。プラグインは readFile のみを使用してファイルを読み取り、書き込み操作を一切行いません。設定ファイルの形式が間違っている場合、プラグインはエラーメッセージを返し、修正や上書きを試みません。

まとめ

  • 読み取り専用原則:プラグインはローカル認証ファイルのみを読み取り、一切修正を行わない
  • APIマスキング:表示時にAPIキーの重要部分を自動的に隠す
  • 公式インターフェース:各プラットフォームの公式APIのみを呼び出し、第三者サービスを使用しない
  • オープンソース透明性:すべてのコードはオープンソースで、セキュリティメカニズムを監査できます

付録:ソースコード参照

クリックしてソースコードの場所を展開
機能ファイルパス行番号
認証ファイル読み取りplugin/mystatus.ts38-40
APIマスキング関数plugin/lib/utils.ts130-135