Juriba.AppR

0.3.5

PowerShell module to interact with Juriba App Readiness (AppR). Provides cmdlets for managing applications, packaging, smoke testing, quality review, and publishing to distribution systems such as Intune and MECM.

Minimum PowerShell version

7.1

Installation Options

Copy and Paste the following command to install this package using PowerShellGet More Info

Install-Module -Name Juriba.AppR -RequiredVersion 0.3.5

Copy and Paste the following command to install this package using Microsoft.PowerShell.PSResourceGet More Info

Install-PSResource -Name Juriba.AppR -Version 0.3.5

You can deploy this package directly to Azure Automation. Note that deploying packages with dependencies will deploy all the dependencies to Azure Automation. Learn More

Manually download the .nupkg file to your system's default download location. Note that the file won't be unpacked, and won't include any dependencies. Learn More

Owners

Copyright

(c) Juriba. All rights reserved.

Package Details

Author(s)

  • Juriba

Tags

Juriba AppReadiness AppR Packaging Intune MECM SmokeTest

Functions

Connect-JuribaAppR Disconnect-JuribaAppR Get-JuribaAppRSession Set-JuribaAppRAPIKey Get-JuribaAppRAboutInfo Get-JuribaAppRApplication Get-JuribaAppRApplicationList Get-JuribaAppRApplicationStatus Get-JuribaAppRApplicationPackage Get-JuribaAppRApplicationPackageDetail Get-JuribaAppRApplicationEvent Get-JuribaAppRUser Get-JuribaAppRQualityReview Get-JuribaAppRDefaultSetting Get-JuribaAppRCommandSuggestion Send-JuribaAppRSetupFile New-JuribaAppRApplication Get-JuribaAppRApplicationCreationState Watch-JuribaAppRApplicationCreation Watch-JuribaAppRApplicationStatus Set-JuribaAppRApplication Set-JuribaAppRApplicationOwner Set-JuribaAppRApplicationCommandLine Remove-JuribaAppRApplication Get-JuribaAppRVMGroup Get-JuribaAppRTestApplication Start-JuribaAppRSmokeTest Stop-JuribaAppRSmokeTest Get-JuribaAppRTestResult Get-JuribaAppRTestStat Get-JuribaAppRIntegrationConnector Get-JuribaAppRPublishingProperty Invoke-JuribaAppRPublishIntune Invoke-JuribaAppRPublishMECM Invoke-JuribaAppRPublishGeneric Get-JuribaAppRMECMProvider Get-JuribaAppRMECMImportAvailability Get-JuribaAppRMECMImportEvent Get-JuribaAppRMECMScanList Start-JuribaAppRMECMScan Start-JuribaAppRMECMImport Set-JuribaAppRMECMProviderUniqueness Remove-JuribaAppRMECMProvider Search-JuribaAppRKnowledgeBase Get-JuribaAppRGenericIntegration Get-JuribaAppRGenericIntegrationPublishing Get-JuribaAppRGenericIntegrationPrerequisite Get-JuribaAppRGenericIntegrationProperty Get-JuribaAppRGenericIntegrationSource Add-JuribaAppRGenericIntegrationLog Update-JuribaAppRGenericIntegrationPublishingState

PSEditions

Core

Dependencies

This module has no dependencies.

Release Notes

0.3.5 - Add Start-JuribaAppRMECMScan, mirroring the AppR admin UI's "Start scan" button on the Scan & Import page. POSTs to /api/integration/{providerId}/scan with an empty body; returns immediately while the scan runs asynchronously on the server. Closes the gap for callers automating "create CM app -> import to AppR -> smoke test" end-to-end: when the autoscheduler's cadence is too slow, kick a scan from PowerShell instead of waiting. Accepts pipeline input by property name so Get-JuribaAppRMECMProvider | Where ... | Start-JuribaAppRMECMScan works. Track scan progress with Get-JuribaAppRMECMScanList (new rows appear with recent createdAt) or the AppR UI's progress banner.

0.3.4 - Customer-driven fixes from a real-MECM v4 AppM environment. Examples/Import-MECMAppAndSmokeTest.ps1: (1) The pre-import snapshot used Select-Object -ExpandProperty id against Get-JuribaAppRApplicationList -AllUsers -Lite, which throws "Property 'id' cannot be found" on AppR versions that surface the application id under appId or applicationId instead. The script's own trailing fallback chain already acknowledged the schema variance; this consolidates the snapshot, post-import diff, display strings, and final id resolution onto one Resolve-AppRId helper that tries id / appId / applicationId / nested basic.id. (2) The "no scan-list row matched ... with an importable status" error now distinguishes a true name-lookup miss from the much more common case of AppR's MECM auto-import having already pulled the CM app (scan-list row in status 2 = already imported, 4 or 5 = in flight). The status-excluded branch reports the observed statuses, explains what they mean, and points the caller at -SkipImport. (3) On API keys with partial admin scope, the Lite all-users application list endpoint can return 200 OK with text/html (the SPA index) instead of JSON — observed against v4 AppM where the key had access to listOfAppsV2 but not listOfAppsLite, producing a silent "0 existing apps" snapshot. The script now wraps the list call in a Get-AppRAppList helper that detects the string fallthrough and retries against the V2 endpoint, which Resolve-AppRId already understood via its nested basic.id branch. (4) Display strings and the -SkipImport name-lookup branch read $row.name directly, which is null when the V2 fallback fires (V2 nests name under .basic.name). Adds a Resolve-AppRName helper alongside Resolve-AppRId and uses it for every app-list name read. Also documents 'nonStd' as a valid -PackageType value. Start-JuribaAppRSmokeTest: (5) The cmdlet spliced -PackageType straight into the URL path, which works for standard names but 'nonStd' has no string-name entry on the server, returning 400 'CantFindTheAppInformation'. The cmdlet now maps 'nonStd' to its integer enum value 10 before sending; integer values pass through unchanged for any future enum value not in the map.

