Modules/businessdev.ALbuild.OnPrem/Public/Sync-BcOnPremApp.ps1

function Sync-BcOnPremApp {
    <#
    .SYNOPSIS
        Synchronises an AL app's schema on an on-premises Business Central server instance (licensed).
    .PARAMETER ServerInstance
        The BC server instance.
    .PARAMETER AppName
        The app name.
    .PARAMETER AppVersion
        Optional app version.
    .PARAMETER Mode
        Add (default), Clean, Development or ForceSync.
    .PARAMETER Tenant
        Tenant. Default 'default'.
    #>

    [CmdletBinding(SupportsShouldProcess)]
    param(
        [Parameter(Mandatory)] [string] $ServerInstance,
        [Parameter(Mandatory)] [string] $AppName,
        [string] $AppVersion,
        [ValidateSet('Add', 'Clean', 'Development', 'ForceSync')] [string] $Mode = 'Add',
        [string] $Tenant = 'default'
    )
    Assert-ALbuildLicensed -Feature 'OnPrem'
    if (-not $PSCmdlet.ShouldProcess($ServerInstance, "Sync $AppName ($Mode)")) { return }
    $params = @{ ServerInstance = $ServerInstance; Name = $AppName; Mode = $Mode; Tenant = $Tenant; Force = $true; ErrorAction = 'Stop' }
    if ($AppVersion) { $params['Version'] = $AppVersion }
    Sync-NAVApp @params
    Write-ALbuildLog -Level Success "Synchronised $AppName ($Mode) on '$ServerInstance'."
}