dsccommunity / dsccommunity/SqlServerDsc
SqlRSUrlReservation: New resource proposal
Nobody has claimed this yet.
- Dominant language
- PowerShell
- Stars
- 385
- Forks
- 224
- PR merge metrics
- No merged PRs in 30d
Description
Resource proposal
Manages URL reservations for ReportServer web service and Reports web portal. Supports multiple URLs per application. This resource is separated from virtual directories to allow independent management of URL reservations per application. The old SqlRS mixed virtual directories and URL reservations which made partial changes difficult.
Parent Issue: #2415
Features
- Configures URL reservations for ReportServerWebService and ReportServerWebApp applications
- Supports multiple URL reservations per application
- Supports both replacement pattern (set exact values) and include/exclude pattern (add/remove specific values)
- Supports both SQL Server Reporting Services (SSRS) and Power BI Report Server (PBIRS)
- SQL Server 2019+ only
Commands Used
| Method | Commands |
|---|---|
| Get | Get-SqlDscRSUrlReservation, Get-SqlDscRSWebPortalApplicationName |
| Test | Compare current URL reservations with desired |
| Set | Set-SqlDscRSUrlReservation, Add-SqlDscRSUrlReservation, Remove-SqlDscRSUrlReservation, Restart-SqlDscRSService |
Proposed properties
| Property | Type qualifier | Data type | Description | Default value | Allowed values |
|---|---|---|---|---|---|
| InstanceName | Key | String | The RS instance name (SSRS or PBIRS) | None | None |
| Application | Key | String | The application to configure | None | ReportServerWebService, ReportServerWebApp |
| UrlString | Write | String[] | The exact URL reservations to set (replaces all existing). Mutually exclusive with ToInclude/ToExclude. | None | None |
| UrlStringToInclude | Write | String[] | URL reservations to add if not present | None | None |
| UrlStringToExclude | Write | String[] | URL reservations to remove if present | None | None |
| Lcid | Write | UInt32 | Language code identifier | None | None |
| RestartTimeout | Write | UInt32 | Seconds to wait after service restart | None | None |
| SuppressServiceRestart | Write | Boolean | Suppress automatic service restart | $false | None |
Special considerations or limitations
-
Proposed File:
source/Classes/020.SqlRSUrlReservation.ps1 -
Inheritance: Inherits from
ResourceBase(from DscResource.Base module), notSqlResourceBase. -
Mutually exclusive properties:
UrlStringis mutually exclusive withUrlStringToIncludeandUrlStringToExclude. When usingUrlString, all existing URL reservations are replaced with the specified list. When usingUrlStringToIncludeand/orUrlStringToExclude, existing URL reservations are preserved and only the specified changes are made. -
URL format examples: URLs follow the format
http://+:80,https://+:443,http://hostname:8080, etc. -
Recommended usage order: This resource should be used after
SqlRSVirtualDirectoryand beforeSqlRSDatabase. -
Integration tests: Should follow the patterns in
Integration_Test_Commands_ReportingServicesandIntegration_Test_Commands_BIReportServerstages.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the proposed file source/Classes/020.SqlRSUrlReservation.ps1 and review ResourceBase usage in the DscResource.Base module. Then study the Integration_Test_Commands_ReportingServices and Integration_Test_Commands_BIReportServer stages. Done means the resource supports the listed URL reservation properties, replacement and include/exclude behavior, and the specified integration coverage.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- powershell
- Domain
- devops, infrastructure
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100