Node
This guide demonstrates how to use Infisical to manage secrets for your Node stack from local development to production. It uses:
- Infisical (you can use Infisical Cloud or a self-hosted instance of Infisical) to store your secrets.
- The infisical-node client SDK to fetch secrets back to your Node application on demand.
Project Setup
To begin, we need to set up a project in Infisical and add secrets to an environment in it.
Create a project
-
Create a new project in Infisical.
-
Add a secret to the development environment of this project so we can pull it back for local development. In the Secrets Overview page, press Explore Development and add a secret with the key
NAME
and valueYOUR_NAME
.
Create an Infisical Token
Now that we’ve created a project and added a secret to its development environment, we need to provision an Infisical Token that our Node application can use to access the secret.
- Head to the Project Settings > Service Tokens and press Add New Token.
- Call the token anything like My App Token and select Development under Environment.
- Copy the token and keep it handy.
Create a Node app
For this demonstration, we use a minimal Express application. However, the same principles will apply to any Node application such as those built on Koa or Fastify.
Create an Express app
Initialize a new Node.js project with a default package.json
file.
npm init -y
Install express
and infisical-node, the client Node SDK for Infisical.
npm install express infisical-node
Finally, create an index.js file containing the application code.
const express = require("express");
const app = express();
const PORT = 3000;
const client = new InfisicalClient({
token: "YOUR_INFISICAL_TOKEN"
});
app.get("/", async (req, res) => {
const name = (await client.getSecret("NAME")).secretValue;
res.send(`Hello, ${name}!`);
});
app.listen(PORT, () => {
console.log(`Example app listening on port ${PORT}`);
});
Here, we initialized a client
instance of the Infisical Node SDK with the Infisical Token
that we created earlier, giving access to the secrets in the development environment of the
project in Infisical that we created earlier.
Finally, start the app and head to http://localhost:3000
to see the message Hello, Your Name.
node index.js
The client fetched the secret with the key NAME
from Infisical that we returned in the response of the endpoint.
At this stage, you know how to fetch secrets from Infisical back to your Node application. By using Infisical Tokens scoped to different environments, you can easily manage secrets across various stages of your project in Infisical, from local development to production.
FAQ
See also:
- Explore the Node SDK