https://github.com/sagi/workers-secrets
Cloudflare Workers Secrets API
https://github.com/sagi/workers-secrets
Last synced: over 1 year ago
JSON representation
Cloudflare Workers Secrets API
- Host: GitHub
- URL: https://github.com/sagi/workers-secrets
- Owner: sagi
- Created: 2021-12-31T03:26:32.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2021-12-31T08:00:00.000Z (over 4 years ago)
- Last Synced: 2025-03-23T20:38:24.156Z (over 1 year ago)
- Language: TypeScript
- Size: 75.2 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Cloudflare Workers Secrets API
[`@sagi.io/workers-secrets`](https://www.npmjs.com/package/@sagi.io/workers-secrets) is Cloudflare Workers Secrets API for workers and Node.js.
[](https://circleci.com/gh/sagi/workers-secrets)
[](https://coveralls.io/github/sagi/workers-secrets)
[](http://opensource.org/licenses/MIT)
[](http://npm.im/@sagi.io/workers-secrets)
Based on [Cloudflare's wrangler implementation](https://github.com/cloudflare/wrangler/blob/master/src/commands/secret.rs).
## API
### **`WorkersSecretsAPI({ ... })`**
Instantiates a `WorkersSecretsAPI` object with the methods defined below.
Function definition:
```js
const WorkersSecretsAPI = function({
cfAccountId,
cfEmail,
cfAuthKey,
cfAuthToken,
fetchImpl,
}){ ... }
```
Where:
- **`cfAccountId`** *required* Your Cloudflare account id.
- **`cfEmail`** *optional|required* The email you registered with Cloudflare.
- **`cfAuthKey`** *optional|required* Your Cloudflare Auth Key.
- **`cfAuthToken`** *optional|required* Your Cloudflare Auth Token.
- **`fetchImpl`** *optional* when running on `Node.js` you need to provide a `fetch` implementation (e.g. `const fetchImpl = require('cross-fetch')`.
Use `cfAuthToken` with a [Cloudflare auth token](https://support.cloudflare.com/hc/en-us/articles/200167836-Managing-API-Tokens-and-Keys). You can also set `cfEmail` and `cfAuthKey` directly without using an auth token.
### **`WorkersSecretsAPI.createSecret({ ... })`**
Function definition:
```js
const createSecret= async ({
scriptName,
secretName,
secretValue,
} = {}) => { ... }
```
Where:
- **`scriptName`** *required* The name of the Cloudflare Workers Script (e.g. `anonymitybot-com`, can be found in Cloudflare's Dashboard).
- **`secretName`** *required* The secret name e.g. `ROTATIONAL_RANDOM_PEPPER`.
- **`secretValue`** *required* The secret value.
### **`WorkersSecretsAPI.deleteSecret({ ... })`**
Function definition:
```js
const deleteSecret= async ({
scriptName,
secretName,
} = {}) => { ... }
```
Where:
- **`scriptName`** *required* The name of the Cloudflare Workers Script (e.g. `anonymitybot-com`, can be found in Cloudflare's Dashboard).
- **`secretName`** *required* The secret name e.g. `ROTATIONAL_RANDOM_PEPPER`.
### **`WorkersSecretsAPI.listSecrets({ ... })`**
Function definition:
```js
const listSecrets= async ({
scriptName,
} = {}) => { ... }
```
Where:
- **`scriptName`** *required* The name of the Cloudflare Workers Script (e.g. `anonymitybot-com`, can be found in Cloudflare's Dashboard).
## Example on Node.js
Run `$ yarn build` and add the `CF_ACCOUNT_ID` and `CF_AUTH_TOKEN` environment variables.
```js
import dotenv from "dotenv";
import WorkersSecretsAPI from "./dist/main.js";
import fetchImpl from "cross-fetch";
(async () => {
dotenv.config();
const cfAccountId = process.env.CF_ACCOUNT_ID;
const cfAuthToken = process.env.CF_AUTH_TOKEN;
const scriptName = "anonymitybot-xyz";
const workersSecretsAPI = WorkersSecretsAPI({
cfAccountId,
cfAuthToken,
fetchImpl,
});
const data = await workersSecretsAPI.listSecrets({ scriptName });
console.log(data);
})();
```
## Example on Cloudflare Workers
Simply remove the `fetchImpl` import and usage.