/HaloAPI

PowerShell module for the Halo Service Solutions series of software products.

Primary LanguagePowerShellMIT LicenseMIT

HaloAPI - A PowerShell module for Halo Service Solutions software

Azure DevOps Pipeline Status Azure DevOps Code Coverage PowerShell Gallery License GitHub Sponsors Stable Release Preview Release

Who are we?

We are Mikey O'Toole (@homotechsual) and Luke Whitelock (@LWhitelock) we are both directors for (separate) UK-based managed IT services providers who share a passion for automation and good quality MSP software tools.

What is this?

This is the code for a PowerShell module for the Halo Service Solutions series of software, including:

The module is written for PowerShell 7. It is not compatible with Windows PowerShell 5.1 and never will be.. This module is licensed under the MIT license.

What does it do?

HaloAPI provides a PowerShell wrapper around the Halo API, tested extensively against HaloPSA instances only (please test against HaloITSM or HaloServiceDesk instances and let us know how it works). The module can retrieve and send information to the Halo API.

Installing

This module is published to the PowerShell Gallery and can be installed from within PowerShell with Install-Module

Install-Module HaloAPI

Getting Started

The first and probably most important requirement for this module is getting it connected to your Halo instance.

Creating an API application in Halo

  1. In your Halo instance head to Configuration > Integrations > Halo PSA API
    This might be Halo Service Desk API or Halo ITSM API.

  2. Click on View Applications
    All going well you should be at config/integrations/api/applications.

  3. Click on New to add a new API application.

  4. Enter the Application Name.
    For example HaloAPI PS Module.

  5. Make sure Active is checked.

  6. Set the Authentication Method to Client ID and Secret (Services).

  7. Store the Client ID and Client Secret securely.

  8. Set the Login Type and Agent to login as appropriately.
    This setting will determine who appears to be responsible for these API calls. You may want to create a dedicated agent user for this purpose.

  9. Select the Permissions tab.

  10. Grant the application the permissions required for your purposes.
    Generally speaking you want to limit the API to only the permissions it needs, to do the job you're scripting for.

Connecting the PowerShell module to the API

  1. Install the HaloAPI PowerShell module on PowerShell 7.0 or above.

    Install-Module HaloAPI
  2. Connect to the Halo API with Connect-HaloAPI

    Connect-HaloAPI -ClientID "a1234567-bcd8-9e01-2f34-56g7hijk89lm" -Tenant "demo" -URL "https://demo.halopsa.com" -ClientSecret "a1234567-bcd8-9e01-2f34-56g7hijk89lm-a1234567-bcd8-9e01-2f34-56g7hijk89lm" -Scopes "all"