@sagi.io/workers-secrets

Cloudflare Workers Secrets API

Usage no npm install needed!

<script type="module">
  import sagiIoWorkersSecrets from 'https://cdn.skypack.dev/@sagi.io/workers-secrets';
</script>

README

Cloudflare Workers Secrets API

@sagi.io/workers-secrets is Cloudflare Workers Secrets API for workers and Node.js.

CircleCI Coverage Status MIT License version

Based on Cloudflare's wrangler implementation.

API

WorkersSecretsAPI({ ... })

Instantiates a WorkersSecretsAPI object with the methods defined below.

Function definition:

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. You can also set cfEmail and cfAuthKey directly without using an auth token.

WorkersSecretsAPI.createSecret({ ... })

Function definition:

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:

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:

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.

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.