{"id":19504394,"url":"https://github.com/tools4everbv/helloid-conn-prov-target-capp12","last_synced_at":"2026-04-02T23:57:29.549Z","repository":{"id":113209930,"uuid":"309666319","full_name":"Tools4everBV/HelloID-Conn-Prov-Target-CAPP12","owner":"Tools4everBV","description":"HelloID-Conn-Prov-Target-CAPP12","archived":false,"fork":false,"pushed_at":"2024-10-04T06:08:15.000Z","size":102,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-01-08T10:44:22.200Z","etag":null,"topics":["automation","edu","lms","provisioning","target"],"latest_commit_sha":null,"homepage":"","language":"PowerShell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Tools4everBV.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-11-03T11:34:27.000Z","updated_at":"2024-10-03T15:08:54.000Z","dependencies_parsed_at":null,"dependency_job_id":"cde865b5-b2e6-4023-bbb8-dec3d37e7808","html_url":"https://github.com/Tools4everBV/HelloID-Conn-Prov-Target-CAPP12","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Tools4everBV%2FHelloID-Conn-Prov-Target-CAPP12","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Tools4everBV%2FHelloID-Conn-Prov-Target-CAPP12/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Tools4everBV%2FHelloID-Conn-Prov-Target-CAPP12/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Tools4everBV%2FHelloID-Conn-Prov-Target-CAPP12/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Tools4everBV","download_url":"https://codeload.github.com/Tools4everBV/HelloID-Conn-Prov-Target-CAPP12/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240754371,"owners_count":19852189,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["automation","edu","lms","provisioning","target"],"created_at":"2024-11-10T22:25:34.390Z","updated_at":"2026-04-02T23:57:29.543Z","avatar_url":"https://github.com/Tools4everBV.png","language":"PowerShell","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# HelloID-Conn-Prov-Target-CAPP12\n\n\u003e [!IMPORTANT]\n\u003e 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.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/Tools4everBV/HelloID-Conn-Prov-Target-CAPP12/blob/main/Logo.png?raw=true\"\u003e\n\u003c/p\u003e\n\n## Table of contents\n\n- [HelloID-Conn-Prov-Target-CAPP12](#helloid-conn-prov-target-capp12)\n  - [Table of contents](#table-of-contents)\n  - [Introduction](#introduction)\n  - [Supported features](#supported-features)\n  - [Getting started](#getting-started)\n    - [HelloID Icon URL](#helloid-icon-url)\n    - [Requirements](#requirements)\n    - [Connection settings](#connection-settings)\n    - [Correlation configuration](#correlation-configuration)\n    - [Field mapping](#field-mapping)\n    - [Account reference](#account-reference)\n  - [Remarks](#remarks)\n    - [Domain relationship diagram](#domain-relationship-diagram)\n    - [Field mapping and uniqueness constraints](#field-mapping-and-uniqueness-constraints)\n    - [Account lifecycle behavior (`ends_on`, active/inactive)](#account-lifecycle-behavior-ends_on-activeinactive)\n    - [Resource synchronization behavior](#resource-synchronization-behavior)\n    - [Sub-permission processing](#sub-permission-processing)\n    - [Import limitations](#import-limitations)\n  - [Development resources](#development-resources)\n    - [API endpoints](#api-endpoints)\n    - [API documentation](#api-documentation)\n  - [Getting help](#getting-help)\n  - [HelloID docs](#helloid-docs)\n\n## Introduction\n\n_HelloID-Conn-Prov-Target-CAPP12_ is a _target_ connector. _CAPP12_ provides a set of REST APIs that allow you to programmatically interact with its data.\n\n## Supported features\n\nThe following features are available:\n\n| Feature                                   | Supported | Actions                 | Remarks |\n|-------------------------------------------|-----------|-------------------------|---------|\n| **Account Lifecycle**                     | ✅         | Create, Update, Delete  |         |\n| **Permissions**                           | ✅         | Retrieve, Grant, Revoke | Dynamic |\n| **Resources**                             | ✅         | Create, Update          |         |\n| **Entitlement Import: Accounts**          | ✅⚠️       | -                       |         |\n| **Entitlement Import: Permissions**       | ✅⚠️       | -                       |         |\n| **Governance Reconciliation Resolutions** | ✅⚠️       | -                       |         |\n\n### ⚠️ Account Lifecycle\n\nThe CAPP12 API does not support account deletion so the delete script disables the account instead.\n\n### ⚠️ Entitlement Import: Accounts/Permissions\n\nBecause of limitations in the API, only active accounts and permissions are imported.\n\n### ⚠️ Governance Reconciliation Resolutions\n\nBecause of the absence of inactive accounts and permissions in the import, the reconciliation report can report those incorrectly as missing.\n\n## Getting started\n\n### HelloID Icon URL\n\nURL of the icon used for the HelloID Provisioning target system.\n```\nhttps://raw.githubusercontent.com/Tools4everBV/HelloID-Conn-Prov-Target-CAPP12/refs/heads/main/Icon.png\n```\n\n### Requirements\n\n- Valid CAPP12 API credentials and base URL are required.\n\n### Connection settings\n\nThe following settings are required to connect to the API.\n\n| Setting      | Description                                             | Mandatory |\n|--------------|---------------------------------------------------------|-----------|\n| ClientId     | The ClientId to connect to the API                      | Yes       |\n| ClientSecret | The ClientSecret to connect to the API                  | Yes       |\n| BaseUrl      | The URL to the API (example: https://defacto.capp12.nl) | Yes       |\n\n### Correlation configuration\n\nThe correlation configuration is used to specify which properties will be used to match an existing account within _CAPP12_ to a person in _HelloID_.\n\n| Setting                   | Value                             |\n|---------------------------|-----------------------------------|\n| Enable correlation        | `True`                            |\n| Person correlation field  | `PersonContext.Person.ExternalId` |\n| Account correlation field | `code`                            |\n\n\u003e [!TIP]\n\u003e _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_.\n\n### Field mapping\n\nThe field mapping can be imported by using the _fieldMapping.json_ file.\n\n### Account reference\n\nThe account reference is populated with the `code` property from _CAPP12_\n\n## Remarks\n\n### Domain relationship diagram\n\nThe connector manages three resources and their relationships through dynamic permissions:\n\n```mermaid\nerDiagram\n    POSITION ||--o{ ASSIGNMENT : \"\"\n    USER ||--o{ EMPLOYMENT : \"\"\n    DEPARTMENT ||--o{ EMPLOYMENT : \"\"\n\n    USER ||--o{ ASSIGNMENT : \"\"\n    USER ||--o{ MANAGER : \"\"\n    DEPARTMENT ||--o{ MANAGER : \"\"\n```\n\n**Resources:** USER, DEPARTMENT, POSITION  \n**Dynamic permissions:**\n- EMPLOYMENT: links user to department (employment relationship)\n- ASSIGNMENT: links user to position (position assignment)\n- MANAGER: defines which user has manager role for which department\n\n\n### Field mapping and uniqueness constraints\n\n- `code` is the primary account key and is required for account creation. It cannot be updated via the API.\n- `adfs_login` and `email` are unique attributes and should remain populated for active accounts.\n  - `adfs_login` is not available in the retrievable data, so field comparison is not possible during update. To prevent account deactivation, `adfs_login` is mapped explicitly in the update action.\n- `first_name` and `last_name` are optional update fields. When omitted, existing values remain unchanged.\n- `ends_on` is not mapped directly from field mapping and is controlled by lifecycle scripts.\n- The API uses different date formats between write (`dd-MM-yyyy`) and read (`yyyy-MM-dd`) operations.\n\n### Account lifecycle behavior (`ends_on`, active/inactive)\n\n- The connector applies disable semantics instead of hard delete.\n- Create and update actions keep accounts active by setting `ends_on` to `null`.\n- Delete sets `ends_on` to yesterday to inactivate the account.\n- In the delete mapping, `adfs_login` and `email` are configured with empty string values. This setup can be used to free unique values for reuse after inactivation.\n  - Validate this behavior with the customer before go-live, because it affects identity reuse policy.\n\n### Resource synchronization behavior\n\n- Resources are correlated by `code` based on their `ExternalId`. Name changes trigger updates.\n\n### Sub-permission processing\n\n- Grant actions set `ends_on` to `null`; revoke actions set `ends_on` to yesterday.\n- For inactive users, permissions cannot be managed afterwards, so permissions should be revoked before account inactivation.\n- The manager permission requires the custom field `ManagerOf` with a comma-separated list of department identifiers (e.g. `\"Department1\",\"Department2\"`).\n\n### Import limitations\n\n- Bulk import data is not real-time and is typically current after nightly processing.\n- `adfs_login` is not available in bulk user data.\n- Account and permission import only supports active items (no end date, or a future end date).\n- Accounts with a missing `code` are filtered from the import, because they cannot be referenced or managed from HelloID.\n\n## Development resources\n\n### API endpoints\n\nThe following endpoints are used by the connector.\n\n| Endpoint            | HTTP Method | Description                               |\n|---------------------|-------------|-------------------------------------------|\n| /oauth2/token       | POST        | Retrieve access token                     |\n| /api/v1/users       | GET, POST   | Import users and read account details     |\n| /api/v1/assignments | GET, POST   | Import and manage position assignments    |\n| /api/v1/employments | GET, POST   | Import and manage departments employments |\n| /api/v1/managers    | GET, POST   | Import and manage department managers     |\n| /api/v1/departments | GET, POST   | Create or update departments              |\n| /api/v1/positions   | GET, POST   | Create or update positions                |\n\n### API documentation\n\n- Supplier API documentation: [HR Import API](https://documenter.getpostman.com/view/17909805/UV5f6tSy#71de059f-e82f-4ce0-868c-b8d4673e53ea)\n\n## Getting help\n\n\u003e [!TIP]\n\u003e _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_.\n\n## HelloID docs\n\nThe official HelloID documentation can be found at: https://docs.helloid.com/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftools4everbv%2Fhelloid-conn-prov-target-capp12","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftools4everbv%2Fhelloid-conn-prov-target-capp12","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftools4everbv%2Fhelloid-conn-prov-target-capp12/lists"}