コンテンツにスキップ

シークレットと環境変数

カスタムバックエンドおよびリアルタイムコード向けのAPIキーとサーバーサイドシークレットを管理します。

ほとんどのProyectaアプリではシークレットは一切不要です。決済、メール、認証、コンテンツはプラットフォームの機能として提供されており、Proyectaが自動的に接続して認証情報を管理します(コネクターを参照)。大半のアプリはここにシークレットを追加することはありません。シークレットが必要になるのは、いずれの機能やコネクターもカバーしていないサービスを利用する場合のみで、通常はカスタムリアルタイム/バックエンドコードを持つアプリに限られます(リアルタイムバックエンドは近日公開予定です)。

Builderのツールバーにある Settings ボタンをクリックすると、Settingsシートが開きます。このシートには3つのセクションがあります。

セクション 用途
General プロジェクト名とナレッジベース
SEO & sharing サイトのタイトル、説明、ファビコンの設定
Secrets カスタムバックエンド/リアルタイムコード向けのサーバーサイドシークレット

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

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

アプリ内でシークレットを使用するには?

Section titled “アプリ内でシークレットを使用するには?”

リアルタイムバックエンドを持つアプリの場合、シークレットはそのデプロイメントに同期され、サーバーコード内で process.env.SECRET_NAME として参照されます。フロントエンドコードやPodレベルの環境変数としては利用できません。これにより、シークレットがブラウザバンドルに漏洩するのを防ぎます。

一般的なインテグレーションでは、通常シークレットを追加する必要はありません。Proyectaが機能またはコネクターの一部として認証情報を管理するからです。

  • "Accept payments"Commerce 機能がStripe Connect(チェックアウト、注文、支払い)を自動設定します
  • "Send emails"email 機能/マネージドコネクターがプロバイダーキーを管理します
  • "Add sign-in"auth 機能がOIDCクライアントをプロビジョニングし、OAuth設定を注入します

シークレットをここに追加するのは、機能やコネクターでカバーされていないサービスを、カスタムリアルタイム/バックエンドコードを持つアプリで利用する場合のみにしてください(リアルタイムバックエンドは近日公開予定です)。そのコードは process.env 経由でシークレットを読み取ります。

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

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

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

AIはシークレットを見ることができますか?

Section titled “AIはシークレットを見ることができますか?”

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

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

SEO & sharing セクションでは以下を設定できます。

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

これらの設定はプロジェクトに保存され、公開時に適用されます。

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

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

シークレットはプロジェクトに保存され、リアルタイムバックエンドを持つアプリでは該当デプロイメントに同期されます。コミットされたコードには一切含まれません。

開発環境と本番環境でシークレットを分けることはできますか?

現時点では、シークレットは開発環境と公開済みアプリの両方に適用されます。環境ごとのシークレット管理は、将来のリリースで対応予定です。

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

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

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

シークレットは自分自身で管理する生の環境変数です。コネクターはマネージドインテグレーションであり、Proyectaが認証情報の保存、認証、トークンの更新、および監査ログを代わりに管理します。利用可能な場合はコネクター(Stripe、Slack、Resend、ElevenLabs)を使用し、まだコネクターが存在しないサービスにはシークレットを使用してください。