mirror of
https://github.com/awatertrevi/infisical.git
synced 2026-09-22 13:39:35 +00:00
Revamp Node SDK docs
This commit is contained in:
@@ -50,9 +50,9 @@
|
||||
"url": "self-hosting"
|
||||
},
|
||||
{
|
||||
"name": "SDK",
|
||||
"name": "SDKs",
|
||||
"icon": "puzzle-piece",
|
||||
"url": "sdk"
|
||||
"url": "sdks"
|
||||
},
|
||||
{
|
||||
"name": "API Reference",
|
||||
@@ -192,9 +192,14 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"group": "SDK",
|
||||
"group": "SDKs",
|
||||
"pages": [
|
||||
"sdk/overview/usage"
|
||||
"sdks/overview/node",
|
||||
"sdks/overview/python",
|
||||
"sdks/overview/java",
|
||||
"sdks/overview/ruby",
|
||||
"sdks/overview/go",
|
||||
"sdks/overview/rust"
|
||||
]
|
||||
},
|
||||
{
|
||||
|
||||
@@ -1,103 +0,0 @@
|
||||
---
|
||||
title: "Usage"
|
||||
---
|
||||
|
||||
<Note>
|
||||
We're currently expanding the functionality of the Javascript SDK and working
|
||||
on mirror SDKs for other languages like Python as well. Follow this GitHub
|
||||
[issue](https://github.com/Infisical/infisical/issues/320) to stay updated.
|
||||
</Note>
|
||||
|
||||
Infisical provides a [Node SDK](https://github.com/Infisical/infisical-node) that users can easily install into their applications and use to fetch their secrets.
|
||||
|
||||
With the SDK, users can currently fetch back secrets and define default values.
|
||||
|
||||
<Tabs>
|
||||
<Tab title="Javascript">
|
||||
|
||||
## Installation
|
||||
|
||||
```bash
|
||||
$ npm install infisical-node
|
||||
```
|
||||
|
||||
## Import
|
||||
|
||||
```js
|
||||
// ES6 syntax
|
||||
import infisical from "infisical-node";
|
||||
|
||||
// ES5 syntax
|
||||
const infisical = require("infisical-node");
|
||||
```
|
||||
|
||||
## Initialization
|
||||
|
||||
If your app only needs to connect to one Infisical project, you should use `infisical.connect`. If you need to connect to multiple Infisical projects, use `infisical.createConnection`.
|
||||
|
||||
Both `connect` and `createConnection` take a parameter `token` and pull in the secrets accessible by that Infisical token.
|
||||
|
||||
```js
|
||||
// using async-await (recommended)
|
||||
await infisical.connect({
|
||||
token: "your_infisical_token",
|
||||
});
|
||||
```
|
||||
|
||||
```js
|
||||
// using promise chaining
|
||||
infisical.connect({
|
||||
token: "your_infisical_token"
|
||||
})
|
||||
.then(() => {
|
||||
console.log('Success!)
|
||||
})
|
||||
.catch(err => {
|
||||
console.error('Error: ', err);
|
||||
})
|
||||
```
|
||||
|
||||
Options:
|
||||
|
||||
| Option | Description | Default Value |
|
||||
| -------------------- | --------------------------------------------------------- | --------------------------- |
|
||||
| `token` | ❗️ An Infisical Token to be used to fetch secrets | `None` |
|
||||
| `siteURL` | Site URL of Infisical to connect to | `https://app.infisical.com` |
|
||||
| `attachToProcessEnv` | Whether or not to attach fetched secrets to `process.env` | `false` |
|
||||
|
||||
## Access a Secret Value
|
||||
|
||||
```js
|
||||
const dbURL = infisical.get("DB_URL");
|
||||
```
|
||||
|
||||
## Example with Express
|
||||
|
||||
```js
|
||||
const express = require("express");
|
||||
const port = 3000;
|
||||
const infisical = require("infisical-node");
|
||||
|
||||
app.get("/", (req, res) => {
|
||||
// access value
|
||||
const name = infisical.get("NAME");
|
||||
|
||||
res.send(`Hello! My name is: ${name}`);
|
||||
});
|
||||
|
||||
app.listen(port, async () => {
|
||||
// initialize client
|
||||
await infisical.connect({
|
||||
token: "YOUR_INFISICAL_TOKEN",
|
||||
});
|
||||
|
||||
console.log(`App listening on port ${port}`);
|
||||
});
|
||||
```
|
||||
|
||||
</Tab>
|
||||
<Tab title="Python">
|
||||
Coming soon.
|
||||
</Tab>
|
||||
|
||||
</Tabs>
|
||||
8
docs/sdks/overview/go.mdx
Normal file
8
docs/sdks/overview/go.mdx
Normal file
@@ -0,0 +1,8 @@
|
||||
---
|
||||
title: "Go"
|
||||
---
|
||||
|
||||
Coming soon.
|
||||
|
||||
Follow this GitHub
|
||||
[issue](https://github.com/Infisical/infisical/issues/436) to stay updated.
|
||||
8
docs/sdks/overview/java.mdx
Normal file
8
docs/sdks/overview/java.mdx
Normal file
@@ -0,0 +1,8 @@
|
||||
---
|
||||
title: "Java"
|
||||
---
|
||||
|
||||
Coming soon.
|
||||
|
||||
Follow this GitHub
|
||||
[issue](https://github.com/Infisical/infisical/issues/434) to stay updated.
|
||||
111
docs/sdks/overview/node.mdx
Normal file
111
docs/sdks/overview/node.mdx
Normal file
@@ -0,0 +1,111 @@
|
||||
---
|
||||
title: "Node"
|
||||
---
|
||||
|
||||
If you're working with Node.js, the official [infisical-node](https://github.com/Infisical/infisical-node) package is the easiest way to fetch secrets for your application.
|
||||
|
||||
## Installation
|
||||
|
||||
Run `npm` to add `infisical` to your project.
|
||||
|
||||
```bash
|
||||
npm install infisical-node --save
|
||||
```
|
||||
|
||||
## Initialization
|
||||
|
||||
Set up `infisical` asynchronously as early as possible in your application by importing and initializing the global instance with `infisical.connect([options])`.
|
||||
|
||||
This methods fetches back all the secrets in the project and environment accessible by the token passed in `options`.
|
||||
|
||||
<Tabs>
|
||||
<Tab title="ES6">
|
||||
```js
|
||||
import infisical from "infisical-node";
|
||||
|
||||
const main = async () => {
|
||||
await infisical.connect({
|
||||
token: "your_infisical_token",
|
||||
});
|
||||
|
||||
// your app logic
|
||||
}
|
||||
|
||||
main();
|
||||
```
|
||||
|
||||
</Tab>
|
||||
<Tab title="ES5">
|
||||
```js
|
||||
const infisical = require("infisical-node");
|
||||
|
||||
infisical.connect({
|
||||
token: "your_infisical_token"
|
||||
})
|
||||
.then(() => {
|
||||
// your application logic
|
||||
})
|
||||
.catch(err => {
|
||||
console.error('Error: ', err);
|
||||
})
|
||||
````
|
||||
</Tab>
|
||||
|
||||
</Tabs>
|
||||
|
||||
`infisical.connect([options])`
|
||||
|
||||
| Option | Description | Default Value |
|
||||
| --------- | -------------------------------------------------------------------------------------------- | --------------------------- |
|
||||
| `token` | An [Infisical Token](/getting-started/dashboard/token) scoped to a project and environment | `None` |
|
||||
| `siteURL` | Your self-hosted absolute site URL including the protocol (e.g. `https://app.infisical.com`) | `https://app.infisical.com` |
|
||||
| `debug` | Whether or not debug mode is on | `false` |
|
||||
|
||||
<Note>
|
||||
If you need to connect to multiple Infisical projects, you can use
|
||||
`infisical.createConnection([options])` to return a local instance of
|
||||
`infisical`.
|
||||
</Note>
|
||||
|
||||
## Usage
|
||||
|
||||
To get the value of secret, pass the name of its key into `infisical.get()`.
|
||||
|
||||
```js
|
||||
const value = infisical.get("SOME_KEY");
|
||||
```
|
||||
|
||||
<Info>
|
||||
`infisical` falls back to `process.env` if `token` is `undefined` during
|
||||
initialization or if a value is not found in the secrets fetched.
|
||||
</Info>
|
||||
|
||||
## Example with Express
|
||||
|
||||
```js
|
||||
const express = require("express");
|
||||
const port = 3000;
|
||||
const infisical = require("infisical-node");
|
||||
|
||||
const main = async () => {
|
||||
await infisical.connect({
|
||||
token: "st.xxx.xxx",
|
||||
});
|
||||
|
||||
// your application logic
|
||||
|
||||
app.get("/", (req, res) => {
|
||||
res.send(`Howdy, ${infisical.get("NAME")}!`);
|
||||
});
|
||||
|
||||
app.listen(port, async () => {
|
||||
console.log(`App listening on port ${port}`);
|
||||
});
|
||||
};
|
||||
```
|
||||
|
||||
<Warning>
|
||||
We do not recommend hardcoding your [Infisical
|
||||
Token](/getting-started/dashboard/token). Setting it as an environment
|
||||
variable would be best.
|
||||
</Warning>
|
||||
8
docs/sdks/overview/python.mdx
Normal file
8
docs/sdks/overview/python.mdx
Normal file
@@ -0,0 +1,8 @@
|
||||
---
|
||||
title: "Python"
|
||||
---
|
||||
|
||||
Coming soon.
|
||||
|
||||
Follow this GitHub
|
||||
[issue](https://github.com/Infisical/infisical/issues/433) to stay updated.
|
||||
8
docs/sdks/overview/ruby.mdx
Normal file
8
docs/sdks/overview/ruby.mdx
Normal file
@@ -0,0 +1,8 @@
|
||||
---
|
||||
title: "Ruby"
|
||||
---
|
||||
|
||||
Coming soon.
|
||||
|
||||
Follow this GitHub
|
||||
[issue](https://github.com/Infisical/infisical/issues/435) to stay updated.
|
||||
8
docs/sdks/overview/rust.mdx
Normal file
8
docs/sdks/overview/rust.mdx
Normal file
@@ -0,0 +1,8 @@
|
||||
---
|
||||
title: "Rust"
|
||||
---
|
||||
|
||||
Coming soon.
|
||||
|
||||
Follow this GitHub
|
||||
[issue](https://github.com/Infisical/infisical/issues/437) to stay updated.
|
||||
Reference in New Issue
Block a user