Skip to content

depot/node-spiffe

Repository files navigation

spiffe Workload API client for Node.js

CI npm Powered by TypeScript

A SPIFFE Workload API client for Node.js.

Installation

You can install the module with your favorite package manager:

# with pnpm
pnpm add spiffe

# with yarn
yarn add spiffe

# with npm
npm install spiffe

Usage

Create a client:

import {createClient} from 'spiffe'

// Connect to the endpoint set from the SPIFFE_ENDPOINT_SOCKET environment variable
const client = createClient()

// Connect to a specific endpoint
const client = createClient('unix:///path/to/endpoint.sock')

// Read x509 credentials from Workload API
const rpc = client.fetchX509SVID()
for await (const message of rpc.responses) {
  message.svids.forEach((svid) => {
    const certificateBase64 = Buffer.from(svid.x509Svid).toString('base64')
    console.log('Certificate in Base64 Format:', certificateBase64)
  })

  if (message.svids.length > 0) {
    break
  }
}

License

MIT License, see LICENSE.