Skip to content
This repository has been archived by the owner on Sep 4, 2024. It is now read-only.

Cox-Automotive/alks-node

Repository files navigation

ALKS Node Client

NPM

Build Status

About

Node client for interfacting with ALKS services.

Usage

var alks = require('alks-node');

Utilities

getDurations()

Returns array of valid session durations.

alks.getDurations();

Methods

createKey(account, password, duration, options, callback)

Creates a new session key with the provided information. Returns a JSON document.

var data = {
    alksAccount: 'alksAccount',
    alksRole: 'alksRole',
    sessionTime: 2,
    server: 'endpoint',
    userid: 'my-network-id',
    password: 'my-network-password'
};

alks.createKey(data, 'password', 2, {}, function(err, key){
    if(err) console.error(err);
    else console.log(JSON.stringify(key));
});

getAccounts(server, userid, password, options, callback)

Returns a collection of accounts.

alks.getAccounts('server', 'username', 'password', {}, function(err, accounts){
    if(err) console.error(err);
    else console.log(JSON.stringify(accounts));
});

generateConsoleUrl(key, options, callback)

Returns a AWS console URL for a given key. The URL is good for 15 minutes.

alks.generateConsoleUrl(alksKey, {}, function(err, url){
    if(err) console.error(err);
    else console.log('The console URL is: %s', url);
});

getIamRoleTypes(server, userid, password, options, callback)

Returns a list of current IAM role types.

createIamKey(account, password, options, callback)

Generates a new session for use in creating IAM roles and console sessions.

createIamRole(account, password, roleName, roleType, includeDefaultPolicies, options, callback)

Creates a new IAM role, provided account must contain valid ALKS IAM session.

createIamTrustRole(account, password, roleName, roleType, trustArn, options, callback)

Creates a new IAM trust role, provided account must contain valid ALKS IAM session.

deleteIamRole(account, password, roleName, options, callback)

Deletes a previously created IAM role, provided account must contain valid ALKS IAM session.

createLongTermKey(account, password, iamUserName, options, callback)

Creates a new longterm access key with the provided information. Returns a JSON document.

var data = {
    alksAccount: 'alksAccount',
    alksRole: 'alksRole',
    server: 'endpoint',
    userid: 'my-network-id',
    password: 'my-network-password'
};

alks.createLongTermKey(data, 'password', 'iamUser', {}, function(err, ltk){
    if(err) console.error(err);
    else console.log(JSON.stringify(ltk));
});

deleteLongTermKey(account, password, iamUserName, options, callback)

Deletes a previously created longterm key role, provided account must contain valid ALKS IAM session.

var data = {
    alksAccount: 'alksAccount',
    alksRole: 'alksRole',
    server: 'endpoint',
    userid: 'my-network-id',
    password: 'my-network-password'
};

alks.deleteLongTermKey(data, 'password', 'iamUser', {}, function(err, ltk){
    if(err) console.error(err);
    else console.log(JSON.stringify(ltk));
});

refreshTokenToAccessToken(token, options, callback)

Exchanges a 2FA refresh token for an access token.

var data = {
    alksAccount: 'alksAccount',
    server: 'endpoint'
};

alks.refreshTokenToAccessToken('bLGjhD2HVh5x4TZfWoXF5aGxDRD3afnlONBxsjN7g8U', data, {}, function(err, ltk){
    if(err) console.error(err);
    else console.log(JSON.stringify(ltk));
});