Skip to content

Tools4everBV/HelloID-Conn-Prov-Target-ArdaOnline

Repository files navigation

HelloID-Conn-Prov-Target-ArdaOnline

ℹ️ Information
This repository contains the connector and configuration code only. The implementer is responsible to acquire the connection details such as username, password, certificate, etc. You might even need to sign a contract or agreement with the supplier before implementing this connector. Please contact the client's application manager to coordinate the connector requirements.

Table of contents

Introduction

HelloID-Conn-Prov-Target-ArdaOnline is a target connector. ArdaOnline provides a set of REST API's that allow you to programmatically interact with its data. Contrary to most connectors, ArdaOnline uses a GraphQL API. The difference compared to REST is that; with GraphQL every request is a POST containing a json payload. That payload consists of a query. Fore more information on GraphQL please refer to: https://graphql.org/learn/

The following lifecycle actions are available:

Action Description
create.ps1 Create and/or correlate the Account
update.ps1 Update the Account
enable.ps1 Enable the Account
delete.ps1 Disable the Account

Getting started

Provisioning PowerShell V2 connector

Correlation configuration

The correlation configuration is used to specify which properties will be used to match an existing account within ArdaOnline to a person in HelloID.

To properly set up the correlation:

  1. Open the Correlation tab.

  2. Specify the following configuration:

    Setting Value
    Enable correlation True
    Person correlation field Person.ExternalId
    Account correlation field externalUserId

Field mapping

The mapping plays a fundamental role in every connector and is essential for aligning the data fields between a HelloID person and the target system. The Provisioning PowerShell V2 connector comes with a UI-based field mapping and is therefore, more accessible to a broader audience, including people who may not have a programming background.

The following fields are used within the ArdaOnline connector:

ℹ️ Information
Note that field names are case sensitive and be aware that both the email and lastName fields use a complex mapping.

Create Update Enable Disable Delete
Field Mapped to value Type Options: Description
externalUserId Person.ExternalId x x Field - notifications: false
- account data: false
email See complex mapping x x Complex - notifications: false
- account data: false
firstName Person.Name.NickName x x Field - notifications: false
- account data: false
lastName See complex mapping x x Complex - notifications: false
- account data: false
locale nl x x Fixed - notifications: false
- account data: false
department Person.PrimaryContract.Department.ExternalId x x Field - notifications: false
- account data: false
expiresAt See complex mapping x x Field - notifications: false
- account data: false
See expiresAt

Connection settings

The following settings are required to connect to the API.

Setting Description Mandatory
UserName The UserName to connect to Arda Online Yes
Password - Yes
ClientId The CLientId to connect to Arda Online Yes
ClientSecret The ClientSecret to connect to Arda Online Yes
BaseUrl The URL to Arda Online Yes
VoucherCode The voucherCode Yes
GroupId The Id of the group that determines which courses the user can follow Yes
Complex mapping

ℹ️ Make sure to toggle Use account data from other systems on the Account tab and select Active Directory.

lastName
function updatePersonSurnameToConvention(personObject) {
    let surname;

    switch (personObject.Name.Convention) {
        case 'B':
            surname = `${personObject.Name.FamilyName}`;
            if (personObject.Name.FamilyNamePrefix) {
                surname += `, ${personObject.Name.FamilyNamePrefix}`;
            }
            break;
        case 'BP':
            surname = `${personObject.Name.FamilyName} - ${personObject.Name.FamilyNamePartnerPrefix} ${personObject.Name.FamilyNamePartner}`;
            if (personObject.Name.FamilyNamePrefix) {
                surname += `, ${personObject.Name.FamilyNamePrefix}`;
            }
            break;
        case 'P':
            surname = `${personObject.Name.FamilyNamePartner}`;
            if (personObject.Name.FamilyNamePartnerPrefix) {
                surname += `, ${personObject.Name.FamilyNamePartnerPrefix}`;
            }
            break;
        case 'PB':
            surname = `${personObject.Name.FamilyNamePartner} - ${personObject.Name.FamilyNamePrefix} ${personObject.Name.FamilyName}`;
            if (personObject.Name.FamilyNamePartnerPrefix) {
                surname += `, ${personObject.Name.FamilyNamePartnerPrefix}`;
            }
            break;
        default:
            surname = `${personObject.Name.FamilyName}`;
            if (personObject.Name.FamilyNamePrefix) {
                surname += `, ${personObject.Name.FamilyNamePrefix}`;
            }
            break;
    }

    return surname;
}

updatePersonSurnameToConvention(Person);
email
function getActiveDirectoryEmail(){
  return Person.Accounts.MicrosoftActiveDirectory.mail
}
getActiveDirectoryEmail();
expiresAt
function GetCurrentDate(){
  return new Date()
}
GetCurrentDate();

Prerequisites

Remarks

expiresAt

The expiresAt attribute will only be set within the enable and delete lifecycle actions.

  • Set to Person.PrimaryContract.EndDate within the enable lifecycle action.
  • Set to current date within the delete lifecycle action.

voucherCode

The voucherCode is a fixed value that is the same for all users.

groupId

The GroupId is a fixed value that is the same for all users.

externalUserId and mail always mandatory

Both the externalUserId and mail properties are always mandatory when updating the account within ArdaOnline.

Getting help

ℹ️ For more information on how to configure a HelloID PowerShell connector, please refer to our documentation pages

ℹ️ If you need help, feel free to ask questions on our forum

HelloID docs

The official HelloID documentation can be found at: https://docs.helloid.com/

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •