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.
Install as a dependency:
npm i camunda-saas-oauth
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.
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
.
Example of a custom user agent string: mycustom-client-nodejs/${pkg.version} ${CUSTOM_AGENT_STRING}
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')