v14.0.0-preview0024
Pre-release
Pre-release
[v14.0.0-preview0024]
Remove
- SqlServerDsc
- BREAKING CHANGE: Since the operating system Windows Server 2008 R2 and
the product SQL Server 2008 R2 has gone end-of-life the DSC resources
will no longer try to maintain compatibility with them. Moving forward,
and including this release, there may be code changes that will break
the resource on Windows Server 2008 R2 or with SQL Server 2008 R2
(issue #1514).
- BREAKING CHANGE: Since the operating system Windows Server 2008 R2 and
Deprecated
The documentation, examples, unit test, and integration tests have been
removed for these deprecated resources. These resources will be removed
in a future release.
- SqlDatabaseOwner
- This resource is now deprecated. The functionality is now covered by
a property in the resource SqlDatabase (issue #966).
- This resource is now deprecated. The functionality is now covered by
- SqlDatabaseRecoveryModel
- This resource is now deprecated. The functionality is now covered by
a property in the resource SqlDatabase (issue #967).
- This resource is now deprecated. The functionality is now covered by
- SqlServerEndpointState
- This resource is now deprecated. The functionality is covered by a
property in the resource SqlEndpoint (issue #968).
- This resource is now deprecated. The functionality is covered by a
- SqlServerNetwork
- This resource is now deprecated. The functionality is now covered by
the resources SqlProtocol and SqlProtocolTcpIp.
- This resource is now deprecated. The functionality is now covered by
Added
- SqlSetup
- Added support for major version upgrade (issue #1561).
- SqlServerDsc
- Added new resource SqlProtocol (issue #1377).
- Added new resource SqlProtocolTcpIp (issue #1378).
- Fixing a problem with the latest ModuleBuild 1.7.0 that breaks the CI
pipeline. - Prepare repository for auto-documentation by adding README.md to each
resource folder with the content from the root README.md.
- SqlServerDsc.Common
- Added function
Import-Assembly
that can help import an assembly
into the PowerShell session. - Prepared unit tests to support Pester 5 so a minimal conversation
is only needed later. - Updated
Import-SQLPSModule
to better support unit tests.
- Added function
- CommonTestHelper
- Added the functions
Get-InvalidOperationRecord
andGet-InvalidResultRecord
that is needed for evaluate localized error message strings for unit tests.
- Added the functions
- SqlEndpoint
- BREAKING CHANGE: A new required property
EndpointType
was added to
support different types of endpoints in the future. For now the only
endpoint type that is supported is the database mirror endpoint type
(DatabaseMirroring
). - Added the property
State
to be able to specify if the endpoint should
be running, stopped, or disabled. This property was moved from the now
deprecated DSC resourceSqlServerEndpointState
.
- BREAKING CHANGE: A new required property
- SqlSetup
- A read only property
IsClustered
was added that can be used to determine
if the instance is clustered. - Added the properties
NpEnabled
andTcpEnabled
(issue #1161). - Added the property
UseEnglish
(issue #1473).
- A read only property
- SqlReplication
- Add integration tests (issue #755.
- SqlDatabase
- The property
OwnerName
was added.
- The property
- SqlDatabasePermission
- Now possible to change permissions for database user-defined roles
(e.g. public) and database application roles (issue #1498.
- Now possible to change permissions for database user-defined roles
- SqlServerDsc.Common
- The helper function
Restart-SqlService
was improved to handle Failover
Clusters better. Now the SQL Server service will only be taken offline
and back online again if the service is online to begin with. - The helper function
Restart-SqlServer
learned the new parameter
OwnerNode
. The parameterOwnerNode
takes an array of Cluster node
names. Using this parameter the cluster group will only be taken
offline and back online if the cluster group owner is one specified
in this parameter.
- The helper function
Changed
- SqlServerDsc
- BREAKING CHANGE: Some DSC resources have been renamed (issue #1540).
SqlServerConfiguration
was renamed toSqlConfiguration
.SqlServerDatabaseMail
was renamed toSqlDatabaseMail
.SqlServerEndpoint
was renamed toSqlEndpoint
.SqlServerEndpointPermission
was renamed toSqlEndpointPermission
.SqlServerLogin
was renamed toSqlLogin
.SqlServerMaxDop
was renamed toSqlMaxDop
.SqlServerMemory
was renamed toSqlMemory
.SqlServerPermission
was renamed toSqlPermission
.SqlServerProtocol
was renamed toSqlProtocol
.SqlServerProtocolTcpIp
was renamed toSqlProtocolTcpIp
.SqlServerReplication
was renamed toSqlReplication
.SqlServerRole
was renamed toSqlRole
.SqlServerSecureConnection
was renamed toSqlSecureConnection
.
- Changed all resource prefixes from
MSFT_
toDSC_
(issue #1496).
Deprecated resource has not changed prefix. - All resources are now using the common module DscResource.Common.
- When a PR is labelled with 'ready for merge' it is no longer being
marked as stale if the PR is not merged for 30 days (for example it is
dependent on something else) (issue #1504). - Updated the CI pipeline to use latest version of the module ModuleBuilder.
- Changed to use the property
NuGetVersionV2
from GitVersion in the
CI pipeline. - The unit tests now run on PowerShell 7 to optimize the total run time.
- BREAKING CHANGE: Some DSC resources have been renamed (issue #1540).
- SqlServerDsc.Common
- The helper function
Invoke-InstallationMediaCopy
was changed to
handle a breaking change in PowerShell 7 (issue #1530). - Removed the local helper function
Set-PSModulePath
as it was
implemented in the module DscResource.Common.
- The helper function
- CommonTestHelper
- The test helper function
New-SQLSelfSignedCertificate
was changed
to install the dependent modulePSPKI
throughRequiredModules.psd1
.
- The test helper function
- SqlAlwaysOnService
- BREAKING CHANGE: The parameter
ServerName
is now non-mandatory and
defaults to$env:COMPUTERNAME
(issue #319). - Normalize parameter descriptive text for default values.
- BREAKING CHANGE: The parameter
- SqlDatabase
- BREAKING CHANGE: The parameter
ServerName
is now non-mandatory and
defaults to$env:COMPUTERNAME
(issue #319). - BREAKING CHANGE: The non-mandatory parameters was removed from the
functionGet-TargetResource
since they were not needed. - BREAKING CHANGE: The properties
CompatibilityLevel
andCollation
are now only enforced if the are specified in the configuration. - Normalize parameter descriptive text for default values.
- BREAKING CHANGE: The parameter
- SqlDatabaseDefaultLocation
- BREAKING CHANGE: The parameter
ServerName
is now non-mandatory and
defaults to$env:COMPUTERNAME
(issue #319). - Normalize parameter descriptive text for default values.
- BREAKING CHANGE: The parameter
- SqlDatabaseOwner
- BREAKING CHANGE: Database changed to DatabaseName for consistency with
other modules (issue #1484).
- BREAKING CHANGE: Database changed to DatabaseName for consistency with
- SqlDatabasePermission
- BREAKING CHANGE: The parameter
ServerName
is now non-mandatory and
defaults to$env:COMPUTERNAME
(issue #319). - Normalize parameter descriptive text for default values.
- BREAKING CHANGE: Database changed to DatabaseName for consistency with
other modules (issue #1484). - BREAKING CHANGE: The resource no longer create the database user if
it does not exist. Use the resource SqlDatabaseUser to enforce that
the database user exist in the database prior to setting permissions
using this resource (issue #848). - BREAKING CHANGE: The resource no longer checks if a login exist so that
it is possible to set permissions for database users that does not
have a login, e.g. the database user 'guest' (issue #1134). - Updated examples.
- Added integration tests (issue #741).
- Get-TargetResource will no longer throw an exception if the database
does not exist.
- BREAKING CHANGE: The parameter
- SqlDatabaseRecoveryModel
- BREAKING CHANGE: The parameter
ServerName
is now non-mandatory and
defaults to$env:COMPUTERNAME
(issue #319). - Normalize parameter descriptive text for default values.
- BREAKING CHANGE: The parameter
- SqlDatabaseRole
- BREAKING CHANGE: The parameter
ServerName
is now non-mandatory and
defaults to$env:COMPUTERNAME
(issue #319). - Normalize parameter descriptive text for default values.
- BREAKING CHANGE: Database changed to DatabaseName for consistency with
other modules (issue #1484).
- BREAKING CHANGE: The parameter
- SqlDatabaseUser
- BREAKING CHANGE: The parameter
ServerName
is now non-mandatory and
defaults to$env:COMPUTERNAME
(issue #319). - Normalize parameter descriptive text for default values.
- BREAKING CHANGE: The parameter
- SqlScript
- BREAKING CHANGE: The parameter
ServerInstance
is replaced by the two
parametersServerName
andInstanceName
. The parameterInstanceName
is the only one mandatory which fixes the issue that it was possible to
run the same script using different host names (issue #925).
- BREAKING CHANGE: The parameter
- SqlScriptQuery
- BREAKING CHANGE: The parameter
ServerInstance
is replaced by the two
parametersServerName
andInstanceName
. The parameterInstanceName
is the only one mandatory which fixes the issue that it was possible to
run the same query using different host names (issue #925).
- BREAKING CHANGE: The parameter
- SqlConfiguration
- BREAKING CHANGE: The parameter
ServerName
is now non-mandatory and
defaults to$env:COMPUTERNAME
(issue #319). - Normalize parameter descriptive text for default values.
- BREAKING CHANGE: The parameter
- SqlDatabaseMail
- Normalize parameter descriptive text for default values.
- SqlEndpoint
- BREAKING CHANGE: Now the properties are only enforced if they are
specified in the configuration. - Normalize parameter descriptive text for default values.
- BREAKING CHANGE: Now the properties are only enforced if they are
- SqlEndpointPermission
- BREAKING CHANGE: The parameter
ServerName
is now non-mandatory and
defaults to$env:COMPUTERNAME
(issue #319). - Normalize parameter descriptive text for default values.
- BREAKING CHANGE: The parameter
- SqlLogin
- BREAKING CHANGE: The parameter
ServerName
is now non-mandatory and
defaults to$env:COMPUTERNAME
(issue #319). - Normalize parameter descriptive text for default values.
- BREAKING CHANGE: The parameter
- SqlRole
- BREAKING CHANGE: The parameter
ServerName
is now non-mandatory and
defaults to$env:COMPUTERNAME
(issue #319). - Normalize parameter descriptive text for default values.
- BREAKING CHANGE: The parameter
- SqlServiceAccount
- BREAKING CHANGE: The parameter
ServerName
is now non-mandatory and
defaults to$env:COMPUTERNAME
(issue #319). - Normalize parameter descriptive text for default values.
- BREAKING CHANGE: The parameter
- SqlSetup
- BREAKING CHANGE: Now if the parameter
AgtSvcStartupType
is not specified
in the configuration the resource will no longer by default add an
argument tosetup.exe
with a value ofAutomatic
for the argument
AGTSVCSTARTUPTYPE
. If the parameterAgtSvcStartupType
is not specified
in the configuration there will be no setup argument added at all
(issue #464). - BREAKING CHANGE: When installing a failover cluster the cluster
validation is no longer skipped by default. To skip cluster validation
the configuration must opt-in by specifying the following
SkipRule = 'Cluster_VerifyForErrors'
(issue #335). - BREAKING CHANGE: Now, unless the parameter
SuppressReboot
is set to
$true
, the node will be restarted if the setup ends with the
error code 3010.
Previously just a warning message was written (issue #565).
- BREAKING CHANGE: Now if the parameter
Fixed
- SqlServerDsc
- The regular expression for
minor-version-bump-message
in the file
GitVersion.yml
was changed to only raise minor version when the
commit message contain the wordadd
,adds
,minor
,feature
,
orfeatures
. - Now code coverage is reported to Codecov, and a codecov.yml was added.
- Updated to support DscResource.Common v0.7.1.
- Changed to point to CONTRIBUTING.md on master branch to avoid "404 Page not found"
(issue #1508).
- The regular expression for
- SqlAGDatabase
- Fixed unit tests that failed intermittently when running unit tests
in PowerShell 7 (issue #1532). - Minor code style issue changes.
- Fixed unit tests that failed intermittently when running unit tests
- SqlAgentAlert
- The parameter
ServerName
now throws when passing an empty string or
null value (part of issue #319).
- The parameter
- SqlAgentFailsafe
- The parameter
ServerName
now throws when passing an empty string or
null value (part of issue #319).
- The parameter
- SqlAgentOperator
- The parameter
ServerName
now throws when passing an empty string or
null value (part of issue #319).
- The parameter
- SqlAlias
- BREAKING CHANGE: The parameter
ServerName
is now non-mandatory to
prevent ping-pong behavior (issue #1502).
TheServerName
is not returned as an empty string when the protocol is
Named Pipes.
- BREAKING CHANGE: The parameter
- SqlDatabase
- Fixed missing parameter
CompatibilityLevel
in the README.md (and
updated the description in the schema.mof).
- Fixed missing parameter
- SqlRs
- Fix typo in the schema parameter
SuppressRestart
description
and in the parameter description in theREADME.md
.
- Fix typo in the schema parameter
- SqlDatabaseMail
- The parameter
ServerName
now throws when passing an empty string or
null value (part of issue #319).
- The parameter
- SqlServerEndpoint
- The parameter
ServerName
now throws when passing an empty string or
null value (part of issue #319).
- The parameter
- SqlEndpoint
- The parameter
ServerName
now throws when passing an empty string or
null value (part of issue #319).
- The parameter
- SqlPermission
- The parameter
ServerName
now throws when passing an empty string or
null value (part of issue #319).
- The parameter
- SqlReplication
- Enhanced the exception handling so it shows the inner exception error
message that have the actual error that occurred. - Corrected the examples.
- Enhanced the exception handling so it shows the inner exception error
- SqlSetup
- Update integration tests to correctly detect sysadmins because of changes
to the build worker. - The property
SqlTempdbLogFileGrowth
andSqlTempdbFileGrowth
now returns
the correct values. Previously the value of the growth was wrongly
divided by 1KB even if the value was in percent. Now the value for growth
is the sum of the average of MB and average of the percentage. - The function
Get-TargetResource
was changed so that the property
SQLTempDBDir
will now return the databasetempdb
's property
PrimaryFilePath
. - BREAKING CHANGE: Logic that was under feature flag
DetectionSharedFeatures
was made the default and old logic that was used to detect shared features
was removed (issue #1290).
This was implemented because the previous implementation did not work
fully with SQL Server 2017. - Much of the code was refactored into units (functions) to be easier to test.
Due to the size of the code the unit tests ran for an abnormal long time,
after this refactoring the unit tests runs much quicker.
- Update integration tests to correctly detect sysadmins because of changes