A NodeJS Library for Alteryx Server - TypeScript SDK - Development Proxy
The repository implements a typescript SDK which can be used to interact with the Alteryx Server APIs. It is compatible with linux, windows and MacOS. It supports both frontend (browser e.g. angular, react...) and backend development in node.js.
what | where |
---|---|
documentation | coming soon |
generated api-doc | jupiterbak.github.io/ayx-node |
npm package | @jupiterbak/ayx-node |
source | https://github.com/jupiterbak/ayx-node |
changelog | CHANGELOG.md |
contributing | CONTRIBUTING.md |
license | LICENSE.md |
The recommended way to get started using the nodejs is by using the npm
(Node Package Manager) to install the dependency in your project.
After you've created your own project using npm init
, you can run:
npm install @jupiterbak/ayx-node --save
# or ...
yarn add @jupiterbak/ayx-node --save
This will download the this library and add a dependency entry in your package.json
file.
If you are a Typescript user, you will need the Node.js type definitions:
npm install -D @types/node
This guide will show you how to set up a simple application using Node.js that allows you to interact with an Alteryx server. Its scope is only to list all the workflows present in your workspace.
First, create a directory where your application will live.
mkdir myProject
cd myProject
Enter the following command and answer the questions to create the initial structure for your new project:
npm init -y
Next, install the this SDK as a dependency.
npm install @jupiterbak/ayx-node --save
Create a new app.js file inside the folder myProject and add the following code to read all the workflows listed in your workspace:
const { AlteryxSdk } = require('@jupiterbak/ayx-node');
// or as an es module:
// import { AlteryxSdk } from '@jupiterbak/ayx-node'
// Alteryx Server REST API Connection URL
const url = 'http://localhost/webapi/';
const clientId = '8DA3C9A7E88FD2Ebe586219847b7f9b5b1bd0f8c31c3b20ca5f2a9ea54e107a173f379128b3b6b1';
const clientSecret = 'cb1d3a6287f0d86e88169963045512be40dd28771c93d404450d0279c743611a';
// Instantiate the library
const sdk = new AlteryxSdk({
gateway: url,
clientId: clientId,
clientSecret: clientSecret
});
async function main() {
// Get the workflow management client. Multiple client are supported as well
const wClient = sdk.GetWorkflowManagementClient();
// List all the workflows in my workspace
const workflows = wClient.GetWorkflows();
// the following code examples can be pasted here...
return workflows;
}
main()
.then(console.log)
.catch(console.error);
NOTE: Please follow these intructions to read the clientId and the clientSecret of your server.
Alteryx Help: https://help.alteryx.com/developer-help/server-api-overview
Run your app from the command line with:
node app.js
The application should print all the workflows of your workspace into the console.
In order to run unit tests, please follow these steps:
Step 1: Clone this repo.
git clone https://github.com/jupiterbak/ayx-node.git
cd ayx-node
Step 2: Install the dependencies.
npm install
Step 3: Set the environment variables: AYX_SERVER_API, AYX_SERVER_CLIENTID, and AYX_SERVER_CLIENTSECRET.
export AYX_SERVER_API="http://localhost/webapi/"
export AYX_SERVER_CLIENTID="8DA3C9A7E88FD2Ebe586219847b7f9b5b1bd0f8c31c3b20ca5f2a9ea54e107a173f379128b3b6b1"
export AYX_SERVER_CLIENTSECRET="cb1d3a6287f0d86e88169963045512be40dd28771c93d404450d0279c743611a"
Step 4: Start testing. Run the following
npm run test
After a sucessfull startup the following output should be printed.
...
✔ 1. should instantiate
✔ 2. should list all user groups @sanity
✔ 3. should create new user group
✔ 4. should update user group
✔ 5. should add user to user group (49ms)
✔ 6. should remove user from user group
✔ 7. should delete user group
[SDK] Workflow Management Client
✔ 1. should instantiate
✔ 2. should list all existing workflows @sanity
✔ 3. should list all workflows with a name
✔ 4. should list all workflows with full view
✔ 5. should list all workflows with full view
✔ 6. the crud operations on workflows should work (229ms)
✔ 7. should list all workflows within my subscription (47ms)
✔ 8. should list all jobs for the first workflow within my subscription (704ms)
✔ 9. should list all the questions for the first workflow within my subscription (174ms)
✔ 10. should return the original package containing the first workflow within my subscription (587ms)
✔ 11. should start a job with the first workflow within my subscription (195ms)
69 passing (6s)
Name | AYX Server API Version | SDK - Client |
---|---|---|
Collection Management | V3 | ✔️ |
Credential Management | V3 | ✔️ |
DCME Connection Management | V3 | ✔️ |
Schedule Management | V3 | ✔️ |
Server Connection Management | V3 | ✔️ |
Usergroup Management | V3 | ✔️ |
User Management | V3 | ✔️ |
Workflow Management | V3 | ✔️ |
Admin Management Tasks | V2 | ✔️ |
Usergroup Management | V2 | ✔️ |
User Management | V2 | ✔️ |
Admin Management Tasks | V1 | ✔️ |
Job Management | V1 | ✔️ |
Workflow Management | V1 | ✔️ |
Set the http_proxy or HTTP_PROXY environment variable if you need to connect via proxy.
# set http proxy environment variable if you are using e.g. fiddler on the localhost.
export HTTP_PROXY=http://localhost:8888
Change history can be found in CHANGELOG.md
.
If an API is missing and you would like to contribute a Client for it take a look at CONTRIBUTING.md.
This project has been released under an Open Source license. The release may include and/or use APIs to Alteryx’ or third parties’ products or services. In no event shall the project’s Open Source license grant any rights in or to these APIs, products or services that would alter, expand, be inconsistent with, or supersede any terms of separate license agreements applicable to those APIs. “API” means application programming interfaces and their specifications and implementing code that allows other software to communicate with or call on Alteryx’ or third parties’ products or services and may be made available through Alteryx’ or third parties’ products, documentations or otherwise.