AVEVA Data Hub Client Credentials NodeJS Sample
Version: 1.0.5
Developed against Node 14.15.1.
Requirements
- Node 14.15+
- Register a Client-Credentials Client in your AVEVA Data Hub tenant and create a client secret to use in the configuration of this sample. (Video Walkthrough)
- NOTE: This sample only requires the
Tenant Member
role to run successfully - It is strongly advised to not elevate the permissions of a client beyond what is necessary.
- NOTE: This sample only requires the
About this sample
This sample is meant to be very simple and straightforward to show how you can use common Node library calls (in this case, axios) to authenticate against ADH. In a more complete application you should reuse the bearer token as appropriate and only reissue a new token when it is about to timeout.
Steps:
- Get needed variables
- Get the token (authentication) endpoint from the discovery URL
- Use the Client ID and Secret to get a bearer token from the token endpoint
- Test it by calling the base tenant endpoint, ensuring a valid response is returned
Configuring the sample
The sample is configured using the file appsettings.placeholder.json. Before editing, rename this file to appsettings.json
. This repository's .gitignore
rules should prevent the file from ever being checked in to any fork or branch, to ensure credentials are not compromised.
AVEVA Data Hub is secured by obtaining tokens from its identity endpoint. Client credentials clients provide a client application identifier and an associated secret (or key) that are authenticated against the token endpoint. You must replace the placeholders in your appsettings.json
file with the authentication-related values from your tenant and a client-credentials client created in your ADH tenant.
{
"Resource": "https://uswe.datahub.connect.aveva.com",
"ApiVersion": "v1",
"TenantId": "PLACEHOLDER_REPLACE_WITH_TENANT_ID",
"ClientId": "PLACEHOLDER_REPLACE_WITH_APPLICATION_IDENTIFIER",
"ClientSecret": "PLACEHOLDER_REPLACE_WITH_APPLICATION_SECRET"
}
Running the sample
To run this example from the command line once the appsettings.json
is configured, run
npm ci
node Sample.js
Testing the sample
To run the unit test for this sample, run
npm test
Tested against Node 14.15.1
For the main ADH Authentication samples page ReadMe
For the main ADH samples page ReadMe
For the main AVEVA samples page ReadMe