Skip to main content

Itential Adapter Essentials II

This course teaches learners the essential IAP adapter features, files, directories, and their contents through lecture and hands-on labs.

Enrollment in this course is by invitation only
  • Course Number

  • Classes Start

  • Classes End

About This Course

Estimated course duration: 8 to 9 hours.

You must successfully complete IAP101 Introduction to the Itential Automation Platform and IDEV101 Itential Adapter Essentials I before you begin this course. IAP101 is the starting point for all Itential Academy training. It describes how to use the Itential Academy online training environment, introduces Itential, and introduces the Itential Automation Platform. IDEV101 is the first half of Itential Adapter Essentials.

Welcome to IDEV102, Itential Adapter Essentials II, part of the Itential Developer series of courses for software developers building applications and features on the Itential Automation Platform (IAP). This course is the second of two courses that teach the basic essentials to build an Itential adapter. Adapters are a part of IAP. They provide external systems integration by performing two functions: executing the external systems' APIs and abstracting those external systems through data translations, generic APIs, and light business logic.

This course teaches learners how to build IAP adapters without any external assistance. Software developers should be familiar with the detailed, manual process to build an IAP adapter before using automation tools like Itential's Adapter Builder available from the Itential Developer Hub.

In Itential Adapter Essentials I, we setup and discovered a change management system, learned how to implement the system's application programming interfaces (APIs), and tested those APIs. In this course, we discuss the minimum required features of an Itential adapter. We introduce the Node.js Package Manager (npm) and documenting code with JSDoc. Learners incrementally build, test, and evolve a Node.js program into an Itential adapter for a change-management ticketing system through the external system's REST APIs.

In every lab learners acquire knowledge on a new principal while practicing skills taught in previous labs. Labs are designed to be completed in sequence, include full testing, and demonstrate good programming design patterns.

Course Goals

After completing this course, learners will be able to:

  • Express the purpose of an IAP adapter.
  • Discuss an IAP adapter's required characteristics.
  • Identify Itential's recommended adapter software design patterns.
  • Explain Node.js packages.
  • Discuss the public npm registry.
  • Explain the purpose of an npm package.json file.
  • Summarize a package.json file's mandatory fields.
  • Recognize how Node.js packages identify package dependencies.
  • Explain semantic versioning.
  • Classify Semantic Versioning (semver) release-range operators.
  • Explain an npm package's scope.
  • Describe the public npm package request.
  • Explain JSDoc for documenting custom IAP adapters.
  • List JSDoc's different tag types.
  • Summarize Itential's recommended documentation practices.
  • Describe ways to optimize JSDoc.
  • Describe how synchronous programming causes a blocked serialized event queue.
  • Describe why Node.js and JavaScript were designed with an asynchronous programming model.
  • Illustrate how asynchronous programming produces undesirable results when synchronous programming is required.
  • Describe how JavaScript and Node.js implement synchronous programming.
  • Discuss all IAP packages' APIs mandatory parameter, the callback.
  • Describe an IAP callback function's parameters.
  • Demonstrate building a Node.js Package Manager (npm) package.
  • Practice using npm to initialize an npm package.
  • Recognize the npm command used to download and install a Node.js package's dependent packages.
  • Perform installing the request global npm package with npm.
  • Apply the request global npm package in a Node.js module.
  • Execute a REST API from a Node.js program.
  • Practice synchronous programming using callback functions.
  • Describe refactoring.
  • Restate refactoring's benefits.
  • Discuss how isolating logic through deconstruction improves reliability and makes troubleshooting easier.
  • Practice refactoring code.
  • Describe modular programming.
  • Recognize modular programming's benefits.
  • Discuss how modular programming improves code maintainability and helps identify errors.
  • Describe how Node.js exports and imports variables, functions, classes, and objects between modules.
  • List the three types of Node.js modules.
  • Practice converting a single-module Node.js program into a multi-module Node.js program.
  • Identify the Node.js commands for exporting and importing variables, functions, classes, and objects.
  • Describe how IAP imports and uses an adapter package.
  • Summarize the benefits of IAP's adapter software design.
  • Practice tiered testing and development by incrementally building and testing an npm package.
  • Describe event-based programming.
  • Discuss how adapters use events to asynchronously notify IAP about an external system's reachability and health.
  • Apply emitting events from an adapter.
  • Translate IAP configuration file pronghorn.json.
  • Construct a pronghorn.json file for your adapter package.
  • Explain JSON schema.
  • Practice building JSON schema using Itential's JSON to JSON Schema Builder.
  • Tell how to add an IAP package to IAP.
  • Complete adding an IAP adapter package to IAP.
  • Discuss how IAP discovers IAP packages.
  • Discuss how IAP loads IAP package changes.
  • Describe how to encrypt sensitive adapter properties, such as passwords.
  • Practice encrypting sensitive adapter properties.
  • Identify how a system administrator configures IAP logs.
  • Describe how an administrator, developer, or user monitors logs while troubleshooting.
  • Identify how to log messages in IAP.
  • Demonstrate logging messages using IAP's global log object.