0.3.3 - End-to-end MECM import + smoke-test verified on sandbox.appr.juriba.app: Get-JuribaAppRMECMScanList | Start-JuribaAppRMECMImport produces a new AppR app with the matching scan-list row, and Start-JuribaAppRSmokeTest succeeds against it once availPackages.<type> flips true. Two improvements driven by that validation: Get-JuribaAppRUser -Me now merges /api/apm/user/whoAmI (numeric id) into /api/apm/user/whoAmI/full (profile body) so callers can resolve their own user id without two requests — needed for Set-JuribaAppRApplicationOwner. Examples/Import-MECMAppAndSmokeTest.ps1 now (a) calls Set-JuribaAppRApplicationOwner after import so the AppR UI's smoke-test "Created By" shows the API caller rather than the integration connector's system user, and (b) waits on availPackages.<PackageType> rather than just any package version, because MECM imports can produce a source-media zip well before any deployable type — calling Start-JuribaAppRSmokeTest before the matching availPackages flag flips true returns "CantFindTheAppInformation" (HTTP 400). The script now reports which package types ARE available if the requested one never materialises.

0.3.2 - Address PR review feedback. Remove-JuribaAppRMECMProvider: drop ConfirmImpact=High (which auto-prompted on -Id deletion too) for ConfirmImpact=Medium plus an explicit ShouldContinue gate on the -All branch — single-id removal now uses the regular Confirm flow, bulk removal still prompts unless -Confirm:$false. Get-JuribaAppRMECMImportAvailability: document the integer return value (0=unavailable, 1=ready) and add a guard-pattern example. Examples/Import-MECMAppAndSmokeTest.ps1: fix Watch-JuribaAppRApplicationStatus name split across two lines in the description.

0.3.1 - Fix the MECM import body shape and add the missing scan-list cmdlet. Reverse-engineered the AppR SPA's Scan Import page (importSelectedApplications in chunk-46NRXZRT.js): the import API expects { filteringObjects: [{ id: <originalApplicationId>, model: <int> }] } where id is the CM-side string and model is mirrored verbatim from the scan-list row (typically 0 for an MECM Application). The previous Start-JuribaAppRMECMImport sent the AppR-side numeric id with model=1, which the server accepts with 200 OK but silently no-ops. New: Get-JuribaAppRMECMScanList (wraps GET /api/integration/{providerId}/scan/list — returns rows with originalApplicationId + model + status). Updated: Start-JuribaAppRMECMImport accepts pipeline input from Get-JuribaAppRMECMScanList and derives the body fields from each row; the FilteringObjects / Body parameter sets remain as escape hatches. Examples/Import-MECMAppAndSmokeTest.ps1 rewritten to use the scan-list lookup instead of -FilteringSccmId; -FilteringSccmId is replaced by -ImportEverything for the bulk case.

0.3.0 - Add MECM (SCCM) import + provider cmdlets covering /api/admin/sccm/*. New: Get-JuribaAppRMECMProvider (list configured integration providers — Intune + MECM — list or single by -Id), Get-JuribaAppRMECMImportAvailability (preflight), Get-JuribaAppRMECMImportEvent (event log), Start-JuribaAppRMECMImport (-FilteringObjects scopes which apps to import), Set-JuribaAppRMECMProviderUniqueness (toggle uniqueness on a provider), Remove-JuribaAppRMECMProvider (-Id or -All). Also adds Examples/Import-MECMAppAndSmokeTest.ps1 — end-to-end customer scenario: import a single CM app then run a smoke test against a chosen VM group.

0.2.0 - Add Get-JuribaAppRSession. Rename Get-JuribaAppRDefaultSettings -> Get-JuribaAppRDefaultSetting and Get-JuribaAppRTestStats -> Get-JuribaAppRTestStat (plural names kept as backward-compat aliases). Watch-* cmdlets now use Write-Progress + Write-Verbose for progress output. Raise minimum PowerShellVersion to 7.1 (required for Read-Host -MaskInput in example scripts). New interactive example scripts: Invoke-JuribaAppRSelfService.ps1 and Invoke-JuribaAppRSelfServiceWithTesting.ps1.

FileList

Version History

Version Downloads Last updated
0.3.6 3 5/28/2026
0.3.5 (current version) 2 5/28/2026
0.3.4 2 5/28/2026
0.3.3 8 5/6/2026
0.2.0 8 4/29/2026