Skip to content

Commit

Permalink
new-powershell-connector (#1)
Browse files Browse the repository at this point in the history
* new-powershell-connector

Made changes to use the new powershell v2 target logic.

* Resolved review comments

Resolved the review comments from the pull request

* Update readme

Update readme, more in line with HelloID-Conn-Prov-Target-V2-Template

* fix link

fix link

* Updated readme to match template

Updated according to template:
* Added requirements
* Added remarks
* Added instructions to setup the connector.
* Added references to documentation

* Updated password to token as password is deprecated

* formatted

* Updated with examples from github helper functions library

---------

Co-authored-by: rschouten97 <69046642+rschouten97@users.noreply.github.com>
  • Loading branch information
mouki9 and rschouten97 committed May 3, 2024
1 parent 0142431 commit d933c47
Show file tree
Hide file tree
Showing 10 changed files with 779 additions and 396 deletions.
132 changes: 100 additions & 32 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,50 +1,118 @@
# HelloID-Conn-Prov-Target-Atlassian-Jira

| :information_source: 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. |
> [!IMPORTANT]
> 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.
<br />
<p align="center">
<img src="https://www.tools4ever.nl/connector-logos/atlassianjira-logo.png">
<img src="https://github.com/Tools4everBV/HelloID-Conn-Prov-Target-Atlassian-Jira/blob/main/Logo.png?raw=true">
</p>

## Versioning
| Version | Description | Date |
| - | - | - |
| 1.1.0 | Updated with group management | 2022/12/15 |
| 1.0.0 | Initial release | 2021/04/02 |

<!-- TABLE OF CONTENTS -->
## Table of Contents
- [Versioning](#versioning)
- [Table of Contents](#table-of-contents)
- [Introduction](#introduction)
- [Connection settings](#connection-settings)
- [Getting help](#getting-help)
- [HelloID Docs](#helloid-docs)
## Table of contents

- [HelloID-Conn-Prov-Target-Atlassian-Jira](#helloid-conn-prov-target-atlassian-jira)
- [Table of contents](#table-of-contents)
- [Prerequisites](#prerequisites)
- [Remarks](#remarks)
- [Introduction](#introduction)
- [Getting started](#getting-started)
- [Provisioning PowerShell V2 connector](#provisioning-powershell-v2-connector)
- [Correlation configuration](#correlation-configuration)
- [Field mapping](#field-mapping)
- [Connection settings](#connection-settings)
- [Setup the connector](#setup-the-connector)
- [API token](#api-token)
- [Permissions](#permissions)
- [Getting help](#getting-help)
- [HelloID docs](#helloid-docs)

## Prerequisites
- [ ] _HelloID_ Provisioning agent (cloud or on-prem).
- [ ] _HelloID_ environment.
- [ ] API token in Atlassian. The following values are needed to connect:
- [ ] Username.
- [ ] Password.

## Remarks
- There is no update API available, therefore there is no update action available either.

## Introduction
The interface to communicate with Jira is via the API. Please see https://developer.atlassian.com/cloud/jira/platform/rest/v3/ for more information about the API.
_HelloID-Conn-Prov-Target-Atlassian-Jira_ is a _target_ connector. _Atlassian_ provides a set of REST API's that allow you to programmatically interact with its data. The Atlassian jira connector uses the API endpoints listed in the table below.

| Endpoint | Description |
| ------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------- |
| [/rest/api/3/user](https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-users/#api-rest-api-3-user-post) | Create user (POST) |
| [/rest/api/3/user](https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-users/#api-rest-api-3-user-delete) | Delete user (DELETE) |
| [/rest/api/3/groups/picker](https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-groups/#api-rest-api-3-groups-picker-get) | List groups (GET) |
| [/rest/api/3/group/user](https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-groups/#api-rest-api-3-group-user-post) | Add member (POST) |
| [/rest/api/3/group/user](https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-groups/#api-rest-api-3-group-user-delete) | Remove member (DELETE) |


The following lifecycle actions are available:

| Action | Description |
| ----------------------------- | -------------------------------------- |
| create.ps1 | Create or correlate to an account |
| delete.ps1 | Delete an account |
| groups - permissions.ps1 | List groups as permissions |
| groups - grantPermission.ps1 | Grant groupmembership to an account |
| groups - revokePermission.ps1 | Revoke groupmembership from an account |
| configuration.json | Default _configuration.json_ |
| fieldMapping.json | Default _fieldMapping.json_ |

## Getting started
By using this connector you will have the ability to seamlessly create delete and user accounts in Atlassian Jira. Additionally, you can manage the groupmemberships.

Connecting to Atlassian API is straightforward. Simply utilize the API Username and API Password pair and connect using basic authentication.
For further details, refer to the following pages in the Atlassian Docs:
[Basic auth for REST APIs](https://developer.atlassian.com/cloud/jira/platform/basic-auth-for-rest-apis/).

### Provisioning PowerShell V2 connector

With this connector you can create and delete accounts. Furthermore you can assign/unassign group memberships to Jira groups.
#### Correlation configuration
The correlation configuration is used to specify which properties will be used to match an existing account within _Atlassian Jira_ to a person in _HelloID_.

To properly setup the correlation:

## Connection settings
1. Open the `Correlation` tab.

2. Specify the following configuration:

| Setting | Value |
| ------------------------- | ------ |
| Enable correlation | `True` |
| Person correlation field | `` |
| Account correlation field | `name` |

> [!TIP]
> _For more information on correlation, please refer to our correlation [documentation](https://docs.helloid.com/en/provisioning/target-systems/powershell-v2-target-systems/correlation.html) pages_.
#### Field mapping
The field mapping can be imported by using the _fieldMapping.json_ file.

### Connection settings
The following settings are required to connect to the API.

| Setting | Description |
| ------------ | ----------- |
| Jira Url | Example: https://customer.atlassian.net |
| Username | User with permissions to create account |
| Password | Password of the user |
| Setting | Description | Mandatory |
| ----------------- | ---------------------------------------------------------------------------------------------------------------------------- | --------- |
| Jira API URL | The URL to the Jira environment | Yes |
| Jira API Username | The Username to connect to the Jira environment | Yes |
| Jira API Token | The API token to connect to the Jira environment | Yes |
| IsDebug | When toggled, extra logging is shown. Note that this is only meant for debugging, please switch this off when in production. | No |

## Getting help
> _For more information on how to configure a HelloID PowerShell connector, please refer to our [documentation](https://docs.helloid.com/hc/en-us/articles/360012518799-How-to-add-a-target-system) pages_

> _If you need help, feel free to ask questions on our [forum](https://forum.helloid.com)_
## Setup the connector
### API token
Before you can connect to the Atlassian API and send requests, you need to register a new API token. This token serves as your gateway to the API, enabling you to establish connections and manage permissions effectively. To generate your API token, please refer to the instructions provided by Atlassian: [Manage API tokens for your Atlassian account](https://support.atlassian.com/atlassian-account/docs/manage-api-tokens-for-your-atlassian-account/)

### Permissions
The Jira REST API operates under the same access restrictions as the standard Jira web interface. This means that accessing Jira via the API requires proper authentication and authorization. If you attempt to access resources without proper permissions, you will encounter similar limitations as when accessing Jira through its web interface. In essence, your access via the Jira REST API mirrors your access privileges within the Jira environment.

## Getting help
> [!TIP]
> _For more information on how to configure a HelloID PowerShell connector, please refer to our [documentation](https://docs.helloid.com/en/provisioning/target-systems/powershell-v2-target-systems.html) pages_.
https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-users/#api-rest-api-3-user-post
> [!TIP]
> _If you need help, feel free to ask questions on our [forum](https://forum.helloid.com)_.
# HelloID Docs
## HelloID docs
The official HelloID documentation can be found at: https://docs.helloid.com/
75 changes: 42 additions & 33 deletions configuration.json
Original file line number Diff line number Diff line change
@@ -1,35 +1,44 @@
[
{
"key": "url",
"type": "input",
"defaultValue": "",
"templateOptions": {
"label": "Jira API Url",
"placeholder": "Enter the url",
"description": "https://customer.atlassian.net",
"required": true
}
},
{
"key": "username",
"type": "input",
"defaultValue": "",
"templateOptions": {
"label": "Jira API Username",
"placeholder": "Enter the username",
"description": "",
"required": true
}
},
{
"key": "password",
"type": "input",
"defaultValue": "",
"templateOptions": {
"label": "Jira API Password",
"type": "password",
"placeholder": "Please enter a password",
"required": true
}
{
"key": "url",
"type": "input",
"defaultValue": "",
"templateOptions": {
"label": "Jira API Url",
"placeholder": "Enter the url",
"description": "https://customer.atlassian.net",
"required": true
}
]
},
{
"key": "username",
"type": "input",
"defaultValue": "",
"templateOptions": {
"label": "Jira API Username",
"placeholder": "Enter the username",
"description": "",
"required": true
}
},
{
"key": "token",
"type": "input",
"defaultValue": "",
"templateOptions": {
"label": "Jira API Token",
"type": "password",
"placeholder": "Please enter an API Token",
"required": true
}
},
{
"key": "isDebug",
"type": "checkbox",
"defaultValue": false,
"templateOptions": {
"label": "Toggle debug logging",
"required": false
}
}
]
Loading

0 comments on commit d933c47

Please sign in to comment.