Juriba.AppR.psd1

#
# Module manifest for module 'Juriba.AppR'
#
# Generated by: Juriba
#
# Generated on: 03/20/2026
#

@{

    # Script module or binary module file associated with this manifest.
    RootModule        = 'Juriba.AppR.psm1'

    # Version number of this module.
    ModuleVersion     = '0.3.3'

    # Supported PSEditions
    CompatiblePSEditions = @('Core')

    # ID used to uniquely identify this module
    GUID              = 'a7e3f8b1-4d2c-4f6a-9e1b-3c5d7f8a2b4e'

    # Author of this module
    Author            = 'Juriba'

    # Company or vendor of this module
    CompanyName       = 'Juriba'

    # Copyright statement for this module
    Copyright         = '(c) Juriba. All rights reserved.'

    # Description of the functionality provided by this module
    Description       = '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 version of the PowerShell engine required by this module
    PowerShellVersion = '7.1'

    # Functions to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no functions to export.
    FunctionsToExport = @(
        # Connection & Authentication
        "Connect-JuribaAppR",
        "Disconnect-JuribaAppR",
        "Get-JuribaAppRSession",
        "Set-JuribaAppRAPIKey",
        "Get-JuribaAppRAboutInfo",

        # Query - Applications
        "Get-JuribaAppRApplication",
        "Get-JuribaAppRApplicationList",
        "Get-JuribaAppRApplicationStatus",
        "Get-JuribaAppRApplicationPackage",
        "Get-JuribaAppRApplicationPackageDetail",
        "Get-JuribaAppRApplicationEvent",

        # Query - Users
        "Get-JuribaAppRUser",

        # Query - Quality Review
        "Get-JuribaAppRQualityReview",

        # Settings
        "Get-JuribaAppRDefaultSetting",
        "Get-JuribaAppRCommandSuggestion",

        # Upload / Create / Monitor Applications
        "Send-JuribaAppRSetupFile",
        "New-JuribaAppRApplication",
        "Get-JuribaAppRApplicationCreationState",
        "Watch-JuribaAppRApplicationCreation",
        "Watch-JuribaAppRApplicationStatus",
        "Set-JuribaAppRApplication",
        "Set-JuribaAppRApplicationOwner",
        "Set-JuribaAppRApplicationCommandLine",
        "Remove-JuribaAppRApplication",

        # Testing
        "Get-JuribaAppRVMGroup",
        "Get-JuribaAppRTestApplication",
        "Start-JuribaAppRSmokeTest",
        "Stop-JuribaAppRSmokeTest",
        "Get-JuribaAppRTestResult",
        "Get-JuribaAppRTestStat",

        # Publishing
        "Get-JuribaAppRIntegrationConnector",
        "Get-JuribaAppRPublishingProperty",
        "Invoke-JuribaAppRPublishIntune",
        "Invoke-JuribaAppRPublishMECM",
        "Invoke-JuribaAppRPublishGeneric",

        # MECM (SCCM) Import + Provider Configuration
        "Get-JuribaAppRMECMProvider",
        "Get-JuribaAppRMECMImportAvailability",
        "Get-JuribaAppRMECMImportEvent",
        "Get-JuribaAppRMECMScanList",
        "Start-JuribaAppRMECMImport",
        "Set-JuribaAppRMECMProviderUniqueness",
        "Remove-JuribaAppRMECMProvider",

        # Knowledge Base
        "Search-JuribaAppRKnowledgeBase",

        # Generic Integration (v1 API - refactored from original scripts)
        "Get-JuribaAppRGenericIntegration",
        "Get-JuribaAppRGenericIntegrationPublishing",
        "Get-JuribaAppRGenericIntegrationPrerequisite",
        "Get-JuribaAppRGenericIntegrationProperty",
        "Get-JuribaAppRGenericIntegrationSource",
        "Add-JuribaAppRGenericIntegrationLog",
        "Update-JuribaAppRGenericIntegrationPublishingState"
    )

    # Cmdlets to export from this module
    CmdletsToExport   = @()

    # Variables to export from this module
    VariablesToExport = @()

    # Aliases to export from this module
    AliasesToExport   = @(
        "Connect-AppR",
        "Disconnect-AppR",
        # Backward-compatibility aliases for plural→singular renames (v0.1.x):
        "Get-JuribaAppRDefaultSettings",
        "Get-JuribaAppRTestStats"
    )

    # Private data to pass to the module specified in RootModule/ModuleToProcess.
    PrivateData       = @{

        PSData = @{

            # Tags applied to this module. These help with module discovery in online galleries.
            Tags = @('Juriba', 'AppReadiness', 'AppR', 'Packaging', 'Intune', 'MECM', 'SmokeTest')

            # A URL to the license for this module.
            LicenseUri = 'https://raw.githubusercontent.com/juribalimited/powershell-module-appr/main/LICENSE'

            # A URL to the main website for this project.
            ProjectUri = 'https://github.com/juribalimited/powershell-module-appr'

            # A URL to an icon representing this module.
            IconUri    = 'https://raw.githubusercontent.com/juribalimited/powershell-module-appr/main/resources/juriba_logo.jpeg'

            # ReleaseNotes of this module
            ReleaseNotes = '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.'


        } # End of PSData hashtable

    } # End of PrivateData hashtable

}