{"id":19504404,"url":"https://github.com/tools4everbv/helloid-conn-prov-target-ysis","last_synced_at":"2025-11-18T14:38:03.872Z","repository":{"id":229158047,"uuid":"705700804","full_name":"Tools4everBV/HelloID-Conn-Prov-Target-Ysis","owner":"Tools4everBV","description":"Ysis target","archived":false,"fork":false,"pushed_at":"2025-06-06T14:48:12.000Z","size":135,"stargazers_count":2,"open_issues_count":3,"forks_count":0,"subscribers_count":7,"default_branch":"main","last_synced_at":"2025-06-06T15:38:08.601Z","etag":null,"topics":["ehr","hms","provisioning"],"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":null,"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,"zenodo":null}},"created_at":"2023-10-16T14:23:48.000Z","updated_at":"2025-03-27T08:46:15.000Z","dependencies_parsed_at":"2024-04-09T09:27:51.066Z","dependency_job_id":"c738fef0-d2ba-479c-b013-0cd7d9c98594","html_url":"https://github.com/Tools4everBV/HelloID-Conn-Prov-Target-Ysis","commit_stats":null,"previous_names":["tools4everbv/helloid-conn-prov-target-ysisv2","tools4everbv/helloid-conn-prov-target-ysis"],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/Tools4everBV/HelloID-Conn-Prov-Target-Ysis","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Tools4everBV%2FHelloID-Conn-Prov-Target-Ysis","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Tools4everBV%2FHelloID-Conn-Prov-Target-Ysis/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Tools4everBV%2FHelloID-Conn-Prov-Target-Ysis/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Tools4everBV%2FHelloID-Conn-Prov-Target-Ysis/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Tools4everBV","download_url":"https://codeload.github.com/Tools4everBV/HelloID-Conn-Prov-Target-Ysis/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Tools4everBV%2FHelloID-Conn-Prov-Target-Ysis/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":285068435,"owners_count":27109462,"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","status":"online","status_checked_at":"2025-11-18T02:00:05.759Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["ehr","hms","provisioning"],"created_at":"2024-11-10T22:25:40.653Z","updated_at":"2025-11-18T14:38:03.838Z","avatar_url":"https://github.com/Tools4everBV.png","language":"PowerShell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# HelloID-Conn-Prov-Target-Ysis\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-Ysis/blob/main/Logo.png?raw=true\"\u003e\n\u003c/p\u003e\n\n## Table of contents\n\n- [HelloID-Conn-Prov-Target-Ysis](#helloid-conn-prov-target-Ysis)\n  - [Table of contents](#table-of-contents)\n  - [Introduction](#introduction)\n  - [Getting Started](#getting-started)\n    - [Prerequisites](#prerequisites)\n    - [Connection settings](#connection-settings)\n    - [Correlation configuration](#correlation-configuration)\n    - [Field mapping](#field-mapping)  \n    - [Remarks](#remarks)\n      - [Concurrent actions to 1](#Concurrent-actions-to-1)\n      - [`PUT` method for all update actions](#put-method-for-all-update-actions)\n      - [Full update within the _update_ lifecycle action](#full-update-within-the-update-lifecycle-action)\n      - [Archiving an Ysis-account](#archiving-an-ysis-account)\n      - [Conditional event for notification when discipline changes](#conditional-event)\n      - [Fields \"Beroep\" and \"Opmerking\" are cleared](#fields-beroep-and-opmerking-are-cleared)\n      - [End date must be cleared](#end-date-must-be-cleared)\n      - [Username must be unique in Ysis](#username-must-be-unique-in-ysis)\n  - [Getting help](#getting-help)\n  - [HelloID Docs](#helloid-docs)\n\n## Introduction\n\nThe HelloID-Conn-Prov-Target-Ysis is a _target_ connector that creates and updates user accounts, modules and roles within Ysis.\n\nYsis provides a set of SCIM (http://www.simplecloud.info) based API's. The HelloID connector uses the API endpoints listed in the table below.\n\n| Endpoint | Description |\n| -------- | ----------- |\n| /cas/oauth/token | Generate an authorization token \n| /gm/api/um/scim/v2/users | Search, create or update an account; assign or remove modules or roles to account |\n| /gm/api/um/scim/v2/roles | Get role data; default roles and custom roles |\n \nThe API has a limitation requiring the complete account object to be sent when updating an account. For further details, refer to the Ysis SCIM documentation: Ysis SCIM Documentation. (https://apihelp.gerimedica.nl/category/scim/).\n\n\u003e [!IMPORTANT]\nChanging the discipline of an existing account is not supported. If a discipline change is attempted during the update life-cycle, a conditional event is triggered, sending an email notification to the Ysis administrator.\n- In Ysis each account is assigned a discipline that serves as the account type.\n- If a user requires a different or additional discipline, a new account must be created with the desired discipline. This process involves manual actions by the Ysis administrator.\n\nThe following lifecycle action scripts and supporting files are available:\n| Action                                   | Description                                      |\n| -----------------------------------------| ------------------------------------------------ |\n| create.ps1                               | PowerShell _create_ or _correlate_ lifecycle action. If correlated and UpdateOnCorrelate is configured, the update script will be processed |\n| delete.ps1                               | PowerShell _delete_ lifecycle action. Archives the Ysis account, optionally update Username to YsisInitials |\n| disable.ps1                              | PowerShell _disable_ lifecycle action |\n| enable.ps1                               | PowerShell _enable_ lifecycle action |\n| update.ps1                               | PowerShell _update_ lifecycle action. Conditional event on discipline change |\n| permissions/modules/grantPermission.ps1  | PowerShell _grant_ module lifecycle action |\n| permissions/modules/revokePermission.ps1 | PowerShell _revoke_ module lifecycle action |\n| permissions/modules/permissions.ps1      | PowerShell _permissions_ modules lifecycle action |\n| permissions/roles/grantPermission.ps1    | PowerShell _grant_ role lifecycle action |\n| permissions/roles/revokePermission.ps1   | PowerShell _revoke_ role lifecycle action |\n| permissions/roles/permissions.ps1        | PowerShell _permissions_ roles lifecycle action |\n| configuration.json                       | Default _configuration.json_ |\n| fieldMapping.json                        | Default _fieldMapping.json_ |\n| assets/YsisMapping.csv                   | Example Ysis discipline _mapping csv_ |\n| assets/ConditionalNotification.mjml      | Example Discipline has changed _notification_ |\n\n## Getting Started\n\n### Prerequisites\n\n- A server with a local agent is required.\n- The outgoing IP address of the HelloID agent server must be whitelisted by GeriMedica.\n- A mapping between function and discipline is created.\n- The end date for active accounts should be cleared (see [End date must be cleared](#end-date-must-be-cleared)\n\n\u003e [!TIP]\n\u003e You can validate the outgoing IP address on the HelloID agent server with the following PowerShell script:\n\u003e ```powershell\n\u003e $ip = Invoke-RestMethod -uri \"https://ipinfo.io/json\" -method get\n\u003e Write-Verbose -Verbose \"$($ip.ip)\"\n\u003e ```\n\n### Correlation configuration\n\nThe correlation configuration is used to specify which properties will be used to match an existing account within _HelloID-Conn-Prov-Target-Ysis to a person in _HelloID_. Correlation within Ysis only possible  on the attribute 'employeeNumber'.\n\n    | Setting                   | Value            |\n    | ------------------------- | ---------------- |\n    | Enable correlation        | `True`           |\n    | Person correlation field  | `ExternalId`     |\n    | Account correlation field | `EmployeeNumber` |\n\n\u003e [!TIP]\n\u003e The employee number must be correctly registered for users in Ysis for correlation to work.\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_](./fieldMapping.json) file.\n\n### Connection settings\n\nThe following settings are required to connect to the API.\n\n| Setting                 | Description                                                                   |\n| ----------------------- | ----------------------------------------------------------------------------- |\n| ClientID                | The ClientId to connect to the Ysis API                                       |\n| ClientSecret            | The ClientSecret to connect to the Ysis API                                   |\n| BaseUrl                 | The URL to the Ysis environment. Example: https://company.acceptatie2.ysis.nl |\n| MappingFile             | The mapping between function and discipline                                   |\n| UpdateUsernameOnDelete  | Update username to the YsisIntials when archiving Ysis account                |\n| IsDebug                 | When toggled, debug logging will be displayed                                 |\n\n\n### Remarks\n\n#### Concurrent actions to 1\nSet the number of concurrent actions to 1. Otherwise, the modules and roles permission operations of one run will interfere with that of another run.\n\n#### `PUT` method for all update actions\n\nAll update actions use an `HTTP.PUT` method. This means that the full account object will be send to Ysis. For both the _enable_ and _disable_ lifecycle actions, we first retrieve the account, update the `active` property accordingly and send back the full object.\n\n#### Full update within the _update_ lifecycle action\n\nThe _update_ lifecycle action now supports a full account update. Albeit, the update itself is a `PUT`. This means that the __full__ object will be updated within Ysis. Since the update process is also supported from the _create_ lifecycle action, this might have unexpected implications.\n\nSome values may not be available in HelloID because they are not available in the HR system. If these values are added manually in Ysis you need to make sure HelloID sends back the current value in the update.ps1 script. Example:\n\n ```powershell\n    #if not mapped use current value:\n    if (-not [bool]($account.PSobject.Properties.name -match \"agbCode\")) {\n        $ysisaccount.'urn:ietf:params:scim:schemas:extension:ysis:2.0:User'.agbCode = $currentAccount.'urn:ietf:params:scim:schemas:extension:ysis:2.0:User'.agbCode\n    }\n\n    #if not mapped use current value:\n    if (-not [bool]($account.PSobject.Properties.name -match \"bigNumber\")) {\n        $ysisaccount.'urn:ietf:params:scim:schemas:extension:ysis:2.0:User'.bigNumber = $currentAccount.'urn:ietf:params:scim:schemas:extension:ysis:2.0:User'.bigNumber\n    }\n```\n\n#### Archiving an Ysis-account\n\nHelloID can archive a Ysis account, but can't dearchive an Ysis account.  HelloID will update the Ysis username to the YsisIntials if `updateUsernameOnDelete` is `enabled` i to make sure a new account can be created. If updating the username is not used. Then this can result in messages regarding existing usernames. The archived account then needs to be dearchived manually or corrected by setting a dummy username.\n\n#### Conditional event for notification when discipline changes\nA conditional event needs to be set up based on changes of the discipline. On this event a notification can be configured to send an e-mail to the Ysis-administrator.\n\n\u003e [!TIP]\n\u003e How to configure:\n\u003e 1. Make sure `Discipline` is added in the field mapping.\n\u003e 2. Go to Business Custom events, create a new custom event. Select the Ysis connector, action `Account update` and add a condition with field `Discipline` is updated.\n\u003e 3. Go to Notifications Configuration, create a new notification. Select your Ysis custom event. Import the [_conditional-notification.mjml_](./conditional-notification.mjml) template.\n\u003e\n\u003e _For more information custom events, please refer to our [documentation](https://docs.helloid.com/en/provisioning/notifications--provisioning-/custom-notification-events--conditional-notifications-.html) pages_.\n\n#### Fields \"Beroep\" and \"Opmerking\" are cleared\nWhen updating an account, the fields \"Beroep\" and \"Opmerking\" cannot be set and are instead cleared in Ysis. We have opened a support ticket with Ysis and will provide updates on this issue as more information becomes available.\n\n#### End date must be cleared\nExisting end dates must be cleared for [active] accounts. When HelloID manages the person card in Ysis, it is blocked on the contract's end date. The existing end date in Ysis cannot be modified via the Ysis web service. Ysis automatically blocks individuals whose end date has passed in Ysis, even if HelloID has reactivated the person.\n\n### Username must be unique in Ysis\nThe attribute Username must also be unique in Ysis (active, inactive, and archived)\n\n### If the emailaddress is changed, a notification is send to the end user\nIf the value in the attribute Email is changed, a notification is send to the end user. This also happens when changing the emailaddress in the test environment.\n\n## Getting help\n\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\u003e _If you need help, feel free to ask questions on our [forum](https://forum.helloid.com)_\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-ysis","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftools4everbv%2Fhelloid-conn-prov-target-ysis","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftools4everbv%2Fhelloid-conn-prov-target-ysis/lists"}