Skip to content

ALOps Admin Center API

Interact with the Business Central SaaS Admin Center API for environment and app management.

Property Value
Task name (Azure DevOps) ALOpsAdminCenterAPI@3
Action name (GitHub) alops-admincenterapi
Version 3.0.0
Category Utility
OS requirement Both
Preview yes

Interact with the Business Central SaaS Admin Center API. Supports environment management (list, get, copy, delete, rename), app lifecycle (install, uninstall, update), and configuration (Application Insights key, security group). Authenticates via OAuth2 client credentials, client certificate, or user impersonation.

Inputs

authentication

Name Type Required Default Platform Description
azure_tenant_id Text no (empty) Both Azure Active Directory tenant ID (GUID or domain) of the Microsoft 365 or Entra ID tenant. Required for all SaaS cloud interactions.
azure_app_client_id Text no (empty) Both Application (client) ID of the Azure AD app registration used for authentication against the Admin Center API.
azure_app_client_secret Secret no (empty) Both Client secret of the Azure AD app registration. Store this value in a pipeline secret variable or Azure Key Vault, never in plain text.
azure_app_client_certificate Text no (empty) Both Path, base-64 encoded content, or certificate store reference (CERT:...) of the certificate (.pfx) used instead of a client secret for Azure AD app authentication.
azure_app_client_certificate_password Secret no (empty) Both Password protecting the client certificate. Store this in a pipeline secret variable.
username Text no (empty) Both Business Central user account name. Leave empty when using Service-to-Service (app-only) OAuth authentication.
password Secret no (empty) Both Password for the Business Central user account. Leave empty for Service-to-Service authentication. Store this in a pipeline secret variable.

polling

Name Type Required Default Platform Description
checksecondsdelay Text no 30 Both Number of seconds to wait between polls when checking the status of an async operation. Increase this for slower environments.
maxtries Text no 20 Both Maximum number of status-check attempts before the task times out and fails. Multiply by Check Delay to calculate the total maximum wait time.

operation

Name Type Required Default Platform Description
interaction PickList yes environment_list Both Admin Center API operation to execute: environment_list or environment_get reads environment info; environment_copy or environment_rename manages environments; app_install, app_uninstall, or app_update manages extensions; set_application_insightskey or set_security_group applies configuration. Options: environment_list, environment_get, environment_delete, environment_copy, environment_rename, app_installed_list, app_install, app_uninstall, app_update, set_application_insightskey, set_security_group.
wait_for_operation Boolean no true Both When enabled, the task polls the Admin Center API until the async operation completes or the maximum number of tries is reached. Disable to fire-and-forget.
environment Text no (empty) Both Name of the source Business Central environment to act on, for example Sandbox or Production.
target_environment Text no (empty) Both Name of the target environment used for copy or rename operations.
target_environment_type PickList no Sandbox Both Type of the new environment created during a copy operation. Sandbox environments allow developer access; Production environments are for live business data. Options: Sandbox, Production.
application_insightskey Text no (empty) Both Azure Application Insights instrumentation key (GUID) to configure on the Business Central environment for telemetry. Used with the set_application_insightskey interaction.
security_group_id Text no (empty) Both Azure AD security group object ID to assign to the Business Central environment for access control. Used with the set_security_group interaction.

app_management

Name Type Required Default Platform Description
app_id Text no (empty) Both GUID of the Business Central extension to install, uninstall, or update. Find this value in the app.json of the extension or in the AppSource listing.
use_update_window Boolean no false Both When enabled, the app install or update is scheduled within the Admin Center maintenance window instead of running immediately.
accept_isv_eula Boolean no false Both Required to install ISV apps that carry an end-user license agreement. Set this to true to accept the EULA programmatically.
force_dependencies Boolean no false Both Force the installation or update of all dependent extensions together with the target app, even if they are already installed at a lower version.
confirm_delete_data Boolean no false Both Required when uninstalling an extension that has stored data in Business Central. Set this to true to confirm that stored data will be permanently deleted.

Outputs

Name Description
ALOPS_BCSAASENV_NAME Environment name.
ALOPS_BCSAASENV_TYPE Environment type (Sandbox or Production).
ALOPS_BCSAASENV_COUNTRY Environment country code.
ALOPS_BCSAASENV_APPLICATION Environment application version.
ALOPS_BCSAASENV_PLATFORM Environment platform version.
ALOPS_BCSAASENV_INSIGHTKEY Environment Application Insights instrumentation key.
ALOPS_BCSAASENV_LOCATION Environment location name.

