Cognite Javascript SDK
The Cognite js library provides convenient access to the Cognite API from
applications written in client- or server-side JavaScript.
The SDK supports authentication through api-keys (for server-side applications) and bearer tokens (for web applications).
Installation
Install the package with yarn:
$ yarn add @cognite/sdk
or npm
$ npm install @cognite/sdk --save
Usage
const { CogniteClient } = require('@cognite/sdk');
Using ES modules
import { CogniteClient } from '@cognite/sdk';
Using typescript
The SDK is written in native typescript, so no extra types needs to be defined.
Quickstart
Web
import { CogniteClient } from '@cognite/sdk';
async function quickstart() {
const client = new CogniteClient({ appId: 'YOUR APPLICATION NAME' });
client.loginWithOAuth({
project: 'publicdata',
});
const assets = await client.assets
.list()
.autoPagingToArray({ limit: 100 });
}
quickstart();
For more details see this document.
Backend
const { CogniteClient } = require('@cognite/sdk');
async function quickstart() {
const client = new CogniteClient({ appId: 'YOUR APPLICATION NAME' });
client.loginWithApiKey({
project: 'publicdata',
apiKey: 'YOUR_SECRET_API_KEY',
});
const assets = await client.assets
.list()
.autoPagingToArray({ limit: 100 });
}
quickstart();
Samples
Samples are in the samples/ directory. The samples' README.md has instructions for running the samples.
Documentation
Migration
See this guide on how to migrate from version 1.x.x
to version 2.x.x
.
License
Apache 2.0
Development
There is one integration test that requires a api key. In order to run this, you need an api key for the cognitesdk-js
tenant. Talk to any of the contributors or leave an issue and it'll get sorted. Jenkins will run the test and has its own api key.
Set the environment variable COGNITE_CREDENTIALS
to your api-key.
Run all tests:
$ yarn
$ yarn test
Set the environment variable REVISION_3D_INTEGRATION_TEST=true
to run 3D revision integration tests.
We use jest
to run tests, see their documentation for more information.
Versioning
The library follow Semantic Versioning.
Contributing
Contributions welcome! See the code of conduct.
Release
How to release a new version:
- Create a new branch
- Commit changes (if any)
- Run
$ npm version [patch/minor/major]
- Update the SDK-version in ./samples/package.json
- Push branch and push tags (
git push --tags
) - Create a new pull requests
- A new version will be published when the PR is merged