appc-registry-sdk v0.0.6
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":"foo@bar.com","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 jhaynie@appcelerator.com.