1.2.4 • Published 6 months ago

camunda-saas-oauth v1.2.4

Weekly downloads
-
License
Apache 2.0
Repository
github
Last release
6 months ago

Camunda SaaS OAuth for Node.js

NPM

Community Extension

Lifecycle

License

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')
1.2.4

6 months ago

1.2.3

6 months ago

1.2.2

1 year ago

1.2.1

1 year ago

1.2.0

1 year ago

1.1.1

1 year ago

1.1.0

1 year ago

1.0.1

1 year ago

1.0.0

1 year ago