ReleaseNotes.txt

3.0.11
Issue #2378 When running BcContainerHelper without admin rights, the import of a certificate is now done in an elevated process (asking for permissions)
New function Invoke-gh for invoking GitHub CLI commands from PowerShell
New function Invoke-git for invoking Git commands from PowerShell
Display warning if DisabledTests contains codeunit with a comma in the name (not supported for disabling tests)

3.0.10
Issue #2457 Convert-BcAppsToRuntimePackages: allow to set showmycode, keepContainer, include sign app parameters

3.0.9
Issue #2423 Export-ModifiedObjectsAsDeltas fails with Could not find a part of the path.
Issue #2457 Add parameters -showMyCode and -IncludeSourceInPackageFile to Convert-BcAppsToRuntimePackages
Issue #2429 Use vsixFile in the container for anything but current validation to catch runtime setting in app.json error
Improve Out of memory detection when running using docker exec (usePsSession = $false)
Improve Invoke-ScriptInBcContainer when running using docker exec (usePsSession = $false)
- Add try/catch inside script block to catch error better
Add possible kill switch for pssessions (avoid hanging Remove-BcContainerSessions) - default off
Support for obsoleteTagMinAllowedMajorMinor (AS0105) in Run-AlCops, Run-AlValidation and Run-AlPipeline
Use a PowerShell Job to run bcpt tests to be able to remove files afterwards
Allow Get-BcContainerAppInfo to be used without explicitely specifying -containerName $containerName, allowing just $containerName
Add new function Set-BcContainerServerConfiguration to directly configure settings of the Business Central Server instance (without needing Invoke-ScriptInBcContainer)
Add new function Restart-BcContainerServiceTier to restart only the service tier after configuration changes (often necessary)
Patch wrong version of Newtonsoft.json.dll in current insider builds (until this is fixed in the platform)

3.0.8
Add new function Get-ALGoAuthContext to get AL-Go for GitHub compatible auth context from bcAuthContext obtained from New-BcAuthContext
Issue #2442 Run-AlPipeline generates BuildOutput.txt even if parameter is not specified
Add new parameter -appFilePath to Get-BcContainerAppInfo to get app info from an .app file shared with the container
When running preview version of BcContainerHelper, it will automatically select preview versions of generic images as well
Add warning when using Desktop OS and process isolation
Issue #2460 New-BcContainerWizard cannot select all countries with NAV 2018 after the introduction of nlbe and itch countries
Add parameter -doNotPublishApps to Run-AlPipeline to skip publishing apps, running tests etc. - causes usage of filesonly container
Fix issue that /ReportSuppressedDiagnostics is sometimes applied when the flag is not available.
Add debug output (memory, running services and eventlog) when Invoke-ScriptInBcContainer is failing
Re-throw Out Of Memory exception if container is out of memory when using Invoke-ScriptInBcContainer
Issue #2455 Use Invoke-WebRequest when downloading from a direct download URL from SharePoint / OneDrive

3.0.7
Add --no-cache when building docker images to avoid reuse of faulty layers
New parameter IncludeSourceInPackageFile on Get-BcContainerAppRuntimePackage

3.0.6
Fix issue with wrong extension of BuildOutputFile

3.0.5
Issue #2381 Run-AlValidation -nextmajor fails if nextmajor is not available (should be ignored)
Issue #2379 Better error message from Publish-PerTenantExtensionApps
Issue #2378 give warnings instead of failing on self-signed certificates when running as non-admins
Issue #2371 Incremental wait times when admin center API errors
Issue #2388 Sign-NavContainerApp fails with SSL/TLS error in Sign-tool download
Issue #2365 New Parameter on Compile-AppInBcContainer (-ReportSuppressedDiagnostics) to ignore pragmas (include by default on Run-AlCops)
Issue #2364 Run-TestsInBcContainer fails with certificate validation error
Better error message when authentication fails in Publish-PerTenantExtensionApps
Issue #2393 Scopes is wrong when using ClientId, ClientSecret and TenantId in Publish-PerTenantExtensionApps
Run-AlValidation to check whether app is signed (unless SkipVerification is specified)
Add flag UpdateDependencies to Run-AlPipeline and Compile-AppInBcContainer to update dependencies in compiled .app files to reference versions used during build
Allow Flush-ContainerHelperCache to run in parallel on the same host
Allow whitespaces in hosts file during updatehosts.
New-BcContainerWizard to find latest version using the country which is being built latest
Add BuildOutputFile parameter to Run-AlPipeline to dump all build Output to file
Add functionality to generate dependency artifact in Run-AlPipeline with all references dependencies

3.0.4
Issue #2349 Run-AlCops/Extract-AppFileToFolder fail if runtime is >=8.0 and no ResourceExposurePolicy is set
Stop treating AL1026 warning as error by default
Support for application dependency in Sort-AppFoldersByDependencies
Support for all manifest (app.json) 'features' in Extract-AppFileToFolder
Issue #2360 -isolation hyperv isn't always used when specified and building a new image
Add -includeDacPac parameter to Export-BcContainerDatabasesAsBacpac
Issue #2375 Get-BestGenericImageName finds wrong generic image if host OS is very very old

