Table of contents
- Schedule Data is not Schedule Information
- ILAP Analytics can
- ILAP Analytics =>
Reporting tool for ILAP
- Implemented features
- Model
- Authentication and Authorization
- publicConfigurations
- planningScheduleDeleteConfiguration
- reportScheduleArchiveConfiguration
- Core Infrastructure Parameters
- API & Job Execution
- Runtime & Deployment
Schedule Data is not Schedule Information
- Activity, Start, Finish, Codes…….
- Safran/Primavera/MS Project use extensive Business Logic to convert schedule data to schedule information
- A “traditional” BI approach where schedule data is uploaded to the BI-tool fails
ILAP Analytics can
- Give BI tools access to both schedule data and Business Logic
- Retain a full historic record a schedule’s development for analytics
- Compare schedules against each other
- Build a corporate schedule library for extensive analytics
ILAP Analytics => Reporting tool for ILAP
Implemented features
Collection of schedules
Challenge: ILAP Ontology only caters to a “single point in time” “Report Schedule” allows ILAP Analytics to track “the same” ILAP Schedule over time, thus enabling typical information demand from consumers:
- Different versions of same schedule (original baseline, baseline, revised, live)
- Each version over time (e g live schedule for each week)

Tracking of periodic changes and actuals
- Changes in total scope (planned work hours increased/decreased)
- Tracking of periodical earned hours and actual hours

Periodization of planned work
- Total / remaining planned work time-phased and stored periodically based on start/finish, total hours, calendars and profile
Provide data to consumers (such as data lakes)
- Rest API
- Graph QL endpoint
IDE supported scheduling software
ILAP Analytics is an IDE supported scheduling software
Supported Host SystemsFeatures under development
Schedule analysis
- Metrics
- Attention factors
API to support delta-load
Features on roadmap
KPI tracking
Semantic representation of schedules to enable reasoning and machine learning
Model
Fields (aka ILAP terms)
- Define which fields (including ILAP terms) are required
- Fields of datatype “List” will be provided with a valid list of field values codes with descriptions

Schedule types
- Enables grouping of report schedules with common characteristics and similar requirements
- Allows you to define different content control of diff types of schedules
Report schedules
- Collection of different versions of the same schedule
- Subjected to calculations
- Provides periodization of both actuals and planned values
Component Interactions

