Secrets
Les secrets sont des valeurs propres à votre application (clés d'API, jetons, chaînes de connexion), tenues hors de votre code source. Vos pages, loaders, actions et routes API les lisent comme variables d'environnement.
Lire une valeur
const key = process.env.STRIPE_KEY;
process.env ne contient que les variables déclarées pour votre site, plus quelques variables
neutres comme NODE_ENV et TZ. Chaque site voit ses propres valeurs : deux applications de la
plateforme ne lisent jamais les variables l'une de l'autre.
Déclarer des valeurs
Les réglages non secrets vont dans le bloc [env] de bext.config.toml :
[env]
NODE_ENV = "production"
PUBLIC_BASE_URL = "https://my-app.inklura.fr"
bext.config.toml fait partie de votre code source : n'y mettez jamais un vrai secret. Les valeurs
secrètes sont fournies à votre application par la plateforme, en dehors de votre dépôt, et
apparaissent dans process.env aux côtés des valeurs de [env]. Quand les deux définissent le même
nom, la valeur de [env] l'emporte.
Les modifications de [env] sont prises en compte sans redémarrage.
Le namespace secrets du SDK
Le client createSdk (voir la Présentation du SDK) expose secrets.get(key), typé
Promise<string | null>. Il ne lève jamais d'erreur et retourne null quand rien n'est trouvé.
import { createSdk } from "@bext-stack/framework/sdk";
const sdk = createSdk("<app-id>");
const token = await sdk.secrets.get("WEBHOOK_TOKEN"); // string | null
sdk.secrets.get(nom) retourne un secret que la plateforme a provisionné pour votre application,
ou null s'il n'existe pas. Pour vos propres valeurs (clés d'API, jetons), lisez process.env
comme ci-dessus.
Et ensuite
| Page | Ce qu'elle couvre |
|---|---|
| Présentation du SDK | Le client createSdk |
| Référence de configuration | bext.config.toml |
| KV Store | Store de chaînes durable |