encore-secret

Par encoredev · skills

Gérez les clés API, les identifiants et autres secrets dans Encore.ts en utilisant `secret(...)` depuis `encore.dev/config`.

npx skills add https://github.com/encoredev/skills --skill encore-secret

Encore Secrets

Instructions

Les secrets sont des valeurs chiffrées, scoped par environnement et gérées par Encore. Déclarez-les au niveau du package en appelant secret(name) et lisez-les en appelant la fonction retournée.

import { secret } from "encore.dev/config";

// Package-level declaration
const stripeKey = secret("StripeSecretKey");

// Read inside a handler
async function chargeCustomer() {
  const key = stripeKey();        // <-- function call returns the value
  const stripe = new Stripe(key);
  // ...
}

Les noms de secrets sont globalement uniques dans l'application (le même nom se résout à la même valeur partout).

Setting values

# Set per environment type
encore secret set --type prod StripeSecretKey
encore secret set --type dev StripeSecretKey
encore secret set --type local StripeSecretKey

Types d'environnement : production (alias prod), development (alias dev), preview (alias pr), local.

Local overrides

Pour le développement local sans passer par encore secret set, créez un fichier .secrets.local.cue à la racine du repo (gitignore-le) :

StripeSecretKey: "sk_test_local_..."
GitHubAPIToken:  "ghp_local_..."

Common usage patterns

// HTTP headers
const githubToken = secret("GitHubAPIToken");
const resp = await fetch("https://api.github.com/user", {
  headers: { Authorization: `token ${githubToken()}` },
});

// Webhook signature verification
const stripeWebhookSecret = secret("StripeWebhookSecret");
stripe.webhooks.constructEvent(rawBody, sig, stripeWebhookSecret());

// Connecting to a third-party SDK
const openaiKey = secret("OpenAIKey");
const openai = new OpenAI({ apiKey: openaiKey() });

Guidelines

  • Déclarez toujours secret(...) au niveau du package, jamais à l'intérieur de fonctions.
  • Lisez avec un appel de fonction : stripeKey() et non stripeKey.
  • Définissez des valeurs distinctes par environnement via encore secret set --type <env>.
  • Ne commitez jamais les valeurs de secrets ; utilisez .secrets.local.cue pour les overrides locaux et gitignore-le.
  • Pour les secrets de signature webhook spécifiquement, consultez également la skill encore-webhook.

Skills similaires