Skip to content
| Marketplace
Sign in
Azure DevOps>Azure Pipelines>ALOps
ALOps

ALOps

Hodor NV

|
2,068 installs
| (5) | Paid
CI/CD Pipeline tools for building Business Central Apps
Get30 days free trial

ALOps

Welcome to ALOps, an extension for Microsoft Azure DevOps, for easily setting up build and release pipelines for AL Language Extensions, aka "Microsoft Dynamics 365 Business Central Extensions".

  • Pipeline Examples
  • Setup First Build
  • Troubleshooting

Complete documentation can be found our GitHub project.

Supported Environments

  • OnPrem

  • Docker (Self-Host Agent)

  • SaaS

    ALOps Tasks

    • ALOps AdminCenter API
    • Interact with BC SaaS AdminCenter API.
    • YAML Template:
          - task: ALOpsAdminCenterAPI@1
            displayName: 'ALOps AdminCenter API'
            inputs:
              azure_tenant_id:                      # Azure Tenant Id. Only required for BC SaaS $(azure_tenant_id)
              azure_app_client_id:                  # Azure AD Application Client Id. $(azure_app_client_id)
              azure_app_client_secret:              # Azure AD Application Client Secret. $(azure_app_client_secret)
              azure_app_client_certificate:         # Azure AD Application Client Certificate. $(azure_app_client_certificate)
              azure_app_client_certificate_password: # Azure AD Application Client Certificate Password. $(azure_app_client_certificate_password)
              username:                             # Business Central Username. Leave empty for Service-2-Service authentication. $(username)
              password:                             # Business Central User Password. Leave empty for Service-2-Service authentication. $(password)
              checksecondsdelay: 30                 # Seconds of delay betweel deployment status checks. $(checksecondsdelay)
              maxtries: 20                          # Max tries for status check. $(maxtries)
              interaction: environment_list         # Set Interaction to use. $(interaction)
              wait_for_operation: True              # Wait for operation. $(wait_for_operation)
              environment:                          # Source Environment. $(environment)
              target_environment:                   # Target Environment. $(target_environment)
              use_update_window: False              # Use update window. $(use_update_window)
              app_id:                               # App ID. $(app_id)
              accept_isv_eula: False                # Accept ISV Eula. $(accept_isv_eula)
              force_dependencies: False             # Force Dependencies. $(force_dependencies)
              confirm_delete_data: False            # Confirm Delete Data. $(confirm_delete_data)
      
  • ALOps Agent Maintenance

    • Cleanup and maintain DevOps a Agent for Business Central.
    • YAML Template:
          - task: ALOpsAgentMaintenance@1
            displayName: 'ALOps Agent Maintenance'
            inputs:
              removeoldtasks: False                 # Remove old ALOps tasks. $(removeoldtasks)
              removeunusedcontainers: False         # Force docker container pruning. $(removeunusedcontainers)
              pruneimagesdayscreated: 0             # Force docker image pruning based on creation date (x days). $(pruneimagesdayscreated)
              pruneimagesosbased: False             # Prune images based on old OS. $(pruneimagesosbased)
              removebcartifacts: False              # Remove BC Artifacts. $(removebcartifacts)
              bcartifactscachefolder: C:\bcartifacts.cache# Set non-default BC Artifact Cache folder. $(bcartifactscachefolder)
              daysunused: 30                        # Define date-range for cleanup BC-Artifacts. $(daysunused)
      
  • ALOps App License Check

    • Check App files agains a license.
    • YAML Template:
          - task: ALOpsAppLicenseCheck@1
            displayName: 'ALOps App License Check'
            inputs:
              usedocker: False                      # Run task in Docker container. $(usedocker)
              fixed_tag:                            # Allows recycling of docker containers. $(fixed_tag)
              licensefile:                          # Set the BC License File. Path or Url. $(licensefile)
              artifact_path: $(System.ArtifactsDirectory)# Path for App Artifact. $(artifact_path)
              artifact_filter: *.app                # Filter used for locating App file relative to $(artifact_path). $(artifact_filter)
              artifact_include:                     # Include-Filter used for locating App file relative to $(artifact_path). $(artifact_include)
              artifact_exclude:                     # Exclude-Filter used for locating App file relative to $(artifact_path). $(artifact_exclude)
              exclude_ranges:                       # Exclude-Ranges from LicenseCheck (Buffer / Tempory tables). Format: 60000..60099,70000..70100 $(exclude_ranges)
              expiry_text:                          # String to find in license to match for ExpiryDate. $(expiry_text)
              expiry_dateformat:                    # Date Format of the Expiry date, example: dd.MM.yyyy $(expiry_dateformat)
              expiry_dayswarning:                   # Amount of days before License-Expiry for triggering a warning $(expiry_dayswarning)
              exclude_tables: False                 # Exclude Table objects from LicenseCheck. $(exclude_tables)
              exclude_codeunits: False              # Exclude Codeunit objects from LicenseCheck. $(exclude_codeunits)
              exclude_pages: False                  # Exclude Page objects from LicenseCheck. $(exclude_pages)
              exclude_reports: False                # Exclude Report objects from LicenseCheck. $(exclude_reports)
              exclude_xmlports: False               # Exclude XMLPort objects from LicenseCheck. $(exclude_xmlports)
              exclude_queries: False                # Exclude Query objects from LicenseCheck. $(exclude_queries)
              warning_only: False                   # Only post warning, do not fail pipeline. $(warning_only)
              pwsh: False                           # Run task in Powershell Core. $(pwsh)
      
  • ALOps App Runtime Package

    • Get a NAV App runtime package for onprem deployment.
    • YAML Template:
          - task: ALOpsAppRuntimePackage@1
            displayName: 'ALOps App Runtime Package'
            inputs:
              usedocker: False                      # Run task in Docker container. $(usedocker)
              fixed_tag:                            # Allows recycling of docker containers. $(fixed_tag)
              nav_serverinstance: BC140             # Specifies the name of a Business Central Server instance. $(nav_serverinstance)
              nav_tenant: default                   # Specifies the ID of a specific tenant that you want to act on, such as Tenant1. $(nav_tenant)
              targetproject: ./app.json             # Path of the project to export as RuntimePackage. Must be a fully qualified path or relative to $(System.DefaultWorkingDirectory). $(targetproject)
              appfilenametemplate: %APP_PUBLISHER%_%APP_NAME%_%APP_VERSION%_runtime.app# Template for App filename. $(appfilenametemplate)
              showmycode: False                     # Overwrites the ShowMyCode value in the manifest. $(showmycode)
              publish_artifact: True                # Publish generated Runtime-App Artifact to DevOps. $(publish_artifact)
      
  • ALOps App Sign

    • Codesign Business Central extension with .pfx.
    • YAML Template:
          - task: ALOpsAppSign@1
            displayName: 'ALOps App Sign'
            inputs:
              signmethod: PFX                       # Set Signmethod to use. PFX is legacy, HSM is the modern way $(signmethod)
              usedocker: False                      # Run task in Docker container. $(usedocker)
              fixed_tag:                            # Allows recycling of docker containers. $(fixed_tag)
              batchsigncompiledapps: False          # Batch Sign Apps taged by ALOpsAppCompile task. $(batchsigncompiledapps)
              artifact_path:                        # Path for storing App Artifact. $(artifact_path)
              nav_artifact_app_filter: *.app        # Path of the App to Codesign. Must be a fully qualified path or relative to $(System.DefaultWorkingDirectory). $(nav_artifact_app_filter)
              publish_artifact: True                # Publish generated App Artifact to DevOps. $(publish_artifact)
              timestamp_uri:                        # Uri of the timestamp service used during signing. $(timestamp_uri)
              pfx_path:                             # Path or Url of the PFX file. $(pfx_path)
              pfx_password:                         # Password for the PFX File. Recommended to use Azure-KeyVault secrets. $(pfx_password)
              hsmmethod: KEYVAULT                   # Set HSM Signmethod to use. $(hsmmethod)
              hsm_description:                      # Set the Description. $(hsm_description)
              hsm_description_url:                  # Set the Description Url. $(hsm_description_url)
              hsm_digestalgorithm: sha256           # Set the Digest Algorithm. $(hsm_digestalgorithm)
              hsm_signing_endpoint:                 # Set the Trusted Signing Endpoint. $(hsm_signing_endpoint)
              hsm_signing_account:                  # Set the Trusted Signing Account. $(hsm_signing_account)
              hsm_trusted_certificateprofile:       # Set the Trusted Certificate Profile. $(hsm_trusted_certificateprofile)
              hsm_keyvault_name:                    # Set the KeyVault Name. $(hsm_keyvault_name)
              hsm_keyvault_certificate_name:        # Set the KeyVault Certificate Name. $(hsm_keyvault_certificate_name)
              hsm_tenantid:                         # Set the Tenant ID. $(hsm_tenantid)
              hsm_clientid:                         # Set the Client ID. $(hsm_clientid)
              hsm_client_secret:                    # Set the Client Secret. $(hsm_client_secret)
      
  • ALOps App Sign Verify

    • Verify CodeSign of Business Central extension.
    • YAML Template:
          - task: ALOpsAppSignVerify@1
            displayName: 'ALOps App Sign Verify'
            inputs:
              usedocker: False                      # Run task in Docker container. $(usedocker)
              fixed_tag:                            # Allows recycling of docker containers. $(fixed_tag)
              artifact_path:                        # Path for App Artifact. $(artifact_path)
              nav_artifact_app_filter: *.app        # Path of the App to verify. Must be a fully qualified path or relative to $(System.DefaultWorkingDirectory). $(nav_artifact_app_filter)
      
  • ALOps AppSource

    • Compile a Business Central extension from AL code.
    • YAML Template:
          - task: ALOpsAppSource@1
            displayName: 'ALOps AppSource'
            inputs:
              azure_tenant_id:                      # Azure Tenant Id. Only required for BC SaaS $(azure_tenant_id)
              azure_app_client_id:                  # Azure AD Application Client Id. $(azure_app_client_id)
              azure_app_client_secret:              # Azure AD Application Client Secret. $(azure_app_client_secret)
              autopromote: False                    # Auto Promote AppSource App after publish. $(autopromote)
              pwsh: False                           # Run task in Powershell Core. $(pwsh)
      
  • ALOps App Test

    • Run Business Central Test-Suite and collect results.
    • YAML Template:
          - task: ALOpsAppTest@1
            displayName: 'ALOps App Test'
            inputs:
              usedocker: False                      # Run task in Docker container. $(usedocker)
              fixed_tag:                            # Allows recycling of docker containers. $(fixed_tag)
              nav_serverinstance:                   # Business Central Server Instance Name. $(nav_serverinstance)
              tenant: default                       # Business Central Tenant. $(tenant)
              companyname:                          # Business Central Company. $(companyname)
              profile:                              # Business Central Profile. $(profile)
              bc_username:                          # BC Username for ServiceTier connection. $(bc_username)
              bc_password:                          # BC User Password for ServiceTier connection. $(bc_password)
              bc_authentication: NavUserPassword    # BC Authentication type of the ServiceTier. $(bc_authentication)
              bc_webclient_url:                     # BC WebClient Endpoint. $(bc_webclient_url)
              testfilter:                           # Filter codeunits to include in Test-Suite. $(testfilter)
              disabledtests:                        # Disabled Tests File. $(disabledtests)
              show_available_tests: True            # Show all available tests. $(show_available_tests)
              import_testtoolkit: True              # Import TestToolKit FOB. $(import_testtoolkit)
              import_action: Overwrite              # Import Action for importing Test-Suite FOB files. $(import_action)
              testpage: 130409                      # Set the PageId used for testing. $(testpage)
              testsuite: DEFAULT                    # Set target Test Suite to activate. $(testsuite)
              extensionid:                          # Set Extension ID. $(extensionid)
              installaltesttool: False              # Install the AL TestTool for v15. $(installaltesttool)
              failed_test_action: Warning           # Action to take when a Test failed. $(failed_test_action)
              override_finsql_path:                 # Overrule automatic detection of FinSql with fixed value. $(override_finsql_path)
              resultfilename: TestResults.xml       # Set filename for the Result XML. $(resultfilename)
              testrunnercodeunitid:                 # Set the Codeunit Id for the test-runner to use. $(testrunnercodeunitid)
              allow_zero_tests: False               # Allow Test-App with no tests $(allow_zero_tests)
      
  • ALOps App Validation

    • Validate App from Business Central AppSource.
    • YAML Template:
          - task: ALOpsAppValidation@1
            displayName: 'ALOps App Validation'
            inputs:
              license_path:                         # Path of the FLF license to import. Must be a fully qualified path or relative to $(System.DefaultWorkingDirectory) or a downloadable Url. $(license_path)
              countries:                            # Comma seperated array of countries to validate. When blank SupportedCountries value from AppSourceCop.json is used. $(countries)
              affixes:                              # Comma seperated array of affixes. $(affixes)
              artifact_path: $(System.ArtifactsDirectory)# Path for App Artifact(s). $(artifact_path)
              artifact_filter: *.app                # Filter used for locating App file relative to $(artifact_path). $(artifact_filter)
              installapps_path: $(System.ArtifactsDirectory)# Path for InstallApps Artifact(s). $(installapps_path)
              installapps_filter: *.app             # Filter used for locating App file relative to $(installapps_path). $(installapps_filter)
              previousapps_path: $(System.ArtifactsDirectory)# Path for PreviousApps Artifact(s). $(previousapps_path)
              previousapps_filter: *.app            # Filter used for locating App file relative to $(previousapps_path). $(previousapps_filter)
              memory: 8G                            # Set maximum memory for Container. $(memory)
              validateversion:                      # Full or partial version number. If specified, apps will also be validated against this version. $(validateversion)
              validatecurrent: False                # Validate against current version of Business Central. $(validatecurrent)
              validatenextminor: False              # Validate against Next Minor version of Business Central. $(validatenextminor)
              validatenextmajor: False              # Validate against Next Major version of Business Central. $(validatenextmajor)
              sastoken:                             # SAS Token used to access Storage Account. $(sastoken)
              skipverification: False               #  $(skipverification)
              skipappsourcecop: False               #  $(skipappsourcecop)
              includewarnings: False                # Include this switch if you want to include Warnings. $(includewarnings)
              failonerror: True                     # Include this switch if you want to fail on the first error instead of returning all errors to the caller. $(failonerror)
              containername: bcserver               # Only required when running multiple DevOps Agents on the same server. (Not recommended) $(containername)
              accept_insider_eula: False            # Accept Insider EULA. $(accept_insider_eula)
      
  • ALOps BCPT

    • Run Business Central BCPT-Suite and collect results.
    • YAML Template:
          - task: ALOpsBCPT@1
            displayName: 'ALOps BCPT'
            inputs:
              usedocker: False                      # Run task in Docker container. $(usedocker)
              fixed_tag:                            # Allows recycling of docker containers. $(fixed_tag)
              export_results: False                 # Export BCPT Results. $(export_results)
              suite_code:                           # BCPT Suite to run. $(suite_code)
              test_runner_page: 149002              # BCPT Page to run. $(test_runner_page)
      
  • ALOps BC Replay

    • Run BC-Replay for Business Central.
    • YAML Template:
          - task: ALOpsBCReplay@1
            displayName: 'ALOps BC Replay'
            inputs:
              usedocker: False                      # Run task in Docker container. $(usedocker)
              fixed_tag:                            # Allows recycling of docker containers. $(fixed_tag)
              pwsh: True                            # Run task in Powershell Core. $(pwsh)
      
  • ALOps App Cleaner

    • Remove all extensions from Business Central service tier.
    • YAML Template:
          - task: ALOpsAppClean@1
            displayName: 'ALOps App Cleaner'
            inputs:
              usedocker: False                      # Run task in Docker container. $(usedocker)
              fixed_tag:                            # Allows recycling of docker containers. $(fixed_tag)
              nav_computername: localhost           # Target Business Central Server running service tier. $(nav_computername)
              nav_serverinstance: BC140             # Business Central Server Instance Name. $(nav_serverinstance)
              sync_mode: Add                        # Mode for synchronizing Business Central extensions. $(sync_mode)
              includemicrosoftapps: False           # Include Microsoft Apps. $(includemicrosoftapps)
      
  • ALOps App Copy

    • Copy Business Central extensions from one service tier to another.
    • YAML Template:
          - task: ALOpsAppCopy@1
            displayName: 'ALOps App Copy'
            inputs:
              nav_computername: localhost           # Target Business Central Server running service tier. $(nav_computername)
              nav_serverinstance_source: BC140      # Source Business Central service tier to copy from. $(nav_serverinstance_source)
              nav_serverinstance_target: BC140      # Target Business Central service tier to copy to. $(nav_serverinstance_target)
              nav_app_storage:                      # Path used for temporary extension storage. $(nav_app_storage)
      
  • ALOps App Compiler

    • Compile a Business Central extension from AL code.
    • YAML Template:
          - task: ALOpsAppCompiler@1
            displayName: 'ALOps App Compiler'
            inputs:
              usedocker: False                      # Run task in Docker container. $(usedocker)
              fixed_tag:                            # Allows recycling of docker containers. $(fixed_tag)
              targetproject: ./app.json             # Path of the project to compile. Must be a fully qualified path or relative to $(System.DefaultWorkingDirectory). $(targetproject)
              nav_computername:                     # Target Business Central Server running service tier. $(nav_computername)
              nav_serverinstance: BC140             # Business Central Server Instance Name. $(nav_serverinstance)
              nav_tenant: default                   # NAV Tenant used for symbols and compiling the app. $(nav_tenant)
              nav_ports_dev: 7049                   # NAV Port used for DEV-Service. $(nav_ports_dev)
              bc_username:                          # BC Username for ServiceTier connection. $(bc_username)
              bc_password:                          # BC User Password for ServiceTier connection. $(bc_password)
              al_compiler_version: 0.12.15355       # AL Compiler version used for compiling. $(al_compiler_version)
              ruleset:                              # Overrule the Ruleset from VSCode settings. Path relative to [alsourcepath] $(ruleset)
              suppresswarnings: KEEP                # Overrule the 'suppresswarnings' setting. $(suppresswarnings)
              al_analyzer:                          # AL Analyzer(s) used for compiling. (Example: CodeCop,UICop) $(al_analyzer)
              ignorepragmas:                        # Report Suppressed Diagnostics: diagnostics suppressed in source code should be emitted. $(ignorepragmas)
              nav_app_version: 1.0.*.0              # Template for versioning NAV-Apps. '*' is replaced by the current Build Number. $(nav_app_version)
              vsix_download_path:                   # Alternative VSIX download url. 'Latest' can be specified. $(vsix_download_path)
              use_ssl: False                        # Use SSL for Business Central connections. $(use_ssl)
              download_test_symbols: False          # Download Test Symbols explicitly (without Test-Version reference in App.json). $(download_test_symbols)
              usecompression: True                  # Compress Source-Folder for transfer to docker container. $(usecompression)
              publish_artifact: True                # Publish generated App Artifact to DevOps. $(publish_artifact)
              publishxlif: False                    # Publish generated XLIF to DevOps. $(publishxlif)
              failed_on_warnings: False             # Fail task when any warning occurs. $(failed_on_warnings)
              failonany: False                      # Fail task when any message occurs. $(failonany)
              app_file_suffix:                      # Set a suffix tag on the compiled App filename. $(app_file_suffix)
              updatebuildnumber: True               # Update the Build number with the current version. $(updatebuildnumber)
              setup_working_folder: False           # Copy working folder to Docker container. $(setup_working_folder)
              showmycode: Keep                      # Overrule ShowMyCode by setting other option than 'Keep'. $(showmycode)
              resourceexposurepolicy_allowdebugging: Keep# Overrule allowDebugging by setting other option than 'Keep'. $(resourceexposurepolicy_allowdebugging)
              resourceexposurepolicy_allowdownloadingsource: Keep# Overrule allowDownloadingSource by setting other option than 'Keep'. $(resourceexposurepolicy_allowdownloadingsource)
              resourceexposurepolicy_includesourceinsymbolfile: Keep# Overrule includeSourceInSymbolFile by setting other option than 'Keep'. $(resourceexposurepolicy_includesourceinsymbolfile)
              internalsvisibleto: Keep              # Remove internalsVisibleTo by setting other option than 'Keep'. $(internalsvisibleto)
              preprocessorsymbols:                  # Overwrite the preprocessorSymbols in app.json, comma seperated string. Set to 'NONE' to remove. $(preprocessorsymbols)
              applicationinsightskey:               # Overwrite the ApplicationInsightsKey in app.json. Set to 'NONE' to remove InsightsKey. $(applicationinsightskey)
              printappmanifest: True                # Print the final app.json before compile. $(printappmanifest)
              output_alc_logs: True                 # Output ALC logs. $(output_alc_logs)
              additionalprobingpaths:               # Add additional Assembly probing Paths. $(additionalprobingpaths)
              enable_external_rulesets: False       # Enable External Rulesets. $(enable_external_rulesets)
              allowed_publisher_names:              # Allowed Publisher names. $(allowed_publisher_names)
              allowed_publisher_names_separator: ,  # Allowed Publisher names Separator. $(allowed_publisher_names_separator)
              generatereportlayouts: True           # Set Generate Report Layouts compiler option. $(generatereportlayouts)
              pwsh: False                           # Run task in Powershell Core. $(pwsh)
      
  • ALOps Docker Create

    • Create Docker image based on NAV/BC Artifacts.
    • YAML Template:
          - task: ALOpsDockerCreate@1
            displayName: 'ALOps Docker Create'
            inputs:
              artifactspecification: Specific       # Set Artifact resolve method. $(artifactspecification)
              artifactversion:                      # BC/NAV Version, eg: 9, 10.4, NAV2016, 16.4.24524. $(artifactversion)
              artifacttype: OnPrem                  # Set Artifact Type. $(artifacttype)
              artifactcountry:                      # The Country for the Artifact. $(artifactcountry)
              versionselect: Latest                 # The version to be selected from the Artifacts. $(versionselect)
              artifacthint:                         # . $(artifacthint)
              multitenant: False                    # Create a Multi-Tenant image. $(multitenant)
              memory: 8G                            # Set maximum memory for Container. $(memory)
              imageprefix: myImage                  # New image name, tag defined by $(imagenametemplate). $(imageprefix)
              dockerregistry:                       # Docker registry Pull/Push, example: 'bcinsider.azurecr.io', or 'repo.mydomain.com' $(dockerregistry)
              dockerusername:                       # Docker login username. $(dockerusername)
              dockerpassword:                       # Docker login password. $(dockerpassword)
              storageaccount:                       # Non Default Storage Account. $(storageaccount)
              sastoken:                             # SAS Token used to access Storage Account. $(sastoken)
              forcecreateimage: False               # Forces image creation, skipping Pull image. $(forcecreateimage)
              myscripts:                            # Specify myScripts to be added to the image. $(myscripts)
              imagenametemplate: %IMAGE_PREFIX%:%ARTIFACT_TYPE%-%ARTIFACT_VERSION%-%ARTIFACT_COUNTRY%-%OS_VERSION%-%OS_LTSC%# Template for defining Image names or using a fixed name $(imagenametemplate)
              use_generic_image:                    # The base image to use for Image creation. $(use_generic_image)
              licensefile:                          # BC License File to be included in the Image $(licensefile)
              includetesttoolkit: False             # Included the TestToolkit in created image. $(includetesttoolkit)
              includetestlibrariesonly: False       # Included only the Test-Libraries in created image. $(includetestlibrariesonly)
              includetestframeworkonly: False       # Included only the Test-Framework in created image. $(includetestframeworkonly)
              includeperformancetoolkit: False      # Include Performance-Toolkit in created image. $(includeperformancetoolkit)
              accept_insider_eula: False            # Accept Insider EULA. $(accept_insider_eula)
              alternativeartifacturl:               # Overrule the ArtifactUrl which would be determined by [artifacttype/artifactcountry/versionselect]. $(alternativeartifacturl)
      
  • ALOps Docker Execute

    • Execute powershell script in container.
    • YAML Template:
          - task: ALOpsDockerExec@1
            displayName: 'ALOps Docker Execute'
            inputs:
              fixed_tag:                            # Allows recycling of docker containers. $(fixed_tag)
              scriptsource: InLine                  # Set type for requiring the script. $(scriptsource)
              script_location:                      # Location of the script to fetch. $(script_location)
              inline_script: # Write your powershell commands here.
      Write-Host "Hello World"
      # Inline Powershell Script. $(inline_script)
      
  • ALOps Docker Remove

    • Remove Business Central docker container.
    • YAML Template:
          - task: ALOpsDockerRemove@1
            displayName: 'ALOps Docker Remove'
            inputs:
              usedocker: True                       # Run task in Docker container. $(usedocker)
              fixed_tag:                            # Allows recycling of docker containers. $(fixed_tag)
              print_logs: True                      # Print all container logs before remove. $(print_logs)
              createeventlogbackup: disabled        # Create EventLog Backup from Container. $(createeventlogbackup)
              createsqlbackup: disabled             # Create SQL Backup from Container Database. $(createsqlbackup)
              publishsqlbackup: True                # Published the SQL Backup as Build-Artifact. $(publishsqlbackup)
              sqlcompression: False                 # Create Compressed SQL Backup (does not work on SQL-Express). $(sqlcompression)
              zipsqlbackup: True                    # ZIP the SQL Backup. $(zipsqlbackup)
      
  • ALOps Docker Start

    • Start Business Central docker container.
    • YAML Template:
          - task: ALOpsDockerStart@1
            displayName: 'ALOps Docker Start'
            inputs:
              fixed_tag:                            # Allows recycling of docker containers. $(fixed_tag)
              ignore_no_container_warning: False    # Do not trigger warning when container with [fixed_tag] is not found. $(ignore_no_container_warning)
              docker_image: $(ALOPS_BC_IMAGE)       # Business Central docker Image to Start. $(docker_image)
              accept_image_eula: True               # Accept Eula of docker image. $(accept_image_eula)
              accept_image_outdated: True           # Accept Outdated image. $(accept_image_outdated)
              enable_symbol_loading: False          # Enable Symbol Loading. $(enable_symbol_loading)
              enable_api_services: False            # Enable API Services. $(enable_api_services)
              multitenant: False                    # Create a Multi-Tenant container. $(multitenant)
              docker_pull: True                     # Force Pull docker image. $(docker_pull)
              dockerauthentication: None            # Set authentication Method to use. $(dockerauthentication)
              docker_login:                         # Select the generic login to use for docker. If needed, click on 'manage', and add a new Service Endpoint of type 'Generic' $(docker_login)
              docker_username:                      # Docker login username. $(docker_username)
              docker_password:                      # Docker login password. $(docker_password)
              docker_registry:                      # Docker registry for login, example: 'bcinsider.azurecr.io' $(docker_registry)
              memory_gb: -1                         # Set maximum memory for container in GB. $(memory_gb)
              container_restart: no                 # Set docker container restart preference. $(container_restart)
              licensefile:                          # Set the BC License File. Path or Url. $(licensefile)
              docker_parameters:                    # Specify additional docker parameters. $(docker_parameters)
              sql_server:                           # External SQL Server. $(sql_server)
              sql_server_instance:                  # External SQL Server Instance. $(sql_server_instance)
              sql_database:                         # External SQL Database. $(sql_database)
              sql_database_user:                    # External SQL Database User. $(sql_database_user)
              sql_database_user_password:           # External SQL Database Password. $(sql_database_user_password)
              sql_backup_file:                      # Restore BAK file on startup. $(sql_backup_file)
              encryption_key:                       # Encryption key for Service Tier. $(encryption_key)
              taskscheduler: Keep                   # Overrule EnableTaskScheduler by setting other option than 'Keep'. $(taskscheduler)
      
  • ALOps Docker Wait

    • Wait until the Business Central container is started.
    • YAML Template:
          - task: ALOpsDockerWait@1
            displayName: 'ALOps Docker Wait'
            inputs:
              fixed_tag:                            # Allows recycling of docker containers. $(fixed_tag)
              search_string: Ready for connections! # String to match in Docker Logs and return. $(search_string)
              warning_string:                       # Show as Warning when the container logs contain the warning string. $(warning_string)
              error_string:                         # Throw error when the container logs contain the error string. $(error_string)
              setup_working_folder: True            # Copy working folder to Docker container. $(setup_working_folder)
              usecompression: True                  # Compress Source-Folder for transfer to docker container. $(usecompression)
              printlogs: True                       # Print all container logs. $(printlogs)
              exclude_git_folder: False             # Exclude .git Folder $(exclude_git_folder)
      
  • ALOps Extension API

    • Get/Publish extensions with the Business Central API.
    • YAML Template:
          - task: ALOpsExtensionAPI@1
            displayName: 'ALOps Extension API'
            inputs:
              usedocker: False                      # Run task in Docker container. $(usedocker)
              fixed_tag:                            # Allows recycling of docker containers. $(fixed_tag)
              interaction: get                      # Set Interaction Method to use. (Get/Publish/Batch Publish). $(interaction)
              api_endpoint: https://api.businesscentral.dynamics.com/v2.0/$(azure_tenant_id)/Sandbox/api# Set API Endpoint. (protocol://host:port/serverinstance/api) $(api_endpoint)
              dev_endpoint:                         # Set DEV Endpoint. (protocol://host:port/serverinstance/dev) $(dev_endpoint)
              dev_schemeupdatemode: synchronize     # Set Schema Update Mode to use with DEVPort deploy. (synchronize/recreate/forcesync) $(dev_schemeupdatemode)
              dev_dependencypublishingoption: none  # Set Dependency Publishing Option for DEV Endpoint. $(dev_dependencypublishingoption)
              apiversion: v1.0                      # Version of the API to use (beta / v1.0 / v2.0) $(apiversion)
              authentication: oauth                 # Set authentication Method to use. Default [Windows]. $(authentication)
              azure_tenant_id:                      # Azure Tenant Id. Only required for BC SaaS $(azure_tenant_id)
              azure_app_client_id:                  # Azure AD Application Client Id. $(azure_app_client_id)
              azure_app_client_secret:              # Azure AD Application Client Secret. $(azure_app_client_secret)
              azure_app_client_certificate:         # Azure AD Application Client Certificate. $(azure_app_client_certificate)
              azure_app_client_certificate_password: # Azure AD Application Client Certificate Password. $(azure_app_client_certificate_password)
              username:                             # Business Central Username. Leave empty for Service-2-Service authentication. $(username)
              password:                             # Business Central User Password. Leave empty for Service-2-Service authentication. $(password)
              bccompany:                            # Business Central Company (Id or Name). $(bccompany)
              artifact_path: $(System.ArtifactsDirectory)# Path for App Artifact. $(artifact_path)
              artifact_filter: *.app                # Filter used for locating App file relative to $(path_to_publish). $(artifact_filter)
              showdeploymentstatus: True            # Show Extension Deployment Status. $(showdeploymentstatus)
              vsix_only: False                      # Only use VSIX, do not use BC-Artifacts. $(vsix_only)
              checksecondsdelay: 30                 # Seconds of delay betweel deployment status checks. $(checksecondsdelay)
              maxtries: 20                          # Max tries for status check. $(maxtries)
              replacepackageid: False               # Force a new PackageID for each deployment. $(replacepackageid)
              blocksymbolsonly: False               # Check App, block if SymbolsOnly App. $(blocksymbolsonly)
              schedule: current                     # Set the Schedule. Requires API Version 2.0 $(schedule)
              schema_sync_mode: add                 # Set the Schema Update Mode. Requires API Version 2.0 $(schema_sync_mode)
              pwsh: False                           # Run task in Powershell Core. $(pwsh)
      
  • ALOps Import FOB

    • Import objects from .FOB file.
    • YAML Template:
          - task: ALOpsFobImport@1
            displayName: 'ALOps Import FOB'
            inputs:
              usedocker: False                      # Run task in Docker container. $(usedocker)
              fixed_tag:                            # Allows recycling of docker containers. $(fixed_tag)
              nav_serverinstance: BC140             # Business Central Server Instance Name. $(nav_serverinstance)
              filePath:                             # Path of the FOB to import. Must be a fully qualified path or relative to $(System.DefaultWorkingDirectory). $(filePath)
              import_action: Default                # Import action for importing FOB files. $(import_action)
              synchronize_schema_changes: Yes       # Synchronize Schema Changes setting for importing FOB files. $(synchronize_schema_changes)
              generate_symbol_reference: False      # Enable Generate Symbol References. $(generate_symbol_reference)
              force_full_generate_symbol_reference: False# Generate Symbol Reference for All Objects. $(force_full_generate_symbol_reference)
              override_finsql_path:                 # Overrule automatic detection of FinSql with fixed value. $(override_finsql_path)
      
  • ALOps Info

    • Print information about ALOps and executing host.
    • YAML Template:
          - task: ALOpsInfo@1
            displayName: 'ALOps Info'
            inputs:
              scanforsymbolonlyapps: Disabled       # Scan for SymbolOnly Apps. $(scanforsymbolonlyapps)
              pwsh: False                           # Run task in Powershell Core. $(pwsh)
      
  • ALOps License Import

    • Import Business Central license (.flf).
    • YAML Template:
          - task: ALOpsLicenseImport@1
            displayName: 'ALOps License Import'
            inputs:
              usedocker: False                      # Run task in Docker container. $(usedocker)
              fixed_tag:                            # Allows recycling of docker containers. $(fixed_tag)
              nav_serverinstance: BC140             # Business Central Server Instance Name. $(nav_serverinstance)
              license_path:                         # Path of the FLF license to import. Must be a fully qualified path or relative to $(System.DefaultWorkingDirectory) or a downloadable Url. $(license_path)
              remove_license_file: True             # Remove license file after import. $(remove_license_file)
              print_license_info: False             # Set if License is printed into the pipeline. $(print_license_info)
              license_scope: Default                # Set the scope for license upload. $(license_scope)
      
  • ALOps OpenAPI

    • Generate OpenAPI descriptions from Business Central API's.
    • YAML Template:
          - task: ALOpsOpenAPI@1
            displayName: 'ALOps OpenAPI'
            inputs:
              usedocker: False                      # Run task in Docker container. $(usedocker)
              fixed_tag:                            # Allows recycling of docker containers. $(fixed_tag)
              api_endpoint: https://api.businesscentral.dynamics.com/v2.0/$(azure_tenant_id)/Sandbox/api# Set API Endpoint. (protocol://host:port/serverinstance/api) $(api_endpoint)
              authentication: oauth                 # Set authentication Method to use. Default [Windows]. $(authentication)
              azure_tenant_id:                      # Azure Tenant Id. Only required for BC SaaS $(azure_tenant_id)
              azure_app_client_id:                  # Azure AD Application Client Id. $(azure_app_client_id)
              azure_app_client_secret:              # Azure AD Application Client Secret. $(azure_app_client_secret)
              azure_app_client_certificate:         # Azure AD Application Client Certificate. $(azure_app_client_certificate)
              azure_app_client_certificate_password: # Azure AD Application Client Certificate Password. $(azure_app_client_certificate_password)
              username:                             # Business Central Username. Leave empty for Service-2-Service authentication. $(username)
              password:                             # Business Central User Password. Leave empty for Service-2-Service authentication. $(password)
              publish_artifacts: True               # Publish results as Artifacts. $(publish_artifacts)
              discover: True                        # Discover available API routes. $(discover)
              api_routes:                           # Specify API Routes to convert. Multiline or '|' seperated. $(api_routes)
              api_exclude_routes:                   # Specify API Routes to exclude from discovery. Multiline or '|' seperated. $(api_exclude_routes)
              inspect_paths: False                  # Print all available Paths per Route. $(inspect_paths)
              api_servers:                          # Specify available servers for OpenAPI. Multiline or '|' seperated. $(api_servers)
              export_edmx: False                    # Export original API EDMX. $(export_edmx)
              export_yaml: True                     # Export API in YAML format. $(export_yaml)
              export_json: False                    # Export API in JSON format. $(export_json)
              exclude_company_paths: False          # Exclude Company Paths. $(exclude_company_paths)
      
  • ALOps Package Import

    • Import and Process RapidStart/Configuration Package
    • YAML Template:
          - task: ALOpsPackageImport@1
            displayName: 'ALOps Package Import'
            inputs:
              usedocker: True                       # Run task in Docker container. $(usedocker)
              fixed_tag:                            # Allows recycling of docker containers. $(fixed_tag)
              company_name:                         # Company name for Package import. $(company_name)
      
  • ALOps App Publish

    • Publish Business Central extension to service tier.
    • YAML Template:
          - task: ALOpsAppPublish@1
            displayName: 'ALOps App Publish'
            inputs:
              usedocker: False                      # Run task in Docker container. $(usedocker)
              fixed_tag:                            # Allows recycling of docker containers. $(fixed_tag)
              installpublishedapps: True            # Install Published Applications. $(installpublishedapps)
              installaltesttool: False              # Install the AL TestTool for v15. $(installaltesttool)
              install_al_app_names: Tests-TestLibraries
      System Application Test
      System Application Test Library
      Any
      Library Assert
      Test Runner
      # Specify additional docker parameters. $(install_al_app_names)
              strictappnames: False                 # Only install Specified Apps. $(strictappnames)
              nav_serverinstance: BC140             # Business Central Server Instance Name. $(nav_serverinstance)
              artifact_path:                        # Path for storing App Artifact. $(artifact_path)
              nav_artifact_app_filter: *.app        # Filter used for locating App file relative to $(path_to_publish). $(nav_artifact_app_filter)
              skip_verification: True               # Skip CodeSign Verification of Business Central App. $(skip_verification)
              forceinstall: False                   # Always install Apps regards of current state. $(forceinstall)
              forcesync: False                      # Sets the Sync-Mode to Force, enables pushing breaking changes. $(forcesync)
              publish_scope: Global                 # Set the scope for publishing extensions. $(publish_scope)
              tenant: default                       # Tenant to publish to when Scope is set to Tenant. $(tenant)
              batch_publish_folder:                 # Path containing Apps to publish. $(batch_publish_folder)
              publisherazureactivedirectorytenantid: # Publisher Azure AD TenantId. $(publisherazureactivedirectorytenantid)
              blocksymbolsonly: False               # Check App, block if SymbolsOnly App. $(blocksymbolsonly)
              pwsh: False                           # Run task in Powershell Core. $(pwsh)
      
  • ALOps Repository Publish Extension

    • Publish extension to ALOps Repository.
    • YAML Template:
          - task: ALOpsRepositoryPublish@1
            displayName: 'ALOps Repository Publish Extension'
            inputs:
              usedocker: False                      # Run task in Docker container. $(usedocker)
              fixed_tag:                            # Allows recycling of docker containers. $(fixed_tag)
              alops_repository_endpoint: api.businesscentral.dynamics.com# Azure API Endpoint. $(alops_repository_endpoint)
              alops_repository_username:            # Username for ALOps API Endpoint. $(alops_repository_username)
              alops_repository_password:            # Password for ALOps API Endpoint. $(alops_repository_password)
              artifact_path:                        # Path for App Artifact. $(artifact_path)
              app_artifact_filter: *.app            # Path of the App to publish. Must be a fully qualified path or relative to $(System.DefaultWorkingDirectory). $(app_artifact_filter)
              upload_c_applications: False          # Upload Applications from Applications folder. $(upload_c_applications)
              pwsh: False                           # Run task in Powershell Core. $(pwsh)
      
  • ALOps SaaS Get Extensions

    • Replaced by Task [ALOps Extension API]
    • YAML Template:
          - task: ALOpsSaaSGetExtensions@1
            displayName: 'ALOps SaaS Get Extensions'
            inputs:
              azure_api_endpoint: api.businesscentral.dynamics.com# Azure API Endpoint. $(azure_api_endpoint)
              azure_api_version: v2.0               # Azure API Endpoint version. $(azure_api_version)
              azure_tenant_id:                      # Azure Tenant Id. $(azure_tenant_id)
              azure_app_client_id:                  # Azure AD Application Client Id. $(azure_app_client_id)
              azure_app_client_secret:              # Azure AD Application Client Secret. $(azure_app_client_secret)
              bc_impersonate_user:                  # Business Central User to impersonate. $(bc_impersonate_user)
              bc_impersonate_password:              # Business Central User Password to impersonate. $(bc_impersonate_password)
              bc_environment: sandbox               # Business Central environment to publish extension on. $(bc_environment)
              bc_companyname:                       # Business Central Company. $(bc_companyname)
      
  • ALOps SaaS Publish Extension

    • Replaced by Task [ALOps Extension API]
    • YAML Template:
          - task: ALOpsSaaSPublishExtension@1
            displayName: 'ALOps SaaS Publish Extension'
            inputs:
              azure_api_endpoint: api.businesscentral.dynamics.com# Azure API Endpoint. $(azure_api_endpoint)
              azure_api_version: v2.0               # Azure API Endpoint version. $(azure_api_version)
              azure_tenant_id:                      # Azure Tenant Id. $(azure_tenant_id)
              azure_app_client_id:                  # Azure AD Application Client Id. $(azure_app_client_id)
              azure_app_client_secret:              # Azure AD Application Client Secret. $(azure_app_client_secret)
              bc_impersonate_user:                  # Business Central User to impersonate. $(bc_impersonate_user)
              bc_impersonate_password:              # Business Central User Password to impersonate. $(bc_impersonate_password)
              bc_environment: sandbox               # Business Central environment to publish extension on. $(bc_environment)
              bc_companyname:                       # Business Central Company. $(bc_companyname)
              artifact_path:                        # Path for App Artifact. $(artifact_path)
              app_artifact_filter: *.app            # Filter used for locating App file relative to $(path_to_publish). $(app_artifact_filter)
      

More Information about Microsoft Dynamics 365 Business Central

Here is some more information about Microsoft Dynamics 365 Business Central

  • The official homepage
  • Microsoft Docs
  • Customizing Business Central Using Extensions

More Information about Microsoft Azure Pipelines

  • Azure Pipelines
  • Azure Pipelines - Build
  • Azure Pipelines - Release
  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2025 Microsoft