Skip to content

The node-sdk-core repository contains core functionality required by code generated by the IBM OpenAPI SDK Generator.

License

Notifications You must be signed in to change notification settings

vmatyus/node-sdk-core

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Build Status npm-version codecov semantic-release CLA assistant

IBM Node.js SDK Core

This project contains core functionality required by Node.js code generated by the IBM Cloud OpenAPI SDK Generator (openapi-sdkgen).

Installation

`npm install ibm-cloud-sdk-core`

Usage

This package exports a single object containing a number of modules as top level properties.

Example:

// this is TypeScript, since the `openapi-sdkgen` project generates TypeScript
import { BaseService } from 'ibm-cloud-sdk-core';

class YourSDK extends BaseService { ... }

Authentication

This library provides a set of Authenticators used to authenticate requests from an SDK. There are authenticators for the following authentication schemes:

  • No Auth
  • Basic
  • Bearer Token
  • IAM
  • CP4D

There are two ways to create an authenticator:

  1. Creating an instance and providing credentials programmatically
  2. Using the getAuthenticatorFromEnvironment function to create an authenticator from externally-provided configuration

For more information about the various authentication types and how to use them with your services, click here.

Examples

Programmatic

import { IamAuthenticator } from 'ibm-cloud-sdk-core';

const authenticator = new IamAuthenticator({
  apikey: '{apikey}',
});

External configuration

import { getAuthenticatorFromEnvironment } from 'ibm-cloud-sdk-core';

// env vars
// MY_SERVICE_AUTH_TYPE=iam
// MY_SERVICE_APIKEY=<apikey>
const iamAuthenticator = getAuthenticatorFromEnvironment('my-service');

Logging

This package uses debug for logging.

  • Logging is disabled by default.
  • Logging has been configured to use log levels which are assumed to be numerically ascending from most important to least important.
  • In order to see the log output, set the environment variable DEBUG including the desired log level.
    • DEBUG=ibm-cloud-sdk-core:error enables error logs
    • DEBUG=ibm-cloud-sdk-core:warning enables warning logs and below
    • DEBUG=ibm-cloud-sdk-core:info enables info logs and below
    • DEBUG=ibm-cloud-sdk-core:verbose enables verbose logs and below
    • DEBUG=ibm-cloud-sdk-core:debug enables debug logs and below

To see the output from all of the debugging levels you can use:

DEBUG=ibm-cloud-sdk-core*

The debug logger can be configured to be used for more than one library. In example, you can set a comma-separated string:

DEBUG=ibm-cloud-sdk-core:debug,other-lib:debug

Cookie Jar Support

By default, cookies are not supported in the SDK requests. If your SDK would benefit from this functionality, simply edit your code to instantiate a cookie jar (or instruct your users to do so) and pass it in the object containing configuration options to the BaseService class, as shown below.

import tough = require('tough-cookie');

class MyClass extends BaseService {
  constructor(options: MyOptions) {
    // pass the cookie jar object or simply pass the value `true`
    // and a tough-cookie instance will be created by default
    options.jar = new tough.CookieJar();
    super(options);
  }
}

The example above uses Tough Cookie to provide these capabilities, but other cookie jar libraries can be used.

Issues

If you encounter an issue with this project, you are welcome to submit a bug report. Before opening a new issue, please search for similar issues. It's possible that someone has already reported it.

Tests

Run all test suites:

npm test

Contributing

See CONTRIBUTING.

License

This library is licensed under Apache 2.0. Full license text is available in LICENSE.

About

The node-sdk-core repository contains core functionality required by code generated by the IBM OpenAPI SDK Generator.

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 37.2%
  • TypeScript 29.4%
  • CSS 23.3%
  • HTML 8.9%
  • Shell 1.2%