Package Exports
- @elding/sdk
- @elding/sdk/dist/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@elding/sdk) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
@elding/sdk
Utilise tes clés API sans jamais les écrire dans ton code. Elding garde la clé hors de ton app : ton code manipule un placeholder, la vraie valeur est injectée au dernier moment et verrouillée à un seul domaine (anti-exfiltration).
npm install @elding/sdkPour une clé API HTTP : configure()
Utilise configure() pour toute clé d'API HTTP (OpenAI, Mistral, Stripe,
Resend, etc.). Retourne de quoi faire un fetch normal, sans jamais exposer la clé.
import { configure } from "@elding/sdk";
// "MISTRAL_KEY" = nom du secret dans ton vault Elding.
// 2e arg = le domaine de l'API (verrouillage anti-fuite).
const { apiKey, baseURL } = await configure("MISTRAL_KEY", "https://api.mistral.ai");
const res = await fetch(`${baseURL}/v1/chat/completions`, {
method: "POST",
headers: { Authorization: `Bearer ${apiKey}`, "Content-Type": "application/json" },
body: JSON.stringify({ model: "mistral-small-latest", messages: [...] }),
});Important :
- Utilise toujours
baseURLdans tonfetch, jamais l'URL de l'API en dur. En dev,baseURLpointe vers le proxy local qui injecte la vraie clé. - Mets
apiKeydans un header (Authorization,x-api-key…), jamais dans l'URL. configure()est réservé aux API HTTP. Pour autre chose, voirsecret().
Pour un secret non-HTTP : secret()
DATABASE_URL, REDIS_URL, JWT_SECRET… tout ce qui n'est pas une API HTTP.
Retourne la valeur brute. Jamais dans process.env, effacée de la mémoire après
5 min (réglable via ELDING_CACHE_TTL_MS).
import { secret } from "@elding/sdk";
const dbUrl = await secret("DATABASE_URL");Plusieurs secrets d'un coup : client()
import { client } from "@elding/sdk";
const elding = await client();
const dbUrl = elding.secret("DATABASE_URL");Règle simple
- Clé qui part dans une requête HTTP →
configure(nom, "https://api.exemple.com"). - N'importe quel autre secret →
secret(nom). - Jamais de clé en dur, jamais dans
process.env, jamais dans l'URL.
Dev vs prod
- Dev (
elding proxy -- npm run dev) : la clé n'entre jamais dans ton process. - Prod (serverless) : la clé est récupérée du vault au runtime. Elle reste verrouillée au domaine, surveillée, révocable en un clic.