Skip to content

A client for interacting with the Alert Logic AIMS Public API.

License

Notifications You must be signed in to change notification settings

mcnielsen/aims-client-1

This branch is 79 commits ahead of BarrySkidmore/aims-client-1:master.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

e0b1357 · Mar 18, 2020
Jan 14, 2019
Mar 17, 2020
Nov 7, 2019
Jan 14, 2019
Apr 15, 2019
Jan 14, 2019
Feb 12, 2019
May 1, 2019
Mar 18, 2020
Mar 18, 2020
Jan 28, 2019
Apr 24, 2019
May 3, 2019

Repository files navigation

@al/aims

A client for working with the AIMS Alert Logic API.

This library uses @al/client as its HTTP provider interface.

Disclaimer

Until the release of version 1.0.0 all current minor version increments may be backwards incompatible. Please bear this in mind when developing against this library. Should you have any further questions, please do not hesitate to contact us as npm@alertlogic.com

Installation

  npm install @al/aims --save

Usage

  var AIMSClient = require('@al/aims').AIMSClient; //commonjs - e.g. node
  import { AIMSClient } from '@al/aims'; //ES2015 - e.g. Angular, TS projects

Get Account Details

AIMSClient.getAccountDetails(accountId)
  accountId: '1234'

Get Managed Accounts

AIMSClient.getManagedAccounts(accountId, queryParams)
  accountId: '1234'
  queryParams: {
    active: true,
    relationship: 'bills_to|managed|managing'
  }

Enbale or disabled MFA requirement on account

AIMSClient.requireMFA(accountId, bool)
  accountId: '1234',
  bool: true|false

Authenticate a user

AIMSClient.authenticate(params, username, password, mfa_code);
  params: {
    service_name: 'aims',
    path: '/authenticate'
  },
  username: 'bob@email.com',
  password: 'IAmNotAValidUser!@#$',
  mfa_code: '123456'

Change a users password

AIMSClient.changePassword(email, password, newPassword)
  email: 'bob@email.com',
  password: IAmNotAValidUser!@#$',
  newPassword: 'ANewPasswordOfMyChoosing'

Reconstitute a logged in users identity from their AIMS Token

AIMClient.tokenInfo()

Initiate a password reset

AIMSClient.initiateReset(email, returnTo)
  email: 'bob@email.com'',
  returnTo: 'https://URLForLoginPurposes'

Complete a password reset

AIMSClient.resetWithToken(token, password)
  token: 'ProvidedInEmail',
  password: 'ANewPasswordOfMyChoosing'

Create a role

AIMSClient.createRole(accountId, name, permissions)
  accountId: '1234',
  name: 'This Is My New Role',
  permissions: '{"*:own:*:*": "allowed", "aims:own:grant:*":"allowed"}'

Delete a role

AIMSClient.deleteRole(accountId, roleId)
  accountId: '1234',
  roleId: 'UUID-GOES-HERE'

Get Global Role

AIMSClient.getGlobalRole(roleId)
  roleId: 'UUID-GOES-HERE'

Get Account Role

AIMSClient.getAccountRole(accountId, roleId)
  accountId: '1234',
  roleId: 'UUID-GOES-HERE'

Get all Global Roles

AIMSClient.getGlobalRoles()

Get all Account Roles

AIMSClient.getAccountRoles(accountId)
  accountId: '1234'

Update a Role

AIMSClient.updateRole(accountId, name, permissions)
  accountId: '1234',
  name: 'The New Role Name',
  permissions: '{"*:own:*:*": "allowed", "aims:own:grant:*":"allowed"}'

Update a Role Name

AIMSClient.updateRole(accountId, name)
  accountId: '1234',
  name: 'The New Role Name',

Update Role Permissions

AIMSClient.updateRole(accountId, permissions)
  accountId: '1234',
  permissions: '{"*:own:*:*": "allowed", "aims:own:grant:*":"allowed"}'

Enroll a Users MFA Device

AIMSClient.enrollMFA(uri, codes)
  uri: 'otpauth://totp/Alert%20Logic:admin@company.com?secret=GFZSA5CINFJSA4ZTNNZDG5BAKM2EMMZ7&issuer=Alert%20Logic&algorithm=SHA1',
  codes: ["123456", "456789"]

Remove a Users MFA Device

AIMSClient.deleteMFA(email)
  email: 'bob@email.com'

Interactive

Loads the library into memory and stays in an interactive node shell.

  npm run interactive

NOTE - You must build the sources before running this command, see Building section below

Tests

  npm test

Contributing

The sources are written in Typescript and follow the tslint airbnb style.

Building

To generate a production build

npm run build

To generate a development build

npm run build-dev

Builds will be be generated into a dist folder and will contain commonjs and umd bundles that will be consumed depending on the module system in whichever environment you are using.

About

A client for interacting with the Alert Logic AIMS Public API.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • TypeScript 92.5%
  • Shell 4.8%
  • JavaScript 2.7%