New Features
- Added a new argument `--token` which lets you pass an authentication token during run time. This allows for use of other authentications methods such as Workload Identity federation in Azure DevOps pipelines.
Improvements
- To ensure seamless updates and creation of configurations, dependent elements such as scope tags, filters, and notification templates are now created beforehand.
- Compliance policy creation and updates now include a verification step to ensure the existence of notification templates by matching their names.
- Backup of a compliance policy now includes the name of the notification template used, enhancing the processing in update scenarios.
- Message template `isDefault` value is now updated if they do not match.
- Logging output has been updated to be consistent between update and backup runs as well as to provide more useful information.
- Assignments is no longer updated on configurations being created if the `--update-assignment` argument is not used.
- The accuracy of the diff output has been improved to ensure all changes are correctly reflected in the diff summary.
- When using `--split` during documentation, index.md no longer includes known files such as README, index and prod-as-built. Additionally, the index file now sorts the list alphabetically.
Other Updates
Codebase Refactoring
In this release, IntuneCD has undergone a significant refactoring of the codebase to adopt a class inheritance structure. This architectural change was implemented to enhance the maintainability, scalability, and extensibility.
Why the Refactoring Was Necessary:
Previously, the codebase utilized a more procedural approach, which led to code duplication, difficulty in making changes, and a lack of consistency across modules. As the complexity of IntuneCD grew, it became clear that a more structured and modular approach was needed to facilitate ongoing development and maintenance.
Benefits of the Refactoring:
- **Improved Code Organization:** Organizing functionality into classes and leveraging inheritance enhances codebase logic and readability.
- **Enhanced Readability and Understandability:** Code reuse and encapsulation promote concise and readable code.
- **Scalability and Extensibility:** IntuneCD is better prepared for future feature additions and changes.
Impact on Users:
No significant impact is expected on current setups, except for additional commits during backup.
Next Steps:
Impact of these refactoring changes will be monitored and feedback gathered from users to further refine and optimize IntuneCD.
**Full Changelog**: https://github.com/almenscorner/IntuneCD/compare/v2.2.0...v2.3.0