The format is based on and uses the types of changes according to Keep a Changelog, and this project adheres to Semantic Versioning.
- Pester tests
- Fixes a typo in stream suppression causing Error stream to be suppressed when it was supposed not to be (issue #274).
- DnsServerDsc
- Changed the issue template for reporting a problem with a resource to use the new GitHub issue forms template.
- Changed the issue template for proposing a new resource to use the new GitHub issue forms template.
- Replaced the private function
ConvertTo-HashTableFromObject
with the public functionConvertFrom-DscResourceInstance
(from DscResource.Common). - Updated wiki start page with deprecation notice.
- Updated issue template for proposing a new resource.
- Removed left-over debug code.
- Update to use the build worker
windows-latest
for the necessary stages of the pipeline, andubuntu-latest
for the other stages. - Update pipeline to use GitVersion.Tool installed by
dotnet
. - Update unit and integration tests to Pester 5
- DnsServer* Class Resources
- Used
DscResource.Base
- BREAKING: Added
Reasons
property as population of this is builtin to base class.
- Used
- Updated
prefix
,build
,RequiredModules
for Pester 5 and DscResource.Base usage. - Added tests for
DSC_DnsServerSecondaryZone
. - Updated project related files
.github/ISSUE_TEMPLATES
.vscode
ResolveDependency.ps1
build.ps1
- Change from using
Test-DnsDscParameterState
toTest-DscParameterState
(from DscResource.Common). Fixes [Issue #121]. Affected resources:DSC_DnsServerDiagnostics
DSC_DnsServerRootHint
- DnsServerDsc.Common
- Added unit tests for
Convert-RootHintsToHashtable
.
- Added unit tests for
- DnsServerDsc.Common
- Removed unit tests for functions no longer part of the module.
- Removed functions from the module manifest that are no longer part of the module.
- Pin
gitversion
version inazure-pipelines
- DnRecordBase
- Update comment regarding use of
using module
statement.
- Update comment regarding use of
- ResourceBase
- Update comment regarding use of
using module
statement.
- Update comment regarding use of
- DnsServerDsc
- Removed
001.ResourceBase
and replaced withDscResource.Base
. - Removed
Get-ClassName
andGet-LocalizedDataRecursive
utilizing ones provided inDscResource.Base
.
- Removed
- DnsServerDsc.Common
- Removed
Test-DnsDscParameterState
and associated localization entries.
- Removed
-
xDnsRecord
- BREAKING CHANGE: The resource has been replaced by DnsServerA, DnsServerPtr, and DnsServerCName (issue #221).
-
xDnsServerMx
- BREAKING CHANGE: The resource has been replaced by DnsServerMx (issue #228).
-
DnsServerSetting
- BREAKING CHANGE: The properties
Forwarders
andForwardingTimeout
has been removed (issue #192). Use the resource DnsServerForwarder to enforce these properties. - BREAKING CHANGE: The properties
EnableEDnsProbes
andEDnsCacheTimeout
has been removed (issue #195). Use the resource DnsServerEDns to enforce these properties. - BREAKING CHANGE: The properties
SecureResponses
,MaxCacheTTL
, andMaxNegativeCacheTTL
has been removed (issue #197). To enforce theses properties, use resource DnsServerEDns using the propertiesEnablePollutionProtection
,MaxTtl
, andMaxNegativeTtl
respectively. - BREAKING CHANGE: The properties
DefaultAgingState
,ScavengingInterval
,DefaultNoRefreshInterval
, andDefaultRefreshInterval
have been removed. Use the resource DnsServerScavenging to enforce this properties (issue #193). - BREAKING CHANGE: The properties
NoRecursion
,RecursionRetry
, andRecursionTimeout
has been removed (issue #200). To enforce theses properties, use resource DnsServerRecursion using the propertiesEnable
,RetryInterval
, andTimeout
respectively. - BREAKING CHANGE: A few properties that are not supported by any DNS Server PowerShell cmdlet was moved to the new resource DnsServerSettingLegacy.
- BREAKING CHANGE: The properties
DsPollingInterval
andDsTombstoneInterval
has been removed (issue #252). Use the resource DnsServerDsSetting to enforce these properties.
- BREAKING CHANGE: The properties
-
ResourceBase
- For the method
Get()
the overload that took a[Microsoft.Management.Infrastructure.CimInstance]
was removed as it is not the correct pattern going forward.
- For the method
- DnsServerDsc
- Added new resource
- DnsServerCache - resource to enforce cache settings (issue #196).
- DnsServerRecursion - resource to enforce recursion settings (issue #198).
- Added new private function
Get-ClassName
that returns the class name or optionally an array with the class name and all inherited base class named. - Added new private function
Get-LocalizedDataRecursive
that gathers all localization strings from an array of class names. This can be used in classes to be able to inherit localization strings from one or more base class. If a localization string key exist in a parent class's localization string file it will override the localization string key in any base class. - Fixed code coverage in the pipeline (issue #246).
- Added new resource
- ResourceBase
- Added new method
Assert()
tha callsAssert-Module
andAssertProperties()
.
- Added new method
- DnsRecordNs
- Added new resource to manage NS records
- DnsRecordNsScoped
- Added new resource to manage scoped NS records
- DnsServerDsSetting
- Added new resource to manage AD-integrated DNS settings
- DnsServerSettingLegacy
- A new resource to manage legacy DNS Server settings that are not supported by any DNS Server PowerShell cmdlet.
- DnsServerDsc
- BREAKING CHANGE: Renamed the module to DnsServerDsc (issue #179).
- BREAKING CHANGE: Removed the prefix 'x' from all MOF-based resources (issue #179).
- Renamed a MOF-based resource to use the prefix 'DSC' (issue #225).
- Fix stub
Get-DnsServerResourceRecord
so it throws if it is not mocked correctly (issue #204). - Switch the order in the deploy pipeline so that creating the GitHub release is made after a successful release.
- Updated stub functions to throw if they are used (when missing a mock in unit test) (issue #235).
- ResourceBase
- Added support for inherit localization strings and also able to override a localization string that exist in a base class.
- Moved more logic from the resources into the base class for the method
Test()
,Get()
, andSet()
. The base class now have three methodsAssertProperties()
,Modify()
, andGetCurrentState()
where the two latter ones must be overridden by a resource if calling the base methodsSet()
andGet()
. - Moved the
Assert-Module
from the constructor to a new methodAssert()
that is called fromGet()
,Test()
, andSet()
. The methodAssert()
also calls the methodAssertProperties()
. The methodAssert()
is not meant to be overridden, but can if there is a reason not to runAssert-Module
and orAssertProperties()
.
- Integration tests
- Added commands in the DnsRecord* integration tests to wait for the LCM before moving to the next test.
- DnsServerCache
- Moved to the same coding pattern as DnsServerRecursion.
- DnsServerEDns
- Moved to the same coding pattern as DnsServerRecursion.
- DnsServerScavenging
- Moved to the same coding pattern as DnsServerRecursion.
- DnsServerSetting
- Changed to use
Get-DnsServerSetting
andSet-DnsServerSetting
(issue #185). - BREAKING CHANGE: The property
DisableAutoReverseZones
have been renamed toDisableAutoReverseZone
. - BREAKING CHANGE: The property
ListenAddresses
have been renamed toListeningIPAddress
. - BREAKING CHANGE: The property
AllowUpdate
was changed to a boolean value ($true
or$false
) since that is what the cmdletSet-DnsServerSetting
is expecting (related to issue #101). - BREAKING CHANGE: The property
EnableDnsSec
was changed to a boolean value ($true
or$false
) since that is what the cmdletSet-DnsServerSetting
is expecting. - BREAKING CHANGE: The property
ForwardDelegations
was changed to a boolean value ($true
or$false
) since that is what the cmdletSet-DnsServerSetting
is expecting.
- Changed to use
- Logic bug in DnsRecordPtr.expandIPv6String($string) (#255)
- Supporting tests added
- The module xDnsServer will be renamed DnsServerDsc. Version
2.0.0
will be the the last release of xDnsServer. Version3.0.0
will be release as DnsServerDsc, it will be released shortly after the2.0.0
release (issue #179). The prefix 'x' will be removed from all resources in DnsServerDsc. - xDnsRecord will be removed in the next release (of DnsServerDsc) (issue #220). Start migrate to the resources DnsRecord*.
- xDnsRecordMx will be removed in the next release (of DnsServerDsc) (issue #228). Start migrate to the resources DnsRecordMx.
- The properties
DefaultAgingState
,ScavengingInterval
,DefaultNoRefreshInterval
, andDefaultRefreshInterval
will be removed from the resource xDnsServerSetting in the next release (of DnsServerDsc) (issue #193). Migrate to use the resource DnsServerScavenging to enforce these properties. - The properties
EnableEDnsProbes
andEDnsCacheTimeout
will be removed from the resource xDnsServerSetting in the next release (of DnsServerDsc) (issue #195). Migrate to use the resource DnsServerEDns to enforce these properties. - The properties
Forwarders
andForwardingTimeout
will be removed from the resource xDnsServerSetting in the next release (of DnsServerDsc) (issue #192) Migrate to use the resource xDnsServerForwarder to enforce these properties.
- xDnsServer
- Added automatic release with a new CI pipeline.
- Add unit tests for the Get-LocalizedData, NewTerminatingError, and Assert-Module helper functions.
- Added description README files for each resource.
- Add example files for resources
- OptIn to the following Dsc Resource Meta Tests:
- Common Tests - Validate Localization
- Common Tests - Validate Example Files To Be Published
- Standardize Resource Localization.
- Added the build task
Publish_GitHub_Wiki_Content
to publish content to the GitHub repository wiki. - Added new source folder
WikiSource
which content will be published to the GitHub repository wiki.- Add the markdown file
Home.md
which will be automatically updated with the latest version before published to GitHub repository wiki.
- Add the markdown file
- Updated the prerequisites in the GitHub repository wiki (
Home.md
) that Microsoft DNS Server is required on a node targeted by a resource, and that the DSC resources requires the DnsServer PowerShell module (issue #37). - Added the base class
ResourcePropertiesBase
to hold DSC properties that can be inherited for all class-based resources. - Added the base class
ResourceBase
to hold methods that should be inherited for all class-based resources. - Added new private function
ConvertTo-TimeSpan
to help when evaluating properties that must be passed as strings and then converted to[System.TimeSpan]
. - Added new private function
Assert-TimeSpan
to help assert that a value provided in a resource can be converted to a[System.TimeSpan]
and optionally evaluates so it is not below a minium value or over a maximum value. - Added
prefix.ps1
that is used to import dependent modules like DscResource.Common. - Added new resource
- DnsServerScavenging - resource to enforce scavenging settings (issue #189).
- DnsServerEDns - resource to enforce extension mechanisms for DNS (EDNS) settings (issue #194).
- xDNSServerClientSubnet
- Added integration tests.
- DnsServerPrimaryZone
- Added integration tests (issue #173).
- Added more examples.
- xDnsRecordMx
- Added new resource to manage MX records
- xDnsServerZoneScope
- Added integration tests (issue #177).
- New read-only property
ZoneFile
was added to return the zone scope file name used for the zone scope.
- xDnsServerZoneAging
- Added integration tests (issue #176).
- xDnsServerForwarder
- Added integration tests (issue #170).
- Added new properties
Timeout
andEnableReordering
(issue #191).
- xDnsServerRootHint
- Added integration tests (issue #174).
- Added a class
DnsRecordBase
that is used as the base class for the resources that create DNS records.- Added unit tests to get code coverage on unimplemented method calls (ensuring the
throw
statements get called)
- Added unit tests to get code coverage on unimplemented method calls (ensuring the
- DnsRecordSrv
- Added new resource to manage SRV records
- DnsRecordSrvScoped
- Added new resource to manage scoped SRV records
- DnsRecordA
- Added new resource to manage A records
- DnsRecordAScoped
- Added new resource to manage scoped A records
- DnsRecordAaaa
- Added new resource to manage AAAA records
- DnsRecordAaaaScoped
- Added new resource to manage scoped AAAA records
- DnsRecordCname
- Added new resource to manage CNAME records
- DnsRecordCnameScoped
- Added new resource to manage scoped CNAME records
- DnsRecordPtr
- Added new resource to manage PTR records
- DnsRecordMx
- Added new resource to manage MX records
- DnsRecordMxScoped
- Added new resource to manage scoped MX records
- xDnsServer
- BREAKING CHANGE: Set the minimum required PowerShell version to 5.0 to support classes used in the DnsRecordBase-derived resources.
- Resolve style guideline violations for hashtables
- Update pipeline files.
- Renamed the default branch to
main
(issue #131). - Uses
PublishPipelineArtifact
in Azure Pipelines pipeline. - Unit tests are now run in PowerShell 7 in the Azure Pipelines pipeline (issue #160).
- Merged the historic changelog into CHANGELOG.md (issue #163).
- Only add required role in integration tests pipeline.
- Updated the pipeline to use new deploy tasks.
- Revert back to using the latest version of module Sampler for the pipeline (issue #211).
- Fixed the sections in the GitHub issue and pull request templates to have a bit higher font size. This makes it easier to distinguish the section headers from the text.
- DnsRecordBase
- Changed class to inherit properties from 'ResourcePropertiesBase`.
- xDnsRecordSrv
- Now uses
[CimInstance]::new()
both in the resource code and the resource unit test to clone the existing DNS record instead of using the methodClone()
that does not exist in PowerShell 7.
- Now uses
- xDnsServerSetting
- BREAKING CHANGE: The mandatory parameter was replaced by the mandatory
parameter
DnsServer
. This prevents the resource from being used twice in the same configuration using the same value for the parameterDnsServer
(issue #156).
- BREAKING CHANGE: The mandatory parameter was replaced by the mandatory
parameter
- xDnsServerDiagnostics
- BREAKING CHANGE: The mandatory parameter was replaced by the mandatory
parameter
DnsServer
. This prevents the resource from being used twice in the same configuration using the same value for the parameterDnsServer
(issue #157).
- BREAKING CHANGE: The mandatory parameter was replaced by the mandatory
parameter
- DnsServerPrimaryZone
- Now the property
Name
is always returned fromGet-TargetResource
since it is aKey
property.
- Now the property
- xDnsServerForwarder
- When providing an empty collection the resource will enforce that no forwarders are present.
- DnsRecordSrv
- Changed logic for calculating the record's hostname
- xDnsServer
- BREAKING CHANGE: The DSC resource xDnsARecord was removed and are replaced by the DSC resource xDnsRecord.
- Removing resource parameter information from README.md in favor of GitHub repository wiki.
- Remove helper function
Remove-CommonParameter
in favor of the one in module DscResource.Common (issue #166). - Remove helper function
ConvertTo-CimInstance
in favor of the one in module DscResource.Common (issue #167). - Remove helper function
ConvertTo-HashTable
in favor of the one in module DscResource.Common (issue #168).
- xDnsServerSetting
- BREAKING CHANGE: The properties
LogIPFilterList
,LogFilePath
,LogFileMaxSize
, andEventLogLevel
have been removed. Use the resource xDnsServerDiagnostics with the propertiesFilterIPAddressList
,LogFilePath
,MaxMBFileSize
, andEventLogLevel
respectively to enforce these settings (issue #190). This is done in preparation to support more settings through the cmdletGet-DnsServerSetting
for the resource xDnsServerSetting, and these values are not available through that cmdlet.
- BREAKING CHANGE: The properties
- xDnsServer
- Enable Unit Tests to be run locally.
- Rename integration tests so they are run in the pipeline (issue #134).
- Added back the build task to create releases on GitHub.
- Fixed property descriptions in schema throughout.
- Fixed uploading of code coverage that was broken since Sampler had a bug.
- Fixed examples so the license information point to the correct default branch.
- Fixed a link in the README.md.
- DnsRecordBase
- Fixed so that
Compare-DscParameterState
is used in the methodTest()
if the record already exist, to compare the properties exceptEnsure
in the desired state against the actual state (issue #205).
- Fixed so that
- xDnsServerDiagnostics
- Fix EnableLogFileRollover Parameter name in README.
- xDnsRecord
- Fix "Removing a DNS A Record" example.
- xDnsServerDiagnostics
- Fixed typo in parameter
EnableLogFileRollover
. - Updated integration test to correct template.
- Fixed typo in parameter
- xDnsServerSettings
- Updated integration test to correct template.
- xDnsServerAdZone
- Now the parameter
ComputerName
can be used without throwing an exception (issue 79).
- Now the parameter
- xDnsServerZoneScope
- Correctly returns the zone scope name when calling
Get-TargetResource
.
- Correctly returns the zone scope name when calling
- xDnsServerForwarder
- Now it is possible to just enforce the property
UseRooHint
without changing forwarders.
- Now it is possible to just enforce the property
- xDnsServerRootHint
- Fixed the verbose message returning the correct number of root hints.
- Changes to xDnsServerADZone
- Raise an exception if
DirectoryPartitionName
is specified andReplicationScope
is notCustom
. (issue #110). - Enforce the
ReplicationScope
parameter being passed toSet-DnsServerPrimaryZone
ifDirectoryPartitionName
has changed.
- Raise an exception if
- xDnsServer:
- OptIn to the following Dsc Resource Meta Tests:
- Common Tests - Relative Path Length
- Common Tests - Validate Markdown Links
- Common Tests - Custom Script Analyzer Rules
- Common Tests - Required Script Analyzer Rules
- Common Tests - Flagged Script Analyzer Rules
- OptIn to the following Dsc Resource Meta Tests:
- Fixed: Ignore UseRootHint in xDnsServerForwarder test function if it was not specified in the resource Claudio Spizzi (@claudiospizzi)
- Copied enhancements to Test-DscParameterState from NetworkingDsc
- Put the helper module to its own folder
- Copied enhancements to Test-DscParameterState from NetworkingDsc
- Put the helper module to its own folder
- Added xDnsServerRootHint resource
- Added xDnsServerClientSubnet resource
- Added xDnsServerZoneScope resource
- Added resource xDnsServerConditionalForwarder
- Added xDnsServerDiagnostics resource to this module.
- Update appveyor.yml to use the default template.
- Added default template files .codecov.yml, .gitattributes, and .gitignore, and .vscode folder.
- Added UseRootHint property to xDnsServerForwarder resource.
- Changes to xDnsServer
- Added resource xDnsServerZoneAging. Claudio Spizzi (@claudiospizzi)
- Changes to DnsServerPrimaryZone
- Fix bug in Get-TargetResource that caused the Zone Name to be null (issue #63). Brandon Padgett (@gerane)
- Changes to xDnsRecord
- Added Ptr record support (partly resolves issue #34). Reggie Gibson (@regedit32)
- Changes to xDnsServerADZone
- Fixed bug introduced by PR #49. Previously, CimSessions were always used regardless of connecting to a remote machine or the local machine. Now CimSessions are only utilized when a computername, or computername and credential are used (issue #53). Michael Fyffe (@TraGicCode)
- Fixed all PSSA rule warnings. Michael Fyffe (@TraGicCode)
- Fix DsAvailable key missing (#66). Claudio Spizzi (@claudiospizzi)
- Added resource xDnsServerSetting
- MSFT_xDnsRecord: Added DnsServer property
- Converted AppVeyor.yml to pull Pester from PSGallery instead of Chocolatey
- Fixed bug in xDnsServerADZone causing Get-TargetResource to fail with an extra property.
- Unit tests updated to use standard unit test templates.
- MSFT_xDnsServerZoneTransfer
- Added unit tests.
- Updated to meet Style Guidelines.
- MSFT_xDnsARecord: Removed hard coding of Localhost computer name to eliminate PSSA rule violation.
- Added Resource xDnsServerForwarder.
- Updated README.md with documentation and examples for xDnsServerForwarder resource.
- Added Resource xDnsServerADZone that sets an AD integrated DNS zone.
- Updated README.md with documentation and examples for xDnsServerADZone resource.
- Fixed bug in xDnsRecord causing Test-TargetResource to fail with multiple (round-robin) entries.
- Updated README.md with example DNS round-robin configuration.
- Added Resource xDnsRecord with support for CNames.
- This will replace xDnsARecord in a future release.
- Added DnsServerPrimaryZone resource
- Added support for removing DNS A records
- Fix to retrieving settings for record data
- Removed UTF8 BOM from MOF schema
- Add xDnsARecord resource.
- Initial release with the following resources
- xDnsServerSecondaryZone
- xDnsServerZoneTransfer