encore-go-secret について
Encore Goアプリで暗号化され環境ごとに管理されるシークレットを宣言・利用するためのスキルです。実行時の参照、環境別の値、ローカル上書き、Webhook署名用シークレットを説明します。
主な機能
- 01構造体フィールドでのシークレット宣言
- 02環境ごとの値の設定
- 03ローカルファイルによる上書き
- 04Webhook署名の検証への利用
活用シーン
- 01環境別のAPIキー設定
- 02ローカル開発時のシークレット上書き
- 03Webhookリクエスト署名の検証
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ encoredev/ skills --skill encore-go-secretインストール後、Claude Code で/encore-go-secretを入力して読み込まれたか確認します。
詳細
Encore Go シークレット
手順
シークレットは Encore によって管理される、暗号化された環境スコープの値です。パッケージレベルの secrets 構造体として宣言します — Encore はフィールド名を読み取り、実行時にそれぞれを適切な値に解決します。
package email
var secrets struct {
SendGridAPIKey string
SMTPPassword string
}
func sendEmail() error {
apiKey := secrets.SendGridAPIKey
// Use the secret...
return nil
}
シークレットキーはアプリケーション全体でグローバルに一意です — SendGridAPIKey は、どのパッケージで宣言されても同じ値に解決されます。
値の設定
# Set per environment type
encore secret set --type prod SendGridAPIKey
encore secret set --type dev SendGridAPIKey
encore secret set --type local SendGridAPIKey
環境タイプ: production (エイリアス prod)、development (エイリアス dev)、preview (エイリアス pr)、local。
ローカルでの上書き
encore secret set を経由せずにローカル開発を行うには、リポジトリのルートに .secrets.local.cue ファイルを作成します (gitignore に追加してください):
SendGridAPIKey: "SG.local-test-key"
GitHubAPIToken: "ghp_local_..."
一般的な使用パターン
package github
import (
"context"
"net/http"
)
var secrets struct {
GitHubAPIToken string
}
func callGitHub(ctx context.Context) error {
req, _ := http.NewRequestWithContext(ctx, "GET", "https://api.github.com/user", nil)
req.Header.Set("Authorization", "token "+secrets.GitHubAPIToken)
resp, err := http.DefaultClient.Do(req)
if err != nil {
return err
}
defer resp.Body.Close()
return nil
}
package webhooks
var secrets struct {
StripeWebhookSecret string
}
// Verify Stripe signature using secrets.StripeWebhookSecret in a raw endpoint.
ガイドライン
- シークレットは個別の
secret(...)呼び出しではなく、パッケージレベルのsecrets構造体として宣言してください。 - フィールド名は
encore secret setで設定したシークレット名と完全に一致させる必要があります。 - 環境ごとに異なる値を設定するには
encore secret set --type <env>を使用してください。 - シークレットの値をコミットしないでください。ローカルでの上書きには
.secrets.local.cueを使用し、gitignore に追加してください。 - 特に Webhook 署名用のシークレットについては、
encore-go-webhookスキルも参照してください。
コメント
Markdown 対応