@koibanx/auth-sdk
TypeScript icon, indicating that this package has built-in type declarations

0.1.7 • Public • Published

Koibanx Auth SDK

Auth SDK based in module Auth

Description

The Module Auth handles:

  • Apps: Allows Koibanx users to manage apps.
  • Permissions: Manage roles within an app
  • Users: Manage users within an app
  • User Access: Provides the permissions to give access to users.

SDK Documentation

Feast yourself

Installation

npm install @koibanx/auth-sdk

NOTE: you must have the npm token in your .npmrc file


Initialization

Node

Using ES6 import

import AuthSdk from '@koibanx/auth-sdk';

const auth = AuthSdk({
  baseURL: 'http://your-url',
});

With require

exports.__esModule = true;
const AuthSdk = require('@koibanx/auth-sdk')["default"];

const auth = AuthSdk({
  baseURL: 'http://your-url',
});

Types

  • Typescript (@koibanx/auth-sdk/dist/index.d.ts)

Examples

Using ES6 import

import AuthSdk from "@koibanx/auth-sdk";

const auth = AuthSdk({
    baseURL: 'http://your-url',
    apiKey: 'a1a1a1a1-a1a1-a1a1-a1a1-a1a1a1a1a1a1',
    secret: 'b2b2b2b3-b2b2-b2b2-b2b2-b2b2b3b2b2b3',
    Authorization: 'Basic abC3abC3abC3abC3abC3abC'
})

const catchError = (err, modulo) => {
  console.log('Modulo: ', modulo);
  console.log('details: ', err.details);
  console.log('shortMessage: ', err.message);
  console.log('errorCode: ', err.code);
}

const random = Math.floor(Math.random() * 1000) + 1;
const username = `test${random}`;

Users

authSDK.users.listUsers().then((res) => {
  console.log(JSON.stringify(res.results));
}).catch((e) => catchError(e, 'listUsers'));

authSDK.users.createUser({
  username,
  password: '1234',
  tags: [
    'example',
  ],
}).then((res) => {
  authSDK.users.editUser({
    username: res.username,
    password: 'test',
  }).then((resEdit) => {
    authSDK.users.deleteUser(resEdit.username)
      .then((resDelete) => {
        authSDK.users.recoverUser({
          app: {
            id: resDelete.profile.app || 'test',
          },
          username: resDelete.username,
        }).then((resRecover) => {
          authSDK.users.getUser(resRecover.username)
            .then((resGet) => console.log('getUser', JSON.stringify(resGet)))
            .catch((e) => catchError(e, 'getUser'));
        }).catch((e) => catchError(e, 'recoverUser'));
      }).catch((e) => catchError(e, 'deleteUser'));
  }).catch((e) => catchError(e, 'editUser'));

  authSDK.users.assignRole({
    roleName: 'admin',
    username: res.username,
  })
    .then((resAssign) => console.log('assignRole', JSON.stringify(resAssign)))
    .catch((e) => catchError(e, 'assignRole'));
}).catch((e) => catchError(e, 'createUser'));

Apps

authSDK.apps.createApp({
  name: username,
}).then((resCreate) => console.log('createApp', JSON.stringify(resCreate)))
  .catch((e) => catchError(e, 'createApp'));

authSDK.apps.editApp({
  name: username,
  resetKeys: false,
}).then((resEdit) => console.log('editApp', JSON.stringify(resEdit)))
  .catch((e) => catchError(e, 'editApp'));

authSDK.apps.listApps()
  .then((resList) => console.log('listApps', JSON.stringify(resList)))
  .catch((e) => catchError(e, 'listApps'));

authSDK.apps.viewAccessLogs({
  app: {
    id: '63289b05ab19a739204c346a',
  },
  username: 'test21',
  page: 1,
  limit: 100,
}).then((resLogs) => console.log('viewAccessLogs', JSON.stringify(resLogs.results)))
  .catch((e) => catchError(e, 'viewAccessLogs'));

authSDK.apps.createApp({
  name: username,
}).then((resCreate) => {
  authSDK.apps.editApp({
    name: resCreate.name,
    resetKeys: true,
  }).then((resEdit) => console.log('editApp', JSON.stringify(resEdit)))
    .catch((e) => catchError(e, 'editApp'));
}).catch((e) => catchError(e, 'createApp'));

