コンテンツにスキップ

シークレットと環境変数

Convex バックエンド向けの API キーと環境変数を管理します。

Builder ツールバーの Settings ボタンをクリックすると、Settings シートが開きます。シートは次の3つのセクションで構成されています。

セクション用途
Generalプロジェクト名とナレッジベース
SEO & sharingサイトのタイトル、説明、ファビコンの設定
SecretsConvex バックエンド向けの環境変数

シークレットを追加するには?

Section titled “シークレットを追加するには?”
  1. Builder ツールバーの Settings ボタンをクリックする
  2. Secrets タブを開く
  3. 名前(例: STRIPE_SECRET_KEY)と値を入力する
  4. Add をクリックする

アプリでシークレットを使うには?

Section titled “アプリでシークレットを使うには?”

シークレットはアプリの Convex バックエンドに同期されます。Convex の action / mutation / query コード内では process.env.SECRET_NAME で参照できます。シークレットはフロントエンドのコードや pod レベルの環境変数としては利用できません。これにより、シークレットがブラウザバンドルに漏洩するのを防ぎます。

AI は機能を構築する際、シークレットを自動的に活用します。

  • "Accept payments with Stripe"STRIPE_SECRET_KEY を使用
  • "Send emails with Resend"RESEND_API_KEY を使用
  • "Add Google OAuth"GOOGLE_CLIENT_IDGOOGLE_CLIENT_SECRET を使用

シークレットにアクセスできるのは Convex バックエンド関数(actions および mutations)のみで、フロントエンドの React コードからは参照できません。AI は process.env 経由でシークレットを読み取る Convex 関数を生成します。

作成後にシークレットを確認・編集できますか?

Section titled “作成後にシークレットを確認・編集できますか?”

シークレットの値はデフォルトでマスクされています。表示を切り替えることで値を確認したり、更新したり、削除して再作成したりできます。

AI はシークレットを参照できますか?

Section titled “AI はシークレットを参照できますか?”

AI はシークレットの名前は参照できますが、値は参照できません。これにより、機密データを露出させることなく、機能構築時に正しい環境変数を参照できるようになっています。

Proyecta は一般的な機密キーのパターン(API キー、トークン、パスワードなど)を自動的に検出し、UI 上でその値をマスクします。

SEO & sharing セクションでは次の項目を設定できます。

  • Site title — ブラウザタブと検索結果に表示されます
  • Site description — SEO のメタディスクリプションとして使用されます
  • Favicon — ブラウザタブに表示されるアイコンです

これらの設定はプロジェクトに保存され、publish 時に反映されます。

Knowledge Base セクションでは、AI がアプリを構築する際に参照するリファレンス素材やコンテキストを追加できます。ブランドガイドライン、技術仕様書、その他 AI がより良い判断を下すために役立つドキュメントを追加してください。

シークレットは暗号化されていますか?

シークレットはプロジェクトに保存され、Convex deployment に同期されます。コミットされたコードに含まれることはありません。

開発環境と本番環境でシークレットを分けられますか?

現時点では、シークレットは開発環境のランタイムと公開済み(本番)の Convex deployment の両方に適用されます。環境ごとのシークレット管理は今後のリリースで対応予定です。

誤ってシークレットを露出してしまった場合は?

古いシークレットをすぐに削除し、サードパーティプロバイダー側でキーを無効化してから、新しいシークレットを作成してください。

シークレットとコネクターの違いは何ですか?

シークレットはご自身で管理する生の環境変数です。コネクターは Proyecta が認証情報の保存、認証、トークンの更新、監査ログをすべて代わりに管理するマネージド統合です。Stripe、Slack、Resend、ElevenLabs など対応コネクターがある場合はコネクターを使用し、まだコネクターがないサービスにはシークレットを使用してください。