Skip to content

Add JSON format support and improve module compatibility for Entra Private Access provisioning#19

Closed
michaelmsonne wants to merge 5 commits into
microsoft:mainfrom
michaelmsonne:main
Closed

Add JSON format support and improve module compatibility for Entra Private Access provisioning#19
michaelmsonne wants to merge 5 commits into
microsoft:mainfrom
michaelmsonne:main

Conversation

@michaelmsonne
Copy link
Copy Markdown

This pull request introduces support for a JSON configuration format in addition to CSV for the Entra Private Access Provisioning script, updates documentation to reflect this new capability, and improves PowerShell compatibility and header handling in internal functions. It also provides a sample JSON configuration file to help users get started.

JSON Configuration Support and Documentation Updates:

  • Added detailed documentation in Docs/EntraPrivateAccessProvisioning.md describing the new JSON configuration format, including field descriptions, usage examples, and instructions for converting from CSV to JSON.
  • Added a sample JSON configuration file (Samples/Sample-EntraPrivateAccessConfig.rename_to_json) to demonstrate the expected structure and usage.

PowerShell Compatibility and Usage:

  • Updated README.md to specify compatibility with Microsoft.Graph v2.25.0, including installation and verification instructions to ensure users have the correct module versions.

Internal Function Improvements:

  • Improved header merging logic in Migrate2GSA/internal/functions/Invoke-InternalGraphRequest.ps1 to ensure custom and additional headers are combined correctly when making internal Graph API requests.

In dev!

Enhanced Start-EntraPrivateAccessProvisioning.ps1 to support provisioning from both CSV and JSON configuration files, including dynamic JSON-to-CSV conversion functions. Improved required module validation and import logic to handle dependencies and version compatibility, especially for Microsoft.Graph and Microsoft.Entra modules. Updated documentation in README.md to clarify supported module versions and installation instructions. Minor bug fix in Invoke-InternalGraphRequest.ps1 for header merging logic.
Adds logic to strip surrounding quotes from port strings for better compatibility.
Updated documentation and sample files to describe and demonstrate the new JSON configuration format for Start-EntraPrivateAccessProvisioning. Incremented script version to 2.1 and added changelog entry for JSON support, improved module handling, and error messages.
@andres-canello
Copy link
Copy Markdown
Contributor

Thanks so much for testing and your contributions. We discussed offline that some of these changes are not something we would like to add right now. I updated the internal function with the same fix. Cheers.

@michaelmsonne
Copy link
Copy Markdown
Author

michaelmsonne commented Oct 16, 2025

Posted and shared my fork here then, as from what I see and hear out there, JSON is a need for date like this, and a fix the the classic "dependency hell"...

https://www.linkedin.com/feed/update/urn:li:activity:7384483342865305600/

And also a blog post here about the fork with my adds and why: https://blog.sonnes.cloud/extending-the-migrate2gsa-powershell-module-why-i-added-json-support/

@andres-canello
Copy link
Copy Markdown
Contributor

Thanks, your feedback is heard and appreciated. Please keep it coming.

@michaelmsonne
Copy link
Copy Markdown
Author

Im just happy to help and so - and just from here I hear the usecases for this format and so - if there is anything, feel free to loop me in as ware are already in contact!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants