appc-registry-sdk
v0.0.6
Published
Appcelerator Registry SDK
Downloads
17
Readme
Appcelerator Registry SDK for Node.js
This is a node module which provides a JavaScript API for accessing the Appcelerator Registry.
Installation
You can install via npm or directly include the library in your node application.
Once installed, you can use the module by requiring it.
NOTE: You must set the baseurl
to the correct URL location of the server endpoint.
var API = require('appc-registry-sdk');
API.baseurl = 'http://localhost:8080';
Security
To enable, you must first login using the API login
.
After a successful login, you must call API.session = result.session
where
result is the return value from the login API call.
Example code:
var api = new API("login");
API.baseurl = "http://localhost:8080";
api.body({"username":"[email protected]","password":"arrowrocks"});
api.send(function(err,resp,body){
if (err) { throw err; }
API.session = body.session;
api = new API("whoami");
api.send(function(err,resp,body){
if (err) { throw err; }
console.log(body);
});
});
APIs
login
API for login
POST /api/login
API Parameters
Name | Description | Type | Optional :----| :---------- | :--- | :------- username | username | body | yes password | password | body | yes org_id | organization id | body | yes ipaddress | the machine ip address | body | yes fingerprint | the machine unique id | body | yes fingerprint_description | the machine description | body | yes
API Result session
Name | Description | Type :----| :---------- | :--- username | username | string password | password | string org_id | organization id | number org_name | organization name | string session | encrypted session token | string ipaddress | the machine ip address | string fingerprint | the machine unique id | string fingerprint_description | the machine description | string expiry | expiration timestamp in milliseconds | number firstname | first name of the user | string lastname | last name of the user | string sid | session sid | string dashboard | dashboard url used for session | string
Usage Example
var API = require('appc-registry-sdk');
API.baseurl = 'http://localhost:8080';
var api = new API('login');
api.body({
"username": "",
"password": "",
"org_id": "",
"ipaddress": "",
"fingerprint": "",
"fingerprint_description": ""
});
api.send(function(err,resp,json){
console.log(json);
});
listOrganizations
API for determing the logged in user organizations
GET /api/orgs
API Result org
Name | Description | Type :----| :---------- | :--- org_id | the organization guid | number name | the name of the organization | string active | the active flag for the organization | boolean
Usage Example
var API = require('appc-registry-sdk');
API.baseurl = 'http://localhost:8080';
var api = new API('listOrganizations');
api.send(function(err,resp,json){
console.log(json);
});
switchLoggedInOrg
API for switching a logged in user org
PUT /api/org
API Parameters
Name | Description | Type | Optional :----| :---------- | :--- | :------- org_id | the organization id | body | no
API Result org
Name | Description | Type :----| :---------- | :--- org_id | the organization guid | number name | the name of the organization | string active | the active flag for the organization | boolean
Usage Example
var API = require('appc-registry-sdk');
API.baseurl = 'http://localhost:8080';
var api = new API('switchLoggedInOrg');
api.body({
"org_id": ""
});
api.send(function(err,resp,json){
console.log(json);
});
whoami
API for determing the logged in user
GET /api/whoami
API Result session
Name | Description | Type :----| :---------- | :--- username | username | string password | password | string org_id | organization id | number org_name | organization name | string session | encrypted session token | string ipaddress | the machine ip address | string fingerprint | the machine unique id | string fingerprint_description | the machine description | string expiry | expiration timestamp in milliseconds | number firstname | first name of the user | string lastname | last name of the user | string sid | session sid | string dashboard | dashboard url used for session | string
Usage Example
var API = require('appc-registry-sdk');
API.baseurl = 'http://localhost:8080';
var api = new API('whoami');
api.send(function(err,resp,json){
console.log(json);
});
listComponents
API for fetching all the components
GET /api/component
API Parameters
Name | Description | Type | Optional :----| :---------- | :--- | :------- limit | max number of components to return | query | yes
API Result component
Name | Description | Type :----| :---------- | :--- created_date | date the component was published | date file_id | foreign key to the file object | string filesize | the component file size | number parts_count | the component count in the case of split files | number parts_index | the component index in the case of split files | number parts_total | the component total size in the case of split files | number parts_shasum | the component sha of the part in the case of split files | number shasum | the component sha1 | string name | the name of the component | string component | the full component name | string description | the description of the component | string version | the version of the component | string version_sortable | the field that is used for sorting by version | number type | the metadata type of the component | string subtype | the component plugin subtype | string owners | the owners of the component | array orgs | the orgs of the component | array users | the users of the component | array access | the access type such as private, public, etc | string author | the component author name | string author_id | the component author user guid | string author_username | the component author username | string unpublished | return true if the component has been unpublished | boolean package_json | the contents of the package.json | string
Usage Example
var API = require('appc-registry-sdk');
API.baseurl = 'http://localhost:8080';
var api = new API('listComponents');
api.json({
"limit": ""
});
api.send(function(err,resp,json){
console.log(json);
});
getComponent
API for fetching all the components
GET /api/component/:type/:nameversion
API Parameters
Name | Description | Type | Optional :----| :---------- | :--- | :------- type | type of the component to get the details | path | no nameversion | name and version of the component to get the details | path | no
API Result component
Name | Description | Type :----| :---------- | :--- created_date | date the component was published | date file_id | foreign key to the file object | string filesize | the component file size | number parts_count | the component count in the case of split files | number parts_index | the component index in the case of split files | number parts_total | the component total size in the case of split files | number parts_shasum | the component sha of the part in the case of split files | number shasum | the component sha1 | string name | the name of the component | string component | the full component name | string description | the description of the component | string version | the version of the component | string version_sortable | the field that is used for sorting by version | number type | the metadata type of the component | string subtype | the component plugin subtype | string owners | the owners of the component | array orgs | the orgs of the component | array users | the users of the component | array access | the access type such as private, public, etc | string author | the component author name | string author_id | the component author user guid | string author_username | the component author username | string unpublished | return true if the component has been unpublished | boolean package_json | the contents of the package.json | string
Usage Example
var API = require('appc-registry-sdk');
API.baseurl = 'http://localhost:8080';
var api = new API('getComponent');
api.params({
"type": "",
"nameversion": ""
});
api.send(function(err,resp,json){
console.log(json);
});
plugins
API for listing plugins
GET /api/plugin/:type/:subtype
API Parameters
Name | Description | Type | Optional :----| :---------- | :--- | :------- type | the type of component | path | no subtype | the subtype of the plugin | path | no
Usage Example
var API = require('appc-registry-sdk');
API.baseurl = 'http://localhost:8080';
var api = new API('plugins');
api.params({
"type": "",
"subtype": ""
});
api.send(function(err,resp,json){
console.log(json);
});
publish
API for publishing a component
POST /api/publish
API Parameters
Name | Description | Type | Optional :----| :---------- | :--- | :------- file | file to publish | body | no package.json | contents of the package.json | body | no parts_count | the component count in the case of split files | body | yes parts_index | the component index in the case of split files | body | yes parts_total | the component total in the case of split files | body | yes parts_shasum | the component sha of the part in the case of split files | body | yes shasum | the component sha1 | body | no force | overwrite if already published with the same version | body | yes subtype | the subtype of the component | body | yes
Usage Example
var API = require('appc-registry-sdk');
API.baseurl = 'http://localhost:8080';
var api = new API('publish');
api.body({
"file": "",
"package.json": "",
"parts_count": "",
"parts_index": "",
"parts_total": "",
"parts_shasum": "",
"shasum": "",
"force": "",
"subtype": ""
});
api.send(function(err,resp,json){
console.log(json);
});
search
API for searching for components
GET /api/search/:term/:filter?
API Parameters
Name | Description | Type | Optional :----| :---------- | :--- | :------- term | the search term | path | no filter | the search term filter | path | yes
Usage Example
var API = require('appc-registry-sdk');
API.baseurl = 'http://localhost:8080';
var api = new API('search');
api.params({
"term": "",
"filter": ""
});
api.send(function(err,resp,json){
console.log(json);
});
unpublish
API for unpublishing a published component
GET /api/unpublish/:type/:name/:version
API Parameters
Name | Description | Type | Optional :----| :---------- | :--- | :------- type | type of the component | path | no name | name of the component | path | no version | version of the component | path | no
Usage Example
var API = require('appc-registry-sdk');
API.baseurl = 'http://localhost:8080';
var api = new API('unpublish');
api.params({
"type": "",
"name": "",
"version": ""
});
api.send(function(err,resp,json){
console.log(json);
});
getAccess
API for getting component access level
GET /api/access/:type/:name/:version
API Parameters
Name | Description | Type | Optional :----| :---------- | :--- | :------- type | the type of the component | path | no name | the name of the component | path | no version | the version of the component | path | no
Usage Example
var API = require('appc-registry-sdk');
API.baseurl = 'http://localhost:8080';
var api = new API('getAccess');
api.params({
"type": "",
"name": "",
"version": ""
});
api.send(function(err,resp,json){
console.log(json);
});
setAccess
API for setting component access level
PUT /api/access/:type/:name/:version
API Parameters
Name | Description | Type | Optional :----| :---------- | :--- | :------- type | the type of the component | path | no name | the name of the component | path | no version | the version of the component | path | no access | the access of the component | body | no
Usage Example
var API = require('appc-registry-sdk');
API.baseurl = 'http://localhost:8080';
var api = new API('setAccess');
api.params({
"type": "",
"name": "",
"version": ""
});
api.body({
"access": ""
});
api.send(function(err,resp,json){
console.log(json);
});
getAppc
API for listing the AppC packages
GET /api/appc/install/:version?
API Parameters
Name | Description | Type | Optional :----| :---------- | :--- | :------- version | the version of the package | path | yes
Usage Example
var API = require('appc-registry-sdk');
API.baseurl = 'http://localhost:8080';
var api = new API('getAppc');
api.params({
"version": ""
});
api.send(function(err,resp,json){
console.log(json);
});
listAppc
API for listing the AppC packages
GET /api/appc/list
Usage Example
var API = require('appc-registry-sdk');
API.baseurl = 'http://localhost:8080';
var api = new API('listAppc');
api.send(function(err,resp,json){
console.log(json);
});
installs
API for getting a list of components locations to install
GET /api/install
API Parameters
Name | Description | Type | Optional :----| :---------- | :--- | :------- components | components to install | body | no
Usage Example
var API = require('appc-registry-sdk');
API.baseurl = 'http://localhost:8080';
var api = new API('installs');
api.body({
"components": ""
});
api.send(function(err,resp,json){
console.log(json);
});
install
API for installing a specific component
GET /api/install/:token
API Parameters
Name | Description | Type | Optional :----| :---------- | :--- | :------- token | the one-time install token | path | no
Usage Example
var API = require('appc-registry-sdk');
API.baseurl = 'http://localhost:8080';
var api = new API('install');
api.params({
"token": ""
});
api.send(function(err,resp,json){
console.log(json);
});
addOrg
API for adding an org for a component
POST /api/org/:type/:name/:version
API Parameters
Name | Description | Type | Optional :----| :---------- | :--- | :------- type | the type of the component | path | no name | the name of the component | path | no version | the version of the component | path | no org_id | the org_id to add | body | no
Usage Example
var API = require('appc-registry-sdk');
API.baseurl = 'http://localhost:8080';
var api = new API('addOrg');
api.params({
"type": "",
"name": "",
"version": ""
});
api.body({
"org_id": ""
});
api.send(function(err,resp,json){
console.log(json);
});
deleteOrg
API for removing an org from a component
DELETE /api/org/:type/:name/:version
API Parameters
Name | Description | Type | Optional :----| :---------- | :--- | :------- type | the type of the component | path | no name | the name of the component | path | no version | the version of the component | path | no org_id | the org_id to remove | body | no
Usage Example
var API = require('appc-registry-sdk');
API.baseurl = 'http://localhost:8080';
var api = new API('deleteOrg');
api.params({
"type": "",
"name": "",
"version": ""
});
api.body({
"org_id": ""
});
api.send(function(err,resp,json){
console.log(json);
});
getOrg
API for getting the orgs for a component
GET /api/org/:type/:name/:version
API Parameters
Name | Description | Type | Optional :----| :---------- | :--- | :------- type | the type of the component | path | no name | the name of the component | path | no version | the version of the component | path | no
Usage Example
var API = require('appc-registry-sdk');
API.baseurl = 'http://localhost:8080';
var api = new API('getOrg');
api.params({
"type": "",
"name": "",
"version": ""
});
api.send(function(err,resp,json){
console.log(json);
});
addOwner
API for adding an owner to a component
POST /api/owner/:type/:name/:version
API Parameters
Name | Description | Type | Optional :----| :---------- | :--- | :------- type | the type of the component | path | no name | the name of the component | path | no version | the version of the component | path | no user | the user to add | body | no
Usage Example
var API = require('appc-registry-sdk');
API.baseurl = 'http://localhost:8080';
var api = new API('addOwner');
api.params({
"type": "",
"name": "",
"version": ""
});
api.body({
"user": ""
});
api.send(function(err,resp,json){
console.log(json);
});
deleteOwner
API for removing an owner of a component
DELETE /api/owner/:type/:name/:version
API Parameters
Name | Description | Type | Optional :----| :---------- | :--- | :------- type | the type of the component | path | no name | the name of the component | path | no version | the version of the component | path | no user | the user to remove | body | no
Usage Example
var API = require('appc-registry-sdk');
API.baseurl = 'http://localhost:8080';
var api = new API('deleteOwner');
api.params({
"type": "",
"name": "",
"version": ""
});
api.body({
"user": ""
});
api.send(function(err,resp,json){
console.log(json);
});
getOwner
API for getting the owners of a component
GET /api/owner/:type/:name/:version
API Parameters
Name | Description | Type | Optional :----| :---------- | :--- | :------- type | the type of the component | path | no name | the name of the component | path | no version | the version of the component | path | no
Usage Example
var API = require('appc-registry-sdk');
API.baseurl = 'http://localhost:8080';
var api = new API('getOwner');
api.params({
"type": "",
"name": "",
"version": ""
});
api.send(function(err,resp,json){
console.log(json);
});
addUser
API for adding a user to a component
POST /api/user/:type/:name/:version
API Parameters
Name | Description | Type | Optional :----| :---------- | :--- | :------- type | the type of the component | path | no name | the name of the component | path | no version | the version of the component | path | no user | the user to add | body | no
Usage Example
var API = require('appc-registry-sdk');
API.baseurl = 'http://localhost:8080';
var api = new API('addUser');
api.params({
"type": "",
"name": "",
"version": ""
});
api.body({
"user": ""
});
api.send(function(err,resp,json){
console.log(json);
});
deleteUser
API for removing a user from a component
DELETE /api/user/:type/:name/:version
API Parameters
Name | Description | Type | Optional :----| :---------- | :--- | :------- type | the type of the component | path | no name | the name of the component | path | no version | the version of the component | path | no user | the user to remove | body | no
Usage Example
var API = require('appc-registry-sdk');
API.baseurl = 'http://localhost:8080';
var api = new API('deleteUser');
api.params({
"type": "",
"name": "",
"version": ""
});
api.body({
"user": ""
});
api.send(function(err,resp,json){
console.log(json);
});
getUser
API for getting users of a component
GET /api/user/:type/:name/:version
API Parameters
Name | Description | Type | Optional :----| :---------- | :--- | :------- type | the type of the component | path | no name | the name of the component | path | no version | the version of the component | path | no
Usage Example
var API = require('appc-registry-sdk');
API.baseurl = 'http://localhost:8080';
var api = new API('getUser');
api.params({
"type": "",
"name": "",
"version": ""
});
api.send(function(err,resp,json){
console.log(json);
});
Other SDK APIs
The following additional APIs are available:
API.baseurl
Set the base url for the Arrow server.
Usage Example
API.baseurl = 'http://localhost:8080';
api.json
Set the JSON body.
Usage Example
api.json({
foo: true
});
api.body
Set the body. The body can include one or more files (provide a valid file path as the value) to automatically send multipart/form-data
. To specify a file for uploading, pass an instance of a stream.Readable.
Usage Example
api.body({
file: fs.createReadStream('/path/to/myfile.json'),
name: 'this is a name'
});
api.query
Set query parameters for the URL. These will automatically be appended correctly to the request URL.
Usage Example
api.query({
pretty_json: true
});
api.params
Set URL parameters in the request URL.
Usage Example
api.params({
username: 'test'
});
api.header
Add an HTTP request headers.
Usage Example
api.header('X-Foo','Bar');
You can add multiple headers by chaining the methods:
api.header('X-Foo','Bar')
.header('X-Bar','Foo');
API.debug
Turn on/off debug logging.
Usage Example
API.debug = false;
You can set either by passing debug
in API constructor as part of the config object (first parameter) or by setting the environment variable DEBUG
to arrow:sdk
.
Usage Example
var api = new API({debug:true},'/api/login');
DEBUG=arrow:sdk node app
Events
The following events can also be listened to:
error
: fired when an error occurs during an API requestresponse
: fired when an API response is receivedtimeout
: fired when an API request times out
Usage Example
var api = new API('myapi')
.on('error',function(err){
console.error("An error occurred.",err);
})
.on('timeout',function(err){
console.error("A timeout occurred.",err);
})
.on('response',function(resp,json){
console.log(json);
})
.send({
username: 'foo',
password: 'bar'
});
Dependencies
To use this library, you must add an appropriate npm dependency for the request library. It can be any of the following compatible modules:
Add the appropriate request module to your package.json dependencies.
Notes
This SDK was generated using the Appcelerator Arrow SDK generator. Generated on Fri Feb 13 2015 08:41:07 GMT-0800 (PST) by [email protected].