3.0.3
Issue #2303 Get-BestGenericImageName sometimes returns an image which is newer than the host OS
Hardcode replacement artifacts for 16.18
Issue #2308 Added blobPath to Publish-BuildOutputToStorage
Issue #2321 Add language to Start-BcContainerAppDataUpgrade
Issue #2320 Better error message in Publish-PerTenantExtensionApps
Issue #2325 Support for resourceExposurePolicy in Extract-AppFileToFolder
Issue #2286 Publish-NavContainerApp -upgrade -install fails if app was not installed before
Issue #2342 Publish-NavContainerApp and Replace-DependenciesInAppFile doesn't support ResourceExposurePolicy
Adding Argentina, Chile and Puerto Rico to the country map, mapping to w1
Get CreateTestUsers app from new feed
Add support for compiling with Windows auth
Do not display query parameters of licensefile url
Allow wildcards when publishing apps from inside container

3.0.2
Issue #2280 TypeNotFound on [Path]::GetFileName($vsixUrl)
Issue "2287 Create-AadAppsForBC function now creating error when used along with -preAuthorizePowerShell
Issue - Resolve-DependenciesFromAzureFeed not ignoring first lvl dependencies
Issue - Resolve-DependenciesFromAzureFeed not working with 4.0 and lower runtimes
Support OpenIdConnect for AAD setup for v20+
Hardcode replacement artifacts for 18.9 and 17.14 builds