- The user can use both the desktop client and the ILAP Analytics single page application.
- Both the desktop client and the analytics ui should be within the organization VNET or should have access to the organization VNET.
- The desktop client interacts with the processor api and the flow api as part of IDE communication.
- The desktop app interacts with the analytics api.
- The analytics api interacts with the flow api (during startup) to fetch the ILAP terms.
- The analytics api doesn’t directly interact with the background job. It inserts records int othe hangfire database.
- The background job interacts with the flow api to fetch ILAP terms.
- The background job interacts with the blob storage to save the ilap file
- Both the analytics api and the background job interacts with the sql server time to time.
Inbound and out bound ports
- TCP 443 for all the https calls.
- TCP 1443 for database interaction.
- UDP/TCP 53 for Azure DNS
IA-documentation
This document catalogues all parameters defined in main.sample.bicepparam, lists their default values (where
provided), and explains how they configure Azure resources and
behaviors.
Authentication and Authorization
Entra Id
| Name | Value | Description |
|---|---|---|
| clientId | ‘analytics_api_client_id_from_step-1’ | Placeholder for the Entra Id Application (API) client ID. Replace with your API app registration’s client ID |
| instance | ‘https://login.microsoftonline.com/’ | The Entra Id authority endpoint. Defaults to the global Microsoft identity platform. |
| tenantId | your_tenant_id | Tenant identifier in Entra Id. Update with your directory (tenant) ID. |
| audience | ‘analytics_api_audience_id’ | The Application ID URI (audience) for token validation. Must match your API’s registered scope. |
publicConfigurations
| Name | Value | Description |
|---|---|---|
| analyticsApiUrl | ‘your-ilapanalytics-api-base-url/api’ | Base URL of the analytics API used by the UI. Replace with your deployed API endpoint. |
| authenticationAuthority | ‘https://login.microsoftonline.com/your_tenant_id/’ | Entra Id login URL for the UI app. |
| authenticationClientId | ‘application client id of UI app registration’ | Client ID for the UI’s Entra Id app registration. |
| authenticationScopes | ‘comma separated scopes from your API app registration’ | OAuth scopes that the UI will request for API access. |
| authenticationRedirectUri | ‘your-ilapanalytics-ui-base-url’ | Redirect URI configured in the UI app registration. |
planningScheduleDeleteConfiguration
| Name | Value | Description |
|---|---|---|
| PlanningScheduleAutomaticDeletion | false | Whether to automatically delete closed planning schedules. |
| PlanningScheduleRetentionPeriodInDays | 7 | Days to keep closed planning schedules before deletion. |
reportScheduleArchiveConfiguration
| Name | Value | Description |
|---|---|---|
| EnableReportScheduleAutomaticArchive | false | Whether to archive closed report schedules automatically. |
| ReportScheduleRetentionPeriodInDays | 7 | Days to retain closed report schedules in the live database before moving to archive. |
| QueryBatchSize | 3000 | Number of records to process per batch during archiving. Lower this to reduce load. |
Core Infrastructure Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
| sqlServerParams | object | secure, no default | Settings for Azure SQL Server (e.g., name, admin login, SKU). |
| databaseParams | object | secure, no default | Configuration for primary database (name, collation, SKU, etc.). |
| archiveDatabaseParams | object | secure, no default | Configuration for archive database (similar schema + settings). |
| appServicePlanParams | object[] | secure, no default | Array of App Service Plan definitions (one per hosting tier). |
| apiAppServicePlanName | string | none | Name of the App Service Plan for the API app (required). |
| bgAppServicePlanName | string | none | Name of the App Service Plan for background jobs (required). |
| webAppServicePlanName | string | none | Name of the App Service Plan for the UI (required). |
| webAppParams | object | no default | Object containing configuration for all web apps (API, UI, etc.). |
| storageAccountParams | object | no default | Settings for Azure Storage Account (name, SKU, access tier). |
| moveIlapFileToBlobStorage | string | ‘false’ | Flag (‘true’/‘false’) to enable moving files to blob storage. |
API & Job Execution
flowApiBaseUrl: https://dev.ilapdataexchange.promineo.no/api/api
| Parameter | Type | Default | Description |
|---|---|---|---|
| flowApiBaseUrl | string | flowApiBaseUrl | Base URL for the Flow API endpoint. |
| flowApiAccessToken | string | ‘eyJhbGciOiJIUzI…’ | JWT or similar token for authenticating to Flow API. |
| synchronizeFieldsJobSchedule | string | ’/10 * * *’ | CRON schedule for the field synchronization job. |
| enableFieldSyncronization | string | none | Flag to turn on/off field synchronization logic. |
| enableApiVersionValidation | string | none | Flag to enable API version checks. |
| enableFieldImport | string | none | Flag to enable importing of external fields. |
| SendJobStatusToIDE | string | none | Flag to send job status notifications back to the IDE. |
Runtime & Deployment
| Parameter | Type | Default | Description |
|---|---|---|---|
| netFrameworkVersion | string | ‘v8.0’ | .NET version for Windows-based App Services (e.g., IIS). |
| linuxFxVersion | string | ‘DOTNETCORE|8.0’ | Linux runtime stack identifier for App Services. |
| ilapAnalyticsApiCustomDomain | string | ’’ | Custom domain for the API (if useAnalyticsApiCustomDomain=true). |
| useAnalyticsApiCustomDomain | bool | false | Flag to switch from default FQDN to custom domain for API. |
| instanceInformation | object | no default | Metadata about this deployment instance (e.g., ID, region). |
| dataValidationConfiguration | object | no default | Settings for data quality and validation rules. |
Note: Parameters without default values (or marked secure) are required at deployment time. Be sure to replace all placeholder strings (e.g., ‘your_tenant_id’) with actual values from your Azure environment.
Was this article helpful?
That’s Great!
Thank you for your feedback
Sorry! We couldn't be helpful
Thank you for your feedback
Feedback sent
We appreciate your effort and will try to fix the article