This is a Node.JS client for UiPath Orchestrator.
npm install uipath-orchestrator
See the wiki page for a complete reference.
Orchestrator is a class and its constructor takes an options
object.
var util = require('util');
var Orchestrator = require('uipath-orchestrator');
var orchestrator = new Orchestrator({
tenancyName: 'test', // The Orchestrator Tenancy
usernameOrEmailAddress: 'xxx',// The Orchestrator login
password: 'yyy', // The Orchestrator password
hostname: 'host.company.com', // The instance hostname
isSecure: true, // optional (defaults to true)
port: 443, // optional (defaults to 80 or 443 based on isSecure)
invalidCertificate: false, // optional (defaults to false)
connectionPool: 5 // options, 0=unlimited (defaults to 1)
});
var apiPath = '/odata/Users';
var apiQuery = {};
orchestrator.get(apiPath, apiQuery, function (err, data) {
if (err) {
console.error('Error: ' + err);
}
console.log('Data: ' + util.inspect(data));
});
The 5 supported basic methods are as follows:
Orchestrator.get(path, query, callback);
Orchestrator.post(path, data, callback);
Orchestrator.put(path, data, callback);
Orchestrator.patch(path, data, callback);
Orchestrator.delete(path, callback);
where query
is an querystring-ready object, and data
a JSON.stringify
able object.
These are very generic methods, and the plan is to keep version-dedicated helpers up-to-date in the following form:
orchestrator.v2.api.postLogs(postLogsData, callback);
orchestrator.v2.odata.getUsers(getUsersQuery, callback);
It is possible to switch organization units with the following method:
orchestrator.switchOrganizationUnitId(1234);
Note that you can play around with these by creating a sandbox tenancy here (experimental support): https://platform.uipath.com/
In that case, you will need to use a different method of authentication (please see the tool in tools/platform
)
The minimum configuration for platform access is as follows:
new Orchestrator({
refreshToken: 'qwertyuiopasdfghjkllzxcvbnmQWERTYUIOPASDFGHJK',
serviceInstanceLogicalName: 'myInstanceLogicalName',
path: 'myAccountLogicalName/myInstanceLogicalName'
})
This is just the beginning and there is a lot left to do. If you have suggestions and ideas, please do not hesitate to let me know.
- Proper unit testing
- Extend each API version
- Write wiki
- Write TS definitions
- Add DELETE method
- Add PATCH method
- Add OrganizationUnitId handling
- Add browser support (minified)
MIT