3.0.1
Fix issues with bacpac creation when windows users are present in database.
Add Daily and Weekly options to Get-BcArtifactUrl
Performance optimization of Get-BcArtifactUrl
Get-BcContainerEventLog now copies the eventlog to HostHelperFolder\EventLogs instead of my folder to avoid blocking container deletion
Remove Application Roles from bacpacs (re. VA1246 - https://docs.microsoft.com/en-us/azure/azure-sql/database/sql-database-vulnerability-assessment-rules)
Issue #2245 - UnInstall-BcContainerApp -doNotSaveData fails
Add parameter -GrantAdminConsent to Create-AadAppsForBC
Use Microsoft Graph API (instead of deprecated Azure AD Graph API) in Create-AadAppsForBC
New parameters for New-BcContainer AadAppId and AadAppIdUri for creating containers with AAD authentication
Issue #2259 - FilesOnly containers doesn't respect the -vsixFile parameter
Better AAD support for containers
Add AadTenant, AadAppIdUri and AadAppId to New-BcContainer for enhanced AAD support
Issue #2267 Publish-BcContainerApp as Delegated Admin doesn't work
Add standard audience as valid to support the current implementation in the AL extension when calling the dev endpoint with AAD auth
Issue #2274 Unable to download symbols for 1st party apps in localized containers with Run-ALValidation

3.0.0
Enable Telemetry. BcContainerHelper will emit usage statistics telemetry to Microsoft for all commands used.
$bcContainerHelperConfig.SendExtendedTelemetryToMicrosoft = $true will emit extended telemetry to Microsoft
Flush-ContainerHelperCache does not run docker image prune unless keepdays is 0 (= flush all)

2.0.23
Issue #2210 Removing Desktop shortcuts in a folder fails if the desktop is setup for onedrive sync
Run-TestsInBcContainer was hardcoded to use Romance Standard Time as timezone for the user - use the session timezone instead
Issue #2215 Add parameter -doNotIgnoreInfos to Run-AlCops (and ignore infos by default)
Modify Run-AlValidation to validate in the same way as the AppSource Validation Service

2.0.22
Issue #2206 new-bccontainer with importtesttoolkit sometimes fails containername is not bcserver

2.0.21
Increasing version number to avoid locking issues with applicationInsights DLL

2.0.20
Add support for using Docker Volumes for HostHelperFolder, BcArtifacts Cache folder and my folder
Fix to Create-AadAppsForBC for this breaking change in AzureAD https://docs.microsoft.com/en-us/azure/active-directory/develop/reference-breaking-changes#appid-uri-in-single-tenant-applications-will-require-use-of-default-scheme-or-verified-domains
Issue #2187 New-BcContainer error when including "-includePerformanceToolkit" parameter (and -imageName)

2.0.19
New-BcAuthContext displays wrongly decoded names as accessToken is UTF8 encoded
Issue #2181 Fix encoding when using Get-Content
Issue #2035 SharedEncryptionKey feature doesn't always work across versions
Issue #2135 Unable to read data from the transport connection
Allow user to specify isolation on Windows 11 / Windows 2022

2.0.18
Fix issue with Invoke-BcContainerCodeunit
Fix issue where Invoke-BcContainerCodeUnit fails on 19.0 containers
Issue #2167 support different folders for external SQL Server
Fix Run-ConnectionTestToBcContainer on 19.0
Add TraefikImage to config file and parameter on Setup-TraefikContainerForNavContainers

2.0.17
Add paramater internalsVisibleTo to Publish-BcContainerApp and Replace-DependenciesInAppFile in order to publish an app with internals visible to another app during development
Support Windows 11 build numbers
Add new function Run-BCPTTestsInBcContainer
Issue #2129 add Windows 10 21H2
Support disabledTests.json in testfolders in Run-AlPipeline
Issue #2130 patch start.ps1 if using an old generic image on pre 15.0 NAV/BC
Fix issue where a session cannot be created to a newly created container before ~5 minutes on Windows 11
Add BcptTestFolders to Run-AlPipeline
Remove Performance Tool shortcut if created
New-BcImage fails on newer Windows versions due to RoboCopy offload
Do not use runtime packages in Import-TestToolkitToBcContainer
Issue #2110 BC NextMajor (20.0) error when importing ConfigPackage

2.0.16
Issue #2023 Invoke-NavContainerAPI doesnt support nested hashtables
Add ApplicationInsightsConnectionString to Run-AlPipeline to support new app.json property. This value will be used instead of ApplicationInsightsKey if runtime >= 7.2 or bcVersion >= 18.2. (Thanks TheNCuber)
Support different extension on license files (thanks SBalslev)
Map Ukraine to w1 in mapCountryCode, allowing to create ua containers (thanks Sergeyol)
Add parameter CustomCodeCops to Run-AlPipeline and Compile-AppInBcContainer to allow for specifying custom code cops (thanks jfamvg)
Use Latest shipped AL Language Extension by default for all shipped version in Run-AlValidation
Increased support for Github Actions in Run-AlPipeline and Run-TestsInBcContainer
Convert-BcAppsToRuntimePackages: Allow to skip failing apps, run scriptblock after each processed runtime (Thanks MODUSCarstenScholling)
Allow runtime packages as previous apps run Run-AlPipeline (Thanks MODUSCarstenScholling)
Unpublish app in multitenant container fails if the app is installed in multiple tenants (Thanks lktraser)
Fixing bug in Resolve-DependenciesFromAzureFeed that downloaded all apps from first lvl (Thanks jonaswer)
Remove countries which have their own artifacts from mapCountryCode
Add Windows 11 / ltsc2022 support
Run-AlValidation sometimes returns error AL1040: The guid number '' does not match the expected pattern: "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$".
Add Parameter appVersion to Run-AlPipeline to stamp in full version number during build
Skip ConnectionTest by default on Run-AlValidation
Issue #2069 New-BcImage - incorrect evaluation resulting $forceRebuild is true always for us.
Issue #2060 Add BaseUrl and ApiBaseUrl to ContainerHelper config to support embed SaaS environments
Issue #2050 Get-BcContainerAppInfo does not work properly with multiple published apps
Issue #2050 Add parameter -installedOnly to Get-BcContainerAppInfo to only take installed apps into account
Add OpenFolder parameter to Extract-AppFileToFolder
Fix dropbox download url (common mistake, replace dl=0 with dl=1) in Download-File
Issue #2076 CmdLet Copy-AlSourceFiles can't be used on BC 19x
Issue #2079 don't create a user if no users are in the database when running Run-TestsInBcContainer
Add CompanyName to Run-AlPipeline to support running tests in a specific company
Issue #2084 Add parameter TestRunnerCodeunitId to Run-TestsInBcContainer
Run-AlPipeline should create launch.json if it doesn't exist
Add function ConvertTo-HashTable to convert PSCustomObject to HashTable
Add function ConvertTo-OrderedDictionary to convert PSCustomObject to OrderedDictionary
Add function ConvertTo-GitHubGoCredentials to convert an auth context hashtable to GitHub-Go credentials
Add parameter deviceCode to New-BcAuthContext to allow initiating the device code flow in one call and finish in another
Add function Import-CertificateToBcContainer to import a .cer certificate to the container
Add support for URLs in Import-PfxCertificateToBcContainer and Import-CertificateToBcContainer
Add KeyVault access parameters to Run-AlPipeline
Bug with recursive copy of report layouts during Extract-AppFileToFolder
Issue #2097 add resilience to Add-FontsToBcContainer

2.0.15
Default to process isolation when Host OS is 21H1 and Container OS is 2004
New-BcEnvironment should not enumerate companies and users if -doNotWait is specified
Issue #1979 Add DOCKER_SCAN_SUGGEST to configuration (default false) and set corresponding environment variable
Issue #1998 New-BCContainer ERROR: Database Backup File not found. when hosthelper folder changed
Issue #2003 Change GenerateReportLayout default to 'No' in Run-AlValidation and Run-AlCops
Issue #2006 spelling mistake
Issue #2014 telemetryclient cannot be initialized
Issue #2008 Run-ALValidation - InstallApps/SortByDependencies
Issue #2018 Create .net Assembly Reference folder when using filesonly and includeAL

2.0.14
Issue #1967 add parameter IncludeApiAccess to Create-AadAppsForBC to ensure that API permissions are only added when needed

2.0.13
Allow absolute GenericImageName in config (no reference to host OS)
Application errors in are thrown as errors in ClientContext (Run-TestsInBcContainer) (thanks @hemisphera)
Add support for remote SQL Servers in Remove-BcDatabase and Restore-BcDatabaseFromArtifacts (thanks Remko and Theo)
Issue #1941 XML validation error leads to warnings instead of errors in Compile-AppInBcContainer
Update generic tag list in Get-BestGenericImageName
Default to build 19041 if 19043 doesn't exist (as 19041 is found to work better with 21H1)
Issue #1944 Extract-AppFileToFolder doesn't handle special characters in manifest correctly
Issue #1933 Run-ALValidation fails sometimes with single installApps and multiple apps specified
Issue #1931 Throw understandable error when trying to create a pre-15 filesonly container
Issue #1921 Add /GenerateCrossReferences switch from alc.exe to Compile-AppInBcContainer and Run-AlPipeline
Issue #1826 Add additional error info to UploadImportAndApply-ConfigPackageInBcContainer
Add role permissions API.ReadWrite.All and Automation.ReadWrite.All to AAD apps when using Create-AzureAdAppsForBC
Remove-BcDatabase fails if no database exists

2.0.12
Issue #1894 Error when creating a new "clean" v18 container
Issue #1900 Code signing (Sign-NavContainerApp) does not work with a SAS URL
Issue #1906 Run-AlPipeline / Compile-AppInBcContainer problem
Unable to install Test Runner in 18.0 online tenant
Issue #1928 latest version of Docker throws an exception when using Docker Build in PowerShell (even though nothing is wrong...!!!)
Add Windows 10 21H1 known version number
Add additional countries to w1 mapping in configuration

2.0.11
Add parameter reUseContainer to Run-AlPipeline to use existing container for the pipeline
Include Tests-Marketing when installing test apps
Add parameter SharedFolder to Run-AlPipeline to share a folder from the host to the container
Allow to Run-AlPipeline without source and only installApps and/or installTestApps
Display Note in Run-AlPipeline and Run-AlValidation if ShowMyCode is true (https://aka.ms/showMyCode)
Add function Add-DomainToTraefikConfig to add a domain to traefik v1 config
Change traefik containers to use ContainerName as hostname
Add config setting TraefikUseDnsNameAsHostName to revert the behavior and use the public DNS name as hostname
Issue #1886 Error creating BC 19 container (Test Runner on Permissions Mock by Microsoft 19.0.0.0)
Issue #1870 Do not remove images currently in use in Flush-BcContainerHelperCache

2.0.10
Issue #1857 Compile-AppInBcContainer doesn't work with 19.0 containers
Issue #1860 Wizard unaware of new license rules for 18.0

2.0.9
Regression in New-BcEnvironment - use of uninitialized variable

2.0.8
Issue #1812: Allow passing an array of paths to all "font" parameters
PR #1799 Add support for Service principal in Create-AadAppsForNav
PR #1801 Support SqlServer PS module in Restore-BcDatabaseFromArtifacts.ps1
Issue #1794 AssignPremiumPlan fails when using external database
Issue #1810 Publish-NavContainerApp is not using Publish-NAVApp -Force which leads to user interaction in some situations
Issue #1790 Add caching option SandboxArtifacts to flush-ContainerHelperCache to only flush sandbox artifacts
Issue #1822 Copy-AlSourceFiles doesn't support entitlement, permissionset and permissionsetextension
Issue #1820 Add SqlTimeout to New-BcContainer - default is and was always 300 (= 5 minutes)
Issue #1829 Import-module fails with no good error when config file is bad or empty
Breaking change: Fix Install-BcAppFromAppSource to use new admin center API (remove old hack)
Issue #1815 Page 810 Web Service takes very long to open
Added parameter -network to New-BcContainer to select which docker network the container should use
Issue #1833 Add warning if using ClickOnce and useTraefik
Issue #1793 Setup-TraefikContainerForNavContainers | Use my own certificate | traefik.toml missing link to certificate
Use SkipVerification on installApps and previousApps as the certificate on old apps might have expired
Issue #1842 JIT initialize $bccontainerhelperconfig variable
Enable Encryption during validation

2.0.7
Support -bakFile and -replaceExternalDatabases together on New-BcContainer
Support for preProcessorSymbols in Compile-AppInBcContainer and Run-AlPipeline
Issue #1720 add suppressBuildSearchIndex to Import-ObjectsToNavContainer
Add function Get-PlainText
Run-AlCops sometimes shows the exception instead of the AppSource failures
Get-BcArtifactUrl returns an older publicpreview version instead of a newer insider build

2.0.6
Issue #1696 Compile-AppInBcContainer does not throw error on missing RDLC
Add AddInsFolder parameter to Convert-BcAppsToRuntimePackages
Issue #1712 Get-NavContainerAppRuntimePackage doesn't return a path when the license is about to expire
Issue #1710 UploadImportAndApply-ConfigPackageInBcContainer doesn't work with filename
Issue #1709 Add switch GenerateSymbolReference to Compile-ObjectsInNavContainer.ps1
Issue #1722 add containername to PowerShell and Command prompts
Issue #1706 App generation failed without info after fixing #1696
Issue Cannot download symbols for apps with special characters
Issue #1728 Get-BcContainerApp doesn't return the appFile
Support that bcartifactsCacheFolder, containerHelperFolder and dvdPath can be a docker volume instead of a bind mount (for performance)
Run-AlValidation doesn't fail getting the same app in apps and previousApps (if apps in the middle of the dependency chain hasn't changed)
Run-AlCops doesn't use previousApp if it is the same version as the app
Issue #1704 Run-AlValidation with "preprocessorSymbols"
Issue #1729 Second container on same external database causes previous containers to stop working
Issue #1739 Publish-BcContainerApp fails with "The remote server returned an error: (403) Forbidden
Issue #1736 Support specifying a folder (of apps) to Run-AlValidation, Run-AlCops, Run-AlPipeline, Publish-BcContainerApp, Publish-PerTenantExtensionApps and Convert-BcAppsToRuntimePackages
Issue #1740 Missing help for disabledTests parameter
Issue #1744 if New-BcAuthContext with client credentials fails, the real error is not shown
Issue #1726 Add switch -throwOnError to Run-AlValidation
Issue #1747 Unwanted multitenant image when using replaceExternalDatabases
Allow running sandbox artifacts in "onprem mode" (from version 18.0 with generic image tag 1.0.1.4 or higher)
Issue #1749 User not created when using replaceExternalDatabases and cached images

2.0.5
Issue #1668 Run-AlValidation fails if app filename has a comma (and there is only one app)
Issue #1675 Convert-BcAppsToRuntimePackages doesn't work with only one app.
Issue #1678 Setup-BcContainerTestUsers fails on version 18
Issue #1682 add silent mode to import module
Flush-ContainerHelperCache will also cleanup generic images not matching your OS
Add BcAuthContext parameter to functions Create-AadAppsForNav, Create-AadUsersInBcContainer and Replace-BcServerContainer (note that resource should be https://graph.windows.net)
Modify Run-ConnectionTestToBcContainer to connect and open Extension Management. Basically check whether people can uninstall your app.

2.0.4
Remove-BcEnvironment fails after waiting for environment removal
Import-TestToolkitToBcContainer fails when installing apps in online environment unless a container called bcserver exists
Add parameter -replacePackageId to Replace-DependenciesInAppFile to allow process to change package id in an app
Add parameter -replacePackageId to Publish-BcContainerApp to allow process to change package id in an app
Run-AlPipeline using a BcSaaS Sandbox environment to use replacePackageId when publishing previousApps and add delay to avoid conflicts
New-BcEnvironment to wait for other environments being created before creating
Specifying TestRunnerOnly installs all tests when not using online SaaS environments
Add parameter applicationInsightsKey to Run-AlPipeline to stamp applicationInsightsKey into app.json for all apps

2.0.3
Issue #1655 variable $scopes not set
Issue #1654 and #1656 Publish-BcContainerApp where the filename contains a comma fails.
New Function Get-BcInstalledExtensions to return installed extensions (including PTEs) from an online Business Central environment
New function New-BcDatabaseExport to start a new Database Export from an online Business Central environment
New function Get-BcDatabaseExportHistory to get the Database Export History from an online Business Central tenant/environment

2.0.2
Allow no credentials with filesOnly containers
Connect from inside the container to SaaS environment in Install-BcAppFromAppSource and Run-ConnectionTestToBcContainer to avoid file locks
Add parameter allowInstallationOnProduction to Install-BcAppFromAppSource to allow installation in production environments
Publish-BcContainerApp was refactored to reuse the appfiles unpacking mechanism from Run-AlValidation and more

2.0.1
Issue #1646 Get-BcArtifactUrl has decome a low slower with 2.0.0
Issue #1645 Build Partially Succeeded - revert behavior

2.0.0
Issue #1596 support URLs in previousApps in Run-AlValidation
Issue #1606 do not prune when creating images
Remove compatibility for ancient generic image versions from New-BcContainer
New function New-BcAuthContext to create an authContext for BC SaaS based on credentials, a refresh token or a device login
New function Renew-BcAuthContext to renew an authContext for BC SaaS if necessary
Added parameteres bcAuthContext and environment to Compile-AppInBcContainer to allow Compile-AppInBcContainer to download symbols from BC SaaS
Added parameteres bcAuthContext and environment to Publish-AppToBcContainer to allow Publish-AppToBcContainer to publish apps to BC SaaS
Issue #1613 wrong display of reclaimed space
Added parameters after and before to Get-BcArtifactUrl to filter out artifacts created before after or after before
Added outcome First to the Select parameter in Get-BcArtifactUrl to allow grabbing the first artifact mathing a filter
Added new function Install-BcAppFromAppSource to install an AppSource App into a BC SaaS environment
Added parameter includeTestRunnerOnly to Import-TestToolkitToBcContainer to allow importing only Test Runner
Added parameteres bcAuthContext and environment to Import-TestToolkitToBcContainer to allow running tests on BC SaaS Sandbox environments (Test Runner is the only app in AppSource at the moment, TestFramework apps will be added)
Added parameteres bcAuthContext and environment to Run-TestsInBcContainer to allow running tests on BC SaaS Sandbox environments
Better stacktrace when exception happens in Invoke-ScriptInBcContainer
Added parameteres bcAuthContext and environment to Run-AlPipeline to allow running a pipeline using BC SaaS Sandbox environments
Issue #1591 added parameter failOn to Run-AlPipeline to allow builds to fail on warnings
Issue #1623 Unable to create BC 16.0 container with tests
Support FilesOnly when generating images
Use FilesOnly generic image for better performance
Publish-PerTenantExtensionApps to support bcAuthContext as parameter set (as well as clientId, clientSecret and tenantId for compatibility)
Add functions New-BcEnvironment, Remove-BcEnvironment and Set-BcEnvironmentApplicationInsightsKey
Issue #1636 Signing fails in FilesOnly-container
Added function Convert-BcAppsToRuntimePackages to convert a set of Apps to runtime packages matching a specific BC version and localization
Added Parameter ContainerName to Sort-AppFilesByDependencies to allow the function to sort runtime packages using Get-NavAppInfo in container

1.0.19
Move retry algorithm to Download-File
Run-AlValidation will try to determine which versions to run validation against if not specified
Run-AlValidation and Run-AlCopys to support that SupportedCountries is optional
Issue #1573 Regression Setup-TraefikContainerForBcContainers stopped working in 1.0.18
Issue #1542 Convert-AlcOutputToAzureDevOps wrong error output

1.0.18
Issue #1556 DotNet Packages for ZipArchive missing in VS Code when creating a Base App
Issue #1559 Handling of Hungary artifacts
Issue #1563 Run-AlValidation with multiple apps fails
Run-AlValidation to support urls as apps, previousapps and installapps
Add parameter CopySymbolsFromContainer to Compile-AppInBcContainer to speed up symbols download
Use CopySymbolsFromContainer in Run-AlCops
Issue #1568 Add publisher parameter to Unpublish and Uninstall app
Issue #1566 Sign-BcContainerApp doesn't work with SHA256
Retry algorithm added to Sign-BcContainerApp
Add Parameter -doNotPublishAdminPort to Setup-TraefikContainerForBcContainers
Add Parameter -additionalParameters to Setup-TraefikContainerForBcContainers
Issue #1577 Run-AlValidation and Extract-AppFileToFolder require absolute paths
Issue #1579 Change default timeStampServer and digestAlgorithm

1.0.17
Issue #1494 Creating another container based on existing artifact
Add additional information when publishing through dev Endpoint (instead of just Unprocessible Entity)
Issue #1530 Not able to Run-AlValidation without previous app.
Issue #1537 Issue with file lock when creating image
Use configured containerName in Run-AlCops and Run-AlValidation
Add parameter -skipAppSourceCop to Run-AlValidation
Add mapCountryCode to $bcContainerHelperConfig
Use mapCountryCode in Get-BcArtifactUrl to allow getting artifacts for countries which doesn't have own artifacts
Use mapCountryCode in Run-AlValidation to allow running validation for all countries (max. 1 time per artifact)
Issue #1536 Random running Test failure
Run-AlValidation use single tenant containers by default for performance
Add resilience to ClientContext::GetAllForms
Issue #1550 and #1497 add digestAlgorithm parameter to Sign-BcContainerApp
Run-AlCops (and Run-AlValidation) could ignore error AS0088
Issue #1552 PowerShell sometimes uses 8-3 notation for $env:temp

1.0.16
Issue #1516 Sort-AppFoldersByDependencies can't handle twice the same app in the baseFolder
Issue #1519 Extract-AppFileToFolder doesn't extract internalsVisibleTo in app.json
Add parameter -SkipUpgrade to allow Run-AlValidation to skip upgrade if previousApps cannot be installed on current version
Issue #1522 Move files to correct positions
Issue #1517 Traefik with Run-AlValidation
Add Text to Run-AlValidation to indicate success or failure

1.0.15
Use new Generic image location and SQL 2019 image as default (mcr.microsoft.com/businesscentral:{0}-0.1.0.25 is the latest with SQL 2017)
Issue #1469 Install-NavSipCryptoProvider cannot be executed twice
Add new function UploadImportAndApply-ConfigPackageInBcContainer, which uses management APIs to Upload, Import and Apply a config package in a container
Add parameter -ImportTestDataInBcContainer in Run-AlPipeline to allow for overriding and supporting test data
Add configuration setting: timeStampServer (default timeStampServer for Sign-AppInBcContainer)
Add parameter timeStampServer to Sign-AppInBcContainer to allow overriding the timeStampServer
Fix Extract-AppFileToFolder to include missing properties and honor runtime version
Add parameter vsixFile to Run-AlPipeline
Add new function Run-AlCops to run AL cops in existing container
Add new function Run-AlValidation to run and end 2 end AL validation with multiple versions and multiple countries
Issue #1507 Sort-AppFilesByDependencies crashes if two different versions of the same app is specified
Issue #1496 Add ruleset parameter to Run-AlPipeline
Added new function Get-AlLanguageExtensionFromArtifacts to get path of .vsix file within artifacts
Issue #1506 Add parameter applicationInsightsKey to New-BcContainer and New-BcContainerTenant (note that this requires generic image version 1.0.1.0 or later)

1.0.14
Add parameter -features to Compile-AppInBcContainer to add support of the alc features parameter
Add parameter -bakFile to Restore-BcDatabaseFromArtifacts to allow restoring custom database using the artifact binaries
Issue #1426 performance test samples are installed before performance test toolkit
Clean-BcContainerDatabase will now cleanup Schema and company when -doNotSaveData is specified
UnInstall-BcContainerApp will now cleanup Schema when -doNotSaveData is specified together with -doNotSaveSchema
Regression: Backup-BcContainerDatabases couldn't backup the tenant template database when specified
Setting default container memory size to 8Gb when using hyperv
Remove references to specific images

1.0.13
Issue #1414 the magic setting defaultTenantHasAllowAppDatabaseWrite=Y is not used when using -cleandatabase or -newdatabase
Add parameter -publishedOnly to Get-BcContainerAppInfo to get published apps (no tenant specified)
Add parameter -doNotCopyDatabase to New-BcContainerTenant to mount an existing database (move from other container)
Add parameter -doNotRemoveDatabase to Remove-BcContainerTenant to avoid removing the database (move to other container)
Add parameter -PublisherAzureActiveDirectoryTenantId to Publish-BcContainerApp
New function Restore-BcDatabaseFromArtifacts for restoring databases from artifacts on an external sql server
New function Remove-BcDatabase for removing databases from an external sql server
New parameters -databasePrefix and -replaceExternalDatabases to New-BcContainer to allow New-BcContainer to create/replace databases on external SQL Server
Issue #1417 Add parameters -databaseCredential and -compress to Backup-BcContainerDatabases
Issue #1416 Add parameter -sqlCredential to Run-TestsInBcContainer and Get-TestsFromBcContainer if using external SQL Server
Issue #1415 Implicitely import the Test Framework in Setup-BcContainerTestUsers if not already installed
Issue #1426 includePerformanceToolkit should automatically include includeTestToolkit and includeTestFrameWorkOnly (if not specified)
Publishing apps from a .zip file, where the name isn't .zip caused an error
Add parameter gitLab to Run-AlPipeline to add support for surfacing test errors on GitLab
Issue #1430 temp folder is not unique
Add GitHubActions option to Run-AlPipeline
Create Temp folder using GetRandomFileName in Download-Artifacts (instead of ticks)

1.0.12
Issue #1401 set app version if appBuild -or appRevision is specified
Add function description for Publish-PerTenantExtensionApps and Publish-BuildOutputToStorage
Support SecureString or String for secrets in Publish-PerTenantExtensionApps and Publish-BuildOutputToStorage
Fix issue where http://aka.ms/getbc cannot find prerequisites

1.0.11
Add function Set-BcContainerKeyVaultAadAppAndCertificate to set keyvault AAD App and certificate in container
Add parameter IncludeEmailAadApp to Create-AadAppsForBC to allow the function to create an Aad App for the new Email feature in 17.1
Run-AlPipeline support traefik containers in updatelaunchjson
Add preview function Publish-PerTenantExtensionApps to publish Per Tenant Extension Apps to an online tenant
Add preview function Publish-BuildOutputToStorage to publish build output to a storage account

1.0.10
Issue #1369 wrong validateset on tenant
Issue #1371 missing quotes on volume parameter
Check all countries when determining artifacts to use
Issue #1380 Import-TestToolkitToBcContainer fails when license warning occurs
Issue 1377 Sort-AppFoldersByDependencies didn't support empty arrays
Allow AppFiles to be an empty array in Sort-AppFilesByDependencies
Allow previousApps to be present locally (not downloaded from http or https)
Set default containername in New-BcContainerWizard to bcserver
Added function Run-ConnectionTestToBcContainer to test that a simple connection to the container is possible
Update hardcoded image version list
Update Windows Versions in New-BcImage
Issue #1392 New-BcContainerWizard closes if font size is too big
Issue #1384 Concurrency issues with artifacts

1.0.9
Fix issue when setting bccontainerhelperconfig.defaultnewcontainerparameters.credential in the same session as using it
Add parameter AllowAppDatabaseWrite to New-BcContainerTenant. Works with generic image 0.1.0.24 or later.
Merge AdditionalParameters and MyScripts with defaultNewContainerParameters config file settings
Add build number for Windows 10 20H2
Do not install the test toolkit before compiling test apps
Add 2 more overrides ImportTestToolkitToBcContainer and GetBcContainerAppInfo
Issue #1359 Allow apps to contain test code (but not for AppSource Apps or PTEs)
Add useGenericImage parameter to run-alpipeline
Issue #1364 country attribute needs to be case insensitive
Add parameter additionalCountries to allow Run-AlPipeline to test additional countries during the pipeline
Issue #1367 - If two processes build the same image at the same time, the second one always rebuilds

1.0.8
Issue #1329 test whether containername is in hsts preload list
Add function Sort-AppFilesByDependencies for sorting an array of app files by dependencies
Sort apps before install in Publish-BcContainerApp
Add PrevousApps, AppSourceCopMandatoryAffixes and AppSourceCopSupportedCountries to Run-AlPipeline
Move decision on whether or not to rebuild image from New-BcContainer to New-BcImage and always call
Add parameter -skipIfImageAlreadyExists to New-BcImage
Issue #1343 Publish-BcContainerApp with ShowMyCode fails if replaceDependencies is not Set
Add parameters appPublisher and language to Install-BcContainerApp
Add parameter appPublisher Sync-BcContainerApp
Issue #1337 Add tenant parameter to Install-TestToolkitToBcContainer
Add parameter description to Run-AlPipeline
Set JUnit as default output from Run-AlPipeline

1.0.7
Issue #1299 wait for symbol file to be available in container
Add parameter AssignPremiumPlan to Run-AlPipeline
Support reading defaultNewContainerParameters from config file
Add tenant to Run-AlPipeline to allow running the pipeline in a tenant
Add ability to override functions
Addiional fixes to Run-AlPipeline
Issue #1313 -includeAL fails when using a hostHelperFolder, which is different from the containerhelperfolder
Issue #1316 New-BcContainerWizard converts license file url to lowercase
Add support for JUnit to Run-Tests
Add parameter testResultsFormat to Run-AlPipeline
Do not fail on missing image in New-BcImage (only warn)
Add properties to JUnit output

1.0.6
Add 3 new values for Select: Current, NextMinor and NextMajor for selecting artifacts. SasToken needs to be provided for NextMajor and NextMinor
Publish-BcContainerApp now supports .zip files. All .app files in the .zip file are published in alphabetic order
Run-AlPipeline to add sequence numbers (dependencies) to apps in artifacts if more than one app is added

1.0.5
Added PREVIEW function Run-AlPipeline
Issue #1252 do not return artifact url for artifacts without platform (unless -doNotCheckPlatform is specified)
Issue #1263 new-bccontainertenant freezes if -updatehosts isn't specified
Add switch -includePerformanceToolkit to Import-TestToolkitToBcContainer and New-BcContainer
Support for -includePerformanceToolkit in New-BcContainerWizard
Support for insider builds and sasToken in New-BcContainerWizard
Add NAV to New-BcContainerWizard
Add AL Language Extension version selection to New-BcContainerWizard
Flush-ContainerHelperCache will remove images, which was built on artifacts, which is no longer in the cache

1.0.4
Sort-AppFoldersByDependencies doesn't support custom Application app (needs to be sorted first)
Add parameter -addFontsFromPath to New-BcContainer and New-BcImage
Increase performance of Add-FontsToBcContainer
Ensure that Import-TestToolkitToBcContainer can be called repeatedly
Include TestToolkit in cached image if possible
Add parameter -forceRebuild to New-NavContainer to force a rebuild of a cached image
Pull new generic if not at least 0.1.0.16 (to ensure download fixes)
Add/Remove hostnames for tenants to hosts file when multitenancy and -updatehosts
New-BcContainerWizard to support -includeAL and -multitenant
Added new function Set-BcContainerFeatureKeys to enable/disable feature keys in tenant databases
Add parameter -featureKeys to New-BcContainer to enable/disable feature keys in all tenants in new container
Issue #1243 - Get-BcContainerImageTags and Get-BcContainerImageLabels doesn't work if TLS 1.2 isn't enabled

1.0.3
Issue #1215 New-BcContainer with -useBestContainerOS and -useNewDatabase fails with multitenant sandbox images
Issue #1220 Generate-SymbolsInNavContainer.ps1 does not have BC alias
Fix missing pre-requisites

1.0.2
Issue #1202 New-BcContainer gives wrong message if no artifactUrl nor imagename is specified
Cleanup terminology
Issue #1203 Export-BcContainerObjects doesn't exist
Issue #1169 add parameter to Setup-BcContainerTestUsers to select which users to add (Essential or Premium) to avoid mixed plans
References to Get-BcContainerNavUser needs to be replaced with Get-BcContainerBcUser
Add SSL option for New-BcContainerWizard

1.0.1
Copy-FileToBcContainer and Copy-FileFromBcContainer didn't support that hostHelperFolder and containerHelperFolder was different
Get-TestsFromBcContainer and Run-TestsInBcContainer didn't support that hostHelperFolder and containerHelperFolder was different
Issue #1174 do not use hyperv isolation if Hyper-V isn't installed
Issue #1180 New-BcContainerWizard doesn't work (if BcContainerHelper is installed in standard path)
Change NavContainerhelper to BcContainerHelper in New-BcContainerWizard
Sandbox containers are multitenant by default (as SaaS is multitenant!)
Issue #1191 New-BcImage should add the same auto-tag as New-BcContainer
Issue #1190 New-BcImage will return imagename after generation
Issue #1195 New-BcContainer sometimes uses a different image than the one created

1.0.0
Change module name to BcContainerHelper
Support Multitenancy in images
Add hostHelperFolder and containerHelperFolder to containerhelper config file for override