Skip to content

Releases: robgrame/ExtensionAttributes.Automation

v2.0.0 — .NET 10 Upgrade & Security Hardening

24 Mar 22:27

Choose a tag to compare

🚀 What's New in v2.0.0

⬆️ .NET 10 LTS Upgrade

  • Upgraded all projects from .NET 9 to .NET 10.0 (Long Term Support — November 2028)
  • All NuGet packages aligned to .NET 10 versions
  • Target framework set to net10.0-windows for proper Windows platform support
  • Removed redundant packages (System.Text.Json, Microsoft.AspNetCore.SignalR 1.1.0)

🔒 Security Fixes

  • Fixed JSON injection in EntraADHelper.SetExtensionAttributeValue() — replaced unsafe string interpolation with JsonObject
  • Fixed index out of bounds — replaced hardcoded index[9] with validated whitelist of extension attribute names (1–15)
  • Fixed OData filter injection in IntuneHelper — added EscapeODataFilterValue() for all 4 Graph API filter queries
  • Fixed URL parameter injection in EntraADHelper — added Uri.EscapeDataString() for device name URL parameters
  • Fixed reflection safety — extension attribute names validated against whitelist before property access
  • Fixed thread-unsafe token cache — added SemaphoreSlim with double-check locking pattern in AuthenticationHandler
  • Fixed resource disposalDirectoryEntry from search results now properly disposed with using

🧹 Code Quality

  • Replaced Console.WriteLine with ILogger in library code
  • Fixed deprecated ConfigureHttpMessageHandlerBuilderConfigureAdditionalHttpMessageHandlers
  • Added [SupportedOSPlatform("windows")] annotations (eliminates all CA1416 warnings)

🧪 Testing

  • Added 28 unit tests covering: DN parsing, extension attribute validation, configuration defaults, notification settings
  • New test project: Nimbus.ExtensionAttributes.Tests with xUnit + Moq

📚 Documentation

  • Moved documentation files to docs/ folder
  • Updated README with .NET 10 badges, correct build paths, and documentation links table
  • Completed truncated configuration example in README

🧹 Cleanup

  • Removed legacy empty folders (AD.Helper/, EntraAD.Helper/, ExtensionAttributes.Worker/, Intune.Helper/)
  • Added repository description and search topics for better discoverability

Extension Attributes Automation Worker | ver 1.1.19

27 Mar 20:31

Choose a tag to compare

📢 Extension Attributes Automation Worker 🚀 | ver 1.1.19

Release Notes

Refactor logging and return value handling

  • Removed unnecessary logging and calls in EntraADHelper.cs, directly returning the extension attribute value.
  • Updated logging levels from LogDebug to LogTrace in ComputerExtensionAttributeHelper.cs for more granular traceability without cluttering debug logs.

Refactor logger type in ADHelper class

  • Updated logger from ILogger<ADHelper> to ILogger<IADHelper> to enhance abstraction and flexibility in logging.
  • Constructor parameter adjusted to reflect this change.

Fix casing issues and improve logging in automation jobs

  • Updated GetExtensionAttribute and SetExtensionAttributeValue methods in EntraADHelper.cs to ensure correct casing for extension attributes.
  • Enhanced logging clarity in ComputerExtensionAttributeHelper.cs and removed unnecessary logs from SetComputerExtensionAttributeJob.
  • Improved startup console output in Program.cs.
  • Adjusted logging levels in logging.json for more detailed output.
  • Modified job scheduling in schedule.json to refine execution frequency.

Enforce mandatory config files and update install path

  • Updated Program.cs to require appsettings.json, schedule.json, and logging.json for application startup, enhancing configuration reliability.
  • Modified Install.cmd to use the %PROGRAMFILES% environment variable for the installation destination, improving flexibility across different systems.
  • Removed the -s option from the installation command.

Update service configuration and installation paths

  • Changed DebugType to 'full' in project file for better debugging.
  • Updated console output in Program.cs with new service name and color.
  • Modified Install.cmd to reflect new installation path.
  • Removed DomainFQDN from appsettings.json, indicating a config change.

Fix formatting in Readme.md for better readability

  • Added spaces before bullet points for "Entra AD App Registration" and "Download the Binary Files" to ensure consistent spacing and improve the overall readability of the list.

Update contact email and improve support section

  • Changed the contact email from roberto.gramellini@microsoft.com to roberto@gramellini.net for better accessibility.
  • Converted the plain email address in the support section to a clickable mailto link for easier user interaction.

Update changelog for version 1.1.7

  • Added version 1.1.7 to the changelog, addressing Entra AD token expiration issues and improving error handling.
  • Removed version 1.2.0 as it duplicated fixes from 1.1.7.
  • Retained previous version details for context, including 1.1.0's enhancements for Windows service support and logging.
  • Known issues section remains unchanged.

Update changelog for versions 1.1.0 and 1.2.0

  • Added support for running as a Windows service and improved logging capabilities in version 1.1.0.
  • Fixed issues with Entra AD token expiration and enhanced error handling in version 1.2.0.
  • Removed previous versions 1.0.0 and 1.0.1 from the changelog.

Update license to GPL 3.0

  • Clarified the project license by specifying it as GPL 3.0 instead of just GPL.

Full Changelog: 1.0.2...1.1.19

v1.0.2

25 Mar 21:56

Choose a tag to compare

Extension Attributes Automation Worker 🚀

Have you ever needed to automate the management of computer extension attributes in Entra AD? Look no further! The Extension Attributes Automation Worker Service is here to help you streamline this process.

This service is designed to automate the management of extension attributes in Entra AD, reducing manual effort and potential errors. It leverages the power of .NET Core and widely adopted NuGet packages to provide a robust solution for your automation needs.
This project is part of a larger automation framework that aims to simplify data processing tasks, making it easier for you to manage your Entra AD environment.