talend
v0.4.1
Published
Talend TAC API extender and nodejs npm module
Downloads
3
Readme
Talend TAC API extender and nodejs npm module
Purpose
- This intends to provide a gentrified API overlay to handle calls to Talend Administration Centre.
- It should make the TAC API call log meaningful
- It could be run on the TAC server to restrict external calls to the TAC server (security)
- It should be exposed via nginx or HAProxy (preferably) - its uses 3024 as default port
- The npm module
npm install talend
can be used independently by other node scripts (lambda) to call TAC
Configure the api server
Configure variables
```
APP_NAME=talend-stack-api
APP_PORT=3054
TALEND_TAC_API_URL=http://0.0.0.0
TALEND_TAC_API_PORT=3002
```
OR drop a file with above into a file called .env
in your root
Run the api server
Call the run.sh file. You may need to give it exec permissions like
$ chmod u+x run.sh
$ ./run.sh
And for some logging (note its really verbose)
$ npm install -g bunyan
$ ./run.sh | bunyan
Setup to use in your own node project
$ mkdir your-folder-here
$ npm init
$ npm install talend --save
How do I call this API
We recommend using.. * request-promise-native * OR request-promise (uses bluebird for more promise love)
```
var rp = require('request-promise');
var options = {
method: 'POST',
uri: 'http://0.0.0.0:3054/talend/tac/<methodName>',
body: {
some: 'payload'
},
json: true // Automatically stringifies the body to JSON
};
rp(options)
.then(function (parsedBody) {
// POST succeeded...
})
.catch(function (err) {
// POST failed...
});
```
Available endpoints
All calls are
- best done over an SSL/TLS HTTPS connection.
- using TAC MetaServlet payloads without base64 encoding
For generic calls use
[POST] /org.talend.administrator/metaServlet
- use in place of the TAC GET endpoint
For specific calls, we hope to implement these endpoints with RESTful payloads ;)
[GET] /talend/tac/listServer
[GET] /talend/tac/listVirtualServers
[POST] /talend/tac/createUser
[DEL] /talend/tac/deleteUser
[POST] /talend/tac/createUser
[POST] /talend/tac/addServer
[PATCH] /talend/tac/addServersToVirtualServer
[DEL] /talend/tac/removeServer
[DEL] /talend/tac/removeServersFromVirtualServer
TODO: Swagger api description for this
Developers
You can also install and test (and PRs are welcome)
development
Clone or fork from github
$ npm start
test
Use Mocha and Salty-duck with Chakram for api tests Make sure that you are either
- pointing to the TAC API (set variables to point to it)
- OR running the [Talend Fake TAC API] (https://github.com/DevOp5/talend-fake-tac-api)
then..
$ npm test
Contributors
- Kenny Joseph
- William Tsoi
License
MIT