Course Outline

Welcome (Average time 15 minutes)

Course Learning Objectives
Before You Begin
Syllabus and Grading
Course Timing
Course Progress and Completion
Discussion Guidelines
Learning Aids
Meet Your Instructor
Copyright and Trademark Notices

Chapter 1: Itential Adapter Packages (15 min)

Adapter's Purpose
IAP Adapter Requirements
IAP Adapter Recommendations

Chapter 2: npm (30 min)

Node.js Packages
npm and Scope
Semantic Versioning
npm Command
The Public request Node.js Package

Chapter 3: JSDoc (30 min)

Documenting with JSDoc
Recommended Documentation
JSDoc Optimizations

Chapter 4: Node.js Callbacks (15 min)

Synchronous Programming
Asynchronous Programming
Callback Functions
IAP Callbacks

Chapter 5: Node.js Labs (3 hr)

Lab 1: Get Change Tickets
Lab 2: Create Change Ticket
Lab 3: Refactor Code
Modular Programming
Node.js Module System
Adapters Export a Class
Lab 4: Modular and Declarative Node.js

Midterm (30 min)

Chapter 6: IAP Adapter (2.25 hr)

Adapter Characteristics
File pronghorn.json
JSON Schema
Adding Adapters
Adapter Discovery and Monitoring
Encrypting Adapter Properties
Logging Overview
Logging System Tasks
Logs for Troubleshooting
Writing Log Messages
Lab 5: Itential Adapter
Lab 6: healthcheck()

Final Exam (15 min)

Final Project (45 min)


  • Learners are software developers
  • Experience with Node.js (JavaScript)

New to Node.js?

NodeSchool offers free workshops for learning JavaScript and Node.js. You might also try TutorialsTeacher, JavaScript is Sexy, w3schools, and Mozilla Web Docs.

Udemy, Coursera, Lynda, Udacity and other eLearning providers also offer Node.js training courses.

JSDoc is an API documentation generator for JavaScript and beneficial for documenting Node.js functions and methods.

Course Staff

Course Staff Image #1

Andrew Austin

Andrew has 20 years experience working in network engineering and systems administration. He is experienced designing, building, troubleshooting, and managing IP/MPLS networks.

Frequently Asked Questions

How can I access this course?

Open a ticket and request access using the service desk widget ( service desk widget icon ) in the page footer.

Click the widget to open a Help modal. For the summary, type "Request Access". Include the course in the description. Type your contact email, and click Send.

What web browser should I use?

The Open edX and Itential platforms work best with current versions of Chrome, Firefox, Internet Explorer version 11 and above, and Edge.

See the Open edX list of supported browsers for the most up-to-date information.

Do I need to install any software?

No software needs to be installed before course enrollment. During course labs, learners will install Postman, Inc.'s Postman to test and troubleshoot REST APIs.

What is the lab environment?

Each learner will create a developer's instance of a change management ticketing system. The instance is created with test data. Learners will access their instance over HTTPS using a web browser and Postman.