Ilap Analytics Bicep Change History

Modified on Wed, 12 Aug at 2:15 PM

Release 2.13.0.0

Parquet export (optional)


#7862

Planning and reporting data can now be exported to Parquet files in a dedicated ADLS Gen2 (hierarchical namespace) storage account, so the data survives the SQL retention purge and can be consumed from Fabric / Power BI via a OneLake shortcut.

The feature is off by default. If you do not want it, add just useParquetExport = false and skip the rest — nothing is provisioned and nothing changes for you.

New parameters — add them to your .bicepparam file after the existing storageAccountParams param.

// Set to true to provision a dedicated ADLS Gen2 (hierarchical namespace) storage account for Parquet data-lake export
// and turn the feature on. Off by default. If false, the parquet account is not created, parquetStorageAccountParams
// below is ignored, and report schedules cannot enable parquet export / planning data deletion.
param useParquetExport = false

// Only applicable when useParquetExport is true.
// Parquet is the sole copy of the data after SQL retention purge, so zone-redundant storage (Standard_ZRS) is the default.
param parquetStorageAccountParams = {
  name: 'Enter any storage name for parquet export'
  kind: 'StorageV2'
  sku: {               // Feel free to adjust based on your need.
    name: 'Standard_ZRS'
    tier: 'Standard'
  }
}

// Container (filesystem) name inside the parquet account — this is the name data-lake consumers (Fabric / Power BI)
// see when they shortcut into the storage. Default 'ia-export'; change only if you need a different name.
// Azure container naming rules (an invalid value fails deployment at container creation):
//   - 3 to 63 characters long
//   - lowercase letters, numbers and hyphens (-) only
//   - must start with a letter or number, and cannot end with a hyphen
//   - no consecutive hyphens
// Treat as set-once: renaming after snapshots exist leaves the old data stranded in the old container.
param parquetExportContainerName = 'ia-export'

Significance

Without useParquetExport = true, report schedules cannot enable parquet export or planning data deletion, because there is nowhere to write the Parquet snapshots.

Resource Impact

New Resource creation: Yes, only when useParquetExport is true

New resource Storage account (StorageV2, hierarchical namespace enabled, HTTPS only, TLS 1.2 minimum, public blob access disabled) with one blob container named by parquetExportContainerName. Blob and container soft delete are enabled with a 14 day recovery window.
Role assignments Background job app identity gets Storage Blob Data Contributor, API app identity gets Storage Blob Data Reader, both scoped to the parquet storage account.
App settings ParquetExportConfiguration__Enabled and ParquetExportConfiguration__StorageUri are added to the API and background job apps.

Impacted resource: Analytics API, Background job

Note on parquetExportContainerName: treat this as set-once. Renaming it after snapshots exist leaves the old data stranded in the old container, and any Fabric / Power BI shortcut pointing at the old name breaks.

Longer default retention for unreferenced planning schedules


#7862

The sample default for planningScheduleDeleteConfiguration.PlanningScheduleRetentionPeriodInDays changed from 7 to 30 days.

This is a sample default only — nothing is forced on you. If you already set this value deliberately, keep it. If you copied the sample as is and want the longer window, update your .bicepparam file:

param planningScheduleDeleteConfiguration = {
  // Existing items .....
  PlanningScheduleRetentionPeriodInDays: 30
}

Resource Impact

New Resource creation: NO Resource config change: Yes (app setting value only) Impacted resource: Background job

Reference security infrastructure sample (optional, no action required)


A separate, self-contained example deployment was added under Azure.IaC/Reference-Security (its own main.bicep and main.sample.bicepparam). It shows one way to put ILAP Analytics behind a private network — VNet with private endpoints, app VNet integration, and optional Application Gateway / Azure Firewall / Bastion.

It is an example only and is not part of the ILAP Analytics deployment. Your existing .bicepparam file is unaffected. Review and adapt it to your own security requirements before using it. Start from Azure.IaC/Reference-Security/PLAYBOOK.md, which gives the steps in a working order; README.md explains what each control does and TROUBLESHOOTING.md covers the failure modes.

Release 2.12.0.0

Simplified IDE connection parameters


#7820