Usage

- task: ALOpsAdminCenterAPI@3
  displayName: 'ALOps Admin Center API'
  inputs:
    azure_tenant_id:                         # Azure Active Directory tenant ID (GUID or domain) of the Microsoft 365 or Entra ID tenant. Required for all SaaS cloud interactions. $(azure_tenant_id)
    azure_app_client_id:                     # Application (client) ID of the Azure AD app registration used for authentication against the Admin Center API. $(azure_app_client_id)
    azure_app_client_secret:                 # Client secret of the Azure AD app registration. Store this value in a pipeline secret variable or Azure Key Vault, never in plain text. $(azure_app_client_secret)
    azure_app_client_certificate:            # Path, base-64 encoded content, or certificate store reference (CERT:\...) of the certificate (.pfx) used instead of a client secret for Azure AD app authentication. $(azure_app_client_certificate)
    azure_app_client_certificate_password:   # Password protecting the client certificate. Store this in a pipeline secret variable. $(azure_app_client_certificate_password)
    username:                                # Business Central user account name. Leave empty when using Service-to-Service (app-only) OAuth authentication. $(username)
    password:                                # Password for the Business Central user account. Leave empty for Service-to-Service authentication. Store this in a pipeline secret variable. $(password)
    checksecondsdelay: 30                    # Number of seconds to wait between polls when checking the status of an async operation. Increase this for slower environments. $(checksecondsdelay)
    maxtries: 20                             # Maximum number of status-check attempts before the task times out and fails. Multiply by Check Delay to calculate the total maximum wait time. $(maxtries)
    interaction: environment_list            # Admin Center API operation to execute: environment_list or environment_get reads environment info; environment_copy or environment_rename manages environments; app_install, app_uninstall, or app_update manages extensions; set_application_insightskey or set_security_group applies configuration. $(interaction)
    wait_for_operation: True                 # When enabled, the task polls the Admin Center API until the async operation completes or the maximum number of tries is reached. Disable to fire-and-forget. $(wait_for_operation)
    environment:                             # Name of the source Business Central environment to act on, for example Sandbox or Production. $(environment)
    target_environment:                      # Name of the target environment used for copy or rename operations. $(target_environment)
    target_environment_type: Sandbox         # Type of the new environment created during a copy operation. Sandbox environments allow developer access; Production environments are for live business data. $(target_environment_type)
    application_insightskey:                 # Azure Application Insights instrumentation key (GUID) to configure on the Business Central environment for telemetry. Used with the set_application_insightskey interaction. $(application_insightskey)
    security_group_id:                       # Azure AD security group object ID to assign to the Business Central environment for access control. Used with the set_security_group interaction. $(security_group_id)
    app_id:                                  # GUID of the Business Central extension to install, uninstall, or update. Find this value in the app.json of the extension or in the AppSource listing. $(app_id)
    use_update_window: False                 # When enabled, the app install or update is scheduled within the Admin Center maintenance window instead of running immediately. $(use_update_window)
    accept_isv_eula: False                   # Required to install ISV apps that carry an end-user license agreement. Set this to true to accept the EULA programmatically. $(accept_isv_eula)
    force_dependencies: False                # Force the installation or update of all dependent extensions together with the target app, even if they are already installed at a lower version. $(force_dependencies)
    confirm_delete_data: False               # Required when uninstalling an extension that has stored data in Business Central. Set this to true to confirm that stored data will be permanently deleted. $(confirm_delete_data)
- name: ALOps Admin Center API
  uses: HodorNV/ALOps-V3/alops-admincenterapi@v3   <!-- TODO: confirm action repo path -->
  with:
    azure_tenant_id: ''
    azure_app_client_id: ''
    azure_app_client_secret: ''
    azure_app_client_certificate: ''
    azure_app_client_certificate_password: ''
    username: ''
    password: ''
    checksecondsdelay: '30'
    maxtries: '20'
    interaction: 'environment_list'
    wait_for_operation: 'true'
    environment: ''
    target_environment: ''
    target_environment_type: 'Sandbox'
    application_insightskey: ''
    security_group_id: ''
    app_id: ''
    use_update_window: 'false'
    accept_isv_eula: 'false'
    force_dependencies: 'false'
    confirm_delete_data: 'false'