Configuration

ProofScanの設定管理とシークレット管理

config - 設定管理

ProofScanの設定ファイルを管理します。

サブコマンド

config init

設定ファイルを初期化します。

pfscan config init

config path

設定ファイルのパスを表示します。

pfscan config path

出力例:

  • Linux: ~/.config/proofscan/config.json
  • macOS: ~/Library/Application Support/proofscan/config.json
  • Windows: %APPDATA%\proofscan\config.json

config show

現在の設定を表示します。

# 人間が読みやすい形式
pfscan config show

# JSON形式
pfscan config show --json

config edit

デフォルトエディタで設定ファイルを編集します。

pfscan config edit

設定ファイルの構造

{
  "version": 1,
  "connectors": [
    {
      "id": "time",
      "enabled": true,
      "transport": {
        "type": "stdio",
        "command": "npx",
        "args": ["-y", "@modelcontextprotocol/server-time"]
      }
    }
  ],
  "retention": {
    "keep_last_sessions": 50,
    "raw_days": 7,
    "max_db_mb": 500
  }
}

設定項目

項目 説明 デフォルト
version 設定ファイルのバージョン 1
connectors MCPサーバー接続設定の配列 []
retention.keep_last_sessions コネクタごとに保持するセッション数 50
retention.raw_days 生のJSONデータを保持する日数 7
retention.max_db_mb データベースの最大サイズ (MB) 500

secrets - シークレット管理

APIキーやトークンなどの秘密情報を管理します。

サブコマンド

secrets list

登録されているシークレットの一覧を表示します。

pfscan secrets list
pfscan secrets list --json

出力例:

Secrets:
  OPENAI_API_KEY       (set)
  GITHUB_TOKEN         (set)
  DATABASE_URL         (not set)

secrets set

シークレットを設定します。

# 対話式入力(推奨)
pfscan secrets set OPENAI_API_KEY

# 直接指定(スクリプト向け)
pfscan secrets set GITHUB_TOKEN --value "ghp_xxxxxxxxxxxx"

secrets edit

デフォルトエディタでシークレットファイルを編集します。

pfscan secrets edit

secrets prune

使用されていないシークレットを削除します。

# ドライラン(削除するものを表示)
pfscan secrets prune

# 実際に削除
pfscan secrets prune --yes

secrets export

シークレットをエクスポートします。

# 暗号化してエクスポート(推奨)
pfscan secrets export --file secrets.enc --password

# プレーンテキストでエクスポート(注意)
pfscan secrets export --file secrets.json

secrets import

シークレットをインポートします。

# 暗号化ファイルからインポート
pfscan secrets import --file secrets.enc --password

# プレーンテキストからインポート
pfscan secrets import --file secrets.json

セキュリティのベストプラクティス

💡 推奨事項:
  • 対話式入力(secrets set のみ)を使用する
  • エクスポート時は必ず暗号化する
  • シークレットファイルをバージョン管理に含めない
  • 定期的に secrets prune で未使用のシークレットを削除する
  • 環境変数として設定し、コードにハードコードしない

doctor - 診断・修復

データベースとシステムの問題を診断・修復します。

基本的な使い方

# 診断のみ
pfscan doctor

# 診断と修復
pfscan doctor --fix

# 詳細出力
pfscan doctor --verbose

チェック項目

  • データベースファイルの整合性
  • スキーマバージョンの確認
  • インデックスの整合性
  • 外部キー制約の検証
  • 孤立レコードの検出
  • 破損したJSONデータの検出

トラブルシューティング

# 問題の確認
pfscan doctor

# 自動修復を試みる
pfscan doctor --fix

# 最終手段:データベース再初期化(データが失われます)
rm ~/.config/proofscan/events.db
pfscan config init

グローバルオプション

すべてのコマンドで使用可能なオプションです。

オプション 説明
-c, --config <path> カスタム設定ファイルのパスを指定
--json JSON形式で出力
-v, --verbose 詳細な出力を表示
-h, --help ヘルプを表示
-V, --version バージョンを表示

使用例

# カスタム設定ファイルを使用
pfscan -c ~/my-config.json status

# JSON出力をjqでフィルタ
pfscan view --limit 10 --json | jq '.[] | select(.status == "ERR")'

# 詳細モード
pfscan -v scan start --id time

よくある質問

Q. 設定ファイルの場所がわからない

A. pfscan config path で確認できます。

Q. 設定ファイルを削除してしまった

A. pfscan config init で再作成できます。コネクタ設定は再度追加する必要があります。

Q. シークレットが反映されない

A. 以下を確認してください:

  • pfscan secrets list で設定済みか確認
  • 環境変数名が正しいか確認
  • ProofScanまたはMCPサーバーを再起動

Q. データベースが破損した

A. pfscan doctor --fix で修復を試みてください。それでもダメな場合は、rm ~/.config/proofscan/events.db でデータベースを削除し、再初期化してください。