Renamed two parameters for clarity and added the missing ILAP Data Exchange (IDE) UI base URL. Update your .bicepparam file as follows.

Renamed parameters (keep the same values, just change the names):

Old name New name
flowApiBaseUrl ideApiBaseUrl
flowApiAccessToken ideApiAccessToken

New parameter — add ideUiBaseUrl under the existing publicConfigurations param. It is used to build links to IEAs from the report schedule grid.

param publicConfigurations = {
  // Existing items .....
  ideUiBaseUrl: 'ILAP Data Exchange UI base URL' // e.g. 'https://ilaptest.collabor8.no' (test) or 'https://ilap.collabor8.no' (production)
}

Release 2.8.0.0

Use latest NODE version for web application


#7440

Updated NODE version for web application.

Go to the IlapAnalyticsUi.bicep file. In the resource ilapAnalyticsUi, set linuxFxVersion to NODE|24-lts.

Release 2.7.0.0

Operation completion notification for large schedule import



#7176

Send event hub message in chunk so that notification job doesn't fail for large data. Added BatchSize parameter under existing operationCompletionNotificationConfig object parameter. Use appropriate batch size based on your event hub tier.

Event hub pricing tier Basic Standard Premium Dedicated
Batch size to use ~2000 ~6000 ~6000 ~150000
param operationCompletionNotificationConfig = 
{
// Existing parameters .....
  BatchSize: 2000 
}

Release 2.6.0.0

Warn user if IA version is not compatible with IDE


Card #4020

Removed parameter enableApiVersionValidation. So remove that parameter from your .bicepparam file. Also remove the usages from the following files.

  1. main.bicep
  2. IlapAnalyticsApi.bicep

Release 2.4.0.0

Improvement of health check for Ilap Analytics

Card #6712

Change details

Added new item backgroundJobAppUrl under the existing publicConfigurations param.

  backgroundJobAppUrl: 'your-analytics-backgroundjobs-app-base-url'

// Example: 'https://app-ilapanalytics-backgroundjobs-dev.azurewebsites.net'. You can find the URL by clicking browse from azure app service.

Release 2.3.0.0

Sending Completion event log to event hub after completion of import/revert

Card: #5679

Change Details

Added new parameters in the bicep parameter files. More details can be found on the document Configuring Event Hub message sending.

// Operation completion notifications
// Controls whether applications publish a notification to event hub when a report schedule import/revert is completed.
// Notes:
// - If you plan to enable this, configure the "eventhubConfig" block below.
// - If you plan to notify via HTTP callback, set "CallbackHostUrl" to your API host base URL.
param operationCompletionNotificationConfig = {
  // Enable or disable operation completion notifications (true|false)
  IsEnabled: false
  // Notification type: 
  //      1 = Report Schedule Id Only, 
  //      2 = Report Schedule Id With Activity Ids, 
  //      3 = Report Schedule Ids With Activity Fqdns
  NotificationType: 2
  // Optional: Base URL for callback endpoints (used when notification type 3 is selected)
  CallbackHostUrl: publicConfigurations.analyticsApiUrl
}

// Event Hub configuration (optional, mandatory if operation completion notifications are enabled above)
// Provide only if you plan to publish operation completion notifications to an Azure Event Hub.
// - NamespaceUrl: The fully qualified namespace host (e.g., "your-namespace.servicebus.windows.net").
// - EventhubName: The Event Hub name to which events will be emitted.
// Note: Ensure that the application has the necessary permissions to send events to the specified Event Hub.
param eventhubConfig = {
  NamespaceUrl: 'your-namespace.servicebus.windows.net'
  EventhubName: 'name-of-your-eventhub'
}

Significance

If you want to configure event hub notification for each import revert/completion fill up the parameter file values. If you don't want to enable messaging, ignore them.

Resource Impact

New Resource creation: NO Resource config change: Yes Impacted resource: Background job, Analytics API

Was this article helpful?

That’s Great!

Thank you for your feedback

Sorry! We couldn't be helpful

Thank you for your feedback

Let us know how can we improve this article!

Select at least one of the reasons
CAPTCHA verification is required.

Feedback sent

We appreciate your effort and will try to fix the article