Typescript SDK
Requirements¶
- Node 18+ Our developer tools are built on Javascript and utilizes the modern NPM packaging system. Javascript comes preinstalled on most development machines. Node (and NPM with it) can be installed from NPM's main site or through your operating system's package distributor.
Installation¶
Functionality within the VibeIQ platform (Contrail) can be accessed and extended through a TypeScript SDK. The SDK is installable via the popular JavaScript Node Packages Manager npm
.
npm install @contrail/sdk --global
This will install the contrail SDK globally to your system, which will enable you to use it in any script, regardless of which directory it is in.
Alternatively, If you are using the SDK as part of a module you plan on packaging and sharing with other developers (or deploying to the cloud), you can add the SDK to your project:
npm install @contrail/sdk
Scripting vs App development¶
In the world of Javascript, code can be written as a one-off "script", run through the node
interpreter, or packaged as part of an application. Below are examples on how to authenticate and print your username in each of these paradigms.
Scripting¶
To use the Contrail SDK as part of a one-off script, you can use the require
javascript keyword.
const contrail = require("@contrail/sdk");
// define an asynchronous function
const run = async () => {
await contrail.login({
orgSlug: "YOUR-ORG-HERE",
email: "myEmail@example.com",
password: "neverInPlainText",
});
// or using an api key like the one you can get from `contrail app getApiKey`
// await contrail.login({orgSlug: 'test-zone-1', apiKey: 'app:qwerty'})
const user = await contrail.getCurrentUser();
console.log("USER:", JSON.stringify(user, null, 2));
};
// run the function
run();
You can run your script using node
in your shell.
node script.js
Packaged Module¶
If you intend on using the Contrail SDK as part of your packaging module, you may use the import
keyword. You are more likely to use this when writing integrations as part of a web or server runtime.
import { login, getCurrentUser } from "@contrail/sdk";
export async function run() => {
await login({orgSlug: 'YOUR-ORG-HERE', email: 'myEmail@example.com', password: 'neverInPlainText'});
// or using an api key like the one you can get from `contrail app getApiKey`
// await login({orgSlug: 'test-zone-1', apiKey: 'app:qwerty'})
const user = await getCurrentUser();
console.log('USER:', JSON.stringify(user, null, 2))
}
App Authentication
Apps actions are automatically authenticated, and do not require any login logic when running in an event workflow.