Roles

authSDK.roles.createRole({
  roleName: username,
}).then((resCreate) => console.log('createRole', JSON.stringify(resCreate)))
  .catch((e) => catchError(e, 'createRole'));

authSDK.roles.deleteRole({
  roleName: username,
}).then((resDelete) => console.log('deleteRole', JSON.stringify(resDelete)))
  .catch((e) => catchError(e, 'deleteRole'));

authSDK.roles.getRole({
    roleName: username,
  }).then((resGet) => console.log('getRole', JSON.stringify(resGet)))
    .catch((e) => catchError(e, 'getRole'));

authSDK.roles.listRoles()
  .then((resList) => console.log('listRoles', JSON.stringify(resList)))
  .catch((e) => catchError(e, 'listRoles'));

authSDK.roles.createRole({
  roleName: username,
}).then((resCreate) => {
  authSDK.roles.deleteRole({
    roleName: resCreate.name,
  }).then((resDelete) => console.log('deleteRole', JSON.stringify(resDelete)))
    .catch((e) => catchError(e, 'deleteRole'));
}).catch((e) => catchError(e, 'createRole'));

authSDK.roles.createRole({
  roleName: username,
}).then((resCreate) => {
  authSDK.roles.getRole({
    roleName: resCreate.name,
  }).then((resGet) => console.log('getRole', JSON.stringify(resGet)))
    .catch((e) => catchError(e, 'getRole'));
}).catch((e) => catchError(e, 'createRole'));

authSDK.roles.addPermissionToRole({
  permissionName: 'getUser',
  roleName: 'test278',
}).then((resAdd) => console.log('addPermissionToRole', JSON.stringify(resAdd)))
  .catch((e) => catchError(e, 'addPermissionToRole'));

authSDK.roles.removePermissionFromRole({
  permissionName: 'getUser',
  roleName: 'test278',
}).then((resRm) => console.log('removePermissionFromRole', JSON.stringify(resRm)))
  .catch((e) => catchError(e, 'removePermissionFromRole'));

Permissions

authSDK.permissions.listPermissions({
  limit: 1,
  page: 1,
}).then((resList) => console.log('listPermissions', JSON.stringify(resList)))
  .catch((e) => catchError(e, 'listPermissions'));

authSDK.permissions.createPermission({
  permissionName: username,
}).then((resCreate) => console.log('createPermission', JSON.stringify(resCreate)))
  .catch((e) => catchError(e, 'createPermission'));

authSDK.permissions.deletePermission({
  permissionName: username,
}).then((resDel) => console.log('deletePermission', JSON.stringify(resDel)))
  .catch((e) => catchError(e, 'deletePermission'));

authSDK.permissions.createPermission({
  permissionName: username,
}).then((resCreate) => {
  console.log(JSON.stringify(resCreate));

  authSDK.permissions.deletePermission({
    permissionName: resCreate.name,
  }).then((resDel) => console.log('deletePermission', JSON.stringify(resDel)))
    .catch((e) => catchError(e, 'deletePermission'));
}).catch((e) => catchError(e, 'createPermission'));

User Access

authSDK.userAccess.getPublicKeys()
  .then((resList) => console.log('getPublicKeys', JSON.stringify(resList)))
  .catch((e) => catchError(e, 'getPublicKeys'));

authSDK.userAccess.createTemporalToken()
  .then((resList) => console.log('createTemporalToken', JSON.stringify(resList)))
  .catch((e) => catchError(e, 'createTemporalToken'));

const expiryDate = new Date(Date.now() + 2 * (60 * 60 * 1000));

authSDK.userAccess.createTemporalPassword({
  expiration: expiryDate,
  username: 'superadmin',
  oneTime: true,
})
  .then((resList) => console.log('createTemporalToken', JSON.stringify(resList.temporalPassword)))
  .catch((e) => catchError(e, 'createTemporalToken'));

Readme

Keywords

none

Package Sidebar

Install

npm i @koibanx/auth-sdk

Weekly Downloads

231

Version

0.1.7

License

ISC

Unpacked Size

79.4 kB

Total Files

50

Last publish

Collaborators

  • npm_koibanx
  • infra-koibanx