@dashlane/apiconnect
v3.1.9
Published
Dashlane API Connector
Keywords
Readme
API Connect SDK
Simple SDK to make requests to the Dashlane API using credentials from env.
Install
npm install @dashlane/apiconnect-nodejsHow to use
The module lets you use any request implementation you want. For instance here is an example using got :
import * as apiconnect from '@dashlane/apiconnect-nodejs';
/* We first setup our implementation to make our query, available params : method, headers, json (body), url, query */
export const gotImplementation: apiconnect.RequestFunction<got.Response<string>> = (
options: apiconnect.RequestFunctionOptions,
cb: Callback<got.Response<string>>
) => {
const { headers, json, url } = options;
got.post(url, {
headers, // please pass the headers without modifying them, they should match exactly what's signed
body: json,
json: true
})
.then((result) => cb(null, result))
.catch((error) => cb(error));
};
/* Then we give to apiconnect our parameters : requestFunction (our implementation), path, payload (body), query, method */
apiconnect.postRequestAPI(
{
requestFunction: gotImplementation,
authentication: {
type: 'app',
appAccessKey: 'accessKey',
appSecretKey: 'secretKey'
},
path: 'v1/passwordchanger/UpdateBundles',
payload,
userAgent: 'Chrome x86' // the user agent is mandatory when using "fetch" module
},
(error, response) => {
if (error) {
return cb(error);
}
if (response.statusCode !== 200) {
return cb(new Error('Server responded an error : ' + response.body));
}
console.log('API response:', response.body);
return cb(null, response.body);
}
);By default, this repository will use the production domain of the API to handle your requests.
If you would like to use the test domain, you can pass a testPort property to the postRequstAPI call
to define which port you would like to test. By example, passing a testPort: 8090 will target https://apitests.dashlane.com:8090
It is also possible to define a custom host for the purpose of pointing to a different staging url by passing the customHost prop.
This option will use https protocol.
For now, app, userDevice, teamDevice, massDeployedTeamKey and enrolledDevice authentications are available
The module uses the following env variables to connect to the API.
export DASHLANE_ACCESS_KEY_ID=<your_dashlane_api_access_key>
export DASHLANE_SECRET_ACCESS_KEY=<your_dashlane_api_secret_key>Best practice : Don't forget to get those access from Vault.
Building
pnpm build
Running tests
Build first, then run tests :
pnpm test
