ponshu-room-lite/lib/secrets.dart

55 lines
2.0 KiB
Dart
Raw Normal View History

import 'secrets.local.dart' as local;
/// アプリケーションの機密情報と設定を管理するクラス
///
/// ビルド時に環境変数を使って値を上書きできます:
/// ```bash
/// flutter build apk --dart-define=AI_PROXY_URL=http://your-server:8080
/// ```
///
/// ローカル開発時:
/// 1. lib/secrets.local.dart.example をコピーして lib/secrets.local.dart を作成
/// 2. 新しく発行したAPIキーを設定
/// 3. secrets.local.dart は .gitignore に含まれているため安全
class Secrets {
/// AI Proxy サーバーのベースURL
///
/// デフォルト: Synology NAS上のAI Proxyサーバー (Tailscale IP)
/// ビルド時の上書き: --dart-define=AI_PROXY_URL=...
static const String aiProxyBaseUrl = String.fromEnvironment(
'AI_PROXY_URL',
defaultValue: 'http://100.76.7.3:8080',
);
/// AI Mode: Proxy(Home) vs Direct(Cloud)
/// If false, connects directly to Google Gemini API (Works anywhere).
static const bool useProxy = false;
/// AI Proxy サーバーの解析エンドポイントURL
static const String aiProxyAnalyzeUrl = '$aiProxyBaseUrl/analyze';
/// Gemini API Key
/// ⚠️ セキュリティのため、defaultValueは空です
/// ローカル開発時: lib/secrets.local.dart を作成してキーを設定
/// ビルド時の上書き: --dart-define=GEMINI_API_KEY=...
static const String _geminiApiKeyEnv = String.fromEnvironment(
'GEMINI_API_KEY',
defaultValue: '', // セキュリティのため空文字列
);
/// 実際に使用するGemini APIキー
/// 優先順位: 環境変数 > ローカル設定ファイル
static String get geminiApiKey {
// 1. 環境変数が設定されていればそれを使用
if (_geminiApiKeyEnv.isNotEmpty) {
return _geminiApiKeyEnv;
}
// 2. ローカル設定ファイルから取得
return local.SecretsLocal.geminiApiKey;
}
// static const String driveClientId = String.fromEnvironment('DRIVE_CLIENT_ID', defaultValue: '');
}