Skip to content
This repository has been archived by the owner on Apr 8, 2024. It is now read-only.

A library to exchange a set of Camunda 8 SaaS API credentials for a token

License

Notifications You must be signed in to change notification settings

camunda-community-hub/camunda-saas-oauth-nodejs

Repository files navigation

Camunda SaaS OAuth for Node.js

NPM

Community Extension

Lifecycle

License

DEPRECATED

This package is deprecated. Please use the official SDK package @camunda8/sdk. See: https://github.com/camunda/camunda-8-js-sdk


A library to exchange a set of Camunda 8 SaaS API credentials for a token to make API calls to Camunda 8 SaaS. Uses camunda-8-credentials-from-env to get the credentials from the environment.

Caches the token to disk, and refreshes tokens before they expire.

Installation

Install as a dependency:

npm i camunda-saas-oauth

Usage

import * as auth from "camunda-saas-oauth"

async function main () {
    const useragent = 'myclient-nodejs/1.0.0'
    const operateToken = await auth.getOperateToken(useragent)
    const tasklistToken = await auth.getTasklistToken(useragent)
    const optimizeToken = await auth.getOptimizeToken(useragent)
    const zeebeToken = await auth.getZeebeToken(useragent)
    return {
        operateToken,
        tasklistToken,
        optimizeToken,
        zeebeToken
    }
}   

The call will throw if the client credentials are not found in the environment, or you request a token for a scope for which the credentials are not valid.

Configuration

Set the API client credentials in the environment, using the environment variables from the web console.

To configure a different cache directory, set the CAMUNDA_TOKEN_CACHE_DIR environment variable.

To turn off disk caching, set the environment variable CAMUNDA_TOKEN_CACHE=memory-only.

User Agent

Example of a custom user agent string: mycustom-client-nodejs/${pkg.version} ${CUSTOM_AGENT_STRING}

Advanced Usage

The methods that return tokens use an OAuthProvider to get the tokens.

The OAuthProvider class is a wrapper that hydrates a OAuthProviderImpl with credentials from the environment.

If you want to manually set the credentials (for example, to address multiple clusters in a single application), you can do so by creating an OAuthProviderImpl directly, like so:

import { OAuthProviderImpl } from 'camunda-saas-oauth'

const oauth = new OAuthProviderImpl({
        /** OAuth Endpoint URL */
        authServerUrl,
        /** OAuth Audience */
        audience, clientId, clientSecret,
        userAgentString
})

const operateToken = oauth.getToken('OPERATE')
const optimizeToken = oauth.getToken('OPTIMIZE')
const tasklistToken = oauth.getToken('TASKLIST')
const zeebeToken = oauth.getToken('ZEEBE')

About

A library to exchange a set of Camunda 8 SaaS API credentials for a token

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published