Skip to content

v2.0.0

Choose a tag to compare

@github-actions github-actions released this 09 Mar 12:37
· 4 commits to main since this release
846c345

This is a major release of HelloID-Conn-Prov-Target-Blacklist-SQL with significant enhancements to match the CSV blacklist connector functionality and Tools4ever V2 connector standards, plus major improvements to code maintainability, configurability, and operational transparency.

Added

  • Retention period support with configurable duration for deleted values and automatic expiration logic
  • retentionPeriod configuration parameter to specify how many days deleted values remain blocked before reuse
  • Cross-check validation via crossCheckOn configuration to validate uniqueness across different attribute types (e.g., checking if an email exists as a proxy address)
  • keepInSyncWith functionality to replace legacy syncIterations approach, providing automatic cascading of non-unique status across related fields
  • $allowSelfUsage configuration in checkOnExternalSystemsAd.ps1 to control whether persons can reuse their own values (replaces $excludeSelf)
  • $fieldsToCheck object-based configuration in checkOnExternalSystemsAd.ps1 to replace simple $attributeNames array
  • Skip optimization to automatically skip redundant database queries once a field is marked non-unique
  • Action types OtherEmployeeId and MultipleFound for enhanced error handling with detailed error messages
  • Database columns whenCreated and whenUpdated with datetime2(7) precision for timestamp tracking
  • PowerShell-based timestamp generation using Get-Date -Format "yyyy-MM-ddTHH:mm:ss.fff" for consistent datetime2(7) precision
  • Detailed audit logging in Update and Delete actions showing exactly which fields are modified and their new values
  • #region Configuration block in checkOnExternalSystemsAd.ps1 for better code organization
  • README section "Configuring checkOnExternalSystemsAd.ps1" with detailed configuration examples
  • README warnings for retention period synchronization and initial configuration requirements
  • README use cases section explaining practical applications of the blacklist connector
  • README supported features table documenting available capabilities

Changed

  • Create script restructured to match CSV connector format with improved action calculation logic
  • Update script aligned with Create script logic including retention period validation
  • Delete script rewritten to process per-attribute instead of bulk updates
  • whenDeleted column type changed from date to datetime2(7) for precision and consistency
  • checkOnExternalSystemsAd.ps1 field checking logic enhanced with retention period awareness and cross-attribute validation
  • fieldMapping.json updated to match CSV structure (employeeId only for Create, attributes for Create/Update/Delete) with Complex mapping mode using conditional logic
  • Credential initialization in checkOnExternalSystemsAd.ps1's Invoke-SQLQuery function now properly creates SqlCredential object
  • Configuration comments expanded with detailed explanations of field checking logic, cross-checking, and field synchronization
  • README lifecycle action descriptions enhanced with detailed scenario coverage including retention period behavior
  • README additional scripts descriptions improved with retention period logic details
  • Logging changed from Write-Information intentions to result-based logging with adjusted log levels (unique=Information, non-unique=Warning)
  • Audit logs moved inside non-dryRun blocks to prevent audit entries during preview mode
  • SQL UPDATE queries simplified to only modify whenDeleted and whenUpdated fields
  • Account reference moved to absolute top of create script for consistency
  • Update and Delete actions refactored to build SET clauses dynamically from object properties
  • Logging in checkOnExternalSystemsAd.ps1 improved to distinguish between self-usage scenarios and retention period validations

Deprecated

  • Legacy syncIterations and syncIterationsAttributeNames approach replaced by keepInSyncWith configuration

Removed

  • whenDeleted field from fieldMapping.json (now managed internally by scripts)
  • Unnecessary Write-Information statements for action intentions