Add Deploy-SsrsFolderItems.ps1 (complement of the removal script) #1

Merged
hannah-vernon merged 1 commit from feature/add-deploy-script into dev 2026-07-14 12:04:09 -05:00

What does this PR do?

Adds Deploy-SsrsFolderItems.ps1, the complement of Remove-SsrsFolderItems.ps1. It deploys all Reports (.rdl) and Datasets (.rsd) from a local folder into a single SSRS folder via the REST API v2.0.

  • Datasets are uploaded before Reports so report shared-dataset references resolve.
  • Creates the target folder (and any missing parents) if needed.
  • Replaces existing items only with -Overwrite (otherwise skips them).
  • Same UX as the removal script: prints the site, target folder, source path, and full item list, requires a typed confirmation, and supports -WhatIf / -Confirm.
  • Data Sources (.rds) are intentionally not handled; existing ones in the target folder are left in place for reports/datasets to bind to.

Also documents the new script in README.md and AGENT-README.md.

How was this tested?

  • Parser::ParseFile - 0 errors; no reserved automatic variables used.
  • -WhatIf dry run against qa-mb-db /MBPPRReports with -SourcePath C:\Dev\MBPPRReports: correctly planned 117 items (68 Datasets, 49 Reports), performed 0 writes, and skipped the confirmation prompt.
  • Live upload (POST/PUT) not yet exercised against a server - to be verified before relying on it.

Checklist

  • One logical change; follows repo PowerShell conventions (comment-based help, ShouldProcess, CRLF)
  • Documentation updated (README, AGENT-README)
  • No secrets or hard-coded server names
## What does this PR do? Adds `Deploy-SsrsFolderItems.ps1`, the complement of `Remove-SsrsFolderItems.ps1`. It deploys all Reports (`.rdl`) and Datasets (`.rsd`) from a local folder into a single SSRS folder via the REST API v2.0. - Datasets are uploaded before Reports so report shared-dataset references resolve. - Creates the target folder (and any missing parents) if needed. - Replaces existing items only with `-Overwrite` (otherwise skips them). - Same UX as the removal script: prints the site, target folder, source path, and full item list, requires a typed confirmation, and supports `-WhatIf` / `-Confirm`. - Data Sources (`.rds`) are intentionally not handled; existing ones in the target folder are left in place for reports/datasets to bind to. Also documents the new script in `README.md` and `AGENT-README.md`. ## How was this tested? - [x] `Parser::ParseFile` - 0 errors; no reserved automatic variables used. - [x] `-WhatIf` dry run against `qa-mb-db` `/MBPPRReports` with `-SourcePath C:\Dev\MBPPRReports`: correctly planned 117 items (68 Datasets, 49 Reports), performed 0 writes, and skipped the confirmation prompt. - [ ] Live upload (POST/PUT) not yet exercised against a server - to be verified before relying on it. ## Checklist - [x] One logical change; follows repo PowerShell conventions (comment-based help, `ShouldProcess`, CRLF) - [x] Documentation updated (README, AGENT-README) - [x] No secrets or hard-coded server names
Deploys all Reports (.rdl) and Datasets (.rsd) from a local folder into a
single SSRS folder via the REST API v2.0: datasets first so report shared-
dataset references resolve, creates missing target folders, replaces existing
items only with -Overwrite, and uses the same site/folder/item preview, typed
confirmation, and -WhatIf/-Confirm gating as the removal script. Data Sources
(.rds) are intentionally not handled.

Documented the new script in README.md and AGENT-README.md.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
hannah-vernon deleted branch feature/add-deploy-script 2026-07-14 12:04:10 -05:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
hannah-vernon/ssrs-tools!1
No description provided.